Aalborg Universitet Det teknisk-naturvidenskabelige fakultet

Størrelse: px
Starte visningen fra side:

Download "Aalborg Universitet Det teknisk-naturvidenskabelige fakultet"

Transkript

1 Aalborg Universitet Det teknisk-naturvidenskabelige fakultet Elektronik og elektroteknik - Signalbehandling Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telefon Titel: Parametrisk Equalizer Tema: Signalbehandlingssystemer Projektperiode: 2. februar maj 2004 Projektgruppe: SB641 Gruppemedlemmer: Andreas Gregers Gregersen Casper Stork Bonde Kim Hoang Ngo Kim Nørmark Mikkel Purup Thomas Thorsen Vejleder: Jakob Jeppesen Publikationer: 9 Sider: 101 Synopsis Denne rapport beskriver design, konstruktion og test af en digital parametrisk equalizer med ekstra features såsom lydtryksmåler samt mulighed for at måle en frekvenskarakteristik af det givne lytterum. Systemets hardwaredel er bygget op omkring en DSP af typen TMS320C26 samt en mikrofonforstærker, en lydtryksmåler, et codec og et interfacekredsløb til en digital udgang fra en cd-afspiller. Desuden består systemet af en grafisk brugerflade og filterberegninger, som afvikles på en pc, samt en firmwaredel der implementeres på DSP en, og som varetager selve filtreringen af audiodata. På baggrund af simuleringer i Matlab og overvejelser omkring DSP ens regnekraft blev valgt at implementere fire filtere. Brugeren kan vælge mellem filtertyperne peak, shelfhigh og shelflow. Test af den parametriske equalizer har vist, at systemet opfylder de i kravspecifikationen stillede krav, herunder filtrering af audiodata, måling af lydtryk og frekvenskarakteristik. Derudover er det muligt at betjene den parametriske equalizer fra den grafiske brugerflade på pc en.

2

3 Aalborg University The Faculty of Engineering and Science Electronics and Electrical Engineering - Signal Processing Fredrik Bajers Vej 7 DK-9220 Aalborg Øst Telephone Title: Parametric Equalizer Theme: Signal Processing Systems Project period: February 2nd - May 27th 2004 Project group: SB641 Group members: Andreas Gregers Gregersen Casper Stork Bonde Kim Hoang Ngo Kim Nørmark Mikkel Purup Thomas Thorsen Supervisor: Jakob Jeppesen Publications: 9 Pages: 101 Abstract This report describes the design, construction, and test of a digital parametric equalizer with extra features such as sound pressure level meter and the opportunity to measure the frequency response of the listening room. The hardware of the system is based on a DSP of the type TMS320C26 together with a microphone amplifier, a sound pressure level meter, a codec, and an interface to a digital output from a CD-player. Furthermore the system consist of a graphical user interface and filter calculations implemented on a pc, and also a firmware part which is implemented on the DSP and is managing the actual filter calculation of the audio data. Based on simulations in Matlab and considerations about the limitations of the DSP, it is chosen to implement four filters. The user can choose among the following filtertypes: Peak, shelfhigh, and shelflow. Tests of the parametric equalizer shows that the system meets the requirements listed in the requirement specification, among these, filtration of the audio data, measurement of sound pressure level and frequency characteristic. Furthermore it is possible to use the parametric equalizer by using the graphical user interface on the PC.

4 - Andreas Gregers Gregersen Casper Stork Bonde - Kim Hoang Ngo Kim Nørmark Mikkel Purup Thomas Thorsen 4

5 Forord Denne rapport er udarbejdet af projektgruppe 641 på signalbehandlingslinjen, 6. semester, Aalborg Universitet. Temaet for projektperioden, som strækker sig fra 2. februar 2004 til 27. maj 2004, er signalbehandlingssystemer, og gruppen har herunder designet og konstrueret en parametrisk equalizer. Rapporten er dokumentation for den læreproces, der er gennemløbet for at løse semesterets stillede problemstilling, samt for de teorier og metoder, der er anvendt til løsningen af problemet. Dokumentationen er opbygget omkring en hovedrapport med tilhørende bilagsrapport med uddybning af de anvendte teorier, beregninger, diagrammer og test. Indholdet af bilagsrapporten inddrages løbende i hovedrapporten. Hvert kapitel i hovedrapporten indledes med en oversigt over kapitlets afsnit, så der ved kapitlets begyndelse skabes overblik over emner og indhold. Der følger en cd med til rapporten, som kan findes på sidste side i bilagsrapporten. Cd en indeholder datablade og kildefiler, og referencer til disse specificeres i kantede parenteser ved angivelse af sti og filnavn, som f.eks. [Cd, datablade/tms320c26.pdf]. Referencer til kilder gengives på tilsvarende måde, hvor navnet på kildehenvisningen refererer til den pågældende kilde i litteraturlisten, f.eks. [Oppenheim, 1999]. Kildehenvisninger efter et punktum angiver, at kilden er anvendt til hele den foregående paragraf. Der anvendes binære præfikser i angivelsen af datamængder for at undgå tvetydighed og konflikt med SI. Der henvises til appendiks A i bilagsrapporten for en kort oversigt samt anvendelse af disse. III

6 Indholdsfortegnelse Indledning 1 1 Kravspecifikation Systemdefinition Systembeskrivelse Systemanalyse Funktionelle krav Design af filtere Filtertyper Analoge overføringsfunktioner Digitalisering af analoge filtre Implementationsformer Implementation af filtere Simulering DSP-kernesystem Krav til DSP-kernesystem Design af DSP-kernesystem Test og verificering af DSP-kernesystem Cd-interface Krav til cd-interface Design af cd-interface Test og verificering af cd-interface Analog I/O Codec Mikrofoninterface Lydtryksmåler Forstærkerinterface Test og verificering af analog I/O Pc-software Datatyper Kommunikation med DSP Brugerflade Implementation af pc-software DSP-firmware 79 IV

7 INDHOLDSFORTEGNELSE 7.1 Design af firmware Implementation af firmware Test og verificering af firmware Test af parametrisk equalizer 95 Konklusion 99 Litteratur 101 V

8

9 Indledning Equalizere er et ofte anvendt hjælperedskab til at ændre og optimere gengivelsen af lyd. En equalizer anvendes kort sagt til at dæmpe eller forstærke visse frekvenser i et musiksignal. Dette kan være ønsket for, ud fra et subjektivt synspunkt, at opnå en bedre lyd. Ved afspilning af lyd på musikanlæg er der en række parametre, der påvirker den endelige opfattelse af lyden. Dette er især højttaleren og lytterummet. Højttaleren har en væsentlig indflydelse på den afspillede lyd. Dette skyldes, at højttalere ikke gengiver samtlige frekvenser i det hørbare område fra Hz lige kraftigt. Det vil sige, at frekvenskarakteristikken for højttalere ikke vil være flad men have en dæmpning eller forstærkning afhængig af frekvensen. Derfor vil lyden ikke blive gengivet præcist som fra lydkilden. Frekvenskarakteristikken for de enkelte højttalere hænger i høj grad sammen med kvaliteten og dermed prisen for højttalerne. Der kan købes højttalere med en tilnærmelsesvis flad frekvenskarakteristik, hvis man er villig til at betale for det. I den anden ende af skalaen findes pc-højttalere. Frekvenskarakteristikken for disse kan variere med flere db i forhold til de gode højttalere. Almindelige hifi-højttalere til hjemmebrug, befinder sig et sted imellem de to førnævnte typer. Rummet er en anden parameter, der har en væsentlig indvirkning på lydsignalet. Rummets udformning og indretning samt materialer kan ligesom højttalere påvirke lyden således, at der sker en forstærkning eller dæmpning af visse frekvenser. Hvis de anvendte højttalere er af en forholdsvis god kvalitet, vil rummets akustiske forhold sandsynligvis have en større indflydelse på lydsignalet end højttalerne, idet reflektioner af lyden vil kunne skabe konstruktiv og destruktiv interferens afhængigt af placeringen af lydkilderne og lyttepositionen. Ved at anvende en equalizer mellem lydkilden og forstærkeren kan der tages højde for ændringer i forstærkningen af frekvenserne i signalet. Bl.a. de ændringer der opstår i højttaleren og på grund af rummets påvirkning. I mange billigere stereoanlæg på markedet er der implementeret en form for equalizer. Oftest bestående af en grafisk equalizer eller simpelt hen kun en række forudindstillede opsætninger beregnet til forskellige typer musik, f.eks. pop, rock, jazz og klassisk. For den kræsne musiklytter, vil forudindstillede filtre sandsynligvis ikke være tilstrækkelige til at opfylde dennes krav. Lytteren vil sandsynligvis nære et ønsket om selv at kunne justere på parametrene til at forme lyden efter egne ønsker samt omgivelserne. Dette kunne opnås ved at anvende en equalizer. Ved live-koncerter kan der opstå et fænomen kaldet akustisk feedback, som resulterer i en skærende hyletone, som er meget ubehagelig at høre på. Denne hylen opstår fordi, den optagede lyd fra mikrofonen udsendes gennem højttalerne for derefter at blive optaget i mikrofonen igen. Herved opstår der en tilbagekobling af signalet i form af lyd, og lyden vil hermed blive forstærket uhensigtsmæssigt meget. Der kan kompenseres for denne akustiske feedback via en equalizer, enten 1

10 . INDLEDNING ved at dæmpe den frekvens, hvor ved hyletonen opstår, eller ved at indsætte en kort forsinkelse af lyden fra den optages i mikrofonen, til den afspilles gennem højttalerne. Grundlæggende findes der to forskellige former for equalizere. En grafisk equalizer, som inddeler lyden i et fast antal frekvensbånd med fastdefineret bredde, f.eks. et bånd per oktav. I de enkelt bånd kan der sættes en forstærkning eller dæmpning uafhængigt af de andre bånd, som vist på figur (a) herunder. Den anden type kaldes en parametrisk equalizer. Her er det muligt at vælge et variabelt frekvensområde, hvori der sættes en given forstærkning. Dette kan ske ved at indstille forskellige filtre, som vist på figur (b) herunder. Antallet af filtre, deres type, orden, samt indstillingsparametre varierer fra equalizer til equalizer. På digitale equalizere kan den samlede frekvenskarakteristik for filtrenes indstilling ofte ses på et display. Amplitude Amplitude (a) Grafisk equalizer. Frekvens (b) Parametrisk equalizer. Fordelen ved den parametriske model frem for den grafiske er, at denne giver flere og mere varierede indstillingsmuligheder, da det er muligt at vælge bredden af det frekvensområde, der ønskes forstærket. Dette medfører, at det er muligt at vælge et meget bredt eller meget smalt område med ét filter. Dermed kan et stort område tilpasses med færrest mulige justeringer ved kun at indstille ét filter. I det hele taget giver en parametrisk equalizer anledning til mere varierede indstillinger af frekvensområdet. Frekvens Problemstilling På baggrund af ovenstående kan en problemstilling opstilles: Hvordan konstrueres en brugervenlig parametrisk equalizer, der ved hjælp af et antal filtre kan kompensere for forstærkning og dæmpning af frekvenser forårsaget af de valgte højttalere samt omgivelserne. Målgruppen for den parametriske equalizer er lydentusiaster, som vil bruge en equalizer til privat brug. 2

11 "! KAPITEL Kravspecifikation 1 Dette projekt omhandler designet af en brugervenlig parametrisk equalizer. Kravspecifikationen er delt op i fire dele, hvor der i første del er en definition af systemet og omgivelserne. Anden del er en systembeskrivelse. Her bliver systemets funktionalitet forklaret, og der beskrives, hvilke blokke det består af. Derudover defineres systemets eksterne grænseflader, og der opstilles tekniske krav til disse. Tredje del er en systemanalyse, og her opbrydes systemets blokke i flere mindre blokke. I den fjerde del opstilles et forslag til, hvordan brugerfladen til systemet kan se ud, og ud fra denne brugerflade defineres de funktionelle krav til systemet. 1.1 Systemdefinition Equalizeren skal placeres mellem en lydkilde og forstærker, og til forstærkeren skal der tilsluttes et sæt højttalere, hvor den equalizerede audiosignal afspilles. En opstilling kan ses på figur 1.1. #%$&'' Figur 1.1: Opstilling af audiosystem med equalizer. På figuren er markeret tre punkter på systemet, hvor punkt (1) er ved input-signalet til equalizeren, punkt (2) er ved output-signalet fra equalizeren, og punkt (3) er den foretrukne lytteposition. Frekvenskarakteristikken fra (1) til (2) kaldes equalizerens frekvenskarakteristik, fra (2) til (3) kaldes audiosystemets frekvenskarakteristik, og fra (1) til (3) kaldes det equalizerede audiosystems frekvenskarakteristik. 3

12 KAPITEL 1. KRAVSPECIFIKATION 1.2 Systembeskrivelse Der designes en digital parametrisk equalizer, som bygges op omkring en DSP. Der lægges vægt på brugervenlighed, og derfor vælges, at der skal være et grafisk display, hvorigennem brugeren kan betjene equalizeren. Herudover skal det være muligt at vise frekvenskarakteristikken for det equalizerede audiosystem. Dermed er det mere enkelt for brugeren at indstille equalizeren, så den ønskede frekvenskarakteristik opnås. Et blokdiagram over systemet kan ses på figur 1.2. B>C>DEEF9G d>eafeag3hi f jkcl0hcmanoeqpjrchjf Z%X3- R2S8/1 TU5V[/ (*),+ -.0/123/ /: NO1'498PQ1.0/1 - R 2S8/1 T'UVM/ ]9^ GBJ_àGbcF7G HJI>< W063X3- R 208/1YTYUVM/ +\V0- R 208/1 TUV0/ KML Figur 1.2: Blokdiagram over systemet samt de eksterne tilslutninger. Den parametriske equalizers filtere skal implementeres på DSP en, på input-siden skal tilsluttes en cd-afspiller, og på output-siden skal tilsluttes en forstærker. Der skal være et display tilsluttet systemet, og til dette formål vælges at bruge en pc. Fordelen ved dette er, at der let kan udvikles en brugervenlig brugerflade. Ulempen er, at dette kræver, at en pc er tilsluttet for at equalizeren kan betjenes. For at kunne vise frekvenskarakteristikken af det equalizerede audiosystem på displayet, skal der laves en frekvensanalyse. Dette kræver, at systemet kan optage lyd, og derfor skal der være et lyd-interface i systemet. Lyd-interfacet muliggør også at der kan foretages en lydtryksmåling, hvorved brugeren kan aflæse det aktuelle lydtryksniveau på displayet. Opbygningen af den parametriske equalizer og dens input og output er nu beskrevet. De tekniske krav til eksterne tilslutninger er opstillet i tabel 1.1. Input: Cd-interface: Lyd-interface: Pc-interface: Output: Forstærker-interface: Pc-interface: IEC db (SPL). RS232 seriel forbindelse. 1 V (rms), Hz (±3 db). RS232 seriel forbindelse. Tabel 1.1: Krav til eksterne tilslutninger. Da signalbehandlingen på DSP en er digital, vælges det, at inputtet fra cd-afspilleren skal være digitalt. Dette digitale signal skal overholde standarden IEC , som beskriver det mest udbredte interface for digitale lydsignaler i konsumprodukter. 4

