PC-baseret analyzer og equalizer



Relaterede dokumenter
PC-baseret analyzer og equalizer

Rapport. Undersøgelse af Dantale DVD i forhold til CD. Udført for Erik Kjærbøl, Bispebjerg hospital og Jens Jørgen Rasmussen, Slagelse sygehus

Notat vedrørende projektet EFP06 Lavfrekvent støj fra store vindmøller Kvantificering af støjen og vurdering af genevirkningen

wwwdk Digital lydredigering på computeren grundlæggende begreber

Testsignaler til kontrol af en målekæde

Filtre. Passive filtre har ikke forstærkende led, som fx operationsforstærkere.

Tips og vejledning vedrørende den tredelte prøve i AT, Nakskov Gymnasium og HF

EMSD 7 Gr. 15 Aalborg Universitet

Signalbehandling 1. Compressorer, gates, digitale filtre. Litteratur: Roads s

Hassansalem.dk/delpin User: admin Pass: admin BACKEND

Den menneskelige cochlea

Rapport Arkil A/S Arkil Asfalt Støjkortlægning

Fysikøvelse Erik Vestergaard Musik og bølger

Software Dokumentation

Basrefleks kabinettet

Automatisering Af Hverdagen

Eksempel på logistisk vækst med TI-Nspire CAS

Total systembeskrivelse af AD1847

Michael Jokil

Opgaver hørende til undervisningsmateriale om Herons formel

9. KONKLUSION

Vejledning: Anvendelse af kuber på SLS-data fra LDV i Excel Målgruppe: Slutbruger

Fremstilling af test og test materiale

Gyptone lofter 4.1 Akustik og lyd

Fluke ScopeMeter 190 serien

Måling af trinlyddæmpning for et trægulv på strøer på Kombi Max kiler udlagt på et 140 mm betondæk

Kompetenceområdet fremstilling. Mandag den 3. august 2015

3 Overføringsfunktion

På opdagelse i Mandelbrot-fraktalen En introduktion til programmet Mandelbrot

Læsehuset hjælp. Læsehuset 1.0. Mikro Værkstedet A/S

Øvelser 10. KlasseCenter Vesthimmerland Kaj Mikkelsen

Underbilag 14 C: Afprøvningsforskrifter til prøver og tests

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

At-VEJLEDNING ARBEJDETS UDFØRELSE D.6.6. Brug af ultralyd

Sådan laver du en film (VIDEO)

Kom/IT rapport Grafisk design Anders H og Mikael

Piano Tuning & String Analyzing Tool

Projekt - Valgfrit Tema

Manual og Hjælp Skoletasken 2

Indholdsfortegnelse. Indholdsfortegnelse.. side 2. Adgang til webgraf 3. Opslag adresse Styring af layout.. 5. Zoom funktioner..

Formålet med dette forsøg er at lave en karakteristik af et 4,5 V batteri og undersøge dets effektforhold.

Tilfredshedsundersøgelse Brugere og pårørende. Bofællesskaber og støttecenter Socialpædagogisk Center

LÆRERVEJLEDNING. Fattigdom og ulighed

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

SUB BRUGERMANUAL 05 ILLUSTRATIONER 07 SPECIFIKATIONER 07 PROBLEMLØSNING. w w w. a r g o n a u d i o. c o m 1

Det første, eleverne møder, er siden Kom godt i gang. Her får de en kort introduktion til de funktioner, de skal bruge undervejs i forløbet.

Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Ideen er simpel:

Evaluering af Soltimer

AVR MP Ingeniørhøjskolen i Århus Michael Kaalund

CCS Formål Produktblad December 2015

FFM Matematik pop-up eftermiddag. CFU, UCC 11. Maj 2015

Tjek. lønnen. Et værktøj til at undersøge lokal løndannelse og ligeløn på offentlige arbejdspladser udgave Varenr. 7520

Vurdering af digitalt læringsmiddel:

Rapport vedrørende. etniske minoriteter i Vestre Fængsel. Januar 2007

Den ideelle operationsforstærker.

Digitale periodiske signaler

SPSS introduktion Om at komme igang 1

Dansk-historie-opgave 1.g

Opgavesæt udviklet til kursus Grundlæggende elektronik på mobile maskiner 2. Udviklet i 2015

UML til kravspecificering

Projektopgave Observationer af stjerneskælv

Afsluttende - Projekt

Slutrapport - Lavfrekvent støj fra decentrale elproduktionsenheder

Whitepaper. Projektstatus, fasestatus og projektstadier. Indledning 2 Projektstatus og projektstadier 2

Transienter og RC-kredsløb

Førsteårsprøven Projektbeskrivelse 2. Semester Multimediedesigner

SUB BRUGERMANUAL 05 ILLUSTRATIONER 07 SPECIFIKATIONER 07 PROBLEMLØSNING. w w w. a r g o n a u d i o. c o m 1

Matematik, basis. Undervisningen på basisniveau skal udvikle kursisternes matematikkompetencer til at følge undervisningen

SIKKER CYKLIST digitalt undervisningsmateriale

Hvad skal du vide for at bygge din egen computer?

Analyzer & Equalizer. Afdeling for kommunikations teknologi 19. december 2002 Aalborg Universitet. Gruppe 506

Bredbånds-TV. Brugervejledning. ComX brugervejledning version 4.0

Visioner, missioner og værdigrundlag i de 50 største virksomheder i Danmark

Bilag til den indsigelse, som sommerhusgrundejerforeningerne på Samsø har fremsendt til Skov- og Naturstyrelsen den 27. april 2012.

Anklagemyndighedens Vidensbase

UniLock System 10. Manual til T550 Secure Radiomodtager og håndsender. Version 2.0 Revision

Eksamenskatalog - Prøveformer og bedømmelsesgrundlag

Bias Reducing Operating System - BROS -

AT og Synopsisprøve Nørre Gymnasium

Teknisk Notat. Støj fra vindmøller ved andre vindhastigheder end 6 og 8 m/s. Udført for Miljøstyrelsen. TC Sagsnr.: T Side 1 af 15

Installatør Guide. CTS6000 Webcontrol

Klasse 1.4 Michael Jokil

HAC telefon testrapport

PEST analyse. Den lille lette... Indføring i Erhvervsøkonomi på HD studiet. S i d e 1 11

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre.

Formativt evalueringsskema

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

Elektronikken bag medicinsk måleudstyr

LÆSNING OG SKRIVNING I MATEMATIK

Online billede filtrering

Christianshavns Gymnasium Studieretningsopgaven i 2.g (SRO) januar- marts 2014 VEJLEDNING

Første del af rapporten består af et diagram, der viser, hvor mange point eleverne på landsplan fik i de enkelte opgaver.

Brøker kan repræsentere dele af et hele som et område (fx ½ sandwich, ½ pizza, ½ æble, ½ ton grus).

Objektorientering. Programkvalitet

SOFTWARE DOKUMENTATION

Side 1 af 10. Lydbreve. Indhold. Indhold...1 Forord...2 Lydoptager...2 Ændring af indtalt lyd...4 Sende dit lydbrev...8 Lyde i Worddokumenter...

Transkript:

PC-baseret analyzer og equalizer Institut for elektroniske systemer 19. december 2002 Aalborg Universitet Gruppe 506

