• No results found

Ett problem som riskerar att uppstå är lagringskapaciteten inte räcker till när trafik-bullret från flera stora städer auraliseras. Eftersom det finns flera liknande platser in-om samma stad och mellan olika städer sin-om ligger på liknande avstånd till motorväg, landsväg och stadsgata skulle en uppdelning istället kunna ske baserat på avstånd och ljudnivå. Alla auraliseringar skulle då beräknas från början och skapa ett bibliotek av trafikljudfiler, och innehålla information om ljudnivå och avstånd. Ljudpunkterna på

kartan kopplas till biblioteket baserat på ljudnivån och avstånden, och samma biblio-tek skulle kunna användas till hela Sverige. För att göra det möjligt skulle avstånden till vägarna behöva delas upp i intervall, lämpligtvis med små intervall för korta av-stånd och längre intervall för längre avav-stånd. Genom att också dela upp ljudnivån i intervall på exempelvis 2 dBA, och samtidigt ha alla avståndsintervall till respektive vägtyp, skulle trafikmixen fortfarande bli korrekt. Att göra uppdelningen som resul-terar i 50 000 ljudfiler kan anses vara mycket, men om de ljudfilerna skulle fungera för hela Sverige skulle det spara både beräkningstid till att skapa auraliseringarna och lagringskapacitet.

Fördelen att använda metoden som beräknar auraliseringen för varje punkt på kartan istället för att använda ett färdigt bibliotek, är att det går att anpassa mer för den speci-fika miljön. Standardvärden för temperatur, relativ luftfuktighet och lufttryck är tilläm-pade i beräkningarna, men det är möjligt att ändra dem ifall det önskas. Om mindre områden undersöks är det också möjligt att göra finjusteringar, till exempel genom att exkludera lokaltrafiken från bullerberäkningarna och därmed erhålla ett resultat på ljudnivån som bara beror av de större vägarna. Experiment med bullerskärmar blir också lättare att genomföra när parametrarna fortfarande är möjliga att variera. Det är också möjligt att inkludera fler vägtyper vid auraliseringen genom att dela upp väg-verkets funktionella vägklasser till fler klasser än motorväg, landsväg och stadsgata.

Vid noggrannare auraliseringar skulle dessutom en inspelad trafikljudfil för en liknan-de plats kunna användas för att fånga dynamiken bättre på liknan-den unliknan-dersökta platsen.

En svaghet med att enbart inkludera trafikbullret från en väg av respektive vägtyp istället för alla vägar i närheten av en beräkningspunkt är att det saknas en del bak-grundsljud. I verkligheten skulle fler bilar höras på avstånd som skapar ett basljud av trafikbuller. Det saknas också en varierad körstil med exempelvis korsningar, rödljus och rondeller. Till viss del kompenseras avsaknaden av basljud genom att de inspel-ningar används också inkluderar bilar på längre avstånd, men såvida inte trafikbullret spelas in vid till exempel en korsning eller ett rödljus kommer inte körstilen att vara så varierad som den är i vissa delar av en stad. En lösning på den problemet är att använ-da andra inspelade trafikljudfiler för de delar av staden där körstilen är mer varierad, till exempel i närheten av stadens centrum.

Med vissa beräkningsmetoder, till exempel Cnossos-EU, kan resultatet erhållas i både total ljudnivå och på oktavbandsnivå, och detta skulle kunna användas för att göra mer korrekta beräkningar. Med en dämpning på oktavbandsnivå skulle en del av proble-met att frekvensspektruproble-met inte dämpas tillräckligt mycket på de höga frekvenserna lösas, och avsaknaden av dämpning med avseende på skärmar och markabsorption påverkar inte lika mycket. Denna metod skulle dock vara låst till att bullerkartlägg-ningen genomfördes med en sådan beräkningsmetod och därför valdes att skapa en mer generell auraliseringsmetod som fungerar med alla bullerberäkningsmetoder. För att göra auraliseringen mer lik verkligheten skulle tåg- och flygtrafiken också behöva inkluderas.

6 SLUTSATS

