Assessment of directivity of real noise sources - Application to vehicles Kandidatarbete i Fordonsteknisk projektuppgift, SA108X Kristina Larsson Våren 2014 Traction motor and gearbox A4 A8 A6 A10 A5 A11 A9 A7 A2 A1 A3 Diesel Engine Cab HVAC Engine cooling fan Exhaust Brake resistor Transformer Converters Brake compressor HVAC
109
Embed
Assessment of directivity of real noise sources - Application ...746412/FULLTEXT01.pdfacoustic centre for each object was situated. Thereafter, the room correction factor was Thereafter,
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Assessment of directivity of real noise sources - Application to vehicles
Kandidatarbete i Fordonsteknisk projektuppgift, SA108X
Kristina Larsson
Våren 2014
Traction motor and gearbox
A4
A8
A6
A10
A5 A11
A9
A7
A2
A1
A3
Diesel Engine
Cab HVAC Engine cooling fan Exhaust
Brake resistor
Transformer
Converters Brake compressor
HVAC
Abstract
The aim of this project is to evaluate a new method for noise directivity measurements; whether a room correction factor can be used to compensate for the effect of a light reverberation field. Another aim is to find if there is any suitable standard to use.
No standard to use fully was found, but SS-EN ISO 3744:2010 has a method to compensate for reverberation upon which the present method is based.
Measurements were performed for three objects in a semi anechoic room and two ordinary rooms. Sound pressure was measured for all multiples of 30° in the horizontal plane where the acoustic centre for each object was situated. Thereafter, the room correction factor was calculated and from that compensated values could be found.
The room correction factor did not fully make the wanted difference. The results only showed subtle connections, but tendencies show that the method might be valid for 250 and 500 Hz. To get a stronger correlation, the method must be refined. The distance to the microphone is for example one factor that depends on the environment.
Sammanfattning
Målet med projektet är att utvärdera en ny metod för ljuddirektivitetsmätningar; om en rumskorrektionsfaktor kan användas för att kompensera för ett svagt efterklangsfält. Utöver detta görs en litteraturstudie för att finna relevanta standarder.
Någon standard att använda helt fanns inte, men SS-EN ISO 3744:2010 har en metod för att kompensera för efterklangsfält som metoden i detta arbete är baserad på.
Mätningar utfördes för tre objekt i ett halvekofritt rum och två mer vanligt förekommande omgivningar i en industriell miljö. Där mättes ljudtryck i alla vinklar som är en multipel av 30° i samma horisontella plan där den akustiska mitten i mätobjektet befann sig. Utifrån dessa mätningar kunde rumskorrektionsfaktorn beräknas och från den kunde kompenserade värden hittas.
Resultaten visade att rumskorrektionsfaktorn inte fungerade helt önskvärt. De visade bara svaga kopplingar med vissa tendenser till att metoden fungerade bättre för 250 och 500 Hz. Nya mätningar måste därför utföras där metoden förbättrats. Exempelvis är avståndet till mikrofonen, som beror av omgivningen, viktigt.
Preface
This work is a part of a bachelor thesis work within vehicle engineering at Kungliga Tekniska Högskolan.
The aim of this project is to investigate a new method for measuring noise source directivity in industrial environments. The method is based on the standard ISO3744.
The work has been supervised by Ulf Orrenius, Bombardier and Mats Berg, Kungliga Tekniska Högskolan. Leping Feng, Kungliga Tekniska Högskolan, has developed the measurement method and has helped with the realisation of it.
Appendix 4. Matlab function dirplot ........................................................................................ 99
1
1. Introduction
1.1 Background
Today when measuring exterior noise of a rail vehicle for certification purposes, you have to do a real test drive on standardised track. Even if test data are available for a reference vehicle and the changes from the reference vehicle is small, for example a fan has changed. The picture on the cover shows several sources of a train that might be of interest to measure. However, carrying out full certification measurement is a costly process and much could be earned if it was possible to calculate the effects of the changes on the vehicle with simulations. To build an accurate acoustic model, tests must be carried out on the different sources on the vehicle. This process is addressed within the Acoutrain project [http://www.acoutrain.eu/]
Real sources do not necessarily radiate the same amount of acoustic energy in different directions. For this reason one needs to measure the acoustic sound power radiated as a function of angles, also known as directivity.
Figure 1 Outdoor measurement setup and vertical directivity measured of an air conditioning unit for rail vehicles.
Acoustic standards for measuring directivity and source power do however require echo free conditions, see the outdoor setup illustrated in Figure 1. This can be reached by bringing the source outdoors or to an acoustic facility with absorbing walls. It may be hard to achieve with a real vehicle source though, due to its size, electricity needs etc. See for example Figure 2. For this reason, methods to determine the directivity of a source also in a room with some reflections are of interest. It is also useful to understand the errors associated with such measurements when made in a more regular industrial setting.
2
Figure 2 Setup for measurement of noise radiation of a transformer in an industrial hall
In regular rooms the walls reflect the sound, creating a field of reverbing waves called a reverberant field. The theory is that, if measurements are performed close to the source, the room will always influence the measured directivity in the same way. If so, a room correction factor should be applicable to the result in the specific room. Ideally, this factor can be used to calculate the same directivity as if the source was measured in a semi anechoic room.
1.2 Aim
The purpose of the present work is to evaluate a new method of measuring directivity, and to investigate if there is any other method used in any other fields of industry. That industry could be for example loudspeaker manufacturers who are interested in the directivity of their products.
The new method is to investigate how and when a room correction factor, 𝐸, can be applied to compensate for (light) reverberation when measuring directivity of a noise source in a reverberant room. If this room effect is constant for any source the method might have real applications.
1.3 Method
The literature study will be carried out by searching on the internet for standards, for example on SIS (Swedish Standards Institute) website [http://www.sis.se/].
The method for the measurement is gone through in a specific chapter, 4. Method.
3
2. Literature study
The most preferred way to perform measurements would be if there was a standard stating how it should be done. Finding one of those did however not turn out simple.
The first standard looked in to was SS-EN ISO 3744:2010 (Swedish standard, 2010). The full standard cannot be used because in this standard the microphone positions are spread over a hemisphere as they each cover the same area of sound emission. Conversely, the directivity is obtained by measuring in a horizontal (or vertical) plane. It does however contain a way to calculate environmental correction, demonstrating that the theory of room correction works here.
For loudspeakers there is a standard but the contents of it just states that you have to check sound quality, noise level and amount of distortion. There is not even a requirement to report them, nothing about how the measurements should be done either. ( International standard , 2007)
So what does the industry do today, as there is no standard? Common Loudspeaker Format is an industrial agreement of how the files for data supply should look like. It is an open, standardized format that is controlled by the CLF group with the purpose to make it easier to share and open directivity data for loudspeakers. As it has grown in popularity, more software programs are supporting it. (The CLF Group, 2014)
It does not seem like there is any standard or agreement of how to do directivity measurements. Therefore, measurements will be performed as stated in chapter 4.
4
3. Room acoustics
When a noise source is placed inside a room a reverberant field that mainly consists of reflected waves from the walls, floor and ceiling will arise. Close to the source, however, the direct field from the source is dominating. According to room acoustic theory a critical radius can be defined where the direct sound from the source is contributing equally to the sound level as that of the reflected waves from the walls etcetera. If measurements are performed within this distance, the influence from the reverberant field is small. (Wallin, Carlsson, Åbom, Bodén, & Glav, 2013)
The critical radius can be calculated by
𝑟! = 𝑟∗ = !!∙!!"!
!/! (1)
where 𝛤 is the directivity index and 𝐴′ is the room constant, which in practical use can be taken as 𝐴, the equivalent absorption area. The sound level within the critical radius decreases fast with increasing distance from the origin, see Figure 3.
Figure 3 Critical distance. SPL stands for Sound Pressure Level.
The new idea of this method is that directivity is measured in rooms where a reverberant field is present and must be taken into account. Equipment used for measuring is a microphone, BSWA MP201, a preamplifier, BSWA MA201, and a current source, MWL_Uno. The software used is Spectra Plus for measurements, and Matlab for calculations. The Matlab codes can be found in Appendices 1-4.
The data of interest are sound pressure levels as a function of directions from the source. Measurements were performed in one third octave bands in the horizontal plane for three different objects in three different rooms. The objects were two real sources; a fan and a dipole, and an artificial source; a monopole. The dipole, see Figure 4, consists of two speaker membranes without casing mounted with the back side right next to each other, made to vibrate 180 degrees out of phase in respect to each other. The acoustic centre is right between the membranes, in the middle. The diameter of the dipole is about 0.15 m.
Figure 5 shows the fan. The fan has an exhaust pipe for air meaning that the wind could influence the results. Therefore, a wind shield is used for all measurements involving the fan. The fan has its acoustic centre in the midpoint of the rotating blades. The height is about 0.30 m.
The last object is shown in Figure 6. The monopole has a small outlet compared to the acoustic wave length which makes it a monopole below 5 kHz. A monopole is omnidirectional meaning that the sound level should be equal in all directions around it. The acoustic centre of the monopole is the centre of the open end of the pipe. The pipe is about 0.60 m long.
Figure 4 The dipole Figure 5 The fan
6
Figure 6 The monopole
Measurements were performed at all angles that are multiples of 30° in the horizontal plane. At each point the sound pressure in third octave bands between 100 and 5000 Hz were measured for five seconds. The microphone was always placed at the same fixed distance from the acoustic centre for each room, and the horizontal plane where the acoustic centre is was also the measurement plane. The microphone was always pointing straight towards the source. In the different rooms the approach was slightly different.
Semianechoic room The first test environment was a semi anechoic room. This kind of room simulates conditions outside with a reflecting surface underneath and no boundaries in any other direction. Figure 7 shows the dipole in place in the semianechoic room. Since this room is equally absorbing in all horizontal directions, a turntable can be used for the measurements. The microphone is placed 1.61 m from the acoustic centre of the source, which was the biggest practical distance that could be used. It could be this big because less than 1 percent of the incidental sound power to the walls will return to the room. (Wallin, Carlsson, Åbom, Bodén, & Glav, 2013) The reverberant field in a semianechoic room is consequently rather insignificant meaning that the distance can be big without getting outside of the critical radius.
7
Figure 7 The dipole on the turn table in the semi anechoic room
In the semianechoic room the dipole and the fan respectively was placed in the middle of the room on the top of a turn table. The turn table has a diameter of 0.40 m and a height of 0.20 m. The acoustic centre ended up 0.33 m above the floor for the dipole and 0.415 m for the fan. 0° was facing one of the membranes, and the air outlet. The turntable was then operated and stopped at all angles that were a multitude of 30°, where a measurement was performed.
Basement One test environment was a room in the basement of MWL. This should illustrate a worst case industrial scenario; a small space and lots of stuff everywhere. The unoccupied area was approximately a cube with the side 3.6 m long, the ceiling about 3 m up. This was a worst case scenario in many ways and the purpose is to see if any results here are useable. 0° is where the microphone is standing in Figure 8. In one direction, 90°, there is a painted concrete wall. Painted concrete has a low absorption factor (Wallin, Carlsson, Åbom, Bodén, & Glav, 2013) meaning that most of the sound bounce back into the room. The measuring distance here was chosen as 0.90 m, mostly because that was the biggest distance that could be achieved for practical reason in this small area.
8
Figure 8 The fan in the basement
In the basement measurements were done without turn table. Instead, the microphone was moved around to all multiples of 30°. The dipole and monopole were adjusted to be placed at the same height and position when measuring each, the acoustic centre were about 0.60 m up. Measurements were also performed with the fan placed in the middle of the open space with acoustic centre 0.175 m up. First with the fan on and then the side-by-side method; an artificial monopole at five specific locations with the fan off. See Figure 9. Positions 1-4 are in the same plane as the centre of the fan, 5 is on the top.
Figure 9 Monopole positions around the fan
The angle is 0° if pointed to the exhaust pipe for air. The distance was 0.90 m from the acoustic centre.
9
Classroom The last room was a classroom. This was a relatively open space with several metres in each direction. 0° is where the microphone is standing in Figure 10. The closest wall, the one in 90° in the picture, is a screen wall with an outer layer of some kind of fabric. This means that the absorption factor is at least slightly bigger compared to the concrete which implies that less sound is bouncing back to the microphone (Wallin, Carlsson, Åbom, Bodén, & Glav, 2013). The distance to the microphone here was chosen as 1.10 m.
Figure 10 The fan in the classroom
In the classroom three measurements were performed; in the horizontal plane around fan, dipole and monopole in the same acoustic centre, 0.175 m up. The wind pipe of the fan and one of the dipole membranes are pointed towards 0°.
4.2 Calculations
The directivity of the source in a semi anechoic room is denoted 𝐷0 and in the real situations 𝐷𝑅. 𝐷𝑅 − 𝐷0 can then be interpreted as the environmental influence to the directivity. Two approaches are tested; replacement method and side-by-side method. The replacement method means that the directivity is first measured for the real source and then with the source removed and with a monopole placed in the same acoustic centre. The environmental correction vector, 𝐸, is expressed as
𝐸 = 𝐷𝑅!"#$% − 𝐷0!"#$% ≈ 𝐷𝑅!"#$% − 𝐷 (2)
where 𝐷 is the average of 𝐷𝑅!"#$% and all units are dB. The directivity of the real source can be obtained from the measured directivity with the correction vector subtracted
10
𝐷!"#$ = 𝐷𝑅!"#$ − 𝐸 (3)
Comparing the normalized values of 𝐷!"#$ with the normalized value of 𝐷0!"#$ gives the accuracy of the method. If the compensation is successful these two normalized directivities should be the same. meaning that the environmental influence is fully removed.
When the equipment cannot be moved the side-by-side method is applied. Like before, the directivity is first measured nfor the equipment. Second the directivity is measured for a point source at five locations around the machine and the results are averaged according to .
𝐷𝑅!"#$% = 10 ∗ log (!!
10!"!"#$%,!/!"!!!! ) (4)
where 𝑁 is equal to the number of points used. Thereafter it is the same calculation as for the replacement method, just that 𝐷𝑅!"#$% is inserted instead of 𝐷𝑅!"#$% in (2), and 𝐷 is the average of 𝐷𝑅!"#$%. Figure 9 in chapter 4.1 shows the applied locations on a test object.
11
5. Results In the following sections the correction factors calculated in the class-room and the basement. The measured results in the semi anechoic room are used as a reference.
Classroom
Table 1-5 shows the calculated room correction factor, according to (2) for five chosen third octave frequency bands. When the correction factor varies much between the different angles, it might be a sign of many isolated reflectors causing unreliable results. Therefore 125, 1000 and 2000 Hz might not give desirable results.
These factors are then subtracted from measured values, according to (3) to get compensated values. They were then compared to the semi anechoic results to see how big and correct the corrections are. As a reference, the measured values without compensation is also compared. Since the different measurements were not in the same dB-range they were all normalized by subtracting the average of their frequency band, in the same measurement, before the comparison.
-5
-5
-4
-4
-3
-3
-2
-2
-1
-1
0
0
1
1
2
2
3
3
4
4
5
5
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 500 Hertz classroom
replacement
-5
-5
-4
-4
-3
-3
-2
-2
-1
-1
0
0
1
1
2
2
3
3
4
4
5
5
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 1000 Hertz classroom
replacement
-5
-5
-4
-4
-3
-3
-2
-2
-1
-1
0
0
1
1
2
2
3
3
4
4
5
5
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 2000 Hertz classroom
replacement
13
In order for the correction factor to be useful the compensated value should give a smaller average difference than the measured. In Table 6 below the average difference in absolute values are calculated. Generally, where there is improvement to the difference it is less than 1 dB.
Table 6 Average difference compared to results in echo free room. dB
Diff. Compensated value Diff. Measured value 125 Hz dipole 1.9 2.1 250 Hz dipole 2.3 2.8 500 Hz dipole 2.1 2.2 1000 Hz dipole 1.7 1.5 2000 Hz dipole 3.1 2.2 125 Hz fan 4.4 4.0 250 Hz fan 0.7 0.8 500 Hz fan 2.0 1.9 1000 Hz fan 2.7 3.0 2000 Hz fan 1.8 1.4
In Table 7-16 the difference for each angle are plotted. Since the correction factor in the classroom is the same for both sources, comparisons can be made to see which angles the factor seems to work for both. For example in 250 Hz there is improvement in the angles -60°, 30°, 60°,90°,120°, 150° and 180° for both sources. Most noticeable is though that the measured and compensated curves are accompanying each other significtantly more than the compensated and the reference.
Table 7 Difference dipole in classroom 125 Hz Table 8 Difference fan in classroom, 125 Hz. Observe scale
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 125 Hz classroom dipole
compensatedmeasuredreference
-30
-30
-25
-25
-20
-20
-15
-15
-10
-10
-5
-5
0
0
5
5
10
10
15 dB
15 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 125 Hz classroom fan
compensatedmeasuredreference
14
Table 9 Difference dipole in classroom 250 Hz Table 10 Difference fan in classroom 250 Hz
Table 11 Difference dipole in classroom 500 Hz Table 12 Difference fan in classroom 500 Hz
Table 13 Difference dipole in classroom 1000 Hz Table 14 Difference fan in classroom 1000 Hz
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 250 Hz classroom dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 250 Hz classroom fan
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 500 Hz classroom dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 500 Hz classroom fan
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 1000 Hz classroom dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 1000 Hz classroom fan
compensatedmeasuredreference
15
Table 15 Difference dipole in classroom 2000 Hz Table 16 Difference fan in classroom 2000 Hz
Basement
Table 17-21 shows the calculated room correction factor, according to (2) and (4) for five chosen third octave frequency bands. To be able to compare between the replacement method and the side-by-side method, the room correction factor should be approximately the same. For 500 Hz the curves seem almost the same and can be useable. 250, 1000 and 2000 Hz might also be close enough, they do partly differ by a few dB though. 125 Hz does not look similar at all though and results are probably not useable. Additionally, it varies a lot between angles which implies there is a lot of surfaces where reflections can occur.
These factors are then subtracted from measured values, according to (3) to get compensated values. They were then compared to the semianechoic results to see how big and correct the corrections are. As a reference, the measured values without compensation is also compared. Since the different measurements were not in the same dB-range they were all normalized by subtracting the average of data in all directions (???), in the same measurement, before the comparison.
In order for the correction factor to be useful the compensated value should give a smaller average difference than those measured. In Table 22 below the average difference in absolute values are calculated. There are only two cases though where the average difference is smaller for the compensated value, and then by 0.3 dB or lower.
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 500 Hertz basement
replacementside-by-side
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 1000 Hertz basement
replacementside-by-side
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Correction factor 2000 Hertz basement
replacementside-by-side
17
Table 22 Average difference per angle between reference and compensated/measured value
Diff. Compensated value Diff. Measured value 125 Hz dipole 3.1 2.9 250 Hz dipole 1.9 1.9 500 Hz dipole 1.6 1.4 1000 Hz dipole 2.3 2.2 2000 Hz dipole 1.1 1.0 125 Hz fan 4.1 3.8 250 Hz fan 1.0 1.3 500 Hz fan 1.3 1.3 1000 Hz fan 4.0 3.0 2000 Hz fan 5.4 5.4
In Table 23-32 the difference for each angle is plotted. There it can be stated that the compensated values are more accurate for a few angles. Since the correction factor is calculated differently for the two sources in the basement, no comparison can be done between them.
Table 23 Diff. dipole in basement 125 Hz. Obs. scaling Table 24 Diff. fan in basement 125 Hz. Obs. scaling
-30
-30
-25
-25
-20
-20
-15
-15
-10
-10
-5
-5
0
0
5
5
10
10
15 dB
15 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 125 Hz basement dipole
compensatedmeasuredreference
-30
-30
-25
-25
-20
-20
-15
-15
-10
-10
-5
-5
0
0
5
5
10
10
15 dB
15 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 125 Hz basement fan
compensatedmeasuredreference
18
Table 25 Difference dipole in basement 250 Hz Table 26 Difference fan in basement 250 Hz
Table 27 Difference dipole in basement 500 Hz Table 28 Difference fan in basement 500 Hz
Table 29 Difference dipole in basement 1000 Hz Table 30 Difference fan in basement 1000 Hz. Obs. scaling
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 250 Hz basement dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 250 Hz basement fan
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 500 Hz basement dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 500 Hz basement fan
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 1000 Hz basement dipole
compensatedmeasuredreference
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6
6
8
8
10 dB
10 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 1000 Hz basement fan
compensatedmeasuredreference
19
Table 31 Difference dipole in basement 2000 Hz Table 32 Difference fan in basement 2000 Hz. Obs. scaling
6. Discussion
When looking into Table 6 and 22 some tendencies can be seen. As expected from the correction factor, 125, 1000 and 2000 Hz give the biggest average deviation in actual dB value. 250 Hz in the basement was also expected to differ a lot, which it does when looking into table 25-26, it is just that there is a few angles deviating a lot while the rest seem pretty spot on. Generally, the correction factor mainly made the difference bigger, but some effect can be noticed. For 250 and 500 Hz the actual dB values varied a lot less, with just amply 1 dB from the wanted value while the other differences were several times bigger. Most noticeable is though that the measured and compensated curves are accompanying each other significtantly more than the compensated and the reference. The correction factor gives a too small difference to get any usable results.
One explanation might be that the measurements in the semianechoic room were not performed with entirely the same conditions. The height above the floor to the acoustic centre differs to all other rooms, and the turn table is possibly big enough to cause interference to the sound. Actually, the only room where all sources were placed in the same acoustic centre was in the classroom. The only way to do that for the monopole is to lean the pipe against something, having the opening pointing more in one direction. The sound did indeed become louder there, meaning it is not a perfect monopole when not standing up. The difference was up to about 2 dB in the different directions when leaning.
It was not that easy to know exactly how good the items were placed either. The measurements were hard to get precise. Mainly since the tools of disposal just were a one metre steel ruler and a large tape measure. On the floor they were all right, but as soon as the attempts to measure distance to a microphone in the air begun it became difficult to get a desired accuracy. Approximately, some measurements could differ a few centimetres. The microphone stand was not completely stiff either with the several joints for adjustments. When moving the microphone around it might have readjusted.
-8
-8
-6
-6
-4
-4
-2
-2
0
0
2
2
4
4
6 dB
6 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 2000 Hz basement dipole
compensatedmeasuredreference
0
0
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9 dB
9 dB
90o
60o
30o0o
-30o
-60o
-90o
-120o
-150o
180o150o
120o
Effect of compensation, 2000 Hz basement fan
compensatedmeasuredreference
20
Even though measurements were done at each spot there might still be an error. A few centimetres cannot be all to blame though so more must be wrong.
All measurements were performed for about 5 s. Just one measurement for each point were executed because the results did not seem to fluctuate much after the first second, and the background noise stayed the same. Therefore, more measurements will probably get approximately the same result. The fan did though have periods where it made more noise than before and after. These did however seem to occur randomly and could go on for several minutes, without a clear transition. To wait for it to sound the same – which was really hard to determine – would have taken too much time. Doing more measurements would probably not have helped either because of the unpredictability. This could be solved with more than one microphone measuring simultaneously, ensuring that the source and background emit the same sound power for several measurements.
Another thing to note is that the fan in both rooms get a lower difference than the dipole for the two most reliable frequencies (250 and 500 Hz). Firstly, it shows that the side-by-side method seems to be comparable to the replacement method. Secondly, the correction factor appears to work better on the fan for these frequencies. For the rest of the frequencies looked into, the fan differs more than the dipole.
Last but not least – one of the most important factors is the distance to the microphone. In this study, a practical and rough estimate of the distance needed was done. For practical reasons, the critical distance was not calculable in the two ordinary rooms. Each area must be taken into account and get an approximate absorption factor which is not doable with the many areas and objects in these environments. What could be done though is to find the critical radius by for example measuring the sound pressure at different distances to find where the total dB decreases slower, according to Figure 3.
Taking this into account, the result may show a small connection. Still, the room correction factor does not improve nearly close enough to be useful in these measurements.
21
7. Conclusions
The purpose of this report was to evaluate a new method proposal and search for possible existing standards for …. No standard to be used fully was found but parts of one, (Swedish standard, 2010), could be used.
From the new evaluation of the proposed method some conclusions could be drawn.. The correlation between the use of the room correction factor and more accurate results seems tenuous in this case. The difference in dB between the result in echo free conditions and the measured/compensated result is always bigger than the difference between measured and compensated value. If looking at very small tendencies anyways it seems at frequencies around 250 Hz up to 500 Hz the theory could have some potential.
Therefore, new tests have to be put through to show if it really has any potential. For starters the acoustic centre should be kept the same distance from all surfaces in all situations. If for example a turn table is to be used, it could preferably be used as a stand in all non-anechoic rooms as well, in order to also keep the same reflective surfaces. Optimally it should not be used though for this reason. Moreover, the correct distance to the microphone should be calculated. Preferablyseveral microphones measuring simultaneously too.
So, the method has not been tested rigorously enough to draw any firm conclusions and might have some potential, but more comprehensive tests have to be fulfilled.
22
References
Acoutrain. (2014, May 24). Acoutrain. Retrieved from http://www.acoutrain.eu/
International standard . (2007, July). ICE 60268-5 . Sound system equipment – Part 5: Loudspeakers. Geneva, Switzerland.
Swedish standard. (2010, November). SS-EN ISO 3744:2010. Acoustics- Determination of sound power level and sound energy levels of noise sources using sound pressure - Engineering methods for an essentially free field over a reflecting plane. Stockholm, Sweden.
The CLF Group. (2014, April 27). Common Loudspeaker Format. Retrieved from http://www.clfgroup.org/index.htm
Wallin, H. P., Carlsson, U., Åbom, M., Bodén, H., & Glav, R. (2013). Ljud och Vibrationer. Stockholm: Universitetsservice US-AB.
avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal125f=Dreal-avDreal; %normalization norm_DOreal125f=DOreal-avDOreal; norm_DDreal125f=DDreal-avDDreal; difference125Hzbasementfan=norm_Dreal125f-norm_DOreal125f; difference125Hzbfutan=norm_DDreal125f-norm_DOreal125f; diffav125bf=sum(abs(difference125Hzbasementfan))/13 %calculate average difference from reference diffav125bfu=sum(abs(difference125Hzbfutan))/13 %calculate average difference from reference %125 Hz plot dirplot(LP,E,'b') title('Correction factor 125 Hertz basement') legend('replacement','side-by-side') %250 Hz dipole DRpunkt=HZ250mb; avDRpunkt=sum(HZ250mb)/13; E=DRpunkt-avDRpunkt; DDreal=HZ250db; Dreal=DDreal-E; DOreal=HZ250dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal250d=Dreal-avDreal; %normalization norm_DOreal250d=DOreal-avDOreal; norm_DDreal250d=DDreal-avDDreal; difference250Hzdipolebasement=norm_Dreal250d-norm_DOreal250d; difference250Hzdbutan=norm_DDreal250d-norm_DOreal250d; diffav250bd=sum(abs(difference250Hzdipolebasement))/13 %calculate average difference from reference diffav250bdu=sum(abs(difference250Hzdbutan))/13 %calculate average difference from reference %250 Hz plot figure (2) dirplot(LP,E,'r',[6 -10 8]) hold on %250 Hz fan DRpunkt1=HZ2501; DRpunkt2=HZ2502; DRpunkt3=HZ2503; DRpunkt4=HZ2504; DRpunkt5=HZ2505; N=5; DRpunkt=10*log10(1/N*(10.^(DRpunkt1./10)+10.^(DRpunkt2./10)+10.^(DRpunkt3./10)+10.^(DRpunkt4./10)+10.^(DRpunkt5./10))); avDRpunkt=sum(DRpunkt)/13;
86
E=DRpunkt-avDRpunkt; DDreal=HZ250fb; Dreal=DDreal-E; DOreal=HZ250ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal250f=Dreal-avDreal; %normalization norm_DOreal250f=DOreal-avDOreal; norm_DDreal250f=DDreal-avDDreal; difference250Hzbasementfan=norm_Dreal250f-norm_DOreal250f; difference250Hzbfutan=norm_DDreal250f-norm_DOreal250f; diffav250bf=sum(abs(difference250Hzbasementfan))/13 %calculate average difference from reference diffav250bfu=sum(abs(difference250Hzbfutan))/13 %calculate average difference from reference %250 Hz plot dirplot(LP,E,'b') title('Correction factor 250 Hertz basement') legend('replacement','side-by-side') %500 Hz dipole DRpunkt=HZ500mb; avDRpunkt=sum(HZ500mb)/13; E=DRpunkt-avDRpunkt; DDreal=HZ500db; Dreal=DDreal-E; DOreal=HZ500dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal500d=Dreal-avDreal; %normalization norm_DOreal500d=DOreal-avDOreal; norm_DDreal500d=DDreal-avDDreal; difference500Hzdipolebasement=norm_Dreal500d-norm_DOreal500d; difference500Hzdbutan=norm_DDreal500d-norm_DOreal500d; diffav500bd=sum(abs(difference500Hzdipolebasement))/13 %calculate average difference from reference diffav500bdu=sum(abs(difference500Hzdbutan))/13 %calculate average difference from reference %500 Hz plot figure (3) dirplot(LP,E,'r',[6 -10 8]) hold on %500 Hz fan DRpunkt1=HZ5001; DRpunkt2=HZ5002; DRpunkt3=HZ5003; DRpunkt4=HZ5004;
87
DRpunkt5=HZ5005; N=5; DRpunkt=10*log10(1/N*(10.^(DRpunkt1./10)+10.^(DRpunkt2./10)+10.^(DRpunkt3./10)+10.^(DRpunkt4./10)+10.^(DRpunkt5./10))); avDRpunkt=sum(DRpunkt)/13; E=DRpunkt-avDRpunkt; DDreal=HZ500fb; Dreal=DDreal-E; DOreal=HZ500ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal500f=Dreal-avDreal; %normalization norm_DOreal500f=DOreal-avDOreal; norm_DDreal500f=DDreal-avDDreal; difference500Hzbasementfan=norm_Dreal500f-norm_DOreal500f; difference500Hzbfutan=norm_DDreal500f-norm_DOreal500f; diffav500bf=sum(abs(difference500Hzbasementfan))/13 %calculate average difference from reference diffav500bfu=sum(abs(difference500Hzbfutan))/13 %calculate average difference from reference %500 Hz plot dirplot(LP,E,'b') title('Correction factor 500 Hertz basement') legend('replacement','side-by-side') %1000 Hz dipole DRpunkt=HZ1000mb; avDRpunkt=sum(HZ1000mb)/13; E=DRpunkt-avDRpunkt; DDreal=HZ1000db; Dreal=DDreal-E; DOreal=HZ1000dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal1000d=Dreal-avDreal; %normalization norm_DOreal1000d=DOreal-avDOreal; norm_DDreal1000d=DDreal-avDDreal; difference1000Hzdipolebasement=norm_Dreal1000d-norm_DOreal1000d; difference1000Hzdbutan=norm_DDreal1000d-norm_DOreal1000d; diffav1000bd=sum(abs(difference1000Hzdipolebasement))/13 %calculate average difference from reference diffav1000bdu=sum(abs(difference1000Hzdbutan))/13 %calculate average difference from reference %1000 Hz plot figure (4) dirplot(LP,E,'r',[6 -10 8])
88
hold on % %1000 Hz fan DRpunkt1=HZ10001; DRpunkt2=HZ10002; DRpunkt3=HZ10003; DRpunkt4=HZ10004; DRpunkt5=HZ10005; N=5; DRpunkt=10*log10(1/N*(10.^(DRpunkt1./10)+10.^(DRpunkt2./10)+10.^(DRpunkt3./10)+10.^(DRpunkt4./10)+10.^(DRpunkt5./10))); avDRpunkt=sum(DRpunkt)/13; E=DRpunkt-avDRpunkt; DDreal=HZ1000fb; Dreal=DDreal-E; DOreal=HZ1000ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal1000f=Dreal-avDreal; %normalization norm_DOreal1000f=DOreal-avDOreal; norm_DDreal1000f=DDreal-avDDreal; difference1000Hzbasementfan=norm_Dreal1000f-norm_DOreal1000f; difference1000Hzbfutan=norm_DDreal1000f-norm_DOreal1000f; diffav1000bf=sum(abs(difference1000Hzbasementfan))/13 %calculate average difference from reference diffav1000bfu=sum(abs(difference1000Hzbfutan))/13 %calculate average difference from reference %1000 Hz plot dirplot(LP,E,'b') title('Correction factor 1000 Hertz basement') legend('replacement','side-by-side') %2000 Hz dipole DRpunkt=HZ2000mb; avDRpunkt=sum(HZ2000mb)/13; E=DRpunkt-avDRpunkt; DDreal=HZ2000db; Dreal=DDreal-E; DOreal=HZ2000dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal2000d=Dreal-avDreal; %normalization norm_DOreal2000d=DOreal-avDOreal; norm_DDreal2000d=DDreal-avDDreal; difference2000Hzdipolebasement=norm_Dreal2000d-norm_DOreal2000d; difference2000Hzdbutan=norm_DDreal2000d-norm_DOreal2000d; diffav2000bd=sum(abs(difference2000Hzdipolebasement))/13 %calculate average difference from reference
89
diffav2000bdu=sum(abs(difference2000Hzdbutan))/13 %calculate average difference from reference %2000 Hz plot figure (5) dirplot(LP,E,'r',[6 -10 8]) hold on %2000 Hz fan DRpunkt1=HZ20001; DRpunkt2=HZ20002; DRpunkt3=HZ20003; DRpunkt4=HZ20004; DRpunkt5=HZ20005; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; N=5; DRpunkt=10*log10(1/N*(10.^(DRpunkt1./10)+10.^(DRpunkt2./10)+10.^(DRpunkt3./10)+10.^(DRpunkt4./10)+10.^(DRpunkt5./10))); avDRpunkt=sum(DRpunkt)/13; E=DRpunkt-avDRpunkt; DDreal=HZ2000fb; Dreal=DDreal-E; DOreal=HZ2000ft; norm_Dreal2000f=Dreal-avDreal; %normalization norm_DOreal2000f=DOreal-avDOreal; norm_DDreal2000f=DDreal-avDDreal; difference2000Hzbasementfan=norm_Dreal2000f-norm_DOreal2000f difference2000Hzbfutan=norm_DDreal2000f-norm_DOreal2000f diffav2000bf=sum(abs(difference2000Hzbasementfan))/13 %calculate average difference from reference diffav2000bfu=sum(abs(difference2000Hzbfutan))/13 %calculate average difference from reference %2000 Hz plot dirplot(LP,E,'b') title('Correction factor 2000 Hertz basement') legend('replacement','side-by-side') %comparison %2000 Hz figure (16) dirplot(LP,difference125Hzdipolebasement,'b') hold on dirplot(LP,difference125Hzdbutan,'r') dirplot(LP,norm_DOreal125d-norm_DOreal125d,'g') title('Effect of compensation, 125 Hz basement dipole') legend('compensated','measured', 'reference')
90
figure (17) dirplot(LP,difference125Hzbasementfan,'b') hold on dirplot(LP,difference125Hzbfutan,'r') dirplot(LP,norm_DOreal125f-norm_DOreal125f,'g') title('Effect of compensation, 125 Hz basement fan') legend('compensated','measured', 'reference') figure (18) dirplot(LP,difference250Hzdipolebasement,'b',[6 -10 8]) hold on dirplot(LP,difference250Hzdbutan,'r') dirplot(LP,norm_DOreal250d-norm_DOreal250d,'g') title('Effect of compensation, 250 Hz basement dipole') legend('compensated','measured', 'reference') figure (19) dirplot(LP,difference250Hzbasementfan,'b',[6 -10 8]) hold on dirplot(LP,difference250Hzbfutan,'r') dirplot(LP,norm_DOreal250f-norm_DOreal250f,'g') title('Effect of compensation, 250 Hz basement fan') legend('compensated','measured', 'reference') figure (20) dirplot(LP,difference500Hzdipolebasement,'b',[6 -10 8]) hold on dirplot(LP,difference500Hzdbutan,'r') dirplot(LP,norm_DOreal500d-norm_DOreal500d,'g') title('Effect of compensation, 500 Hz basement dipole') legend('compensated','measured', 'reference') figure (21) dirplot(LP,difference500Hzbasementfan,'b',[6 -10 8]) hold on dirplot(LP,difference500Hzbfutan,'r') dirplot(LP,norm_DOreal500f-norm_DOreal500f,'g') title('Effect of compensation, 500 Hz basement fan') legend('compensated','measured', 'reference') figure (22) dirplot(LP,difference1000Hzdipolebasement,'b',[6 -10 8]) hold on dirplot(LP,difference1000Hzdbutan,'r') dirplot(LP,norm_DOreal1000d-norm_DOreal1000d,'g')
91
title('Effect of compensation, 1000 Hz basement dipole') legend('compensated','measured', 'reference') figure (23) dirplot(LP,difference1000Hzbasementfan,'b') hold on dirplot(LP,difference1000Hzbfutan,'r') dirplot(LP,norm_DOreal1000f-norm_DOreal1000f,'g') title('Effect of compensation, 1000 Hz basement fan') legend('compensated','measured', 'reference') figure (24) dirplot(LP,difference2000Hzdipolebasement,'b',[6 -10 8]) hold on dirplot(LP,difference2000Hzdbutan,'r') dirplot(LP,norm_DOreal2000d-norm_DOreal2000d,'g') title('Effect of compensation, 2000 Hz basement dipole') legend('compensated','measured', 'reference') figure (25) dirplot(LP,difference2000Hzbasementfan,'b') hold on dirplot(LP,difference2000Hzbfutan,'r') dirplot(LP,norm_DOreal2000d-norm_DOreal2000d,'g') title('Effect of compensation, 2000 Hz basement fan') legend('compensated','measured', 'reference')
92
Appendix 3. Matlab code classroom close all global LP HZ125fb HZ250fb HZ500fb HZ1000fb HZ2000fb HZ125ft HZ250ft HZ500ft HZ1000ft HZ2000ft HZ125fc HZ250fc HZ500fc HZ1000fc HZ2000fc HZ125mc HZ250mc HZ500mc HZ1000mc HZ2000mc HZ125mb HZ250mb HZ500mb HZ1000mb HZ2000mb HZ125dt HZ250dt HZ500dt HZ1000dt HZ2000dt HZ125db HZ250db HZ500db HZ1000db HZ2000db HZ125dc HZ250dc HZ500dc HZ1000dc HZ2000dc HZ1251 HZ2501 HZ5001 HZ10001 HZ20001 HZ1252 HZ2502 HZ5002 HZ10002 HZ20002 HZ1253 HZ2503 HZ5003 HZ10003 HZ20003 HZ1254 HZ2504 HZ5004 HZ10004 HZ20004 HZ1255 HZ2505 HZ5005 HZ10005 HZ20005 %classroom % beräkning E=DRpunkt-average(DRpunkt) för frekvenser. %125 Hz dipole DRpunkt=HZ125mc; avDRpunkt=sum(HZ125mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ125dc; Dreal=DDreal-E; DOreal=HZ125dt; avDDreal=sum(DDreal)/13; %average per Hz over all angles avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal125d=Dreal-avDreal; %normalization norm_DOreal125d=DOreal-avDOreal; norm_DDreal125d=DDreal-avDDreal; difference125Hzdipoleclassroom=norm_Dreal125d-norm_DOreal125d; difference125Hzdcutan=norm_DDreal125d-norm_DOreal125d; diffav125cd=sum(abs(difference125Hzdipoleclassroom))/13 %calculate average difference from reference diffav125cdu=sum(abs(difference125Hzdcutan))/13 %calculate average difference from reference %125 Hz fan DRpunkt=HZ125mc; avDRpunkt=sum(HZ125mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ125fc; Dreal=DDreal-E; DOreal=HZ125ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal125f=Dreal-avDreal; %normalization norm_DOreal125f=DOreal-avDOreal; norm_DDreal125f=DDreal-avDDreal; difference125Hzclassroomfan=norm_Dreal125f-norm_DOreal125f; difference125Hzcfutan=norm_DDreal125f-norm_DOreal125f; diffav125cf=sum(abs(difference125Hzclassroomfan))/13 %calculate average difference from reference
93
diffav125cfu=sum(abs(difference125Hzcfutan))/13 %calculate average difference from reference %125 Hz plot figure (1) dirplot(LP,E,'r',[6 -6 12]) title('Correction factor 125 Hertz classroom') legend('replacement') %250 Hz dipole DRpunkt=HZ250mc; avDRpunkt=sum(HZ250mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ250dc; Dreal=DDreal-E; DOreal=HZ250dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal250d=Dreal-avDreal; %normalization norm_DOreal250d=DOreal-avDOreal; norm_DDreal250d=DDreal-avDDreal; difference250Hzdipoleclassroom=norm_Dreal250d-norm_DOreal250d; difference250Hzdcutan=norm_DDreal250d-norm_DOreal250d; diffav250cd=sum(abs(difference250Hzdipoleclassroom))/13 %calculate average difference from reference diffav250cdu=sum(abs(difference250Hzdcutan))/13 %calculate average difference from reference %250 Hz fan DRpunkt=HZ250mc; avDRpunkt=sum(HZ250mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ250fc; Dreal=DDreal-E; DOreal=HZ250ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal250f=Dreal-avDreal; %normalization norm_DOreal250f=DOreal-avDOreal; norm_DDreal250f=DDreal-avDDreal; difference250Hzclassroomfan=norm_Dreal250f-norm_DOreal250f; difference250Hzcfutan=norm_DDreal250f-norm_DOreal250f; diffav250cf=sum(abs(difference250Hzclassroomfan))/13 %calculate average difference from reference diffav250cfu=sum(abs(difference250Hzcfutan))/13 %calculate average difference from reference %250 Hz plot figure (2) dirplot(LP,E,'r',[6 -6 12]) title('Correction factor 250 Hertz classroom')
94
legend('replacement') %500 Hz dipole DRpunkt=HZ500mc; avDRpunkt=sum(HZ500mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ500dc; Dreal=DDreal-E; DOreal=HZ500dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal500d=Dreal-avDreal; %normalization norm_DOreal500d=DOreal-avDOreal; norm_DDreal500d=DDreal-avDDreal; difference500Hzdipoleclassroom=norm_Dreal500d-norm_DOreal500d; difference500Hzdcutan=norm_DDreal500d-norm_DOreal500d; diffav500cd=sum(abs(difference500Hzdipoleclassroom))/13 %calculate average difference from reference diffav500cdu=sum(abs(difference500Hzdcutan))/13 %calculate average difference from reference %500 Hz fan DRpunkt=HZ500mc; avDRpunkt=sum(HZ500mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ500fc; Dreal=DDreal-E; DOreal=HZ500ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal500f=Dreal-avDreal; %normalization norm_DOreal500f=DOreal-avDOreal; norm_DDreal500f=DDreal-avDDreal; difference500Hzclassroomfan=norm_Dreal500f-norm_DOreal500f; difference500Hzcfutan=norm_DDreal500f-norm_DOreal500f; diffav500cf=sum(abs(difference500Hzclassroomfan))/13 %calculate average difference from reference diffav500cfu=sum(abs(difference500Hzcfutan))/13 %calculate average difference from reference %500 Hz plot figure (3) dirplot(LP,E,'r',[6 -6 12]) title('Correction factor 500 Hertz classroom') legend('replacement') %1000 Hz dipole DRpunkt=HZ1000mc; avDRpunkt=sum(HZ1000mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ1000dc;
95
Dreal=DDreal-E; DOreal=HZ1000dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal1000d=Dreal-avDreal; %normalization norm_DOreal1000d=DOreal-avDOreal; norm_DDreal1000d=DDreal-avDDreal; difference1000Hzdipoleclassroom=norm_Dreal1000d-norm_DOreal1000d; difference1000Hzdcutan=norm_DDreal1000d-norm_DOreal1000d; diffav1000cd=sum(abs(difference1000Hzdipoleclassroom))/13 %calculate average difference from reference diffav1000cdu=sum(abs(difference1000Hzdcutan))/13 %calculate average difference from reference %1000 Hz fan DRpunkt=HZ1000mc; avDRpunkt=sum(HZ1000mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ1000fc; Dreal=DDreal-E; DOreal=HZ1000ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal1000f=Dreal-avDreal; %normalization norm_DOreal1000f=DOreal-avDOreal; norm_DDreal1000f=DDreal-avDDreal; difference1000Hzclassroomfan=norm_Dreal1000f-norm_DOreal1000f; difference1000Hzcfutan=norm_DDreal1000f-norm_DOreal1000f; diffav1000cf=sum(abs(difference1000Hzclassroomfan))/13 %calculate average difference from reference diffav1000cfu=sum(abs(difference1000Hzcfutan))/13 %calculate average difference from reference %1000 Hz plot figure (4) dirplot(LP,E,'r',[6 -6 12]) title('Correction factor 1000 Hertz classroom') legend('replacement') %2000 Hz dipole DRpunkt=HZ2000mc; avDRpunkt=sum(HZ2000mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ2000dc; Dreal=DDreal-E; DOreal=HZ2000dt; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13;
96
norm_Dreal2000d=Dreal-avDreal; %normalization norm_DOreal2000d=DOreal-avDOreal; norm_DDreal2000d=DDreal-avDDreal; difference2000Hzdipoleclassroom=norm_Dreal2000d-norm_DOreal2000d; difference2000Hzdcutan=norm_DDreal2000d-norm_DOreal2000d; diffav2000cd=sum(abs(difference2000Hzdipoleclassroom))/13 %calculate average difference from reference diffav2000cdu=sum(abs(difference2000Hzdcutan))/13 %calculate average difference from reference %2000 Hz fan DRpunkt=HZ2000mc; avDRpunkt=sum(HZ2000mc)/13; E=DRpunkt-avDRpunkt; DDreal=HZ2000fc; Dreal=DDreal-E; DOreal=HZ2000ft; avDDreal=sum(DDreal)/13; avDreal=sum(Dreal)/13; avDOreal=sum(DOreal)/13; norm_Dreal2000f=Dreal-avDreal; %normalization norm_DOreal2000f=DOreal-avDOreal; norm_DDreal2000f=DDreal-avDDreal; difference2000Hzclassroomfan=norm_Dreal2000f-norm_DOreal2000f; difference2000Hzcfutan=norm_DDreal2000f-norm_DOreal2000f; diffav2000cf=sum(abs(difference2000Hzclassroomfan))/13 %calculate average difference from reference diffav2000cfu=sum(abs(difference2000Hzcfutan))/13 %calculate average difference from reference %2000 Hz plot figure (5) dirplot(LP,E,'r',[6 -6 12]) title('Correction factor 2000 Hertz classroom') legend('replacement') %comparison effect figure (16) dirplot(LP,difference125Hzdipoleclassroom,'b',[6 -10 8]) hold on dirplot(LP,difference125Hzdcutan,'r') dirplot(LP,norm_DOreal125d-norm_DOreal125d,'g') title('Effect of compensation, 125 Hz classroom dipole') legend('compensated','measured', 'reference') figure (17) dirplot(LP,difference125Hzclassroomfan,'b') hold on dirplot(LP,difference125Hzcfutan,'r') dirplot(LP,norm_DOreal125f-norm_DOreal125f,'g') title('Effect of compensation, 125 Hz classroom fan')
97
legend('compensated','measured', 'reference') figure (18) dirplot(LP,difference250Hzdipoleclassroom,'b',[6 -10 8]) hold on dirplot(LP,difference250Hzdcutan,'r') dirplot(LP,norm_DOreal250d-norm_DOreal250d,'g') title('Effect of compensation, 250 Hz classroom dipole') legend('compensated','measured', 'reference') figure (19) dirplot(LP,difference250Hzclassroomfan,'b',[6 -10 8]) hold on dirplot(LP,difference250Hzcfutan,'r') dirplot(LP,norm_DOreal250f-norm_DOreal250f,'g') title('Effect of compensation, 250 Hz classroom fan') legend('compensated','measured', 'reference') figure (20) dirplot(LP,difference500Hzdipoleclassroom,'b',[6 -10 8]) hold on dirplot(LP,difference500Hzdcutan,'r') dirplot(LP,norm_DOreal500d-norm_DOreal500d,'g') title('Effect of compensation, 500 Hz classroom dipole') legend('compensated','measured', 'reference') figure (21) dirplot(LP,difference500Hzclassroomfan,'b',[6 -10 8]) hold on dirplot(LP,difference500Hzcfutan,'r') dirplot(LP,norm_DOreal500f-norm_DOreal500f,'g') title('Effect of compensation, 500 Hz classroom fan') legend('compensated','measured', 'reference') figure (22) dirplot(LP,difference1000Hzdipoleclassroom,'b',[6 -10 8]) hold on dirplot(LP,difference1000Hzdcutan,'r') dirplot(LP,norm_DOreal1000d-norm_DOreal1000d,'g') title('Effect of compensation, 1000 Hz classroom dipole') legend('compensated','measured', 'reference') figure (23) dirplot(LP,difference1000Hzclassroomfan,'b',[6 -10 8]) hold on dirplot(LP,difference1000Hzcfutan,'r')
98
dirplot(LP,norm_DOreal1000f-norm_DOreal1000f,'g') title('Effect of compensation, 1000 Hz classroom fan') legend('compensated','measured', 'reference') figure (24) dirplot(LP,difference2000Hzdipoleclassroom,'b',[6 -10 8]) hold on dirplot(LP,difference2000Hzdcutan,'r') dirplot(LP,norm_DOreal2000d-norm_DOreal2000d,'g') title('Effect of compensation, 2000 Hz classroom dipole') legend('compensated','measured', 'reference') figure (25) dirplot(LP,difference2000Hzclassroomfan,'b',[6 -10 8]) hold on dirplot(LP,difference2000Hzcfutan,'r') dirplot(LP,norm_DOreal2000d-norm_DOreal2000d,'g') title('Effect of compensation, 2000 Hz classroom fan') legend('compensated','measured', 'reference')
99
Appendix 4. Matlab function dirplot function hpol = dirplot(theta,rho,line_style,params) % DIRPLOT Polar directivity plot. % A modification of The Mathworks POLAR function, DIRPLOT generates % directivity plots in the style commonly used in acoustic and RF work. % Features include: % 1. Plots -90 to +90 or -180 to +180 degrees based on range of input % THETA, with 0 degrees at top center. % 2. Produces semicircular plots when plot range is -90 to +90 degrees. % 3. RHO is assumed to be in decibels and may include negative % values. % 4. Default automatic rho-axis scaling in "scope knob" factors. % 5. Optional PARAMS argument allows manual setting of rho-axis % scaling. % % DIRPLOT(THETA, RHO) makes a plot using polar coordinates of the % angle THETA versus the radius RHO. THETA must be in degrees, and % must be within the range -180 to +180 degrees. If THETA is within % the range -90 to +90 degrees, the plot will be semicircular. RHO is % assumed to be in decibels and the values may be positive or negative or % both. By default, with no PARAMS argument, rho-axis scaling will be determined % automatically using scope knob factors of 1-2-5. By default, 10 % ticks will be plotted. Note: Like POLAR, DIRPLOT does not rescale the % axes when a new plot is added to a held graph. % % DIRPLOT(THETA, RHO, LINE_STYLE, PARAMS) makes a plot as described above % using the linestyle specified in string LINE_STYLE, and using the rho-axis % scaling specified in vector PARAMS. Either of these optional arguments may be % used alone. Vector PARAMS is a 3-element row vector defined as % [RHOMAX RHOMIN RHOTICKS]. String LINE_STYLE is the standard MATLAB linestyle % string. See PLOT for a description. % % HPOL = DIRPLOT(...) returns a handle to the LINE object generated by the PLOT % function that actually generates the plot in DIRPLOT. % % See also POLAR, PLOT, LOGLOG, SEMILOGX, SEMILOGY. % % Tested in MATLAB v. 6.0 (R12) % % Revision History % 18 January 2014: Fixed a bug that caused RHO to be plotted incorrectly if % RHOMIN was specified, and RHO was less than RHOMIN. Thanks to Wajih Elsallal. % 11 June 2012: Changed contact email address only % 18 January 2002: Original posting
100
% % Adapted from The MathWorks POLAR function by % Steve Rickman % [email protected] if nargin <= 1 error('Requires 2, 3, or 4 input arguments.') elseif nargin == 2 line_style = 'auto'; elseif nargin == 3 if isnumeric(line_style) params = line_style; line_style = 'auto'; end end if exist('params') if length(params) ~= 3 error('Argument PARAMS must be a 3-element vector: [RHOMAX RHOMIN RHOTICKS].') end if params(1) <= params(2) error('Error in PARAMS argument. RHOMAX must be greater than RHOMIN.') end if params(3) <= 0 params(3) = 1; warning('Error in PARAMS argument. RTICKS set to 1.') end end if isstr(theta) | isstr(rho) error('THETA and RHO must be numeric.'); end if ~isequal(size(theta),size(rho)) error('THETA and RHO must be the same size.'); end if (max(theta) - min(theta)) < 6.3 warning('THETA must be in degrees'); end if min(theta) >= 0 warning('Plot is -90 to +90 or -180 to +180 degrees'); end if max(abs(theta)) > 180 error('Plot is -90 to +90 or -180 to +180 degrees'); end % Get range of theta and set flag for full or half plot. if (max(theta)-min(theta)) > 180 | max(theta) > 90 fullplot = 1; else fullplot = 0; end % Translate theta degrees to radians theta = theta*pi/180; cax = newplot; next = lower(get(cax,'NextPlot')); hold_state = ishold;
101
if hold_state & exist('params') warning('Plot is held. New plot parameters ignored') end % get x-axis text color so grid is in same color tc = get(cax,'xcolor'); ls = get(cax,'gridlinestyle'); % Hold on to current Text defaults, reset them to the % Axes' font attributes so tick marks use them. fAngle = get(cax, 'DefaultTextFontAngle'); fName = get(cax, 'DefaultTextFontName'); fSize = get(cax, 'DefaultTextFontSize'); fWeight = get(cax, 'DefaultTextFontWeight'); fUnits = get(cax, 'DefaultTextUnits'); set(cax, 'DefaultTextFontAngle', get(cax, 'FontAngle'), ... 'DefaultTextFontName', get(cax, 'FontName'), ... 'DefaultTextFontSize', get(cax, 'FontSize'), ... 'DefaultTextFontWeight', get(cax, 'FontWeight'), ... 'DefaultTextUnits','data') % only do grids if hold is off if ~hold_state % make a radial grid hold on; if ~exist('params') rticks = 10; % default ticks lims = findscale(rho,rticks); % get click, rmax, rmin click = lims(1); rmax = lims(2); rmin = lims(3); rngdisp = rmax - rmin; else rmax = params(1); rmin = params(2); rticks = params(3); rngdisp = rmax - rmin; click = rngdisp/rticks; % clip the data where RHO<rmin (bug fix Jan 2014) [m,n] = find(rho<rmin); rho(m,n) = rmin; end set(cax,'userdata',[rngdisp rmax rmin]); % save variables for added plots % define a circle th = 0:pi/50:2*pi; xunit = cos(th); yunit = sin(th); % now really force points on x/y axes to lie on them exactly inds = 1:(length(th)-1)/4:length(th); xunit(inds(2:2:4)) = zeros(2,1); yunit(inds(1:2:5)) = zeros(3,1); % plot background if necessary if ~isstr(get(cax,'color')), patch('xdata',xunit*rngdisp,'ydata',yunit*rngdisp, ... 'edgecolor',tc,'facecolor',get(gca,'color'),... 'handlevisibility','off'); end
102
% draw radial circles % angles for text labels c88 = cos(88*pi/180); s88 = sin(88*pi/180); c92 = -cos(92*pi/180); s92 = -sin(92*pi/180); for i=click:click:rngdisp tickt = i+rmin; if abs(tickt) < .001 tickt = 0; end ticktext = ['' num2str(tickt)]; hhh = plot(xunit*i,yunit*i,ls,'color',tc,'linewidth',1,... 'handlevisibility','off'); if i < rngdisp text(i*c88,i*s88, ... ticktext,'verticalalignment','bottom',... 'handlevisibility','off','fontsize',8) else text(i*c88,i*s88, ... [ticktext,' dB'],'verticalalignment','bottom',... 'handlevisibility','off','fontsize',8) end if fullplot if i < rngdisp text(i*c92,i*s92, ... ticktext,'verticalalignment','bottom',... 'handlevisibility','off','fontsize',8) else text(i*c92,i*s92, ... [ticktext,' dB'],'verticalalignment','bottom',... 'handlevisibility','off','fontsize',8) end end end set(hhh,'linestyle','-') % Make outer circle solid % plot spokes at 10 degree intervals th = (0:18)*2*pi/36; cst = cos(th); snt = sin(th); cs = [-cst; cst]; sn = [-snt; snt]; plot(rngdisp*cs,rngdisp*sn,ls,'color',tc,'linewidth',1,... 'handlevisibility','off') % label spokes in 30 degree intervals rt = 1.1*rngdisp; for i = 1:3:19 text(rt*cst(i),rt*snt(i),[int2str(90-(i-1)*10),'^o'],... 'horizontalalignment','center',... 'handlevisibility','off'); end if fullplot for i = 3:3:6
103
text(-rt*cst(i+1),-rt*snt(i+1),[int2str(-90-i*10),'^o'],... 'horizontalalignment','center',... 'handlevisibility','off'); end for i = 9:3:15 text(-rt*cst(i+1),-rt*snt(i+1),[int2str(270-i*10),'^o'],... 'horizontalalignment','center',... 'handlevisibility','off'); end end % set view to 2-D view(2); % set axis limits if fullplot axis(rngdisp*[-1 1 -1.15 1.15]); else axis(rngdisp*[-1 1 0 1.15]); end end if hold_state v = get(cax,'userdata'); rngdisp = v(1); rmax = v(2); rmin = v(3); end % Reset defaults. set(cax, 'DefaultTextFontAngle', fAngle , ... 'DefaultTextFontName', fName , ... 'DefaultTextFontSize', fSize, ... 'DefaultTextFontWeight', fWeight, ... 'DefaultTextUnits',fUnits ); % transform data to Cartesian coordinates. % Rotate by pi/2 to get 0 degrees at top. Use negative % theta to have negative degrees on left. xx = (rho+rngdisp-rmax).*cos(-theta+pi/2); yy = (rho+rngdisp-rmax).*sin(-theta+pi/2); % plot data on top of grid if strcmp(line_style,'auto') q = plot(xx,yy); else q = plot(xx,yy,line_style); end if nargout > 0 hpol = q; end set(gca,'dataaspectratio',[1 1 1]), axis off; set(cax,'NextPlot',next); set(get(gca,'xlabel'),'visible','on') set(get(gca,'ylabel'),'visible','on') % Subfunction finds optimal scaling using "scope knob"
104
% factors of 1, 2, 5. Range is limited to practical % decibel values. function lims = findscale(rho, rticks) clicks = [.001 .002 .005 .01 .02 .05 .1 ... .2 .5 1 2 5 10 20 50 100 200 500 1000]; lenclicks = length(clicks); rhi = max(rho); rlo = min(rho); rrng = rhi - rlo; rawclick = rrng/rticks; n = 1; while clicks(n) < rawclick n = n + 1; if n > lenclicks close; error('Cannot autoscale; unrealistic decibel range.'); end end click = clicks(n); m = floor(rhi/click); rmax = click * m; if rhi - rmax ~= 0 rmax = rmax + click; end rmin = rmax - click * rticks; % Check that minimum rho value is at least one tick % above rmin. If not, increase click value and % rescale. if rlo < rmin + click if n < lenclicks click = clicks(n+1); else error('Cannot autoscale; unrealistic decibel range.'); end m = floor(rhi/click); rmax = click * m; if rhi - rmax ~= 0 rmax = rmax + click; end rmin = rmax - click * rticks; end lims = [click rmax rmin];