AALBORG UNIVERSITET INSTITUT FOR ELEKTRONISKE SYSTEMER AFDELING FOR KOMMUNIKATIONSTEKNOLOGI Fredrik Bajersvej 7 DK-9220 Aalborg Øst Telefon 96 35 80 80 TITEL: PC-baseret analyzer og equalizer TEMA: Apparat/system konstruktion PROJEKTPERIODE: 5. semester september til december 2002 PROJEKTGRUPPE: 506 GRUPPEMEDLEMMER: Dan Dejgård Hermansen Kristian Kjær Hans Johnny Nørgaard Madsen Torben Nørregaard Matzen Morten Højfeldt Rasmussen Steven André Skaaning Jesper Mølgaard Sommerset VEJLEDER: Søren Krarup Olesen OPLAGSTAL: 10 RAPPORT DEL I: 86 sider RAPPORT DEL II: 87 sider SYNOPSIS Formålet med dette projekt er at designe og konstruere et system som i realtid kan analysere (analyzer) og efter kalibrering korrigere (equalizer) lydbilledet fremkommet ved afspilning af lyd fra en pc igennem multimediehøjttalere. Det implementerede system analyserer og korrigerer lydbilledet ved båndpasfiltrering igennem digitale IIR-filtre. Det analyserede frekvensspektrum vises på et histogram. Test af analyzeren med lyserød støj viser, i lighed med stillede designkrav, et ensartet histogram opdateret i realtid. Equalizeren viser betydelige amplitudeudsving i ved crossover-frekvensen mellem to vilkårlige båndpasfiltre. Kalibreringens regulering fungerer. Crossover-forvrængningen er simuleret i det analoge domæne og også her fundet, dog i mindre udstrækning. Dette foreslås løst ved en gennemgribende analyse af analoge filtertyper, for at finde den eller de rette til den aktuelle filterindstilling. AFSLUTTET: 19. december 2002 Projektgruppe 506, Aalborg Universitet

Forord Denne rapport er udarbejdet af gruppe 506, 5. semester på elektronik og elektroteknik ved Institut for elektroniske systemer, Aalborg Universitet. Målgruppen for rapporten er medstuderende. Referencer til den benyttede litteratur er udført efter Harvard-metoden, med kilderne opstillet alafabetisk efter forfatteren, hvor denne kendes. En reference før et punktum henviser til specifik information i den foregående sætning. En henvisning efter et punktum henviser til det foregående afsnit. Hvor en kilde danner grundlag for et helt kapitel er dette anført i starten af kapitlet. Vedlagt findes en CD, som indeholder datablade, rapporten i PDF- og DVI-format, samt kildekode til den under projektet udarbejdede software. En henvisning til en fil på den vedlagte CD er i rapportteksten udført som følger: (CD-ROM,, projektoplaeg.pdf). Filen "projektoplaeg.pdf"kan her findes i biblioteket "rapport/"på CD en. Henvisning til et brudstykke af kildekoden er i rapportteksten udført som følger: /* Kode taget fra aegui.cpp r. 1.5*/. Den fulde kode for den seneste version kan findes i appendiks, og den aktuelle version (her 1.5) kan hentes fra CD en ved hjælp af CVS. Dokumentation for klassetest forefindes i de relaterede afsnit, under softwaredesign. Apparaturliste, eldiagram samt komponentliste er indsat sidst i rapporten. Hvor tal i hexadecimal benyttes er disse anført med syntaksen: 0xA1, som repræsenterer tallet 161 i traditionel decimalnotation. 0x-præfikset angiver hexadecimalnotation. I forbindelse med forsøg i det lyddøde rum vil vi gerne rette tak til Claus Vestergaard for en hjælp med apparaturvalg, opstilling og målinger. Dan Dejgaard Hermansen Kristian Kjær Hans Johnny Nørgaard Madsen Torben Nørregaard Matzen Morten Højfeldt Rasmussen Steven André Skaaning Jesper Mølgaard Sommerset Aalborg Universitet, 19. december 2002

Indhold I Rapport 1 1 Indledning 2 2 Foranalyse - det samlede lydbillede 3 2.1 Højttalerdesignets indflydelse på lydbilledet............... 3 2.1.1 Membranen............................ 4 2.1.2 Kabinettet............................. 4 2.2 Omgivelsernes indflydelse på lydbilledet................. 4 2.2.1 Reflektioner............................ 5 2.3 Dynamiske påvirkninger......................... 5 2.4 Afslutning på foranalyse......................... 6 3 Analyse - systemet opstilles 7 3.1 Softwareanalyse med UML........................ 7 3.2 Grundlæggende kravdannelse....................... 8 3.2.1 Løsningsmodeller......................... 9 3.3 Systemoversigt.............................. 10 3.4 Afslutning på analyse........................... 13 4 Design - opstilling af krav 14 4.1 Mikrofon................................. 15 4.1.1 Mikrofonens frekvenskarakteristik................ 15 4.1.2 Forstærkning af signalet..................... 16 4.2 Lydkort.................................. 16 4.3 Filterdesign................................ 16 4.3.1 Frekvensområde og opdeling i frekvensbånd.......... 16 4.3.2 Båndpasfiltre til analyzer..................... 18 4.3.3 Digitalt filterdesign........................ 20 4.3.4 Test................................ 21 4.4 Realtidskrav til systemet......................... 23 4.5 Kravspecifikation............................. 26

Indhold iii 5 Softwareimplementering 27 5.1 Fejlhåndtering - CErrors......................... 27 5.2 Interproceskommunikation - CExternal................. 30 5.2.1 System V IPC........................... 31 5.2.2 Implementering af CExternal................... 32 5.2.3 Test................................ 33 5.3 Interface til lydkort - CSoundCard.................... 34 5.3.1 Initialisering af lydkort...................... 34 5.3.2 Afspilning og optagelse..................... 35 5.3.3 Test................................ 36 5.4 Interface til fil- og lydhåndtering - CSound................ 36 5.4.1 Filgrænseflade.......................... 36 5.4.2 Grænsefladen til lydkortsbufferne................ 38 5.4.3 Implementering.......................... 38 5.4.4 Test................................ 38 5.5 Udregning af knækfrekvenser - CToolbox................ 38 5.5.1 Test................................ 40 5.6 Implementering af filtre - CFilter..................... 40 5.6.1 Oprettelse af filtre........................ 40 5.6.2 Filtrering............................. 42 5.6.3 Test................................ 43 5.7 Efterbehandling af filtreret lyd - CAnalyzer............... 44 5.7.1 Båndopdelte RMS-værdier.................... 44 5.7.2 Returnering af RMS-værdier................... 45 5.7.3 Fejlhåndtering.......................... 45 5.7.4 Test................................ 45 5.8 Korrigering af lyd - CEqualizer...................... 47 5.9 Klasserne sammenbindes - CAEmain.................. 49 5.9.1 Fejlhåndtering.......................... 50 5.9.2 De enkelte tråde......................... 51 5.10 Den grafiske brugerflade......................... 55 5.11 GUI s main window - Aegui....................... 57 5.11.1 Aeguimain............................ 58 5.11.2 Knapper - CButton........................ 58 5.11.3 Grafisk fremstilling af data - CGraphWindow.......... 61 5.11.4 Indstilling af equalizer - CSliderWindow............ 63 5.11.5 Styring af lydafspilning - CPlayWindow............. 65 5.12 Trådet styring af data, signaler og fejlhåndtering - GUIThread..... 67 6 Eftersimulering af filtre 71 6.1 Crossover-afvigelser ved parallelkoblede filtre.............. 71 6.2 Afslutning på eftersimulering af filtre.................. 73