En metod som gör traditionella bullerutredningar lyssningsbara har genomförts, och de auraliserade ljudfilerna går att ladda upp till en karta. Med information om ljud-nivån som erhålls från SoundPLAN och avstånd till vägtyperna motorväg, landsväg och stadsgata som beräknas i ArcGIS Pro skapas auraliseringarna. Metoden är tillräck-ligt snabb för att kunna auralisera trafikbuller för 100 000 punkter på fem dagar, och är därmed tillgänglig att använda vid bullerkartläggningar även för de större städer-na i Sverige. Ljudfilerstäder-na presenteras i en karta och användaren kan jämföra ljudnivån och trafiken på flera punkter och lyssna på i en egen ljudenhet, men en helt korrekt ljudnivå kan i vissa fall vara svårt att ställa in.

Metoden är tillämpbar på bullerutredningar oavsett vilken beräkningsmetod som bul-lerutredningen har beräknats med, eftersom auraliseringen är baserad på den totala ljudnivån. Med enbart fyra ljudinspelningar av vägtrafiken kan auraliseringen ske för en hel stad, men metoden tillåter att flera ljudfiler används om det önskas för specifika fall. För minska beräkningstiden gjordes många förenklingar som bidrar till osäkerhe-ter. Skärmande föremål dämpar inte ljudnivån från de enskilda vägar, vilket riskerar att ge fel trafikmix på områden främst långt från större vägar. Användandet av stan-dardvärden på meteorologiska förhållanden kan också ge en felaktig bild av trafikbull-ret eftersom det är vanligt att andra förhållanden än standardförhållandet gäller, och ljudnivån i auraliseringen underskattas. För ett exaktare resultat föreslås att metoden utvecklas för att kunna använda oktavbandsnivå på trafikbullret, men den skulle då bara vara kompatibel med de beräkningsmetoder som stödjer det.

Referenser

Beranek, L. & Mellow, T. (2019). Acoustics: sound fields, transducers and vibration. Andra upplagan. Academic press. eBook ISBN: 9780128152287

Berge, T. & Olsen, H. (2021). Road traffic noise spectra – the need for update. Baltic-nordic acoustics meeting, 3-5 maj, Oslo, Norge.

Boverket (2020). Regler och riktvärden för buller. https://www.boverket.

se/sv/PBL-kunskapsbanken/planering/detaljplan/temadelar-detaljplan/

buller-vid-detaljplanering/regler-och-riktvarden-for-buller/[2021-05-10]

Chun, C. & Kim, H. K. (2016). Frequency-Dependent Amplitude Panning for the Stereophonic Image Enhancement of Audio Recorded Using Two Closely Spaced Microphones. Applied Science. 6(2), https://doi.org/10.3390/app6020039

Finne, P. & Fryd, J. (2016). Road Noise Auralisation for Planning New Roads.

INTER-NOISE and NOISE-CON Congress and Conference Proceedings, InterNoise16, Hamburg Tyskland. s. 3222-3227(6). https://www.ingentaconnect.com/contentone/

ince/incecp/2016/00000253/00000005/art00041#Refs[2021-06-15]

Forssén, J., Kaczarek, T., Alvarsson, J., Lundén, P. & Nilsson, M. E. (2009). Au-ralization of traffic noise within the LISTEN project - Preliminary results for passenger car pass-by. Euronoise 26-28 oktober 2019, Edinburgh, Storbritanni-en. https://www.researchgate.net/publication/285173767_Auralization_

of_traffic_noise_within_the_LISTEN_project_-_Preliminary_results_for_

passenger_car_pass-by[2021-06-15]

Fu, Y. & Murphy, D. (2018). A comparative overview of traffic flow modelling ap-proaches for auralisation. Euronoise, 27-31 maj 2018, Heraklion, Kreta, Grekland. S.

273-278.

Giannakopoulos, T. & Pikrakis, A. (2014). Introduction to Audio Analysis : A MATLAB®

Approach. Academic Press. https://doi.org/10.1016/C2012-0-03524-7

Kaczmarek, T.& Preis, A. (2010). of Time-Varying Road-Traffic Noise. Archives Of Ac-oustics, 35(3), s 383-393. DOI: 10.2478/v10168-010-0032-2