13 1.3. SYSTEMANALYSE Output til forstærkeren skal være analogt, og skal kunne levere et signal på 1 V (rms) i frekvensområdet fra 20 Hz til 20 khz (±3 db). Lyd-interfacet skal kunne optage lyd med en relativ lydstyrke mellem 60 db og 80 db. Dette er valgt som normalt lytteniveau ud fra et simpelt lytteforsøg, hvor der blev afspillet musik i et lytterum, samtidig med at lydtrykket blev målt. Forbindelsen mellem den parametriske equalizer og pc en skal være en RS232 seriel forbindelse, og denne standard er valgt, da den er meget udbredt. 1.3 Systemanalyse Systemets blokke og de eksterne grænseflader er defineret, og der er stillet krav til de eksterne tilslutninger. I dette afsnit opbrydes systemet på figur 1.2 i mindre blokke, og der kommer en uddybende forklaring til opbygningen af systemet. På figur 1.3 ses et blokdiagram over opbygningen. Forskellen mellem figur 1.2 og figur 1.3 er, at indholdet i DSP en, Lyd-interfacet og Pc en er specificeret yderligere. s%t5u 0{ 5 vyz Y 0, Y à š 7 [œ7 [ ž[ 7 ~ 5 S± 7 Y²[ 0óAà 7 s%tu vwsxyz{ }0y vxozyy ~ zy 7x zƒ yzu vwsxyz{ } y ~5 z 7x zcƒ7yz Á³ µ ± ² 0 0 A Š0 t3xz' ƒ 3u ˆŒ yz ˆ u vw0xyz { 5}[y Š3 t Žvƒ3z { w3u v wsxyz{ }0y \}0u vwsxyz{ } y 5 ª «Y 3 \zc 5yzu { t5y Ÿ, % u vwsxyz{ } y Figur 1.3: Blokdiagram over opbygning af systemet. DSP-kernesystem indeholder 2 blokke: Filtre og Kom.-interface. Filtre består af filtre, som definerer frekvenskarakteristikken for equalizeren, og Kom.-interface håndterer sammen med Pc-interface kommunikationen mellem DSP-kernesystem og Pc. 5

14 KAPITEL 1. KRAVSPECIFIKATION Lyd-interface indeholder 2 blokke: Mikrofon-interface og Lydtryksmåler. Mikrofon-interface består hovedsageligt af en mikrofonforstærker og en konverter, som skal kunne interface audiosignalet til DSP en. Dette skal anvendes i lydtryksmålingen og i frekvensanalysen. Lydtryksmålingen foregår i Lydtryksmåler, og lydtrykket skal vises på Pc en, når dette ønskes. For at kunne bruge Pc en som interface til brugeren, skal der være en Brugerflade. Udover Brugerfladen skal der også være et DSP-interface for at kunne overføre data mellem Pc og DSP. Desuden vælges det, at filterberegningerne skal foregå i Filterberegninger, når brugeren vælger parametrene til Filtre. Disse parametre skal overføres til Filtre via DSP-interface, Pc-interface og Kom.-interface. 1.4 Funktionelle krav De funktionelle krav til systemet opstilles i dette afsnit ud fra systemanalysen samt ud fra et eksempel på en brugerflade, som er vist på figur 1.4. Figur 1.4: Eksempel på hvordan brugerfladen kunne se ud. Der er mange typer filtre, der kan anvendes i en equalizer, og der er fordele og ulemper ved dem alle. Frekvenskarakteristikken for audiosystemet kan variere meget, og i nogle frekvensområder kan det være fordelagtigt at bruge én type filter, og i andre frekvensområder kan det være en fordel, at benytte en anden type filter. Derfor skal det være muligt for denne parametriske equalizer at kunne vælge filtertype. For at kunne placere filtrene, hvor brugeren synes det er hensigtsmæssigt, skal det være muligt at fastsætte en centerfrekvens, en bredde for hvert filter samt at justere gain. Desuden skal der være en mastergain til at dæmpe signalet i tilfælde af forvrængning. Frekvensområdet for filtrene skal ligge indenfor det menneskelige hørbare område. 6

15 1.4. FUNKTIONELLE KRAV Filterrelaterede specifikationer: Typer: Gainområde: Bredde: Frekvensområde: Andre specifikationer: Mastergain: Systemfrekvensgang: Peak og shelf. ± 20 db. 0,1-5 oktaver Hz. fra 0 db til -80 db. Mulighed for at måle og vise det equalizerede audiosystems frekvensgang. Tabel 1.2: Funktionelle krav. I tabel 1.2 ses de funktionelle krav. Uddybninger af begrundelse af valgene kan ses i de pågældende design-afsnit. 7

16

17 KAPITEL Design af filtere 2 Indhold 2.1 Filtertyper Analoge overføringsfunktioner Digitalisering af analoge filtre Bilineær transformation Foreskrevet Nyquist-frekvens gain Valg af transformationsmetode Implementationsformer Direkte form I og II Koblet kanonisk state-space Valg af implementationsform Implementation af filtere Skalering af koefficienter Rækkefølge af 2. ordens sektioner Simulering Filtertyper Til realisation af equalizeren er der valgt at benytte to typer filtre. Det ene er et peakfilter, og det andet er et shelffilter. Med 4-5 filtre af disse typer, er det muligt at skabe en hvilken som helst nødvendig filterkarakteristik [Orfanidis-Nyquist, 1996]. Til realisation af filtrene er der valgt at benytte den bikvadratiske overføringsfunktion, som kan ses i ligning 2.1. Den bikvadratiske funktion har et 2. ordens polynomie i både tæller og nævner. Tælleren udgør dermed et 2. ordens højpasfilter, og nævneren et 2.ordens lavpasfilter. Disse to filtre har hvert deres knækfrekvens og Q-værdi. Lavpasfilterets og højpasfilterets knækfrekvenser samt deres Q-værdier kan ændres uafhængigt af hinanden, og på den måde skabes forskellige filtertyper. Desuden er der en k-værdi, som er en gainfaktor for hele filteret. 9

18 KAPITEL 2. DESIGN AF FILTERE H(s) = k s2 1 Q b Ω nb s + Ω 2 nb s 2 1 Q a Ω na s + Ω 2 na (2.1) Peakfiltere Peakfilteret forstærker eller dæmper et afgrænset frekvensområde. Frekvenser uden for dette område filtreres ikke. Den faktor, der forstærkes eller dæmpes med benævnes G. Bredden af frekvensbåndet kaldes Ω, og bliver målt ved den halve G. G G Magnitude G/2 Magnitude G/2 G 0 G 0 f 1 f C f 2 f 1 f C f 2 a) b) Figur 2.1: Peakfiltre: et lavpas- og højpasfilter med samme knækfrekvens giver et peakfilter. a: lav Q. b: høj Q I peakfilteret har lavpasfilteret og højpasfilteret ens knækfrekvens, men 2 forskellige Q-værdier, hvilket gør, at der opstår et peak, som vist på figur 2.1. På figur 2.1a har lavpasfilteret større Q- værdi end højpasfilteret, hvilket skaber et positivt peak. Hvis højpasfilteret har højere Q-værdi end lavpasfilteret, skabes et negativt peak. På figur 2.1b har lavpasfilteret den højeste Q-værdi, men i dette tilfælde er der større Q-værdi på begge filtre, dette skaber en smallere peakbredde. Det er med andre ord størrelsen på begge Q-værdier, der bestemmer bredden på peak et, og størrelsen på den ene Q-værdi i forhold til den anden, der bestemmer peakfilterets gain. Shelffiltere Shelffiltere kan opdeles i highshelf og lowshelf. Lowshelffiltere har deres virkning ved lave frekvenser og highshelffiltere ved høje frekvenser. Dette vil sige, at lowshelf lader alle frekvenser over en fastsat centerfrekvens (ω c ) passere ufiltreret, og alle frekvenser derunder bliver enten dæmpet eller forstærket med et definerbart gain (G). Highshelf fungerer modsat, dvs. at det lader alle frekvenser under en fastsat centerfrekvens passere ufiltreret, og dæmper eller forstærker signalerne over denne frekvens. På figur 2.2b ses et eksempel på et highshelf ved forskellige gain. I Shelffilteret er lavpasfilteret og højpasfilteret placeret et stykke fra hinanden. Denne afstand betegnes 2 Ω. På figur 2.2a ses, hvordan et lowshelffilter med positiv gain er opbygget. Ved frekvensen f 1 er der indsat et lavpasfilter. Ved frekvensen f 2 er der indsat et højpasfilter der modvirker lavpasfilteret. f 1 s placering i forhold til f 2 s placering bestemmer filterets forstærkning, ud fra at et lavpasfilter af 2. orden har en stejlhed på 40 db pr. dekade. Byttes der om på de to frekvenser og 10

19 2.2. ANALOGE OVERFØRINGSFUNKTIONER Generelt shelf filter Shelf high 20 G = G = 10 Forstærkning G Forstærkning G = G = -20 f1 fc f2 fc a) b) Figur 2.2: Highshelf filter. a: et lavpas- og højpasfilter, der er placeret ved hver deres knækfrekvens, giver et shelffilter. b: Highshelffilter ved forskellige gain. dermed også på lavpasfilteret og højpasfilteret, ville der blive skabt en forstærkning i stedet for en dæmpning. Lowshelffilterets k-værdi findes ud fra, at gain ved DC skal være lig filterets gain G. Ønskes et highshelffilter, findes k-værdien ud fra, at der ønskes en gain ved DC, der er lig 0 db. 2.2 Analoge overføringsfunktioner For at kunne implementere shelf- og peakfilterene digitalt, er de først designet analogt, dette er gjort i appendiks B. I det følgende afsnit, er de analoge overføringsfunktioner for peak og shelf opstillet. Peak I ligning 2.2 ses den analoge overføringsfunktionen for peakfiltret. Ω c er filterets centerfrekvens. A findes vha. ligning 2.3, hvor Ω er peakfilterets bredde. G B er filterets gain, der hvor båndbredden ønskes målt, og G er filterets gain. B findes med ligning 2.4. Udledning af ligningerne kan ses i appendiks B. H(s) = s2 + B s + Ω 2 c s 2 + A s + Ω 2 c (2.2) G 2 B A = 1 G 2 G 2 Ω (2.3) B B = A G (2.4) 11

20 KAPITEL 2. DESIGN AF FILTERE Shelf I ligning 2.5 ses den analoge overføringsfunktion for shelffilteret. Knækfrekvenserne for lavpasfilteret og højpasfilteret Ω na og Ω nb findes ud fra centerfrekvensen, dette gøres med ligningerne 2.6 og 2.7 for highshelffiltere og med ligningerne 2.8 og 2.9 for lowshelffiltere. I disse to ligning indgår afstanden Ω, som kan findes vha. ligning 2.10, hvor G er den ønskede forstærkning i filteret. H(S) = k S2 1 2 Ω nb S + Ω 2 nb S Ω na S + Ω 2 na (2.5) Ω nb = Ω c 10 Ω (2.6) Ω na = Ω c 10 Ω (2.7) Ω nb = Ω c 10 Ω (2.8) Ω na = Ω c 10 Ω (2.9) Ω = G 2 40dB/dek [dek] (2.10) Filterets k-værdi er forskellige for lowshelf- og highshelffiltere. Ved highshelf ønskes et DC-gain på 1. Dette giver en k-værdi, der kan beregnes med ligning Ved lowshelf ønskes et DC-gain der er lig filterets gain. Dette kan beregnes med ligning Udledning af ligningerne kan ses i appendiks B. k = Ω2 na Ω 2 nb (2.11) k = G Ω2 na Ω 2 nb (2.12) 2.3 Digitalisering af analoge filtre Digitalisering af de analoge filtre sker ved hjælp af en z-transformation, som gør de analoge filtere tidsdiskrete. I det følgende afsnit er der beskrevet to forskellige metoder for digitalisering af analoge filtre: biliniær transformation og foreskrevet Nyquist-frekvens gain. 12

21 2.3. DIGITALISERING AF ANALOGE FILTRE Bilineær transformation Den bilineære transformation er en almindelig anvendt metode til z-transformation. Den undgår problemet med aliasing, der opstår ved impulsinvarians-metoden, ved at mappe hele jω-aksen i s-planet til én omgang på enhedscirklen i z-planet. Ved denne transformation sættes gain ved Nyquist-frekvensen i det digitale filter lig med gain ved uendelig frekvens for det analoge filter. Dette får frekvensresponsen til at falde eller stige hurtigere tæt ved Nyquist-frekvensen i forhold til den tilsvarende analoge frekvensrespons. Med systemets samplerate på Hz, vil det medføre, at gain ved Hz sættes lig gain ved uendelig frekvens, hvilket skaber forvrængning i forhold til den ønskede frekvensrespons, når der er placeret filtere ved høje frekvenser. [Oppenheim, 1999] Foreskrevet Nyquist-frekvens gain En anden metode til z-transformation er udviklet af Sophocles J. Orfanidis, og benævnes foreskrevet Nyquist-frekvens gain [Orfanidis-Nyquist, 1996]. Denne metode inddrager en variabel mere i overføringsfunktionen: gain ved uendelig frekvens G 1. Denne metode lader G 1 være forskellig fra G 0. G 1 sættes lig den gain som den analoge overføringsfunktion har ved Nyquist-frekvensen. Dermed får det transformerede filter den ønskede gain ved Nyquist-frekvensen, hvorved den samlede filterkarateristik i højere grad kommer til at ligne den ønskede analoge frekvenskarakteristik. Dvs. den før omtalte forvrængning af frekvenskarakteristikken i nærheden af Nyquist-frekvensen mindskes. z-transformationen er den samme som for bilineære transformation, men den analoge overføringsfunktion omskrives til også at indeholde en G 1 før transformationen foretages. Problemet med foreskrevet Nyquist-frekvens gain er, at dette kræver mere komplicerede beregninger under z-transformationen, da der indgår en variabel mere Valg af transformationsmetode Den bilineære z-transformation kan med fordel anvendes ved transformation af hhv. lowshelf- og highshelffiltere. Grunden til dette er at den eneste påvirkning transformationen har på filterene, er at de får stejlere flanker end det analoge filtre. Mindskes centerfrekvensens afstand til Nyquistfrekvensen, øges stejlheden på flankerne. For shelffilterene vælges derfor at benytte den bilineære transformation. Til peakfilterene er den bilineære transformationsmetode ikke ønskelig, da den bl.a. medfører, at bredden af peakfilterene bliver afhængig af centerfrekvensen. Denne virkning kan minimeres ved at anvende foreskrevet Nyquist-frekvens gain -metoden til z-transformering af peakfilterene. Derfor vælges denne transformationsmetode til filtertypen peak. z-tranformationen af shelffilterene er foretaget i appendiks C. z-transformationen af peakfilterene, hvor der tages højde for Nyquist-fænomenet, er fundet i Digital Parametric Equalizer Design With Prescribed Nyquist-Frequency Gain [Orfanidis-Nyquist, 1996]. Ligningerne for de to filtertyper er beskrevet i det følgende afsnit. z-transformeret peakfilter Der er valgt at benytte foreskrevet Nyquist-frekvensgain ved peakfiltere. Denne metode inkluderer G 1 i den analoge overføringsfunktion, se ligning Når frekvensen går mod uendeligt, går gain mod G 1, og når frekvensen går mod DC, går gain mod G 0. 13

22 KAPITEL 2. DESIGN AF FILTERE H(s) = G 1 s Q b Ω nb s + G 0 Ω 2 nb s 2 1 Q a Ω na s + Ω 2 na (2.13) Den tidsdiskrete overføringsfunktion for peakfiltere, kan ses i ligning a- og b-koefficienterne kan findes med ligningerne 2.15 til H(z) = b 0 + b 1 z 1 + b 2 z a 1 z 1 + a 2 z 2 (2.14) b 0 = G 1 + G 0 W 2 + B 1 +W 2 + A (2.15) b 1 = 2 G1 G 0 W 2 1 +W 2 + A (2.16) b 2 = G 1 + G 0 W 2 B 1 +W 2 + A (2.17) a 1 = 2 1 W 2 1 +W 2 + A (2.18) a 2 = 1 +W 2 A 1 +W 2 + A (2.19) A, B og W 2 kan findes med udtrykkene i ligning W 2 = G 2 G 2 1 G 2 G 2 Ω 2 0, A = 0 C + D G 2 G 2 B, B = G 2 C + G 2 B D G 2 G 2 B (2.20) C, D og Ω 0 kan findes med ligningerne 2.21 til 2.23, hvor ω 0 er den ønskede centerfrekvens. ( ) C = ( Ω) 2 G 2 B G W 2 G 2 B G 0 G 1 (G 2B G20 ) (G2B G21 ) (2.21) ( ) D = 2 W 2 G 2 G 0 G 1 (G 2 G 20 ) (G2 G 21 ) (2.22) Ω 0 = tan ( ω0 ) 2 (2.23) Ω findes med ligning 2.24, hvor ω er den ønskede peakbredde. 14

23 2.4. IMPLEMENTATIONSFORMER Ω = ( 1 + ) G 2 B G2 0 G G 2 B 2 G 2 ( ) 1 ω G2 1 G 2 G 2 Ω 2 0 tan 0 2 (2.24) z-transformeret shelf filter Den tidsdiskrete overføringsfunktion for shelffiltere, kan ses i ligning k-værdierne, er beregnet på samme måde som ved de analoge overføringsfunktioner for shelffilterene. a- og b-koefficienterne kan findes med ligningerne 2.26 til H(z) = k b0 + b 1 z 1 + b 2 z a 1 z 1 + a 2 z 2 (2.25) b 0 = Ω nb + Ω 2 nb Ω na + Ω 2 na b 1 = Ω 2 nb Ω na + Ω 2 na b 2 = Ω nb + Ω 2 nb Ω na + Ω 2 na a 1 = Ω 2 na Ω na + Ω 2 na a 2 = Ω na + Ω 2 na Ω na + Ω 2 na (2.26) (2.27) (2.28) (2.29) (2.30) Ω nb og Ω na kan findes med udtrykkene i ligning Ω nb = tan( ω nb 2 ), Ω na = tan( ω na 2 ) (2.31) 2.4 Implementationsformer Efter at filterene er digitaliseret, kan de implementeres på forskellig vis. Måden hvorpå de implementeres, inddeles i to kategorier. Direkte form, der direkte implementerer filterkoefficienterne, og state-space form, hvor der beregnes nye filterkoefficienter, med henblik på at få mindre støj i frekvensdomænet [Hüche, 1986]. De to forskellige kategoriers fordele og ulemper gennemgås i de efterfølgende to afsnit, hvorefter et alternativ til at formindske støjen beskrives. Det sidste afsnit omhandler det endelige valg af implementationsform. 15

24 KAPITEL 2. DESIGN AF FILTERE De parametre der har betydning for valget af implementationsform, er mængden af støj i hhv. tids- og frekvensdomænet. Støjen i tidsdomænet, opstår pga. den kvantisering der sker af signalet flere steder igennem filtrene, hvor støjen i frekvensdomænet opstår på grund af kvantisering af filterkoefficienterne Direkte form I og II Direkte form I og II søger ikke at mindske støjen i frekvensdomænet, så på dette punkt er der ikke forskel mellem form I og II. Direkte form II søger at minimere mængden af hukommelse, der bruges til tidsforsinkelse. Derfor bruger Direkte form II kun halvt så meget hukommelse som direkte form I. Strukturen af direkte form I og II, kan ses på figur 2.3a og 2.3b. [Oppenheim, 1999] og [TI, 2002]. ¾S ÀoÁ Ó5Ôº Ó Ôº ¼ ½ ¼ º ¹7º ¼» ¹7» Ã7ÄÅÇÆ'ÈÊÉ7ËMÌYÉaÍÎSÈÏÑÐ ÓÔº Ó Ôº ÂS ÀcÁ ¾S ÀoÁ ¼ ½ ¼ º Ó ¼» Ò ¹ º ÓÔº ¹» Ôº ÄÅÇÆYÈÉ7ËMÌYÉaÍÊÎMÈÏÑÐÊÐ Â ÀoÁ Figur 2.3: Direkte realisationsformer. ¼ º Ó ¼» ¾M ÀoÁ ¼ ½ ÂS ÀcÁ Ó5Ôº Ôº Y¹ º Y¹» Õ7ÄÅÇÆYÈÉ7ËSÌ'É*ÍÎMÈÏÖÐÐÌYÈÊÃ7 MØAÙMÎM MÉ9ÈÉ9Ì Mængden af støj i tidsdomænet er afhængig af, hvorledes mellemregninger kvantiseres. Skal hver enkelt mellemregning kvantiseres, inden der kan regnes videre på resultatet, er forskellen mellem direkte form I og II at kvantiseringsfejlen i form I kun multipliceres med filterets poler (akoefficienter), hvor den ved form II multipliceres med både poler og nulpunkter (b-koefficienter). Dvs. der opnås mindre støj ved form I. For at opnå fordelene ved begge former kan der laves en transponeret udgave af form II [TI, 2002], som er vist på figur 2.3c, hvor mængden af hukommelse er minimeret, og kvantiseringsfejlen kun multipliceres med filtrets poler. Der er ofte mulighed for at lave produktsummer i dobbelt ordlængde, hvilket giver endnu en forskel mellem de tre former. Ved direkte form I er der kun ét summeringspunkt, hvorved der kun laves én kvantisering af signalet fra indgang til udgang. Dette afrundede signal forsinkes og multipliceres stadig kun af filterets poler. Derimod er det, ved direkte form II, nødvendigt at afrunde to steder. Resultatet af den første sum, er den værdi der skal forsinkes, hvorved denne kvantisering får betydning for både poler og nulpunkter i systemet. Direkte form II transponeret skal kvantiseres tre gange, men det er stadig kun filterets poler, der multipliceres med kvantiseringsfejlen. Alt i alt giver direkte form I mindst støj i tidsdomænet af de tre former. Da filtrene skal implementeres i fixed point form, skal der også foretages skalering, for at undgå overflow. Overflow opstår kun ved summering, hvorved det kun er nødvendigt at lave skalering fra indgang til udgang ved direkte form I, da der kun er ét summeringspunkt. Ved direkte form II og direkte form II transponeret skal der laves henholdsvis to og tre skaleringer. Når filterkoefficienterne kvantiseres, kan der opstå støj i frekvensdomænet, da kvantiseringen medfører at filtrets poler og nulpunkter flyttes. Undersøges det, hvilke pol- og nulpunktsplaceringer der er mulige ved en given ordlængde, viser det sig, at der ved lave frekvenser ikke er mange mulige placeringer [Oppenheim, 1999]. Figur 2.4 på næste side viser et eksempel på dette, ved 16

25 2.4. IMPLEMENTATIONSFORMER en kvantisering til 6 bit. Figuren er lavet i Matlab [Cd, matlab/polepositions.m]. Ligger en pol eller et nulpunkt således langt fra et af de mulige punkter i z-planet, vil denne springe til en af de nærliggende realiserbare polplaceringer ved afrunding. Derfor kommer der meget støj i frekvensdomænet ved filtere, der har poler og nulpunkter placeret ved lave frekvenser, relativt til samplingsfrekvensen, da disse flyttes meget ved kvantisering. Figuren er lavet ved 6 bit, men laves en tilsvarende for et højere antal bit, gælder det stadig at der er problemer ved poler/nulpunkter ved lave frekvenser. 1 Mulige Polplaceringer i z planet 0.8 Im [z] Re [z] Figur 2.4: Mulige polplaceringer i z-planet ved en ordlængde på 6 bit Koblet kanonisk state-space Med henblik på at mindske støjen i frekvensdomænet ved lave afskæringsfrekvenser, som følge af kvantiseringen af filterkoefficienterne, kan en alternativ realisationsform anvendes. Denne kaldes koblet kanonisk state-space form [Hüche, 1986]. Formålet med denne form, er at lave en uniform fordeling af realiserbare pol- og nulpunktsplaceringer inden for enhedscirklen. Den kan med fordel anvendes til implementation af kompleks konjugerede polpar, hvor afskæringsfrekvensen er meget lav. Ulempen er at den kræver meget små skaleringsfaktorer, netop ved lave frekvenser, hvorved det bliver et tradeoff mellem støj i frekvensdomænet og i tidsdomænet. Kvantiseringsstøjen bliver nemlig multipliceret med den reciprokke skaleringsfaktor, hvorved støjen i tidsdomænet hurtigt bliver betydende. Skaleringsfaktoren der skal bruges ved den koblede state-space form, er baseret på skaleringsfaktoren ved direkte state-space form. Realisationsstrukturen for state-space formen er vist på figur 2.5 på den følgende side. Anvendes variansskalering til et givet summeringspunkt, skal impulsresponset til dette punkt beregnes. Dette beregnes ved at opstille differensligningen til punktet, og derefter påtrykke den en enhedsimpuls. Differensligningen til det første summeringspunkt(w ) ved state-space formen kan ses i ligning W[n] = x[n] a 1 W[n 1] a 2 W[n 2] (2.32) 17

26 è KAPITEL 2. DESIGN AF FILTERE á â ã ä ÚÛ3Ü ÚÛ3Ý æçü æ çü ß>à Þ Ý Þ Ü å â ã ä Figur 2.5: Kanonisk state-space realisationsform. Variansskaleringsfaktoren S W kan derefter beregnes ud fra ligning 2.33, hvor h W [n] er impulsresponsen, og S W er skaleringsfaktoren der skal anvendes fra input til summeringspunktet W. [Oppenheim, 1999] S W = 1 hw [n] 2 (2.33) For at undersøge hvor små skaleringsfaktorer der kræves for at anvende denne realisationsform, laves et filter med en lav centerfrekvens. Filteret har en 20 db peak ved 50 Hz med en bredde på en oktav, som det kan ses på figur 2.6. Filteret påtrykkes en impuls, og impulsresponset i det første summeringspunkt beregnes ud fra ligning 2.32 på forrige side, resultatet kan ses på figur 2.7. Forstærkning [db] Frekvens [Hz] Figur 2.6: Filterkarakteristik for peakfilter, der skal skaleres. Output Samplenummer Figur 2.7: Impulsrespons fra input til første skaleringspunkt i state-space strukturen. Beregnes skaleringsfaktoren ud fra ligning 2.33, bliver den ca. S W = 0, , hvilket svarer til at der forsvinder mere end 10 bit af signalet (n = log 2 (0, ) 10,3). Dette svarer til at signalet dæmpes 20log(0, ) 62dB. Det maksimale opnåelige signal/støjforhold ved 16 bit er 20log(2 16 ) = 96dB, hvilket giver et signal/støjforhold for state-space formen på 96dB 62dB = 34dB. Til sammenligning kræver direkte form I kun en skalering på 20dB, da den maksimale forstærkning i filteret er 20dB og der kun er ét summeringspunkt, der kan give overflow. Dette giver den mest konservative form for skalering, hvor der ikke kan opstå overflow. Signal/støjforholdet bliver således på 96dB 20dB = 76dB. 18

27 2.5. IMPLEMENTATION AF FILTERE Valg af implementationsform Det er valgt at benytte direkte form I for at optimere signal/støjforhold i tidsdomænet, på bekostning af støj i frekvensdomænet. Dette gøres ved at vælge poler og nulpunkter blandt dem, der er mulige at realisere i 16 bit fixed point, som er den ordlængde DSP en er designet til at arbejde med. For at forbedre brugervenligheden, plottes frekvenskarakteristikken, de kvantiserede poler og nulpunkter danner, på brugerfladen således, at brugeren visuelt kan inspicere det realiserede filter. 2.5 Implementation af filtere Ved implementation af filtere af høj orden, ved brugen af direkte form I, kan der opstå meget støj i frekvensdomænet. Dette skyldes at kvantiseringen af filterkoefficienterne forskyder placeringen af poler og nulpunkter. Filterordenen er proportional med antallet af pol- nulpunkts placeringer, der er afhængige af hver enkelt koefficientkvantisering [Oppenheim, 1999]. Derfor er det valgt at implementere filtrene i 2. ordens sektioner (SOS), hvor færre pol- og nulpunktsplaceringer påvirkes af afrundinger. Endvidere er den bikvadratiske overføringsfunktion af 2. orden og derfor velegnet til implementering i 2. ordens sektioner. Det efterfølgende afsnit behandler skaleringen af filterene, hvorefter kvantiseringen af de endelige koefficienter beskrives. Rækkefølgen sektionerne implementeres i, har betydning for signal/støjforholdet, og det næstsidste afsnit omhandler hvorledes rækkefølgen bestemmes for at minimere kvantiseringsstøjen. Afslutningsvis simuleres den valgte implementationsform, ved hjælp af Matlab Skalering af koefficienter Når filterkoefficienterne skal beskrives i endelig ordlængde, er det en beregningsmæssig fordel, at de repræsenteres med fixed point, derved skal der ikke foretages forskellige antal højre/venstre skift efter hver multiplikation. Det er valgt at placere kommaet således at alle værdier, der kan repræsenteres numerisk er under 1. Dvs. kommaet er placeret umiddelbart efter sign-bittet. For at kunne beskrive filterkoefficienterne på denne måde, er det nødvendigt at kende hvilke mulige værdier alle filterkoefficienterne kan antage. For at undersøge dette er der lavet et Matlab program [Cd, matlab/maxkoef.m], der beregner filterkoefficienterne ved forskellig gain og frekvens. Figur 2.8 og 2.9 på næste side viser de mulige filterkoefficienter for filtertypen lowshelf og highshelf. Hver linje på graferne repræsenterer en gain værdi mellem ±20 db, med spring på 4 db. Ud af 1.- aksen ses placeringen af centerfrekvensen, og op af 2.-aksen kan koefficienternes værdi aflæses. Tilsvarende for filtertypen peak, viser figur 2.10 på side 21 hvilke værdier koefficienterne kan antage. For peakfiltere er der en parameter mere end ved shelffiltere, nemlig bredden af peaken B (ved den halve peakgain G B ). Figuren er plottet med en bredde på 0,1 oktav, som er den nedre grænse for bredden. Plottes tilsvarende for andre bredder, viser det sig at a 1 holder sig inden for ±2 og a 2 inden for ±1. Ud fra graferne ses at det kun er koefficienten a 2, der numerisk er mindre end 1. b-koefficienterne kan skaleres til at være mindre end 1, såfremt signalet efterfølgende forstærkes med en tilsvarende 19

28 KAPITEL 2. DESIGN AF FILTERE 10 Shelf low: B0 Shelf low: B1 10 Shelf low: B2 2 Shelf low: A1 1 Shelf low: A Frekvens [khz] Frekvens [khz] Frekvens [khz] Frekvens [khz] Frekvens [khz] Figur 2.8: Koefficientværdier for lowshelffilter, som funktion af frekvens ved forskellig gain. Ud fra figuren, kan det undersøges hvilke koefficientværdier, det skal være muligt at repræsentere Shelf high: B Frekvens [khz] Frekvens [khz] 0 Shelf high: B Shelf high: B Frekvens [khz] Shelf high: A Frekvens [khz] Shelf high: A Frekvens [khz] Figur 2.9: Koefficientværdier for highshelffilter, som funktion af frekvens ved forskellig gain. Ud fra figuren, kan det undersøges hvilke koefficientværdier, det skal være muligt at repræsentere. faktor. Tilbage er kun a 1 -koefficienten, der altid numerisk er mindre end 2. Denne værdi kan ikke umiddelbart skaleres, men ved at ændre på differensligningen for direkte form I i ligning 2.34, kan problemet løses. a 1 -koefficienten halveres, således at den numerisk bliver mindre end 1, hvorefter produktet, hvor a 1 indgår, adderes 2 gange, som det er vist i ligning y[n] = b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] + a 1 y[n 1] + a 2 y[n 2] (2.34) ( a1 ) y[n] = b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] y[n 1] + a 2 y[n 2] (2.35) Ud fra figurene 2.8 til 2.10 kan det ses, hvilke frekvensområder, der kan give problemer ved koefficientkvantisering. På figur 2.8 ses det tydeligt at alle koefficienterne ved lave frekvenser ligger meget tæt. Derfor kan en lille afrundingsfejl, betyde en stor ændring af filterkarakteristikken. Generelt kan det siges om figurerne, at der hvor linjerne ligger meget tæt, kan der opstå problemer. Dette gælder kun de steder, hvor alle b- eller a-koefficienterne har linjer, der ligger tæt, ved samme frekvenser. Ud over mastergain-parameteren, er der yderligere to gain-parametre i systemet. Den ene benævnes S, og svarer til den skalering, der er nødvendig, for at en given 2. ordens sektion ikke giver overflow. Dvs. har en 2. ordens sektion et maksimalt gain på 10 db, skal indgangssignalet skaleres 20