iv Indhold 7 Test 75 7.1 Planlagte integrationstest......................... 75 7.2 Systemtest................................. 75 7.2.1 Analyzer............................. 76 7.2.2 Equalizer............................. 78 7.3 Accepttest................................. 81 8 Konklusion 84 Litteratur 86 II Appendiks og bilag 2 A UML 1 B Mikrofonforsøg 13 B.1 Kredsløbdimensionering......................... 13 B.2 Undersøgelse af korrektionsomfanget.................. 13 B.3 Forsøgsopstilling og -afvikling...................... 14 B.4 Krav.................................... 15 B.5 Apparaturliste............................... 17 B.6 Komponentliste.............................. 18 C Kildekode 19 C.1 CErrors.cpp................................ 19 C.2 CErrors.h................................. 21 C.3 CSoundCardErrors.h........................... 22 C.4 CAnalyzerErrors.h............................ 22 C.5 CEqualyzerErrors.h............................ 22 C.6 CMiscErrors.h............................... 22 C.7 CExternal.cpp............................... 23 C.8 CExternal.h................................ 26 C.9 CSoundCard.cpp............................. 27 C.10 CSoundCard.h............................... 30 C.11 CSound.cpp................................ 31 C.12 CSound.h................................. 34 C.13 CToolbox.cpp............................... 35 C.14 CToolbox.h................................ 36 C.15 CFilter.cpp................................ 36 C.16 CFilter.h.................................. 41 C.17 CAnalyzer.cpp.............................. 42 C.18 CAnalyzer.h................................ 43 C.19 CEqualizer.cpp.............................. 44 C.20 CEqualizer.h................................ 46 C.21 CAEmain.cpp............................... 47 C.22 CAEmain.h................................ 49

Indhold v C.23 aegui.cpp................................. 50 C.24 aegui.h................................... 56 C.25 aeguimain.cpp............................... 58 C.26 CCorrectSpkrThread.cpp......................... 58 C.27 CCorrectSpkrThread.h.......................... 60 C.28 CShowRTThread.cpp........................... 60 C.29 CShowRTThread.h............................ 61 C.30 CShowSpeakerThread.cpp........................ 62 C.31 CShowSpeakerThread.h......................... 63 C.32 CPlayThread.cpp............................. 63 C.33 CPlayThread.h.............................. 64 C.34 graphwidget.cpp.............................. 65 C.35 graphwidget.h............................... 67 C.36 guithread.cpp............................... 67 C.37 guithread.h................................ 70 C.38 mainanalyzer.cpp............................. 71 C.39 aemain.cpp................................ 71 C.40 Makefile.................................. 72 C.41 aeguitest.cpp............................... 73 C.42 CAnalyzerTest.cpp............................ 74 D Matlab 76 D.1 order2angle.m............................... 76 D.2 realpoles.m................................ 76 D.3 cplxpoles.m................................ 76 D.4 afilter.m.................................. 77 D.5 dfilter.m.................................. 77 D.6 bpf.m................................... 78 D.7 fftwav.m.................................. 79 D.8 ydirekte.m................................. 80 D.9 sinuswav.m................................ 80 E Hvid og lyserød støj 81 F Manual 82 F.1 Beskrivelse af GUI............................ 82 G Nomenklaturliste 84 Bilag 85

Figurer 3.1 Use case diagram for GUI........................ 11 3.2 Skitse over analyzerens opbygning..................... 12 3.3 Deployment diagram for equalizeren................... 12 3.4 Deployment diagram for kalibreringen.................. 12 4.1 Aktivitetsdiagram for Adjust speaker frequency characteristic..... 14 4.2 Filtrenes overlapning............................ 18 4.3 a) 2. orden og b) 3. ordens polplacering i s-domænet.......... 19 4.4 Impulsrespons af 6. ordens båndpasfilter................. 22 4.5 Bodeplot af 6. ordens båndpasfilter.................... 22 4.6 Pol-/nulpunktsdiagram af 6. ordens båndpasfilter............ 23 4.7 Impulsrespons af båndpasfilter i testramme............... 24 4.8 Proces og kontrolsystem.......................... 25 5.1 Blokdiagram over samtlige klasser og deres placering i systemet..... 28 5.2 Fejlbesked vist i tekstboks på GUI..................... 29 5.3 Dobbeltbuffer-systemet.......................... 35 5.4 Således er data til lydkortet formateret.................. 36 5.5 Frekvenskarakteristik for den konstruerede mikrofon........... 42 5.6 Illustration af bufferskift.......................... 43 5.7 Illustration af placering af RMS-værdier i rmscoeff()........... 46 5.8 Illustration af tilbagekoblingskredsløbet for 5 båndpasfiltre, samtidig et grundprincip for et variabelt antal båndpasfiltre.............. 47 5.9 Sekvensdiagram for use case Show RT-frequency characteristic... 52 5.10 Udkast til GUI, udarbejdet fra use cases.................. 58 5.11 Desigskitse af vinduet med nogle af knapperne og Radiobutton...... 60 5.12 Screenshot af GUI............................. 70 6.1 Sammenligning af det fase-ukorrigerede og -korrigerede bodeplot for parallelkoblingen af to Butterworthfiltre med en dekades pasbåndsbredde. 72 6.2 Sammenligning af det fase-ukorrigerede og -korrigerede bodeplot for parallelkoblingen af to 8. ordens Butterworthfiltre med en oktavs pasbåndsbredde................................ 74 7.1 Oversigt over alle integrationstestens trin før overgangen til Main.... 75 7.2 Test af forholdet mellem de enkelte bånd i analyzeren.......... 76 7.3 Tone på 1kHz, båndpasfilterorden 4.................... 77 7.4 Tone på 707Hz, båndpasfilterorden 4................... 77 7.5 Tone på 707Hz, båndpasfilterorden 20................... 78

viii Figurer 7.6 Frekvensrespons ved standard opstart, 10 filtre af 4. orden........ 79 7.7 Frekvensrespons med 2 oktav brede 20. ordens filtre........... 80 7.8 Som figur 7.7 med et bånd dæmpet.................... 80 7.9 Frekvensrespons med 10 filtre af 20. orden................ 81 A.1 Use case diagram for GUI........................ 2 A.2 Aktivitetsdiagram for Adjust frequency characteristic......... 3 A.3 Aktivitetsdiagram for Enter wanted frequency characteristic..... 3 A.4 Aktivitetsdiagram for Play song.................... 3 A.5 Aktivitetsdiagram for Show speaker characteristic........... 4 A.6 Aktivitetsdiagram for Show real-time characteristic.......... 4 A.7 Use case diagram for analyzer...................... 5 A.8 Aktivitetsdiagram for Find real-time characteristic.......... 5 A.9 Aktivitetsdiagram for Show speaker frequency characteristic..... 6 A.10 Use case diagram for equalizer...................... 6 A.11 Aktivitetsdiagram for Adjust speaker frequency characteristic..... 7 A.12 Aktivitetsdiagram for Play song.................... 8 A.13 Aktivitetsdiagram for Stop playing................... 8 A.14 Sekvensdiagram for Show real-time characteristic........... 9 A.15 Sekvensdiagram for Show speaker frequency characteristic...... 10 A.16 Sekvensdiagram for Play song..................... 11 A.17 Sekvensdiagram for Adjust speaker frequency characteristic..... 12 B.1 Placering af mikrofon og højttaleren i forhold til hinanden........ 14 B.2 Forsøgopstilling for måling af frekvenskarakteristik. Nummereringen henviser til tabel B.1, og Mic representerer den konstruerede mikrofon.. 15 B.3 Måledata for referencemikrofon...................... 15 B.4 Måledata for den konstruerede mikrofon................. 16 B.5 Frekvenskarekteristik for den benyttede mikrofon, inklusiv forstærkerkredsløb.................................. 16 B.6 Diagram for konstruktionen af mikrofonen samt forstærker til produktet. 18 E.1 FFT af hvid og lyserød støj........................ 81 F.1 Oversigt over nummering af funktionerne på GUI............. 83