Kephalopoulos, S., Paviotti, M. & Anfosso-Lédée, F. (2012). Common Noise Assessment Methods in Europe (CNOSSOS-EU). (EUR 25379 EN). Luxenburg: Publications Office of the European Union, 2012 European Commission Joint Research Centre. http://

dx.doi.org/10.2788/32029

Larsson, C. (1996). Atmospheric absorption conditions for horizontal sound propaga-tion. Applied acoustics. 50(3), s 231-245. https://doi.org/10.1016/S0003-682X(96) 00068-0

Larsson, K. & Jonasson, H. (2015). Uppdaterade beräkningsmodeller för vägtrafikbul-ler. (SP Rapport 2015:72) Borås: SP Sveriges Tekniska Forskningsinstitut https:

//www.trafikverket.se/contentassets/773857bcf506430a880a79f76195a080/

forskningsresultat/sp_uppdaterade_bullerberakningar.pdf

Murphy, E. & King, E. (2014). Environmental noise pollution: noise mapping, public health, and policy. Elsevier. https://doi.org/10.1016/C2012-0-13587-0

Naturvårdsverket. (2021). Resultat från bullerkartläggning enligt förordningen för omgiv-ningsbuller. https://www.naturvardsverket.se/Sa-mar-miljon/Manniska/Buller/

Resultat-fran-bullerkartlaggning-enligt-forordningen-for-omgivningsbuller/

[2021-06-16]

Naturvårdsverket, Vägverket, Nordiska ministerrådet (1996). Vägtrafikbul-ler. Nordisk beräkningsmodell, reviderad 1996. (4653). Naturvårdsverket Förlag.

https://www.naturvardsverket.se/Om-Naturvardsverket/Publikationer/ISBN/

4000/91-620-4653-5/

Nilson, E., Johansson, A-C., Brudskog, J., Sjökvist, L-G. & Holmberg, D. (2005).

GRUNDLÄGGANDE AKUSTIK. Engineering Acoustics, LTH, Lund Univer-sity. TVBA-3116, Tredje upplagan. https://www.akustik.lth.se/fileadmin/

tekniskakustik/education/2020_VTAF01/SE-LTH-grundlaggande-akustik.pdf [2021-06-16]

Nilsson, M. E., Forssén, J., Lundén, P., Peplow, A. & Hellström, B. (2011). LISTEN Au-ralization of Urban Soundscapes. https://publications.lib.chalmers.se/records/

fulltext/232736/local_232736.pdf. [2021-06-16]

Olafsen, S. & Killengreen, T. F. (2021). Spectrum shape och road traffic noise at 50 km/h, Baltic-nordic acoustics meeting, 3-5 maj, Oslo, Norge.

Thomas, P., Wei, W., Renterghem, T. & Botteldooren, D. (2016). Measurement-based auralization methodology for the assessment of noise mitigation measures. Journal of Sound and Vibration 379(29), s 232-244. DOI:10.1016/j.jsv.2016.05.039

Salomons, E. M. (2001). Computational atmospheric acoustics. Springer Science + Busi-ness Media, B.V. https://doi.org/10.1007/978-94-010-0660-6

The Danish Environmental Protection Agency. (u.å.). Nord2000: Nordic noi-se prediction method. https://eng.mst.dk/air-noinoi-se-waste/noinoi-se/traffic-noinoi-se/

nord2000-nordic-noise-prediction-method/[2021-05-26]

Trafikverket (2018). Trafikverkets åtgärdsprogram enligt förordningen om omgiv-ningsbuller, 2019-2023. (2018:196). Trafikverket. ISBN 978-91-7725-366-2. https:

Trafikverket (2020b). Dataproduktspecifikation – Funktionell vägklass. Version 9.0.

https://www.trafikverket.se/TrvSeFiler/Dataproduktspecifikationer/V%C3%

Trafikverket. (2021). Beräkna och utreda buller och vibration. https:

//www.trafikverket.se/for-dig-i-branschen/Planera-och-utreda/

Planerings--och-analysmetoder/Berakna-och-utreda-buller-och-vibrationer/

[2021-02-11]

Trafikverket. (u.å.). Lastkajen. https://lastkajen.trafikverket.se/ [2021-03-09]

