PC-baseret analyzer og equalizer Projekteksamen Gruppe 506 Institut for elektroniske systemer Aalborg Universitet PC-baseret analyzer og equalizer p. 1/53
Præsentation Systempræsentation Filterdesign Mikrofonkorrektion Realtidskrav Programmering Softwaredemonstration Procesanalyse Steven Skaaning Torben Matzen Morten Rasmussen Hans Madsen Dan Hermansen Kristian Kjær Jesper Sommerset PC-baseret analyzer og equalizer p. 2/53
Systempræsentation PC-baseret analyzer og equalizer p. 3/53
Screenshot af applikationen PC-baseret analyzer og equalizer p. 4/53
Systemet GUI Analyzer Equalizer PC-baseret analyzer og equalizer p. 5/53
Det samlede system Wave file Equalizer Slider 1 Slider 2 Slider 3 Slider 4 Slider 5 Analyzer Slider mean Analyzer mean PC-baseret analyzer og equalizer p. 6/53
Analyzer F 1 RMS 1 131 F 2 86 RMS 2 F N RMS N 212 Deles op i bånd RMS findes PC-baseret analyzer og equalizer p. 7/53
Det samlede system Wave file Equalizer Slider 1 Slider 2 Slider 3 Slider 4 Slider 5 Analyzer Slider mean Analyzer mean PC-baseret analyzer og equalizer p. 8/53
Equalizer F 1 Correction 1 F 2 Correction 2 F N Correction N Deles op i bånd Multipliceres med korrektionsfaktorer PC-baseret analyzer og equalizer p. 9/53
Det samlede system Wave file Equalizer Slider 1 Slider 2 Slider 3 Slider 4 Slider 5 Analyzer Slider mean Analyzer mean PC-baseret analyzer og equalizer p. 10/53
Filterdesign PC-baseret analyzer og equalizer p. 11/53
Analyzer filtre Butterworth båndpasfiltre 0 Bode Diagram 5 Amplitude (db) 10 15 20 25 30 35 40 1000 2000 4000 8000 Frekvens (Hz) Variabel båndpasfilter bredde og orden. Eks. 16. ordens filtre, 1 oktav mellem crossover-frekvenserne. PC-baseret analyzer og equalizer p. 12/53
Equalizer filtre H 1(z) H (z) 2 H 3(z) H 4(z) k k k k 1 2 3 4 H(z) Neutral indstilling: k = 1 Ønsket frekvenskarakteristk: H(z) = 1 PC-baseret analyzer og equalizer p. 13/53
Filter test 5 0 db 5 10 15 10 0 10 1 10 2 10 3 Frekvens x10 [Hz] Systemtest: 20. ordens filtre, 2 oktavers bredde Crossover-frekvens i filtrenes 3 db knækfrekvenser PC-baseret analyzer og equalizer p. 14/53
Crossover-frekvens H [db] 0 6 Ω c Ω Ω c,h f [Hz] Crossover: H = 1 2 = 20 log( 1 2 ) db = 6 db Beregning af 3 db knækfrekvenser Butterworth lavpas: H c (jω) 2 = 1 1( jω Ω c = Ω 3 1 2N Ω c,h = Ω 3 1 2N jωc )2N = ( 1 2 )2 PC-baseret analyzer og equalizer p. 15/53
Fasens betydning Bode Diagram Amplitude (db) 1 0 1 100 1000 10000 Frekvens (Hz) 6. orden Bode Diagram Amplitude (db) 1 0 1 100 1000 10000 Frekvens (Hz) 8. orden Bode Diagram Amplitude (db) 1 0 1 10. 100 1000 10000 Frekvens (Hz) orden PC-baseret analyzer og equalizer p. 16/53
Ukorrigeret faseplot θ 360 270 180 90 0 90 180 270 360 100 1000 10000 Frekvens [Hz] 8. ordens båndpasfilter Bilineær z-transformation Amplitude og fase afvigelse fra analog prototype PC-baseret analyzer og equalizer p. 17/53
Mikrofonkorrigering PC-baseret analyzer og equalizer p. 18/53
Mikrofonkorrigering Mikrofonkarakteristik Nuværende løsning Alternativ løsning PC-baseret analyzer og equalizer p. 19/53
Mikrofonkorrigering -16 "mic-bk.data" -18-20 -22 Amplitude [db] -24-26 -28-30 -32-34 100 1000 10000 Frekvens [Hz] PC-baseret analyzer og equalizer p. 20/53
Mikrofonkorrigering F 1 ved 4500Hz RMS 1 F 2 C 1 RMS 2 Mikrofonkorrektion F N C 2 RMS N ved 11kHz PC-baseret analyzer og equalizer p. 21/53
Mikrofonkorrigering 10 Magnitude [db] 20 30 40 50 Nuværende: Risiko for mindre præcis resultat 60 70 80 37 116 368 1168 3710 11777 [Hz] PC-baseret analyzer og equalizer p. 22/53
Mikrofonkorrigering Magnitude (db) Magnitude (db) Magnitude (db) 190 188 186 92 94 96 198 200 202 Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Korrektionsfilterets opbygning: PC-baseret analyzer og equalizer p. 23/53
Mikrofonkorrigering Magnitude (db) Magnitude (db) Magnitude (db) 190 188 186 92 94 96 198 200 202 Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Korrektionsfilterets opbygning: s = 2 T d (z 1) (z1) PC-baseret analyzer og equalizer p. 23/53
Mikrofonkorrigering Magnitude (db) Magnitude (db) Magnitude (db) 190 188 186 92 94 96 198 200 202 Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Korrektionsfilterets opbygning: s = 2 T d (z 1) (z1) s 2 2 0.6ωs ω 2 PC-baseret analyzer og equalizer p. 23/53
Mikrofonkorrigering Magnitude (db) Magnitude (db) Magnitude (db) 190 188 186 92 94 96 198 200 202 Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Korrektionsfilterets opbygning: s = 2 T d (z 1) (z1) s 2 2 0.6ωs ω 2 1 sw PC-baseret analyzer og equalizer p. 23/53
Mikrofonkorrigering Magnitude (db) Magnitude (db) Magnitude (db) 190 188 186 92 94 96 198 200 202 Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Bode Diagram 10 3 10 4 Frequency (Hz) Korrektionsfilterets opbygning: s = 2 T d (z 1) (z1) s 2 2 0.6ωs ω 2 1 sw 1 s 2 2 0.64ω 2 sω 2 2 PC-baseret analyzer og equalizer p. 23/53
Mikrofonkorrigering Overføringsfunktion for korrektionsfiltret: H mic = 0,93,4z 1 5,3z 2 2,9z 3 0,3z 4 0,4z 5 0,8z 6 0,3z 7 13,7z 1 5,5z 2 3,4z 3 1,0z 4 0,1z 5 0,1z 6 0,1z 7 Den styrende differensligning y[n] = 3, 7y[n 1] 5, 5y[n 2] 3, 4y[n 3] 1, 0y[n 4] 0, 1y[n 5]0, 1y[n 6]0, 1y[n 7]0, 9x[n]3, 4x[n 1]5, 3x[n 2] 2, 9x[n 3] 0, 3x[n 4] 0, 4x[n 5] 0, 8x[n 6] 0, 3x[n 7] PC-baseret analyzer og equalizer p. 24/53
Mikrofonkorrigering F 1 RMS 1 F 2 RMS 2 H mic Mikrofonkorrektion F N RMS N PC-baseret analyzer og equalizer p. 25/53
Mikrofonkorrigering 15 Magnitude [db] Magnitude [db] Magnitude [db] 20 25 30 35 10 5 0 5 15 20 25 30 37 37 116 116 368 368 1168 1168 3710 3710 11777 11777 [Hz] [Hz] Korrektionsfilteret: Dæmpning af top omkring 5 khz Forstærkning af signal 5 khz 15 khz Dæmpning over 15 khz 35 37 116 368 1168 3710 11777 [Hz] PC-baseret analyzer og equalizer p. 26/53
Realtidskrav PC-baseret analyzer og equalizer p. 27/53
Realtidskrav Realtidssystemer Realtidskrav for dette system Skitse over hårdt realtidskrav Metoder for design efter realtidskrav Opfyldelse af realtidskravene PC-baseret analyzer og equalizer p. 28/53
Realtidssystemer Projektoplægget omhandler et realtidsmålesystem Hvad kendetegner et realtidssystem? En sekvens af input over tid medfører en sekvens af output over tid t Realtidssystem t PC-baseret analyzer og equalizer p. 29/53
Realtidssystemer Typer: Hård realtid: Ingen forsinkelse; opgaver udføres indenfor et bestemt tidskriterie Realtid: Forsinkelse accepteres; opgaven udføres indenfor en rimelig og endelig tid Blød realtid: Forsinkelse er ok; opgaven udføres indenfor en endelig tid PC-baseret analyzer og equalizer p. 30/53
Realtidskrav for dette system Hård realtid: Beregninger på en buffer skal foregå indenfor den tid, det tager at gennemløbe en bufferlængde Realtid: Tydelig forbindelse mellem det, der ses på GUI og det, der høres afspillet PC-baseret analyzer og equalizer p. 31/53
Skitse i tid over hårdt realtidskrav -når det går godt.. tasks Afspilning af data buffer 1 buffer 2 buffer 1 buffer 2 Beregninger på data buffer 1 buffer 2 buffer 1 buffer 2 buffer 1 tid 0 t beregning t beregning t beregning t beregning t beregning beregninger t beregning 1 PC-baseret analyzer og equalizer p. 32/53
Skitse i tid over hårdt realtidskrav -når det går galt.. tasks Afspilning af data buffer 1 gl. buffer 2 gl. buffer 1 buffer 2 Beregninger på data buffer 1 buffer 2 buffer 1 buffer 2 tid 0 t beregning t beregning t beregning t beregning t beregning beregninger t beregning > 1 PC-baseret analyzer og equalizer p. 33/53
Metoder for design efter realtidskrav Forskellige designmetoder der udmunder i nøjagtig schedulering af systemets tasks Maskinspecifikke; kræver kendskab til samtlige tasks, scheduleringsegenskaber og principper. Maskin-uafhængighed medfører større anvendelighed Maskin-uafhængighed medfører ingen mulighed for nøjagtig schedulering af systemets tasks PC-baseret analyzer og equalizer p. 34/53
Opfyldelse af realtidskravene Opfyldelse ved maskin-uafhængighed: Variabel filterorden og pasbåndbredde Ingen realtidskontrol, men mulighed for at neddrosle variablene indtil systemet påny er i realtid Realtidskontrol: Kode for kontrol af om realtidskravet overholdes; hvis ikke, så neddrosle variablene Desuden er programmet i bred udstrækning tidsløs i form af, at udviklingen konstant bidrager med kraftigere maskiner, hvormed det er hensigtsmæssigt at kunne øge variablene ;0) PC-baseret analyzer og equalizer p. 35/53
Programmering PC-baseret analyzer og equalizer p. 36/53
Programmering ObjektOrienteret Programmering Programmets anvendelse af 2 processer Brugen af tråde Udnyttelse af friend class Hvorfor benyttes C fremfor JAVA? Hvorfor faldt valget på Linux? PC-baseret analyzer og equalizer p. 37/53
Programmering ObjektOrienteret Programmering PC-baseret analyzer og equalizer p. 38/53
Programmering ObjektOrienteret Programmering Visualiserbart design ved brug af illustrerende objekter PC-baseret analyzer og equalizer p. 38/53
Programmering ObjektOrienteret Programmering Visualiserbart design ved brug af illustrerende objekter Fleksibilitet ved genbrug af klasser i programmet - Once, only once! PC-baseret analyzer og equalizer p. 38/53
Programmering ObjektOrienteret Programmering Visualiserbart design ved brug af illustrerende objekter Fleksibilitet ved genbrug af klasser i programmet - Once, only once! Lettere vedligeholdelse og implementering af ændringer PC-baseret analyzer og equalizer p. 38/53
Programmering ObjektOrienteret Programmering Visualiserbart design ved brug af illustrerende objekter Fleksibilitet ved genbrug af klasser i programmet - Once, only once! Lettere vedligeholdelse og implementering af ændringer Lettere implementering af flere programfunktioner PC-baseret analyzer og equalizer p. 38/53
Programmering Programmets anvendelse af 2 processer PC-baseret analyzer og equalizer p. 39/53
Programmering Programmets anvendelse af 2 processer Sideløbende programmering og test PC-baseret analyzer og equalizer p. 39/53
Programmering Programmets anvendelse af 2 processer Sideløbende programmering og test Mulighed for videreudvikling af programmet til en dæmon PC-baseret analyzer og equalizer p. 39/53
Programmering Programmets anvendelse af 2 processer Sideløbende programmering og test Mulighed for videreudvikling af programmet til en dæmon Brugeren har øjeblikkelig interaktion med den grafiske brugerflade PC-baseret analyzer og equalizer p. 39/53
Programmering Brugen af tråde PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt Polling i en tråd sænker ikke hastigheden på processen PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt Polling i en tråd sænker ikke hastigheden på processen Hurtig kommunikation trådene imellem PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt Polling i en tråd sænker ikke hastigheden på processen Hurtig kommunikation trådene imellem Processen kan igangsætte adskillige tråde og selv let arbejde videre PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt Polling i en tråd sænker ikke hastigheden på processen Hurtig kommunikation trådene imellem Processen kan igangsætte adskillige tråde og selv let arbejde videre Udnyttelse af friend class PC-baseret analyzer og equalizer p. 40/53
Programmering Brugen af tråde Tråde under samme proces arbejder parallelt og uafhængigt Polling i en tråd sænker ikke hastigheden på processen Hurtig kommunikation trådene imellem Processen kan igangsætte adskillige tråde og selv let arbejde videre Udnyttelse af friend class Muligt for en tråd at tilgå private variable i sin friend class, som befinder sig i en anden tråd eller i moderprocessen PC-baseret analyzer og equalizer p. 40/53
Programmering Hvorfor benyttes C frem for JAVA? PC-baseret analyzer og equalizer p. 41/53
Programmering Hvorfor benyttes C frem for JAVA? C har højere hastighed på beregningerne med afvikling direkte fra maskinkode - JAVA benytter virtual machine PC-baseret analyzer og equalizer p. 41/53
Programmering Hvorfor benyttes C frem for JAVA? C har højere hastighed på beregningerne med afvikling direkte fra maskinkode - JAVA benytter virtual machine C har en god grænseflade til PC-ens hardware - JAVA benytter ofte native C til dette PC-baseret analyzer og equalizer p. 41/53
Programmering Hvorfor benyttes C frem for JAVA? C har højere hastighed på beregningerne med afvikling direkte fra maskinkode - JAVA benytter virtual machine C har en god grænseflade til PC-ens hardware - JAVA benytter ofte native C til dette JAVA, det er lidt noget legetøj! (Citat: S.K.O.) PC-baseret analyzer og equalizer p. 41/53
Programmering Hvorfor faldt valget på Linux? PC-baseret analyzer og equalizer p. 42/53
Programmering Hvorfor faldt valget på Linux? Open Source miljøet giver mulighed for brugeren at ændre programmet efter behov PC-baseret analyzer og equalizer p. 42/53
Programmering Hvorfor faldt valget på Linux? Open Source miljøet giver mulighed for brugeren at ændre programmet efter behov Gratis udviklingsmiljøer PC-baseret analyzer og equalizer p. 42/53
Programmering Hvorfor faldt valget på Linux? Open Source miljøet giver mulighed for brugeren at ændre programmet efter behov Gratis udviklingsmiljøer Uanede mængder gratis dokumentation om drivere, kompilere og andre værktøjer PC-baseret analyzer og equalizer p. 42/53
Programmering Hvorfor faldt valget på Linux? Open Source miljøet giver mulighed for brugeren at ændre programmet efter behov Gratis udviklingsmiljøer Uanede mængder gratis dokumentation om drivere, kompilere og andre værktøjer Hurtig support ved posting på relevante newsgroups PC-baseret analyzer og equalizer p. 42/53
Softwaredemonstration PC-baseret analyzer og equalizer p. 43/53
Software-demonstration Den grafiske brugerflade. Programmets funktioner: Realtidsanalyse af målt lyd. Analyse af højttaler og rums frekvenskarakteristik. Korrektion af fundet frekvenskarakteristik. PC-baseret analyzer og equalizer p. 44/53
Procesanalyse PC-baseret analyzer og equalizer p. 45/53
Perspektivering Eks.: XMMS ESD App. ESD App. ESD App. /dev/dsp Esd - Esound (sound daemon) Libesd Libesd ESD Daemon Sound Device Local Libesd Network PC-baseret analyzer og equalizer p. 46/53
Procesanalyse Arbejdsproces: Stort engagement og arbejdsomhed. Ekspontential acceleration for fremgangen. Effektiv gruppestruktur ved faste ansvarområder: Webpage (kommunikationsværktøj). Værktøj (programmer). Ordstyrer & kontaktperson. Rapport Tidsplan Kode & metode Proviant/forplejning ("uden mad og drikke, dur helten ikke") PC-baseret analyzer og equalizer p. 47/53
Procesanalyse Tidsfordeling: Løbende opfølgning af arbejdsopgaver til sammenligning med tidsplan 62 % 9 % 5 % 9 % 12 % Mikrofon, redigering, vedligeholdelsesopgaver, m.m. Design - UML 3 % Kravspecifikation Accpettest Integration Kodning & dokumentation PC-baseret analyzer og equalizer p. 48/53
Procesanalyse Kravspecifikation: Produktet indeholder flere funktioner end de opstillede i kravspecifikationen, hvilket skyldes det store engagement, der medførte, at gruppens medlemmer lod sig medrive, og nærmest begyndt på 2. version. Eks.: Korrektion under afspilning. Valgfri filterorden og -antal. PC-baseret analyzer og equalizer p. 49/53
Procesanalyse Udviklingsværktøj: UML: Til identifikation af klasser og objekter. Systemudvikling: Use-Case (kravspecifikation). Analyse. Design. Programmering. Test. Til grafisk strukturering anvendes programmet Together pga. PE-kursus. PC-baseret analyzer og equalizer p. 50/53
XPprogrammering Procesanalyse PC-baseret analyzer og equalizer p. 51/53
Procesanalyse V-model Procesintegration Modultest Modulintegration Accepttest Modulkodning Kravsprcifikation Programdesign Moduldesign Procesdesign XPprogrammering PC-baseret analyzer og equalizer p. 52/53
Afslutning PC-baseret analyzer og equalizer p. 53/53