Tabeller 5.1 Metodeoversigt for klassen CErrors................... 30 5.2 Metodeoversigt for klassen CExternal.................. 33 5.3 Metodeoversigt for klassen CSoundCard................. 37 5.4 Metodeoversigt for klassen CSound................... 38 5.5 Metodeoversigt for klassen CToolbox.................. 40 5.6 Metodeoversigt for klassen CFilter.................... 44 5.7 Metodeoversigt for klassen CAnalyzer.................. 46 5.8 Metodeoversigt for klassen CEqualizer.................. 49 5.9 Metodeoversigt for klassen CAEmain.................. 50 5.10 Metodeoversigt for klassen CShowRTThread.............. 53 5.11 Metodeoversigt for klassen CShowSpeakerThread............ 54 5.12 Metodeoversigt for klassen CPlayThread................. 54 5.13 Metodeoversigt for klassen CCorrectSpeakerThread........... 55 5.14 Hvilke knapper der lowlightes ved knaptryk................ 59 5.15 Trykknappernes funktion.......................... 60 5.16 Metodeoversigt for klassen GUIThread................. 69 5.17 Metodeoversigt for klassen Aegui.................... 69 B.1 Apparatur................................. 17 G.1 Nomenklaturliste............................. 84

Del I Rapport

1 Indledning Projektoplægget (CD-ROM,, projektoplaeg.pdf) for dette projekt omtaler måling af fysiske systemer, såsom mikrofoner, filtre, m.v. i sand tid. Målingerne for systemerne skal være informationsgivende om frekvensgangen, samt afslørende for forvrængningskomponenters størrelse og natur. Et system, der kan måle og foretage en analyse af målinger i forbindelse med frekvensanalyse, vil være informationsgivende, men vil ikke kunne afhjælpe forvrænging. Til dette vil en equalizer med oplysningerne fra målingerne være en mulig problemløser, idet den aktivt kan kompensere for højttalernes kvalitet og omgivelsernes forvrængende egenskaber. Inden systemet kan anvendes skal det designes og konstrueres, hvilket leder til følgende initierende problem, der analyseres i næste kapitel: Initierende problem Problemet som gennem projektet skal løses kan formuleres som følger: Hvordan opbygges et system, der grafisk og i realtid kan vise frekvenskarakteristikken af lydbilledet i punktet hvor brugeren er placeret? Hvordan kan den fundne frekvenskarakteristik efterfølgende i realtid ændres i henhold til brugerens indstilling? Det givne initierende problem belyses i følgende tre kapitler: Foranalysen behandler en række generelle begreber vedrørende afspilning af musik igennem højttalere placeret i et beboelsesrum. Analysen specificerer de problemstillinger, der ønskes behandlet i dette projekt og munder ud i en overordnet struktur for det konstruerede system. Designet omhandler de specifikke krav til systemet og afsluttes med en kravspecifikation. Designkapitlet leder over i den egentlige implementering af softwaren, der ikke indledes her.

2 Foranalyse - det samlede lydbillede Da akustik, og applikationer afledt heraf, er et meget omfangsrigt emne, og der derfor findes en stor mængde definitioner indenfor de samme områder, skitseres her en række begreber, der benyttes i projektet. Eksempelvis defineres lydbilledet i en kontekst og i denne projektrapport fokuseres på lydbilledets karakteristika målt i et enkelt punkt, svarende til brugerens placering i rummet. Ved afspilning af lyd igennem et par højttalere i et rum, findes utallige kilder til forvrængning af lydbilledet. Afledt af indledningen og projektoplægget vil der i det følgende afsnit blive gennemgået en del af disse. Afsnittet vil være af oplysende karakter, da det ligger udenfor rapportens område at gå i dybden med langt størstedelen af emnerne. Enkelte vil dog senere i rapporten blive analyseret yderligere i forbindelse med problemløsning. Der vil i det følgende blive redegjort for højttalerdesignets, omgivelsernes og dynamiske påvirkninger af lydbilledets karakteristika. 2.1 Højttalerdesignets indflydelse på lydbilledet Der findes to forskellige hovedtyper af højttalerdesign: Elektromekaniske og elektrostatiske. I det efterfølgende beskrives udelukkende elektromekaniske højttalere. Grundlæggende er elektromekaniske højttalere opbygget omkring en membran, som har til opgave at sætte luftens molekyler i bevægelse, så der dannes hørbare lydbølger. Membranen fastspændes i et kabinet og sættes i svingninger under anvendelse af elektromagnetisme. Designet af membranen og kabinettet har den største indflydelse på højttalerens samlede frekvenskarakteristik. Dog skal det tages in mente, at det ikke er muligt fuldstændigt at optimere højttalerdesignet ved udelukkende at optimere enkeltkomponenterne hver for sig, da disse vil opføre sig forskelligt alt efter hvilket miljø de placeres i, og dette miljø kan ikke fuldstændigt modelleres. Når udtrykket frekvenskarakteristik i det efterfølgende benyttes, er det defineret ved måling af lydtryksniveauet L p som funktion af frekvensen. Lydtryksniveauet er defineret til (Borwick, 1994, side 3): L p 20 log 10 p 2 10 5 db (2.1)

4 Foranalyse - det samlede lydbillede hvor p er det akustiske tryk, der divideres med referencetrykket, 2 10 5 Pa. Referencetrykket er defineret som værende den nederste høretærskel for det menneskelige øre. 2.1.1 Membranen En arbejdende membran udsættes for forholdsvis store fysiske påvirkninger og skal derfor være stivest mulig, for at undgå utilsigtede resonanssvingninger. Foretages en måling af frekvensspektret for en elektromekanisk højttaler, ses at højttaleren langt fra gengiver de enkelte frekvenser med samme lydtryksniveau (Borwick, 1994, side 48, fig. 2.29), selvom inputtet til højttaleren har samme spændingsniveau. Under ideelle forhold ved målingen, altså uden støjkilder, bidrag fra kabinettet og reflektioner fra omgivelserne, vil ujævnhederne i frekvensspektret skyldes resonans i membranen. Her menes, at områder af membranen bevæger sig i modsatte retninger. Forskellige membraner vil have forskellige resonansfrekvenser og amplituder, og ved valg af andre designmetoder kan der kompenseres for dette. Kompensering for disse uhensigtsmæssigheder kan foregå ved at justere på forskellige egenskaber ved membranen, såsom materiale, form, størrelse osv. Membranen, som samlet med tråd, ophæng, magnet mv. også kaldes højttalerenheden, vil ikke blive behandlet yderligere. 2.1.2 Kabinettet Højttalerkabinettet finder sin primære funktion i at øge højttalerens lydgengivelse ved lave frekvenser. Det benyttes også til at fokusere lyden i en bestemt retning eller det modsatte; til at virke som lavfrekvent punktudstrålingsgenerator som for eksempel en subwoofer. Ligesom med enheden vil frekvensspektret for kabinettet ikke være lineært, hvis der eksempelvis foretages målinger med en membran med kendt karakteristik. Og mulighederne for at ændre karakteristikken ligger igen i design af form, valg af vægmateriale, placering, vinkling af enhed osv. Kabinettet vil ikke blive behandlet yderligere, men det kan sammen med forrige afsnit konstateres, at både enheden og kabinettet har en betydelig indvirkning på højttalerens samlede frekvenskarakteristik. 2.2 Omgivelsernes indflydelse på lydbilledet I forrige afsnit omkring højttaleren blev de ideelle forhold for måling af en højttalers frekvenskarakteristik præsenteret. Den ideelle måleopstilling findes dog kun i teorien. Der vil altid være ikke-ideelle elementer indblandet, der påvirker lydbilledet. Det kan være i form af reflektioner fra vægge, loft og gulv. Det kan også være fra selve måleudstyret eller generelt et hvilket som helst fysisk legeme i rummet, inklusiv personer. En stor del af den totale lydoplevelse findes i området hvori lyden afspilles. I dette projekts tilfælde er der tale om et mindre beboelsesrum, hvorfor indholdet i det efterfølgende afgrænses til dette.