Opublicerat material

Figur 6: ÅF ljud och vibrationer. (2016). Västerås Bullerkartläggning. Personlig kommu-nikation med Friman, M 2021-06-07 [e-mail]

Ljudfil motorväg: Friman, M (2015). Personlig kommunikation 2021-01-27 [e-mail].

BILAGA A: Pythonscript för atmosfärsdämpning och geometrisk spridning

1 i m p o r t n u m p y as np

2 f r o m m a t h i m p o r t sqrt , exp 3

4 def a t m o s f a r s d a m p n i n g ( f , T , rh , p _ o m g i v n i n g ):

5 """

6 Ber ä k n a r a t m o s f ä r s a b s o r b t i o n med ISO s t a n d a r d 7

8 f : F r e k v e n s

9

10 T : T e m p e r a t u r ( g r a d e r C )

11

12 hr : R e l a t i v l u f t f u k t i g h e t (%)

13

14 p _ o m g i v n i n g : L u f t t r y c k ( hPA ) 15

16 O u t p u t : l j u d d ä m p n i n g ( dB / m ) 17 """

18 T = 2 7 3 . 1 5 + T # K o n v e r t e r a r fr å n C e l s i u s t i l l K e l v i n 19 T01 = 2 7 3 . 1 6 # T r i p p l e p u n k t i g r a d e r K e l v i n

20 T0 = 2 9 3 . 1 5

21 p _ r e f = 1 0 1 3 . 2 5 # s t a n d a r d t r y c k i hPa 22

23 # Iso f o r m e l f ö r s p e c i f i k l u f t f u k t i g h e t 24 pr = p _ o m g i v n i n g / p _ r e f

25 p _ s a t = 1 0 * * ( - 6 . 8 3 4 6 * ( T01 / T ) * * 1 . 2 6 1 + 4 . 6 1 5 1 ) 26 h = rh * p _ s a t / p _ o m g i v n i n g ;

27

28 # * * * * * * * * * * * ISO s t a n d a r d * * * * * * * * * * * 29 t a u r = T / T0

30 fr0 = pr * ( 2 4 + 4 0 4 0 0 * h * ( 0 . 0 2 + h ) / ( 0 . 3 9 1 + h ))

31 frN = pr *( t a u r ) * * ( - 1 / 2 ) * ( 9 + 2 8 0 * h * exp ( - 4 . 1 7 * ( ( t a u r ) * * ( - 1 / 3 ) - 1 ) ) )

32 b1 = 0 . 1 0 6 8 * exp ( -3352/ T )/( frN + f * * 2 / frN ) 33 b2 = 0 . 0 1 2 7 5 * exp ( - 2 2 3 9 . 1 / T )/( fr0 + f * * 2 / fr0 )

34 a l p h a = 8 . 6 8 6 * f * * 2 * t a u r * * ( 1 / 2 ) * ( 1 . 8 4 * 1 0 * * ( - 1 1 ) / pr + t a u r * * ( - 3 ) * ( b1 + b2 )) 35

36 r e t u r n a l p h a 37

38 39

40 def d a m p n i n g ( in_data , x , x _ s o u r c e , a l p h a ):

41 """

42 D ä m p a r l j u d e t med a t m o s f ä rsd ä m p n i n g och g e o m e t r i s k s p r i d n i n g 43

44 x : A v s t å nd m e l l a n l j u d k ä lla och m o t t a g a r e 45

46 x _ s o u r c e : A v s t å nd m e l l a n l j u d k ä lla t i l l i n s p e l n i n g s p u n k t 47

48 a l p h a : L j u d a b s o r b t i o n i ( dB / m e t e r ) ber ä k n a t med ISO s t a n d a r d 49 """

50

51 # T r a n s f o r m e r a r l j u d f i l e n t i l l f r e k v e n s p l a n e t 52 y =np. fft . r f f t ( i n _ d a t a )

53

54 # Ber ä k n a s a t m o s f ä rsd ä m p n i n g

55 a l p h a =[ a *( x - x _ s o u r c e ) for a in a l p h a ] # D ä m p n i n g e n per f r e k v e n s