29 û 2.5. IMPLEMENTATION AF FILTERE Peak: B Frekvens [khz] Peak: B Frekvens [khz] Peak: B Frekvens [khz] Peak: A Frekvens [khz] Peak: A Frekvens [khz] Figur 2.10: Koefficientværdier for peakfilter med bredden 0,1 oktav, som funktion af frekvens ved forskellig gain. Ud fra figuren, kan det undersøges hvilke koefficientværdier, det skal være muligt at repræsentere. ned med 10 db. Dette gøres ved at dividere b-koefficienterne igennem med skaleringsfaktoren S, som her i eksemplet er 10 db (S = 10 10/20 = 10). Den sidste skaleringsfaktor er den faktor b-koefficienterne er skaleret med, for at de alle numerisk er mindre end 1, denne benævnes K. For at finde K-værdien for en 2. ordens sektion, skal skaleringsfaktoren S være fundet, hvorefter K kan findes ud fra følgende formel: K = max( S 1 [ b 0 b 1 b 2 ] ) (2.36) For at bibeholde det ønskede gainniveau, skal K-faktoren ganges på outputtet af 2.ordens sektionen, hvilket gøres ved at multiplicere b-koefficienterne i det efterfølgende 2. ordens led med denne K-værdi. Figur 2.11 viser et blokdiagram over, hvor de forskellige skaleringsfaktorer skal anvendes. S ( ) K [ b b b ] K ( ) [ b1 b2 ] -1 1 S 1 n 1 S1 K1 [ b0 b1 b2 ] K S K b 1 2 S n 1 n 0 é%êyëì î ï>ðcñòóoô3õ5ö[ô cócñ ø ù ú ï>ðcñòócô õö9ô3 cócñ ø ù ù ï>ðcñòócô õö[ô cócñ ø ù ðoñòócô õö[ô qóñ ø ù ô3ù öçüþý 9ö[ñ üÿý3òô ý ñ ù 9ø3ô>ð ðoñ [ñô ù7óö9 [ý ò ô õñ ù öqðoý Jóoø õ üÿý öjóoô õ ý ñ ù K M n G S n í ê'ëì Figur 2.11: Blokdiagram over skalering imellem hver filtersektion. Når en skaleringsfaktor skal implementeres, foregår det ved at b-koefficienterne divideres med skaleringsfaktoren. Den samlede skaleringsfaktor for en given 2. ordens sektion er afhængig af S- og K-værdien for både sektionen selv, og den foregående sektion. For at kompensere for skaleringsfaktoren K for den foregående sektion, multipliceres først med denne værdi. Af hensyn til den endelige implementation vil faktoren, som består af k n 1 ( Sn S n 1 ) 1 benævnes Sk, og faktoren K n M G S n benævnes G. 21

30 KAPITEL 2. DESIGN AF FILTERE Rækkefølge af 2. ordens sektioner Da den største mulige gain i den endelige implementering er 0 db, skal indgangssignalet skaleres ned, såfremt brugeren ønsker forstærkning ved nogle frekvenser. Det samlede filters maksimale gain bestemmer, hvor meget signalet skal dæmpes fra indgang til udgang. Er den maksimale gain i det samlede filter f.eks. 20 db, skal der fra indgang til udgang ske en dæmpning på 20 db. Denne skalering medfører et dårligere signal/støj-forhold. Skaleringen af koefficienterne har også betydning for signal/støj-forholdet. Den endelige gain G, der bl.a. skal kompensere for at b-koefficienterne er blevet skaleret ned, kan blive større end 1. For at gøre det muligt at gange en faktor større end 1 på signalet efter den sidste sektion, skal der laves venstreskift i DSP en. Dette medfører at signal/støj-forholdet forringes, da antallet af venstreskift, der skal laves altid er fast ved fixed point beregninger. Antallet af venstreskift bestemmes af den størst mulige G-faktor, hvorved denne værdi ønskes minimeret. Dette kan gøres ved at benytte koefficientskaleringen, som en del af den skalering, der laves for at undgå overflow i de enkelte filtersektioner. Dette gøres ved at implementere de enkelte sektioner, således at sektionerne med størst koefficientskalering placeres først. 2.6 Simulering For at undersøge om filteret har den ønskede effekt, foretages en simulering i Matlab [Cd, matlab/- FilterSB6.m]. Simuleringen tager udgangspunkt i et testsignal, der filtreres, hvorefter det filtrerede signal kan sammenlignes med det ufiltrerede. Sammenligningen ønskes foretaget i frekvensdomænet, således at resultatet kan sammenholdes med den ønskede filterkarakteristik. Testsignalet opbygges af en række sinustoner ligeligt logaritmisk fordelt i frekvensområdet fra 20 Hz til 22 khz. Testsignalet filtreres af et filter bestående af et 10 db gain lowshelf ved 80 Hz, et 10 db peak ved 1 khz, et 15 db peak ved 10 khz, samt et 10 db gain highshelf ved 15 khz. Frekvenskarakteristikken for de fire filtersektioner kan ses på figur Lowshelffilteret ved 80 Hz har ikke den ønskede gain på 10 db, på grund af kvantisering af filterkoefficienterne. Fejlen er under 1 db, så filtersektionen accepteres. 15 Frekvenskarakteristik for filtersektioner Forstærkning [db] Frekvens [Hz] Figur 2.12: Frekvenskarakteristik for de fire filtersektioner, der benyttes til simuleringen. 22

31 2.6. SIMULERING Koef\Filter 10 db SL, 80 Hz 10 db P, 1 khz 15 db P, 10 khz 10 db SH, 15 khz b (0.49) (0.46) (0.00) (0.00) b (0.00) (0.00) (0.31) (-0.01) b (0.30) (-0.18) (0.49) (-0.14) a (0.04) (-0.33) (0.08) (-0.48) a (0.29) (0.42) (0.36) (-0.09) Tabel 2.1: Kvantiserede filterkoefficienter, hvor tallet i ( ) er afrundingsfejlen i forhold til en LSB For at kunne sammenligne signalet før og efter filtreringen, laves en Fouriertransformation af begge signaler. Fouriertransformationen foretages numerisk med FFT, der har et lineært spring mellem frekvenserne, hvilket giver en dårlig opløsning ved lave frekvenser, når der ses på resultatet med en logaritmisk afstand mellem frekvenserne. Derfor laves et langt (2 sekunders) testsignal, der ved en samplingsfrekvens på Hz giver en punkts FFT analyse (1/2 Hz opløsning), når denne laves i fuld signallængde. Til selve filtreringen benyttes differensligningen i ligning Koefficienten a 1 er halveret og benævnes a 1, inden den sættes ind i differensligningen, som beskrevet i afsnit på side 19. Filterkoefficienterne er kvantiseret til 16 bit, og er vist i tabel 2.1 med 5 decimaler. Kvantiseringsfejlen for hver enkelt koefficient kan ses i parantesen efter selve koefficienten, fejlen er udtrykt i forhold til en LSB. y[n] = b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] + a 1 y[n 1] + a 1 y[n 1] + a 2 y[n 2] (2.37) y[n] = 2 (D 1) round(2 D 1 y[n]) (2.38) Efter selve produktsummen er beregnet, ud fra ligning 2.37, skal denne afrundes til 16 bit, da Matlab regner med floating point. Dette gøres for hver enkelt sample med ligning 2.38, hvor D = 16 er ordlængden og round-funktionen afrunder til heltal. På figur 2.13 på næste side ses FFT-analysen af signalet før filtrering (grå søjler), og signalet efter filtrering (sorte søjler), samt den ønskede frekvenskarakteristik (sort linje). Grunden til at søjlerne har en større bredde ved de lave frekvenser end ved de høje, er at FFT-analysen har et lineært spring i frekvens, og afbildningen er foretaget med logaritmisk frekvensakse. 23

32 KAPITEL 2. DESIGN AF FILTERE FFT af testsignal før og efter filtrering 0 Forstærkning [db] Frekvens [Hz] Figur 2.13: FFT af testsignal før (grå søjler) og efter (sorte søjler) filtrering, samt filterets ønskede frekvenskarakteristik (sort linje). Simuleringen er foretaget med alle de afrundinger, der vil forekomme, når filtreringen skal foregå i DSP en, for at give et realistisk billede af hvorledes det fungerer. Ud fra simuleringen kan det konkluderes at filteret teoretisk fungerer efter hensigten, da det på figuren kan ses, at søjlerne fra det filtrerede signal følger kurven for den ønskede filterkarakteristik. 24

33 KAPITEL DSP-kernesystem 3 Indhold 3.1 Krav til DSP-kernesystem Design af DSP-kernesystem TMS320C Debugger/monitor interfacekreds RAM og ROM Pc-interface Input- og outputregister Adressedekodning Test og verificering af DSP-kernesystem I dette afsnit beskrives DSP-kernesystemet. DSP-kernesystemet er det centrale element i den parametriske equalizer, idet filtreringen af lyden foregår her. Herudover er DSP-kernesystemet den centrale styreenhed for hele hardwaresystemet. Der anvendes en DSP af typen TMS320C26 fra Texas Instruments [Cd, datablade/tms320c26.pdf]. Denne er valgt af to grunde: Der gives undervisning i brugen af denne signalprocessor. Der stilles fra universitetets side et debugger/monitor-system, C-compiler og assembler til rådighed der understøtter denne processor. Disse to grunde vejer tungere end behovet for en DSP med mere funktionalitet, specielt hvad angår kommunikation mellem DSP en og perifere enheder. Dette har ført til, at der er designet omfattende ekstern interfacehardware til modtagelse af det digitale audiosignal. Ved at anvende en moderne DSP, med flere serielle porte, kan dette undgås, hvorved der kan opnås en større grad af integration. Herudover kunne det være ønskeligt med en større ordlængde, hvorved betydningen af kvantisering af koefficienter og skalering kan minimeres. 25

34 KAPITEL 3. DSP-KERNESYSTEM 3.1 Krav til DSP-kernesystem I udviklingsfasen skal systemet tillige anvendes som udviklingsplatform for firmwaren. Til dette formål anvendes debugger/monitor-systemet D/M3202XV, der stilles til rådighed af universitetet [Nielsen, 2000]. Af denne grund skal DSP-kernesystemet designes efter de krav D/M3202XV stiller. Debugger/monitoren består af en ROM som indeholder selve programmet, og en interfacekreds IDM3202X, som giver mulighed for at tilslutte en terminal gennem en RS232-forbindelse, hvorved debugger/monitoren kan betjenes. Herudover er det nødvendigt at implementere mindst 1/8 Ki RAM, reservere I/O port 15, samt et interrupt til en manuel trap-funktion, hvorved debugger/monitoren kan afbryde programafviklingen. Kravene debugger/monitorsystemet stiller er opsummeret i følgende tabel: Enhed Størrelse [Adresser] Adresse D/M3202XV-EPROM (Program Space) 4 Ki 0000h - 0FFFh Ekstern RAM (Program Space) 1/8Ki 1000h - 107Fh I/O port 1 0Fh For at kunne betjene den digitale equalizer skal der til DSP-kernesystemet udvikles et interface til en pc, således at et klientprogram kan downloade filtre, foretage frekvensanalyse og aflæse lydtryksmåleren. Til dette anvendes en RS232-forbindelse. Denne del benævnes pc-interface. Cd-interfacet og analog I/O, som er beskrevet i afsnit 5, kræver en mængde styresignaler for at kunne fungere. Det er derfor ønskeligt at implementere to eksterne registre til hhv. input og output. Disse mappes til en I/O port, hvorved det bliver muligt at aflæse logiske niveauer på inputregisterets inputben, og udlæse logiske niveauer på outputregisterets outputben. I det følgende beskrives designet af DSP-kernesystemet hvor den beskrevne funktionalitet implementeres. 3.2 Design af DSP-kernesystem Figur 3.1 viser et blokdiagram over DSP-kernesystemet. Systemet indeholder, foruden selve DSP en, den nævnte interfacekreds IDM3202X, et pc-interface, RAM og ROM, input- og outputregister, samt en adressedekoder, der styrer enheder, der er tilsluttet bussen. Derudover er der en krystaloscillator, to RS232-drivere samt en trap- og resetswitch. De enkelte blokke beskrives i de følgende afsnit. Det samlede diagram over DSP-kernesystemet kan ses i appendiks Q TMS320C26 TMS320C26 er internt opbygget efter Harvard-strukturen, det vil sige at den internt har en separat program- og databus. Dette gør at TMS320C26 er i stand til at hente en instruktion samtidigt 26

35 3.2. DESIGN AF DSP-KERNESYSTEM U AR T W U AR T R R S 23 2 R X D T X D P c -i n t e r f a c e I n p u t - o g o u t p u t - r e g i s t e r C S R E G I N C S R E G O U T S T R B D 0-D 7 A0-A2 D 0-D 7 R X D R S 23 2 T X D A0-A3 A0-A2 A1 2-A1 5 T r a p - s w i t c h I n t e r f a c e - K r e d s I D M 3 202X D 1 1 -D 1 5 S T R B, R / W, I S D S P T M S 3 20C 26 P S, D S, I S T R B R / W S, S C M Ad r e s s e - d e k o d e r R E AD Y R E S E T R e s e t - I N T T R AP s w i t c h K r y s t a l - A0-A1 5 D 0-D 1 5 R / W D S o s c i l l a t o r R AM & R O M C S R AM C S R O M Figur 3.1: Blokdiagram over DSP-kernesystemet. med at der hentes data, hvilket muliggør en mere effektiv signalbehandling. Som interface til eksterne enheder har TMS320C26 en enkelt 16 bit parallel program- og databus [D0...D15], og en 16 bit adressebus [A0...A15]. Da der kun er én ekstern bus til både program og data, eksisterer der herudover to signaler, DS og PS, der angiver om bussen skal transportere data eller instruktioner. Dette giver effektivt et adresseområde på = 128Ki unikke adresser. Herudover eksisterer der et tredje signal, IS, der angiver tilgang til en I/O port. Dette adresseområde består dog kun af 16 adresser som ved en I/O operation angives af [A0...A3]. TMS320C26 indeholder et integreret serielt interface til kommunikation med perifere enheder. Her anvendes Data Receive (DR) og Data Transmit (DX) til at sende og modtage serielle data. Disse to ben bruger to clocksignaler, CLKR og CLKX, som asynkront med DSP ens instruktionscyklus clocker data ind og ud af to 16 bit skifteregistre. Herudover findes to synkroniseringsinput, FSR og FSX, som anvendes til at initiere en dataoverførsel. Krystaloscillator Clockfrekvensen på TMS320C26 er angivet til maksimalt 40,96 MHz. Denne clockfrekvens anvendes, hvilket giver en instruktionstid 97,7 ns, svarende til en afviklingshastighed på 10,24 MIPS. Instruktionscyklussen er delt op i fire faser af længden Q = 1/40,96MHz = 24,4 ns. Denne størrelse benyttes ved beregning af timingkrav til DSP en. Der anvendes en færdig komponent, som generer denne clock, og outputtet forbindes til DSP ens CLKIN input. 27

36 KAPITEL 3. DSP-KERNESYSTEM Kontrolsignaler TMS320C26 har en række kontrolsignaler, som ikke anvendes i dette system. I kategorien multiprocessering indgår kontrolsignalerne HOLD, HOLDA, BR og SYNC, og anvendes kun i tilfælde af at der indgår flere DSP er i systemet. Da der kun anvendes én DSP skal HOLD og SYNC forbindes til +5V. MP/MC (Microprocessor/microcomputer) bestemmer om det er den interne ROM eller det eksterne hukommelsesområde, der skal anvendes til at boote fra. MP/MC sættes til +5V, hvorved TMS320C26 vil boote fra den eksterne ROM hvor debugger/monitoren er placeret. De resterende kontrolben forbindes som angivet i tabel 3.1. Kontrolben READY og MSC DS, PS, IS, STRB, R/W BIO XF INT0, INT1, INT2 RS CLKR og CLKX DR og DX FSR/FSX Forbindelse Disse forbindes til adressedekoderen og anvendes i forbindelse med generering af wait states, som beskrevet i afsnit Forbindes ligeledes til adressedekoderen, hvor de indgår i dekodningen af chip select signaler, som beskrevet i afsnit Branch Control Input anvendes i forbindelse med branchinstruktionen BIOZ. Dette signal er koblet til FSYNC der angiver om det er højre eller venstre kanal, der modtages fra cd-interfacet. Dette er beskrevet i kapitel 4. External Flag anvendes som clock til den serielle kontrolport, der clocker kontrolinformation ud og ind af codec et, samt downloader gain til line-receiveren. Signalet benævnes SCCLK. Den serielle kontrolport er nærmere beskrevet i kapitel 5. Eksterne interrupts. I dette tilfælde kobles INT0 til trap på IDM3202X. INT1 tilkobles cd-interfacets interruptgenerator. INT2 forbindes til en pull-up modstand, således at interruptet ikke trigges utilsigtet. Reset input. Genereres af IDM3202X. Disse to inputs kobles på det serielle clocksignal SACLK fra codec et. Disse ben tilkobles hhv. SADI og SADO som går til/fra codec et, og indeholder audiodata. Disse to input anvendes til frame synkronisering under seriel overførsel, og kobles på SASYNC som genereres af codec et Tabel 3.1: Opkobling af kontrolsignaler. 28

37 3.2. DESIGN AF DSP-KERNESYSTEM Debugger/monitor interfacekreds Til debugger/monitoren skal der anvendes en interfacekreds, som benævnes IDM3202X. Denne danner interface mellem RS232, RESET samt TRAP og DSP en (se figur 3.1). I manualen til debugger/monitoren er det specificeret hvordan interfacekredsen skal opkobles, og denne vejledning er fulgt [Nielsen, 2000]. Reset og trap TRAP-kontakten tilkobles, gennem interfacekredsen til INT0, som er det højest prioriterede interrupt på DSP en. Når TRAP-kontakten aktiveres, vil den stoppe et program der er i gang. I IDM3203X er der indbygget prel-fjerner til TRAP-kontakten. RESET designes som en kombination af power-up reset og manuelt reset med en kontakt. RESET kontakten kobles på IDM3202X og derfra videre til RS på DSP en. IDM3202X vil sørge for den nødvendige hysterese til RS. RS232-driver Debugger/monitoren kommunikerer med en terminal over en RS232-forbindelse. Der anvendes en RS232-driver af typen Sipex SP232A [Cd, datablade/sp232a.pdf], der kan konvertere signalerne til de korrekte logiske niveauer: Logisk 0 = +3 til + 24 V Logisk 1 = 3 til 24 V Denne driver indeholder fire separate kanaler hvoraf interfacekredsen bruger de to. De resterende to kanaler anvendes af pc-interfacet, som beskrives i afsnit RAM og ROM Til RAM og ROM anvendes følgende to kredse: RAM: CYPRESS CY7C199-32K x 8 bit SRAM [Cd, datablade/cy7c199.pdf]. ROM: ST 27C K x 16 bit EPROM [Cd, datablade/m27c1024.pdf]. RAM-kredsen har en 8 bit databus og DSP en har en 16 bit databus, og derfor skal der minimum anvendes to RAM-kredse for at kunne udfylde databussens bredde. ROM-kredsen er en del af debugger/monitor-systemet og har en 16 bit bred databus. På RAM- og ROM-kredsene er der et Chip Select ben CE der skal forbindes til adressedekoderen, som generer det nødvendige chip select signal, som beskrevet i afsnit Output Enable OE på begge kredse forbindes til stel, 29

38 KAPITEL 3. DSP-KERNESYSTEM hvorved kredsene bliver styret af chip select signalet. Write Enable WE på RAM-kredsen forbindes til R/W på DSP en, hvorved det er muligt at gennemføre både læse- og skriveoperationer. RAM-kredsen skal både anvendes til data og til programmer. Den skal derfor deles i to sektioner. Dette gøres ved at forbinde det øverste adresseben (A14) på kredsen til DS. Dette bevirker at den ene halvdel vælges hvis Data Space adresseres, og den anden halvdel hvis ikke Data Space adresseres. Dermed indgår DS, der angiver Data Space, som en del af adressen. I appendiks E er kravene til timing for enheder tilsluttet bussen gennemgået. I følgende tabel ses timingparametrene for RAM-kredsen: Parameter RAM DSP Address to data valid (R) t AA < 15 ns t acc < 38 ns CE low to data valid (R) t ACE < 15 ns t oe < 15 ns CE high to Hi-Z (R) t HZCE < 7 ns t dis < 38 ns Read cycle time (R) t RC > 15 ns t w(cs) > 48 ns Write cycle time (W) t WC > 15 ns t w(a) > 77 ns CE low to write end (W) t SCE > 10 ns t w(cs) > 48 ns Data setup to write end (W) t SD > 0 ns t su(d)w > 30 ns Data hold from write end (W) t HD > 15 ns t h(d)w > 15 ns Ud fra tabellen kan det set, at RAM-kredsen ikke skal have wait states for at interface til TMS320C26. Selvom to af kravene ligger på grænsen, kan det garanteres at der ikke vil opstå timingproblemer, da beregningerne i appendiks E er afrundet til hele nanosekunder mod worst case i alle tilfælde. For ROM-kredsen er det kun read parametrene der skal undersøges, da der ikke skal skrives i ROM-kredsen. I følgende tabel ses tidsparameterne for ROM-kredsen: Parameter ROM DSP Address valid to output valid (R) t ACC < 100 ns t acc < 38 ns Chip enable low to output valid (R) t CE < 100 ns t oe < 15 ns Chip enable High to output Hi-Z (R) t HZCE < 30 ns t dis < 38 ns Ud fra disse tidsparametre for ROM-kredsen ses, at det er nødvendigt at indsætte 1 wait state for at interface ROM-kredsen til TMS320C26, idet både t acc og t oe da forlænges med 97 ns. Generering af wait states er beskrevet i afsnit Dette kommer ikke til at påvirke equalizeren, da det kun er debugger/monitoren der afvikles fra ROM. 30

39 3.2. DESIGN AF DSP-KERNESYSTEM Pc-interface Til pc-interfacet anvendes en UART 1 af typen PC16550D fra National Semiconductor [Cd, datablade/pc16550d.pdf]. Kredsen har en indbygget programmerbar clock-divider som tilsluttes en 1,8432 MHz krystaloscillator af samme type som anvendes til DSP en. Ved at sætte divideren kan transmissionshastigheden vælges til alle standardværdier: Deling Symbolrate [baud] Interface til bus UART en har 8 databen, som tilsluttes DSP ens databus fra D0 til D7. Herudover er der 3 ben til valg af kredsens 8 registre. Disse forbindes til DSP ens adressebus fra A0 til A2, hvorved de 8 registre bliver memory mapped. UART en er ikke designet til det bussystem som anvendes i systemet. UART en forventer en puls, ADS, der indlæser det valgte register fra A0, A1 og A2, samt en puls på RD i forbindelse med en read operation eller en puls på WR i forbindelse med en write operation. Dette er vist i timingdiagrammet i figur 3.2. Dette medfører at der er behov for separate chip select signaler for en read og en write operation. ADS forbindes til DSP ens STRB, hvilket medfører at UART en vil indlæse det valgte register ved alle læse operationer - uanset hvilken enhed der adresseres. Der vil imidlertid kun finde en læse eller skriveoperation sted hvis ADS ledsages af enten en RD eller WR puls. Disse to input forbindes til signalerne UARTR og UARTW fra adressedekoderen, hvor disse genereres, hvorved det sikres at læse- eller skriveoperationer kun finder sted når UART en adresseres. Timing for UART På figur 3.2 ses timingsdiagrammet for UART en. For at UART en kan indlæse det valgte register skal adressen være stabil inden ADS asserteres. Dette er garanteret, da t SU(A) > Q 13ns 11ns angiver den tid adresserne er stabile inden STRB asserteres. I adressedekoderen genereres signalerne UARTR eller UARTW som asserteres hvis UART en adresseres ved hhv. en read og en write operation. 1 Universal Asynchronous Receiver Transmitter. 31

40 KAPITEL 3. DSP-KERNESYSTEM STRB t su(a) t AD S t d t d A 0 - A 1 5 R/ W D S U A RTR t R D U A RTW t W R Figur 3.2: Timingdiagram for interface mellem UART og DSP. I følgende tabel ses timingskravene for UART en: Parameter UART DSP Address strobe width t ADS > 60 ns t w(sl) > 48 ns RD strobe width t RD > 125 ns t w(cs) > 48 ns WR strobe width t WR > 100 ns t w(cs) > 48 ns Ud fra disse tider kan det ses at der skal indsættes et enkelt wait state, idet dette forlænger både t w(sl) og t w(cs) med 97 ns Input- og outputregister DSP en har kun ét outputben (XF) og ét inputben (BIO). Da der er behov for flere input og output til de perifere enheder, tilsluttes yderligere et 8 bit outputregister og et 8 bit inputregister. Til dette anvendes en 74HC373 [Cd, datablade/74hc373.pdf]. Denne indeholder både en transparent latch og en tristate buffer for hver bit. Derved kan den både bruges som output, hvor tristatebufferen permanent er enabled, og som input, hvor latchen permanent er aktiveret (transparent). Dette princip er vist i figur 3.3. Input D Q D 0 - D 7 O E LE + 5 V O utput C S R E G IN Q D D 0 - D 7 O E LE G N D C S R E G O U T Figur 3.3: Princip for input og outputregister (kun 3 af de 8 input/output er vist). Input og outputregisteret mappes til en I/O port, som beskrevet i afsnit

41 3.2. DESIGN AF DSP-KERNESYSTEM Adressedekodning I dette afsnit beskrives adressedekodningen. Følgende enheder skal indgå i adressedekodningen: Cd-interface - CDCDL og CSCDR Input- og outputregister - CSREGIN og CSREGOUT Pc-interface - UARTR og UARTW RAM og ROM - CSRAM og CSROM Først opstilles et memory map, som definerer de enkelte enheders placering i de tre adresseområder. Herefter udledes de logiske udtryk som skal implementeres i adressedekoderen. Memory map ROM en som indeholder debugger/monitoren skal placeres i Program Space fra adresse 0 og frem til 0FFFh hvilket svarer til 4 Ki. Ved adresse 1000h i Program Space forventer debugger/monitoren at der er ledig RAM. Dette bevirker at adressedekodningen skal dele hukommelsen op i størrelser på 4 Ki, for at kunne placere RAM en lige efter ROM en. Her skal de mest betydende bit af adressen anvendes til adressedekodning, således at hvert hukommelsesområde bliver delt i 16 områder af 4 Ki. I dette tilfælde er det [A12...A15] der skal medtages i adressedekodningen, idet 2 4 =16. De 2 16 Ki RAM placeres i Program Space og Data Space fra adresse 1000h og frem til 4FFFh. Debugger/monitoren anvender som nævnt hukommelsesområdet fra adresse 1000h til 107Fh. Det vil sige, at hukommelsesområdet, der kan anvendes til firmware, er fra adresse 1080h. UART en er som tidligere nævnt memory mappet. Denne placeres ved adresse 9000h, således at der er plads til at placere yderligere 2 16 Ki RAM i forlængelse af den eksisterende RAM, i tilfælde at der er behov for større lagerkapacitet. Placeringen af enheder i hukommelsen er vist på figur 3.4. Input- og outputregisteret og cd-interfacet mappes ikke i hukommelsen men tildeles en I/O port. Da der kun er tale om tre signaler, tilføres adressedekoderen kun A0, A1 og A2 men ikke A3. Det betyder at adressedekoderen ikke kan skelne mellem port 0 og 8, port 1 og 9, port 2 og 10 osv. Dette betyder at mængden af I/O porte er halveret, til gengæld frigøres et ben på adressedekoderen, hvilket har vist sig at være nødvendigt. Portene tildeles som angivet i følgende tabel: Port Tilslutning Beskrivelse 0/8 CSCDL Cd-interface, venstre kanal. 1/9 CSCDR Cd-interface, højre kanal. 2/10 CSREGIN og CSREGOUT Input- og outputregister. 7/15 Debugger/Monitor Reserveret af den anvendte debugger/- monitor. Indgår ikke i adressedekodningen 33

42 KAPITEL 3. DSP-KERNESYSTEM D ata S p ace Pro g ram S p ace 0000h 07 F F h Intern D / M R O M 0000h 4 K i 0F F F h 1 000h D / M R A M 1 000h 1 07 F h h R A M R A M 1 6 K i 1 6 K i 4 F F F h 4 F F F h 9 000h PC-Interface 9 F F F h Figur 3.4: Memory map over Program og Data Space. Adressedekodningsligninger I adressedekodningen indgår de 4 øverste bit af adressebussen [A12...A15] samt signalerne STRB, R/W, PS, DS og IS. Herudover indgår de tre nederste bit af adressebussen [A0...A2], idet I/O porte vælges af disse signaler. For at overskueliggøre de logiske udtryk der anvendes til genereringen af de forskellige chip select signaler opstilles først følgende definitioner, der angiver om den pågældende enhed er adresseret. ROM = PS (A15 A14 A13 A12) RAM = (PS + DS) (A15 A14 A13 A12 + A15 A14 A13 A12 + A15 A14 A13 A12 + A15 A14 A13 A12) UART = DS (A15 A14 A13 A12) Tilsvarende ligninger defineres for de tre nævnte I/O mappede enheder: CDL = IS (A2 A1 A0) CDR = IS (A2 A1 A0) REG = IS (A2 A1 A0) 34

43 3.2. DESIGN AF DSP-KERNESYSTEM Ud fra disse definitioner kan de logiske udtryk for de enkelte chip select signaler skrives som følger: ROM: CSROM = STRB ROM R/W RAM: CSRAM = STRB RAM Cd-interface venstre kanal: CSCDL = STRB CDL R/W Cd-interface højre kanal: CSCDR = STRB CDR R/W Inputregister: CSREGIN = STRB REG R/W Outputregister: CSREGOUT = STRB REG R/W UART Read: UARTR = STRB UART R/W UART Write: UARTW = STRB UART R/W Fælles for alle chip select signaler er, at de asserteres samtidigt med STRB. Ved at inkludere R/W i udtrykkene er det dels muligt at skrivebeskytte enheder, dels muligt at lade enheder dele porte og adresser. Dette er tilfældet for input og outputregisteret, der begge er mappet til den samme port, men afhængigt af om der er tale om en read eller en write operation vælges enten den ene eller den anden. CSROM er et eksempel på en skrivebeskyttet enhed, idet den kun chip selectes i read operationer. I CSRAM indgår R/W ikke, hvilket betyder, at RAM-kredsen vil blive tilgået uanset om det er en read eller write operation. Generering af wait state I forbindelse med adressedekoderen er det nødvendigt at generere et wait state, når ROM en eller UART en skal interfaces. MSC-signalet på DSP en kan forbindes til READY, hvorved der permanent indføres et wait state. Dette er dog ikke ønskeligt i alle tilfælde, og derfor indføres en løsning, hvor MSC kun tilsluttes READY i det tilfælde, hvor der er behov for et wait state. Dette er udtrykt i sandhedstabellen: WAIT MSC READY WAIT angiver at en enhed der kræver et wait state er adresseret. Det ses af tabellen at hvis WAIT er 1, vil READY være identisk med MSC, og ellers 1. Med en enkelt produktsum kan sandhedstabellen omskrives til følgende ligning: READY = MSC + WAIT 35

44 KAPITEL 3. DSP-KERNESYSTEM WAIT defineres ud fra de tidligere definitioner: WAIT = ROM + UART Implementering af adressedekoder De logiske udtryk til adressedekodningen implementeres i hardware i en PEEL. Der er behov for 13 input og 9 output, så kredsen PEEL22CV10A vælges, da den kan konfigureres til at have dette antal input og output [Cd, datablade/22cv10a.pdf]. Kildekoden til adressedekoderen kan ses i appendiks F. 3.3 Test og verificering af DSP-kernesystem I appendiks J findes en målerapport, der dokumenterer de målinger, der er foretaget på DSPkernesystemet. I dette appendiks verificeres det, at DSP-kernesystemet fungerer efter hensigten, og således er i stand til at: Afvikle kode i ROM en, skrive og læse i RAM og kommunikere med den tilsluttede terminal via debugger/monitor-interfacet. Skrive og læse til og fra input- og outputregisteret. Kommunikere med pc en via pc-interfacet. 36

45 KAPITEL Cd-interface 4 Indhold 4.1 Krav til cd-interface Design af cd-interface Konvertering fra seriel til parallel Generering af interrupts Opkobling af CS Test og verificering af cd-interface I dette kapitel beskrives interfacet til en cd-afspiller. De fleste cd-afspillere har udover den sædvanlige analoge linie-udgang også en digital udgang, som enten er elektrisk eller optisk. Da signalbehandlingen i den parametriske equalizer er digital, er det en væsentlig fordel at anvende den digitale tilslutning for at undgå unødvendige konverteringer. Cd-interfacet designes til at være kompatibelt med IEC60958, der omfatter de kendte standarder Sony/Phillips Digital Interface (S/PDIF) og Audio Engineering Society 3 (AES3). Mere specifikt er der tale om IEC der beskriver forbrugerstandarden, som er den, der er implementeret i alle almindelige cd-afspillere på konsummarkedet. 4.1 Krav til cd-interface Signalet fra cd-afspilleren er et biphase-mark kodet asynkront signal. Biphase-mark kodningen opererer med to signalniveauer, og der skiftes mellem disse niveauer med en frekvens svarende til symbolraten. Herudover foretages et skifte midt i en symbolperiode, i det tilfælde at det transmitterede symbol er 1. Er det transmitterede symbol 0, foretages intet skifte i midten af en symbolperiode. Dette er illustreret på figur 4.1 på den følgende side. Fordelen ved denne kodning er, at signalet optræder som et AC-signal uanset indholdet. Herudover er polariteten af signalet ikke væsentlig. Signalniveauerne er, i følge IEC , nominelt ±250 mv. IEC beskriver også indholdet af datastrømmen, og denne er pakket i frames, der udover audiodata indholder information om de modtagne data. 37

46 KAPITEL 4. CD-INTERFACE Clock D a t a B i p h a s e - m a r k Figur 4.1: Eksempel på biphase-mark kodning af binær datasekvens. Et signal af denne type kan ikke direkte tilsluttes DSP-kernesystemet. Da DSP ens serielport er optaget af en AD- og DA-converter, som beskrevet i afsnit 5.1 på side 44, skal der udvikles et interface der kan varetage følgende opgaver: Modtagelse af IEC60958-signal og genskabning af samplefrekvens. Adskillelse af audiodata og kontroldata. Konvertering til et parallelt signal, der kan interfaces til DSP ens bus. 4.2 Design af cd-interface Den fuldstændige opkobling af cd-interfacet kan ses i appendiks Q. I det følgende beskrives dette design. Ud fra beskrivelsen af IEC60958-signalet er det klart, at det er en kompleks opgave at modtage og dekode et sådan signal. Af denne grund anvendes kredsen CS8412 fra Crystal Semiconductor [Cd, datablade/cs8412.pdf]. På figur 4.2 ses et blokdiagram for denne kreds. Denne indeholder en RS422-receiver, der niveaukonverterer det indkommende signal. Herefter anvendes et PLLkredsløb til at låse på signalets frekvens, og derudfra genereres en master clock, der er 256 gange samplefrekvensen (MCK). Ved hjælp af denne clock er kredsen i stand til at adskille audiodata og kontroldata i en demultiplexer. Audiodata sendes til et dedikeret synkront serielt interface (SDATA), der er ledsaget af 2 clocksignaler på hhv. f s (FSYNC) og 64 f s (SCK). Kontroldata udlæses separat på dedikerede ben (C, U, VERF, ERF, CBL), og disse kan anvendes eller ignoreres i det omfang, det er nødvendigt. Hertil kommer en række outputsignaler, der vedrører kredsens operationelle tilstand. 2 RXP 9 10 RXN VD+ 7 DGND 8 RS422 Receiver MUX 13 CS12/ FCK VA SEL FILT 20 AGND 21 Clock and Data Recovery MUX MCK 19 De-MUX C0/ Ca/ Cb/ Cc/ Cd/ Ce/ E0 E1 E2 F0 F1 F2 M3 17 ERF M2 18 M1 24 Audio Serial Port Registers 25 CBL M SDATA 12 SCK 11 FSYNC 1 C 14 U 28 VERF Figur 4.2: Blokdiagram af CS8412. [Cd, datablade/cs8412.pdf] 38

47 4.2. DESIGN AF CD-INTERFACE Opgaven er dermed reduceret til at konvertere et synkront serielt signal til et parallelt signal, der kan interfaces til en bus. På CS8412 er der mulighed for at vælge mellem 14 forskellige serielle outputformater. Generelt for alle formater gælder: FSYNC angiver transmission af venstre eller højre kanal. I de mest almindelige formater angiver højt niveau venstre kanal og et lavt niveau højre kanal. SCK er synkroniseret med FSYNC og har sin aktive flanke mellem transitioner af SDATA. I de mest almindelige formater er den opadgående flanke den aktive. Det vil sige, at FSYNC afgør, om der er tale om venstre eller højre kanal, og SCK kan anvendes til at clocke data på SDATA ind i et skifteregister. I det aktuelle design anvendes format 5, som er vist på figur 4.3. FSYNC (out) SCK (out) Left Right SDATA (out) LSB MSB LS B MSB LSB 16B its 16B its Figur 4.3: Serielle data fra CS8412 ved format 5. [Cd, datablade/cs8412.pdf] Konvertering fra seriel til parallel Konverteringen opbygges omkring to 16 bit skifteregistre således, at skiftevis venstre og højre kanal clockes ind. Højre kanal kan således tilgås fra DSP en, mens venstre kanal clockes ind, og omvendt. Kredsen 74HC4094 anvendes [Cd, datablade/74hc4094.pdf], idet den udover et skifteregister også indeholder en transparent latch og tristate buffere, hvilket simplificerer interfacet til bussen væsentligt. Da der er tale om et 8 bit skifteregister anvendes 2 kredse til hver kanal. Princippet for konverteringen af venstre kanal er vist på figur 4.4 på næste side. Højre kanal er identisk, men FSYNC er inverteret. Kredsløbet fungerer på den måde, at data kontinuert clockes ind i skifteregistrene men kun i den periode, hvor FSYNC er høj, overføres de indskiftede data til den transparente latch. Dette betyder, at latchene holder de 16 sidste bit, der er clocket ind i den foregående høje halvperiode af FSYNC. Som det fremgår af figur 4.3, er de sidste 16 bit netop de 16 databit for den pågældende kanal. For at kunne udlæse de data, der er opbevaret i latchene på databussen, anvendes et chip select signal, der er tilkoblet rækken af tristate buffere. Der er således behov for et chip select til hver kanal. Disse benævnes CSCDL og CSCDR for hhv. venstre og højre kanal Generering af interrupts For at kunne synkronisere dataoverførslen til DSP en, bør der genereres et interrupt, hver gang en ny sample er klar til at blive læst fra et af skifteregistrene. Interruptinterfacet til DSP en kræver et 39

48 t d t d KAPITEL 4. CD-INTERFACE S CK CLOCK S D A T A D A T A FF 1 FF 2 FF 3 FF 1 5 FF 1 6 L L L L L F S Y N C S T R OB E CS CD L OE L S B + 1 L S B + 2 M S B - 1 L S B M S B Figur 4.4: Konvertering fra seriel til parallel. Kun venstre kanal vist. aktivt lavt signal, der skal negeres inden interruptservicerutinen er færdig. For at undgå at DSP en skal signalere et interrupt-acknowledge tilbage til interruptgeneratoren, udnyttes at interruptinterfacet i DSP en indeholder en data latch således, at en enkelt puls er tilstrækkelig til at aktivere et interrupt. Ingen af de tilstedeværende signaler er i stand til dette. Derfor skal et kredsløb designes, som kan generere en lav puls, hver gang FSYNC skifter niveau. Til dette formål anvendes en XOR-gate (ulighedsdetektor). Begge ben forbindes til FSYNC, dog med det ene ben gennem et delay, t d. I steady state vil udgangen være negeret, idet signalerne på begge indgange er ens. I det tilfælde at input skifter niveau, vil der på grund af delayet opstå en ulighed mellem de to indgange og udgangen asserteres indtil steady state opnås efter en periode svarende til t d. Dette er illustreret på figur 4.5. Figur 4.5: Interruptgenerator. For hvert niveauskifte på indgangen genereres en puls, hvis længde er bestemt af bufferen på den ene indgang af XOR-gaten. Selve delayet implementeres som en række gates. Da en XOR-gate er en ulighedsdetektor, vil pulserne på udgangen være høje. For at korrigere dette, implementeres delayet som en inverter, hvorved ulighedsdetektoren bliver en lighedsdetektor. Den anvendte XOR-gate af typen 74HC86 [Cd, datablade/74hc86.pdf], består af fire gates. De resterende tre gates kobles som invertere ved at forbinde det ene ben permanent til logisk høj. Disse tre invertere forbindes i serie til den ene indgang af ulighedsdetektoren, hvorved det samlede delay for de tre XOR gates bestemmer pulslængden på udgangen Opkobling af CS8412 CS8412 er koblet op som specificeret i databladet. Et inputkredsløb er forbundet til RXN og RXP. Dette varetager termineringen af transmissionsledningen med 75 Ω og filtrerer eventuelt DC fra signalet. 40

49 4.3. TEST OG VERIFICERING AF CD-INTERFACE Kontrolbenene M0-M4 skal forbindes således, at serielt outputformat 5 vælges. Det gøres ved at sætte M0=1, M1=0, M2=1 og M3=0. Disse ben fungerer også som reset idet alle forbindes til logisk høj for at resette kredsen. RESET signalet fra kernesystemet er aktivt lavt, og derfor inverteres dette og tilsluttes M3 og M1. M2 og M0 forbindes permanent til logisk høj. Dermed vil kredsen resette sammen med resten af systemet og under normal drift indstille sig til serielt outputformat 5. CS12 og SEL forbindes til logisk høj, hvorved informationer om kredsens operationelle tilstand udlæses på multifunktionsben. Af disse føres følgende tre signaler ud til lysdioder: Cc - angiver om audiosignalet er forbetonet (preemphasis). Forbetoning er et forsøg på at hæve signal/støj-forholdet under indspilning ved at forstærke frekvenser af audiosignalet, der falder sammen med naturlige støjkilder, hvorved støjen maskeres. Det anvendes sjældent, og det er valgt ikke at tage særligt hensyn til denne slags audiodata. Dioden er derfor ment som en advarsel, idet gengivelsen ikke er korrigeret for kildematerialets forbetoning. Ca - angiver om der er tale om et datasignal - f.eks. hvis en cd-rom forsøges afspillet. ERF - angiver om der er opstået en fejl. Lyser bl.a. hvis der ikke kan låses på det indkommende signal. Under normal drift skal ingen af de tre lysdioder lyse. Der anvendes inverter gates som buffere for ikke at belaste CS8412. Endelig er der et ben, som benævnes FILT, der skal tilsluttes et eksternt RC-netværk, for at den interne PLL i CS8412 kan fungere. Komponentværdier er angivet i databladet. Herudover er masterclocken, MCK, ført ud på bussen således, at den kan anvendes som reference i andre kredsløb. 4.3 Test og verificering af cd-interface I appendiks K findes en målerapport for testen af cd-interfacet. Denne dokumenterer, at cdinterfacet fungerer efter hensigten og dermed er i stand til at: Låse på det indkommende IEC signal, hvorved den pågældende lysdiode slukker. Konvertere de serielle data korrekt til et parallelt signal, som kan udlæses på bussen ved assertering af det tilhørende chip select signal. Generere interruptpulser med en frekvens svarende til to gange sampleraten. Interruptpulslængden blev målt til 21 ns. Herudover blev masterclocken, MCK, målt med et oscilloskop forskellige fysiske steder på bussen med henblik på at kunne vurdere signalets integritet efter transmission. Resultatet af denne måling viste, at mængden af overshoot og undershoot på grund af reflektion (uden terminering) er så betydende, at tilslutningen af masterclocken til codec et bør udføres med en direkte ledning. Derfor erstattes busforbindelsen med en direkte skærmet ledning. Herudover er det gennem målingerne vist, at interruptpulslængden på 21 ns er tilstrækkelig til at trigge DSP ens interruptinterface. 41

50

51 KAPITEL Analog I/O 5 Indhold 5.1 Codec CS4218 codec Grænseflader til codec Kommunikation med DSP Design retningslinier Test og verificering af codec Mikrofoninterface Design af line-driver Design af line-receiver Test og verificering af mikrofoninterface Lydtryksmåler A-vægtningsfilter Rms-måler Test og verificering af lydtryksmåler Forstærkerinterface Design af forstærkerinterface Test og verificering af forstærkerinterface Test og verificering af analog I/O Systemets primære funktion er at fungere som equalizer for et audiosignal, hvorved frekvensindholdet af dette kan ændres, hvilket ændrer lydens karakter og dermed lytteoplevelsen. Dette er imidlertid en vanskelig størrelse at måle, kvantisere og vurdere, hvis dette udelukkende skal foregå gennem lytteforsøg. Det er derfor ønskeligt at udvikle et måleinstrument, der kvantitativt kan blotlægge de ændringer systemet tilfører audiosignalet, dvs. det equalizerede audiosystems frekvenskarakteristik. Da der i systemet kun er mulighed for at analysere frekvensindholdet i det digitale input og output fra equalizeren, er der behov for en signalvej, der i højere grad kan tilnærme den påvirkning lytteren oplever. Ved at tilføje en mikrofon til systemet og foretage en analyse af sammenhængen 43

52 KAPITEL 5. ANALOG I/O mellem et afspillet signal og det målte signal, kan det equalizerede audiosystems frekvenskarakteristik findes. Dermed er det muligt kvantitativt, at vurdere den indvirkning equalizeringen har, på lytteoplevelsen. G a inju s t e ring Mikrofonint e rfa c e Mikrofon K a b e l Differentiel L ine- d riv er Differentiel L ine- rec eiv er DS P S e rie l K om m u nika t ion A - v æ g tning s - filter C o d ec F o rs tæ rk erinterfa c e R M S - m å ler L y d t ry ks m å l e r Figur 5.1: Blokdiagram af analog input og output. I dette kapitel beskrives det analoge input og output, hvis blokdiagram er vist i figur 5.1. Dette indeholder et mikrofoninterface, der danner grænseflade til en transducer og tillader transmission af det analoge audiosignal således, at målingen af det equalizerede audiosystems frekvensrespons kan foretages ved den foretrukne lytteposition. Herudover eksisterer der en lydtryksmåler, der består af et a-vægtningsfilter og en rms-måler. De analoge signaler fra disse blokke digitaliseres i et codec. Som det fremgår, er både det ubehandlede signal, det a-vægtede signal samt rms-værdien af dette ført ind på codec ets analoge indgange. Det analoge output består af forstærkerinterfacet, der indeholder den nødvendige elektronik til at interface codec ets output til en standard audioforstærker med 10 kω indgangsimpedans. 5.1 Codec I det følgende beskrives opkoblingen af codec et, som består af en AD-converter samt en DAconverter. Musikken der ønskes equalizeret kommer direkte fra en cd-afspiller i digital form, derfor er kun en DA-converter nødvendig for at generere det analoge output. Til gengæld skal der være mulighed for at tage forskellige analoge signaler ind til måling af rummets frekvenskarakteristik og lydtryksmåling. Derfor skal en AD-converter implementeres. Der stilles det krav, at codec et skal kunne sample og afspille med en samplerate på Hz i 16 bit stereo. 44

53 5.1. CODEC CS4218 codec Der vælges at anvende et codec af typen CS4218 [Cd, datablade/cs4218.pdf]. Dette codec er et 16 bit stereo audio codec, der kan sample med Hz og har fire analoge indgange, to analoge udgange, samt seriel overførsel af digitale data til DSP en. Codec et er en delta sigma converter med 64 gange oversampling samt interne digitale antialiasog udglatningsfiltere. Dette medfører, at det er tilstrækkeligt at have et 1. ordens lavpasfilter i serie med det analoge input, med knækfrekvens under 200 khz for at opnå en tilstrækkelig dæmpning ved den halve samplefrekvens. Desuden er en clock på 256 gange samplefrekvensen krævet. Codec et kan opsættes til at virke i flere forskellige modes, som definerer kommunikationen mellem codec og DSP en. Codec et kan opsættes til at overføre digitale data i flere forskellige serielle formater bl.a. I 2 S samt flere ikke navngivne formater. Valg af seriel mode Der vælges at operere i seriel mode 4 (SM4), da formatet af de serielle data i mode 4, i modsætning til de andre formater, udelukkende indeholder audiodata. Kontroldata overføres på en separat seriel port. Dette beskrives nærmere i afsnit De andre modes overfører først data for den ene kanal efterfulgt af op til 16 kontrolbit, dernæst data for den anden kanal efterfulgt af kontrolbit. For yderligere information omkring de andre serielle modes henvises til databladet. Desuden er seriel mode 4 mest kompatibel med DSP ens serielle port, hvorved interfacet mellem codec og DSP simplificeres. Codec et kan desuden sættes i master eller slave mode. Dette er afgørende for om codec et skal styre synkroniseringen af den serielle dataoverførsel. I master mode kan der opnås lidt bedre støjegenskaber, da signalerne SACLK og SASYNC til seriel overførsel af audiodata generes i codec et på baggrund af MCK, og derfor vælges master mode Grænseflader til codec Codec et anvendes som bindeled mellem analoge input-enheder (mikrofoninterface og lydtryksmåler), output-enheder (forstærkerinterface) og DSP en. På figur 5.2 ses et blokdiagram over codec et og dets grænseflader. Den aktuelle opkobling ses på diagrammet i appendiks Q. Styre- og opsætningssignaler For at codec et kan virke skal visse styre- og opsætningssignaler forbindes. Disse styre- og opsætningssignaler ses i tabellen: 45

54 KAPITEL 5. ANALOG I/O Cd-interface Cl ock M CK M ik. interface L I N 1, R I N 1, L I N 2, R I N 2 SADI SADO, SAC L K, SASY N C S er i el a u di oi n t er f a ce L y dtry k s - m å l er R E F B U F Codec CS SC DO, SC C L K, D S P M F 1 - SSC O DE C K on t r ol -, F o rs t. interface L O U T, R O U T M F 8 SC DI, IN T C O DE C F 1 - F 3 op s æ t n i n g s s i g n a l er S M O D E 1 - S M O D E 3 R E S E T M ode s el ect i on R es et Figur 5.2: Blokdiagram over codec et og grænseflader. Styre- og opsætningssignaler RESET CLKIN SMODE1-3 Ben til at resette codec et. Dette er et input-ben for masterclocken (MCK) til codec et. Disse tre ben anvendes til at sætte codec et i det ønskede serielle mode. Opsætning til seriel mode 4 Til at sætte codec et i et seriel mode 4 anvendes de tre SMODEben. Disse ben sættes som følger: SMODE3 SMODE2 SMODE Reset Codec et kræver et resetsignal, når det startes op. Ifølge databladet er det tilstrækkeligt med et RC-led med en τ på mindst 50 ms. Komponentstørrrelserne beregnes til: 50ms < τ = RC R > 50ms = 500kΩ R 680kΩ (5.1) 100nF Clock Masterclocken (MCK) til codec et indføres på CLKIN-benet. Dette clocksignal genereres i cd-interfacet, som beskrives i kapitel 4, og er 256 gange samplefrekvensen, som krævet. Hermed undgås at implementere flere oscillatorer i systemet, som vil generere mere støj. 46

55 5.1. CODEC Analoge audiosignaler Codec et er bindeled mellem de digitale og analoge audiosignaler, derfor skal codec et forsynes med de analoge signaler, der er angivet i tabel 5.1. Analog input/output RIN1-2, LIN1-2 ROUT, LOUT Analog reference REFBUF to stereo audio inputkanaler dvs. i alt fire input. Stereo audio outputkanal. Referencespænding der kan bruges til at sætte DCoffset på eksterne kredse. Tabel 5.1: Ben på Codec et til analoge signaler. Analoge input- og outputsignaler De analoge inputsignaler kobles til codec et. Det direkte lydsignal fra mikrofoninterfacet forbindes til det ene af de fire analoge indgange på codec et (RIN1), og på (LIN1) er a-vægtningsfilterets output forbundet. Signalet fra lydtryksmåleren kobles på kanal 2 (LIN2 og RIN2). Der er mulighed for at vælge mellem de enkelte indgange ved at stille de pågældende kontrolbit Kommunikation med DSP Codec et skal kunne overføre og modtage data til og fra DSP en. I seriel mode 4 er audiodata separeret fra kontroldata. Dette medfører, at de digitale audiodata overføres via den serielle databus, og kontroldata overføres serielt via en separat kontrolport. Benene til de digitale signaler til og fra DSP en kan ses på tabel 5.2. Serielle Audiodata SDIN, SDOUT SCLK SSYNC Kontrol- og opsætningssignaler MF1-8 Ben til seriel transmission af digitale audiodata til og fra codec et. Ben som anvendes til at clocke serielle data ind og ud af codec et. Dette ben kan både konfigureres som input og output. Dette ben anvendes til et signal, som initialiserer og dermed synkroniserer en seriel overførsel af audiodata. Multifunktionsben. Funktionen af disse afhænger af det valgte mode. Tabel 5.2: Ben på codec et til seriel data interface med DSP en. 47

56 KAPITEL 5. ANALOG I/O 1 Serielle audiodata Audiodata overføres som 1 word med data for venstre kanal efterfulgt af 1 word med data for højre kanal. Dataoverførslen indledes med et synkroniseringssignal (SASYNC) og hver bit clockes ind med clocken til seriel overførsel (SACLK), se figur 5.3. S AC L K Fr a m e S AS Y N C An t a l b i t S D O U T S D I N MS B MS B AD C v e n s t r e D AC v e n s t r e L S B L S B MS B MS B AD C h ø jr e D AC h ø jr e L S B L S B Figur 5.3: Seriel overførsel af audiodata. Overførslen af de digitale audiodata styres af codec et. Til dette anvendes følgende ben: SDOUT, SDIN Disse to ben bruges til at overføre de serielle audiodata mellem codec et og DSP en og forbindes til DSP ens serielle interface. SCLK, SSYNC Disse to ben anvendes til at synkronisere overførslen af de serielle audiodata. Multifunktionsbenene på codec et Codec et er forsynet med 8 multifunktionsben (MF1-8). Disse bens anvendelse afhænger af det valgte mode. I SM4 anvendes de hovedsageligt til kontroldata samt opsætning af codec et. Herunder beskrives de enkelte MF-bens funktion samt bennavn i det valgte mode. MF1: CDOUT Anvendes til seriel udlæsning af kontroldata. Dette ben kobles på inputregisteret i DSP-kernesystemet. MF2: CDIN Anvendes til seriel indlæsning af kontroldata. Dette ben kobles på outputregisteret i DSP-kernesystemet. MF3: CCLK Dette ben anvendes til ind og udclockning af de serielle kontrolbit. Dette clocksignal kobles til XF på DSP en. MF4: CCS Dette ben anvendes til et chip select, der skal generes for at læse og skrive kontroldata. Dette chip select skal være lav under hele overførslen. CCS signalet kobles på outputregisteret i DSP-kernesystemet. MF5: INT Indikerer at der er ændringer i kontrolbit. Interruptet genereres, hvis der sker en ændring af ADV, LCL eller RCL. Interruptet resettes igen ved at læse kontroldataene. (INT) anvendes ikke. 48

57 CODEC MF6-8: F1-3 anvendes til at vælge samplefrekvensen. Disse 3 ben tilkobles outputregisteret i DSP-kernesystemet. Ved at sætte alle tre ben lave vælges 44,1 khz. Sættes en anden bitkombination kan en samplefrekvens ned til 7,35 khz opnås. Serielle kontroldata Kontrolsignalerne er delt op i et serielt input til codec et, som kan indlæses på CDIN-benet, og et serielt output fra codec et, som udlæses på CDOUT-benet, se figur 5.4. CCL K CCS A n t a l b i t CD I N M A S K D O 1 4 V e n s t r e H ø j r e V e n s t r e H ø j r e M U T E I S L I S R D / A d æ m p. D / A d æ m p. A / D f o r s t A / D f o r s t. CD O U T A D V L C L R C L D I E r r V e r s i o n E r r L C L R C L D I 1 A D V Figur 5.4: Seriel overførsel af kontroldata. Kontrolinputtet består af 32 bit hvoraf kun nogen har betydning. Inputparametrene ses i tabel 5.3. Outputparametrene ses i tabel 5.4 på næste side. Kontrolbit til input MASK DO1 D/A dæmpning venstre og højre MUTE ISL, ISR A/D forstærkning venstre og højre Dette bit bruges til at maskere interrupt genereret af kontrolbussen. Dette bit kan anvendes til at sætte det generelle digitale outputben (DO1) højt eller lavt. Denne udgang anvendes ikke i dette system. Disse 2 gange 5 bit anvendes til at sætte dæmpningen af outputtet for venstre og højre kanal fra DAC en medfører ingen dæmpning og medfører 46,5 db dæmpning. Sættes dette bit højt, vil outputtet blive mutet. Input select left og input select right. Disse bit bruges til at vælge mellem venstre indgang 1 og 2 (LIN1-2) og højre indgang 1 og 2 (RIN1-2). Sættes disse 2 bit til 0 medfører det, at LIN1, RIN1 vælges. Disse 2 gange 4 bit anvendes til at sætte forstærkningen af inputtet for venstre og højre kanal til ADC en medfører ingen forstærkning og medfører 22,5 db forstærkning. Tabel 5.3: Tabel over input kontrolbit. 49

58 KAPITEL 5. ANALOG I/O Kontrolbit til output ADV LCL, RCL DI1 Err Version Dette bit indikerer, om data fra ADC en er gyldige. 0 betyder at data er ugyldige, og 1 at de er gyldige. Left clipping og right clipping. Disse 2 bit indikerer, om der sker klipning i ADC en. 0 er normal, og 1 betyder klipning. Dette bit indikerer, om det generelle digitale inputben (DI1) er højt eller lavt. Denne indgang anvendes ikke i dette system. Disse 2 error-bit indikerer, om der er sket en fejl under konverteringen. Disse 4 bit angiver, hvilken version af CS4218- chippen der anvendes. Tabel 5.4: Tabel over output kontrolbit Design retningslinier Ved opkoblingen af codec et skal følgende retningslinier overholdes: Forsyningen til codec et deles i en analog forsyning på 5 V og en digital på 5 V. Ground skal tillige inddeles i en analog og en digital. Afkoblingskondensatorer forbindes så tæt på codec et som muligt for at reducere støjen på codec ets forsyningen. Antialiasingfilteret og udglatningsfilteret skal tillige placeres så tæt som muligt på codec et, for at minimere spolevirkning i lederen fra codec et til filteret. Et groundplane direkte under codec et er væsentligt for at opnå et godt signal/støjforhold Test og verificering af codec Selve codec et er testet i samspil med analog I/O, som beskrevet i afsnit 5.5 på side Mikrofoninterface I det følgende beskrives designet af mikrofoninterfacet, der omfatter en line-driver i forbindelse med selve mikrofonen, samt en line-receiver med digitalt styret gain. Der stilles følgende krav og forudsætninger: 1. Mikrofonforstærkeren skal kunne drive et kabel med to signalbærende ledere, med et differentielt signal, således at indstrålet støj kan undertrykkes. 2. Mikrofonforstærkeren skal være dimensioneret og optimeret til at måle et signal med en relativ lydstyrke på 70 db±10 db. 3. Der tages udgangspunkt i mikrofonen Scantek EU-11, der er af electret typen. Følsomheden er angivet og målt til ca. 6 mv/pa (rms). 50

59 5.2. MIKROFONINTERFACE 4. Outputsignalet fra line-receiveren skal være singleended. 5. Frekvensresponsen for elektriske kredsløb skal være lineær mellem 20 Hz og 20 khz, med en tolerance på ±3 db. Mikrofonens frekvensrespons er lineær fra ca. 50 Hz til 20 khz, men kredsløbet ønskes designet så hele det hørbare område behandles, indenfor den givne tolerance. Mikrofonen er aktiv, og skal tilføres en forsyningsspænding. Signaloutputtet fra mikrofonen er singleended, og egner sig ikke til at drive en ledning. Der skal derfor designes et forstærkertrin med en tilstrækkelig lav udgangsimpedans, som kan konvertere indgangssignalet til et balanceret udgangssignal. I modtagerenden skal signalet interfaces til codec et. For at kunne udnytte hele dennes dynamikområde, indføres en variabel digitalt styret gainjustering. Herudover skal signalet konverteres til et singleended signal, med en peak-peak amplitude på 3 V svingende omkring 2,1 V og lavpasfiltreres med en 1. ordens afskæring før 200 khz. Dette er krav der sættes af det anvendte codec som beskrives i afsnit 5.1. Ud fra disse informationer kan den samlede spændingsforstærkning ved det ideelle lydtryk beregnes: A V = V re f V t = 3V 6mV/Pa 10 70dB/20 20µPa 2 2 = 3V = 2795V/V (5.2) 1,073mV Denne store spændingsforstærkning kan ikke realiseres i et enkelt trin, og derfor fordeles forstærkningen mellem line-driveren og line-receiveren. Forstærkes signalet inden det transmitteres opnås en naturlig undertrykkelse af indstrålet støj, idet energien i det indstrålede signal er uafhængig af energien i det transmitterede signal. Omvendt vil en større forstærkning i line-driveren føre til større modstandsværdier, hvilket fører til større termisk støj, der ikke senere kan undertrykkes. På grund af den store forstærkning forventes den termiske støj i line-driveren at have større betydning end den indstrålede støj. Derfor placeres den største del af forstærkningen i receiveren, således at modstandsværdierne i line-driveren kan holdes tilpas lave Design af line-driver Signalet fra mikrofonen er overlejret med et DC-niveau, svarende til udgangstrinnets arbejdspunkt. Det er derfor nødvendigt at AC-koble mikrofonen til line-driveren gennem en kondensator. Kredsløbet, der er vist i figur 5.5 på næste side, viser den valgte kobling. Kredsløbet består af to operationsforstærkere i inverterende kobling. Kredsløbet analyseres ved anvendelse af superpositionsprincippet, idet der til hver operationsforstærker eksisterer to aktive kilder. Offsetspændingen V O etableres ved spændingsdeling og tilføres begge operationsforstærkeres ikke-inverterende indgang. Dette etablerer arbejdspunktet for begge outputlinier, som det vil blive vist i det følgende. 51

60 KAPITEL 5. ANALOG I/O R2 C R1 - A 1 V N V in + R R - V O + A 2 V P Figur 5.5: Diagram over line-driver. Koblingen fra V O til V N identificeres som den ikke-inverterende kobling, hvorved forstærkningen er givet ved: V N = 1 + R2 = 1, s = j0 (5.3) V 1 O sc + R1 Koblingen fra V in til V N identificeres som den inverterende kobling, hvorved forstærkningen er givet ved: V N V in = 1 sc R2 = R2 + R1 R1 s s + 1 CR1 (5.4) Ved superposition er V N dermed givet ved: V N = V O R2 R1 s s + 1 V in (5.5) CR1 Udledningen for den anden operationsforstærker er identisk og giver: V P V O = 1 + R/R = 2 (5.6) V P V N = R/R = 1 (5.7) Ved superposition er V P dermed givet ved: V P = V O + R2 R1 s s + 1 V in (5.8) CR1 Det ses ved ligning 5.5 og 5.8 at signalet ved hhv. V P og V N er i modfase, men svingende omkring det samme DC-niveau, der er givet ved V O. Kredsløbet egner sig derfor til batteridrift med et enkelt batteri, hvor V O ved hjælp af spændingsdeling sættes til halvdelen af forsyningen. Det ses endvidere, at den nedre grænsefrekvens for line-driveren er givet ved tidskonstanten CR1: 52

61 5.2. MIKROFONINTERFACE f L = 1 [Hz] (5.9) 2πCR1 Dimensionering R2 og R1 skal dimensioneres under hensyntagen til termisk støj, den totale forstærkning samt belastningen af mikrofonen. Der træffes det valg, at lade line-driveren forstærke signalet 20 gange. R1 har størst betydning for den termiske støj og vælges til 5 kω, som antages at være den hårdeste belastning mikrofonen kan drive uden, at signalet bliver dæmpet eller forvrænget nævneværdigt. R2 bliver dermed 100 kω. R belaster operationsforstærkeren A1 og tilfører termisk støj til den ene leder af kablet. Den vælges til 50 kω. C beregnes ud fra ligning 5.9 under antagelsen, at udgangsimpedansen af transduceren er væsentligt mindre end R1, og et ønske om en nedre grænsefrekvens på maksimalt 5 Hz: C = 1 1 = = 6,4µF (5.10) 2πR1 f L 2π 5kΩ 5Hz C vælges til 10 µf. Herudover er der placeret en 10 pf kondensator over begge tilbagekoblingsmodstande, idet der blev observeret mindre overlejrede oscillationer under målinger. Spændingsdelingen, der etablerer V O, består af to 10 kω modstande og en 100 nf kondensator som afkobling. Operationsforstærkerne er af typen TLE2072 [Cd, datablade/tle2074.pdf], der er en standard low-noise operationsforstærker. Som forsyning anvendes et 9 V batteri, hvorved signalerne på linierne vil svinge omkring 4,5 V. Det fuldstændige diagram for line-driveren er vist i appendiks Q Design af line-receiver Line-receiveren skal udføre to opgaver. Dels foretage en justering af signalniveauet, således at codec ets dynamikområde udnyttes fuldt ud, dels konvertere signalet til et singleended signal. Til den første opgave anvendes den integrerede kreds CS3310, der er en digitalt styret stereo volumenkontrol til audio [Cd, datablade/cs3310.pdf]. Den er velegnet, fordi den har et simpelt serielt interface der kan interfaces til DSP en, hvorved gain kan indstilles mellem -95,5 db og +31,5 db i trin af 0,5 db. Herudover indeholder den to kanaler således at signalet kan føres igennem kredsen differentielt, hvorved fejl, der tilføres begge kanaler, undertrykkes ved konverteringen til singleended. Til den anden opgave anvendes en operationsforstærker i en differenskobling. Opkobling af CS3310 CS3310 har et enkelt serielt interface der består af 3 signaler: CS - Chip Select. 53

62 KAPITEL 5. ANALOG I/O SCLK - Serial Clock. SDATAI - Serial Data Input. Disse signaler forbindes til DSP-kernesystemets outputregister, således at DSP en frit kan styre disse signaler. Dermed er det muligt fra DSP-firmwaren at sætte et vilkårligt understøttet gain i kredsen. CS3310 forsynes med ±5V. Det er derfor nødvendigt at fjerne DC-niveauet fra de to input, da dette nominelt er 4,5 V. Dette varetages med 10 uf kondensatorer, idet indgangsimpedansen for CS3310 er 10 kω, hvorved den totale båndbredde er sikret jf. ligning Output fra CS3310 er to analoge signaler der er identiske, men forstærkede eller dæmpede, udgaver af inputsignalerne. Disse sendes videre til differenstrinnet. Opkobling af differenstrin På figur 5.6 ses det anvendte differenstrin. Forstærkningen er givet ved de to modstande i tilbagekoblingen og er 249kΩ/3,57kΩ = 70 V/V. Dermed er der opnået en total forstærkning på = 2800 V/V. Faktoren 2 opnås implicit ved konverteringen til et differentielt signal. Figur 5.6: Diagram over line-receiver og interface til codec. De to modstande på 3,57kΩ skal være tæt matchede, idet de er bestemmende for koblingens Common Mode Rejection Ratio (CMRR). Dette er optimeret ved at anvende 1% modstande. Derudover er udgangsimpedansen af CS3310 ens for de 2 kanaler, hvilket muliggør en bedre matchning mellem de to modstande, i forhold til hvis differenstrinnet kobles direkte på linien. Interface til codec For at interface det analoge signal til codec ets analoge input anvendes det i figur 5.6 viste kredsløb. RC-ledet foretager en båndbegrænsning ved 167 khz som krævet af codec et, og kondensatoren på 10 µf lader codec ets interne pullup bestemme DC-niveauet, der nominelt er 2,1 V. Dioden beskytter indgangen mod negative spændinger, da operationsforstærkeren er i stand til at drive udgangen til 5 V. Signalet til lydtryksmåleren udtages direkte på operationsforstærkeren. Det fuldstændige diagram for line-receiveren er vist i appendiks Q. 54

63 5.3. LYDTRYKSMÅLER Lydtryksområde Ud fra det designede kredsløb kan et maksimalt og minimalt lydtryk, ved hvilket det er muligt for kredsløbet at behandle et audiosignal, beregnes. Grænsen for det minimale lydtryk sættes af den totale forstærkning i kredsløbet, som er ,5/20 = V/V. Med denne forstærkning kan et signal på 28,5 µv forstærkes op til referencespændingen på 3 V. Dette signalniveau svarer til et lydtryk på: 28,5µV P L = 2 = 1,68mPa = 38dB (SPL) (5.11) 2 6mV/Pa Grænsen for det øvre lydtryk sættes af line-driverens udsvingsområde der er ca. 7 V, idet TLE2072 kun kan nå indtil 1 V fra forsyningerne [Cd, datablade/tle2074.pdf]. Dette omsættes til et transducersignal på 7V /20 = 350 mv. I line-receiveren er det muligt at modtage signaler på op til 10 V og mikrofonen klipper ved 400 mv, så grænsen sættes af line-driveren. Dette svarer til et lydtryk på: 350mV P H = 2 = 20,6Pa = 120dB (SPL) (5.12) 2 6mV/Pa Test og verificering af mikrofoninterface Der er foretaget en måling, som viser at mikrofoninterfacet fungerer, og at kravet til båndbredde er overholdt, idet dæmpningen ved 20 Hz er -0,2 db og -0,17 db ved 20 khz. Målingerne kan ses i appendiks L. 5.3 Lydtryksmåler Lydtryksmåleren består af et a-vægtningsfilter og en rms-måler, som vist på figur 5.7. Interface til lydtryksmåleren er line receiveren som input og codec som output. Der stilles følgende krav til lydtryksmåleren: Input: 1,5 V (peak), Hz (±3 db). Output: 1,5 V (peak) med DC-offset på 2,1 V A-vægtningsfilter Til lydtryksmåleren skal der designes et a-vægtningsfilter. Dette er ønskeligt da, det menneskelige øre ikke opfanger forskellige frekvenser lige kraftigt. Øret er mest følsomt i intervallet fra ca. 500 Hz til ca. 10 khz og mindre følsomt ved frekvenser højere og lavere end dette. A- vægtningsfilteret gør, at det målte lydtryk kan sammenlignes med, hvordan mennesker opfatter lyden. På figur 5.8 ses den ønskede frekvenskarakteristik for a-vægtningsfilteret, som er defineret i IEC standarden. 55

64 KAPITEL 5. ANALOG I/O )! *+ "!( +,',- $# %!&' (! " $# Figur 5.7: Blokdiagram over lydtryksmåleren Filterforstærkning [db] Frekvens [Hz] Figur 5.8: Frekvenskarakteristik for a-vægtningsfiltret. Krav til design I IEC61672-l bliver a-vægtningsfilteret defineret ud fra en tabel, der viser forstærkningen afhængigt af frekvensen. Værdierne i denne tabel kan ifølge standarden realiseres vha. følgende polnulpunkts placeringer. En reel lavfrekvent dobbeltpol ved 20,6 Hz, og yderlig en reel højfrekvent dobbeltpol ved 12,194 khz samt en simple pol ved 107,7 Hz og en anden simpel pol ved 737,9 Hz. Der udover skal filteret have et firedobbelt nulpunkt i 0 Hz. Dette bevirker at de lave frekvenser under 20,6 Hz bliver dæmpet med 24 db pr oktav og de høje over 12,194 khz med 12 db pr. oktav. Disse poler og nulpunkter skal implementeres i a-vægtningsfilteret. Desuden stilles der, af de kredsløb a-vægtningsfilteret skal interfaces til, følgende krav: Filteret skal kobles på udgangssignalet fra line receiveren på 1,5 V (peak). Udgangssignalet fra filteret skal kobles til rms-måleren som har en indgangsimpedans på 100 kω samt codec et som har en indgangsimpedans på 20 kω. 56

65 5.3. LYDTRYKSMÅLER Design af a-vægtningsfilter Disse poler og nulpunkter kan realiseres som et 2. ordens højpasfilter, et 2. ordens lavpasfilter samt to 1. ordens højpasfiltre. Et 2. ordens højpasfilter med reel dobbelt pol ved 20,6 Hz og dobbelt nulpunkt i 0 Hz. Et 2. ordens Lavpasfilter med reel dobbelt pol ved Hz. To 1. ordens højpasfiltre med pol i hhv. 107,7 Hz og 737,9 Hz hver med nulpunkt i 0 Hz. De to 2. ordens sektioner kan realiseres via et Sallen & Key netværk [Huelsman, 1993, s.252]. En kort gennemgang af Sallen & Key netværk er beskrevet i appendiks D. De to 1. ordens sektioner designes som passive RC-led adskilt af en buffer. Lavpassektionen Overføringsfunktionen for et standard 2. ordens lavpasfilter er: H 0 ω 2 n H LP (s) = s 2 + ω n Q s + ω2 n (5.13) Hvor H 0 er forstærkningen ved DC, Q er godheden og ω n er knækfrekvensen. Med udgangspunkt i figur D.1 i appendiks D kan et lavpasfilter designes, ved at udskifte impedanserne Z 1 og Z 3 med modstande og Z 2 og Z 4 med kondensatorer. Koblingen for et lavpasfilter med en DC-forstærkning på 1 er vist på figur 5.9. C 2 V i R R 1 3 C 4 + Vo Figur 5.9: Et generelt Sallen & Key lavpasfilter. Overføringsfunktionen for dette filter kan beregnes til at være [Huelsman, 1993, s. 250]: H LP (s) = K 1 R 1 R 3 C 2 C 4 s 2 + s( 1 R 3 C R 1 C R 3 C 2 K R 3 C 4 ) + 1 R 1 R 3 C 2 C 4 (5.14) Til at bestemme komponentværdierne anvendes en designmetode 1, hvor R 1 og R 3 sættes lig R og C 2, C 4 sættes lig C, og Q afhænger af forstærkningen K. Dette bevirker at sammenhængen mellem K, Q, H 0, ω n samt R og C kan skrives som følger [Huelsman, 1993]: ω n = 1 RC, 1 Q = 3 K, H 0 = K (5.15) 1 Designmetode 1, beskrevet og udledt på side 252 i [Huelsman, 1993] 57

66 KAPITEL 5. ANALOG I/O Lavpasfilteret skal ifølge kravene have en reel dobbelpol ved frekvensen Hz. Dette vil sige, at ω n er: ω n = 2π f = 12194Hz 2π 76617rad/s (5.16) Polerne ønskes placeret på realaksen i samme punkt, jf. standarden. Dette kan kun opnås når K=1, jf. figur D.2 i appendiks D. Dette bevirker, med den valgte designmetode, at Q bliver: 1 Q = 3 K Q = 1 3 K = 1 2 (5.17) Denne Q-værdi medfører, at frekvenskarakteristikken for filteret vil være dæmpet 6 db ved knækfrekvensen, hvilket igen medfører, at karakteristikken er dæmpet mere end den maksimalt flade karakteristik. Kondensatorerne vælges til 4,7 nf, og modstandenes endelige størrelse beregnes herefter. ω n = 1 RC 1 R = ω n C = 1 = 2,78kΩ 2,67kΩ (5.18) 76617rad/s 4,7nF Lavpassektionen designes med følgende værdier: Modstandene: R = R 1 = R 3 = 2,67kΩ Kondensatorerne: C = C 2 = C 4 = 4,7nF Forstærkningen: K = 1 Højpassektionen Overføringsfunktionen for et 2. ordens standard højpasfilter er: H 0 s 2 H HP (s) = s 2 + ω n Q s + ω2 n (5.19) hvor H 0 er forstærkningen ved høje frekvenser, Q er godheden og ω n er knækfrekvensen. Med udgangspunkt i et lavpasfilter kan et højpasfilter konstrueres ved at udskifte modstandene med kondensatorer og omvendt. Koblingen for et højpasfilter ses på figur R 2 C 1 C 3 + V i R 4 Vo Figur 5.10: Et generelt Sallen & Key højpasfilter. Overføringsfunktionen for dette filter kan beregnes til at være [Huelsman, 1993, s. 263]: 58 H HP (s) = V o V i = Ks 2 s 2 + s( 1 R 2 C R 4 C R 4 C 1 K (5.20) 1 R 2 C 1 ) + R 2 R 4 C 1 C 3

67 5.3. LYDTRYKSMÅLER Til at bestemme komponentværdierne anvendes, ligesom ved designet af lavpasfilteret, en designmetode, hvor R 1 og R 3 sættes lig R, og C 2 og C 4 sættes lig C. Sammenlignes ligning 5.20 med ligning 5.14 ses, at de har samme nævner. Dette bevirker, at de samme ligninger, som blev anvendt til bestemmelse af ω n, H 0 samt R og C i lavpasfilteret, kan benyttes igen, se ligning Ifølge kravene skal højpasfilteret have en reel dobbelpol ved frekvensen 20,60 Hz. Dette vil sige jf. ligning 5.16 at ω n er: ω n = 20,60Hz 2π 129,43rad/s (5.21) K sættes igen lig 1 for at opnå samme Q-værdi som i lavpasfilteret. ω n kendes og C og R kan hermed beregnes. Kondensatorerne vælges til 470 nf, og modstandenes endelige størrelse beregnes herefter. ω n = 1 RC 1 R = ω n C = 1 = 16,4kΩ 16,5kΩ (5.22) 129,43rad/s 470nF Højpassektionen designes med følgende værdier: Modstandene: R = R 2 = R 4 = 16,5kΩ Kondensatorerne: C = C 1 = C 3 = 470nF forstærkningen: K = 1 1. ordens højpassektioner Ifølge kravene til a-vægtningsfilteret skal der være en simpel pol ved 107,7 Hz og 737,9 Hz. Disse to filtere realiseres som simple højpas RC-led adskilt med en buffer således, at de ikke påvirker hinanden. Overføringsfunktionen kan ved hjælp af en spændingsdeling udregnes til: H(s) = R R + 1 sc = s s + 1 RC (5.23) Det vil sige, at knækfrekvensen ω c = 1 RC. Når frekvenserne er ω c = 107,7Hz 2π 676,70 rad/s og ω c = 737,9Hz 2π 4636,4 rad/s og størrelsen af kondensatorerne vælges til 100 nf kan modstandene beregnes. Dette giver for det ene filter: og for det andet filter: R = 1 ω c C = 1 = 14,8kΩ 14,7kΩ (5.24) 676,70rad/s 100nF R = 1 ω c C = 1 = 2,15kΩ 2,16kΩ (5.25) 4636,4rad/s 100nF Det sidste filter er udgangstrinnet på a-vægtningsfilteret, derfor skal ledet tilpasses belastningen fra henholdsvis rms-måleren og AD-converteren. Opkoblingen af de to 1. ordensfiltere samt belastningen ses på figur

68 KAPITEL 5. ANALOG I/O Belastning C 1 + C 2 C A/D V i R 1 R 2 V o R RMS R A/D Figur 5.11: Koblingen af de to 1. ordens højpasled. Kondensatoren C A/D er i codec-afsnittet valgt til 10 µf og kan på grund af denne størrelse betragtes som en kortslutning for frekvenserne i signalet ( Hz). Det vil sige, at R 2 skal tilpasses med R RMS på 100 kω parallel med R A/D på 20 kω. Dette giver følgende ligning: ( ) 1 R RMS R A/D R 2 ( 1 100k k + 1 ) 1 R 2 100kR 2 6R k 216M R 2 = 100k 12,96k = 2,16 k = 2,16k = 2,16k = 2,48kΩ 2,49kΩ (5.26) Det vil sige, at R 2 skal erstattes med en modstand på 2,49 kω. Højpassektionen designes med følgende værdier: Modstandene: R 1 = 14,7kΩ og R 2 = 2,49kΩ Kondensatorerne: C 1 = C 2 = 100nF Da Sallen & Key filterne er bygget op omkring én operationsforstærker, hvor udgangen af denne bestemmer udgangsimpedansen, kan filterene kaskadekobles. Efter de to 2. ordenssektioner kan de to 1. ordenssektioner kobles i serie med Sallen & Key netværket. Inputsignalet til a-vægtningsfilteret svinger omkring 0 V, derfor kræves en operationsforstærker med symmetrisk forsyning. Da der skal anvendes flere operationsforstærkere anvendes en kreds af typen TLE2074, som indeholder fire operationsforstærkere [Cd, datablade/tle2074.pdf]. Test og verificering af a-vægtningsfilter I appendiks N findes en målerapport af testen af a- vægtningsfilteret. Denne dokumenterer, at a-vægtningsfilteret fungerer efter hensigten og besidder den specificerede frekvenskarakteristik for et a-vægtningsfilter som specificeret i IEC standarden. Figur 5.12 viser karakteristikken for det testede a-vægtningsfilter. Den målte karakteristik afviger marginalt fra den teoretiske karakteristik, hvilket er acceptabelt. 60

69 5.3. LYDTRYKSMÅLER Figur 5.12: Resultat af måling af a-vægtningsfilter (massiv linie) sammenholdt med den teoretiske frekvenskarakteristik (stiplet linie) Rms-måler Rms-måleren er den del af lydtryksmåleren, som konverterer det a-vægtede audiosignal til en DCspænding, som er proportional med lydtrykket. Den får input fra a-vægtningsfilteret, og output går til en AD-converter og videre ind i DSP-systemet. Krav til rms-måler Rms-måleren har interface til a-vægtningsfiltret, der maksimalt kan svinge ±4 V. Den maksimale udgangsspænding skal være 1,5 V, og rms-måleren skal designes til at give 1,5 V ud ved et indgangssignal midt i arbejdsområdet, dvs. ca. ±5 V. Derudover skal rms-måleren kunne behandle signaler i frekvensområdet 20 Hz til 20 khz. Rms-måleren har også interface til en AD-converter, som kræver et signal liggende omkring en referencespænding, som kaldes REFBUF. Derfor skal der også designes en niveaukonverter. Analyse af rms-måler Til beregning af rms-værdi for et signal integreres over tid af kvadratet af signalet. Dette udtrykkes som i ligning Z 1 T rms{ f (t)} = f T 2 (t)dt (5.27) 0 61

70 L M T KAPITEL 5. ANALOG I/O Til denne beregning kan designes et analogt kredsløb til direkte beregning. Dvs. der skal kvadreres, integreres, og til sidst beregnes kvadratroden af integralet. Dette kredsløb har dog begrænset dynamikområde og er mere kompliceret end et kredsløb med tilbagekobling, bl.a. pga. at det kræver minimum to multipliere plus en integrator. Derfor vælges et design med tilbagekobling som vist på figur [Nonlinear, 1976] NAO P.0/ :9 /2;=< >@? /A< B.C D8; EB? /4.2FA3G4H83 QSR 9 / ;JIKHB Figur 5.13: Blokdiagram over opbygningen af rms-måleren. Som det ses, er der logaritmiske blokke i kredsløbet, og disse bruges til at beregne kvadratroden af integralet samt at kvadrere inputsignalet, V in. I det første logaritmiske kredsløb kvadreres det ensrettede V in, da 2ln( V in ) = ln( V in 2 ) (5.28) V in kan antage negative værdier, derfor ensrettes det. I det efterfølgende sum-punkt trækkes logaritmen af outputsignalet, E o, fra ln( V in 2 ), og derefter tages anti-logaritmen af summen. Dette begrundes med følgende betragtninger: E o = V rms = V 2 in V in 2 E o = exp hvor Vin 2 er lig med 1 R T T 0 V in 2 dt. [ ln E o = V 2 in = Vin 2 (5.29) V rms E ( o Vin 2 )] = exp [ ln( V in 2 ) ln(e o ) ] (5.30) E o Den sidste blok på figur 5.13 er en integrator, og integrationstiden for en rms-måler er, ifølge standarden IEC , typisk 1/8 sek. (fast) eller 1 sek. Her vælges integrationstiden til at være 1/8 sek. Design af rms-måler Ensretter Ensretteren laves aktiv således, at der ikke mistes signal ved cross-over på dioderne. Kredsløbet kan ses på figur [Nonlinear, 1976] Alle modstandene på figuren sættes lig med 100kΩ. Dermed er der én gangs forstærkning i ensretteren, og indgangsimpedansen er 100 kω. Logaritmisk kredsløb En bipolar transistor har en resistans over Collector-Emitter, r o, som er eksponentielt voksende i forhold til V BE. Derfor kan der konstrueres et kredsløb med en logaritmisk 62

71 5.3. LYDTRYKSMÅLER Re 2 Re 4 Vi Re 1 _ D 1 _ Re Vo D 2 Re 3 Figur 5.14: Ensretter. overføringsfunktion ved at sætte en transistor i tilbagekoblingen i en inverterende forstærkerkobling. Figur 5.15 viser en logaritmisk kobling, hvor overføringsfunktionen er f (V i ) = ln(v i ). R 2 beskytter operationsforstærkeren og transistoren mod for store strømme. Kondensatoren, C, er en båndbegrænser til stabilisering af kredsløbet, og R 1 er med til at bestemme forstærkningen i forstærkerkoblingen. Et kredsløb der skal have overføringsfunktionen f (V i ) = 2 ln(v i ) kan konstrueres ved at sætte to transistorer i serie i tilbagekoblingen, hvor den anden transistors basis og collector forbindes med den førstes emitter. Denne opkobling kan ses på figur [Nonlinear, 1976] r o ic il Vo r o Vo i2 R 2 R 2 Vi R 1 _ C Vi R 1 _ C + + Figur 5.15: Logaritmisk kredsløb, V o = ln(v i ). Figur 5.16: Logaritmisk kredsløb, V o = 2 ln(v i ). Blokken ln(e O ) er bygget op som kredsløbet på figur 5.15, og blokken 2ln( Vin ) er bygget op som vist på figur For begge kredsløb er R 2 empirisk valgt til 2,49kΩ og C til 15pF. R 1 på figur 5.15 er lig med 20 kω. For at kunne justere forstærkningen i rms-måleren, implementeres R 1 på figur 5.16 som en modstand i serie med et potentiometer. Værdierne af modstanden og potentiometeret er empirisk valgt til henholdsvis 17,8 kω og 10 kω. Sum-punktet og blokken exp(z) på figur 5.13 realiseres med en enkelt transistor som vist på figur 5.17, når der for NPN-transistorer gælder, at i E = i C + i B i C = i E i B (5.31) og diodeligningen er som følgende: [ ( VB V E i E = I S exp V T ) ] 1 I S exp ( ) VB V E V T (5.32) hvor I S er mætningsstrømmen for collector, V T = k T q k og q er henholdsvis Boltzmanns konstant og en elektrons ladning. T er temperaturen. Overføringsfunktionerne for de tre logaritmiske kredsløb er alle afhængige af temperaturen. Ved at benytte et transistorarray kan betydningen af dette minimeres, da transistorernes arbejdspunkter 63

72 KAPITEL 5. ANALOG I/O ic ie ib Figur 5.17: Kredsløb for realisering af sum-punkt og exp(z). vil blive påvirket ens. Transistorarrayet, der er valgt at bruge, er et CA3083 fra Intersil, og det består af 5 uafhængige NPN-transistorer. Integrator Integratoren midler input-værdien over tid, og dette realiseret med en operationsforstærker med en kondensator og modstand i parallel i tilbagekoblingen. Integrationstiden skal beregnes til 1/8 sek., hvilket gøres ud fra ligning C int er valgt til 2,2µF, hvilket giver en R int på 10kΩ. T int = 2π C int R int R int = R int = T int 2π C int 1/8sek = 9,04kΩ 10kΩ (5.33) 2π 2,2µF Cn C U VXW Rn 2 Vi _ + R U VXW Vo Y0Z[\8]^[ Vi Rn 3 Rn 1 Rn 4 Cn 2 _ + Vo Figur 5.18: Integrator. Figur 5.19: Niveaukonverter. Niveaukonverter Signalets niveauet skal tilpasses codec et. Denne giver en reference-spænding, REFBUF, som niveauet fra rms-måleren skal hæves til. Dette gøres som vist på figur Forstærkningen i koblingen skal være lig med 1, dvs. at R n1 og R n2 skal være lig med hinanden, og de vælges til 20kΩ. C n sikrer at koblingen ikke oscillerer og er empirisk valgt til 33 pf. Test og verificering af rms-måler Der er udarbejdet en målerapport for rms-måleren, som kan ses i appendiks M. Her konkluderes, at rms-måleren virker efter hensigten, og at den kan måle rms-værdien af såvel sinus- som trekantsignaler, med en maksimal afvigelse i de udførte tests på 2,2%. 64

73 5.4. FORSTÆRKERINTERFACE Test og verificering af lydtryksmåler A-vægtningsfilteret og rms-måleren er testet hver for sig. Den samlede lydtryksmåler er testet som en del af det endelige produkt i accepttesten, som kan ses i appendiks P. 5.4 Forstærkerinterface I dette afsnit beskrives interfacet mellem codec ets analoge output og brugerens forstærker. I databladet anbefales et passivt kredsløb, hvis opgave er at fjerne DC og at genoprette det oprindelige signal med en 1. ordens afskæring før 200 khz. Den analoge udgang er dog ikke i stand til at drive belastninger under 10 kω, hvilket betyder at udgangen er så strømsvag at den ikke direkte bør drive et signalkabel gennem et passivt kredsløb. Der skal således designes et kredsløb, der er velegnet til at drive et signalkabel. Herudover skal der foretages en 1. ordens afskæring før 200 khz og DC-niveauet på nominelt 2,1 V skal bortfiltreres Design af forstærkerinterface For at imødekomme disse krav, anvendes en båndbegrænset operationsforstærkerkobling og en DC-servo, til at fjerne DC-niveauet. Koblingen, der er vist i figur 5.20, vil i det følgende blive analyseret. Kondensatoren C F indgår for at indføre den krævede 1. ordens afskæring. C F R R i n - + A 1 C S R S o u t 1 τ s 1 in + o u t G 1 τ 2s A R S 1 1+ τ s Figur 5.20: Diagram for forstærkerinterface, med DC-servo. Figur 5.21: Tilsvarende blokdiagram for forstærkerinterface. τ 1 = RC F og τ 2 = R S C S. Figur 5.21 viser blokdiagrammet, der modsvarer det elektriske diagram. Blokken G er forstærkningen gennem hovedforstærkeren, der er en inverterende kobling, hvorved forstærkningen er givet ved: 65

74 KAPITEL 5. ANALOG I/O G = R 1 C F s R = 1 τ 1 s + 1, τ 1 = RC F Blokken β 1 er DC-servoen, som ligeledes er en inverterende kobling, hvorved forstærkningen er givet ved: β 1 = 1 C S s = 1 R S τ 2 s, τ 2 = R S C S Blokken β 2 er forstærkningen mellem DC-servoens udgang og output. Dette identificeres som den ikke-inverterende kobling, hvorved forstærkningen er givet ved 1 G. Det samlede blokdiagram viser at systemet er et lineært system i serie med et tilbagekoblingssystem, hvor A = 1 og β = β 1 β 2. Den samlede overføringsfunktion kan derfor findes som: H(s) = G A 1 Aβ = G (5.34) 1 β 1 β 2 Ved indsættelse af symbolerne fås: H(s) = 1 τ 1 s s 2 + (1 + 1 τ 1 )s + 2 τ 1 τ 2 (5.35) Det ses umiddelbart at der er tale om et kredsløb med et nulpunkt ved 0 Hz og to poler. For at kredsløbet fungerer som forventet skal den ene pol placeres så lavt som muligt, for at udligne nulpunktet. Den anden skal placeres omkring 200 khz, for at foretage den krævede filtrering. I stedet for at finde polerne i ligning 5.35 symbolsk, vælges τ 1 og τ 2 intuitivt, idet det vides at C F er båndbegrænsende for audiosignalet, og at C S er bestemmende for DC-servoens båndbredde. R og C F vælges til hhv. 10 kω og 100 pf, hvorved τ 1 1 = 10 6 rad/s = Hz. R S og C S vælges til hhv. 2,2 MΩ og 220 nf, hvorved τ 1 2 = 2,07rad/s = 0,33Hz. Indsættes disse værdier for τ 1 og τ 2 i ligning 5.35 fås følgende poler: p = rad/s = Hz 4,1322 rad/s = 0,658 Hz (5.36) Ud fra dette resultat ses, at de to poler med god approksimation er givet ved 1/τ 1 og 2/τ 2. De valgte komponentværdier giver det ønskede resultat, idet forstærkningen ved DC er 0, audiobåndet er tilnærmelsesvist uændret og afskæringen ligger før 200 khz, og derfor bevares de. Som operationsforstærker anvendes Analog Devices OP275, der er en decideret audio-opamp, som er i stand til at drive store kapacitive belastninger, som f.eks. kabler, uden at blive ustabil. [Cd, datablade/op275.pdf] 66

75 5.5. TEST OG VERIFICERING AF ANALOG I/O Fordele ved DC-servo Funktionen af det designede kredsløb kunne opnås med 2 kondensatorer og 2 modstande, som det foreslås i databladet for CS4218. Alligevel er der væsentlige fordele ved den anvendte kobling. Belastningen af codec ets udgang er rent resistiv og givet ved R. Dette sikrer optimale arbejdsbetingelser for udgangen, der ikke skal drive en hverken kapacitiv eller induktiv belastning som f.eks. et kabel. Den valgte operationsforstærker er af en type som er meget strømstærk og designet til at drive kapacitive belastninger. I modsætning til et passivt netværk, er udgangsimpedansen fra den anvendte kobling tilnærmelsesvist 0, hvorved overføringsfunktionen er uafhængig af belastning. Benyttes et RC-led til at filtrere DC-niveauet, som foreslået i databladet, vil R være mindre end den tilsluttede belastning, da denne belaster RC-ledet. En typisk belastning fra en forstærker er 10 kω i serie med signalkablet. Dette giver en meget stor kondensatorværdi, hvis ikke det nedre frekvensområde skal dæmpes. Det betyder at elektrolytkondensatorer skal anvendes, der på grund af deres fysiske opbygning ikke egner sig til signalbehandling, idet de kun fungerer som kondensatorer ved lave frekvenser. Med DC-servoen kan der uden problemer anvendes en meget stor modstand, hvorved kondensatoren kan gøres så lille at polyester- eller polyethylenkondensatorer kan anvendes. Hertil kommer at kondensatoren er fjernet fra signalvejen. Spændingen på hver side af kondensatoren i DC-servoen er dermed DC. Operationsforstærkeren i DC-servoen sørger for, at den ene side af kondensatoren følger 0 V mens udgangen, hvor den anden side af kondensatoren er tilsluttet, vil indstille sig på halvdelen af det DC-niveau, der er tilstede på indgangen af den fremadgående operationsforstærker Test og verificering af forstærkerinterface Forstærkerinterfacet er testet i samspil med resten af den analoge hardware. Der henvises til beskrivelsen af denne test i afsnit Test og verificering af analog I/O I appendiks O findes en målerapport der dokumenterer at analog I/O er i stand til at: 1. Hente samples fra cd-interfacet og sende dem til codec et, hvorved lyden fra cd-afspilleren afspilles i den tilsluttede højttaler. 2. Sample signalet fra mikrofonen og sende det til codec et, hvorved lyden fra mikrofonen afspilles i den tilsluttede højttaler. Funktionaliteten af a-vægtningsfilteret og rms-måleren er testet og verificeret i de pågældende afsnit. 67

76 KAPITEL 5. ANALOG I/O Det blev vist at differensforstærkeren har den forventede forstærkning, og at det er muligt at indstille gain i line receiveren. Det maksimale output fra differenstrinnet er ca. 3,5 V. Output på rms-måleren blev med potentiometeret indstillet til 1,510 V ved et output fra differenstrinnet på 3,501 V (peak), hvorved codec ets dynamikområde udnyttes optimalt. 68

77 KAPITEL Pc-software 6 Indhold 6.1 Datatyper Filter FilterBank Kommunikation med DSP Brugerflade Implementation af pc-software Pc-softwaren skal give brugeren mulighed for at indstille filterene og foretage en frekvensanalyse af det equalizerede audiosystem. Softwaren skal derfor være i stand til at kommunikere med DSP en og foretage de nødvendige beregninger af filterkoefficienter, baseret på brugerens input. Til dette er valgt at benytte et objektorienteret sprog, der gør det muligt at samle data og funktionalitet i selvstændige enheder, kaldet klasser. Dette er en fordel i forbindelse med håndtering af filtere, idet det er muligt at indkapsle både parametre, frekvenskarakteristik, koefficienter og metoder til beregning i en enkeltstående klasse, som tilbyder den funktionalitet, der er nødvendig for, at selve hovedprogrammet kan udføre de opgaver der stilles. Som sprog vælges C#, der ligesom Java kører på en virtuel maskine, og fortolkes som det afvikles med en JIT compiler 1. Sproget minder meget om Java i struktur, og C i syntaks. Udviklingsmiljøet består af Microsofts.NETframework, der indeholder talrige klasser med de mest almindeligt anvendte funktioner, således at der kan fokuseres på det centrale i softwaren. Til udarbejdning af kode, samt kompilering benyttes udviklingsværktøjet Microsoft Visual Studio.NET Da der benyttes et objektorienteret programmeringssprog, startes udviklingen med at gruppere de data, programmet skal arbejde med, i klasser. Disse klasser tildeles derefter funktionalitet i form af metoder til at bearbejde disse data. Dette gøres med henblik på at skabe datatyper, der kan benyttes på højde med andre kendte datatyper som f.eks. integers og arrays, i selve hovedprogrammet. For at gøre teksten mere overskuelig, formateres navne på begreberne klasse, attribut, metode() og arrays[], som her angivet. Opbygningen af kapitlet er struktureret således, at der først beskrives de datatyper, der danner grundlag for pc-softwaren, hvorefter det beskrives, hvorledes disse datatyper instantieres og anvendes i hovedprogrammets flow. 1 Just-In-Time compiler. Compilering foretages under programafvikling. 69

78 KAPITEL 6. PC-SOFTWARE Kildekoden til programmet findes på bilags-cd en [Cd, software/digitalequalizer/*.cs], og den eksekverbare fil kan også findes på bilags-cd en [Cd, software/digitalequalizer.exe]. Tabel 6.1 viser hvilke filer, pc-softwaren består af, og hvilke klasser filerne indeholder. Filnavn DSPlink.cs Filter.cs FilterBank.cs GUI.cs GUI.resx LogArray.cs CommBase.dll Indhold Klasserne DSPlink og DSPdata. Klasserne Filter og Koefficient. Klassen FilterBank. Klassen GUI. Resourcefil til GUI. Klassen LogArray Klassen CommBase. Tabel 6.1: Tabel over kildekodefilerne. 6.1 Datatyper Teorien bag beregningerne af filterkoefficienter samt strategien for implementation af filtersektionerne blev gennemgået i kapitel 2 på side 9. Der blev fundet matematiske udtryk for hver af filterkoefficienterne for de tre forskellige filtertyper peak, lowshelf og highshelf. Implementationsformen direkte form I viste sig at være at foretrække i denne applikation, kombineret med at det samlede filter opdeles i 2. ordens sektioner. Opdelingen af filtret i 2. ordens sektioner leder til at oprette en datatype, indeholdende de data, der er specifikke for hver af disse sektioner, samt en række metoder til at bearbejde disse data. Denne datatype kaldes Filter. Ikke alle data, der hører til det samlede filter, kan inkluderes i datatypen Filter, da de er afhængige af de resterende 2. ordens sektioner. Derfor laves endnu en datatype FilterBank, der består af et vilkårligt antal objekter af datatypen Filter samt en række metoder og data til at organisere og bearbejde Filter objekterne Filter Formålet med at oprette datatypen Filter er at afgrænse alle de data og metoder, der er uafhængige af de andre 2. ordens filtersektioner. Hvert filter skal indeholde en række data såsom indstillede parametre, filterkoefficienter og filterets karakteristik. Filterkoefficienterne skal eksistere i ikkekvantiseret form, der beregnes ud fra de matematiske udtryk fra afsnit Når koefficienterne skal downloades til DSP-systemet, skal de være kvantiseret, dvs. koefficienterne skal også forefindes i en kvantiseret form. Der oprettes derfor en datatype Koefficient, der indeholder begge værdier, Value og kvalue. Udover de to koefficienter indeholder datatypen Koefficient information om, hvilken ordlængde koefficienten skal kvantiseres til, D, samt en skaleringsfaktor, Kf, der ganges på inden kvantisering. Metoder til skalering og kvantisering er implementeret i datatypen Koefficient. Dvs. kvalue, som er den kvantiserede og skalerede udgave af Value, er datatypen selv i stand til at beregne. Til hvert Filter skal der oprettes 5 objekter af typen Koefficient, der repræsenterer hhv. b 0, b 1, b 2, a 1 og a 2. 70

79 6.1. DATATYPER Hver filtersektion skal indeholde filterets frekvenskarakteristik både i kvantiseret, kamplitude, og ikke kvantiseret, Amplitude, form. Disse filterkarakteristikker skal kunne plottes på brugerfladen, dvs. der skal opbevares en række koordinater for frekvens og amplitude samt en række amplitudeværdier og tilhørende frekvens. Alle disse data samles i datatypen LogArray. LogArray indeholder tre arrays, et til at opbevare amplituder, Data, og et til at indeholde de tilhørende frekvenser, Parameter. Disse to arrays, benyttes under beregningen af filterets amplitudekarakteristik. Frekvenserne beregnes i constructoren for LogArray, som et antal frekvenser pr. oktav i 10 oktaver fra 20 Hz. Det sidste array, Points, i datatypen LogArray indeholder koordinaterne til de punkter, der skal plottes på brugerfladen. Dette er et array af datatypen FPoint, der er en datatype, der kan indeholde ét koordinatsæt bestående at to float-værdier. Filterparametrene opbevares i Filter som en række attributter. Disse er filtertypen Type (peak, lowshelf el. highshelf), centerfrekvensen Fc, gain G samt bredden B, der bruges i forbindelse med filter-typen peak. De to sidste attributter i klassen Filter er skaleringsfaktorerne Sk og K, som er beskrevet i afsnit 2.5 på side 19. K er den faktor, der skal ganges på filterets b-koefficienter, for at de bliver mindre end 1. Sk er en samlet faktor, der består af skaleringen, der skal til for at sektionen ikke giver overflow, ganget med den faktor b-koefficienterne i sektionen før er skaleret med. Klassediagrammet for Filter kan ses på figur 6.1. _0yz`@{Juletl c f _S}~{uelt lc f _S {Juetl c f _S 2x@{uelt lc f _Sw ƒbsf${jw ˆ _Sd {Juetl c f _Sa2 Ša ${d2eflg g h `bh fjlk _S lœ8š lšj l ${=delfg g h `zh fljk _Sq2r!slc h k tulf${j ležlqm m alƒ _Sxbq2r!sc h k tluf"{ elžqm m aƒ _S`bac `bdefg g h ìh fjlk flm n o p `bac `bq2r!slc h k tulfn o _SvAelr!salm fwsen o _Sslah jk n o _Sxbsalh jlk n o 0šS œ l _S 2alc tlf${juetl c f _S {h jlk _Sd2g2{Juletl c f _Sxb 2alc tf"{h jlk š 0 _S 0alk až Ÿ8{uelt lc f _S 2alm ar!fk fm ž Ÿ {uelt lc f _S 2elh jkbž Ÿ {lyb eh jlk Figur 6.1: Klassediagram for Filter. Funktionaliteten der er knyttet til klassen er delt op i en række metoder. Til beregning af koefficienterne ud fra filterparametrene, anvendes metoden calckoefficienter(), og til beregning af frekvenskarakteristikken, både kvantiseret og ikke kvantiseret, metoden calcamplitude(). De to metoder kaldes automatisk hver gang der ændres på en af filterparametrene. Selve skaleringen af filterets b-koefficienter er implementeret som en egenskab for attributten Sk. Dvs. hver gang denne værdi ændres, beregnes skaleringen af sektionen, samt den kvantiserede frekvenskarakteristik. For at det er muligt at sortere filterene i rækkefølge, med det filter med størst b-koefficient først, laves Filter sammenlignelig. Dvs. metoden CompareTo() implementeres, hvilet gør det muligt at benytte ArrayList 2 klassens sorteringsalgoritmer til denne sortering. Kravet til CompareTo() er, at den skal kunne sammenligne det objekt metoden er i med et andet objekt af samme type. Referencen til objektet, det skal sammenlignes med, gives som inputparameter. Returværdien fra metodekaldet bestemmer, om objektet kommer før eller efter det objekt, det sammenlignes med. Der returneres værdien -1, hvis objektet, der indeholder CompareTo(), er mindre end det, der sammenlignes med, ellers returneres værdien 1. 2 ArrayList er en standard datatype, der er til rådighed i C#. 71

80 Ú Ú Ü KAPITEL 6. PC-SOFTWARE For at lave den samlede filterkarakteristik, skal filterkarakteristikken for hver enkelt sektion lægges sammen. Derfor overskrives plus-operatoren for datatypen LogArray således, at når to af disse objekter lægges sammen, bliver resultatet et LogArray, hvor amplituden er lagt sammen punkt for punkt. Dette medfører, at når amplituden for flere filtere skal lægges sammen, vil det foregå på samme måde, som når to tal skal lægges sammen. Desuden implementeres i LogArray en metode Max(), der returnerer den største værdi, der forefindes i arrayet Data. Dvs. den største amplitude i filterkarakteristikken for filteret. Det skal være muligt at plotte Filter på brugerfladen. Derfor er der i datatypen to paint metoder, der er i stand til at tegne filterkarakteristikken på en tegneflade. De to metoder er paint() og kpaint(), der hhv. plotter den ideelle og den kvantiserede frekvenskarakteristik ud fra de koordinater, der er i Amplitude,Points og kamplitude,points FilterBank Filterbank, som også implementeres som en klasse, består som sagt af et vilkårligt antal objekter af typen Filter. Disse opbevares i datatypen ArrayList, der har den fordel frem for datatypen Array, at størrelsen ikke er fast. Dvs. der kan løbende tilføjes flere Filter-objekter til FilterBank. Derudover består filterbanken af en mastergain, MG, der fungerer som en volumenkontrol. Klassediagrammet for FilterBank kan ses på figur 6.2. ÊË Ì Í ÎÏÐAÑlÒ Ó 8¹b lº»b¼ ½ ¾¹z lº ÁÀ¾JÃl±«lÄ À~¾JÃl±«Äl ³2¼ ½2¾Jñ«lÄ ³2 Å! 2¾JƱÇlÈ2º º lé i³ Å! l ¾Æ±lÇȺ º É A ªi«l l l ±l²0³2 2 µ l iµl ÞSßà á ÏÏÑâ ²A ¼ ½ ¾Ã±l«Äl lº ÅÁ l º ¼ ½ ¾Ã±l«Äl ±l l»i¼ ½ ¾l¹b ±l l Úlã ãä Ê Ë Ì Í ÎÏ 0¹zª@¾Ã±l«Äl SÀ¾ñ«Äl S ¾JÃl±«lÄ S Ébµl "¾ Ø2ḰÙ SÔ ¾JÃl±«lÄ S 2ÚÛ Ü$¾JÔ± lõ Õ ªi l SÄlÝ ÛÄ ÚlÛJÄlÜ"¾Ô ±l Õ Õ ªz l SÈÅÁµl «Ãl "¾Æ±ÇlÈ2º º É S zè2å!µ «Ã $¾Æ±lÇȺ º É Sªz ªbÔ2± lõ Õ ªb l º Ö ªi l ªbÈ2Å!µ «Ãl S 0±lÅÁµl º ±l Sµl S zµ l l Figur 6.2: Klassediagram for FilterBank. FilterBank har tre vigtige funktionaliteter. Den skal være i stand til at beregne de nødvendige skaleringsfaktorer, at beregne den samlede frekvenskarakteristik, at plotte den samlede frekvenskarakteristik på brugerfladen samt at formatere de data, der skal downloades til DSP en. Disse funktionaliteter ligger hhv. i metoderne Calculate(), paint() og ToDSP(). Metoden paint() plotter frekvenskarakteristikken og findes også i en udgave, der plotter den kvantiserede karakteristik, kpaint(). Disse to metoder fungerer på samme måde som paint-metoderne i klassen Filter. På brugerfladen plottes begge kurver, så brugeren både kan se den ønskede karakteristik, og den der faktisk implementeres. ToDSP() genererer et byte-array, der indeholder de kvantiserede filterkoefficienter samt den kvantiserede afsluttende gain-faktor Gk formateret i henhold til protokollen, der er beskrevet i appendiks G. Calculate() er den metode, der er selve kernen i datatypen. Metoden udfører følgende: 1. Sorterer Filters[] ved hjælp af metoden Sort(), der stilles til rådighed af klassen ArrayList. 72

81 6.2. KOMMUNIKATION MED DSP 2. Summerer filterene i arrayet Filters[] et efter et og finde, mellem hver summation, den maksimale amplitude for den samlede filterkarakteristik med metoden Max(). Denne amplitude gemmes i arrayet S og bruges efterfølgende til at beregne skaleringsfaktorerne. 3. Beregner skaleringsfaktoren Sk for hver af filterene i arrayet Filters[]. Dette medfører at hver af filterene selv udfører skaleringen af koefficienterne og beregner den kvantiserede frekvenskarakteristik. 4. Beregner filterbankens kvantiserede frekvenskarakteristik ved at summere de enkelte filteres kvantiserede frekvenskarakteristikker. 5. Beregner det maksimale mastergain, der kan benyttes uden at der kan opstå overflow. 6. Beregner den endelige gainfaktor G, der skal kompensere for koefficientskalering og implementere mastergain. 6.2 Kommunikation med DSP Kommunikationen mellem pc en og DSP en implementeres i form af klassen DSPlink med metoder til at sende og modtage data fra DSP en via en RS232-forbindelse. Data, som skal udveksles mellem pc og DSP, pakkes ind i datatypen DSPdata, hvilket bl.a. giver mulighed for at samle selve dataen, som skal overføres, med den tilhørende kommando. Kommunikationen mellem pc og DSP er specificeret i en protokol, som er beskrevet i appendiks G. DSPdata Klassediagrammet for datatypen DSPdata kan ses på figur 6.3. åæ ç è!èêéë:ìîíïðbñ ò åó0ô2õ!íiöëi lø ùsëiòì! iú:çû ñ åó0ô2õxùéø ë^ílïðiñ ò åsüï ì iýîíüø þ ñ òûïséëÿ åsü íüû ò ò iýlçsëi bò å ëïö ò û í:ï ðzñ ò åæ ç è!ýlþ ò:ñ òîíiççþ Figur 6.3: Klassediagram for DSPdata. Attributten Command indeholder kommandoen til DSP en. SPL indeholder amplituden af en lydtrykssample, som modtages fra DSP en, og SPLgain er den tilhørende gain. FBdsp er et objekt af typen FilterBank. FR er et objekt af typen FreqResponse, som bl.a. opretter et objekt af LogArray. Derudover har FreqResponse en metode til at omregne de målte værdier i frekvensresponsen til nogle værdier, som kan plottes som punkter på brugerfladen, samt en metode til at plotte punkterne, så frekvensresponsen vises på brugerfladen. InBuffer[] er en input-buffer til midlertidig data fra DSP en. Denne bruges til at samle de indkomne data i et array, før det behandles. Complete er et flag som indikerer, at pc en har modtaget alt det data fra DSP en, som er forventet. 73

82 KAPITEL 6. PC-SOFTWARE DSPlink Til overførsel af data mellem pc en og DSP en, skal der kunne kommunikeres med en serielport på pc en. For at kommunikere med denne port fra.net miljøet, skal der foretages Win32 API funktionskald. Dette gøres ved at benytte Platform Invocation Service (P/Invoke), der gør det muligt at kalde dll-filer, der ikke er en del af.net. For at lave en struktureret kommunikation med serielporten, bør disse funktionskald indkapsles i en klasse. Der er derfor valgt at anvende en klasse, kaldet CommBase, der er designet af John Hind [Hind, 2002]. Denne klasse indkapsler de nødvendige kald til Win32 API et, og ved at nedarve fra denne klasse, kan serielporten tilgås fra.net miljøet. CommBase er indeholdt i en dll-fil af samme navn, som inkluderes i projektet i Visual Studio.NET Der skal laves en klasse, der nedarver fra klassen CommBase, der findes i dll-filen. Der er tre krav til denne klasse. Der skal oprettes et objekt af typen CommBaseSettings, der skal indeholde informationer om indstillinger for porten, som f.eks. hastighed og antal databit. For at CommBase kan få fat i dette objekt, skal der implementeres en metode, som returnerer en reference til dette CommBaseSettings-objekt. Denne metode skal overskrive den virtuelle metode CommSettings(). Det sidste krav er, at der implementeres en metode til håndtering af indkommende data. Dette gøres ved at overskrive den virtuelle metode OnRxChar(). Denne metode kaldes fra CommBase hver gang, der modtages et tegn fra serielporten. Når der skal oprettes forbindelse til DSP en, skal der vælges hvilken serielport på pc en, der skal benyttes, og porten skal køre med følgende opsætning, der indstilles ved hjælp af CommBaseSettingsobjektet: 8N1 (8 databit, No stopbit, 1 paritetsbit). hastighed på baud. no flowcontrol. Overførsel af data foregår i to tråde, en til transmit, Tx, og en til receive, Rx. Når en af kommandoerne SETFILTERBANK, GETSPL, GETFRESPONSE eller CANCELFRESPONSE, som er specificeret i protokollen, bliver valgt, sættes attributten RxCount lig med nul, hvorefter kommandoen sendes i Tx-tråden, og der ventes på acknowledge fra DSP en. RxCount indikerer, hvor mange bytes pc en skal modtage, og dette er afhængigt af, hvilken kommando der vælges. Når Rx-tråden modtager acknowledge fra DSP en, sættes RxCount lig med det antal bytes, pc en skal modtage, og der oprettes en InBuffer[] med længden RxCount til modtagelse af data. Herefter sendes eventuelle data til DSP en via Tx-tråden, og Rx-tråden modtager svardata fra DSP en, som lagres i InBuffer[]. 6.3 Brugerflade Interaktion mellem brugeren og den parametriske equalizer, foregår gennem brugerfladen. Dvs. alle indstillinger, der skal laves, skal foregå igennem denne. Brugerfladens vigtigste funktion er, at give en overskuelig måde at indstille filterparametrene på. For at opnå dette er det valgt at have en tegneflade, hvorpå filterkarakteristikken for equalizeren vises, og lade denne være udgangspunktet for indstillingerne. Det er kun muligt at justere ét filter af gangen, dvs. der vælges det filter, der 74

83 6.4. IMPLEMENTATION AF PC-SOFTWARE ønskes at justere på, hvorefter selve justeringen kan foretages. Til at indstille frekvensen er der i bunden af tegnefladen med frekvensplottet lavet en trackbar. Denne følger frekvensen ud af 1. aksen på plottet således, af centerfrekvensen for det valgte filter er lige ud for trackbarens position. Tilsvarende er gainjusteringen implementeret, hvor der er en trackbar, der følger 2. aksen. Til justering af de sidste to parametre, filtertype og bredden af peakfiltre, er der lavet en gruppe af controls til højre for plottet. Under denne gruppe vælges det filter, der ønskes justeret, ved hjælp af en liste. Udover de indstillinger, der er nødvendige for at kunne betjene equalizeren, er der en række ekstra features. Det er f.eks. muligt at indstille mastergain, hente og gemme en filterbank, lave en frekvensanalyse af audiosystemet og se det aktuelle lydtryk. Figur 6.4 viser hvordan brugerfladen ser ud. Figur 6.4: Brugerfalden til den parametriske equalizer. Brugerfladen opbygges som en klasse ved navn GUI. Denne klasse indeholder et objekt for hver element på brugerfladen. Til at opbygge denne klasse bruges et grafisk værktøj, der er til rådighed i Microsoft Visual Studio 2002.NET, hvormed brugerfladen kan tegnes. Udover alle elementerne på brugerfladen er der til hvert element, som skal udføre en funktion, en metode der kaldes. Trykkes der f.eks. på en knap, er det til denne knap tilknyttet en metode, der bliver kaldt, når styresystemet registrerer, at der trykkes på knappen. Det er omkring disse metoder selve funktionaliteten af pcsoftwaren bygges op. 6.4 Implementation af pc-software Efter at alle byggeklodserne, i form af klasser, til pc-softwaren er designet, består selve implementationen udelukkende i at få sammensat disse til et samlet program. Nedenstående liste viser hvilke klasser, der skal benyttes, samt hvor mange instanser, der skal oprettes af hver klasse: 75

84 KAPITEL 6. PC-SOFTWARE Antal Klasse Instansnavn Beskrivelse 1 FilterBank FB opbevaring af filtersektionerne. 4 Filter F1...F4 selve filtersektionerne, der skal lægges i Filterbanken. 1 DSPlink DL kommunikation med DSP en. 2 DSPdata SPLdata, FRdata benyttes til hhv. hentning af lydtrykket og frekvensresponset. Det er i klassen GUI hele softwaren opbygges. Dvs. de resterende objekter fra ovenstående liste, der skal oprettes, er attributter i denne klasse. Til håndtering af hvilket filter brugeren har valgt fra listen på brugerfladen, oprettes to referencer AktivFilter og AktivLabel. AktivFilter er en reference til et objekt af typen Filter og AktivLabel er til et objekt af typen Label 3. Det er altid igennem AktivFilter, der ændres på det valgte filter. Dvs. at alle elementer på brugerfladen, der skal ændre på parametrene i et filter, bruger AktivFilter. Derved skal disse elementer ikke vide hvilket af de fire filtere, der justeres på. AktivLabel er en reference til en label på brugerfladen, der er en del af den liste, hvorfra filterene vælges. Denne label viser information om parametrene for det valgte filter, og når der vælges et andet filter bliver informationerne stående som en del af listen. Det er derfor nødvendigt at opdatere referencen til denne label, når der vælges et andet filter, så disse informationer skrives det rigtige sted. Objektet af typen DSPlink, er det eneste objekt, der ikke direkte oprettes, der hvor referencen oprettes. I constructoren for klassen GUI oprettes objektet af typen DSPlink, som referencen DL sættes til at pege på. Efter at dette er oprettet, tilføjes de fire filtersektioner F1-F4, til filterbanken FB. For at oprette listen med filtersektionerne på brugerfladen, vælges filterene et efter et, hvorved teksten på de tilhørende labels opdateres. Det er også i constructoren for GUI, at det testes hvilke serielporte, der er tilgængelige. Udover de metoder, der er oprettet til at håndtere instruktioner fra brugeren, indeholder klassen GUI, en række hjælpemetoder. Formålet med disse er at samle de stumper kode som mange af elementerne på brugerfladen, skal benytte. Derved forkortes koden, og eventuelle ændringer, der skal foretages ved en gruppe elementer, kan foretages centralt. Hjælpemetoderne er beskrevet herunder. CheckComPorts() kontrollerer hvilke COM-porte, der er tilgængelige, og opdaterer menuen, hvorfra brugeren kan vælge hvilken COM-port, der skal benyttes. De COM-porte, der ikke er tilgængelige, deaktiveres fra menuen. Denne metode kaldes fra constructoren i klassen GUI. FilterChange() bruges i forbindelse med at brugeren vælger en anden filtersektion. Den ændrer referencen AktivFilter og opdaterer de elementer på brugerfladen, der styrer filterparametrene. Dvs. trackbarerne, der styrer hhv. centerfrekvens og gain, samt de elementer, der styrer bredden og filtertypen. Disse elementer opdateres med de værdier, der er i det valgte filter. Plot_dB_Lines() er en metode, der plotter vandrette linjer på frekvensplottet på brugerfladen. Der plottes tynde linjer for hver 5. db og lidt tykkere linjer for hver 10. db. Linjerne plottes som det første, hver gang tegnefladen på brugerfladen gentegnes. 3 Et objekt af datatypen Label, giver mulighed for at vise tekst på brugerfladen inden for et afgrænset område. 76

85 6.4. IMPLEMENTATION AF PC-SOFTWARE UpdateAll() aktiverer filterberegningerne i filterbanken FB ved at kalde metoden Calculate(). Opdaterer den label AktivLabel peger på. Sender den beregnede filterbank til DSP en, og invaliderer tegnefladen, hvilket medfører at den tegnes på ny med den nye filterkarakteristik. UpdateAll() kaldes hver gang der bliver ændret en parameter på et filter. UpdateMasterGain() opdaterer trackbaren, der styrer mastergain, således at den stemmer overens med den mastergain, der forefindes i filterbanken FB. Metoden benyttes efter, at der er udført nye beregninger i filterbanken, der kan have ændret mastergain. 77

86

87 KAPITEL DSP-firmware 7 Indhold 7.1 Design af firmware Funktionalitetsoversigt Blokopdeling af firmware Implementationsform Implementation af firmware Initialisering Kommandofortolker Interruptrutiner Kommandorutiner Test og verificering af firmware I dette kapitel beskrives firmwaren til DSP en. Målet med afsnittet er at beskrive formål og overordnet virkemåde således, at kildekoden gøres lettere læselig. Kildekoden er kommenteret således, at denne er dokumenterende for den præcise og detaljerede virkemåde. Detaljer er udeladt af dette afsnit af hensyn til overblikket, og der henvises til appendiks I, hvor samtlige kildefiler er listet, såfremt der ønskes dybdegående detaljer omkring implementationen. 7.1 Design af firmware I dette afsnit beskrives den funktionalitet firmwaren skal implementere, og hvordan denne blokopdeles. Endeligt beskrives den valgte implementationsform Funktionalitetsoversigt Firmwaren skal implementere følgende funktionalitet: 79

88 KAPITEL 7. DSP-FIRMWARE Equalizer: Modtagelse, filtrering og afspilning af samples fra cd-interfacet med en frekvens på Hz. Cd-interfacet producerer et interrupt med denne frekvens, synkroniseret med at en ny sample er klar til indlæsning. Lydtryksmåling: Denne funktion skal kunne måle lydtrykket, og sende dette til den tilsluttede pc, som formidler resultatet via brugerfladen. Frekvensanalyse: Denne funktion skal kunne måle frekvenskarakteristikken for det equalizerede audiosystem. Kommunikation med pc: Herved muliggøres følgende funktioner: Downloade ny filterbank fra pc. Igangsætte en frekvensanalyse og modtage resultat. Igangsætte en lydtryksmåling og modtage resultat. Justere/aflæse gain på line-receiver. Indstille/aflæse konfiguration af codec. Aflæse status for codec. Tænde/slukke lysdiode på frontpanel. Kommunikationen med pc en er yderligere specificeret i protokollen, der er beskrevet i appendiks G Blokopdeling af firmware For at kunne opdele implementationen i logiske blokke, skal der tages stilling til, hvilke operationer der skal være styret af interrupts, og hvilke der skal afvikles mellem interrupts. Equalizerens primære opgave er at modtage filtrere og afspille samples, og derfor vælges det at placere denne funktionalitet i en interruptrutine, som trigges af de førnævnte interrupts, der genereres af cdinterfacet, når en ny sample er tilgængelig. Herudover er det nødvendigt med en hovedløkke, der definerer, hvad DSP en foretager sig, når den ikke modtager, filtrerer og afspiller samples. I denne hovedløkke placeres en kommandofortolker, som kan varetage kommunikationen med pc en og kalde de rutiner, der implementerer den beskrevne funktionalitet. Dette fører til følgende opdeling, se tabel Implementationsform Der er to grundlæggende metoder til at implementere denne funktionalitet: Lavniveausprog - det vil sige, at koden skrives i assembler. Dette forudsætter brug af den assembler, som leveres af Texas Instrument. Denne måde at implementere koden på kræver et relativt stort arbejde, idet alle detaljer i databehandlingen er under programmørens kontrol, hvilket også er den største fordel ved denne metode. 80

89 7.1. DESIGN AF FIRMWARE Rutine X-interrupt Cd-interrupt Initialisering Kommandofortolker Kommandorutiner Beskrivelse Interruptrutine som anvendes til at generere en sinustone i forbindelse med frekvensanalyse. Modtager, filtrerer og afspiller samples fra cdinterfacet. Opsætning af hardware og interne datastrukturer. Køres én gang under opstart af firmware. Modtager kommandoer fra pc-interfacet og udfører den pågældende kommandorutine. Kommandorutiner der udfører de kommandoer som kommandofortolkeren har modtaget fra pc-interfacet. Tabel 7.1: Opdeling af funktioner Højniveausprog - dette kan være f.eks. BASIC, Pascal eller C. Der eksisterer kun en C compiler, der kan generere kode til TMS320C26, og den leveres af Texas Instruments. Denne understøtter i grove træk ANSI C standarden, hvorfor eksisterende erfaring kan anvendes. Til compileren hører et funktionsbibliotek, der implementerer en stor del af de funktioner, der findes i ANSI C standarden. Anvendelsen af et højniveausprog nedsætter arbejdsbyrden, idet de fleste operationer på data er kompakt beskrevet i sprogets syntaks. Dette nedsætter programmørens grad af kontrol, men det er dog muligt at vise den af compileren genererede maskinkode, hvorved denne kan videreudvikles og optimeres. Det er valgt at implementere firmwaren i en kombination af assembler og C. Til tidskritiske operationer anvendes assembler og til mindre tidskritiske rutiner anvendes C med henblik på at gøre udvikling og vedligeholdelse enkel. Makefile og linkerscript Til kompileringsprocessen anvendes make med en tilhørende makefile, der med en enkelt kommando gør det muligt at kompilere softwarens forskellige kodefragmenter, der er implementeret i separate filer. Herudover er der oprettet et linkerscript som specificerer, hvordan de enkelte dele af koden skal placeres i hukommelsen. Makefilen og linkerscriptet kan ses i appendiks H. Bootstrap af system C compileren forudsætter at visse ting er initialiseret, inden den compilerede kode kan afvikles. Ved at invokere linkeren med argumentet -c, linkes en initialiseringrutine fra C-biblioteket, som benævnes _c_int0, ind i programmet. Dette er indgangspunktet, og heri opsættes AR0 som frame pointer og AR1 som stack pointer. Stackens startadresse defineres i linkerscriptet til at ligge i intern hukommelse med henblik på at optimere afviklingshastigheden. Stacken vokser nedad mod 81

90 KAPITEL 7. DSP-FIRMWARE større adresser, og stack pointeren peger på den første ledige plads. Når _c_int0 er færdig med initialisering, kaldes _main, som derfor er indgangspunktet for den specifikke initialisering, som beskrives i afsnit Funktionskald For at kalde en C funktion fra assembler, skal alle argumenter skubbes på stacken i omvendt rækkefølge, og ARP skal pege på AR1 (stack pointer). Når funktionen returnerer, vil returværdien ligge i akkumulatoren, og den kaldende funktion skal fjerne argumenterne fra stacken. Den kaldte funktion sørger for, at ARP peger på AR1 inden returnering. De nævnte regler er relevante for den aktuelle implementation, men der eksisterer adskillige flere regler og konventioner, der generelt skal overholdes i mere specielle tilfælde - der henvises til Optimizing C Compiler User s Guide afsnit 4.2, 4.3 og 4.4 for en nøjagtig specifikation [Texas Instruments, 1995]. 7.2 Implementation af firmware I dette afsnit beskrives hvordan funktionaliteten implementeres i firmwaren Initialisering Inden normal programafvikling kan startes, skal følgende elementer initialiseres: Outputregisteret skal sættes til en kendt tilstand. Filtere initialiseres til et standardfilter med en flad karakteristik. Cosinustabellen, der anvendes i forbindelse med frekvensanalyse, fyldes med værdier. Codec ets serielle interface skal initialiseres ved at skrive til det en enkelt gang. Herefter skal den egentlige konfiguration downloades. Her vælges rms-måleren som analogt input således, at lydtryksmålinger kan udføres sideløbende med normal drift. Line-receiver skal initialiseres ved at downloade det ønskede gain. UART konfigureres til baud, 8 databit, ingen paritet og 1 stopbit. Cd-interrupt aktiveres, hvorved modtagelse, filtrering og afspilning startes. Dette er implementeret i rutinen _main, der kaldes af _c_int0, når programmet startes. Når _main er færdig med initialisering, fortsætter programkontrollen videre til kommandofortolkeren Kommandofortolker Komandofortolkeren poller UART en indtil en kommando modtages. Denne kommando sendes med det samme tilbage, hvilket indikerer et Acknowledge. Herefter anvendes en kommandotabel til at tolke kommandoen fra pc en, og på baggrund heraf kaldes den pågældende kommandorutine. 82

91 7.2. IMPLEMENTATION AF FIRMWARE Kommandotabellen opbevares i programhukommelsen og indsættes ved compilering ved hjælp af.word-direktivet som vist her: CMDTab ; Kommandotabel (* = handshake ). word SETFILTERBANK ; a 61 h ( SETFILTERBANK ) *. word GETSPL ; b 62h ( GETSPL ). word GETFRESPONSE ; c 63h ( GETFRESPONSE ) *. word DEFAULT ; d 64h ( ONLINE ). word SETGAIN ; e 65h ( SETGAIN ) *. word GETGAIN ; f 66h ( GETGAIN ). word SETLEDON ; g 67h ( SETLEDON ). word SETLEDOFF ; h 68h ( SETLEDOFF ). word SETCODECCONF ; i 69h ( SETCODECCONF ) *. word GETCODECCONF ; j 6 Ah ( GETCODECCONF ). word GETCODECSTATUS ; k 6 Bh ( GETCODECSTATUS ). word DEFAULT ; l 6 Ch. word DEFAULT ; m 6 Dh. word DEFAULT ; n 6 Eh. word DEFAULT ; o 6 Fh. word DEFAULT ; p 70 h Komandorutinen DEFAULT udfører ingen funktioner men returnerer til kommandofortolkeren med det samme. Adressen på kommandorutinen, der er opbevaret i programhukommelsen i kommandotabellen, læses af kommandofortolkeren ved hjælp af instruktionen TBLR. Herefter indlæses adressen i akkumulatoren, og instruktionen CALA anvendes til at kalde selve kommandorutinen. Dette er illustreret i flowdiagrammet på figur 7.1. J a N e j Start Data I UART? G e m d ata i ak k u m u l ato r UART k lar til d ata? N e j J a K al d k o m m an d o ru ti n e n d C A LA m e I n d l æ s m m an k o d o - ti n e s ad re s ru n s e m e d TBLR B e re g n o f f s e t o g ad d e r ad re s s e f o r k o m m an d o tab e l Se n d ac k n o w l e d g e - s i g n al ti l P C Figur 7.1: Flowdiagram over kommandofortolkeren. Dermed sker følgende: 1. Loop til data er modtaget i UART. 2. Send modtagne data tilbage til pc en som et acknowledge-signal. 3. Offset et i kommandotabellen beregnes ved at trække 61h fra kommandoen og nulstille alle bit på nær de 4 mindst betydende. Dette sikrer at TBLR ikke ved en fejl kan læse andre steder end i tabellens 16 rækker. 83

92 KAPITEL 7. DSP-FIRMWARE 4. Det beregnede offset adderes til kommandotabellens adresse og CALA instruktionen udføres hvorved den pågældende kommandorutine vil blive kaldt. 5. Efter udførsel af den givne kommandorutine returneres til punkt 1. Hermed kan de forskellige kommandorutiner kaldes fra pc-softwaren. Initialiseringsrutinen og kommandofortolkeren er implementeret i init.asm Interruptrutiner I firmwaren anvendes to interrupts: Cd-interrupt Genereres med en frekvens på Hz, synkroniseret med at en ny sample er klar fra cd-interfacet. Dette udnyttes til at trigge filtreringen, som derfor placeres i interrupthandleren for det pågældende interrupt. X-interrupt Genereres ligeledes med en frekvens på Hz når den serielle audio port har aflæst registeret DXR, og derfor er klar til at modtage et nyt word. Dette udnyttes til at generere et sinussignal i forbindelse med frekvensanalysen. Begge interrupts tilgår det serielle interface, der transporterer audiodata til og fra codec et. Codec et er konfigureret til at være master i denne kommunikation og genererer således synkroniseringspulser for hver sample. Den serielle port på DSP en kan imidlertid kun modtage 16 bit, hvorfor det er nødvendigt at køre i continuous mode. I continuous mode skal der kun én gang modtages en synkroniseringspuls, som synkroniserer indlæsningen af det første word. Herefter vil serielporten fortsætte med at modtage og afsende words uanset, om der kommer synkroniseringspulser eller ej. Dermed er det muligt at modtage data både for venstre og højre kanal. Interruptvectorer er sat op i filen vectors.asm og er dermed konfigureret i kildekoden. Ikke anvendte interruptvektorer kalder en handler, der returnerer med det samme. De to interruptrutiner er implementeret i assembler i hver deres fil, som er navngivet hhv. cdint.asm og xint.asm. Cd-interrupt Når der kommer data fra cd-interfacet generes et interrupt, og cd-interrupt rutinen kaldes. Først beskrives hvordan data placeres i hukommelsen, og herefter beskrives hvordan rutinen foretager filtreringen. Instruktioner til filtrering Ved beregning af produktsummer i forbindelse med filtrering, skal der udføres to funktioner - produktet skal beregnes, og summeringen skal foretages. For at beregne et produkt, skal registeret T loades med det ene af de to tal, der skal ganges sammen. Derefter skal selve produktet beregnes, hvorefter summationen kan foretages. Til beregning af produktsummer, er der følgende instruktioner: LT loader T-registeret med en værdi. (1 inst.) 84

93 7.2. IMPLEMENTATION AF FIRMWARE MPY multiplicerer T-registret med en værdi. Resultatet lægges i P-registeret. (1 inst.) LTA udfører samme funktion som LT, men foretager derudover en summation af akkumulatoren og P-registret med produktet fra sidste multiplikation. (1 inst.) LTD ud over de funktioner LTA udfører, flytter denne instruktion det dataord, der indlæses i T- registret, til den efterfølgende hukommelsesplads. Dvs. denne kan bruges til at udføre z 1. (1 inst.) MPYA udfører MPY samt summation af akkumulatoren og P-registret med produktet fra sidste multiplikation. (1 inst.) MAC er en instruktion, der både udfører en multiplikation og en summation. Dvs. den loader T- registret med en værdi, udfører en multiplikation, og summerer akkumulatoren og P-registret med produktet fra sidste multiplikation. Denne instruktion kan med fordel gentages med repeat funktionaliteten. (3+n inst.) MACD udfører MAC samt flytter det dataord, der indlæses i T-registret, til den efterfølgende hukommelsesplads. (3+n inst.) Der er to metoder til at implementere filtreringen. Enten laves hver enkelt multiplikation og addition i produktsummen manuelt med LTD og MPYA, eller også benyttes MACD sammen med repeat. For at kunne bruge MACD, skal der udføres 2 instruktioner for at opstarte gentagelsen af MACD. Først skal P-registeret nulstilles (1 inst.), og derefter skal repeat opstartes (1 inst.). Der kan kun filtreres én 2. ordens sektion af gangen, da outputtet af en sektion, skal bruges som input til den næste, dvs. at outputværdien skal gemmes to steder i hukommelsen. Der er 5 produkter i hver sektion, hvilket medfører at n bliver 5. I alt kræver MACD-løsningen = 10 instruktioner pr. filtersektion, udelukkende for at beregne produktsummen. Herudover kommer instruktioner til at gemme produktsummen i hukommelsen mv. Benyttes LTD og MPY, skal der bruges lige så mange instruktioner på, at udføre de 5 produktsummationer, og koden bliver længere, da repeat funktionen ikke kan benyttes. Som vist senere vil der kunne spares instruktioner ved at benytte LTD og MPY. Organisering af koefficienter og data i hukommelsen For at benytte delay funktionen LTD, som giver mulighed for at implementere z 1, skal de forsinkede værdier placeres på en ganske bestemt måde i hukommelsen. Ved delay kopieres værdien, der læses ind i T-registret, til den efterfølgende hukommelsesadresse. Derfor skal der altid startes med den ældste værdi, for at denne ikke overskrives, inden den skal bruges. Da delay flytter data til den efterfølgende adresse, skal den nyeste værdi ligge først i hukommelsen. Der skal både forsinkes input- og output-værdier, og det er valgt, at placere outputværdierne først. Der skal gemmes 5 værdier for hver filtersektion, og placeringen i hukommelsen er som følger: y[n 1] y[n 2] x[n] x[n 1] x[n 2] Værdierne for de efterfølgende filtersektioner skal placeres på tilsvarende vis. For effektivt at kunne benytte direkte adressering til disse værdier, skal værdierne for alle filtersektionerne ligge på samme side i hukommelsen, så sideskift under filtrering undgås. For at kunne nå at skifte til en ny filterbank mellem filtreringen af to samples, skal der bruges indirekte adressering, så det kun er en pointer til et sæt nye filterkoefficienter, der skal skiftes. 85

94 KAPITEL 7. DSP-FIRMWARE Denne metode kræver, at der reserveres plads i hukommelsen til 2 sæt filterkoefficienter, så der kan downloades til et hukommelsesområde, imens filterkoefficienterne, der ligger i det andet hukommelsesområde, benyttes til filtrering. For at kunne bruge indirekte adressering effektivt, skal koefficienterne ligge efter hinanden i den rækkefølge, de skal bruges således, at der ikke skal bruges ekstra instruktioner på at opdatere auxiliary registeret. Rækkefølgen skal stemme overens med rækkefølgen af de forsinkede værdier. Ved filtreringen startes med at filtrere inputværdier, hvilket medfører, at b-koefficienterne skal placeres først i hukommelsen. Den første inputværdi, der skal bruges, er x[n 2], så rækkefølgen for koefficienterne skal være: b 2 b 1 b 0 a 1 a 2 Koefficienterne for de efterfølgende filtersektioner skal ligge umiddelbart efter hinanden på tilsvarende vis. Da der benyttes indirekte adressering, er der ingen krav om, at koefficienterne ligger på samme side i hukommelsen. Filtreringsrutine Et flowdiagram over rutinen, der foretager filtreringen, kan ses på figur 7.2. S ta r t Gem kontekst I nd l ed end e op sæ tni ng i nd en f i l tr er i ng B I O l a v? F or eta g f i l tr er i ng ( H ø j r e ka na l ) N ej J a (h ø j re kanal) (venstre kanal) S end d a ta ti l c od ec F or eta g f i l tr er i ng ( V enstr e ka na l ) Genska b kontekst E na b le inter r u p ts og r etu r ner S top Figur 7.2: Flowdiagram over filtreringen af audiodata fra cd-interfacet. Når et cd-interrupt indtræffer sker følgende: 1. Den aktuelle kontekst gemmes. Det vil sige statusregisteret, akkumulatoren, P, AR3 og T gemmes. Alle registre, med undtagelse af T, gemmes på stacken, som først inkrementeres med én for at beskytte eventuelle rutiner der bruger toppen af stacken som midlertidig variabel. T gemmes direkte i intern RAM, da dette gør genskabningen af konteksten mere effektiv. 2. Shifteren efter P opsættes til at foretage et enkelt venstreskift, hvorved det ekstra signbit, der genereres ved multiplicering af to værdier med signbit, fjernes. Pointeren til den aktuelle filterbank indlæses i AR3. 86

95 7.2. IMPLEMENTATION AF FIRMWARE 3. Der undersøges om det er højre eller venstre kanal fra cd-interfacet der skal aflæses og der branches til den pågældende rutine. Dette afhænger af FSYNC signalet fra cd-interfacet som angiver om højre eller venstre kanal er klar til at blive aflæst. Dette signal er koblet på BIO benet, hvorved BIOZ-instruktionen kan bruges til at branche i det ene tilfælde, og fortsætte eksekveringen i det andet tilfælde. Er BIO lav branches til venstre kanal og er BIO høj fortsætter eksekveringen ved højre kanal. For at undgå yderligere branches, er resten af interruptrutinen implementeret dobbelt, således at højre kanal afvikles separat fra venstre kanal. 4. Data læses ind på inputpladsen (x[n]) i det første filter. Akkumulatoren nulstilles og indstilles til afrunding med instruktionen ZALR, der nulstiller akkumulatoren og sætter bit 15, svarende til en halv LSB. 5. Dataene filtreres gennem de fire filtere. Se beskrivelsen nedenfor. 6. Den filtrerede audiosample sendes til codec et. 7. Konteksten genskabes jvf. punkt Interrupts enables og der returneres. Hvert af de fire filtere implementerer overføringsfunktionen: H(z) = b 0 + b 1 z 1 + b 2 z 2 1 a 1 z 1 a 2 z 2 (7.1) Her bør det bemærkes at a 1 og a 2 produkterne trækkes fra i modsætning til overføringsfunktionen, der er beskrevet i kapitel 2 på side 9, hvor de lægges til. Dette skyldes, at LTD instruktionen ikke eksisterer i en udgave, der substraherer, så det er ikke muligt at lave en effektiv implementation af differensligningen fra samme kapitel. Denne omskrivning af overførselsfunktionen medfører, at der skal skiftes fortegn på a-koefficienterne, inden de downloades til DSP en. Differensligningen for formel 7.1 bliver: ( a1 ) y[n] = b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] y[n 1] + a 2 y[n 2] (7.2) Som det fremgår, er a 1 halveret og akkumuleres til gengæld to gange, jvf. afsnittet om skalering af koefficienter i afsnit på side 19. Nedenfor ses implementeringen af differensligningen, hvilket udgør et enkelt filter. P henviser til indholdet af P-registeret, T til indholdet af T-registeret og ACC til indholdet af akkumulatoren. NUL er en variabel, der er initialiseret til værdien 0. ZALR NUL ; Nulstil akkumulator med rounding LT X2R1 ; Load T med x[n -2] MPY *+ ; P=b2 * x[n -2] LTD X1R1 ; T=x[n -1], ACC = ACC +P, x[n -2]= x[n -1] MPY *+ ; P=b1 * x[n -1] LTD X0R1 ; T=x[n ], ACC = ACC +P, x[n -1]= x[n] MPY *+ ; ACC = ACC +P, P= b0 *x[n] LTA Y2R1 ; T=y[n -2] MPY *+ ; P=a2 * y[n -2] 87

96 KAPITEL 7. DSP-FIRMWARE LTD Y1R1 ; T=y[n -1], ACC = ACC +P, y[n -2]= y[n -1] MPY *+ ; P=a1 * y[n -1] LTA X2R2 ; T=x[n -2] ( næste filter ), ACC = ACC +P MPYA *+ ; ACC= ACC +P, P=b2 * x[n -2] ( næste filter ) SACH Y1R1 ; Gem i y[n -1] SACH X0R2 ; Gem i x[ n] til næste filter Som det fremgår, adresseres forsinkede værdier af input og output absolut med symbolerne X0R1, X1R1, X2R1, Y1R1, Y2R1, som repræsenterer hhv. x[n], x[n 1], x[n 2], y[n 1] og y[n 2] for det første filter for højre kanal. Koefficienter adresseres indirekte ved hjælp af AR3, som inkrementeres efterhånden som filterrutinen gennemløbes. De to næstsidste instruktioner foretager den første multiplicering i det efterfølgende filter, men begge instruktioner udfører, som en sidegevinst, en akkumulering af det forrige produkt, som repræsenterer a 1 y[n 1] for det aktuelle filter, der jvf. differensligningen skal akkumuleres to gange. Alternativt kunne der indsættes to APAC-instruktioner, men med denne teknik spares dette 1. I det sidste af de fire filtre bruges to APAC-instruktioner, da der her ikke efterfølger et filter. Denne kode er gentaget otte gange således, at der kan anvendes fire filtre efter hinanden både for højre og venstre kanal. Effektivitet af cd-interruptrutine Da interruptrutinen skal udføres gange i sekundet, er det nødvendigt at undersøge, hvor mange instruktioner der skal udføres, og hvor mange der er til rådighed. Med en eksekveringshastighed på 10,24 MIPS, er der kun 116 instruktioner til rådighed for interrupthandleren. I nedenstående tabel er forbruget af instruktioner opgjort: Handling Instruktioner Sæt continuos mode 1 Gem kontekst 13 Indlæsning af sample og branch 6/7 Filtrering af og 3. sektion 45 Filtrering af sidste sektion 12 Output til codec 5 Genskab kontekst 13 Return 4 I alt 99/100 Venstre kanal bruger en ekstra instruktion, da der branches i dette tilfælde. Der laves yderligere 2 branches fra vectortabellen i debugger/monitoren til vectortabellen i program RAM og derfra videre til cd-interruptet. Det tager i alt 6+3 instruktioner, hvilket bringer antallet af instruktioner for en stereosample op på 217. Dette bevirker, at den resterende processorkraft der er til rådighed 1 Det er denne instruktion, der spares, som gør LTD + MPY løsningen hurtigere end MACD. 88

97 7.2. IMPLEMENTATION AF FIRMWARE for kommandofortolkeren er reduceret til 10,24MIPS Hz = 0,6703 MIPS. Dette må dog antages at være mere end rigeligt. X-interrupt Formålet med denne rutine er at udsende en filtereret sinustone med en angivet frekvens i en angivet periode, efterfulgt af at en lydtryksmåling udtages. Dette anvendes som en del af frekvensanalysen. I sammenhæng med interruptrutinen er der defineret tre variabler til kontrol af rutinen: XRECDELAY En tæller som dekrementeres for hver stereosample der udsendes. Anvendes til at bestemme den periode signalet er udsendt i, således at lydtryksmålingen kan udtages når steady state er opnået. XSPL Resultatet af lydtryksmålingen. XINC Angiver det antal samples, der skal springes i cosinustabellen, hvorved frekvensen af den genererede sinustone kan angives. XTIME Repræsenterer tiden, og dermed argumentet til sinusgeneratoren. Da sinustonen skal filtreres gennem filtrene, er der ikke instruktioner til overs til at beregne sinus for hver enkelt sample. Derfor genereres der ved initialisering en cosinustabel på 8192 unikke tidspunkter af en enkelt periode. Denne tabel initialiseres i funktionen FillCosTab(), der er implementeret i C i filen costab.c. Da det samme signal skal udsendes til begge kanaler, er interruptrutinen opbygget således, at der kun i hvert andet gennemløb foretages en filtrering og skrivning til codec et. I de resterende gennemløb foretages opdatering af XTIME, og der skrives et nyt input til filtreringsrutinen. Den serielle port på DSP en vil for hvert andet gennemløb, hvor der ikke skrives en ny værdi til DXR, sende den forrige værdi, hvilket bevirker at der vil blive afspillet det samme i begge kanaler. Variablen CRL er en 1 bit tæller, der bruges til at afgøre, hvilket gennemløb der skal foretages. Et flowdiagram over interruptrutinen kan ses på figur 7.3 H 1 O P 8 / "!# $!%#'& ( ) * F 1 IJ 1 7 K ( &, ( & ( ) / 5 ( ( 7 6 L ( 95 3 GF AB # D<E # D>E 5 & * :<;>=?<@ +-, &.0/21 43 & ( 5 6 1, 7 8 /( 5 / / ( ) 1 & 8 ) ) / 8 ( 3 5 ( &, ( & 9 ( ) / 5 ( QB6 1 ) H>RJS 4T & ( ) F 1 O / M- 1 N & ( 5 3 / 8 ) 5 H 8 3 Rutinen forløber som følger: Figur 7.3: Flowdiagram over x-interrupthandleren. 89

98 KAPITEL 7. DSP-FIRMWARE 1. Konteksten gemmes på samme måde som i starten af cd-interruptet. Dette skal gøres på præcis samme måde, da der branches til cd-interruptrutinen for at foretage filtreringen, og denne vil afslutte med at genskabe konteksten. 2. Counteren CRL inkrementeres. 3. Er CRL lige branches til filtreringsalgoritmen i cd-interruptrutinen, hvor sinussignalet filtreres og derefter sendes til codec et. 4. Er CRL ulige aflæses amplituden af sinussignalet i cosinustabellen og det gemmes som input til filtreringsalgoritmen i næste gennemløb. 5. Hvis XRECDELAY er større end nul, dekrementeres den, og en lydtryksmåling indlæses fra codec et og gemmes i XSPL. 6. Kontekst genskabes. 7. Interrupts enables og der returneres. Det bemærkes at rutinen vil fortsætte med at generere, filtrere og afspille et sinussignal, indtil interruptet maskeres. Dog vil målingen af lydtrykket blive udtaget sidste gang når XRECDELAY når 1, og herefter ikke, da målingen kun udtages når XRECDELAY er større end nul. Dette betyder at der kan laves en flydende overgang mellem frekvenser i frekvensanalysen, idet interruptrutinen kontinuert afvikles. Ændres variablen XINC vil frekvensen af sinussignalet straks ændres tilsvarende, og sættes tillige en positiv værdi i XRECDELAY, vil der efter dette antal samples være en gyldig lydtryksmåling ved den valgte frekvens i XSPL. Herefter kan proceduren gentages, med en ny værdi i XINC og XRECDELAY. Det er denne fremgangsmåde der anvendes i kommandorutinen GETFRESPONSE, der beskrives i afsnit Kommandorutiner I det følgende beskrives implementationen af de kommandorutiner, der er defineret i protokollen, som er beskrevet i appendiks G. Alle kommandorutiner er implementeret i filen kommando.asm. Kun de tre kommandorutiner der anvendes af pc-softwaren er detaljeret beskrevet. SETFILTERBANK [61h] For at kunne foretage et flydende skifte mellem filterbanke skal filterkoefficienterne kunne opdateres fra pc en, mens filtreringen kører. Dette gøres ved at have to filterbanke, hvoraf den ene anvendes til filtreringen, mens den anden er fri til at blive opdateret. Når en ny filterbank skal downloades, opdateres den filterbank, der ikke er i brug, og først når alle koefficienter er downloadet, skiftes filterbanken ind som den aktive. Der opereres med tre pointere: KOEF1 peger på starten af filterbank 1. KOEF2 peger på starten af filterbank 2. 90

99 7.2. IMPLEMENTATION AF FIRMWARE ARVALUE peger på den aktive filterbank, enten KOEF1 eller KOEF2. Det er således ARVALUE, der skifter værdi, når en hel filterbank er downloadet. Det bevirker, at filtreringsrutinen i cd-interruptet anvender den nye filterbank. Den tidligere filterbank bliver således frigjort til at downloade det næste filter. Flowdiagram over kommandorutinen til at opdatere filterkoefficienterne kan ses på figur 7.4. K O E F 2 J a Start H v i l k e n K O E F x? W C O U N T i n i ti al i s e re s ti l 2 1 w o rd s D ata I U A R T? N e j G e m 1. b y te i ak k u m u l ato r K O E F 1 N e j W C O U N T = = 0? D e k re m e n te r W C O U N T G e m f i l te rk o e f f i c i e n te n i f ilte rb an k e n G e m 2. b y te i ak k u m u l ato r J a D ata I U A R T? N e j J a N e j F o re tag h an d s h ak e m e d p c L y k k e d e s h an d s h ak e? J a U d s k i f t ak ti v f i l te rb an k R e tu rn e r ti l k o m m an d o - f o rto l k e r Figur 7.4: Flowdiagram over opdateringen af filterkoefficienterne i filterbanken. Rutinen forløber som følger: 1. Først undersøges hvilken af de to filterbanker KOEF1 og KOEF2 der er i brug og den ledige vælges. 2. Modtag 21 words med filterkoefficienter, som specificeret i protokollen. 3. Foretag handshake med pc. Dette sikrer at der virkelig er tale om et forsøg på at downloade en filterbank, og at alle data er modtaget. 4. Mislykkedes handshake returneres til kommandofortolkeren, uden at indsætte den nye filterbank. 5. Lykkedes handshake, indsættes de nye filterkoefficienter ved at ændre på ARVALUE, hvorefter der returneres til kommandofortolkeren. GETSPL [62h] Lydtrykket måles ved hjælp af lydtryksmåleren og samples af codec et. Under initialisering sættes codec et op til at sample på de to indgange, der er forbundet til lydtryksmåleren. Dette bevirker, at i serielportens inputregister, DRR, vil den seneste lydtryksmåling til enhver tid befinde sig. Kommandorutinen skal derfor aflæse DRR og overføre værdien til pc en. Dette sker som vist på figur 7.5 på den følgende side. Målingen af lydtryk forløber som følger: 91

100 KAPITEL 7. DSP-FIRMWARE J a Start L y d try k s m å l i n g f ra c o d e c g e m m e s I ak k u m u l ato re n U A R T k l ar? L SB af l y d try k s e n d e s N e j J a I n d l æ s g ai n I ak k u m u l ato re n M SB af l y d try k s e n d e s U A R T k l ar? N e j U A R T k l ar? J a Se n d g ai n ti l P C R e tu rn e r ti l k o m m an d o - f o rto l k e re n Sto p N e j Figur 7.5: Flowdiagram over måling af lydtrykket 1. Lydtrykket aflæses fra DRR og lægges ind i akkumulatoren. 2. LSB af lydtrykket sendes til pc en. 3. MSB af lydtrykket sendes til pc en. 4. Det indstillede gain for line-receiveren indlæses i akkumulatoren. 5. Line-receiver gain sendes til pc en. 6. Til sidst returneres til kommandofortolkeren. GETFRESPONSE [63h] Når der skal foretages en frekvensanalyse, anvendes x-interrupt til at generere, filtrere og afspille et sinussignal, som gradvist inkrementeres i frekvens efterhånden som analysen forløber. Denne interruptrutine er beskrevet i afsnit Kommandorutinen starter med at modtage antallet af punkter per oktav, der ønskes analyseret, jvf. protokollen. Ud fra dette beregnes de forskellige værdier af XINC, som svarer til disse frekvenser og værdierne tabellægges. Dermed kan analysen forløbe hurtigere, da XINC ikke skal beregnes for hver enkelt frekvens under analysen. Dette udføres af funktionen FillXINCTAB(), der er implementeret i analyse.c. Selve løkken, der udfører frekvensanalysen, styres af variablen AnalyseCount, der inden løkken påbegyndes initialiseres til antallet af frekvenser der skal analyseres. Dette beregnes som 10R + 1, hvor R er antallet af punkter per oktav. I starten af hvert gennemløb sættes XINC til den tilsvarende værdi fra den forudberegnede tabel, hvorved sinussignalet skifter til den frekvens der skal analyseres. Herefter sættes en fast værdi i XRECDELAY. Denne værdi angiver antallet af samples, der skal afspilles før lydtryksmålingen og 92

101 7.2. IMPLEMENTATION AF FIRMWARE beregnes ud fra afstanden mellem højttalerne og mikrofonenheden samt rms-målerens integrationstid, idet systemet skal nå steadystate inden målingen udtages. Disse 2 funktioner foretages af funktionen InitXINC(), der er implementeret i analyse.c. Herefter ventes til XRECDELAY dekrementeres til 0 af x-interruptrutinen, hvilket indikerer at systemet har nået steady state, og at målingen i XSPL er gyldig. Resultatet af denne måling undersøges af funktionen CheckSPL(), der er implementeret i analyse.c. Denne funktion undersøger om resultatet ligger indenfor en nedre og øvre værdi. Hvis dette ikke er tilfældet justeres gain på line-receiveren og analysen ved denne frekvens gentages. Er målingen acceptabel, sendes den til pc en, og AnalyseCount inkrementeres, hvorefter løkken starter forfra. Når AnalyseCount når nul, er analysen tilendebragt, og der returneres til kommandofortolkeren. Flowdiagrammet for GETFRESPONSE kan ses på figur 7.6. U V WX V Y[ZG\V W]_^ `$Wa\bdcWedfg W i"jk bdv l knm oprqst m ^ s uo pdq s Z] u ^v w x yz{ G} u~ x J ƒ G ^ƒ Z]J\l bdw k f[ˆd\ l av fx X j hv af U V Zh Š W k \Œ z z m pnž u o w ƒ Z][faWG k f[ d l av fx X j hgv W k f <]Wl a edzx X l ]fx fv g Š W k \ uœ } ž Ÿ v W m ^ su s v w g af WV W[ld -š" g fx f]a m prž u Z] m ^ su s v w af af W U fa\j [ k l a][v l k hˆ fedx f JfGaV fx w xy z { } u ~ x af w xy z { } u ~ x _ g W l bdw k f[ r l av fx X j hv faw k f[ˆd\ l av fgx X j hv U V Zh Figur 7.6: Flowdiagram over GETFRESPONSE. Målingen af frekvenskarakteristikken forløber som følgende: 1. Modtag R, som angiver, hvor mange målinger der skal foretages mellem hver oktav. 2. AnalyseCount angiver antal af analyser, der skal gennemløbes, og den sættes lig med 10 R + 1, da der er 10 dekader fra 20 Hz til Hz. 3. Disable cd-interrupt og kald FillXINCTAB(), der fylder XINCTAB[] 4. Enable x-interrupt, og beregn XINC og XRECDELAY. 5. Afspil sinus med den frekvens, der er nået til. 6. Undersøg om amplitude af indkommende signal er indenfor grænser. Ellers reguler linereceiver gain og gå til punkt 5. 93

102 KAPITEL 7. DSP-FIRMWARE 7. Send måling til pc og dekrementer AnalyseCount. 8. Undersøg om AnalyseCount er lig med nul. Ellers gå til punkt 5. Resterende kommandoer De resterende kommandoer omfatter: ONLINE [64h], SETGAIN [65h], GETGAIN [66h], SETLEDON [67h], SETLEDOFF [68h], SETCODECCONF [69h], GETCODECCONF [6Ah] og GETCODECSTATUS [6Bh]. Funktionen af disse er defineret i beskrivelsen af protokollen i appendiks G. De udfører simple funktioner, som primært er anvendt til udvikling og test af firmwaren, og der henvises til kildekoden, der er rigt kommenteret for en nærmere beskrivelse af implementationen. 7.3 Test og verificering af firmware Firmwaren er blevet testet løbende under udvikling og ofte i samspil med målinger på hardwaren. Herudover er der udviklet et testprogram i C#, med hvilket det er muligt at udføre de kommandoer, der er defineret i protokollen, og samtidigt inspicere datakommunikationen, idet alle bytes, der transmitteres udlæses på skærmen. Ved at bruge dette program, er det blevet verificeret, at firmwaren fungerer som forventet. Yderligere test af firmwaren er foretaget i samspil med resten af systemet i den samlede acceptest, som kan ses i appendiks P. Testprogrammet kan findes på den vedlagte cd [Cd, software/testdsp]. 94

103 KAPITEL Test af parametrisk equalizer 8 Efter design og konstruering af den parametriske equalizer er der foretaget en accepttest for at eftervise, at equalizeren fungerer efter hensigten. Testen verificerer, at samspillet mellem DSPfirmwaren, pc-softwaren og hardwaren fungerer. Accepttesten kan ses i appendiks P. Dette kapitel opsummerer de vigtigste resultater af accepttesten. For at teste filterene i den parametriske equalizer er der på brugerfladen indstillet et bestemt filter, og derefter er filterkarakteristikken blevet målt. For at sammenligne det målte filter med det indstillede filter, er der taget et screen shot af brugerfladen. Den målte frekvenskarakteristik kan ses på figur 8.1, og screen shot af brugerfladen kan ses på figur db 20 db 10 db 0 db -10 db -20 db Figur 8.1: Målt frekvenskarakteristik for filtersammensætning af lowshelf-, peak- og highshelffilter. 95

104 KAPITEL 8. TEST AF PARAMETRISK EQUALIZER Figur 8.2: Screen shot fra brugerfladen af teoretisk frekvenskarakteristik for filtersammensætning af lowshelf-, peak- og highshelffilter. Ud fra figurerne kan ses, at den målte filterkarakteristik stemmer overens med den indstillede. Tilsvarende er gjort for et andet filter med acceptabelt resultat. Lydtryksmåleren i equalizeren er testet og sammenlignet med en referencelydtryksmåler. Der blev målt lydtryk indenfor db. Resultaterne af lydtryksmålingerne er vist i tabel 8.1. Reference SPL Equalizer SPL Difference 60,0 db 60,6 db 0,6 db 65,1 db 65,4 db 0,3 db 70,5 db 70,1 db -0,4 db 75,0 db 74,8 db -0,2 db 80,1 db 79,7 db -0,4 db Tabel 8.1: Målte lydtryk sammenlignet med referencelydtryksmåler. Resultatet viser, at der er en afvigelse mellem 0,2 db og 0,6 db, hvilket er acceptabelt. Der er udført en frekvenskarakteristikanalyse af audiosystemet, hvor samtlige filtere er nulstillet, og resultatet kan ses på figur 8.3. Derefter er det equalizerede audiosystem målt, hvor der blev indstillet filtere for at kompensere for rummet og højttalerne. Dette er vist på figur 8.4. Figur 8.3: Frekvenskarakteristik for audiosystemet. 96

105 Figur 8.4: Frekvenskarakteristik for det equalizerede audiosystem. 97

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre.

Øvelsesvejledning. Frekvenskarakteristikker Simulering og realisering af passive filtre. ELT2, Passive filter, frekvenskarakteristikker Øvelsesvejledning Frekvenskarakteristikker Simulering og realisering af passive filtre. Øvelsen består af 3 dele: 1. En beregningsdel som du forventes at

Læs mere

3 Overføringsfunktion

3 Overføringsfunktion 1 3 Overføringsfunktion 3.1 Overføringsfunktion For et system som vist på figur 3.1 er overføringsfunktionen givet ved: Y (s) =H(s) X(s) [;] (3.1) Y (s) X(s) = H(s) [;] (3.2) Y (s) er den Laplacetransformerede

Læs mere

Hi-Fi forstærker med digital styring

Hi-Fi forstærker med digital styring Hi-Fi forstærker med digital styring POWER VOLUME VÆLGER BAS DISKANT MUTE OP NED MUTE Klass #39 P3 PROJEKT 008 GRUPPE 39 INSTITUT FOR ELEKTRONISKE SYSTEMER AALBORG UNIVERSITET DEN. 7 DECEMBER 008 Titel:

Læs mere

Prøveeksamen nr. 2: Signalbehandling og matematik

Prøveeksamen nr. 2: Signalbehandling og matematik Prøveeksamen nr. 2: Signalbehandling og matematik 2008 Opgave. (5%) Input-output relation er for et LTI system er 2 3.a. Er systemet kausalt? Nej, y er afhængigt af fremtidige værdier af x, altså x[n+]

Læs mere

PC-baseret analyzer og equalizer

PC-baseret analyzer og equalizer 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

Læs mere

Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer)

Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer) Signalbehandling og matematik 1 (Tidsdiskrete signaler og systemer) Session 1. Sekvenser, diskrete systemer, Lineære systemer, foldning og lineære tidsinvariante systemer Ved Samuel Schmidt sschmidt@hst.aau.dk

Læs mere

Eksamen i Signalbehandling og matematik

Eksamen i Signalbehandling og matematik Opgave. (%).a. Figur og afbilleder et diskret tid signal [n ] og dets DTFT. [n] bruges som input til et LTI filter med en frekvens amplitude respons som vist på figur. Hvilket af de 4 output signaler (y

Læs mere

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004

4. Semesterprojekt System Arkitektur. MyP3000 I4PRJ4 E2004 Ingeniørhøjskolen i Århus 20. december 2004 IKT Dalgas Avenue 2 8000 Århus C 4. Semesterprojekt System Arkitektur MyP3000 I4PRJ4 E2004 Gruppe 4: Benjamin Sørensen, 02284 Tomas Stæhr Berg, 03539 Nikki Ashton,

Læs mere

Lydtryk fra mobiltelefoner

Lydtryk fra mobiltelefoner DELTA Acoustics & Vibration Technical Audiological Laboratory -TAL We help ideas meet the real world Lydtryk fra mobiltelefoner Findes der mobiltelefoner der kan levere lydtryk kraftige nok til, at de

Læs mere

Testsignaler til kontrol af en målekæde

Testsignaler til kontrol af en målekæde 20. marts 2007 RL 12/07 OFC/THP/CB/lm MILJØSTYRELSENS Testsignaler til kontrol af en målekæde Resumé Der er udarbejdet testsignaler, som gør det muligt at kontrollere en samlet målekæde. Testsignalerne,

Læs mere

Total systembeskrivelse af AD1847

Total systembeskrivelse af AD1847 Total systembeskrivelse af AD1847 Af Anna Hampen Jens Jørgen Nielsen Johannes Bjerrum Johnny Nielsen 3.semester HIH Anna Hampen, Jens Nielsen, Johannes Bjerrum, Johnny Nielsen 1 Indholdsfortegnelse Indledning...3

Læs mere

wwwdk Digital lydredigering på computeren grundlæggende begreber

wwwdk Digital lydredigering på computeren grundlæggende begreber wwwdk Digital lydredigering på computeren grundlæggende begreber Indhold Digital lydredigering på computeren grundlæggende begreber... 1 Indhold... 2 Lyd er trykforandringer i luftens molekyler... 3 Frekvens,

Læs mere

C R. Figur 1 Figur 2. er eksempler på kredsløbsfunktioner. Derimod er f.eks. indgangsimpedansen

C R. Figur 1 Figur 2. er eksempler på kredsløbsfunktioner. Derimod er f.eks. indgangsimpedansen Kredsløbsfunktioner Lad os i det følgende betragte kredsløb, der er i hvile til t = 0. Det vil sige, at alle selvinduktionsstrømme og alle kondensatorspændinger er nul til t = 0. I de Laplace-transformerede

Læs mere

2. De 7 signaler skal kodes til en 3-bit kode. Enkodningen skal prioriteres som beskrevet i afsnit?? på side??.

2. De 7 signaler skal kodes til en 3-bit kode. Enkodningen skal prioriteres som beskrevet i afsnit?? på side??. 01 FORUDSÆTNINGER 01 Forudsætninger Dette kapitel tager udgangspunkt i processerne beskrevet i afsnit?? på side?? Hver enkelt proces tildeles et afsnit, hvorunder det beskrives hvilke hardware moduler,

Læs mere

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

Signalbehandling 1. Compressorer, gates, digitale filtre. Litteratur: Roads s. 390-418 Signalbehandling 1 Compressorer, gates, digitale filtre Litteratur: Roads s. 390-418 Envelopes Tidsvariant forstærkning/dæmpning Mange formål Syntese Overlap (FFT) Klip Musikalsk virkemiddel Compressor

Læs mere

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet

Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet Institut for elektroniske systemer TITEL: Digital Diktafon PROJEKTPERIODE: 4. semester 4. februar - 30. maj, 2002 PROJEKTGRUPPE: Gr419-2002

Læs mere

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

Notat vedrørende projektet EFP06 Lavfrekvent støj fra store vindmøller Kvantificering af støjen og vurdering af genevirkningen Notat vedrørende projektet EFP6 Lavfrekvent støj fra store vindmøller Kvantificering af støjen og vurdering af genevirkningen Baggrund Et af projektets grundelementer er, at der skal foretages en subjektiv

Læs mere

Halsslynger. Tekniske målinger af halsslyngers kvalitet

Halsslynger. Tekniske målinger af halsslyngers kvalitet Halsslynger Tekniske målinger af halsslyngers kvalitet Side 2 af 21 Indhold 1. Forord... 3 2. Målinger... 3. Beskrivelse af halsslynger... 3.1 HearIt Mobile... 3.2 HearIt all... 3.2.1 Base enheden... 3.2.2

Læs mere

DSP Digitale signal behandling Lkaa

DSP Digitale signal behandling Lkaa DSP Digitale signal behandling 213 Lkaa Ugens progam Mandag Tirsdag Onsdag Torsdag Fredag Digitale signaler FFT Filter Ålborg Flyvevåbnet R&S Ålborg FPGA og DSP samt rundvisni ng Filter signal FIR filter

Læs mere

Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen

Sampling. Reguleringsteknik for Grundfos Lektion 6. Jan Bendtsen Sampling Reguleringsteknik for Grundfos Lektion 6 Jan Bendtsen Indhold Basal sampling A/D-konvertering Nyquist-frekvens Kvantisering Aliasing Feedbacksystemer Eksempel: servokontrol af motor Strøm til

Læs mere

Sampling og aliasing. Datalogisk Institut Københavns Universitet. Kapitel 4 c Jens D. Andersen

Sampling og aliasing. Datalogisk Institut Københavns Universitet. Kapitel 4 c Jens D. Andersen Sampling og aliasing (Kapitel 4) Jens D. Andersen Datalogisk Institut Københavns Universitet p.1/32 Sampling og aliasing Konvertering af signaler mellem analog (kontinuerttids-) og digital (diskrettids-)

Læs mere

Projekt. Analog Effektforstærker.

Projekt. Analog Effektforstærker. Projekt. Analog Effektforstærker. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It og Elektronikteknolog. Erhvervsakademiet Fyn Udarbejdet i perioden: 7/0-03 /-03 Vejledere:

Læs mere

Indhold. Figur 1: Blokdiagram over regulatorprincip

Indhold. Figur 1: Blokdiagram over regulatorprincip Indhold.1 Beskrivelse af regulatorer............................. 2.2 Krav til regulator................................. 2.2.1 Integrator anti-windup.......................... 4.3 Overføringsfunktion

Læs mere

Equalisering af højttalere og lytterum. Diplomprojekt. Kasper Mikkelsen. September 2007 - Januar 2008. Vejleder: Per Rubak

Equalisering af højttalere og lytterum. Diplomprojekt. Kasper Mikkelsen. September 2007 - Januar 2008. Vejleder: Per Rubak Equalisering af højttalere og lytterum Diplomprojekt af Kasper Mikkelsen September 2007 - Januar 2008 Vejleder: Per Rubak Aalborg Universitet Institut for elektroniske systemer Indhold 1 Indledning 5 1.1

Læs mere

Piano Tuning & String Analyzing Tool

Piano Tuning & String Analyzing Tool Piano Tuning & String Analyzing Tool Læs mig indeholder oplysninger om bedst brug af sitet samt oplysninger om Piano Tuning & String Analyzing Tool, operativsystemer og lydkort. Programmet vil herefter

Læs mere

Indhold. Figur 1: Blokdiagram over regulatorprincip

Indhold. Figur 1: Blokdiagram over regulatorprincip m M Indhold.1 Beskrivelse af regulatorer............................. 2.2 Krav til regulator................................. 2.3 Overføringsfunktion for det samlede system................... 4.3.1 Rodkurveundersøgelse..........................

Læs mere

Spektrumrepræsentation

Spektrumrepræsentation Spektrumrepræsentation (Kapitel 3) Jens D. Andersen Datalogisk Institut Københavns Universitet p.1/35 $ $ $ Spektrumrepræsentation Matematisk repræsentation af en sinusoide: hvor "! er en fasor. Mere komplicerede

Læs mere

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % A.1 Afladning af kondensator Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % Når knappen har været aktiveret, ønskes lys i D1 i 30 sekunder. Brug formlen U C U start e t RC Beskriv kredsløbet Find komponenter.

Læs mere

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002.

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002. Temperaturmåler Klaus Jørgensen Klaus Jørgensen & Ole Rud Odense Tekniskskole Allegade 79 Odense C 5000 28/10 2002 Vejleder: PSS Forord.: Denne rapport omhandler et forsøg hvor der skal opbygges et apparat,

Læs mere

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

Projektopgave Observationer af stjerneskælv

Projektopgave Observationer af stjerneskælv Projektopgave Observationer af stjerneskælv Af: Mathias Brønd Christensen (20073504), Kristian Jerslev (20072494), Kristian Mads Egeris Nielsen (20072868) Indhold Formål...3 Teori...3 Hvorfor opstår der

Læs mere

Music hall AV 2.1 Dansk kvik guide. Findes i sort eller silver. Begge med kraftig børstet aluminiumsfront

Music hall AV 2.1 Dansk kvik guide. Findes i sort eller silver. Begge med kraftig børstet aluminiumsfront Music hall AV 2.1 Dansk kvik guide Findes i sort eller silver. Begge med kraftig børstet aluminiumsfront 1 Medier & introduktion: Tillykke med dit nye music hall anlæg. Med AV2.1 har du let adgang til

Læs mere

Vores logaritmiske sanser

Vores logaritmiske sanser 1 Biomat I: Biologiske eksempler Vores logaritmiske sanser Magnus Wahlberg og Meike Linnenschmidt, Fjord&Bælt og SDU Mandag 6 december kl 14-16, U26 Hvad er logaritmer? Hvis y = a x så er x = log a y Nogle

Læs mere

Elevforsøg i 10. klasse Lyd

Elevforsøg i 10. klasse Lyd Fysik/kemi Viborg private Realskole Elevforsøg i 10. klasse Lyd Lydbølger og interferens SIDE 2 1062 At påvise fænomenet interferens At demonstrere interferens med to højttalere Teori Interferens: Det

Læs mere

Aalborg Universitet. Analog HiFi forstærker med digital styring

Aalborg Universitet. Analog HiFi forstærker med digital styring Aalborg Universitet Analog HiFi forstærker med digital styring Birnir S. Gunnlaugsson Mark Jespersen Michael S. Pedersen Morten K. Rævdal Thomas F. Pedersen Tredje semester, Gruppe 310 Efteråret 2009 Reproduktion

Læs mere

Beregninger på digitale signaler

Beregninger på digitale signaler KAPITEL NI Beregninger på digitale signaler Et digitalt signals værdier kunne repræsenteres ved tal med et endeligt antal cifre (med endelig præcision ). Dette krav er en naturlig følge af, at digital

Læs mere

Soolai BRUGERVEJLEDNING SPL-32R / SPL-32T

Soolai BRUGERVEJLEDNING SPL-32R / SPL-32T Soolai DK BRUGERVEJLEDNING SPL-32R / SPL-32T Indholdsfortegnelse Tillykke købet af din Soolai SPL-32R / SPL-32T!... 4 Specifikationer... 4 Trådløs modtager SPL-32R funktioner... 5 SPL-32R betjeningsvejledning...

Læs mere

ORIENTERING FRA MILJØSTYRELSENS REFERENCELABORATORIUM FOR STØJMÅLINGER

ORIENTERING FRA MILJØSTYRELSENS REFERENCELABORATORIUM FOR STØJMÅLINGER ORIENTERING FRA MILJØSTYRELSENS MÅLEUDSTYR HOS DE GODKENDTE LABORATORIER Orientering nr. 3 Ole F. Carlsen/Torben Holm Pedersen 2-7-19 OVERSIGT OVER MÅLEUDSTYR LYDTRYKMÅLING FFT-ANALYSE BÅNDOPTAGELSE OKTAVANALYSE

Læs mere

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

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Skriftlig prøve i KDS

Skriftlig prøve i KDS Kredsløbsteori & dynamiske systemer for EIT2/16 Opgavesæt 02 160728HEb Kredsløbsteori & dynamiske systemer Skriftlig prøve i KDS Omprøve d. 16. august 2016 kl. 09.00-13.00. Ved bedømmelsen vægtes de 4

Læs mere

Anvendelse af den diskrete fouriertransformation

Anvendelse af den diskrete fouriertransformation KAPITEL SYV Anvendelse af den diskrete fouriertransformation En meget anvendt beregningsprocedure inden for digital signalbehandling er den diskrete fouriertransformation (i det følgende forkortet til

Læs mere

860w 1060w 1062w 1260w 1262w

860w 1060w 1062w 1260w 1262w DEUTSCH ENGLISH R E F E R E N C E 860w 1060w 1062w 1260w 1262w PORTUGUÊS DANSK SVENSK ITALIANO NEDERLANDS ESPAÑOL FRANÇAIS SUOMI Русский POLSKI R E F E R E N C E Tak fordi du valgte en Infinity Reference

Læs mere

Dialog om tidlig indsats Udveksling af oplysninger i det tværfaglige SSD-samarbejde og fagpersoners underretningspligt

Dialog om tidlig indsats Udveksling af oplysninger i det tværfaglige SSD-samarbejde og fagpersoners underretningspligt Dialog om tidlig indsats Udveksling af oplysninger i det tværfaglige SSD-samarbejde og fagpersoners underretningspligt Servicestyrelsen Edisonsvej 18 5000 Odense C Tlf.: +45 72 42 37 00 Fax: +45 72 42

Læs mere

HAC telefon testrapport

HAC telefon testrapport DELTA Acoustics & Vibration Technical Audiological Laboratory -TAL We help ideas meet the real world HAC telefon testrapport Akustiske og magnetiske målinger på output fra forskellige telefoner December

Læs mere

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007

Frekvensbestemmelse. HWP I1 Kursusarbejde Forår 2007 HWP I1 Kursusarbejde Forår 2007 Søren Riis, 3024 Vitus Bering Danmark 31 05 2007 University College Vitus Bering Danmark Teknologi og Managementdivisionen Titel: Frekvensbestemmelse Tema: Hardwareprogrammering

Læs mere

De fleste kender den typiske RIAA forstærkers frekvensgang(rød). Her er også vist dens fasegang (grøn). (simuleret)

De fleste kender den typiske RIAA forstærkers frekvensgang(rød). Her er også vist dens fasegang (grøn). (simuleret) Fasedrejning og dens betydning for lyden Hvad er fasedrejning? Hvis vi lige starter med den hardcore teori, så er fasedrejning en forskydning af strøm i forhold til spænding. Det opstår i spoler og kondensatorer,

Læs mere

Design og udvikling af et blodtryks ma lesystem

Design og udvikling af et blodtryks ma lesystem Design og udvikling af et blodtryks ma lesystem 3. semesterprojekt side 1 af 5 Design og udvikling af et blodtryks målesystem Problemformulering I daglig klinisk praksis er der ofte behov for kontinuert

Læs mere

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1 Københavns Universitet, Det naturvidenskabelige Fakultet 1 Lineær Algebra (LinAlg) Afleveringsopgave 1 Eventuelle besvarelser laves i grupper af - 3 personer og afleveres i to eksemplarer med 3 udfyldte

Læs mere

EMSD 7 Gr. 15 Aalborg Universitet

EMSD 7 Gr. 15 Aalborg Universitet Elektro Mekanisk System Design EMSD 7 Gr. 15 Aalborg Universitet Institut for EnergiTeknik Pontoppidanstræde 101, 9220 Aalborg Øst Det Teknisk-Naturvidenskabelige Fakultet Aalborg Universitet M-sektoren

Læs mere

Medicinsk billeddannelse

Medicinsk billeddannelse Medicinsk billeddannelse Introduktion Billedtyper - Opgaver Billedegenskaber Billedbehandling Lars Møller Albrecht Lars.moeller.albrecht@mt.regionsyddanmark.dk Billedtyper Analog f.eks. billeder, malerier,

Læs mere

Analyse af koncertlyd baseret på en digital signalprocessor. 6. semesters bachelorprojekt Elektronik & IT, Aalborg Universitet Foråret 2012

Analyse af koncertlyd baseret på en digital signalprocessor. 6. semesters bachelorprojekt Elektronik & IT, Aalborg Universitet Foråret 2012 Analyse af koncertlyd baseret på en digital signalprocessor 6. semesters bachelorprojekt Elektronik & IT, Aalborg Universitet Foråret 2012 Institut for Elektroniske Systemer Elektronik og IT Fredrik Bajers

Læs mere

LH-CD6(P) tykkelsessmåling

LH-CD6(P) tykkelsessmåling SUNX LH-50 serien Quickguide LH-CD6(P) tykkelsessmåling Tak fordi du har valgt SUNX. Denne quickguide er designet som hjælp til førstegangsbrugeren. Denne vejledning koncentrerer sig om brugere, der skal

Læs mere

Det Teknisk Naturvidenskabelige Fakultet

Det Teknisk Naturvidenskabelige Fakultet Det Teknisk Naturvidenskabelige Fakultet Aalborg Universitet Titel: Virkelighedens teori eller teoriens virkelighed? Tema: Analyse og design af bærende konstruktioner Synopsis: Projektperiode: B7 2. september

Læs mere

IP Telefoni II. IP Telefoni introduktion II. TDC IP telefoni Scale

IP Telefoni II. IP Telefoni introduktion II. TDC IP telefoni Scale IP Telefoni II IP Telefoni introduktion II TDC IP telefoni Scale Digital kodning af lyd til telefoni med PCM. Digitalisering sker igennem 3 faser: Sampling Kvatisering Comprimering/codning Sampling PCM

Læs mere

Foreløbig udgave af læringsmål til: Kapitel 1 Regn med store tal Fælles Mål Læringsmål Forslag til tegn på læring

Foreløbig udgave af læringsmål til: Kapitel 1 Regn med store tal Fælles Mål Læringsmål Forslag til tegn på læring Foreløbig udgave af læringsmål til: Kapitel 1 Regn med store tal Fælles Mål Læringsmål Forslag til tegn på læring udføre beregninger med de fire regningsarter inden for naturlige tal, herunder beregninger

Læs mere

SPEED-Commander Frekvensomformer. Program nr. 1 Software version 5.0.3. PI-regulering

SPEED-Commander Frekvensomformer. Program nr. 1 Software version 5.0.3. PI-regulering SPEED-Commander Frekvensomformer Driftsvejledning Bemærk: Speciel Software Program nr. 1 Software version 5.0.3 PI-regulering Til parameterliste og tilslutninger af styreklemmer anvendes vedhæftede programbeskrivelse.

Læs mere

2/3 Akset digital tæller

2/3 Akset digital tæller SERIE Z59E 2/3 Akset digital tæller for Elgo Magnetisk målebånd og / eller Encoder ELGO - ELECTRIC Gerätebau und Steuerungstechnik GMBH D - 78239 Rielasingen, Postfach 11 30, Carl - Benz - Strafle 1 Telefon

Læs mere

LYDOPTAGER ROLAND R-05

LYDOPTAGER ROLAND R-05 INTRODUKTION TIL LYDOPTAGER ROLAND R-05 Rolands R-05 er en lille lydoptager, der nemt kan ligge i tasken. Den har indbygget mikrofon men også mulighed for tilslutning af en ordentlig interviewmikrofon,

Læs mere

Erhvervsakademiet Fyn Signalbehandling Aktivt lavpas filter Chebyshev Filter

Erhvervsakademiet Fyn Signalbehandling Aktivt lavpas filter Chebyshev Filter Erhvervsaademiet Fyn Signalbehandling Ativt lavpas filter --3 Chebyshev Filter Udarbejdet af: Klaus Jørgensen & Morten From Jacobsen. It- og Eletronitenolog, Erhvervsaademiet Fyn Udarbejdet i perioden:

Læs mere

8GYLNOLQJHQ L WLOVNXGGHQH WLO (8' Sn ILQDQVORYHQ RJ IUHPWLGHQV Y

8GYLNOLQJHQ L WLOVNXGGHQH WLO (8' Sn ILQDQVORYHQ RJ IUHPWLGHQV Y b Z V W / * 4/ 1 Sagsnr. 6-1 Ref. les Den. juni 7 Beregningerne bag notatet: 8GYLNOLQJHQ L WLOVNXGGHQH WLO (8' Sn ILQDQVORYHQ RJ IUHPWLGHQV NUDYWLO(8' 6 7 8 9 : ; < = >? @ : A 7 B > 7 > 8 B C 7 D B E 9?

Læs mere

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

Filtre. Passive filtre har ikke forstærkende led, som fx operationsforstærkere. 8/5 Filtre bruges til at fremhæve eller dæmpe nogle frekvenser. Dvs. man kan fx få kraftigere diskant, fremhæve lave toner Passive filtre Passive filtre har ikke forstærkende led, som fx operationsforstærkere.

Læs mere

Dæmpet harmonisk oscillator

Dæmpet harmonisk oscillator FY01 Obligatorisk laboratorieøvelse Dæmpet harmonisk oscillator Hold E: Hold: D1 Jacob Christiansen Afleveringsdato: 4. april 003 Morten Olesen Andreas Lyder Indholdsfortegnelse Indholdsfortegnelse 1 Formål...3

Læs mere

Mellem mennesker Ny Prisma Fysik og kemi 9 - kapitel 9 Skole: Navn: Klasse:

Mellem mennesker Ny Prisma Fysik og kemi 9 - kapitel 9 Skole: Navn: Klasse: Mellem mennesker Ny Prisma Fysik og kemi 9 - kapitel 9 Skole: Navn: Klasse: Opgave 1 Hvilke egenskaber gælder ikke for radiobølger? Der er 5 svarmuligheder. Sæt et kryds. De kan reflekteres, når de rammer

Læs mere

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB

BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB BÆRBAR DVD-AFSPILLER BETJENINGSVEJLEDNING MTW-756 TWIN NB www.facebook.com/denverelectronics Læs venligst denne betjeningsvejledning omhyggeligt, før du tilslutter, betjener eller justerer denne afspiller.

Læs mere

Ren versus ligesvævende stemning

Ren versus ligesvævende stemning Ren versus ligesvævende 1. Toner, frekvenser, overtoner og intervaller En oktav består af 12 halvtoner. Til hver tone er knyttet en frekvens. Kammertonen A4 defineres f.eks. til at have frekvensen 440

Læs mere

Skriftlig omprøve i matematik 4

Skriftlig omprøve i matematik 4 Matematik 4 for E4+D4/08 Opgavesæt 04 080812HEb Skriftlig omprøve i matematik 4 Omprøve d. 18. august 2008 kl. 09.00-13.00. Ved bedømmelsen vægtes de 6 opgaver således: Opgave 1: 20% (Kompleks funktionsteori

Læs mere

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob

Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Fag: Projekt E1PRJ1 Emne: Kravspecifikation Softdrink-Automat Gruppe: 6 Dato: 10. april 2003 Medlemmer: Benjamin Sørensen, Joanna Christensen, Jacob Nielsen, Jesper Kock, Klaus Eriksen, Mikkel Larsen og

Læs mere

Af: Valle Thorø Fil.: Oscilloscopet Side 1 af 10

Af: Valle Thorø Fil.: Oscilloscopet Side 1 af 10 Oscilloscopet Kilde: http://www.doctronics.co.uk/scope.htm Følgende billede viser forsiden på et typisk oscilloskop. Nogle af knapperne og deres indstillinger forklares i det følgende.: Blokdiagram for

Læs mere

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

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 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 2003-08-19 DELTA Dansk Elektronik, Lys & Akustik Teknisk-Audiologisk

Læs mere

KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL. EQ-kontakt. Tænd/slukknap. Surroundknap.

KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL. EQ-kontakt. Tænd/slukknap. Surroundknap. KNAPPER OG TILSLUTNINGER PÅ BAGSIDEN AF SOUNDBAR KNAPPER OVEN PÅ SOUNDBAR OG FJERNKONTROL EQ-kontakt Tænd/ slukknap Kildeknap Lydstyrkeknapper Surroundknap Bluetoothknap Optisk indgangsstik Auxindgangsstik

Læs mere

Audioeffekter Datateknik P3-projekt rapport Gruppe 350 Aalborg Universitet 16. januar 2005

Audioeffekter Datateknik P3-projekt rapport Gruppe 350 Aalborg Universitet 16. januar 2005 Audioeffekter Datateknik P3-projekt rapport Gruppe 350 Aalborg Universitet 16. januar 2005 Institut for elektroniske systemer Fr. Bajers Vej 7 Telefon 96 35 86 00 http://www.ies.aau.dk Titel: Tema: Audioeffekter

Læs mere

Kursus i brug af Pinnacle Studio 9

Kursus i brug af Pinnacle Studio 9 Bent Sehested Odense Video Klub Side 20 Ved at markere en sekvens og med markøren peger på den blå linje i lydsporet, ændres markøren til en højttaler med en pil. I berøringspunktet opstår der en lille

Læs mere

Placering af trykmåler til bølgemåling. Wave Dragon, Nissum Bredning

Placering af trykmåler til bølgemåling. Wave Dragon, Nissum Bredning Placering af trykmåler til bølgemåling Wave Dragon, Nissum Bredning z x y Morten Kramer & Jens Peter Kofoed August, 2004 DEPARTMENT OF CIVIL ENGINEERING AALBORG UNIVERSITY SOHNGAARDSHOLMSVEJ 57 DK-9000

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

Emneopgave: Lineær- og kvadratisk programmering: Emneopgave: Lineær- og kvadratisk programmering: LINEÆR PROGRAMMERING I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en maksimering eller en minimering

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

Graph brugermanual til matematik C

Graph brugermanual til matematik C Graph brugermanual til matematik C Forord Efterfølgende er en guide til programmet GRAPH. Programmet kan downloades gratis fra nettet og gemmes på computeren/et usb-stik. Det betyder, det også kan anvendes

Læs mere

Test af forstærkertelefoner

Test af forstærkertelefoner Teknisk notat Test af forstærkertelefoner Udført for AMGROS Rev. 1 Sagsnr.: T21-9 Side 1 af 39 17. september 15 DELTA Teknisk-Audiologisk Laboratorium Edisonsvej 24 Odense C Danmark Tlf. +45 72 19 41 Fax

Læs mere

Klasse 1.4 Michael Jokil 03-05-2010

Klasse 1.4 Michael Jokil 03-05-2010 HTX I ROSKILDE Afsluttende opgave Kommunikation og IT Klasse 1.4 Michael Jokil 03-05-2010 Indholdsfortegnelse Indledning... 3 Formål... 3 Planlægning... 4 Kommunikationsplan... 4 Kanylemodellen... 4 Teknisk

Læs mere

PC-baseret analyzer og equalizer

PC-baseret analyzer og equalizer 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

Læs mere

Institut for Elektroniske Systemer. Aalborg Universitet

Institut for Elektroniske Systemer. Aalborg Universitet Institut for Elektroniske Systemer Aalborg Universitet! " # Aalborg Universitet Institut for Elektroniske Systemer TITEL Automatiseret analyse og regulering af frekvensgang i audiosystemer PROJEKTPERIODE

Læs mere

Matematik A og Informationsteknologi B

Matematik A og Informationsteknologi B Matematik A og Informationsteknologi B Projektopgave 2 Eksponentielle modeller Benjamin Andreas Olander Christiansen Jens Werner Nielsen Klasse 2.4 6. december 2010 Vejledere: Jørn Christian Bendtsen og

Læs mere

Opgaveløsninger til eksamensopgaver. Opgavesæt 11

Opgaveløsninger til eksamensopgaver. Opgavesæt 11 E4+D4/10 H. Ebert BEREGNINGSTEKNIK INDENFOR ELEKTRONIKOMRÅDET 2 Opgaveløsninger til eksamensopgaver Opgavesæt 11 Beregningsteknik for E4+D4/10 Opgavesæt 11 100607HEb Skriftlig prøve i Beregningsteknik

Læs mere

Anvendelse af matematik til konkrete beregninger

Anvendelse af matematik til konkrete beregninger Anvendelse af matematik til konkrete beregninger ved J.B. Sand, Datalogisk Institut, KU Praktisk/teoretisk PROBLEM BEREGNINGSPROBLEM og INDDATA LØSNINGSMETODE EVT. LØSNING REGNEMASKINE Når man vil regne

Læs mere

Transceiver målinger.

Transceiver målinger. Transceiver målinger. Denne gang senderen - teori og lidt praksis. Varighed 45 min. EDR Horsens Afdeling, 12. april. 2018, OZ2OE Transceiver måling - målinger kan kræve masser af udstyr Sender måling 1)

Læs mere

Husk at sætte i stikkontakt Og tænd!

Husk at sætte i stikkontakt Og tænd! Øvelse 1 Sound Ear lydtryksmåler i klasselokalet: Opmærksomhed på lydniveauet i klassen. Husk at sætte i stikkontakt Og tænd! Mens klassen har støjboksen til låns kan den store Sound Ear lydtryksmåler

Læs mere

Lidt tankevirksomhed i fbm. udvikling og fremstilling af en 23 transverter

Lidt tankevirksomhed i fbm. udvikling og fremstilling af en 23 transverter Lidt tankevirksomhed i fbm. udvikling og fremstilling af en 23 transverter Af Istvan Zarnoczay OZ1EYZ 29. august 2008 Krav/ønsker osv. Inden man går i gang med sådan et projekt skal man gøre sig klart

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Betjeningsvejledning ULTRAVOICE XM1800S. 3 Dynamic Cardioid Vocal and Instrument Microphones (Set of 3)

Betjeningsvejledning ULTRAVOICE XM1800S. 3 Dynamic Cardioid Vocal and Instrument Microphones (Set of 3) Betjeningsvejledning ULTRAVOICE XM1800S 3 Dynamic Cardioid Vocal and Instrument Microphones (Set of 3) 2 ULTRAVOICE XM1800S Betjeningsvejledning Vigtige sikkerhedsanvisninger Advarsel Terminaler markeret

Læs mere

Figur 1.1: Blokdiagram over regulatorprincip

Figur 1.1: Blokdiagram over regulatorprincip Indhold 1 Design af regulator til DC-motor 2 1.1 Besrivelse af regulatorer............................. 2 1.2 Krav til regulator................................. 3 1.2.1 Integrator anti-windup..........................

Læs mere

Den menneskelige cochlea

Den menneskelige cochlea Den menneskelige cochlea Af Leise Borg Leise Borg er netop blevet cand.scient. Artiklen bygger på hendes speciale i biofysik Introduktion Hørelsen er en vigtig sans for mennesket, både for at sikre overlevelse,

Læs mere

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen TG 8 EUC-Syd Sønderborg 6. Skoleperiode Elektronikmekaniker Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: 30 04-2002 Modtaget af: Søren Knudsen

Læs mere

Indholdsfortegnelse:

Indholdsfortegnelse: Dataopsamling Klaus Jørgensen Gruppe. Klaus Jørgensen, Jacob Clausen Og Ole Rud Erhvervs Akademi Fyn Allegade 79 Odense C 5000 fra d 2/12-02 til d 20/12-02 Vejleder: SKH. Forord: Denne rapport omhandler

Læs mere

Hearing Products International BRUGERVEJLEDNING. Echo MegaLoop DAC

Hearing Products International BRUGERVEJLEDNING. Echo MegaLoop DAC Hearing Products International DK BRUGERVEJLEDNING Echo MegaLoop DAC Indhold Sikkerhedsinstrukser... 3 Oversigt over pakkens indhold... 4 Produktoversigt... 5 Figur 1... 5 Figur 2... 5 Figur 3... 6 Figur

Læs mere

Porte (Gates) Gate 1 bruges både med Puls-Ekko- og Ekko-Ekko-metoden. Den har en tærskel og en starttid.

Porte (Gates) Gate 1 bruges både med Puls-Ekko- og Ekko-Ekko-metoden. Den har en tærskel og en starttid. STRENOMETER INFORMATION Porte (Gates) Nogle ultralydsmålere er udstyret med porte, som kontrollerer tidsmålingsprocessen. Ved at bruge porte til at justere tidsmålingsprocessen, kan man måle et specifikt

Læs mere

Indhold. 0.1 Beskrivelse af regulatorer

Indhold. 0.1 Beskrivelse af regulatorer Indhold. Beskrivelse af regulatorer................................. Overføringsfunktion for et reguleringssystem................ 2..2 Specifikationer til beskrivelse af systemet.................. 2.2

Læs mere

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 3

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 3 Københavns Universitet, Det naturvidenskabelige Fakultet 1 Lineær Algebra (LinAlg) Afleveringsopgave 3 Eventuelle besvarelser laves i grupper af 2-3 personer og afleveres i to eksemplarer med 3 udfyldte

Læs mere

Hearing Products International BRUGERVEJLEDNING. Echo MegaLoop

Hearing Products International BRUGERVEJLEDNING. Echo MegaLoop Hearing Products International DK BRUGERVEJLEDNING Echo MegaLoop Indhold Sikkerhedsinstrukser... 3 Oversigt over pakkens indhold... 4 Produktoversigt... 5 Figur 1... 5 Figur 2... 5 Figur 3... 6 Figur 4...

Læs mere