Dynamiske påvirkninger 5 2.2.1 Reflektioner Rumakustik er et komplekst begreb, ikke mindst grundet reflektionen der opstår, når en lydbølge rammer en overflade. For selve rummet er de vigtige faktorer, hvor stor dæmpningen ved en reflektion er og hvor langt der er imellem væggene. Dæmpningen kan ændres på mange måder, men primært ved at pålægge væggen en anden beklædning eller helt ændre vægmaterialet. Højttalerplaceringen har indflydelse på hvordan reflektionerne fordeler sig og hvor kraftige de er efter reflektionen. En bestemt placering af højttaleren kan give stående bølger i bestemte områder, hvis to tidsforskudte lydbølger i samme område svinger i fase. Der kan også opstå stående bølger i væggene, som igen kan forvrænge lydbilledet ved at sætte luftmolekylerne i svingninger og normalt afgive lavfrekvent støj, hvilket abstrakt kan sammenlignes med højttalerkabinettet, hvor disse egenskaber udnyttes i designet. Et populært eksempel på rummets indflydelse på lydbilledet, er ved højttalerens placering i et hjørne af rummet. Her vil lyden hurtigt og kraftigt blive reflekteret og med en lille tidsforsinkelse følge de fremadgående bølger med forstærkninger og dæmpninger af højttalersignalet til følge. Desuden har de kraftige reflektioner ved lave frekvenser indflydelse på højttalerkabinettets virkning, der oftest ikke er designet til så kraftige modforvrængninger af eget signal. Udover højttalerplaceringen er det relevant hvor kraftigt højttaleren retningsbestemmer lyden. Især for brugeren af lydsystemet er dette relevant, da lydbilledet ændrer sig kraftig alt efter hvilken placering brugeren har i forhold til højttaleren. Og netop her spiller lydens primære retning en rolle, ikke mindst hvis der ønskes effekter såsom stereo og sorround sound. I lighed med at rummets vægge reflekterer lydbølgerne, vil også interiøret i rummet addere antallet af reflektioner kraftigt. Udover reflektionerne vil der også forekomme stående bølger i det enkelte interiørelement, som derfor vil udstråle lyd med lav amplitude. Det kan for eksempel være en bordplade der sættes i svingninger, og derfor sætter luft i bevægelse, og udsender lyd. Frekvensmæssigt kan den udstrålede lyd, alt efter legemets størrelse og art, spænde over størstedelen af det hørbare spektrum. Udover passive støjkilder med stående bølger, kan der i rummet være placeret aktive støjkilder, eksempelvis elektronisk udstyr såsom musikanlægget selv. Denne form for støj vil ofte være monoton som følge af eksempelvis en blæser, 50Hz støj fra en transformer tilkoblet forsyningsnettet eller måske en høj switching frekvens fra højeffektelektronik såsom en frekvensomformer eller et fjernsyn. Udover de her omtalte måder at anskue lydbilledet i et rum findes andre, som i dette projekt nok kunne finde en vis relevans, men som ikke er primære i analysen. Der findes desuden meget store mængder data på området, som der i rapporten analytisk ikke vil blive benyttet. Det der benyttes, er viden om, at også rummet har indflydelse på det samlede lydbillede. 2.3 Dynamiske påvirkninger Igen i kontrast til den ideelle måleopstilling, vil der ikke forekomme normale beboede rum helt uden baggrundsstøj eller bevægelser.

6 Foranalyse - det samlede lydbillede Ligger rummet tæt på en støjende vej, er det et spørgsmål om tilstrækkelig isolering for at undgå påvirkningen, hvilket dog sjældent er en mulighed. En plastikflaske der falder ned på et hårdt gulv, vil skabe en række impulser, der ikke kan overhøres medmindre den afspillede lyd er tilstrækkelig høj. Der kan udover disse findes en lang række andre eksempler på påvirkninger af lydbilledet, der ikke direkte stammer fra højttaleren eller rummet, men derimod fra uforudsigelige hændelser, såkaldte dynamiske påvirkninger. 2.4 Afslutning på foranalyse Igennem foranalysen er fundet, at lydbilledet for en person placeret i et bebeolsesrum vil være en forvrænget gengivelse af det ideelle lydbillede. Det ideelle lydbillede, som ønskes genskabt, kan defineres ved at være den lyd der fra musikanlægget sendes til højttaleren. Denne betragtning af problemet skaber grundlag for en overordnet modellering af systemet, som vil blive gennemført igennem analysen i næste kapitel.

3 Analyse - systemet opstilles Fra foranalysen blev den initierende problemstilling belyst med henblik på indsnævring af problemområdet til brug ved en efterfølgende modellering af et system til problemløsning. I dette kapitel vil analysen omhandle denne modellering igennem følgende afsnit: Softwareanalyse med UML beskriver begrebet objektorienteret softwareudvikling ved brug af konceptet UML, der ligeledes uddybes i afsnittet. De i projektet benyttede værktøjer og strategier fra UML er desuden beskrevet. Grundlæggende kravdannelse tager udgangspunkt i softwareanalysen og samler de overordnede krav i en række sætninger kaldet use cases. Løsningsmodel er en diskussion af en løsningsmodel baseret på use cases fra forrige afsnit. Systemoversigt opsummerer igennem tre skitser resultatet af analysen. 3.1 Softwareanalyse med UML Der findes mange forskellige værktøjer og tilgange til struktureret softwareudvikling. I dette projekt benyttes objektorienteret analyse og design (OOAD). En helt klar fordel ved objektorienteret (OO) softwareudvikling er, hvis det anvendes velovervejet og korrekt, genbrugeligheden. Selve udviklingen vil blive mere kompleks og implementeringen tage længere tid, men når først en stor mængde genbrugelige kodeelementer er implementeret, vil det spare tid senere hen. En anden fordel er det samlede produkts tilpasningsevne i forhold til forandringer, der utvivlsomt vil komme undervejs, såvel i som efter implementeringen. Da gruppen tillige har gennemgået et kursus i OOAD, er det oplagt at tage udgangspunkt heri og samtidig benytte et objektorienteret programmeringssprog. Valget af programmeringssprog er, trods et sideløbende kursus i Java, faldet på C++ af flere årsager. Fra forrige semester har gruppen erfaring med C, hvilket har givet et godt grundlag for at starte på C++. Desuden er C++ fuldt bagudkompatibelt med C, hvorfor ældre udviklede C-funktioner eventuelt kan genbruges.