56 y _ a t m =[ y_i /np. s q r t ( 1 0 * * ( a l p h a _ i / 1 0 ) ) for y_i , a l p h a _ i in zip ( y , a l p h a )]

57 p _ a t m =np. fft . i r f f t ( y _ a t m ) # i n v e r s f o u r i e r t r a n s f o r m 58

59 # D ä m p n i n g p å g r u n d av g e o m e t r i s k s p r i d n i n g ( c y l i n d r i s k s p r i d n i n g ) 60 p _ a t m _ g e o =[ p * s q r t ( x _ s o u r c e / x ) for p in p _ a t m ]

61

62 r e t u r n p _ a t m _ g e o

BILAGA B: Pythonscript för auralisering

1 # c o d i n g : UTF 8 -2 """

3 A u t h o r : Maria - T h e r e s e C a r l s e n < maria - t h e r e s e . c a r l s e n @ e f t e r k l a n g . se >

4 A u r a l i s e r a r t r a f i k b u l l e r som ä r b a s e r a d e p å l j u d f i l e r fr å n v ä g t r a f i k e n . 5 D ä m p a r med a t m o s f ä rsd ä m p n i n g och g e o m e t r i s k s p r i d n i n g

6 """

7

8 i m p o r t os , sys

9 f r o m s c i p y. io . w a v f i l e i m p o r t r e a d as w a v r e a d 10 f r o m s c i p y. io . w a v f i l e i m p o r t w r i t e as w a v w r i t e 11 i m p o r t n u m p y as np

12 f r o m a i r _ i s o i m p o r t a t m o s f a r s d a m p n i n g , d a m p n i n g 13

14 def p _ r a t i o ( L1 , L2 , L _ a m p ):

15 """

16 L1 = l j u d e t som ska j u s t e r a s 17

18 L2 = l j u d e t som L1 j ä mf ö rs e m o t 19

20 L _ a m p = hur m å nga dB som L1 ska h ö jas med f ä mf ö rt mot L2

21 """

22 d i f f _ L 1 _ L 2 = L1 - L2

23 d e l t a _ L = L _ a m p - d i f f _ L 1 _ L 2 24 r e t u r n 1 0 * * ( d e l t a _ L / 2 0 )

25

26 def e x t r a _ d a m p n i n g ( avstand , p , x10 ):

27 """

28 a v s t a n d = A v s t å nd t i l l v ä gen 29

30 p = l j u d v e k t o r n 31