8 Analyse - systemet opstilles Da der i projektet skal udarbejdes et realtidssystem er fravalget af Java desuden understøttet af Javas ry for at være langsomt at afvikle. Grundlæggende skyldes dette, at Java under afviklingen skal fortolkes af en Java Virtual Machine, hvorimod C++ oversættes af en kompiler på forhånd og afvikles uden fortolkning. Kurset i OOAD har taget udgangspunkt i et koncept kaldet Unified Modeling Language 1 (UML), som mest af alt kan karakteriseres som værende en række standardiserede værktøjer, der kan benyttes sammen eller hver for sig. Der er skrevet en stor mængde litteratur om UML, hvorfor denne rapport udelukkende omhandler gruppens valg af værktøjer og strategier til problemløsningen. Igennem kurset er et programudviklingsværktøj kaldet Together blevet benyttet. Together er baseret på UML og OO tankegang, hvorfor det findes velegnet til programudvikling i dette projekt. I dette afsnit introduceres en række diagrammer, som alle er udarbejdet i Together. En af de store fordele ved at benytte et grafisk brugerinterface ved OO softwareudvikling er den tætte sammenhæng mellem objekter i OO-forstand og grafisk skitserede enheder, der kan flyttes rundt, forbindes på forskellig måde og oprettes og slettes indtil designet visuelt findes korrekt. Herefter kan Together oprette C++ kildekoder og headerfiler, der indeholder prototyper for de fundne metoder og instansvariabler, og kan danne grundlag for kodning. 3.2 Grundlæggende kravdannelse Et objektorienteret systemdesign tager udgangspunkt i samtale med en kunde. Samtalen skal føre til en række use cases, som beskriver kundens forventninger til systemet. Det antages at disse use cases udarbejdes fra kundens synspunkt, hvilket betyder, at der ikke tages hensyn til den efterfølgende implementering. I gruppens tilfælde er denne adskillelse ikke mulig, men tilstræbes, hvilket giver anledning til følgende fem use cases. 1. Brugeren trykker på en knap og får vist højttalerens og rummets frekvenskarakteristik ved mikrofonens placering. 2. Brugeren trykker på en knap og får grafisk præsenteret det måltes frekvensindhold i realtid. 3. Brugeren definerer selv den frekvenskarakteristik han ønsker det hørbare signal skal have i målepunktet. 4. Brugeren trykker på en knap og det måltes frekvensgang reguleres efter den ønskede frekvensgang. 5. Systemet skal kunne korrigere lyd under afspilning. Med de udarbejdede use cases som baggrund, skal herefter overvejes hvilke mulige løsninger der kan findes. 1 Udviklet af firmaet Rational Software. Se evt. http://www.rational.com

Grundlæggende kravdannelse 9 3.2.1 Løsningsmodeller Første og anden use case kræver en måling, og efterfølgende analyse af lyd i systemets omgivelser. For at efterkomme dette krav skal en analyzer indgå i systemet. Denne analyzer kan eksempelvis benytte to metoder til at anskueliggøre lydbilledet i et lokale. Den ene metode er baseret på afspilning af en impuls, og måling af den efterfølgende impulsrespons, ved hjælp af en FFT 2. Ved denne metode opnås informationer om både amplitude, og fase ved en given frekvens. I den anden metode afspilles kendt støj istedet for en impuls, og ved båndpasfiltrering findes amplituden for udvalgte frekvensbånd. Den udsendte støj kan eksempelvis være hvid eller lyserød støj (se eventuelt appendiks E). Ved at sammenligne den målte støjs amplitude med den afspillede, giver denne metode information om amplituden ved en given frekvens, men ikke om fasen (Borwick, 1994, s. 319-323). I projektet benyttes udsendelsen af et kendt støjsignal, og efterfølgende filtrering. Filtreringen foregår digitalt på en pc, og det er derfor nødvendigt at sample de benyttede signaler gennem lydkortet. Lydkortet behandles i afsnit 4.2, og filterdesign gennemgås nærmere i afsnit 4.3. Løsningsmodellen baserer sig således på en frekvens-amplitudeanalyse, der viser lydtrykniveauet fordelt på et antal frekvensbånd. Under analysen afspilles støjsignalet gennem et sæt højttalere. Højttalerne er placeret, som ved en gennemsnitlig pc-opstilling, forholdsvis tæt på brugeren. Lydtrykniveauet måles med en mikrofon placeret ved brugerens position i rummet. Det ideelle resultat ville fra denne måling være en flad frekvensgang i hele frekvensspektret, svarende til at højttalerne gengiver alle frekvenser lige godt, og der ikke sker nogen forvrængning. Der må dog forventes at være en del udsving grundet valget af low-end højttalere og et beboelsespræget rum med mange reflektionspotentialer. Resultatet kan benyttes til, at udregne med hvilke værdier, de enkelte frekvensbånd skal hhv. forstærkes eller dæmpes, for at overholde kravene fra use case 3, 4 og 5. Denne korrigering varetages af et andet delsystem, en equalizer. Specifikt for use case 4, er det nødvendigt at equalizeren indeholder en reguleringssløjfe, der kan sørge for automatisk at regulere ind efter brugerens ønske. Den fundne kompenseringsfaktor ganges i denne sløjfe respektivt på hvert frekvensbånd, hvorefter analysen foretages igen, denne gang med afspilning gennem de amplitudekorrigerende filtre. Analysen foretages iterativt indtil det kompenserede signal stemmer overens med det ønskede, inden for en nærmere fastsat margen. Efter denne kalibrering er lydbilledet i målepunktet, i teorien, fri for de statiske påvirkninger. Det kan diskuteres hvor præcis margen skal fastsættes, da en meget præcis kalibrering kunne medføre, at lydbilledet et kort stykke fra målepunktet ville blive forvrænget endnu mere end før kalibreringen. Teoretisk er dette dog svært at beregne, da det afhænger omgivelserne. Fælles for use case 1, 2 og 4 er i øvrigt forventningen om en grafisk brugerflade til softwaren, der kommer til udtryk i formuleringen brugeren trykker på en knap. En grafisk brugerflade, eller GUI 3, bliver således det tredje delsystem. 2 Fast Fourier Transform 3 Graphical User Interface

10 Analyse - systemet opstilles Med systemet opdelt i tre delsystemer, er det nu muligt at tegne de fundne use cases ind i use case diagrammer, som på figur 3.1 på side 11. Denne type diagram viser de enkelte use cases (ovale tekstbobler), indkapslet i det system de tilhører, illustreret som den grå ramme, samt deres forbindelse til eksterne aktører, afbilledet i figuren som tændstikmænd. Aktører er i denne sammenhæng alle brugere eller systemer der kommunikerer med det analyserende system. En fuldt optrukket streg mellem en aktør og en use case markerer en informationsudveksling. Noter med forklarende tekst er forbundet til samtlige use cases med stiplede linier. Stiplede pile mellem use cases indikerer et tilhørsforhold de to use cases imellem. Her benyttes de to begreber extends og includes. Extends betyder, at den use case pilen kommer fra, er en videreudvikling af den use case pilen peger på. Includes indikerer at den use case pilen kommer fra, er en nødvendig bestanddel af den der peges på. Det er tilfældet mellem de to use cases Correct measured f-char. og Enter wanted f-char., da det er nødvendigt at have indstillet en ønsket frekvenskarakteristik (evt. en default indstilling), før det er muligt at korrigere efter denne. Der er tegnet et use case diagram for alle tre delsystemer. Da de fem originale use cases ganske naturligt fokuserer på GUI, som er det delsystem brugeren får præsenteret af programmet, er disse fem delt ud i underordnede use cases som kan findes i diagrammerne for de to andre delsystemer i appendiks A. Use case diagrammet kan efterfølgende benyttes som baggrund for en uddybende diskussion med kunden, hvor udvikleren kan komme med opklarende spørgsmål og lignende for at sikre, at projektet er godt begyndt. Generelt for OO tankegang er tilbagevendende møder med kunden med efterfølgende iterationer i analysefasen. Prototyper og skitser skal forelægges ved enhver betydelig ændring i funktionalitet eller brugerflade. Disse iterationer skal sikre at udviklingsprocessen til stadighed møder kundens forventninger. 3.3 Systemoversigt For at illustrere de to delsystemer der ikke er synlige for brugeren, analyzeren og equalizeren, er figurerne 3.2, 3.3 og 3.4 udarbejdet. Figurerne har ingen tilknytning til UML som metode, og tjener udelukkende det formål at give et overblik over opbygningen af de tre delsystemer. På figur 3.2 på side 12 vises systemets analyzerfunktion og det fremgår heraf, at et signal sendes gennem en mikrofon, hvorefter det opdeles i et antal bånd. Herefter udregnes en RMS-værdi for hvert filterfrekvensbånd, som endeligt udskrives på skærmen i form af et histogram på den grafiske brugerflade. Figur 3.3 på side 12 viser en lydfil afspillet gennem en player med efterfølgende filtrering. Sammensætningen af filtrene afhænger af kalibreringen, der kan ses på figur 3.4 på side 12. Kalibreringen foregår i hovedtræk ved at udsende et på forhånd kendt signal. Efter at være blevet udsendt gennem højttaleren analyseres signalet og findes ændret indenfor en vis margen, hvoraf højttalerens frekvenskarakteristik kan udregnes. På baggrund af den målte afvigelse udregnes nye filtre i equalizeren, så de kompenserer for afvigelserne i det målte signal. Herefter gentages processen indtil filtrene er tilpasset, og den målte lyd svarer til den afspillede.

Figur 3.1: Use case diagram for GUI Brugeren trykker på en knap og det måltes frekvensgang reguleres efter den ønskede frekvensgang. Bruger Brugeren skaber den frekvens karakteristik han ønsker højtaleren (og rummet) skal have i målepunktet. Brugeren trykker på en knap og får grafisk præsenteret det måltes frekvensindhold i realtid GUI Show RT frequency characteristic Correct measured f char. <<include>> <<extend>> <<extend>> Enter wanted f char. Play song Stop playing Brugeren kan stoppe afspilningen af den valgte sang Show speaker char. Brugeren trykker på en knap og får vist højttalerens og rummets frekvens karakteristik ved mic. placering. Analyzer Equalizer Brugeren kan starte afspilning af en sang, valgt blandt et antal sange, gennem equalizeren. Systemoversigt 11

12 Analyse - systemet opstilles F 1 RMS 1 F 2 RMS 2 Filter Mic F N RMS N Figur 3.2: Skitse over analyzerens opbygning. F 1 F 2 + Wav Player F N Figur 3.3: Deployment diagram for equalizeren. Analyzer Equalizer File Nej: Nye filtre Margin ok? Ja: Stop Figur 3.4: Deployment diagram for kalibreringen.

Afslutning på analyse 13 3.4 Afslutning på analyse Igennem analysen er redegjort for hvilke metoder og værktøjer der igennem projektet er benyttet til softwaredesign. Der er blevet opstillet fem use cases som har dannet grundlag for en løsningsmodel til det initierende problem. Denne består i, at opbygge et system bestående af en analyzer, en equalizer og en grafisk brugergrænseflade. Den fremkomne løsningsmodel danner grundlag for opstilling af de specifikke krav til systemet, som vil blive gennemført i næste kapitel.

4 Design - opstilling af krav Efter de overordnede krav er blevet opstillet igennem use cases, skal hver use case gennemgås sekventielt, og efterfølgende skal et tilhørende aktivitetsdiagram udarbejdes. Et eksempel på et aktivitetsdiagram for use case Adjust Frequency Characteristic, findes på figur 4.1. For hver funktion der skal udføres, vil der i aktivitetsdiagrammet være et nyt punkt, og på denne måde udarbejdes klasserne og deres indhold. De funktioner der skal udføres er basis for metoder, der senere grupperes, og danner grundlag for en række klasser, som vil blive nærmere behandlet i kapitel 5 på side 27. Signal modtages, og en pink noise fil afspilles. En sekvens af lyden gemmes i bufferen. Sekvensen filtreres og der korrigeres for mikrofonen. RMS værdierne for de enkelte bånd findes, og sammenlignes med de ønskede værdier, som hentes fra en fil. Ud fra den fundne forskel justeres forstærkningen i filtrene. Receive signal Play noise Store sound instance Filter sound Find RMS Get wanted frequency characteristic from file Compare measured and wanted frequency characteristic Adjust filter coefficients Figur 4.1: Aktivitetsdiagram for Adjust speaker frequency characteristic

Mikrofon 15 I modsætning til figur 4.1 på modstående side, der viser en sekventiel, afsluttet række af funktioner der skal udføres for at gennemløbe en use case, kan det i enkelte tilfælde være nødvendigt at udforme aktivitetsdiagrammer som iterative processer. Eksempler på dette samt de resterende aktivitetsdiagrammer for samtlige use cases kan findes i appendiks A. Ud fra de tidligere skitser af delsystemerne (figur 3.3, 3.2 og 3.4), og de netop forklarede aktivitetsdiagrammer, kan en række problemområder, som efterfølgende tages under nærmere behandling, opridses: Mikrofon. Lydkort. Filtre. Realtidskrav. Disse fire punkter vil blive behandlet i det nødvendige omfang i afsnit 4.1 til afsnit 4.3. 4.1 Mikrofon I dette afsnit vurderes kort pålideligheden af en low-end mikrofon og forstærkning af udgangssignal bestemmes. 4.1.1 Mikrofonens frekvenskarakteristik For denne applikation er det vigtigt at overveje om frekvensgangen af mikrofonen, der anvendes, er tilstrækkelig præcis til at gengive frekvenskarakteristikken af lydbilledet. Erfaringer beretter, at dette ikke altid er tilfældet og da der satses på low-end udstyr, kan der fabrikationsmæssigt set godt være afvigelser fra oplysningerne i databladet. Er dette tilfældet vil det forvrænge lydbilledet, og underminere analyse- og kalibreringssystemet. Der findes ikke tilsvarende stort et udvalg af forskellige modeller low-end mikrofoner, som der findes højttalermodeller med forskellige egenskaber, som følge af designforskelle. Tilsvarende er forskellene i gengivelsesnøjagtighed af de målte signaler ikke så store som for højttalere, hvorfor heller ikke følsomheden overfor ydre påvirkninger er særlig stor. Generelt måler de fleste mikrofoner indenfor et par db s nøjagtighed fra under 20Hz til omkring 8kHz, hvorefter der vil forekomme en vis dæmpning (W. Marshall Leach, 1998, Figur 5.12, side 105). Mikrofondesign og virkemåde vil ikke blive gennemgået yderligere. Det kan blot påpeges, at en vis kritisk brug af low-end mikrofon er nødvendig. Dette betyder at kvaliteten af den valgte mikrofon bør undersøges for at udelukke måleusikkerheder. For at undersøge om det i systemet er nødvendigt at korrigere for mikrofonens frekvenskarakteristik, er udført et forsøg, som er dokumenteret i afsnit B.2 i appendiks B.