32 x10 = a v s t å nd d ä r 10 dB d ä m p n i n g g ä l l e r 33 """

34 if a v s t a n d >= x10 : e x t r a _ d a m p n i n g = -10 35 e l s e: e x t r a _ d a m p n i n g = -5

36 p _ r a t i o _ e x t r a = 1 0 * * ( e x t r a _ d a m p n i n g / 2 0 ) 37 r e t u r n [ x * p _ r a t i o _ e x t r a for x in p ] 38

39 def o p e n _ f i l e ( f i l n a m n ):

40 w i t h o p e n ( filnamn , " r ") as t a b e l l : 41 l i n e s = t a b e l l . r e a d l i n e s ()

42 f a s a d _ i d = [] # id f ö r f a s a d p u n k t e n

43 h u s _ i d = [] # id f ö r h u s e t

44 l e v e l _ f a s a d = [] # L j u d v i n å n vid f a s a d p u n k t e n 45 a v s t a n d _ m o t o r v a g = []

46 a v s t a n d _ l a n d s v a g = []

47 a v s t a n d _ s t a d s g a t a = []

48 for l i n e in l i n e s :

49 a s _ l i s t = l i n e . s p l i t ( " ; " ) 50 f a s a d _ i d . a p p e n d ( a s _ l i s t [ 2 ] ) 51 h u s _ i d . a p p e n d ( a s _ l i s t [ 4 ] )

52 l e v e l _ f a s a d . a p p e n d ( f l o a t ( a s _ l i s t [ -4]. r e p l a c e ( ’ , ’ , ’. ’)))

53 a v s t a n d _ m o t o r v a g . a p p e n d ( f l o a t ( a s _ l i s t [ -3]. r e p l a c e ( ’ , ’ , ’. ’))) 54 a v s t a n d _ l a n d s v a g . a p p e n d ( f l o a t ( a s _ l i s t [ -2]. r e p l a c e ( ’ , ’ , ’. ’))) 55 a v s t a n d _ s t a d s g a t a . a p p e n d ( f l o a t ( a s _ l i s t [ -1]. r e p l a c e ( ’ , ’ , ’. ’)))

56 r e t u r n f a s a d _ i d , hus_id , l e v e l _ f a s a d , a v s t a n d _ m o t o r v a g , a v s t a n d _ l a n d s v a g , a v s t a n d _ s t a d s g a t a 57

58

59 # L a d d a r in t e x t f i l e n fr å n GIS med a v s t å nd m e l l a n f a s a d e r och v ä gar

60 f a s a d _ i d , hus_id , l e v e l _ f a s a d , a v s t a n d _ m o t o r v a g , a v s t a n d _ l a n d s v a g , a v s t a n d _ s t a d s g a t a = o p e n _ f i l e ( f a s a d f i l ) 61

62 f s _ m o t o r v a g , i n _ d a t a _ m o t o r v a g = w a v r e a d ( ’ m o t o r v a g . wav ’) # m o n o 63 fs_lv , i n _ d a t a _ l a n d s v a g = w a v r e a d ( ’ l a n d s v a g . wav ’) # m o n o 64 fs_sg , i n _ d a t a _ s t a d s g a t a = w a v r e a d ( ’ s t a d s g a t a . wav ’) # m o n o

65 fs_lg , i n _ d a t a _ l o k a l g a t a = w a v r e a d ( ’ l o k a l g a t a . wav ’) # s t e r e o 66 f s _ f a g e l , i n _ d a t a _ f a g e l = w a v r e a d ( ’ f a g l a r . wav ’) # s t e r e o 67 f s _ s a m t a l , i n _ d a t a _ s a m t a l = w a v r e a d ( ’ s a m t a l . wav ’) # s t e r e o 68

69 # K o n t r o l l e r a r att det ä r s a m m a s a m p l e r a t e p å a l l a l j u d f i l e r

70 if f s _ m o t o r v a g == f s _ l v == f s _ s g == f s _ l g == f s _ f a g e l == f s _ s a m t a l : 71 fs = f s _ m o t o r v a g

72 e l s e:

73 p r i n t( ’\ x1b [ 0 ; 3 1 ; 4 0 m ’ + " V a r n i n g : S a m p l e r a t e ä r i n t e s a m m a p å a l l a i n l a d d a d e l j u d f i l e r "+ ’\ x1b [0 m ’) 74 sys . e x i t ()

75

76 # G ö r a l l a f i l e r ä r l i k a l å nga ( s a m t a l ä r 9.5 s l ä n g r e )

77 m i n l a n g d = min (np. s i z e ( i n _ d a t a _ m o t o r v a g ,0) , np. s i z e ( i n _ d a t a _ l a n d s v a g ,0) , \ 78 np. s i z e ( i n _ d a t a _ s t a d s g a t a ,0) , np. s i z e ( i n _ d a t a _ l o k a l g a t a ,0) , \ 79 np. s i z e ( i n _ d a t a _ f a g e l ,0) , np. s i z e (( i n _ d a t a _ s a m t a l - fs * 9 . 5 ) , 0 ) ) 80 i n _ d a t a _ m o t o r v a g = i n _ d a t a _ m o t o r v a g [ : m i n l a n g d ]

81 i n _ d a t a _ l a n d s v a g = i n _ d a t a _ l a n d s v a g [ : m i n l a n g d ] 82 i n _ d a t a _ s t a d s g a t a = i n _ d a t a _ s t a d s g a t a [ : m i n l a n g d ] 83 i n _ d a t a _ l o k a l g a t a = i n _ d a t a _ l o k a l g a t a [ : m i n l a n g d , :]

84 i n _ d a t a _ f a g e l = i n _ d a t a _ f a g e l [ : m i n l a n g d , :]

85 i n _ d a t a _ s a m t a l = i n _ d a t a _ s a m t a l [ :( m i n l a n g d + int ( fs *9.5)) , :] # S a m t a l s f i l e n ä r 9.5 s l ä n g r e 86

87 # L ä g g e r i h o p f å gel , l o k a l g a t a och s a m t a l

88 f _ l g = np. add ( i n _ d a t a _ f a g e l , i n _ d a t a _ l o k a l g a t a ) 89 n o l l o r = np. z e r o s (( int ( fs *9.5) , 2) , d t y p e = int ) 90 f _ l g = np. c o n c a t e n a t e (( nollor , f _ l g ) , a x i s =0)

91 s _ f _ l g = np. add ( i n _ d a t a _ s a m t a l , f _ l g ) # Samtal , f å g l a r och l o k a l g a t a 92

93 # Ber ä k n a r l j u d n i v å 94 P _ r e f = 2 * 1 0 * * ( - 5 )

95 L _ s a m t a l = 10*np. l o g 1 0 ( ( max ( abs ( i n _ d a t a _ s a m t a l [ : , 0 ] ) ) * * 2 ) / ( P _ r e f * * 2 ) ) 96

97 # R Ä K N A R UT D Ä M P N I N G PER M E T E R PER F R E K V E N S

98 T =10 99 hr =50

100 ps = 1 0 1 3 . 2 5 # hPa

101 f =np. fft . r f f t f r e q ( len ( i n _ d a t a _ m o t o r v a g ) ,1/ fs ) 102 a l p h a _ i s o = []

103 for i in r a n g e (0 ,( len ( f ) ) ) :

104 a l p h a _ i s o _ f = a t m o s f a r s d a m p n i n g ( f [ i ] , T , hr , ps ) # Ber ä k n a r d ä m p n i n g e n 105 a l p h a _ i s o . a p p e n d ( a l p h a _ i s o _ f )

106 107

108 # * * * * * * * * * * * * ’ D Ä M P A R P Å A V S T Å N D E T * * * * * * * * * * * * * * * * * ’ ’ 109 for i in r a n g e (0 , len ( h u s _ i d )):

110

111 # S k a p a r en tom l j u d v e k t o r att a d d e r a v ä g l j u d p å 112 v a g a r = np. z e r o s (( m i n l a n g d ) , d t y p e = int )

113

114 # M O T O R V Ä G

115 if a v s t a n d _ m o t o r v a g [ i ] != -1:

116 p _ m o t o r v a g = d a m p n i n g ( i n _ d a t a _ m o t o r v a g , fs , x = a v s t a n d _ m o t o r v a g [ i ] , \ 117 x _ s o u r c e =30 , a l p h a _ i s o = a l p h a _ i s o )

118 if a v s t a n d _ m o t o r v a g [ i ] >= 2 0 0 :

119 p _ m o t o r v a g = e x t r a _ d a m p n i n g ( a v s t a n d _ m o t o r v a g [ i ] , p _ m o t o r v a g , x10 = 3 0 0 ) 120 v a g a r = np. add ( vagar , p _ m o t o r v a g )

121 e l s e: a v s t a n d _ m o t o r v a g [ i ] = 1 0 0 0 # Ist ä l l e t f ö r -1 f ö r att k u n n a k o n t r o l l e r a om a n d r a v ä gar ä r n ä r m r e 122

123 # L A N D S V Ä G

124 if a v s t a n d _ l a n d s v a g [ i ] != -1 and a v s t a n d _ l a n d s v a g [ i ] < a v s t a n d _ m o t o r v a g [ i ]:

125 p _ l a n d s v a g = d a m p n i n g ( i n _ d a t a _ l a n d s v a g , fs , a v s t a n d _ l a n d s v a g [ i ] , x _ s o u r c e =10 , a l p h a _ i s o = a l p h a _ i s o ) 126 if a v s t a n d _ l a n d s v a g [ i ] >= 2 0 0 :

127 p _ l a n d s v a g = e x t r a _ d a m p n i n g ( a v s t a n d _ l a n d s v a g [ i ] , p _ l a n d s v a g , x10 = 3 0 0 ) 128 v a g a r = np. add ( vagar , p _ l a n d s v a g )

129 e l s e: a v s t a n d _ l a n d s v a g [ i ] = 1 0 0 0 # Ist ä l l e t f ö r -1 f ö r att k u n n a k o n t r o l l e r a om a n d r a v ä gar ä r n ä r m r e 130

131 # S T A D S G A T A

132 if a v s t a n d _ s t a d s g a t a [ i ] != -1 and a v s t a n d _ s t a d s g a t a [ i ] < a v s t a n d _ m o t o r v a g [ i ] \ 133 and a v s t a n d _ s t a d s g a t a [ i ] < a v s t a n d _ l a n d s v a g [ i ]:

134 p _ s t a d s g a t a = d a m p n i n g ( i n _ d a t a _ s t a d s g a t a , fs , a v s t a n d _ s t a d s g a t a [ i ] , x _ s o u r c e =10 , a l p h a _ i s o = a l p h a _ i s o ) 135 if a v s t a n d _ s t a d s g a t a [ i ] >= 1 0 0 :

136 p _ s t a d s g a t a = e x t r a _ d a m p n i n g ( a v s t a n d _ s t a d s g a t a [ i ] , p _ s t a d s g a t a , x10 = 2 0 0 ) 137 v a g a r = np. add ( vagar , p _ s t a d s g a t a )

138

139 # J u s t e r a r den t o t a l a l j u d v o l y m e n fr å n v ä g a r n a s å att den b l i r l i k a h ö g som v ä r d e t fr å n S o u n d p l a n 140 # Ber ä k n a r den d i g i t a l a l j u d v o l y m e n fr å n v ä g a r n a

141 L _ v a g _ d i g i t a l = 10*np. l o g 1 0 ( ( max ( abs ( v a g a r ) ) * * 2 ) / ( P _ r e f * * 2 ) )

142 # Ber ä k n a d den r i k t i g a l j u d v o l y m e n fr å n v ä g a r n a . Utg å r fr å n att s a m t a l e t ä r 60 dB 143 L _ v a g _ v e r k l i g = L _ v a g _ d i g i t a l - L _ s a m t a l + 60

144 # S k i l l n a d e n m e l l a n den a u r a l i s e r a d e l j u d n i v å n och den ber ä k n a d e l j u d n i v å n fr å n S o u n d p l a n 145 s k i l l n a d _ a u r a l i s e r a d _ S o u n d p l a n = L _ v a g _ v e r k l i g - l e v e l _ f a s a d [ i ]

146 # Om den a u r a l i s e r a d e l j u d n i v å n h ö gre ä n den ber ä k n a d e ska den d ä m p a s mer 147 if s k i l l n a d _ a u r a l i s e r a d _ S o u n d p l a n > 0:

148 # S k i l l n a d m e l l a n den l j u d n i v å n fr å n S o u n d p l a n och r e f e r e n s n i v å n p å 60 dBA 149 d B _ s k i l l n a d _ v a g _ s a m t a l = l e v e l _ f a s a d [ i ] - 60

150 # Ber ä k n a r f ö rst ä r k n i n g s f a k t o r n i r e l a t i o n til s a m t a l e t

151 r o a d _ a m p = p _ r a t i o ( L _ v a g _ d i g i t a l , L _ s a m t a l , d B _ s k i l l n a d _ v a g _ s a m t a l ) 152 # D ä m p a r v ä g l j u d e t

153 v a g a r = [ x * r o a d _ a m p for x in v a g a r ] 154

155

156 # L ä g g e r i h o p a l l a l j u d f i l e r

157 v a g _ s t e r e o = np. a r r a y ( l i s t ( zip ( vagar , v a g a r ))) # G ö r m o n o f i l t i l l s t e r e o f i l 158 v a g _ s t e r e o = np. c o n c a t e n a t e (( nollor , v a g _ s t e r e o ) , a x i s =0)

159 v a g _ s _ f _ l g = np. add ( v a g _ s t e r e o , s _ f _ l g ) # L ä g g e r i h o p v ä g f i l e n med b a k g r u n d s l j u d e n 160

161 # S p a r a r l j u d f i l e n

162 w a v w r i t e ( f a s a d _ i d [ i ] + " . wav " , fs , v a g _ s _ f _ l g . a s t y p e (np. i n t 1 6 ))

Related documents