16 Design - opstilling af krav 4.1.2 Forstærkning af signalet Når mikrofonens frekvensgang er undersøgt, og der evt. er kompenseret, er det nødvendigt at se på udgangssignalet fra mikrofonen, og det ønskede signal på et pc-lydkorts line-in indgang. For at fastslå om der er brug for forstærkning af mikrofonens udgangssignal er udført et simpelt forsøg, som kan ses i afsnit B.1 i appendiks B. Ud fra dette forsøg konkluderes, det er ønskbart, at forstærke signalet ca. 6 gange eller ca. 15 5dB. 4.2 Lydkort For at analysere, og på anden måde behandle lyd på en pc, er det nødvendigt at lyden findes på digital form. Konverteringopgaven klares af et lydkort. I følge Nyquists sampling theorem (Oppenheim and Schafer, 1999, side 146), skal samplingfrekvensen være mere end det dobbelte af den højeste frekvens, der ønskes gengivet. Med det hørbare lydområde defineret til mellem 20 Hz og 20 khz (Frequency Spectrum, 2002), betyder det at der i det aktuelle system skal samples med en frekvens på over 40kHz. På CD er og i lydkort arbejdes med en standard på 44 1 khz, som, da den overholder ovennævnte krav, også vil blive benyttet i projektet. På linie med en audio-cd benyttes endvidere en bitopløsning på 16 bit. Denne opløsning er også standard for flertallet af pc-lydkort. 4.3 Filterdesign I det følgende afsnit vil designet af de analoge prototypefiltre blive gennemgået. Disse transformeres efterfølgende til det digitale domæne. De designede digitale filtre testes til slut ved brug af Matlab. For at analysere signalets frekvensindhold, sendes dette gennem et antal digitale båndpasfiltre. Antallet af filtre, samt pasbåndbredden bestemmes af frekvensområdet, hvori der analyseres, og båndopdelingsmetoden. 4.3.1 Frekvensområde og opdeling i frekvensbånd Det hørbare frekvensområde strækker sig fra 20Hz til 20kHz, hvorfor det samme område skal behandles af projektet (Frequency Spectrum, 2002). Den øvre frekvensgrænse reduceres imidlertid til 16 khz på grund af den valgte mikrofons frekvenskarakteristik (se appendiks B). Opdeling i frekvensbånd foretages efter konstant procentopdelt båndbredde, hvilket vil sige, at båndbredden udgør en konstant procentdel af den enkelte centerfrekvens. Båndbredden angives i oktav og opdeles derefter. Dette medfører en logaritmisk frekvensskala, hvilket er i overensstemmelse med den måde, hvorpå det menneskelige øre hører. Den procentdel af centerfrekvensen som båndbredden udgør, bestemmes efter følgende formel (1/N octave analysis, ). 2 1 N 1 100 (4.1)

Filterdesign 17 hvor 1N angiver båndbredden i oktav. Ofte benyttede båndbredder er 11, 13, 112 og 124 oktav (Frequency Spectrum, 2002). Udregning af knækfrekvenser Til udregning af knækfrekvenser tages udgangspunkt i det højeste båndpasfilters lavpasknækfrekvens på 16000Hz. Ud fra dette og båndbredden 1N findes centerfrekvenserne f C_x i frekvensområdet ud fra betragtelse af udtryk 4.1 således: N f C_x f CD 2 x1 (4.2) hvor f CD er den højeste 1N oktavs centerfrekvens (denne omtales senere i afsnittet), og x 0 1 2 op til antallet af filtre, angiver opdelingen i 1N oktavs centerfrekvenser f C_x. Antallet af filtre findes som antal forekomster af f C_x hvor højpasknækfrekvensen er over 20Hz, ved 1N oktavs båndbredde. Minus foran potensen i ligning 4.2 angiver, at der arbejdes fra 16000Hz og nedad, med stadigt smallere pasbånd. Ud fra de fundne centerfrekvenser f C_x beregnes de tilhørende knækfrekvenser ligeledes gennem iagttagelser af udtrykket 4.1. Da der i udtryk 4.1 er tale om en hel båndbredde, og en givet centerfrekvens f C_x ligger midt heri, vil tilhørende øvre knækfrekvens f LP ligge en halv båndbredde herover, og nedre en halv under. Derfor multipliceres potensen fra 4.1 med henholdsvis 12 og 12 for øvre og nedre knækfrekvens. Dermed bliver ligningerne for knækfrekvenserne således: f LP 2 N2 f 1 C_x (4.3) f HP 2 1 N2 f C_x (4.4) Herefter kan der ud fra omskrivning af ligning 4.3 opstilles en ligning for den højeste 1N oktavs centerfrekvens f CD N2 : f LP 16000Hz f C_x f 2 1 C_D (4.5) 2 N2 1 Der gives følgende taleksempel på udregning af f C_x for det 6. filter (x 6) talt fra f CD ved 13 oktav: N 3 f C_x f CD 2 x1 16000Hz 2 61 f C_6 3563Hz 2 32 1 Centerfrekvensen f C_6 er således udregnet ved indsætning i ligning 4.5, og den generelle f C_x kan ses på figur 4.2 på næste side.

18 Design - opstilling af krav 4.3.2 Båndpasfiltre til analyzer Signalets frekvensindhold findes ved at anvende en række båndpasfiltre på signalet for at opdele dette i en række frekvensbånd som omtalt i afsnit 4.3.1, hvorefter RMS-niveauet svarende til den effektive amplitude findes for hvert bånd. Båndpasforstærkningen skal være 0 db, og hvor båndpasfiltrene skærer hinanden, skal forstærkningen gennem hvert enkelt filter derfor være faldet til 3 db (se figur 4.2). Filtersummen vil afvige fra 0 db idet der vil være bidrag fra andre filtre end den umiddelbare nabo. Størrelsen af dette bidrag afhænger af filterordenen og båndbredden, så en højere orden og større båndbredde giver en mindre afvigelse. db 0 3 Hz f HP f C_x f HP f LP f C_x f LP f HP f C_x f LP Figur 4.2: Filtrenes overlapning. Idet analyzeren skal køre i realtid 1, kræves at de implementerede digitale båndpasfiltre kan procesere en lydsekvens og beregne RMS hurtigere end N f s, hvor N er antal samples og f s samplingfrekvensen. Dette betyder at filterorden og antal filtre begrænses af maskinens regnekraft. Idet båndpasfiltrene skal være symmetriske, skal høj- og lavpasfiltrene være af sammme orden, dette medfører at båndpasfiltrets orden altid vil være lige. Der ønskes maksimal fladhed i pasbåndet, hvilket betyder at typen Butterworth er velegnede. I et ButterWorth filter ligger polerne på en cirkel med radius Ω 0 (filterknækfrekvens) og er fordelt lige i s-planets venstre halvplan som skitseret på figur 4.3 på modstående side. Det generelle Butterworth lavpasfilter af N te orden hvor pasbåndsforstærkningen er 0dB kan udtrykkes som formel 4.6 på næste side, hvor der er tale om en produktsum af N antal førsteordens ButterWorth lavpasfiltre. 1 Realtidskrav behandles i afsnit 4.4

Ω p s N H l Filterdesign 19 n1 π 2n 1 Θ Ω 0 s Ω 0 e jθ (4.6) 2N π 2 s plan Im s plan Im Re Re a b Figur 4.3: a) 2. orden og b) 3. ordens polplacering i s-domænet Af beregningsmæssige grunde opdeles det generelle Butterworth filter af N te orden i en række 2. ordens filtre med komplexkonjugerede poler samt et 1. ordens filter ved ulige filterorden. En kaskadekobling af disse 1. og 2. ordens sektioner vil give det ønskede Butterworth filter. P Ω Følgende omskrivning viser et generelt 1. (H 1 ) og 2. (H 2 ) ordens filter i frekvensdomænet med Laplace 1s operatoren sp s: 0 e jθajb Ω 0 Ω 0 H 2s! sω 0 Ω 2 0 Ω 2 0 H spsp s22asa2b2 2 0 s 22Ω 0 cosθsω 2 0 Dette benyttes i følgende eksempel på et 5. ordens lavpasfilter, som skal indgå i et 10. ordens båndpasfilter: ps Ω 2 0 H l n 0" 0" Ω 2 s 22Ω 0 Ω 0 0 cosθ 1sΩ2 s 22Ω 0 cosθ 2sΩ2 sω π2n1 0 Θ 1 π 2"5 2 6 Θ 2 π108# π144# 10 8 Θ 10