Effektenhed til elektrisk guitar

Størrelse: px
Starte visningen fra side:

Download "Effektenhed til elektrisk guitar"

Transkript

1 Effektenhed til elektrisk guitar Det Ingeniør-, Natur- og Sundhedsvidenskabelige Fakultet 6. semesterprojekt ved Aalborg Universitet Signalbehandling 3. juni 2008 Gruppe 640 Johnni T. Pedersen Esben Madsen Casper E. B. Fynsk Brian M. Christensen

2

3 Aalborg Universitet Institut for Elektroniske Systemer Frederik Bajers Vej Aalborg Ø Telefon Titel: Effektenhed til elektrisk guitar Tema: Signalbehandling Synopsis: Projektperiode: P6, forårssemesteret 2008 Projektgruppe: 08gr640 Gruppemedlemmer: Johnni Thomsen Pedersen Esben Madsen Casper Fynsk Brian Melgaard Christensen Vejleder: Sofus Birkedal Nielsen Oplagstal: 6 Sidetal: 171 Bilagsantal og -art: 1 CD Dette projekt omhandler analyse, design og implementering af et system til afvikling af lydeffekter til en elektrisk guitar. Systemet består bl.a. af en digital signalprocessor og en A/D- og D/A-konverter. Effekten tremolo er implementeret analogt. Effekterne echo, delay, equalizer og flanger er implementeret digitalt. Et brugerinterface præsenterer relevante oplysninger og muliggør ændring af effektparametre. Signalbehandlingen afvikles i hård realtid i en interrupt-rutine. Øvrig ikke-tidskritisk kode afvikles særskilt herfra. Både effekter og det samlede system er testet. Alle digitale effekter overholder de opstillede krav. Den analoge effekt og det samlede system overholder ikke alle opstillede krav. Alle effekter kan afvikles samtidigt i realtid og lyder autentisk, på trods af overskredne krav. Afsluttet den 3/ Rapportens indhold er frit tilgængeligt, men offentliggørelse (med kildeangivelse) må kun ske efter aftale med forfatterne.

4

5 Aalborg University Department of Electronic Systems Frederik Bajers Vej Aalborg Ø Telephone Title: Guitar effects unit Theme: Signal processing Project term: P6, spring semester 2008 Project group: 08gr640 Group members: Johnni Thomsen Pedersen Esben Madsen Casper Fynsk Brian Melgaard Christensen Supervisor: Sofus Birkedal Nielsen Copies: 6 Pages: 171 Appendices: 1 CD Synopsis: This thesis treats the analysis, design and implementation of a system for execution of audio effects suited for an electric guitar. The system consists of a digital signal processor and a A/D and D/A-converter among other things. The tremolo-effect is analogous implemented. The echo-, delay-, equalizer- and flanger-effect is digitally implemented. An user interface presents relevant data and permits change of effect parameters. The signal processing is executed in hard realtime in an interrupt routine. Other, not timecritical code is run separately. Both the effects and the whole system have been tested. All digital effects comply with the laid down demands. The analogue effect and the system do not comply with the laid down demands. Despite non-compliance, all effects can be e- xecuted simultaneously in realtime and sounds authentic. Finished 3/ The contents of this report are freely available, but publication (with specification of source) may only be done after arrangement with the authors.

6

7 Indhold I Systemanalyse 1 1 Indledning Signalbehandling Semesteret Projektforslaget Foranalyse Guitareffekter Valg af effekter Analyse af elguitar Målinger på guitar Kravspecifikation Forudsætninger for projekt Kravspecifikation II Design af effektenhed til guitar 17 4 Systemdesign Overordnet hardwaredesign Brugervejledning Design af DSP-system DSP Hukommelse og perifære enheder Adressedekodning A/D og D/A konverter I

8 INDHOLD 6 Design af perifær hardware Forforstærker Brugerinterface Design og implementering af tremolo Implementering af tremolo Konklusion på tremolo Design og implementation af delay/echo Design af delay/echo Implementation af delay/echo Konklusion på delay/echo Design og implementation af flanger LFO Interpolation Implementation af flanger Konklusion på flanger Design og implementation af equalizer Design af equalizer Realisering af equalizer Implementation af equalizer Konklusion på equalizer Software Overordnet software-design Main-funktion Interrupt-rutine Hukommelse Utilization test III Accepttest og konklusion Accepttest Diskussion af accepttest Konklusion 103 II

9 INDHOLD Litteraturliste 105 IV Appendiks 107 A Kravspecifikation 109 A.1 Overordnede krav A.2 Krav til indgangstrin A.3 Generelle krav til effekter A.4 Krav til tremolo A.5 Krav til equalizer A.6 Krav til delay/echo A.7 Krav til flanger B Accepttestspecifikation 115 B.1 Standardopsætning B.2 Indgangstrin B.3 Signal-/støjforhold B.4 Systembåndbredde og linearitet B.5 Indgangsimpedans B.6 Effekter B.7 Tremolo B.8 Equalizer B.9 Delay/Echo B.10 Flanger C Accepttest 123 C.1 Systembåndbredde og linearitet C.2 Indgangstrin (linearitet) C.3 Indgangstrin impedans C.4 SNR for indgangstrin og system C.5 Utilization test C.6 Tremolo C.7 Equalizer C.8 Delay/echo C.9 Flanger III

10 INDHOLD D Målerapporter 137 D.1 Målerapport for udgangsimpedans i guitar D.2 Målerapport for udgangssignal fra guitar D.3 Målejournal for SNR i codec E Analyse af DSP 147 E.1 DSP E.2 Hukommelse og perifære enheder F PEEL kode 159 F.1 Adressedekodning F.2 Knapdekodning F.3 Display latch G Udledning af SNR-formel 165 H Memorymap over program 167 I El diagrammer 169 J Indhold på CDROM 171 IV

11 Forord Denne rapport dokumenterer projektarbejdet udført af gruppe 640 på 6. semester, på Institut for Elektroniske Systemer ved Aalborg Universitet i foråret Projektet er underlagt temaet Signalbehandlingsalgoritmer og -systemer. Titlen på projektet er Effektenhed til guitar. Rapporten er henvendt til vejleder, censor og andre interesserede i projektet, f.eks. senere projektgrupper, der skal arbejde med den benyttede DSP og/eller guitar. Det antages, at læseren har et kendskab til elektronik og signalbehandling, der svarer til en 6. semesters signalbehandlingsstuderendes. Læsevejledning: Rapporten er opbygget af fire dele for at skabe bedre overblik. Delene har fået tildelt romertal i indholdsfortegnelsen. Hver del indeholder flere kapitler, der er nummereres fortløbende gennem rapporten. Den første del, Systemanalyse, indeholder den indlende analyse af problemet samt de opstillede krav til det endelige produkt. Systemanalysen efterfølges af Design af effektenhed til guitar hvor selve systemet og effekterne designes og implementeres. Herefter følger Accepttest og konklusion, der opsumerer testen af systemet, samt evaluering af det udførte arbejde. Den sidste del er et appendiks, der indeholder materiale der ikke har fået plads i hovedrapporten, men stadig er med til at dokumentere det udførte arbejde. Der henvises løbende gennem rapporten til disse sider og den fulde accepttest er også at finde her. De sidste sider i appendiks indeholder diagrammer over den samlede hardware. På diagrammerne har komponenterne et indeks, hvor første tal indikerer hvilket kredsløb de tilhører. En del diagrammer er gentaget i rapporten i deres relevante afsnit, her uden dette indeks. Slutteligt kan findes en CD indeholdende datablade, assembly-filer, MATLAB scripts og lydoptagelser. V

12 INDHOLD Projektet er udarbejdet af: Brian Melgaard Christensen Casper Fynsk Johnni Thomsen Pedersen Esben Madsen VI

13 Del I Systemanalyse I denne del er projektforslaget defineret, og en foranalyse af effekter og en elektrisk guitar er foretaget. På baggrund af projektforslaget og foranalysen, er en kravspecifikation opstillet. Kravspecifikationen er uddybet i appendiks A, og ud fra denne, er en accepttestspecifikation defineret i bilag B. 1

14

15 1 Indledning Indledningsvis præsenteres gruppens interesser og hvordan disse stemmer overens med projektenhedsbeskrivelsen for signalbehandling, 6. semester. 1.1 Signalbehandling Begrebet signalbehandling dækker over analyse, fortolkning og manipulation af signaler. Disse signaler kan være af meget varierende form og f.eks. indeholde informationer om lyd, billede, video, biologiske signaler eller anden data, og er repræsenteret enten i analog eller digital form. Formålet med signalbehandlingen kan for eksempel være filtrering, lagring, analyse, adskillelse af information, mønstergenkendelse eller kompression, og kan således benyttes i et væld af forskellige applikationer. Ofte ønskes et signal repræsenteret på anden vis end det oprindelige, for lettere at kunne udføre behandling af dette. Lyden fra en elektrisk guitar vil f.eks. blive konverteret fra svingninger i en streng til et induceret elektrisk signal, der kan udføres behandling af, hvorefter det konverteres til mekaniske svingninger i en højttalermembran, der frembringer lyden. En anden form, der ofte er gunstig at repræsentere signalet på, er den digitale, hvor nogle former for signalbehandling kan udføres væsentligt lettere end ved en analog repræsentation. F.eks. er simple forsinkelser af et arbitrært signal avanceret at implementere i ren analog hardware, mens det i software er trivielt. 1.2 Semesteret Projektenheden for signalbehandling på 6. semester skal overholde en række krav, der er opstillet i studieordningen[aau(2007)]. Fra studieordningen, [AAU(2007), s.26], er projektets formål defineret således Projektenhedens formål er at den studerende tilegner sig viden og færdigheder som gør det muligt at forstå, analysere og konstruere analoge og digitale signalbehandlingssystemer. De konkrete krav, som projektet skal overholde, er således listet op som fem punkter i studieordningen: Projekterne tager udgangspunkt i en konkret, praktisk forekommende problemstilling, som 3

16 Indledning naturligt efterspørger realtids-implementering af en signalbehandlingsfunktionalitet, eksempelvis en filtrering eller en transformation, med ikke-trivielle krav til eksekveringshastighed og/eller beregningsomfang. Den samlede applikation beskrives og underkastes en funktionel- og strukturel analyse med henblik på at bestemme, hvilke dele der skal realiseres i henholdsvis analogt og digitalt hardware. Hvor det findes relevant, understøttes denne del af designforløbet af simuleringer. Der udarbejdes en specifikation for det samlede system bestående af en analog såvel som en digital enhed, deres indbyrdes interface, samt deres kommunikation med omverdenen. Desuden foretages der specifikation og design af de signalbehandlings-algoritmer, som skal afvikles på systemets digitale hardware-enhed. De specificerede analoge og digitale enheder samt deres interface dimensioneres, opbygges og testes individuelt. Der foretages ligeledes en sammenkobling samt samlet test af hardware. Endelig afbildes de digitale signalbehandlingsalgoritmer på den programmerbare del af arkitekturer i form af udarbejdelse af assemble-programmer og der foretages en samlet afsluttende funktionstest samt vurdering og dokumentation af det udviklede signalbehandlingssystem. Kravene til semesteret og gruppens ønsker er afspejlet i det følgende projektforslag, der er stillet af Sofus Birkedal Nielsen. 1.3 Projektforslaget En elektrisk guitar er ikke meget bevendt, hvis den ikke er forsynet med en form for signalbehandling, da den ikke har nogen klangbund (kasse til at forstærke og påvirke lyden). Til at kompensere for dette, bruges forskellige former for signalbehandling, der kan købes i moduler, normalt som guitar-pedaler, der så kan slåes til og fra af musikeren mens der spilles. Nogle almindelige effekter er: Chorus Flanger Delay Reverberation - rumklang Overdrive Equaliser Wah-Wah En guitar-effektenhed indeholder mange funktioner, hvoraf nogle udvælges til realisering. Der er funktioner der bedst løses analogt, så som f.eks en wah-wah pedal eller forvrængning, mens andre er bedre eller kun muligt at løse vha. digital signalbehandling. En equalizer kan til gengæld 4

17 1.3 Projektforslaget implementeres enten analogt eller digitalt. Der er således i projektet rig mulighed for både analog og digital signalbehandling. Der tages udgangspunkt i udgangssignalet fra en el-guitar, hvor den nødvendige forstærkning og tilpasning til systemet foretages. Brugerinterface skal også tages i betragtning, men bør holdes på et minimum. 5

18 Indledning 6

19 2 Foranalyse Foranalysen tager udgangspunkt i projektforslaget 1.3; at lave en effektenhed til en elektrisk guitar. Derfor undersøges forskellige effekttyper med henblik på at realisere disse i det endelige system, enten analogt eller implementeret i en DSP (Digital Signal Processor). Desuden undersøges en elektrisk guitar både ud fra et kredsløbsmæssigt synspunkt og for at bestemme impedans, signalniveauer og hvilke frekvenser der genereres, for at kunne opstille krav til guitareffektenheden. 2.1 Guitareffekter I projektet skal implementeres en række analoge og digitale effekter til en elektrisk guitar. Først beskrives en række effekter, der kunne implementeres enten analogt eller digitalt. Alle tænkelige effekter er af naturlige årsager ikke medtaget, da omfanget bliver for stort. Efterfølgende vælges et antal effekter, der vil forsøges implementeret Tremolo En tremolo er en periodisk volumenkontrol. Der vil typisk være 3 parametre der kan indstilles af brugeren: modulationsform, modulationsfrekvens og modulationsdybde. Modulationsformen hvormed amplituden moduleres kan være sinus-, firkant- og trekant-formet. I teorien kan enhver form benyttes, men disse tre er ofte benyttet Delay/Echo Delay/echo er èn eller flere gentagelser af et allerede afspillet signal. Ved en enkelt gentagelse benyttes betegnelsen delay og laves som en addition af det forsinkede signal og det aktuelle signal. Delayet kan betegnes som typen feed forward. Brugeren vil typisk kunne styre delaytiden og delaylydstyrken. 7

20 Foranalyse In Out Gain Delay Figur 2.1: Principdiagram for delay med én gentagelse Hvis flere gentagelser ønskes, kan delayet realiseres som feed back. Ved sådanne succesive gentagelser betegnes delaytypen som echo. Echoet aftager eksponientielt og brugeren vil typisk kunne justere parametre som delaytid og loopgain. Loopgainet må ikke overskride 1, da der er tale om positiv tilbagekobling. In Out Gain Delay Figur 2.2: Principdiagram for echo med (uendeligt) mange gentagelser Flanger Effekten flanging opstår når det oprindelige signal blandes med en kopi, der forsinkes cyklisk. Oprindeligt blev effekten frembragt analogt, ved at lægge fingeren på kanten (engelsk: flange) af et spolebånd der blev optaget og afspillet løbende. Modulationssignalet er en langsom sinus, der bestemmer hvor meget signalet forsinkes. Brugeren vil ofte kunne styre parametre som modulationsfrekvens, modulationsdybde og blandingsforholdet mellem det oprindelige og det forsinkede signal. In Out Delay (fixed) Delay (var) LFO Figur 2.3: Principdiagram for flanger 8

21 2.1 Guitareffekter Equalizer En equalizer er en enhed, der kan forstærke eller dæmpe forskellige frekvenser. Den kan altså forme frekvensresponsen af effektenheden som brugeren ønsker det. Dette gøres typisk ved hjælp af en række båndpas- og båndstop-filtre, der muliggør forstærkning eller dæmpning af frekvenser i et givent frekvensområde. Som udgangspunkt findes der to typer equalizere; den grafiske equalizer og den parametriske equalizer. Den grafiske equalizer er relativt simpel og fungerer på den måde, at frekvensområdet opdeles i nogle faste frekvensbånd; typisk tre kaldet bas, mellemtone og diskant. Gainet i hvert af disse frekvensbånd kan justeres op eller ned. Centerfrekvensen og båndbredden af hvert filter er således fastlåst i en grafisk equalizer. Den parametriske equalizer er mere fleksibel, idet det her er muligt både at justere gain, centerfrekvens og båndbredde for hvert filter. Ved at kaskadekoble en række af disse filtre er det altså muligt at forme den frekvensgang som brugeren måtte ønske. Typisk er tre filtre nok til at give brugeren tilstrækkelig mulighed for at forme frekvensgangen Wah-wah og autowah En wah wah er en resonator (et høj-q filter), hvis centerfrekvens kan flyttes op eller ned enten manuelt, ofte ved brug af en pedal, eller automatisk. Herved opstår en lyd, der lyder lidt som når man siger Wah deraf navnet. En automatisk wah kan være en envelope-follower, det der oftest menes med en auto-wah. Waheffekten styres af amplituden på inputsignalet. Herved opstår en bevægelig resonans på hvert enkelt anslag. Den anden mulighed for en automatisk wah er, hvor centerfrekvensen bevæges cyclisk af et lavfrekvent sinussignal, som hvis pedalen blev styret af en motor. Det kan minde lidt om en phaser-effekt Distortion Distortionbegrebet dækker over en række forskellige forvrængninger der benyttes som guitareffekter. Det kan således enten være en blid forvrængning, hvor signalet klippes blødt eller asymetrisk, som det ses med f.eks. overdrive og rørforstærkere, eller det kan være en hård klipning, hvor alt over en vist tærskelværdi blot klippes. Desuden kan en distortioneffekt have en såkaldt attacktid. Attacktiden er den tid det tager forvrængningen at træde (helt) i kraft. Releasetid er den tid det tager før forvrængningen af et signal under threshold ikke længere er aktiv Kompressor En kompressor komprimerer lyden vha. et variabelt gain. Lave signaler forstærkes mere end høje signaler, og efter kompression, er dynamikområdet mindre end før kompression. Ved at forstærke de lave signaler på denne måde vil en sustain effekt høres, hvor guitartonen efter et anslag bliver ved med at have nogenlunde samme output, selvom den egentlige lyd fra selve guitaren bliver lavere. Kompressionen kan enten være hård, hvor der er et knæk i gainet ved en grænseværdi, eller blød, hvor knækket er jævnet ud. 9

22 Foranalyse Pitcheffekter Pitcheffekter er effekter der indeholder èn eller anden form for frekvensmodulation. En Whammy ændrer f.eks. lydens pitch med hele toner eller oktaver, et såkaldt pitch shift. En Octaver er en effekt, der kombinerer det originale signal med en lyd, hvis pitch er en oktav højere eller lavere end det originale signal Chorus En choruseffekt kan opnås ved at kombinere flere variable forsinkelser og forskellig gain af inputtet, således at de enkelte toner har samme klangfarve og næsten samme pitch, hvorved de enkelte toner vil opfattes som en samlet klang. 2.2 Valg af effekter I de foregående afsnit er beskrevet en række effekter, hvoraf fire er udvalgt til implementering: Analoge effekter Tremolo Digitale effekter Delay/echo Flanger Equalizer Tremoloen er valgt som en analog effekt, da denne giver mulighed for at benytte nogle af de byggeblokke, der har været behandlet i undervisningen, herunder en multiplier. Delay/echo vælges som en simpel effekt at implementere, idet forsinkelse i et digitalt system er relativt trivielt. Flanger implementeres som en digital effekt, da det ønskes at have en lidt mere avanceret effekt, der stadig er mulig at implementere. Der skal implementeres en lavfrekvent sinus og en interpolation af signalet. Endelig er equalisering af signalet ofte ønskeligt for en guitar, for at fremhæve eller dæmpe karakteristikker i lyden, hvorfor en equalizer er valgt at implementere. Yderligere effekter er valgt fra af hensyn til tid og omfang. Med en funktionel parametrisk equalizer, vil implementation af en wah-wah eller autowah være mulig, idet der vælges en høj Q-værdi og flyttes på filtrets centerfrekvens. Distortion er det valgt ikke at implementere ud fra en betragtning om, at det er let at forvrænge et signal, men ikke let at gøre det så det lyder godt. Af hensyn til tiden, er det desuden valgt at afgrænse projektet fra kompressor, pitcheffekter og chorus samt yderligere effekter. Choruseffekten minder desuden om en flanger, idet der også her skal implementeres lavfrekvente sinussignaler og interpolation. 10

23 2.3 Analyse af elguitar 2.3 Analyse af elguitar Til projektarbejdet er der stillet en guitar af typen Axtech Vintage Plus (AVP) til rådighed. I det følgende beskrives denne og andre guitarer af samme type set fra et signalmæssigt synspunkt Pickup Pickuppen på den anvendte guitar er en magnetisk pickup af typen single-coil. Princippet bag en magnetisk pickup for en enkelt streng er vist på figur 2.4, pickuppen består af en permanent magnet, hvorom der er viklet en spole. Den permanente magnet magnetiserer et lille stykke af guitarstrengen, og når strengen sættes i vibrationer ved et anslag, sker der en magnetisk fluxændring igennem spolen, hvorved der ifølge Faradays lov induceres en elektromotorisk kraft i spolen. Den elektromotoriske kraft v out (t) vil svinge med samme frekvens som guitarstrengen. guitarstreng magnetiseret del af streng N S N Pickup spole permanent magnet S v (t) out Figur 2.4: Et tværsnit af en guitarstreng og en single-coil med èn magnet. Guitarstrengen magnetiseres af den permanente magnet. Når strengen vibrerer skabes der pga. flux-ændringen en EMK i spolen med samme frekvens som strengens vibrationer [Raymond A. Serway(2004), s. 972]. Elektrisk model af pickup En elektrisk model af pickuppen er vist på figur 2.5. Pickuppen består af en signalkilde i serie med spolen L, en modstand, R, og kondensatoren C, der udgør kapaciteten mellem viklingerne i spolen. L R C v (t) out Figur 2.5: Den elektriske model af pickuppen for en enkelt streng. Pickuppen anskues som en ikke-ideel spole med både tab og capacitiv kobling mellem vindingerne. 11

24 Foranalyse Guitarens kredsløbsdiagram AVP en har i alt tre pickupper; en nedre, en center og en øvre pickup. Ved hjælp af en knap med fem positioner kan hver af de tre pickupper vælges som signalkilde. Det er også muligt at vælge en kombination af centerpickuppen og enten den øvre eller nedre pickup. Når en kombination af to pickupper vælges, kobles de to pickupper parallelt. Guitaren indeholder også en volumenkontrol i form af et potentiometer R vol, der koblet som vist på figur 2.6. Til den midterste og den øvre pickup hører desuden en tonekontrol. Denne består af potentiometeret R tone og en kondensator, der tilsammen udgør et lavpasfilter (se figur 2.6). v out(t) R vol C R tone pickup Figur 2.6: Kredsløbsdiagram over en pickup med tone- og volumenkontrol [Tony Bacon(2004),.s 99]. 2.4 Målinger på guitar Figur 2.7 viser en simplificeret signalmodel for guitaren, hvor størrelsen A max beskriver den maksimale amplitude signalet fra guitaren kan antage, f g er frekvenserne i signalet og z max er den maksimale udgangsimpedans af guitaren. På baggrund af disse parametre skal der opstilles krav til systemet. De tre parametre for den pågældende guitar fundet ved en række målinger, der er beskrevet i appendiks D.1 og D.2. Ud over de tre parametre beskrevet på figuren, er guitarens signal/støj forhold blevet fundet. Resultaterne er opsummeret i tabel 2.1. z max A maxcos(2 πf g t) v (t) out Figur 2.7: Den anvendte signalmodel af guitaren. A max V g f g z max SNR g 1, 09 V 91, 1 mv rms 80 Hz 12 khz 218 kω 53 db Tabel 2.1: Guitarparametre fundet ved målinger. Af tabel 2.1 ses det, at guitaren har et mindre frekvensområde end den menneskelige hørelse, og der kan således slækkes på kravet til samplingsfrekvens i forhold til 44,1 khz, der ofte benyttes til audio. 12

25 3 Kravspecifikation I dette kapitel er en række forudsætninger for projektet oplistet, og efterfølgende er den samlede kravspecifikation defineret i en kort og overskuelig udgave, på baggrund af de foregående afsnit. 3.1 Forudsætninger for projekt Ud fra undervisning og udleveret hardware, er der nogle grundlæggende rammer, som projektet bygger på Udleveret guitar Den udleverede guitar er af typen Axtech Vintage, som er en billigere kopi af en Fender Stratocaster, og har AAU-nr I Udleveret rack Fra komponenten er udleveret et rack med følgende egenskaber: Strømforsyning: ±15 V DC det vælges at benytte denne forsyning til analoge kredsløb 5 V DC det vælges at benytte denne forsyning til digitale kredsløb Dette rack har materielnummer: AUC DSP Til projektet skal benyttes en digital signalprocessor fra Texas Instruments af typen TMS320C26 [Texas-Instruments(1989)] (herefter blot benævnt DSP). 3.2 Kravspecifikation I dette afsnit oplistes alle de krav som effektenheden skal overholde. En mere udførlig udgave af kravspecifikationen findes i appendiks A. Den fulde udgave af kravspecifikationen indeholder for 13

26 Kravspecifikation hvert enkelt krav: Formål: Formålet med det enkelte krav hvorfor det er medtaget. Krav: Selve kravet, der er identisk med dette afsnit. Sporbarhed: Hvor kommer kravet fra, og hvilke kilder, kriterier eller vurderinger ligger til grund herfor. Accepttest: Skal kravet testes, og hvordan. I appendiks B er en komplet accepttestspecifikation, der benyttes til at teste de opstillede krav, defineret, og resultatet af accepttesten kan ses i appendiks C Overordnede krav Krav 1 Krav 2 Krav 3 Krav 4 Analoge signalniveauer: max ±10 V peak Indgangsimpedans: 2,2 MΩ Udgangsimpedans: 100 Ω Bitopløsning: 16 bit Krav 5 Systembåndbredde og linearitet: 70 Hz til 10 khz med gain ±1 db, relativt til 1 khz uden effekter aktiveret. Krav 6 Krav 7 Interface: Menubaseret navigation på display med 1 jog-wheel og 6 knapper. Signal/støjforhold: 60 db Krav til indgangstrin Krav 8 Krav 9 Gain: 5 til 20 gange Båndbredde: 70 Hz til 10 khz ± 0,5 db relativt til 1 khz. Krav 10 Signal/støjforhold: 66 db Krav til effekter Krav 11 Samtidig brug af effekter: Alle typer skal kunne benyttes samtidig, og kunne slåes til og fra enkeltvis. Krav 12 Styring af effektparametre: Relevante effektparametre skal kunne ændres fra menuen. Krav til tremolo Krav 13 Modulationsfrekvens: 0,1 til 10 Hz skal kunne indstilles med en drejeknap. Krav 14 Modulationsdybde: Fra 0 til -40 db ±3 db skal kunne indstilles med en drejeknap. Krav 15 Modulationssignal: Sinus, trekant eller firkant lignende signaler skal kunne vælges. 14

27 3.2 Kravspecifikation Krav til equalizer Krav 16 Type equalizer: Parametrisk equalizer med tre separate filtre. Krav 17 Centerfrekvenser: Centerfrekvensen skal kunne indstilles i steps af 1/3-oktav fra 80 Hz op til 10 khz ±2 %. Krav 18 Gain: ±12 db ±0,2 db i steps af 1 db. Krav 19 Q faktor: Der skal kunne vælges otte forskellige Q faktorer fra 0,5 til 4. Krav til delay/echo Krav 20 Variabelt delay: 50 ms til 2 sekunder ±5 ms skal kunne indstilles vha. software i steps af 50 ms. Krav 21 Gain: -12 db til -1 db ±0,2 db, samt -0,1 db 1 skal kunne indstilles vha. software i trin af 1 db. Krav 22 Delaytype: Der skal være mulighed for at vælge mellem delay (feed forward) og echo (feedback). Krav til flanger Krav 23 Fast delay: 0 til 15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms. Krav 24 Modulérbar delaydybde (depth): 1-15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms. Krav 25 Signal til modulering af delay: Sinussignal, 0,1 til 2 Hz ±0,05 Hz skal kunne indstilles vha software i steps af 0,1 Hz. Krav 26 Mix: -12 db til 0 db ±0,2 db, skal kunne indstilles vha. software i trin af 1 db. 1-0,1 db er valgt for at give en mulighed for "næsten 0 db", der stadig dæmpes 15

28 Kravspecifikation 16

29 Del II Design og implementation af effektenhed til guitar I denne del er det overordnede design af effektenheden fastlagt, og herefter er foretaget design af hardwaren. TMS320C26 DSP en og den nødvendige hardware til et minimumssystem, herunder hukommelse og AD/DA konvertere, er analyseret og implementeret. Ligeledes er forforstærkeren og brugerinterfacet designet og implementeret De enkelte effekter er herefter analyseret, designet og implementeret og endelig er softwarestrukturen, der binder effekterne sammen, beskrevet. 17

30

31 4 Systemdesign I dette kapitel beskrives og vurderes det overordnede design af guitareffektenheden. Det er valgt at realisere guitareffekterne tremolo, flanger og delay/echo samt en parametrisk equalizer med tre filtre. Tremoloen er valgt at implementere i analog hardware, mens de øvrige tre er implementeret i software. Rækkefølgen af de implementerede signalbehandlingsblokke ses på figur 4.1, der beskriver mulige signalveje for forskellige indstillinger af systemet. Equalizer DSP - Software Tremolo Filter 1 Filter 2 Filter 3 Delay Flanger Frekvens Q Gain Q Gain Q Gain Delay Echo Gain Fast delay Mix Variabelt delay Signaltype Modulationsdybde Centerfrekvens Centerfrekvens Centerfrekvens Modulationsfrekvens Delay Gain Figur 4.1: Diagram der viser signalvejen gennem effekterne. Rækkefølgen hvormed de tre digitale effekter afvikles er overvejet ud fra følgende betragtninger. Både equalizeren og delay/echo er, bortset fra når der ændres parametre, lineære tids-invariante systemer, hvilket betyder at rækkefølgen hvormed de udføres ikke har betydning for udgangssignalet. Flangeren derimod er netop karakteriseret ved at være tidsvarierende, hvorfor den ikke er et LTI-system. Det er derfor valgt at placere flangeren til sidst i rækken af effekter, da den så ikke kan påvirke de øvrige effekter. Equalizeren er den effekt der udføres først og delay/echo dernæst, men som sagt spiller rækkefølgen på disse ikke nogen rolle. Dette giver rækkefølgen, der ses af figur 4.1. I afsnit 4.1 ses nærmere på den overordnede sammensætning af hardware, og i afsnit 11.1 beskrives hvorledes softwaren overordnet er designet. 19

32 Systemdesign 4.1 Overordnet hardwaredesign I dette afsnit beskrives det overordnede design af hardwaren, og hvorledes de enkelte blokke er kombineret. På figur 4.2 ses et blokdiagram over systemets hardwareblokke, hvis funktionalitet beskrives herunder. Indgangstrin Tremolo ADC DSP DAC Udgangstrin Gain Frekvens Signaltype Modulationsdybde Display Knapper & jog wheel Figur 4.2: Blokdiagram over systemet. Indgangstrin I indgangstrinet forstærkes signalet fra guitaren op til det interne signalniveau, således at det er mindre påvirkeligt af indstrålet støj inde i systemet. Signalet kommer altid igennem dette trin, og med en drejeknap er det muligt at indstille gainet, for at opnå maksimal udnyttelse af signalet. Design af forforstærkeren kan ses i afsnit 6.1. Tremolo Tremoloeffekten er implementeret analogt. Det er muligt at indstille om det modulerende signal skal være en sinus, en trekant, eller en firkant. Frekvensen af det modulerende signal kan ligeledes indstilles med en drejeknap, ligesom også moduationsdybden kan. Med en kontakt vælges om signalet skal passere tremoloen eller gå direkte udenom til ADC. Design af tremoloen findes i kapitel 7. ADC og DAC Konverteringen mellem det analoge og det digitale domæne foretages med en kombineret A/Dog D/A-konverter, et codec, med en clocket seriel kommunikation til at sende og modtage den digitale repræsentation af den analoge værdi. Samplingsfrekvensen bestemmes ud fra et eksternt clocksignal. Det analoge signal vil altid blive konverteret til et digitalt, passere igennem DSP en og blive konverteret tilbage til et analogt. Opsætning af codec samt den serielle kommunikation er beskrevet i afsnit 5.4. DSP DSP-blokken på diagrammet består af det samlede DSP-system med RAM, ROM og Debugger/- Monitor samt adressedekodning. I denne blok foregår den digitale signalbehandling samt styringen 20

33 4.1 Overordnet hardwaredesign af denne ved hjælp af de perifære knapper samt jog-wheel. Information om styringen sendes desuden til displayet. Input og output af signalet transmitteres serielt til og fra codec et. Design af DSP-systemet er foretaget i kapitel 5. Display Displayet benyttes til at give visuel feedback på styringen af parametrene til de enkelte effekter, og modtager signaler fra DSP en til skrivning. Opsætning af displayet ses i afsnit Knapper og jog-wheel Knapper og jog-wheel dekodes og aflæses på DSP en og benyttes til at navigere i menuer og ændre parametre. Opsætning og design af dekodning er beskrevet i afsnit Udgangstrin Udgangstrinnets funktion er blot at sikre en lav udgangsimpedans, og er derfor implementeret som en simpel buffer. 21

34 Systemdesign 4.2 Brugervejledning Det færdige system er designet ud fra en brugervejledning, der beskriver hvorledes en bruger forventes at kunne benytte systemet med simpel betjening. På figur 4.3 ses opsætningen af brugerinterfacet. I jackstikket på den øverste plade, tilsluttes en efterfølgende forstærker. På plade nr 2, tilsluttes guitaren, og lydniveauet fra forforstærkeren tilpasses med volumenknappen til højre. Tremolo On Jack out Dybde Off Frekvens Type Jack in Indgang volumen Delay & Echo Flanger Equalizer Ændring On/Off Tilbage Figur 4.3: Systemets brugerinterface Tremolo Tremoloen er en analog effekt og betjenes med eget interface på samme plade som indgangstrinnet, som det ses på figur 4.3. Når denne er aktiveret med On/Off knappen, kan effekten indstilles med tre drejeknapper: Type benyttes til at vælge om tremoloen skal bruge et trekant-, firkant- eller sinussignal til at modulere lyden, Frekvens benyttes til at vælge frekvensen signalet skal modulere lyden med og Dybde benyttes til at bestemme hvor meget lyden maksimalt skal dæmpes Digitale effekter Det er valgt at gøre systemet menubaseret, således at en specifik knap (røde, 1-4) altid går ind i et specifikt menupunkt, en knap (rød, 5: On/Off) altid benyttes til at tænde og slukke en effekt, hvor denne mulighed er til stede og en knap (sort, 6: Tilbage) altid går til et menu-niveau højere. Knapperne ses nederst på figur 4.3 hvor også displayet er afbildet med hovedmenuen. Trykkes der her eksempelvis på knap nr. 1, vælges menupunktet Delay & Echo. 22

35 4.2 Brugervejledning Til højre for displayet ses et jog-wheel der benyttes, når en parameter i en effekt skal ændres. Når en parameter er valgt, ved at trykke på den rigtige knap, øges parameteren ved at dreje hjulet med uret og ligeledes sænkes den ved at dreje mod uret. Ud for den valgte parameter indikerer en pil til venstre, at der kan vælges lavere værdier og en pil til højre, at der kan vælges højere værdier. Når den maksimale værdi for den valgte parameter er valgt, vises således kun en pil til venstre. Det følgende viser hvorledes menustrukturen er opbygget. Hvert af tallene indikerer hvilke(n) knap(per), der skal trykkes på for at nå til det givne menupunkt. Ønskes det eksempelvis at ændre Gain i Delay & Echo skal der således trykkes på knap 1 efterfulgt af knap 3: 1. Delay & Echo 1.1 Delay / Echo (her vælges mellem delayeffekt og echoeffekt) 1.2 Delay (her vælges hvor langt delayet skal være: fra 50 ms til 2000 ms) 1.3 Gain (her vælges hvor stort gain, der skal være på effekten: fra -12 db til -0,1 db) 1.5 On/Off (her tændes/slukkes delay/echo) 2. Flanger 2.1 Frekvens (her vælges hvilken frekvens flangeren varierer delay med: fra 0,1 Hz til 2,0 Hz) 2.2 Delay (her vælges det faste delay: fra 0 ms til 15 ms) 2.3 Depth (her vælges dybden af det variable delay: fra 1 ms til 15 ms) 2.4 Mix (her vælges hvor meget af det modulerede signal, der skal lægges oven i det originale: fra -12 til 0 db) 2.5 On/Off (her tændes/slukkes flangeren) 3. Equalizer 3.1 Filter Cen.fre. (Her vælges centerfrekvensen af filter 1: fra 80 Hz til 8127 Hz) Gain (Her vælges gain for filter 1: fra -12 til 12 db) Q (Her vælges Q-værdien for filter 1: fra 0,3 til 5) 3.2 Filter Cen.fre. (Her vælges centerfrekvensen af filter 2: fra 80 Hz til 8127 Hz) Gain (Her vælges gain for filter 2: fra -12 til 12 db) Q (Her vælges Q-værdien for filter 2: fra 0,3 til 5) 3.3 Filter Cen.fre. (Her vælges centerfrekvensen af filter 3: fra 80 Hz til 8127 Hz) Gain (Her vælges gain for filter 3: fra -12 til 12 db) Q (Her vælges Q-værdien for filter 3: fra 0,3 til 5) 3.5 On/Off (her tændes/slukkes equalizeren) 23

36 Systemdesign 24

37 5 Design af DSP-system I dette kapitel beskrives hvorledes basissystemet til DSP en er opbygget og hvilke overvejelser der er gjort inden det endelige system er designet. Disse overvejelser omhandler hukommelsestype og timing, adressedekodning, hvilke af DSP ens funktioner der ønskes benyttet, implementering af Debugger/Monitor samt hvorledes der interfaces til øvrige dele af systemet. Desuden er opsætning af A/D og D/A konverter analyseret i afsnit 5.4. Nærmere analyse af display og knapper er foretaget i afsnit og DSP Da systemet skal opbygges omkring en TMS320C26 Digital Signal Processor, er det relevant først at undersøge dennes egenskaber og funktioner, samt vurdere hvilke der skal benyttes. Den primære kilde til denne undersøgelse, er user guiden til DSP en [Texas-Instruments(1993)]. På de følgende sider beskrives de vigtigste egenskaber, og i appendiks E er pinouts, arkitektur, registre og timing yderligere beskevet og analyseret. Figur 5.1 illustrerer den interne opbygning af DSP en. Overordnet set, er DSP ens egenskaber: Harvardstruktur: Ligesom en stor del af de DSP er der benyttes på markedet i dag, benytter denne processor en Harvardstruktur, hvilket vil sige at den har en seperat program- og databus, som kan benyttes samtidig, som det ses på figur 5.1. Både program- og databus er på 16 bit Eksterne busser: Data- og programbus er, sammen med 15 I/O porte, eksternt multiplexet, for at spare ben på chippen. Intern hukommelse: Internt i DSP en er 4 RAM blokke, hvoraf en på bit er data RAM, og de øvrige tre, der hver er bit, kan konfigureres til enten at være program eller data RAM. Desuden er der en intern bit ROM med bootloader og interruptvektorer. Adressering: DSP en understøtter både direkte og indirekte adressering. Pipelining: Tre niveauer af pipelining: prefetch, decode og execution. Pipelinen tømmes ved brug af branch, call og return. 25

38 Design af DSP-system Figur 5.1: Interne opbygning af DSP TMS320C26 med inddeling i logiske blokke. DPS en er opbygget efter Harvardstrukturen med separat data og program bus. Kilde (modificeret) [Texas-Instruments(1993), 3-8] 26

39 5.1 DSP CALU:(Central Arithmetic Logic Unit) består af grupperingen af de grundlæggende regneblokke i systemet, vist nederst til højre på figur 5.1: en 32 bit (16 16 bit parallel) multiplier. På udgangen kan resultatet skiftes 0, 1 eller 4 bit til venstre eller 6 bit til højre. en 32 bit ALU (Arithmetic Logic Unit), der regner i 2 s komplement. en 32 bit akkumulator, hvor resultatet tilgåes i 2 halvdele (ACCH og ACCL). Resultatet fra ALU en gemmes heri. På udgangen kan resultatet skiftes 0-7 pladser til venstre. en 16 bit input, 32 bit output scaling shifter, der kan skifte data 0-16 bit til venstre. Instruktionstid: Hastigheden på DSP en bestemmes af et eksternt clocksignal på op til 40,96 MHz, som internt i processoren deles til to 90 o faseforskudte clocksignaler, der tilsammen giver fire forskellige stadier, som vist på figur 5.2. Disse fire stadier, Q1-Q4, udgør tilsammen en hel instruktionscyklus, der varer 97,7 ns. Figur 5.2: De fire Q-stadier i en instruktionscyklus. Kilde [Texas-Instruments(1993), 3-56] Pipelining Ved udførsel af program, udnyttes internt i DSP en en pipelining på tre niveauer, hvilket vil sige at under udførsel af en instruktion, vil kommende instruktioner blive læst ind og dekodet, hvilket giver en hurtigere instruktionstid frem for en processor uden piplining. De tre niveauer i pipelinen, vil sige at udførsel af en instruktion foregår i tre trin: 1. Prefetch, hvor instruktionen læses ind i QIR registret 2. Decode, hvor instruktionen tydes 3. Execution, hvor instruktionen udføres Når DSP en er i gang med at udføre instruktionen INS1, er den således i gang med at tyde den efterfølgende INS2 og at hente INS3. Dette har normalt ingen effekt på instruktionstiden, 27

40 Design af DSP-system men kan, f.eks. ved gentagne udførsler, give en hurtigere udførsel af programmet. En forbedring ses især ofte når programhukommelsen er intern. Branch-, call- og returninstruktioner flusher pipelinen, og disse koster derfor yderligere 3 instruktioner at udføre Direkte og indirekte adressering Når hukommelsen skal adresseres, kan dette gøres enten med direkte eller indirekte adressering. Opdelingen i disse er foretaget for ikke at skulle benytte 16 bit i en instruktion til at adressere hukommelsen. Hermed kan instruktioner læses fra hukommelsen af èn omgang frem for to, hvilket begrænser tidsforbruget. Med den direkte adressering, skal DSP en på forhånd være sat op til at befinde sig på den rigtige dataside, der er defineret ved de øverste 9 bit i en adresse og kan sættes med kommandoerne LDP og LDPK. Herefter skal en kommando udføres med direkte adressering, hvor de sidste 7 bit af den samlede adresse ligger i DMA feltet (Data Memory Address), lige efter instruktionen, f.eks, vil kommandoen LDP DAT127 loade indholdet fra adresse 127 på den nuværende side over i sidepointeren, så der peges på en ny side. I alt er der, med 64 k adresser, 512 sider á hver 128 adresser (0-127). Indirekte adressering udføres ved hjælp af de 8 auxilary registre (AR0-AR7), der hver indeholder en komplet adresse, og denne kan, uden det koster ekstra instruktionscykler, in- eller dekrementeres med 1, skifte hvilket register der benyttes. Desuden kan adressen in- eller dekrementeres med det der står i AR0, enten på normal vis eller bit-reversed. Den indirekte adressering foretages, ved på forhånd at have valgt hvilket AR, der benyttes, og derefter skrives blot * i stedet for en adresse samt eventuelle operationer, der skal udføres på registeret. Næste register der skal benyttes kan også angives. 5.2 Hukommelse og perifære enheder I det følgende beskrives hukommelse og perifære enheder, der tilkobles systemet. Dette bygger på den bagvedliggende analyse i appendiks E.2, hvor hukommelse, adressering og timing for DSP en er undersøgt. Timingen der skal overholdes, er undersøgt i appendiks E.2.2, hvor det ses at: Read: Data skal være klar efter ca. 30 ns ved læsning, hvis denne skal foregå inden for en instruktionscyklus. Write: Data er klar i ca. 60 ns før STRB går høj og holdes i ca. 20 ns herefter. Wait states: Hvis ikke ovenstående timing er tilstrækkelig, kan der indføres wait-cycles, som tilføjer 97,7 ns (en instruktionscyclus) til tiden Debugger/Monitor Til systemet benyttes en onboard Debugger/Monitor (herefter D/M), udviklet af Sofus Birkedal Nielsen, hvormed det kan lade sig gøre at downloade et program via RS232 uden at skulle brænde 28

41 5.2 Hukommelse og perifære enheder en ROM for hver gang koden skal ændres, se registre, singlesteppe m.m. Dette kan der læses mere om i den medfølgende manual [Nielsen(2000)]. D/M består af en udleveret ROM og en brændt PEEL, samt et kredsløb, der skal tages højde for i designet af systemet. Dette kredsløb ses på figur 5.3, og indeholder, udover interfacedelen med kommunikation, trap og reset, også Powerup Reset. Desuden skal ROM en adressedekodes, og der skal som minimum placeres RAM i adresseområdet 1000h 107Fh Figur 5.3: Kredsløb til Debugger/Monitor [Nielsen(2000), s. 15] ROM Til D/M, er udleveret en 64 k 16 bit EPROM, [STMicroelectronics(1998)] som er brændt med program fra adresse 0-0FFFh. Denne EPROM, har en accesstid på 100 ns. Da dette er mere end de 30 ns, der kræves for at læse ROM en i en instruktionscyklus, skal præcis en wait-cycle introduceres ved brug af denne, da ,7 ns er tilstrækkeligt. Timing for en enkelt wait-cycle er analyseret i appendiks E.2.2, og introduceres ved hjælp af adressedekodningen, i afsnit 5.3. Da der udelukkende skal læses fra EPROM, skal der tages højde for de input, der kan have en uønsket effekt på dette, og det ønskes at skifte mellem standby og læsning, som det ses i databladet [STMicroelectronics(1998), s3]. Input er forbundet som nedenfor, idet Adr angiver et udgangssignal fra adressepeelen, der bliver analyseret i afsnit 5.3. E (Chip Enable) forbindes til CS PROMAdr G (Output Enable) forbindes til READ Adr P (Program) trækkes høj PP (Program supply) forbindes til stel 29

42 Design af DSP-system RAM Til den øvrige hukommelse, er det valgt at benytte RAM til både data og program. Kravet til denne RAM, er at den skal kunne tilgåes i en enkelt instruktionscyklus, det vil sige en accesstid på maksimalt ca. 30 ns, ud fra analysen i appendiks E.2.2. Desuden skal der ialt være 124 k 16 bit adresserbar hukommelse 1. Det er valgt at benytte to 128 k 8 bit RAM-blokke med en accestime på 15 ns, [Toshiba(1998)], hvor de nederste 64 k (der går 4 k tabt pga. ROM) adresseres som program, og de øverste 64 k adresseres som data ved at generere et signal, Data/Program select på A16. På RAM forbindes adressebussen parallelt til begge chips, og databussen deles så D 0 -D 7 forbindes til lower RAM og D 8 -D 15 forbindes til D 0 -D 7 på upper RAM. Input er forbundet som vist nedenfor, idet Adr angiver et udgangssignal fra adressepeel. CE (Chip Enable) forbindes til CS RAMAdr OE (Output Enable) forbindes til READ Adr WE (Write Enable) forbindes til WRITE 2 Adr A16 (MSB) forbindes til DS/PS Adr Interfaceet Til systemet ønskes interface i form af knapper, et jog-wheel samt et display. Disse memory mappes sammen med D/M, der kræver interface 15 (0Fh), og dette memory map, der kan ses i appendiks H, benyttes som grundlag for adressedekodningen. Knapper og jog-wheel implementeres således at der trigges ved aktivitet, og latches ud ved læsning, hvorefter der skal sendes en reset kommando til en anden adresse, hvilket er yderligere beskrevet i afsnit Knapaflæsningen er tildelt interface 0 og reset interface 2. Displayet interfaces vha. en latch (programmeret i en PEEL). Denne kræver et chip select, og er tildelt interface Adressedekodning I afsnit 5.2 er defineret hvilken hukommelse og I/O, der skal tilsluttes DSP en, og for at tilgå denne, adressedekodes vha. en programmeret PEEL. På figur 5.4 ses et memory map over hukommelse og perifære enheder, der skal adressedekodes. Adressering udføres ved hjælp af en 22CV10 PEEL [ICT()]. Chip select af hukommelse foretages ud fra adresseben A 12 -A 15, for at adskille ROM og RAM, samt PS og DS, der indikerer hhv. program- og datahukommelse. Chip select af display og knapper foretages ud fra Adresseben A 0 -A 3 samt IS. En wait-cycle genereres, som beskrevet i appendiks E.2.2 ved at generere et lavt signal til READY ud fra MSC signalet, der går lav, lige efter en hukommelsesinstruktion er udført, og STRB, samt 1 Kravet er 124 k word RAM, da der kan adresseres 2 64 kilo words og 4 kilo words allerede er udfyldt af ROM 2 WRITE trækkes kun lav, når R/W og STRB begge er lave 30

43 5.3 Adressedekodning Program Data Interfaces 0000h 0000h 0h Knapper Intern RAM D/M ROM 0FFFh 1000h D/M RAM 107Fh 1080h Program RAM 07FFh 0800h Data RAM 1h Display 2h Reset knapper 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh D/M FFFFh FFFFh Figur 5.4: Memory map for DSP-system chip select til ROM en, da det kun er denne, der kræver en wait-cycle. I alle andre tilfælde, skal READY altså være høj. PEEL koden kan ses i appendiks F.1. 31

44 Design af DSP-system 5.4 A/D og D/A konverter For at kunne behandle guitarsignalet med digitale effekter i DSP en, er det nødvendigt med en analog til digital (A/D) konverter og en digital til analog (D/A) konverter. Det er i projektet valgt at benytte et CS4218 codec [Crystal(1996)]. Det valgte codec indeholder to 16 bit delta-sigma A/D konvertere og to 16 bit delta-sigma D/A konvertere, der kan køre med en samplerate på op til 50 khz figur 5.5 illustrerer den interne opbygning. RESET PDN SMODE3 SMODE2 SMODE1 SDIN SDOUT SCLK SSYNC POWER CONTROL DIGITAL FILTERS D/A D/A SERIAL INTERFACE CONTROL VOLTAGE REFERENCE OUTPUT ATTENUATION OUTPUT MUTE LOUT ROUT DO1 MF5:DO2/INT MF2:F2/CDIN MF1:F1/CDOUT DI1 MF6:DI2/F1 MF3:DI3/F3/CCLK MF4:MA/CCS REFGND REFBYP REFBUF MF7:SFS1/F2 MF8:SFS2/F3 FILT DIGITAL FILTERS A/D A/D INPUT GAIN INPUT MUX LIN1 LIN2 RIN1 RIN2 CLKIN VD VA DGND AGND Figur 5.5: Blokdiagram over den interne opbygning af codec et [Crystal(1996), s. 1] Seriel kommunikation Codec et kommunikerer med DSP en gennem en seriel forbindelse. Codec et kan køre i tre forskellige modes (SM3, SM4 og SM5). Disse afgør, hvordan den serielle kommunikation fungerer. I SM3 sender codec et først 16 bit data plus 16 statusbit for venstre kanal, hvorefter der sendes tilsvarende for højre kanal. Disse statusbit fortæller om signalet er klippet, eller om der er sket andre fejl i konverteringen. DSP en skal i SM3 ligeledes sende 2 x 32 bit til codec et. De første 32 bit er data samt kontrolbit for venstre kanal, og de sidste tilsvarende for højre. Kontrolbitene bestemmer forstærkningen/dæmpningen af signalet samt, hvilken kanal signalet skal sendes ud på. Dette betyder at DSP-systemet i SM3 skal sende 64 bit i hvert frame. Mode 4 (SM4) fungerer på samme måde som SM3, dog sendes status- og kontrolbit ikke over samme serielle forbindelse, men på en separat asynkron serielforbindelse. Herved reduceres framestørrelsen i SM4 til 32 bit. Når der køres i SM3 eller SM4 kan codec et enten køre som master eller slave. Som master sender codec et et clocksignal ud samt en framesynkroniseringspuls når der startes på en ny frame. I slave mode forventer codec et modtage disse signaler fra en anden enhed, evt. et andet codec, herved kan flere codec dele den samme serielforbindelse. I SM5 overholdes serielkommunikations standarden I 2 S (Integrated Interchip Sound), der bruges til at overføre digital lyd mellem enheder. Den anvendte DSP understøtter ikke denne standard. Frame størrelsen er ligeledes 64 bit for SM5 og kan kun køre som master. Det valgt at køre codec et i SM4, da dette mindsker antallet af bits der skal sendes for hver sample 32

45 the control data on an independent serial port. channel and the second 16 bits being the right This reduces the audio serial bus bandwidth by channel. The Appendix B section contains more half, providing an easier interface to low-cost information on low-cost implementations of this DSPs. The audio serial port sub-frame is illustrated in Figure 19 for SM4. sub-mode. SMODE1 = 1 selects 5.4 Master A/Dsub-mode og D/A konverter with a SMODE1 SMODE2 SM4, Sub-Mode frame width of 64 bits. This sub-mode allows up 0 0 Master, 32 BPF to two codecs to occupy the same bus. SMODE2 0 1 Slave, 128/64/32 BPF is now used to select the particular time slot. If og samtidig 1 giver 0 mulighed Master, for, 64 at BPF, forsimple TS1 interfacet SMODE2 mellem= codec et 0 the codec og DSP en. selects time Da der slot kun 1, er which is the first 32 bits. If SMODE2 = 1 the brug for 1 én kanal 1 er detmaster, valgt, 64 atbpf, codec et TS2 skal køre som master. Figur 5.6 illustrerer signalerne i codec selects time slot 2, which is the second denne opsætning. Table 6. SM4 Sub-Modes. 32 bits. Sub-Frame (master) SSYNC (slave) SCLK SDOUT ADC - Right Word LSB MSB ADC - Left Word LSB MSB ADC - Right Word LSB MSB ADC - Left Word SDIN DAC - Right Word LSB MSB DAC - Left Word LSB MSB DAC - Right Word LSB MSB DAC - Left Word Figure 19. SM4-Audio Serial Port, 32 BPF Figur 5.6: Den serielle kommunikation i SM4 [Crystal(1996), s. 22]. 22 DS135F1 Det ses af figur 5.6 at codec et sender et framesynkroniseringssignal ud på SSYNC, når der startes på en ny frame, samt at den første halvdel af framen indeholder lyden til/fra den venstre kanal. De sendte data er i 2 s-komplement med den mest betydende bit (MSB) først. Dette format passer direkte til DSP en hvis denne sættes op til at køre i med 16 bit data længde, og venter på ekstern framesynkroniseringspuls. Figur 5.7 viser en signalgraf over DSP ens serielle kommunikation. DSP en forventer at der kommer data på DR (data receive) lige efter der er kommet en framesynkroniseringspuls. Disse data overføres og når det forventede bitantal er overført genereres et internt interrupt i DSP en, der fortæller at der er modtaget nye data. Codec et vil begynde at sende de 16 bit for højre kanal lige efter det første word, men DSP en ignorerer disse data, da der ikke er kommet en ny framesynkroniseringspuls. På denne måde overføres kun venstre kanal til DSP en. CLKR FSR DR MSB LSB 8 or 16 Bits RINT Figur 5.7: Signalgraf over modtagelse af serielle kommunikation for DSP en [Texas-Instruments(1993), s. 106]. Kommunikationen fra DSP en til codec et fungerer på samme måde. Der sendes 16 bit lige efter framesynkroniseringspulsen som codec et modtager som data til venstre kanal, og herefter stopper DSP en med at sende data. Codec et forventer dog at der kommer data til højre side, men modtager ingen data, da DSP ens udgang er blevet højimpedant. Som beskrevet ovenfor, overføres status- og kontrolbit via en separat serielforbindelse i SM4. Statusbit kan læses på ben CDOUT og kontrolbit skal skrives til ben CDIN. Det er valgt ikke at benytte status og kontrolbit for at minimere det nødvendige interface til codec et. Herfor kobles codec et som vist i databladet på side 40. Herved kommer codec et til at køre med standard opsætning. 33

46 Design af DSP-system Analoge in- og output filtre I følge databladet er et førsteordens lavpasfilter nok til at forhindre aliasering. Dette skyldes at codec et oversampler signalet med 64 gange samplefrekvensen. Det anvendte input filter er vist på figur 5.8. Det er valgt at gøre filteret aktivt således udgangsimpedansen på det foregående trin ikke har indflydelse på filterets overføringsfunktion. C 9 v in R 8 R 7 C 8 v out R 9 Figur 5.8: 1. ordens lavpasfilter, benyttes som antialiaserings filter og til skalering af signalet. Kondensatoren C 8 DC afkobler signalet og er i databledet sat til 1 µf, denne udgør sammen med indgangsimpedansen i codec et et højpasfilter. Indgangsimpedansen er opgivet til at være minimum 20 kω, herved ligger polen for filteret maksimalt ved 8 Hz, hvilket er uden for guitarens frekvens område. Operationsforstærkerkoblingen bruges både til at lavpasfiltere og skalere signalet. Overføringsfunktionen af koblingen fremgår af formel 5.1 R 7 H ci (s) = R 8 (R 7 C 9 s + 1), p ci = 1 R 7 C 9, H 0,ic = R 7 R 8 (5.1) [Franco(2002), s. 118] Full skala input signal til codec et er typisk på 2,8 V pp og da det maksimale signal fra det foregående trin er på 20 V pp skal signalet nedskaleres med en faktor 2,8/20. Dette fastsætter forholdet mellem R 7 og R 8, R 9 sættes lig R 7 R 8. For at polen ikke skal påvirke den ønskede frekvensrespons vælges det at lægge p ci ved 50 khz. Kondensatoren C 9 sættes lig 1 nf og de resterende komponenter udregnes på baggrund af de ovenstående sammenhænge. De fundne komponentstørrelser fremgår af tabel 5.1. Output filter Udgangssignaletsignalet fra codec et skal ligeledes DC afkobles og filtreres. I databladet anbefales et filter som vist på figur 5.9, hvor R cout er udgangsimpedansen for codec et. Komponent størrelserne er i databladet opgivet til: C 12 = 2, 2 nf, C 10 = 1 µf, R 10 = 40 kω. For at undersøge om de opgivede komponentværdier er optimale til den givne applikation findes filterets overføringsfunktion. Dette gøres ved at opskrive strømligningen for knudepunktet V 2 og sammenhængen mellem V 2 og V out. 34

47 5.4 A/D og D/A konverter R C v cout v 10 2 in C 12 R 10 v out Figur 5.9:. 0 = V in V 2 V 2 R 1 + V out V 2 1 (5.2) cout sc 12 sc 10 V out = V 2 R 10 R sc 10 (5.3) De ovenstående ligninger indskrives i MATLAB og løses med hensyn til V out /V in. Det fundne udtryk for overføringsfunktioner er som forventet et båndpasfilter og fremgår af formel 5.4. H co (s) = sr 10 C 10 s 2 C 12 C 10 R cout + s(r 10 C 10 + C 12 R cout + C 10 R cout ) + 1 (5.4) Ifølge databladet ligger R cout i intervallet Ω. Indsættes de anbefalede værdier i overføringfunktionen findes filterets pol til at ligge et sted i intervallet 92,2-122,4 khz. Da dette ligger langt uden for det ønskede frekvensområde på 10 khz vælges det, at ændre C 12 til 4,7 nf. Dette skubber polen ned i intervallet 43,2-57,3 khz. Ændringen af C 12 fra den anbefalede værdi halverer herved båndbredden og dermed også støjspændingen på udgangen af filteret. Da udgangsimpedansen af systemet ifølge kravene skal være mindre end 100 Ω, indsættes en buffer efter filteret. Komponentværdierne for udgangsfilteret er opsummeret i tabel 5.1 sammen med værdierne for inputfilteret. Komponent Værdi R 7 3, 16 kω R 8 22, 7 kω R 9 2, 8 kω C 8 1 µf C 9 1 nf R kω C 10 1 µf C 12 4, 7 nfω Tabel 5.1: Komponent værider for anti-aliaserings og rekonstruktionsfilter Sample frekvens Som vist på figur 5.5 (side 32) er codec et internt forsynet med digitale anti-aliaserings- og rekonstruktionsfiltre, der automatisk indstiller sig efter samplingsfrekvensen. Figur 5.10 viser antialiaseringsfilterets karakteristik. Ifølge figur 5.10(a), knækker frekvensresponsen for anti-aliaserings filteret ved 0, 4f s. Samplingsfrekvensen kan således udregnes ud fra formel 5.5 hvor f max er den maksimale frekvens i signalet der ønskes repræsenteret. 35

48 Design af DSP-system CS4218 Magnitude (db) Input Frequency ( Fs) (a) Ved Figure 0,4 fs 1. knækker CS4218 ADC filteret Frequency og ved 0,5 Response fs dæmper det ca. 9 db Magnitude (db) Magnitude (db) Input Frequency Input ( Fs) Frequency ( Fs) 0.50 Figure 2. CS4218 ADC (b) Pasbåndsripple Passband Ripple Figur 5.10: Filter karteristikken for det interne anti-aliaserings 0 filter [Crystal(1996), s. 9] f s f max -50 (5.5) -60 0, I kravspecifikationen -80 appendiks A er f max sat til khz, hvilket jævnfør ovenstående formel giver en sample -90 frekvens på 25 khz. Da signalbehandlingen -90 skal foregå i hård realtid, har samplingsfrekvensen meget stor betydning for den beregningsmæssige belastning af DSP en. Det blev herfor undersøgt om deninput beregnede Frequency ( Fs) samplingsfrekvens var nødvendiginput vedfrequency at udføre ( Fs) en række lyttetests. Testen var Figure en3. blindtest, CS4218 ADC hvor Transition gruppens Band medlemmer skulle Figure 4. vudrere CS4218 DAC om Frequency de kunneresponse høre forskel på en Magnitude (db) 0.1 giver -0.0følgende frekvens: -0.1 Magnitude (db) Magnitude (db) række 0.2 samplingsfrekvenser. Det blev konkluderet at en samplingsfrekvens på 20 khz var tilstrækkeligt. Det er valgt at generere de 20 khz ud fra et krystal på 10,245 Mhz hvilket delt med SNR Magnitude (db) , 245e6 f -50 s = = 20, 01 khz (5.6) Det teoretisk bedst mulige SNR ved bit er 96 db. Hvis et sådant SNR skal være praktisk Input Frequency ( Fs) Input Frequency ( Fs) opnåeligt, kræves der meget grundige designovervejelser, og et PCB layout er nødvendigt. En Figure 5. CS4218 DAC Passband Ripple Figure 6. CS4218 DAC Transition Band måling af SNR er foretaget og beskrevet i appendiks D.3, her måles SNR maksimalt til 69 db, og dette DS135F1 kun når der foretages en ekstern båndbegrænsning af signalet. Uden båndbegrænsning 9 måles et SNR på 60 db. At der kan opnåes en så stor forbedring af signal/støjforholdet ved eksternt at filtrere det indikere at en væsentlig del af støjen er indstrålet højfrekvent digital støj

49 6 Design af perifær hardware I dette kapitel er foretaget design af den perifære hardware, der er nødvendig for at kunne benytte systemet, men ikke er nødvendig for at benytte DSP en. Forforstærkerens opgave er at forstærke guitarsignalet op til et niveau, der er mindre følsomt over for indstrålet støj. Brugerinterfacet, der består af display, knapper og et jog-wheel, er nødvendigt for at kunne benytte systemet, da det ellers ikke er muligt at indstille effekter. 6.1 Forforstærker I dette afsnit beskrives design og implementation af forforstærkeren. For at sikre en god overførsel af signalet skal forforstærkeren, ifølge de opstillede krav i kravspecifikationen i appendiks A, have en indgangsimpedans på 2,2 MΩ og et signal/støjforhold på minimum 66 db. Det vuderes at indstrålet støj kan blive et problem, da systemet består af en blanding af analoge og digitale kredsløb. Derfor skal signalet forstærkes således at der opnås et signalniveau på op til 20 V pp, da dette bevirker, at signalet/støjforholdet bliver mindre negativt påvirket af indstrålet støj Designovervejelser Det vælges at opbygge forforstærkeren på baggrund af en ikke-inverterende operationsforstærkerkobling, da det vurderes at denne kobling vil kunne opfylde de ovenstående krav. Udgangspunktet for koblingen er vist på figur 6.1. C 1 er indsat for at DC-blokke signalet og udgør sammen med R 1 et højpasfilter. Koblingens indgangsimpedans bliver herved i pasbåndet lig R 1, når det antages at operationsforstærkernes indgangsimpedans er meget større. En højpasfiltrering reducerer lavfrekvent indstrålet støj, men bør ikke have særlig stor indflydelse på det endelige signal/støjforhold. Filtret hovedopgave er istedet at sikre systemet mod en eventuel DC, f.eks. fra andre effektenheder tidligere i signalkæden. For at overholde kravet til signal/støjforhold skal koblingens egenstøj minimeres. Den samlede støjspænding kan beregnes ud fra formel 6.1. Det første led i formlen beskriver det termiske støjbidrag, andet led er operationsforstærkerens støjspænding, og de sidste to led kommer af operationsforstærkerens støjstrøm. Det ses at støjbåndbredden B indgår i alle leddene i formel 6.1. Støjspændingen vil således blive reduceret ved mindskelse af B. Herfor indsættes et lavpasfilter efter koblingen, så båndbredden begrænses. For yderligere at mindske støjen ses det af formel 6.1, at modstandsværdierne kan reduceres, men da R 1 jævnfør kravene skal være større end 2, 2 MΩ får denne stor betydning for den samlede støjspænding. Dette skyldes at R 1 bliver ganget op med støjstrømmen og samtidig også indgår i det termiske bidrag. Herfor skal de øvrige modstande hol- 37

50 Design af perifær hardware v in C 1 R1 v out R 3 R 2 Figur 6.1: Udgangspunkt for forforstærker koblingen. des små i forhold til R 2 således de ikke bidrager væsentligt til den samlede støjspænding. Tilbage er kun at vælge en operationsforstærker med lav støjspænding og -strøm. Grundet størrelsen af R 1, vil støjstrømmen være den vigtigste parameter. hvor: V nt = 4kT B(R s1 + R s2 ) + (V n B) 2 + (I n R s1 B) 2 + (I n R s2 B) 2 (6.1) V nt er den samlede støjspænding på indgangen [V rms ] V n er operationsforstærkernes støjspænding [V/ Hz] I n er operationsforstærkernes støjstrøm [A/ Hz] k er Boltzmann s konstant (1, ) [J/K] T er den absolutte temperatur [K] B er støjbåndbredden [Hz] R s1 = R 2 R 3 [Ω] R s2 = R 1 [Ω] [Ott(1998), s. 241] For at opnå det variable gain indsættes et potentiometer i serie med R 3. Hermed kan der justeres på tilbagekoblingsfaktoren i koblingen. Det vælges at indsætte potentiometret i serie med R 3 frem for R 2, da dette sikrer stabilitet, hvis potentiometret skulle komme til at virke som en afbrydelse. Der indsættes også en kondensator i serie med potentiometret til stel. Denne giver en højpasvirkning samtidig med at den undertrykker DC på udgangen. Dette sker, fordi den virker som en afbrydelse overfor DC og herved sikres at der kun er én gangs tilbagekobling af DC. Herefter ser koblingen ud som vist på figur 6.2. Overføringsfunktionen for forforstærkeren er udledt til følgende: H(s) for = sr 1 C 1 (s C 3 (R 3 + R 5 + R 2 )) (s R 1 C 1 + 1)(s C 3 (R 3 + R 5 ) + 1)(1 + s R 4 C 2 ) (6.2) 1 z 1 = 0, z 2 = C 3 (R 3 + R 5 + R 2 ) (6.3) p 1 = 1, p 2 = 1 1, p 3 = (6.4) R 1 C 1 R 4 C 2 C 3 (R 3 + R 5 ) Nulpunktet z 2 og polen p 3 afhænger af R 5, så R 5 varierer ikke kun gainet. Ved at fjerne C 3, fjernes vandringen af polen og nulpunktet, men placeringen af C 3 giver dog så gode egenskaber, at denne beholdes. 38

51 6.1 Forforstærker C 1 v in R 1 R 4 v out C 2 R 3 R 2 C 3 R 5 Figur 6.2: Forforstærkerkredsløb Implementering af forforstærker I det følgende beregnes først kondensator- og modstandsstørrelser, hvorefter der vælges en passende operationsforstærker til koblingen. For at overholde kravet til linearitet, beregnes kondensatorog modstandsstørrelser således den maksimale dæmpning i pasbåndet er 0,5 db. Her findes forholdet mellem -3 db frekvensen (ω c ) og -0,5 db frekvensen (ω 0,5 ) for et 1. ordens lavpasfilter: 0, 5 db = 0, 5 db = ( 0, 5 db) 2 = ω 0,5 ω c = ω 0,5 ω c = 1 jω 0,5 ω c ( ω 0,5 ω c ) ( ω 0,5 ω c ) ( 0, 5 db) 2 ( 0, 5 db) 2 1 (10 0,5/20 ) 2 (10 0,5/20 ) 2 = 0, 35 (6.5) Ud fra 6.5 udregnes polplaceringen for lavpasfilteret, der ifølge krav 9 må have op til 0,5 db dæmpning ved 10 khz: p 2 > ω 0,5 1 10e3 2π = 0, 35 0, 35 = 28, 6 khz (6.6) Ligning 6.5 benyttes ligeledes til at beregne polplaceringen for højpasfiltrene, i stedet for -0,5 db indsættes den halve dæmpning -0,25 db og forholdet udregnes til det følgende: ω 0,25 1 (10 = 0,25/20 ) 2 ω c (10 0,25/20 ) 2 = 0, 243 (6.7) 39

52 Design af perifær hardware Da formel 6.7 gælder for et lavpasfilter benyttes det reciprokke forhold til at beregne højpasfiltrenes polplacering: p 1, p 3 < ω 0,25 0, 243 = 70 Hz 2π 0, 243 = 17Hz (6.8) Ud fra de ovenstående krav til polplaceringerne er modstands- og kondensatorstørrelserne beregnet, modstandene er holdt en faktor 10 mindre end R 1, således disse ikke bidrager væsentligt til den samlede støjspænding. Komponentværdier og faktiske pol- og nulpunktsplaceringer fremgår af tabel 6.1. Parameter Værdi R 1 2, 2 MΩ R kω R 3 11 kω R 4 1, 13 kω R 5 47 kω C 1 4, 7 nf C 2 4, 7 nf C 3 1 µf p 1 15, 4 Hz p 2 30, 0 khz p 3 2, 7-14, 5 Hz z 1 0 rad/s 0, 6-0, 7 Hz z 2 Tabel 6.1: Forforstærkerens komponentværider og faktiske pol- og nulpunktsplaceringer Af tabel 6.1 fremgår også vandringen af p 3 og z 2, deres indflydelse på frekvensresponsen kan ses på figur 6.3, der illustrerer forforstærkerens beregnede frekvensrespons for tre forskellige indstillinger af potentiometret R 5. Maksimalt og minimalt gain opnås ved henholsvis 0 Ω og 47 kω. 30 Bode Diagram Magnitude (db) Phase (deg) Frequency (Hz) Figur 6.3: Forforstærkerens frekvensrespons for tre forskellige indstillinger af potentiometret R 5, set fra oven henholdsvis 0 Ω, 17 kω, 47 kω. Det er valgt at benytte en operationsforstærker af typen TLE2071 [Texas-Instruments(2000)], der er en low-noise JFET-input opamp. Den giver mulighed for at bruge forsyningsspænding på op til ±19 V og garanterer en støjspænding på mindre end 17 nv/ Hz og en støjstrøm ikke større end 2, 8 fa/ Hz. 40

53 6.2 Brugerinterface For at beregne forstærkerens samlede støjspænding, beskrevet af formel 6.1, mangles nu kun at kende støjbåndbredden B. Denne kan for et 1. ordens lavpasfilter approksimeres ud fra formel 6.9. B = π 2 f 0 (6.9) [Ott(1998), s. 207] hvor: f0 er -3 db knækfrekvensen for et 1. ordens lavpasfilter. B er støjbåndbredden [Hz] [Hz] Det vælges at benytte den ovenstående approksimation, da det vurderes, at højpasfiltrene ligger så langt nede i frekvens (15 Hz) at de ikke har nævneværdig indflydelse på båndbredden i forhold til lavpasfiltret der ligger omkring 29 khz. Støjbåndbredden approksimeres herefter til: B = π 2 p2 2π = p 2 4 = 46 khz (6.10) Ved at indsætte de fundne komponentværdier og data for operationsforstærkeren i formel 6.1 findes den samlede støjspænding til: 41,8 µv rms. Det bør bemærkes, at dette er støjspændingen uden guitaren tilsluttet, når guitaren tilsluttes parallelkobles forstærkerens indgangsimpedans og guitarens udgangsimpedans, herved bliver R s2 i formel 6.1 lig parallelkoblingen af de to impedanser. Støjspændingen mindskes således når guitaren tilsluttes. Da guitarens udgangsimpedans er frekvensafhængig, benyttes guitarens maksimale udgangsimpedans på 218 kω, fundet i appendiks D.1, til at beregne støjspændingen med guitaren tilsluttet. Støjspændingen findes til: 15,5 µv rms og da guitarens udgangsimpedans i det meste af frekvensområdet er meget mindre end de 218 kω, er dette en worst case værdi for støjspændingen. I appendiks D.2 blev guitarens egenstøj fundet til 200 µv rms og det vurderes forstærkerens støj er ubetydelig i forhold hertil. Det ovenstående kan også vises ved at beregne forstærkerens signal støj forhold (SNR f ) og sammenligne med guitarens på 53 db (se formel 6.11). Hvor V signal sættes til 94, 1 mv rms, hvilket er guitarens rms spænding fundet i Appendiks D.2. ( ) ( ) Vsignal 94, 1 mvrms SNR f = 20log 10 = 20log V 10 = 75, 6 db (6.11) støj 15, 5 µv rms Forstærkerens teoretiske signal støj forhold er således 22 db bedre end guitarens. Kravet til signal støj forhold på 66 db er overholdt med en margin på 10 db. De beregninger der ikke findes i dette dokument kan genereres ved at eksekvere m-filen forforstaerker.m på den vedlagte CD: /forforstaerker/forforstaerker.m 6.2 Brugerinterface Brugerinterfacet består af et monokromt 4 x 16 linjers alfanumerisk display, 6 stk. trykknapper og et jog-wheel. Interfacet kan deles op i to; en del der genererer input til systemet og en der optisk præsenterer relevant data for brugeren. 41

54 Design af perifær hardware Display Displayet der er valgt har en databus på 8 bit (DB0 - DB7), et read/write ben, et register select ben og et enable ben. Krav til timing og initialiseringstider fremgår af databladet [Powertip()] og bliver yderligere behandlet i kapitel 11: Software. Da den benyttede DSP ikke har GPIO ben (General Purpose I/O), er det nødvendigt at tilgå displayet med adressebussen og skrive data til displayet med databussen. Den interne clock i displayet er på 270 khz og displayet kræver derfor stabile signaler ind i væsentlig længere tid, end der er muligt med de eksterne DSP-busser på 10 MHz. For at holde signaler til display stabile i det nødvendige tidsinterval, er en 22CV10 PEEL benyttet som latch. Det er med andre ord en softwareopgave at sikre at timingen overholdes. Kode til PEEL kan findes på CD:/UI/display_PEEL.psf. PEEL en er i øvrigt placeret tæt på DSP en for at belaste den hurtige DSP-bus mindst muligt. Den fungerer således i princippet også som en linedriver til displayet. Displayet tilgås på den eksterne I/O-port, adresse 1h Jog-wheel og knapper Et brugerinput med 6 knapper og et jog-wheel er valgt. Da der som nævnt i ikke er nogle GPIO ben, skal knapperne også adresseres og læses. Igen er en PEEL 22CV10 benyttet. Koden findes på CD:/UI/button_PEEL.psf. De 6 knapper (K0 - K5) er jordet på den ene terminal og forbundet (med pull-up modstande) til et inverteret datainput på en D-flipflop i PEELen. Outputtet af hver enkelt D-flipflop er koblet tilbage til inputtet, så når en knap er trykket på, bliver ettallet på flipfloppen, som ved en one-shot. D- flipfloppene er clocket af den eksterne systemclock på 10 MHz. Jog-wheelet er en 2 bits encoder, der afleverer graykode som output. Encoderen har et A, B og C ben. C jordes og en pull-up monteres på A og B. Outputtet ses på figur 6.4. Opadgående flanke A Rotation med uret B B er høj Opadgående flanke A Rotation mod uret B B er lav Figur 6.4: Signalet ud af encoderen, i forhold til retningen der drejes 42

55 6.2 Brugerinterface Ben A sendes til en D-flipflop, som knap K0 - K5. Outputtet på D-flipfloppen fortæller, om der har været aktivitet på encoderen. A og B sendes til hhv. DATA og CLK på en D-flipflop. Drejes der den ene vej, clockes der et 0 igennem, drejes den anden vej, clockes der 1 igennem. Data for knapperne latches ud på databussen på den eksterne I/O-port, adresse 0h og holdes, indtil de resettes på I/O-port 2h. Hardware platformen til systemet er nu færdig designet, og i de følgene kapitler er foretaget design af de enkelte effekter. Først er design og implementation af den analoge effekt, tremoloen, beskrevet. Efterfølgende er de digitale effekter, delay/echo, equalizer og flanger, designet og simuleret i MATLAB med efterfølgende implementering i assembly, hvor udvalgte kodestumper er vist i rapporten. Den samlede assemblykode kan findes på den vedlagte CD. 43

56 Design af perifær hardware 44

57 7 Design og implementering af tremolo Tremoloeffekten er en periodisk amplitudemodulation af guitarsignalet. Ifølge krav 13, 14 og 15 skal modulationsfrekvensen kunne varieres mellem 0,1 og 10 Hz, modulationsgraden skal kunne varieres fra 0 til 1 og modulationssignalet skal kunne antage form af en sinus, trekant eller firkant. Et eksempel på et signal med tremolo ses i figur amplitude [v] tid [s] Figur 7.1: Et signal på 10 Hz moduleret med et trekantsignal. Modulationssignalet har en frekvens på 0,5 Hz og modulationsgraden er 1. Tremoloen består af en VCA (Voltage Controlled Amplifier) og en LFO (Low Frequency Oscillator). LFO ens funktionalitet er meget lig en klassisk funktionsgenerator, som findes i mange laboratorier. En sinusgenerator kan laves med en marginalt stabil operationsforstærkerkobling, en såkaldt Wienbro oscillator. Sløjfeforstærkningen justeres, så signalet ikke stiger ukontrolleret eller ringer ud. Man flytter altså de konjugerede poler en lille smule til højre og venstre side af jω-aksen i S- planet. Ved meget lave frekvenser og over store frekvensområder, er en sådan sinusgenerator ikke en praktisk løsning. Der ønskes frekvenser fra 0,1 Hz og op til 10 Hz. En anden løsning er at generere sinussignalet ud fra en trekant. En trekantgenerator kan implementeres ved arbitrært lave frekvenser og over meget store frekvensspan. En trekantgenerator kan implementeres naturligt sammen med en firkantgenerator, hvilket passer med krav 15. En trekant/firkant-generator (fremover TF-generator) består i princippet af en (inverterende) integrator og en hysterese. Ved at gøre tidskonstanten større eller mindre i integratoren, kan frekvensen vælges. Hysteresekoblingen vælges frem for Wien-broen, da dens egenskaber passer bedre til applikationen. Da der ikke stilles store krav til sinussignalet der skal modulere gainet, er der flere metoder der 45

58 Design og implementering af tremolo In VCA Out Control Voltage Frequency LFO Depth Waveform Figur 7.2: Principdiagram for tremolo. LFO en styrer gainet i VCA en. Brugeren styrer parametrene frequency, depth og waveform. Figur 7.3: Principdiagram for TF-hysteresekobling 46

59 kan anvendes. En metode benytter en såkaldt sinushøvl. Metoden går ud på at ækvivalere en sinus med liniære stykker. Eksempelvis er stykket fra -30 til 30 på en sinus stort set lineær. En beregning af linjestykkernes hælning til og med 1/4 periodetid kunne se ud som i tabel 7.1 x sin(x) sin (x) 0 0,000 1, ,500 0, ,707 0, ,866 0, ,966 0, ,000 Tabel 7.1: stykvis lineær approksimering af sinus fra 0 til 90 Alle disse linjer udgør tilsammen en indhyldningskurve, der kan komme arbitrært tæt på en ægte sinus Figur 7.4: Sinus vha. stykvis lineær aproksimering fra 0 til 90 I praksis er det applikationen der afgør, hvor tæt ligheden skal være. Der skal bruges flere komponenter, jo flere linjestykker der ønskes, så en afvejning er nødvendig. En anden metode er, at benytte sig af den uliniære forstærkning i en transistor når den næsten er gået i mætning. Benyttes et parret differenstrin, kan gainet justeres så THD under 1% er opnåeligt. [Franco(2002), s. 451]. Overføringskarateristikken for trinet ses på figur 7.5 Fordelene ved begge metoder er, at de er amplitude- og ikke frekvens-afhængige, hvilket er en enorm fordel over store frekvensområder. Den emitter-degenerende differentialkobling er valgt, da den umiddelbart virker mere fleksibel og ikke udgør nogen meromkostning, hvis parrede BJT ere ikke er en nødvendighed i applikationen. 47

60 Design og implementering af tremolo Output Input Figur 7.5: Input og output fra differenstrinet, der viser konverteringen fra trekant til sinus Implementering af tremolo D Afsnittet beskriver kredsløb og komponenter benyttet til tremoloen. Trekant/firkantgeneratoren består af en ikke-inverterende integratorkobling med tidskonstanten τ og en hysteresekobling. En generisk implementering ses i figur Trekant/Firkant-generator C 0 R C 4 11 OA 1 R1 0 Triangle 2 3 R CMP 1 R3 D1 D2 square 0 B Figur 7.6: Trekant/firkant-generator. Den inverterende integrator udgøres af R, C og OA. Schmitt-triggeren udgøres af R 1 til R 3, D 1 og D 2, samt CMP Spændingen V square genereret af komparatoren CMP bliver begrænset til ca. ±1,6 V af D 1 og D 2. Komperatoren vil bibeholde 1,6 V på udgangen, indtil V triangle på udgangen af OA er lav nok til, at spændingen V cmp in over pin 3 på CMP bliver negativ. Spændingen som V triangle skal antage for at få V square til at skifte polaritet, kaldes for V trans og beskrives i formel 7.1. A V trans = ±1, 6V R1 R 2 (7.1)

61 7.1 Implementering af tremolo Når V triangle = V trans vil V square altså skifte polaritet. Figur 7.7 viser spændingerne i kredsløbet. 2 V square V triangle V cmp_in t t t Figur 7.7: Signalerne V square, V triangle og V cmp in afbilledet i samme tidsrum. t er en halv periodetid. R 3 begrænser strømmen, for ikke at beskadige lysdioderne og komperatoren. De benyttede LED s [LIGITEK ELECTRONICS CO.()] er røde og genererer i praksis et spændingsfald på ca. 2,0 V. R 3 sættes til 1 kω. LED erne trækker således 13 ma og afgiver synligt lys. Det er derfor muligt at lave en optisk visning af frekvensen. Hvis den relativt lille forskel på diodefaldet mellem D 1 og D 2 udgør et problem, kan en diodebro og en zenerdiode benyttes. Spredningen mellem dioderne i en integreret diodebro vil være mindre og hvis en zener med en væsentligt større zenerspænding end ca. 0,6 V vælges, vil fejlen blive endnu mindre. Løsningen med LEDer er valgt, da optisk visning vurderesværdifuld for slutbrugeren. Forholdet mellem R 1 og R 2 bestemmer hvor stor amplitude trekanten skal opnå for at opnå skifteniveau i komperatoren. Er R 1 og R 2 lige store, vil amplituden af trekanten og firkanten også være lige stor. R 1 og R 2 sættes til 1 kω. Den inverterende indgang på operationsforstærkeren OA er virtuelt stel. Den konstante strøm, I, der løber gennem R vil oplade C. Tiden, t, det tager at opnå en spændingsændring, v, over C ved konstant strøm, I, udtrykkes ved formel 7.2. t = C I v (7.2) [Franco(2002), s. 451] Spændingsændringen, v, over C vil være ±V square og afgøres af dioderne D 1 og D 2. Strømmen I gennem R vil da være I = v R (7.3) Formel 7.2 kan nu omskrives til: 49

62 Design og implementering af tremolo t = R C v v = R C = τ (7.4) Da t er tiden det tager at opnå en spændingsændring fra 0 V til V peak på trekanten er t en kvart periodetid for hele trekantsignalet. Det følger at frekvensen f kan udtrykkes ved f = 1 4 t = 1 4 R C (7.5) Bemærk at spændingsændringen, v, kun er den samme over C og R, da R 1 = R 2. Forholdet mellem R 1 og R 2 er medtaget i formel 7.6 for fuldstændighedens skyld. f = R 2 R 1 4 R C (7.6) Hvis C sættes til 1 uf og der ønskes frekvenser mellem 0,1 Hz og 10 Hz, Skal R kunne varieres mellem 25 KΩ og 2,5 MΩ. Med de benyttede LEDer er forventet peakværdi for både tre- og firkant 2 V Sinusgenerator Sinusgeneratoren laver trekantsignalet til en sinus vha. en blød klipning. Sinusgeneratoren benytter den logaritmiske overføringsfunktion for en overstyret transistor til at opnå denne. Med et differentialtrin klippes både den positive og den negative halvperiode. Differentialtrinet ses på figur 7.8. Figur 7.8: Emitterdegenereret differentialtrin 50

63 7.1 Implementering af tremolo Ved ligevægtstilstand i trinet er V Triangle = 0 V. U(Q1 emitter ) = U(Q2 emitter ) -0,6 V. Spændingen Sine på collector af Q2 udtrykkes i ligning 7.9: I R12 = U(Q 1 emitter) ( 15V DC) = 14, 4 = 960µA (7.7) R 12 15k I R10 = I R11 = I R12 = 480µA (7.8) 2 U sine = 15V (R 11 I R11 ) = 10, 2V (7.9) For at undersøge signalniveauet for V sine, antages nu, at basisspændingen på Q 1 er høj nok til at tvinge transistoren til overstyring. Collector-emitterstrækningen på Q 1 er nu (næsten) kortsluttet. Hvis der ses bort fra et eventuelt bidrag fra Q 2, vil spændingsdelingen af R 10 og R 12 sikre en emitterspænding på 3 V. Q 2 er altså slukket. Det medfører at V sine = 15 V. Omvendt, hvis basisspændingen på Q 1 er tilstrækkelig lav, kan vi antage at transistoren er slukket. Emitteren på Q 2 er stadig -0,6 V og nu løber der 960 µ gennem R 11. Beregning kan gennemføres som i ligning 7.9. Resultatet er V sine = 5,4 V. V sine er altså symetrisk omkring 10,2 V, har maksimal amplitude på 9,6 V pp og er i fase med inputtet. Trekantsignalet der påtrykkes V Triangle Q1 skal tilpasses, så outputtet er symetrisk og klipper pænt. Den generelle overføringsfunktion for et differentialtrin ses på figur 7.9. Figur 7.9: Forholdet mellem basisspænding og collectorstrøm [Sedra/Smith(1998), s. 492] Det ses at det liniære område der normalt tilstræbes at arbejde i, er mindre end ±V T 25 mv. Ved ca. 5 V T har trinet opnået total klipning og h F E er faldet til noget nær nul. Indgangsimpedansen falder altså til R 12. Kredsløbet til konditionering af trekantsignalet, ses i figur Med en V triangle på ±2 V kan basisspændingen på Q 1 varieres fra ±95 mv til ±125 mv, svarende til ca. 4-5 V T. Bundmodstanden på 200 Ω sikrer lav udgangsimpedans, så den variende indgangsimpedans i trinet bliver negligerbar. For at fjerne DC komposanten, benyttes normalt en kondensator som DC-blokker. Metoden er simpel og billig. LFO en arbejder ned til 0,1 Hz og en overføringskondensator på 1 µf kræver en indgansimpedans på 1,6 MΩ for kun at dæmpe 3 db ved 0,1 Hz, hvormed det kan blive et 51

64 Design og implementering af tremolo Figur 7.10: Input til differentialtrin problem at overholde krav 14 ved lave frekvenser. Istedet er kredsløbet i figur 7.11 valgt. Koblingen har et gain på -6 db, for at bringe signalet til samme niveau som tre- og firkantsignalet. DC offsettet kan indstilles fra 7,5 til 10,5 V. Figur 7.11: Konditionering af outputtet fra differentialtrin VCA En VCA (Voltage Controlled Amplifier) kan bygges af et antal passive og aktive komponenter, men dette er generelt en kompleks affære. Det er muligt at købe integrerede multiplikatorer, der kan håndtere alle fire kvadranter, dvs. multiplicere to signaler med arbitrær polaritet. Det er den løsning der er valgt, under hensyntagen til tid vs. kompleksitet. Prisen er dyrere komponenter. Den valgte multiplikator er AD633 [Analog-Devices(1990)]. Overføringsfunktionen er hvor: X 1 er inputspænding X 2 er inputspænding Y 1 er inputspænding Y 2 er inputspænding Z er offsetspænding W = (X 1 X 2 ) (Y 1 Y 2 ) 10V [V] [V] [V] [V] [V] Sættes X 2 = Y 2 = Z = 0, kan formel 7.10 reduceres til + Z (7.10) 52

65 7.1 Implementering af tremolo W = X 1 Y 1 10V (7.11) Hvis Y 1 tildeles signalet fra LFO en og dette signal kan varieres fra 0 til 10 volt, fungerer multiplikatoren som en VCA med 0 til 1 gg gain. Hvis X 1 benyttes som indgang til guitarsignal og W betragtes som output, kan indhyldningskurver som i figur 7.1 opnås. Da dybden af modulationen skal kunne varieres fra 0% til 100%, skal DC niveauet også kunne varieres i takt med dybden. Ønskes 100% modulation, skal modulationssignalet være 10 V pp og DC-niveauet være 5 VDC. Ved 50% modulation skal modulationssignalet være 5 V pp og DC niveauet 7,5 VDC. Forholdet mellem amplituden og offsettet kan udtrykkes som Offset = 5 modulationsgrad + 10 (7.12) Funktionen er afbildet på figur Figur 7.12: Sammenhængen mellem amplituden og det nødvendige offset funktionaliteten er implementeret med kredsløbet vist på figur 7.13 Kontakten S1 er af break-before-make typen, så det sikres at èt modulationssignal afbrydes, før et nyt sluttes. U1D fungerer dels som buffer og er dels med til at sikre at alle tre signaler har samme amplitude. R 22 A og R 22 B er et stereopotetiometer. Den ene halvdel (A) styrer gain, den anden (B) offset. Potentiometret bør være logaritmisk. Der er ikke stillet krav til sporingen, da der ikke er hørbar afvigelse. Implementeringen af AD633 er triviel og ses på figur

66 Design og implementering af tremolo Figur 7.13: Implementering af offset/gain-kredsløbet Figur 7.14: Implementering af multiplier 54

67 7.2 Konklusion på tremolo 7.2 Konklusion på tremolo Tremoloen er testet efter accepttestspecifikationen i appendiks B.7. Resultatet kan ses i appendiks C.6. Tremoloen overholder ikke krav 14, da guitarsignalet ikke kan dæmpes tilstrækkeligt. Effekten lyder dog stadig umiskendeligt som tremolo og kan høres på den medfølgende CD: /tremolo/tremolo.wav. 55

68 Design og implementering af tremolo 56

69 8 Design og implementation af delay/echo I dette kapitel beskrives overvejelser og metoder til implementation af delay/echo. Kravene er, som beskrevet i appendiks A.6, at brugeren kan tildele guitarsignalet mellem 50 ms og 2 sekunders delay/echo i steps af 50 ms. Gainet af det forsinkede signal skal kunne sættes mellem -12 db og -0,1 db. 8.1 Design af delay/echo Delay/echo er oplagt at implementere digitalt, da effekten kræver en form for hukommelse. Det er muligt at lave analogt delay, omend omstændeligt. En typisk analog implementering vil være enten tapedelay eller via et bucket brigade array. Et tapedelay udnytter et (spole)bånd som signallager til senere afspilning. Bucket brigade teknikken er principielt et arbitrært antal sample-and-hold kredsløb, der er seriekoblede. Dvs. at selvom amplituden stadig er i det analoge domæne, er tiden diskret. Det betyder at både et antialiaserings- og rekonstruktions-filter er en nødvendighed. På baggrund af disse overvejelser er det valgt at implementere effekten digitalt. Delay/echo kan med rette anskues som hhv. et FIR og et IIR-filter. FIR-filtret for delay ses på figur 8.1. z -m G Figur 8.1: Delay med m samples forsinkelse og G gain. Systemet er grundlæggende stabilt, men da det allerede afspillede signal gentages, kan det føre til digital klipning. Hvis et maksimalt gain på 1 er tilladeligt, er der altså risiko for at dynamikområdet for signalet stiger 6 db ( 1 bit) i toppen. Overføringsfunktionen for filtret er H(z) = 1 + G z m (8.1) På figur 8.2 ses overføringsfunktionen for 10 samples delay, f s = 20 khz og G = 0,9 gg. Det ses at resultatet er et kamfilter med et antal af tænder svarende til antal samples i delayet (bemærk at disse overføringsfunktioner kun er afbildet til f s /2). 57

70 Design og implementation af delay/echo 10 Magnitude (db) Normalized Frequency ( π rad/sample) 100 Phase (degrees) Normalized Frequency ( π rad/sample) Figur 8.2: 10 samples forsinket Echoet er, i modsætning til delayet, en tilbagekobling af signalet, se IIR-filtret på figur 8.3. Hermed opnås overføringsfunktionen i formel 8.2. G z -m Figur 8.3: Signalgraf for et echo på m samples og G gain. H(z) = 1 1 G z m (8.2) Ud fra signalgrafen ses at det medfører ustabilitet, hvis sløjfeforstærkningen G overstiger 1. Overføringsfunktionen for et echo på 10 samples ses på figur 8.4. Overføringsfunktionen for echo antager, som overføringsfunktionen for delayet, maksimumværdi i hvert lige multiplum af f s delt med forsinkelsen i antal samples, se formel 8.3. H(z) max = Ligeledes gælder formel 8.4 for minimumsværdier. 2π echo samples N N = 0, 2, 4... (8.3) H(z) min = 2π echo samples N N = 1, 3, 5... (8.4) Det tætte slægtskab imellem de to effekter er tydelig. Ved at spejle overføringsfunktionen for den 2π ene effekt over 0 db linien og forskyde echo samples hhv. til højre eller venstre, opnåes overføringsfunktionen for den anden effekt. Impulsresponset for echoet ses på figur

71 8.1 Design af delay/echo 20 Magnitude (db) Normalized Frequency ( π rad/sample) 100 Phase (degrees) Normalized Frequency ( π rad/sample) Figur 8.4: Overføringsfunktion for echo på 10 samples og gain på 0, Amplitude Samples Figur 8.5: Impulsresponset af echo på 20 samples og gain på 0,9 gg. 59

72 Design og implementation af delay/echo 8.2 Implementation af delay/echo Delay/echo implementeres i den samme rutine, da det er muligt at lave som et filter på Direkte Form II. Hvis begge tilbagekoblingskoefficienterne på figur 8.6 er 0, slipper signalet uhindret i- gennem rutinen. Dersom den ene (og kun den ene) koefficient sættes til 1, vil filtret udvise rene FIR eller IIR egenskaber, og således være enten delay eller echo. Fordelen ved Direkte Form II strukturen er den delte delaybuffer. Kravet til længden af delayet er på 2 sekunder, tilsvarende ca. 40 kilo word lagerplads. Da DSP en kun kan adressere 64 kilo words er det nødvendigt at delayog echo-effekterne deler samme buffer. Derfor er Direkte Form II at foretrække. z -m G 0/1 1/0 Figur 8.6: Signalgraf for echo og delay. Assemblykodningen af delayet må anses for at være triviel, flowchart ses på figur 8.7. Bufferen er implementeret som en ringbuffer og delaypointeren sørger dels for at hente den forsinkede sample, dels for at nyeste sample overskriver den ældste. Delaylængden styres ved at gøre ringbufferen kortere eller længere. Den eneste forskel på delay og echo er, hvorvidt den sample der gemmes har fået adderet den ældste sample først. Ved delay gemmes den nyeste sample i bufferen uden nogen ændringer. Ved echo gemmes nyeste sample, adderet med echoet. Ved start af rutinen hentes pointeren og testes for valide værdier og ved udgangen af rutinen gemmes alle benyttede data. Herved sikres at intet overskrives af tidligere eller senere rutiner. Alle parametre rutinen benytter, styres fra mainfunktionen. 60

73 8.2 Implementation af delay/echo Figur 8.7: Flowdiagram over delay/echo effekten. Som kodeeksempel er kontrollen af bufferlængden til de forsinkede sample inkluderet. DL_DELAY er længden på delayet i samples og ændres i main-programmet. Når pointeren til den forsinkede sample bliver større end det ønskede delay, sættes den til at pege på første adresse i bufferen igen. 61

74 Design og implementation af delay/echo 1 DELAY BUFFER 2 3 LAR AR0, DL_DELAY ; Den ønskede længde a f d e l a y e t, DL_DELAY s e n d e s t i l AR0 4 5 LAR AR1, DL_POINTER ; B u f f e r p o i n t e r e n s e n d e s t i l AR1 6 7 LARP AR1 ;AR p o i n t e r p e g e r på AR1( b u f f e r p o i n t e r e n ) 8 9 CMPR 02 ; Er d e l a y p o i n t e r e n b l e v e t s t ø r r e d e t ønskede d e l a y? BBZ NO_RESET ; h v i s ikke, så hop o ver r e s e t LAR AR1, BUFFER_RESET ; E l l e r s s æ t t e s d e l a y p o i n t e r e n t i l s t a r a d r e s s e n NO_RESET : 8.3 Konklusion på delay/echo Delay/echo-effekten er testet efter accepttestspecifikationen i appendiks B.9. Resultatet kan ses i appendiks C.8. Det fremgår at delay/echo overholder alle de opstillede krav. Lydoptagelser af den implementerede effekt kan findes på den vedlagte CD:/delay_echo/delay.wav og /delay_echo/echo.wav. 62

75 9 Design og implementation af flanger Dette kapitel indeholder analyse og design af flangereffekten. I afsnit er flanger effekten kort beskrevet. Signalgrafen over flangereffekten er illustreret på figur 9.1. Til det oprindelige signal adderes et forsinket signal, der skaleres med en faktor mix. Det forsinkede signal forsinkes med et fast indstillet delay z -f samt et variabelt delay z -v(t). Det variable delay styres af en lav-frekventosccillator(lfo) der har kurveform af en sinus. Delay af digitale signaler sker normalt kun i hele antal samples, men dette er ikke tilstrækkeligt i flanger effekten, da det vil forsage små hakker i lyden. Herfor er det nødvendig at foretage en interpolation for at beregne en værdi der ligger et sted mellem to samples inden det forsinkede signal kan lægges til det oprindelige. + z f z v(t) G Mix LFO Figur 9.1: Signalgraf over flanger effekten. Brugeren skal kunne stille på i alt 4 parametre: Fast delay, mix, LFO frekvens og depth. Depth angiver amplituden på LFO en og herved hvor meget det variable delay svinger. Det variable delay skal således svinge mellem nul og parameteren depth. Figur 9.2 illustrerer hvordan det samlede delay udregnes som summen af det faste og variable delay. Formel 9.1 beskriver overføringsfunktionen af flangeren, hvor f er det faste delay og v(t) det variable. Det ses at overføringsfunktionen minder meget om overføringsfunktionen for delayeffekten beskrevet tidligere. Frekvensresponsen for flangeren er hermed også et kamfilter, men pga. det variable delay ændrer tænderne i kamfilteret position og antal med tiden. Dette er vist på figur 9.3 hvor frekvensresponsen for to forskellige delays er plottet. H f (z) = 1 + G mix z (f+v(t)) (9.1) Når delayet øges, bevirker dette at tænderne i kamfilteret skubbes sammen på frekvensaksen, og omvendt når det forminskes. Denne ændring af frekvensresponsen bevirker at systemet ikke er tidsinvariant. Parameteren G mix justerer dybden af tænderne i frekvensresponsen, på figur 9.3 er G mix sat til 0 db. Hvis denne mindskes, afrundes tænderne i frekvensresponset. 63

76 Design og implementation af flanger tid [s] Fast delay Depth Samlet delay [samples] Figur 9.2: Det samlede delay udregnes som summen af det faste og variable delay. Det variable delay svinger mellem nul og værdien af parameteren depth Delay = 10 sample Delay = 15 sample 5 Amplitude [db] Normaliseret frekvens x π [rad/sample] Figur 9.3: Frekvensresponsen af en flanger varierer med tiden. 64

77 9.1 LFO 9.1 LFO Der skal udvikles en algoritme til at generere det variable delay, og ifølge krav 25 i kravspecifikationen, skal det variable delay styres af en sinuskurve hvor frekvensen skal kunne justeres mellem 0,1 Hz - 2,0 Hz i step af 0,1 Hz. Da systemet kører med en samplingsfrekvens på ca. 20 khz giver dette punkter for en sinus på 0,1 Hz. Da en sinuskurve er symmetrisk, kan tallet deles med 4 hvilket giver punkter på kurven. Men da DSP en som standard kun kan adressere 64 k words og der også skal være plads til andre effekter, kan kurven ikke tabellægges. En anden løsning kunne være at tabellægge nogle enkelte udvalgte punker på kurven og lave en en stykvis linearisering ud fra disse. Dette ville løse pladsproblemet, men vil formentlig kræve en del programmering. Det er istedet valgt at benytte CORDIC (COordinate Rotation DIgital Computer) algoritmen som inspiration til at implementere sinusgeneratoren ud fra CORDIC I det følgende beskrives hvordan CORDIC algoritmen i projektet benyttes til at generere en sinuskurve. CORDIC bygger på rotation af en vektor på enhedscirklen. Denne rotation kan beskrives ved et matrix vektor produkt som vist i formel 9.2 [Pirsch(1998), s. 135], hvor [x 0 y 0 ] = [1 0] er vektoren der ønskes roteret, [x 1 y 1 ] er den roterede vektor og θ er vinklen hvormed vektoren roteres. [ x1 y 1 ] [ cos(θ) sin(θ) = sin(θ) cos(θ) ] [ x0 y 0 ] (9.2) Ved at udnytte følgende sammenhængen mellem de trigonometriske funktioner: cos(θ) = tan 2 (θ) og tan(θ) = sin(θ) cos(θ) (9.3) Kan cos(θ) faktoriseres ud således at formel 9.2 kan omskrives til: [ x1 y 1 ] = [ tan 2 (θ) 1 tan(θ) tan(θ) 1 ] [ x0 y 0 ] (9.4) Dette kan omskrives til en iterativ formel for rotation af en vektor: [ xi+1 y i+1 ] = ( 1 xi y i tan(θ i ) 1 + tan 2 (θ i ) x i tan(θ i ) + y i ) (9.5) Hver gang ovenstående beregning udføres rotetes vektoren således vinklen θ rundt på enhedscirklen. Figur 9.4 illustrerer hvordan vektoren vil bevæge sig rundt på enhedscirklen. X-værdien vil være lig cosinus og y-værdien sinus til vinklen. Hvis θ holdes konstant vil y i = sin((i)θ). På denne måde kan en sinuskurve frembringes ved i små step at rotere vektoren rundt på enhedscirklen og benytte y i+1 som output fra algoritmen. Algoritmen er dog svær at implementere i en DSP da den kræver at tan(θ) beregnes. Dette kunne løses med tabel opslag. I stedet vælges det i CORDIC algoritmen at begrænse tan(θ) til, at antage værdierne 2 p, p 0, 1, 2... B, hvor B er bitopløsningen i den benyttede computer. Udtrykket ser herefter således ud: 65

78 Design og implementation af flanger 1 y [x 5, y 5] [x 4, y 4] sin(3 θ) [x 3, y3] [x 2, y2] [x, y ] 1 1 θ cos(3 θ) 1 [x 0, y 0 ] x Figur 9.4: Vektoren roteres et fast step rundt på enhedscirklen. [ xi+1 y i+1 ] = K i ( xi y i 2 p x i 2 p + y i ), K i = p (9.6) Herved kan multiplikationen med tan(θ) erstattes med at skifte p bit til højre, hvilket beregningsmæssigt er meget simplere. Af formel 9.6 ses det at [x i+1 y i+1 ] kun afhænger af [x i y i ] herfor kræver algoritmen ikke at de forrige værdier gemmes, og kræver derfor en begrænset mængde lagerplads af systemet. En begrænsning i algoritmen er, at θ kun kan antage værdierne tan 1 (2 p ), p 0, 1, 2... B. Dette fastlåser algoritmen til at køre med B forskellige frekvenser når den skal benyttes til en sinusgenerator, når det antages der skal udregnes et nyt punkt på kurven for hver sample. Som det fremgår af krav 25 i kravspecifikationen, skal frekvensen kunne varieres fra 0,1-2,0 Hz i step af 0,1 Hz. Med algoritmens beskrevne form er dette ikke muligt, da de fleste frekvenser vil ligge langt uden for det ønskede område, når der benyttes en samplingsfrekvens på ca. 20 khz. Herfor vælges det at ændre på den typiske CORDIC begrænsning af tan(θ) således, at denne kan antage alle 16-bits 2 s-komplement tal. For overskuelighedens skyld indføres en ny variabel γ der beskriver den begrænsede tangens. Algoritmen se herefter ud som vist i formel 9.7. [ xi+1 y i+1 ] = K i ( xi y i γ x i γ + y i ), K i = γ 2 (9.7) Denne ændring bevirker, at de produkter der før kunne beregnes med højreskift skal udføres som en rigtig multiplikation. Dette forværrer dog ikke beregningskompleksiteten væsentligt, da den benyttede DSP kan udføre en multiplikation på én instruktion. Vinkelsteppet θ st for en given LFO frekvens (f LFO ) kan beregnes ud fra formel 9.8. Indsættes 0,1 Hz giver dette følgende vinkel: 66 θ 0,1 = θ st = 2πf LFO f s [rad] (9.8) 2π 0, = 31, rad (9.9)

79 9.1 LFO Da tan(x) x for små tal, kan γ 0,1 direkte findes af resultatet ovenfor ved at afrunde til 16-bits præcission. γ 0,1 = 2 15 = 30, (9.10) Da dette giver én LSB er det herfor den lavest muligt frekvens algoritmen kan generere med 16-bits præcision. Indsættes den afrundede værdi i formel 9.8 kan f LFO findes til: f LFO = π = 0, 097 Hz (9.11) Da frekvensen ligger inden for tolerancen på ±0, 05 Hz, accepteres denne afvigelse. Størrelsen af γ for de øvrige frekvenser, samt den faktiske frekvens fremgår af tabel 9.1. Det ses at alle frekvenser ligger inden for den fastsatte tolerance. Ønsket frekvens [Hz] γ Faktisk frekvens [Hz] 0, , 097 0, , 194 0, , 292 0, , 389 0, , 486 0, , 583 0, , 680 0, , 778 0, , 875 1, , 972 1, , 069 1, , 166 1, , 263 1, , 361 1, , 458 1, , 555 1, , 652 1, , 847 1, , 944 2, , 041 Tabel 9.1: Alle de faktiske frekvenser ligger inden for den fastsatte tolerancen på ±0, 05 Hz. Det fremgår desuden af tabel 9.1, at den største værdi af γ er γ 2,0 = Indsættes denne værdi for γ i formlen for K i i ligning 9.7 findes følgende resultat: K i = ( ) 2 = = 999, (9.12) Da K i herfor for alle værdierne af γ vil være tættere på èn end der kan repræsenteres med 16 bit, vælges det at sætte K i = 1, hvilket simplificerer algoritmen yderligere. Den udledte algoritme er blevet simuleret i MATLAB for at undersøge hvilken indflydelse DSP ens numeriske præcision har på algoritmen. DSP ens numeriske præcision er forsøgt efterlignet ved at gøre følgende: 1. Trunkere resultatet af summer til 32-bit, hvilket er bredden af akkumulatoren. 2. Multiplikanter trunkeres til at være 16 bit. 3. Den største værdi der kan repræsenteres er: 1 LSB

80 Design og implementation af flanger 4. Den mindste værdi der kan repræsenteres er: 1. Ud fra simuleringerne kunne det konkluderes, at det var nødvendigt at gemme både den høje og lave del af akkumulatoren for hver iteration, samt at det er tilstrækkeligt, at udregne multiplikationerne som 16 x 16 bit svarende til, at det kun er den høje del af akkumulatoren der ganges med γ. Ydermere viste simuleringen at algoritmen producerer tal der er større end et, hvilket i DSP en vil give overflow. Herfor er det nødvendigt at disable overflow i DSP en når algoritmen køres. På figur 9.5 ses resultatet af en simulering sammenholdt med MATLAB s indbyggede sinusfunktion ved samme frekvens, i simuleringen er γ sat til: der som beskrevet ovenfor giver en frekvens på ca. 0,1 Hz Amplitude CORDIC sin(x) Tid [sample] x 10 5 Figur 9.5: Sinuskurve genereret ud fra den udledte algoritme sammenlignet med MAT- LAB s sinus funktion ved samme frekvens. Den simulerede sinus er trunkeret til den samme beregningsmæssige bit-opløsning som DSP en kører med. Af figur 9.5 bemærkes ingen afvigelse mellem de to kurver, men hvis der zoomes meget ind på èn af toppene af kurven, ses en afvigelse som illustreret på figur 9.6. Afvigelsen skyldes at akkumulatoren går i mætning fordi overflow er disablet. En måde at fjerne denne afvigelse på kunne være at køre i Q14 i stedet, men dette bevirker at algoritmen ikke længere kan køre ved 0,1 Hz, da γ 0,1 = 2 15 ikke kan repræsenteres i Q14. Herfor vælges det at acceptere afvigelsen der desuden ikke forventes at være hørbar. Filen til simulering af CORDIC algoritmen kan findes på den vedlagte CD: /flanger/cordic.m For at omsætte sinuskurven til det variable delay, der skal bruges af effekten, skiftes outputtet fra algoritmen et bit til højre, svarende til at anvende Q14-format. Herefter adderes med 1, således resultatet nu svinger mellem 0 og 2, regnet i Q14. Ved at gange med parameteren depth, opnås den ønskede amplitude af signalet. Som beskrevet i starten af afsnittet skal der foretages en interpolation af signalet herfor gemmes en værdi, svarende til delayet i hele antal samples, samt en værdi svarende til fraktionen af næste sample. Det beskrives i det følgende afsnit hvordan disse værdier bruges til at beregne den interpolerede sample. 68

81 9.2 Interpolation Amplitude Tid [sample] CORDIC sin(x) x 10 5 Figur 9.6: Da overflow er disablet, går akkumulatoren i mætning, hvilket bevirker at toppen på kurven bliver flad. I den negative halvperiode sker en lignende trunkering. 9.2 Interpolation Det samlede delay udregnes som summen af det faste delay, f, og det variable, v(t). For at undgå hakker i lyden, er det nødvendigt at udregne en passende værdi af signalet mellem to samples. Dette gøres ved lineær interpolation som vist på figur 9.7, hvor d N er delayet i hele antal samples og d f er fraktionen af næste sample. Amplitude x[n (d +1)] N Interpoleret sample x f x[n d ] N d f n (d N+1) n d N n Tid [sample] Figur 9.7: For at undgå hakker i lyden, udregnes en ny værdi af signalet mellem to samples vha. lineær interpolation. Den interpolerede værdi af signalet x f, der skal lægges til det oprindelige, udregnes på baggrund af formel x f = x[n d N ] + d f (x[n (d N + 1)] x[n d N ]) (9.13) Ved høje frekvenser vil den linære interpolation introducere fejl fordi, der kun er en begrænset mængde samples til at repræsentere en sinus med høj frekvens. Man kunne f.eks. forestille sig at toppen af en sinus kurve blev klippet af fordi der ikke ligger en sample i toppunktet, men i stedet en sample et godt stykke på hver side af toppunktet. Herved bliver toppen skåret af når der laves 69

82 Design og implementation af flanger lineær interpolation mellem de to punkter. 9.3 Implementation af flanger På figur 9.8 ses et flowdiagram over implementationen af flangeren. Assemblyfilerne kan findes på den vedlagte CD /asm/flanger.asm Delaykæden er realiseret som en ringbuffer med fast længde. Placeringen af den forsinkede sample x[n d N ] udregnes på baggrund af placeringen af den nyeste sample minus det beregnede delay i hele antal samples. For at simplificere beregningen af den interpolerede værdi, lægges den sidste sample i bufferen også i adressen før bufferens start. På denne måde skal der ikke checkes om man går uden for bufferen når x[n (d N + 1)] skal bruges, da denne altid ligger én plads før i hukommelsen. Da CORDIC-algoritmen vurderes som den mest interessante del af effekten, er denne gennemgået her med først en forklaring, og derefter assemblykoden for implementationen. Algoritmen tager i alt 14 instruktioner at afvikle og bliver afviklet som en del af flangereffekten. Som beskrevet gemmes værdien af y i+1 og x i+1 med 32 bits opløsning for hver iteration. I algoritmen skelnes således mellem de 16 mest betydende bit i form af COR_A_X, COR_A_Y og de mindst betydende COR_A_XL, COR_A_YL. Multiplikationerne med γ der i koden er benævnt COR_A_ST, udføres kun som 16 x 16 bit. 1 2 CORDIC( S i n u s g e n e r a t o r ) 3 4 SOVM ; D i s a b l e r o v e r f l o w 5 6 ZALS COR_A_XL ; XL lægges i acc low med s i g n e x t e n t i o n d i s a b l e t 7 ADDH COR_A_X ; X high lægges i acc high 8 9 LT COR_A_ST ; COR_ST > T r e g i s t e r 10 MPY COR_A_Y ; Y COR_ST MPYS COR_A_X ; Acc = X Y COR_ST og P r e g i s t e r = X0 COR_ST 13 SACH COR_A_X ; gemmer X 14 SACL COR_A_XL ; gemmer x low ZALS COR_A_YL ; YL lægges i acc low med s i g n e x t e n t i o n d i s a b l e t 17 ADDH COR_A_Y ; y high lægges i acc high APAC ; acc = Y + X COR_ST 20 SACH COR_A_Y ; gemmer Y 21 SACL COR_A_YL ; gemmer Y low ROVM ; E n a b l e r o v e r f l o w i g e n 70

83 9.3 Implementation af flanger Figur 9.8: Flow diagram over flangereffekten. 71

84 Design og implementation af flanger 9.4 Konklusion på flanger Flangeren er testet jævnfør accepttest-specifikationen i appendiks B.10. Resultatet kan ses i appendiks C.9. Her ses at flangeren overholder alle de, i kravsspecifikationen i appendiks A, opstillede krav. De målte værdier af sinusgeneratorens frekvens afviger som forventet fra kravet, men stemmer fint overens med de beregnede værdier, der fremgår af tabel 9.1. Den implementerede sinusgenerator kunne med fordel også benyttes i andre effekter, f.eks. kunne den bruges i implementationen af en digital tremolo. En lydoptagelse af flangereffekten kan findes på den vedlagte CD: /flanger/flanger.wav. 72

85 10 Design og implementation af equalizer Som beskrevet i afsnit er en equalizer en enhed, der kan forstærke eller dæmpe forskellige frekvenser. Den kan altså forme frekvensresponsen af effektenheden som brugeren ønsker det. Af de to muligheder for equalizere, der nævnes i afsnit 2.1.4, er det valgt at implementere en parametrisk equalizer. Dette gøres for at give brugeren størst mulig frihed til at forme sin lyd. Desuden er der i den parametriske equalizer større design- og implementationsudfordringer end i den grafiske equalizer. I den parametriske equalizer, der er valgt at implementere, skal der være mulighed for at justere både gain, centerfrekvens og båndbredde i 3 filtre. Jævnfør kravspecifikation i appendiks A skal gainet kunne justeres fra -12 db til 12 db i step af 1 db, centerfrekvensen skal kunne indstilles i step af 1/3-oktav fra 80 Hz og opefter, mens Q-værdien skal kunne indstilles til 8 forskellige værdier. Der er desuden truffet det designvalg at equalizeren skal implementeres digitalt Design af equalizer Som nævnt kan en equalizer implementeres som en række båndpas- og båndstop-filtre. En metode til at designe digitale filtre, er at designe analoge filtre og derefter transformere dem til det digitale domæne. Til denne transformation er der to metoder, der typisk anvendes; impulsinvariant-metoden og den bilineære transformation. Den første metode giver en lineær mapning mellem de analoge og digitale frekvenser, idet den som navnet antyder giver det digitale filter samme impulsrespons som det analoge. Ulempen ved denne metode er, at der kan ske aliasering hvis ikke filtret er tilstrækkeligt båndbegrænset. Aliasering skal her ikke forstås som aliasering i samplings-forstand, men som at frekvens-responsen af det analoge filter over Nyquist-frekvensen, vil blive spejlet i denne og summeret med den ønskede frekvens-respons under Nyquist-frekvensen. Den digitale frekvensrespons bliver således en summation af en eksakt kopi af den analoge frekvens-respons under Nyquist-frekvensen og diverse frekvens-komposanter herover. Den bilineære transformation derimod, garanterer at der ikke sker en sådan aliasering. Metoden mapper nemlig hele den analoge frekvens-akse ( < ω < ) i s-planen over i en enkelt omgang på enhedscirklen ( π < Ω < π) i z-planen. Ulempen ved denne metode er dog netop den ulineære mapning mellem analoge og digitale frekvenser, der giver en forvrængning af frekvensresponsen. 73

86 Design og implementation af equalizer De filtre der ønskes implementeret, er som nævnt båndpas- og båndstop-filtre, der skal have 0 db gain ved andre frekvenser end dem, der ønskes forstærket eller dæmpet. Derfor kan den bilineære transformation med fordel anvendes her. I dette afsnit gennemgås derfor designet af analoge båndpas- og båndstop-filtre samt den bilineære transformation af disse Analoge filtre Som nævnt ønskes et filter, der kan forstærke eller dæmpe frekvenser i et frekvensbånd og derudover have gain på 0 db ved alle andre frekvenser. Disse filtre kaldes henholdsvis boost- og cut-filtre. På figur 10.1(a) er vist et boost-filter. V i H bp (s) G b V o V i + + H bp (s) G c V o (a) Boost-filter (b) Cut-filter Figur 10.1: Boost-filtret er udført ved en feed-forward struktur med et båndpasfilter i den ene gren, mens cut-filter udført ved en tilbagekoblingssløjfe med et båndpasfilter i tilbagekoblingen. Boost-filtret på figur 10.1(a) har følgende overføringsfunktion: H b (s) = 1 + G b H bp (s) = 1 + G b s ωc Q s 2 + s ωc Q + ω2 c = s2 + s ωc Q (1 + G b) + ω 2 c s 2 + s ωc Q + ω2 c (10.1) hvor: H b (s) er boost-filtrets overføringsfunktion [-] H bp (s) er båndpasfiltrets overføringsfunktion [-] G b er gainet vist i figur 10.1(a) [-] ω c er filtrenes centerfrekvens [rad/s] Q er filtrenes godhedfaktor [-] er filtrenes båndbredde [rad/s] ω c Q Ændres strukturen på figur 10.1(a) til en tilbagekoblingsstruktur, som vist på figur 10.1(b), fås et cut filter. Overføringsfunktionen for cut-filtret på figur 10.1(b) er: 74

87 10.1 Design af equalizer A H c = 1 + Aβ 1 = 1 + G c H bp 1 = s ωc Q 1 + G c s 2 +s ωc Q +ω2 c s 2 + s ωc Q = + ω2 c s 2 + s ωc Q (1 + G c) + ωc 2 (10.2) hvor: H c (s) er cut-filtrets overføringsfunktion [-] A og β er faktorerne i standardformlen for en tilbagekobling [-] G c er gainet vist i figur 10.1(b) [-] Ved at ændre strukturen, indeholdende et båndpas-filter, fås hermed den reciprokke funktion, hvilket netop ændrer boost-filtret til et cut-filter. I det analoge domæne kan et boost-filter altså ændres til et cut-filter med samme centerfrekvens og båndbredde ved at bytte rundt på koefficienterne i tæller og nævner i overføringsfunktionen Den bilineære transformation Når filtrene transformeres til det digitale domæne er det ikke muligt at bytte rundt på koefficienterne som beskrevet ovenfor, da første koefficient i nævneren altid skal være et 1-tal. Derfor er koefficienterne forskellige for boost- og cut-filtre i digital udgave, og derfor skal de to overføringsfunktioner 10.1 og 10.2 transformeres enkeltvis. Transformationen er dog, for størstedelens vedkommende, ens for de to, og der tages derfor udgangspunkt i boost-filtret i den bilineære transformation, der følger her. Den bilineære transformation foregår ved, at erstatte s i H(s) med et udtryk, indeholdende z, for at få H(z): s = 2 T s z 1 z + 1 (10.3) hvor: T s er samplingstiden [s] Desuden erstattes 1 + G b i 10.1 med V, der dermed bliver en variabel der er større end 1, hvor G b blot er større end 0. Dette stemmer godt overens med, at der ikke ønskes et gain mindre end 1 i boost-filtret, da dette netop er hvad cut-filtret skal give. Der fås følgende udtryk for 10.1: 75

88 Design og implementation af equalizer H(s) = s2 + s ωc Q V + ω2 c s 2 + s ωc Q + ω2 c (10.4) H(z) = ( 2 Ts ( 2 Ts ) 2 z 1 z ) z 1 z+1 T s z 1 z+1 T s z 1 z+1 ω c Q V + ω2 c ω c Q + ω2 c (10.5) Der forlænges med ( T s 2 ) 2: H(z) = ( z 1 z+1 ( z 1 z+1 ) 2 + T s ) 2 + T s 2 z 1 z+1 2 z 1 z+1 ω c Q V + ( T s 2 ) 2 ω 2 c ω c Q + ( T s 2 ) 2 ω 2 c (10.6) Det ses her, at faktoren Tsωc 2 optræder flere gange. Denne erstattes med K. Det skal senere ses, at denne erstatning har yderligere en fordel. Desuden forlænges der med (z + 1): H(z) = (z 1)2 + (z 1) (z + 1) K Q V + (z + 1)2 K 2 (z 1) 2 + (z 1) (z + 1) K Q + (z + 1)2 K 2 ( ) z K Q V + K2 + z ( 2 ( K 2 1 )) ) + (1 K Q V + K2 = ( ) ) (10.7) z K Q + K2 + z (2 (K 2 1)) + (1 K Q + K2 Indtil dette punkt er transformationen ens for de to filtre; der kan byttes om på tæller og nævner, hvormed overføringsfunktionen for cut-filtret fås. Når de to overføringsfunktioner skal skaleres med første koefficient i tælleren opstår forskellen på de to digitale filtre. Prewarping En anden del af den bilineære transformation er, at de ønskede analoge centerfrekvenser, skal prewarpes inden de indsættes i overføringsfunktionen. Det er nødvendigt, da den bilineære transformation ikke er lineær og således forvrænger frekvensaksen. Dette gøres ved først at bestemme den ønskede digitale centerfrekvens og derefter transformere den tilbage til det analoge domæne: Ω c = 2π f c, 0 < Ω c < π (10.8) f s ( ) Ωc ω pc = 2f s tan (10.9) 2 ω pc = 2f s tan ( π f ) c f s (10.10) 76

89 10.1 Design af equalizer hvor: f c er den ønskede analoge centerfrekvens f s er samplingsfrekvensen Ω c er den ønskede digitale centerfrekvens ω pc er den prewarpede analoge centerfrekvens Dette udtryk for ω pc kan indsættes i udtrykket for K: [Hz] [Hz] [rad] [rad/s] K = T sω c 2 ( = tan π f ) c f s (10.11) Filterkoefficienter Udfra overføringsfunktionen 10.7 kan koefficienter for henholdsvis boost og cut findes. Koefficientnavnene refererer til standardformen for en 2. ordens-sektion af et IIR-filter: H(z) = b 0 + b 1 z 1 + b 2 z a 1 z 1 + a 2 z 2 (10.12) Koefficientværdierne er givet i tabel Boost/Cut b o b 1 b 2 a 1 a 2 Boost Cut 1+ K Q V +K2 2 2(K 1) 1 K 2 Q V +K 2 2(K 1) 1 K 2 Q +K 1+ K Q +K2 1+ K Q +K2 1+ K Q +K2 1+ K Q +K2 1+ K Q +K2 1+ K Q +K2 2 2(K 1) 1 K 2 Q +K 2 2(K 1) 1 K 2 Q V +K 1+ K Q V +K2 1+ K Q V +K2 1+ K Q V +K2 1+ K Q V +K2 1+ K Q V +K2. Tabel 10.1: Udtryk for de fem filterkoefficienter for henholdsvis et boost- og et cutfilter. Koefficientnavnene refererer til standardformen for en 2. ordens-sektion af et IIR-filter givet ved ligning En tilsvarende tabel kan findes i [Zölzer(1997), s. 125] Hvor: V er gainet (større end 1 for både boost og cut) [-] Q er filtrets godhedsfaktor ( ) [-] K er et udtryk for filtrets centerfrekvens, givet ved K = tan π fc f s [-] Af tabel 10.1 ses det, at det netop er muligt at justere de tre parametre, der er interessante for en parametrisk equalizer; gain, centerfrekvens og båndbredde. Båndbredden ( er beskrevet ) ved Q- værdien, der beskriver forholdet mellem centerfrekvens og båndbredde Q =. En fast Q- værdi er mere sigende end en fast båndbredde, når centerfrekvensen ændres, idet frekvensaksen opfattes logaritmisk af hørelsen. Derfor er det ønskeligt at udtrykke båndbredden som Q-værdien. Ofte er båndbredden defineret som 3 db-båndbredden. Det vil dog ikke give mening at tale om 3 db-båndbredden for eksempelvis et boost-filter med en forstærkning på 1 db. Båndbredden skal derfor her opfattes som båndbredden af det oprindelige analoge båndpas-filter vist i figur 10.1(a) og 10.1(b), der anvendes til at lave boost- og cut-filtrene. fc BW 77

90 Design og implementation af equalizer Simulering af filtre Da de forskellige koefficienter hermed er bestemt, kan filtrene simuleres for at undersøge om de tre parametre faktisk beskriver det, der forventes. Jævnfør kravspecifikationen skal det være muligt, at indstille centerfrekvensen med 1/3-oktavs opløsning, gainet skal kunne justeres fra -12 db til 12 db i step af 1 db og Q-værdien skal kunne indstilles til 8 forskellige værdier. Filtrene er derfor simuleret, hvor der sweepes igennem de forskellige parameter-værdier. Dette er vist på figurerne 10.2, 10.3 og 10.5 for henholdsvis centerfrekvens, gain og Q-værdi. I toppen af hver figur ses de aktuelle værdier af de tre parametre. Alle simuleringerne er lavet ved hjælp af MATLAB s tf-funktion med z 1 som variabel, der kan finde frekvensresponsen af et IIRfilter. Simuleringerne er udført med filen /equalizer/fc_q_g_grafer.m, som kan findes på appendiks- CD en. På figur 10.4 er vist nødvendigheden af at have både boost- og cutfiltre, ved give boostfiltret både positive og negative gains. 2 0 Centerfrekvens: Hz Centerfrekvens: Hz Gain: 12 db Q: 5 2 Amplitude (db) Frekvens (Hz) Figur 10.2: Frekvensrespons af filtrene, hvor centerfrekvensen er sweepet fra 80 Hz op til den halve samplingsfrekvens i step af 1/3-oktav. På denne måde bliver centerfrekvenserne jævnt fordelt på den logaritmiske frekvensakse. Det kan ses af de fire figurer, at det er muligt at justere de tre parametre centerfrekvens, gain og Q-værdi individuelt; ændres en af variable V, Q eller K har det kun indflydelse på den tilhørende parameter, mens de to andre forbliver uændret. I dette afsnit er altså fundet et 2. ordens-iir-filter, der, hvis flere af dem kaskadekobles, kan anvendes som parametrisk equalizer. 78

91 10.1 Design af equalizer 15 Centerfrekvens: Hz Gain: db Q: Amplitude (db) Frekvens (Hz) Figur 10.3: Frekvensrespons af filtrene, hvor gainet er sweepet fra -12 db til 12 db i step af 1 db. Her er anvendt boost-filtret til de positive gains og cut-filteret til de negative gains, og det ses at de giver en symmetrisk frekvensrespons. Gives boost-filtret et negativt gain, fås en ikke-symmetrisk frekvensrespons, hvilket kan ses af figur Centerfrekvens: Hz Gain: db Q: Amplitude (db) Frekvens (Hz) Figur 10.4: Frekvensrespons af filtrene, hvor gainet er sweepet fra -12 db til 12 db i step af 1 db, men boost-filtret er anvendt til både positive og negative gains. Der ses en ikke-symmetrisk frekvensrespons, hvilket betyder at Q-værdien ikke har samme fortolkning. Her ses nødvendigheden af både at have boost- og cut-filtre. 79

92 Design og implementation af equalizer 0 Centerfrekvens: Hz Gain: 12 db Q: Amplitude (db) Frekvens (Hz) Figur 10.5: Frekvensrespons af filtrene, hvor Q-værdien er sweepet over 8 forskellige værdier. Det er valgt at sweepe fra Q = 0.3 til Q = 5, da dette giver et fornuftigt udvalg af Q-værdier. Kravet til Q-værdierne givet i kravspecifikationen, appendiks A, er således defineret ud fra denne simulering. Som både centerfrekvens og gainet er Q-værdien sweepet logaritmisk, da dette giver en jævn fordeling af frekvensresponserne Realisering af equalizer I forrige afsnit blev et 2. ordens-iir-filter designet, der kan anvendes til en equalizer. I dette afsnit vil implementationen af dette filter blive beskrevet. En given differensligning kan implementeres med et praktisk talt uendeligt antal forskellige filterstrukturer. Derfor er det nødvendigt at analysere forskellige filterstrukturer, for at finde den optimale til den givne applikation. Især er det interessant, hvor robuste de forskellige strukturer er overfor kvantiseringer. Det er ikke muligt at analysere alle forskellige filterstrukturer, der kan laves. Der er dog en række filterstrukturer, der er populære og dermed kan disse analyseres for at finde den optimale til applikationen. Herudover skal det besluttes hvorledes filterkoefficienterne skal implementeres. Implementationen af filterkoefficienterne for betydning for analysen af filterstrukturerne. Derfor følger dette som første del af dette afsnit, hvorefter forskellige filterstrukturer analyseres Implementation af filterkoefficienter I tabel 10.1, side 77, ses udtryk for koefficienterne i IIR-filtret som funktion af de tre parametre V, Q og K. Idet der er 21 mulige centerfrekvenser, 25 mulige gains og 8 mulige Q-værdier, giver dette i alt 4200 mulige filtre. En brøkdel af disse filtre er ens; centerfrekvens og Q-værdi er underordnet hvis gainet er 0 db. På trods af disse enkelte undtagelser er dette et meget stort antal forskellige filtre, der skal kunne implementeres, hvilket giver nogle overvejelser omkring hvorledes koefficienterne til disse filtre skal implementeres. Som udgangspunkt er der to muligheder; koefficienterne kan beregnes i DSP en eller de kan tabellægges. Der er fordele og ulemper ved begge metoder. 80

93 10.2 Realisering af equalizer Beregning af koefficienter: Beregnes koefficienterne skal hver af de fem koefficienter i et givent filter findes udfra udtrykkene i tabel Udtrykket for b 0 for boost-filtret er gentaget her: b 0 = 1 + K Q V + K2 1 + K Q + K2 (10.13) I udtrykket indgår en del multiplikationer og additioner, hvilket er operationer DSP en hurtigt kan udføre, dvs. de tager en enkelt instruktionscyklus. Det ses også, at Q altid indgår i nævneren i en brøk. Derfor kan den reciprokke værdi af Q med fordel tabellægges. Dette vil give en lille tabel, idet der kun er 8 mulige Q-værdier. På samme måde kan K tabellægges for de mulige centerfrekvenser. På trods af disse muligheder, der letter beregningen, er der dog stadig en ulempe ved at beregne koefficienterne; der indgår en division. DSP en kan ikke umiddelbart dividere, men der kan skrives en algoritme, der muliggør dette. En sådan algoritme er langsom, forstået på den måde at den tager relativt mange instruktionscykler. En anden mulighed er at tabellægge alle mulige nævnere, men da både K og Q, og for cut-filtrenes vedkommende også V, indgår i nævneren, giver dette en tabel på flere tusinde words. Tabelopslag af koefficienter: Den anden mulighed er at tabellægge koeficienterne. Idet der er fem koefficienter per filter og 4200 mulige filtre, giver dette en tabel på words. Altså et lagerkrav, der er omkring en faktor 10 større end ved beregningen af koefficienterne. Opgaven består her i, at indeksere i tabellen for givne værdier af parametrene. En sådan indeksering vil dog kunne gøre ved hjælp af multiplikationer og additioner, og vil således være væsentligt hurtigere end at beregne koefficienterne. Vurdering: Som det ses af ovenstående er det et spørgsmål om tid kontra lagerplads, om den ene løsning skal vælges frem for den anden. Men det er også et spørgsmål om numerisk præcision. Ved tabellægning kan koefficienterne beregnes med meget stor præcision og først kvantiseres til sidst, hvorimod der vil ske kvantiseringer undervejs ved beregning i DSP en. Da systemet skal kunne køre i realtid og DSP en har et muligt datalager på 64k words, er det besluttet at anvende tabellægning af filterkoefficienterne. I appendiks H er et memory-map over hukommelsen, hvor placeringen af filterkoefficienttabellen kan ses Valg af filterstruktur Som nævnt findes der et praktisk talt uendeligt antal forskellige filterstrukturer, der implementerer en given differensligning. De adskiller sig blandt andet på beregningskompleksitet og antallet af delay-elementer, dvs. hvor meget lager de kræver. Desuden har strukturerne forskellig følsomhed overfor endelig ordlængde og dermed kvantisering. Når der indføres kvantisering i en differensligning går den fra at være et lineært system til at være et ulineært. Det er muligt, at analysere disse ulineære systemer omend en fuldstændig analyse sjældent er nødvendigt. Ofte er det mest effektive at simulere en struktur og vurdere dens ydelse derudfra [Oppenheim and Schafer(1999), s. 377, 391]. Det er således det, der gøres i dette afsnit for at vurdere forskellige strukturer mod hinanden. 81

94 Design og implementation af equalizer Den anvendte DSP har en ordlængde på 16 bit, og derfor er det ønskeligt at finde den struktur, der giver den bedste ydelse, dvs. den ydelse der ligger tættest på den ideelle. DSP en har en 32 bit akkumulator, hvilket betyder at det kun er mellemresultater, der skal forsinkes, der kvantiseres til 16 bit. Som beskrevet i forrige afsnit er det valgt, at tabellægge filterkoefficienterne, hvilket betyder at der kun sker én kvantisering ved beregning af disse. Det er under disse forudsætninger, at de forskellige filterstrukturer sammenlignes. På figur 10.6 ses fire forskellige typiske filterstrukturer, der er blevet simuleret. Der er tale om den Direkte Form I samt tre kanoniske strukturer. Beregningskompleksiteten for de fire er meget ens; alle har de fem multiplikationer og fire additioner. De tre kanoniske strukturer har det mindste mulige antal delay-elementer; nemlig to, mens den Direkte Form I har fire. x[n] b 0 y[n] x[n] b 0 y[n] z 1 z 1 z 1 b 1 a 1 a 1 b 1 z 1 z 1 z 1 b 2 a 2 a 2 b 2 (a) Direkte Form I (b) Direkte Form II x[n] b 0 x[n] b 0 y[n] y[n] b 1 z 1 a 1 a 1 z 1 c 1 b 2 z 1 a 2 a 2 z 1 c 2 (c) Transponeret Form II (d) Kanonisk State-Space Figur 10.6: Fire forskellige filterstrukturer, der er blevet simuleret. I den kanoniske statespace-struktur er c-koefficienterne givet ved: c 1 = b 2 b 0 a 2 og c2 = b 1 b 0 a 1. De implementerer på denne måde alle en 2. ordens-sektion, givet ved den generelle overføringsfunktion i ligning 10.12, side 77. Som beskrevet tidligere i dette kapitel er der i alt 4200 forskellige filtre, der skal kunne implementeres. Det ønskes, at implementere alle disse mulige filtre med samme filterstruktur. Der skal således bestemmes den struktur, der giver det bedste resultat set over alle disse 4200 muligheder. De fire strukturer er simuleret i MATLAB ved bestemme deres impulsrespons for hvert af de mulige filtre. Først er alle strukturerne simuleret med meget høj præcision, dvs. 32 bit floating-point, hvilket betyder at den kvantisering der sker af koefficienter og produktsummer er forsvindende lille. Ved denne simulering giver alle strukturerne samme resultat for hvert af filtrene. Dette er som forventet og bekræfter således, at strukturerne implementerer samme differensligning. Dernæst er strukturerne simuleret som de ville blive implementeret på DSP en. Dette indebærer kvantisering af filterkoefficienter samt af de produktsummer der forsinkes og udgangssignalet. Denne metode undersøger to konsekvenser af kvantisering på samme tid. Dels giver kvantisering 82

95 10.2 Realisering af equalizer internt i strukturerne, dvs. produktsummerne, en egenstøj i filtret. Denne egenstøj er et hørbart hvidt støjsignal. Dertil giver koefficientkvantiseringen en forvrængning af filtrenes frekvensrespons. De to typer af kvantiseringer har altså forskellig betydning for filtrene. Det er dog ikke fundet nødvendigt at undersøge de to typer enkeltvis, da det ønskes at finde den bedste struktur til applikationen, hvorfor alle kvantiseringer bør medregnes på samme tid. De på denne måde fundne impulsresponser er herefter sammenlignet med den ideelle på to måder. Dels er der for hvert filter fundet den største differens mellem den kvantiserede og den ideelle impulsrespons ved en given sample. Dels er summen af differenser de to imellem, for hele filtrets impulsrespons fundet. Der er altså fundet to tal for hvert af de filtre, der beskriver hvor godt deres impulsrespons følger den ideelle. Alle impulsresponserne er simuleret med samples. Metoden kan ses i filen /equalizer/struktur_impuls.m på CD en. Resultatet af disse simuleringer kan ses i tabel Struktur Største enkelte differens Største summerede differens Direkte Form I Direkte Form II 6, ,9 Transponeret Form II Kanonisk State-Space 3, Tabel 10.2: Resultater for simuleringer af de fire filter-strukturer. Simuleringerne viser at Direkte Form I er den bedste af disse strukturer. Desuden kan det af simuleringerne ses, at de største problemer opstår ved de laveste frekvenser, hvilket er som forventet, idet det typisk er ved lave frekvenser at kvantisering har størst indflydelse. Det ses af tabel 10.2 at den bedste struktur er Direkte Form I. Faktisk er den væsentligt bedre end de tre andre. Dette kan have en sammenhæng med antallet af kvantiseringer, der foregår i hver struktur, som kan ses af figur I Direkte Form I sker der kun en enkelt kvantisering, i Direkte Form II og den kanoniske state-space-struktur sker der to, mens der i Transponeret Form II sker tre. Dette fremgår også af tallene, idet Direkte Form II og den kanoniske state-space-struktur har værdier, der ligger ikke langt fra hinanden, mens Transponeret Form II har væsentlig større værdier end de tre andre. Den Direkte Form I struktur vælges hermed som den struktur equalizeren skal implementeres med. Prisen, der betales for at nøjes med en enkelt kvantisering, er at der skal anvendes dobbelt så mange delay-elementer. Dette er dog ikke et problem, da DSP-systemet har et relativt stort datalager og kan tilgå disse data på en enkelt instruktionscyklus Skalering af filter At Direkte Form I er fundet som den bedste struktur, af de fire analyserede, har en fordel når det kommer til skalering af filtret. I et givent filter skal koefficienterne skaleres for at undgå overflow. Overflow er når eksempelvis en produktsum giver et resultat, der ikke kan repræsenteres i det tal-format, der anvendes. Typisk repræsenteres tal i en DSP som tal mellem -1 og 1. Hvis en produktsum således giver et tal større end 1, vil det give overflow. På grund af den måde 2 s komplement fungerer på, er det dog tilladt at få overflow i en delsum i en produktsum, så længe resultatet ikke giver overflow. Den Direkte Form 1 filter-struktur har, som det kan ses af figur 10.6, kun en enkelt produktsum. Det betyder, at hvis et filter med en forstærkning mindre end 0 db implementeres som Direkte Form 1, vil der aldrig kunne ske overflow, idet udgangsignalet altid vil have en mindre amplitude end indgangssignalet. 83

96 Design og implementation af equalizer Omvendt forholder det sig for de kanoniske strukturer, der også kan ses i figur Disse har en produktsum internt i filtret, for hvilken det ikke umiddelbart kan garanteres, at der ikke vil ske overflow i resultatet. Derfor er det nødvendigt at skalere filtre implementeret med disse strukturer. Ovenstående fordel ved Direkte Form 1 strukturen gælder dog ikke for filtre med en forstærkning større end 0 db. Her vil udgangssignalet have en større amplitude end indgangssignalet. Hvis indgangssignalet er fuldt udstyret vil der således ske overflow ved udgangssignalet. Som tidligere nævnt, og som beskrevet i kravspecifikationen i appendix A, ønskes det at kunne forstærke 12 db i equalizeren. Det er altså nødvendigt med en skalering. Når et filter skal skaleres kan dette ske med forskellige grader af konservatisme. Der kan skaleres med en faktor svarende til summen af filtrets impulsrespons, som sikrer 100% mod overflow, men også er en meget konservativ løsning. En ofte tilstrækkelig, og langt mindre konservativ, løsning er varians-skalering [Oppenheim and Schafer(1999), s. 400]. Skaleringsfaktoren har betydning for filtrets signal/støj-forhold, og derfor er det ikke ønskeligt at skalere for konservativt. En tredje metode, der ligger et sted mellem de to førnævnte, er at betragte indgangssignalet som et smalbåndssignal givet ved: x[n] = x max cos(ω 0 n) (10.14) I så fald kan udgangssignalet skrives som: y[n] = H(e jω 0 ) xmax cos ( Ω 0 n + H(e jω 0 ) ) (10.15) Da y[n] maksimalt må blive 1, og x max = 1, kan skaleringsfaktoren s findes som: 1 s max Ω π H(e jω ) 1 (10.16) s 1 max Ω π H(e jω ) (10.17) Skaleringsfaktoren skal altså modsvare den største forstærkning i filtret. Filtrets maksimale forstærkning på 12dB svarer til en faktor lidt under 4. Filtret skal dermed skaleres med 1 4 eller derunder. Skalering kan implementeres på to måder; b-koefficienterne i filtrene kan skaleres eller inputsignalet kan blive det. Ved skalering af koefficienterne vil antallet af multiplikationer i udregningen af filtret være det samme, men dynamikområdet for filterkoefficienterne formindskes, hvilket kan give en yderligere forvrængning af frekvensresponsen. Ved skaleringen af input-signalet kræves en ekstra multiplikation i udregningen og dynamik-området for input-signalet formindskes. Frekvensresponsen forbliver dog uændret. I implementationen af equalizeren ønskes det, som tidligere beskrevet, at tabellægge koefficienterne. Skulle metoden med at skalere koefficienterne anvendes, ville signalet således i alt blive skaleret med en faktor 4 3 = 64, hvilket ikke er ønskeligt. Skaleringen kan ikke fordeles over de tre filtre, da også første filter skal kunne forstærke signalet 12 db. 84

97 10.2 Realisering af equalizer Skaleringen implementeres derfor ved at dele input-signalet til equalizeren med 4. Der skulle dog deles med 64 for at være sikker på at undgå overflow gennem alle tre filtre. Det er dog valgt, at lade det være op til brugeren af systemet at sørge for at filtrene i equalizeren ikke placeres ved samme centerfrekvens, hvilket potentielt ville kunne give en forstærkning på 36 db og sandsynligvis ville give overflow. Med en skalering af input-signalet på 4 er det muligt at forstærke 12 db ved forskellige frekvenser og stadig undgå overflow. Som nævnt ovenfor har skaleringsfaktoren betydning for equalizerens signal/støj-forhold. Ved at skalere input-signalet sænkes dets potentiele dynamik-område fra 96 db til 84 db. Dette kunne umiddelbart være et problem, men jævnfør målerapporten i appendiks D.2, har signalet fra guitaren et signal/støj-forhold på 53 db. De nederste op mod 6-7 bit i det samplede input-signal vil således være støj, og der går dermed ikke noget signal tabt ved at skalere signalet. Det vil med andre ord sige, at selvom equalizerens signal/støj-forhold forringes ved skaleringen, har det ingen praktisk betydning for signalet der filtreres Støj i filtre Som tidligere beskrevet i dette kapitel, tilføjes signalet en kvantiseringsstøj, når produktsummer på 32 bit trunkeres til 16 bit, som det sker i den anvendte DSP. Her vil denne støj blive analyseret for de anvendte filtre, for at finde deres signal/støj-forhold. Kvantiseringsstøjen kommer ind i systemet som vist på figur 10.7(a). Denne kvantisering er dog ulineær og derfor vanskelig at analysere. Ved at gøre følgende antagelser kan kvantiseringen lineæriseres, hvilket letter analysen betydeligt: Kvantiseringsstøjkilden er en wide-sense-stationary hvid-støjs proces. Kvantiseringsstøjkildens amplituder er uniformt fordelt. Kvantiseringsstøjkilden er ukorreleret med indgangs-signalet og andre kilder. e[n] x[n] b 0 y[n] x[n] b 0 Q y[n] z 1 z 1 z 1 z 1 b 1 a 1 b 1 a 1 z 1 z 1 z 1 z 1 b 2 a 2 b 2 a 2 (a) Ulineær kvantiseringsmodel FIR IIR (b) Lineær kvantiseringsmodel Figur 10.7: Kvantisering i et system, gør systemet ulineær. Det kan lineæriseres ved opfatte denne kvantiseringsstøj som et input i systemet på linje med det faktiske signal-input. Disse antagelser kan aldrig være sande, idet udgangssignalet fra kvantiseringen er direkte afhængigt af indgangssignalet. På trods af dette faktum, giver disse antagelser ofte fornuftige resultater 85

98 Design og implementation af equalizer [Oppenheim and Schafer(1999), s. 393]. Ved brug af disse antagelser kan kvantiseringen i figur 10.7(a) transformeres til et lineært signal, der er input til systemet. Dette er er vist i figur 10.7(b). Da den anvendte DSP bruger trunkering og ikke afrunding får dette, nu lineære, støjsignal følgende egenskaber: 2 B < e[n] < 0 (10.18) m e = 2 B 2 σ 2 e = 2 2B 12 (10.19) (10.20) Hvor: B er ordlængde i bit uden signbit [bit] m e er støjsignalets middelværdi [-] σe 2 er støjsignalets varians [-] Som det ses af figur 10.7(b) består Direkte Form 1 strukturen af en FIR- og en IIR-del, dvs. at polerne og nulpunkterne i overføringsfunktionen er implementeret hver for sig. Af samme figur ses at filtret har to inputs; input-signalet x[n] og støj-signalet e[n]. Input-signalet filtreres af hele filtret, mens støj-signalet kun filtreres af IIR-delen, da det kommer ind i systemet efter nulpunkterne, men før polerne. Det vil sige at output-støjen kun afhænger af polerne, hvilket står i modsætning til eksempelvis de kanoniske strukturer, hvor støj-signalet filtreres af hele filtret. For at finde signal/støj-forholdet for filtret, findes støj-effekten på udgangen af filtret, givet støjens egenskaber ovenfor. Effekten på udgangen, givet et signal på indgangen findes også, og de to kan dermed sammenholdes. Musik kan med god tilnærmelse opfattes som lyserød støj ved analyse af filtre, og det samme gør sig sandsynligvis gældende for guitarlyd. Lyserød støj er kendetegnet ved at have lige stor effekt ved hver oktav. Ved analysen af signal/støj-forholdet for filtrene er lyserød støj dog vanskelig at arbejde med, idet dets egenskaber er frekvensafhængige, i modsætning til hvid støj. Det antages derfor at den fejl der begås ved at anvende et hvidt støj-signal fremfor et lyserødt ikke er større end at analysen kan give et godt estimat af filtrenes signal/støj-forhold. Selv med lyserød støj, ville den eksakte værdi af signal/støj-forholdet ikke kunne findes, da dette altid vil være afhængigt af input-signalet. Der defineres derfor et hvidt støjsignal med samme egenskaber som det input-signal, der kommer til equalizeren i den endelige implementation. Variansen af et hvid støjssignal kan beregnes med følgende udtryk[leon-garcia(2008), s. 160]: Hvor: σ 2 = 1 a b b a ( x a + b ) 2 dx (10.21) 2 σ 2 er variansen [-] x er en stokastisk proces, uniformt fordelt i intervallet [a,b] [-] Dette udtryk kan anvendes til at eftervise ligning Som beskrevet i forrige afsnit har inputsignalet en maksimal amplitude på 1, men deles med 4 inden det når filtrene. Det svarer til ændre 86

99 10.2 Realisering af equalizer input-signalet fra Q15-format til Q13-format, men beholde samme amplitude.ved anvendelse af formel fås derfor følgende egenskaber for input-signalet: 0.25 < x[n] < 0.25 (10.22) m x = 0 (10.23) σ 2 x = 20, (10.24) De to input-signaler til systemet er nu defineret og deres overføringsfunktion til output-signalet skal hermed bestemmes. Output-signalet kan skrives som: Hvor: ŷ[n] = y[n] + f[n] (10.25) ŷ[n] er output-signalet af det kvantiserede system [-] y[n] er output-signalet af det ideele ukvantiserede system [-] f[n] er output-signalet grundet kvantiseringen [-] Differensligningen, der giver y[n] givet x[n], er standard-formen for en 2.-ordens-sektion: y[n] = a 1 y[n 1] a 2 y[n 2] + b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] (10.26) Udfra figur 10.7(b), side 85, kan differensligningen, der giver f[n] givet e[n] også findes: f[n] = a 1 f[n 1] a 2 f[n 2] + e[n] (10.27) Ved hjælp af disse to differensligninger kan impulsresponsen fra x[n] og e[n] til henholdsvis y[n] og f[n] findes. Det ønskes at finde forholdet mellem den samlede effekt, hvert af de to inputsignaler leverer på udgangen af filtret. Dette er netop signal/støj-forholdet. Dette kan bestemmes ved hjælp af de to impulsresponser samt variansen af de to input-signaler ved brug af formel En udledning af denne formel kan findes i appendiks G. SNR = 10 log σx 2 n= σe 2 n= h xy [n] 2 h ef [n] 2 (10.28) Hvor: σx 2 er variansen af input-signalet x[n] [-] h xy [n] impulsresponsen fra x[n] til y[n] [-] σe 2 er variansen af input-signalet e[n] [-] h ef [n] impulsresponsen fra e[n] til f[n] [-] Ligningen er evalueret for alle filtre i filen /equalizer/eq_snr.m, der findes på CD en. Da filtrene er IIR-filtre, kan summene, der indgår i udtrykket, ikke umiddelbart bestemmes. Efter en 87

100 Design og implementation af equalizer tilstrækkelig mængde samples vil impulsresponsen dog have en amplitude mindre end en LSB, og vil således ikke kunne repræsenteres i DSP en længere. Dermed vil de følgende samples ikke tilføje noget til summen af impulsresponsen og den har således nået en endelig størrelse. Hvor mange samples, der skal til før dette sker afhænger af centerfrekvensen for det givne filter. Et filter med en høj centerfrekvens vil have en impulsrespons, der svinger med samme frekvens og relativt hurtigt ringer ud, mens et filter med lavere centerfrekvens vil være længere tid om at ringe ud. Det er undersøgt hvor mange samples filtret med den længste impulsrespons, dvs. filtret med laveste centerfrekvens samt højeste gain og Q-værdi, er om dæmpe impulsresponsen til en amplitude under en LSB. Dette er sket ved samples og derfor er alle impulsresponser simuleret med dette antal samples. Af analysen udført i filen eq_snr.m ses en variation i signal/støj-forholdet for filtrene fra 75 db til 93 db. Det kan også ses at signal/støj-forholdet er mest følsomt overfor variationer i gainet. Eksempelvis varierer signal/støj-forholdet, for et filter med centerfrekvens på 5,12 khz og Q- værdi på 0,3, over hele området fra 75 db til 93 db som gainet varierer fra -12 db til 12 db. Dette stemmer godt overens med, at et filter med forstærkning på 12 db, lader mere signal gå igennem, mens støjen ikke forstærkes i samme grad. Også det, at den laveste Q-værdi giver de største variationer i signal/støj-forholdet giver god mening; en lav Q-værdi lader frekvenser over et større frekvensområde bliver forstærket eller dæmpet, hvormed størst muligt signal effekt bliver forstærket eller dæmpet. Det beregnede worst-case signal/støj-forhold på 75 db ligger væsentligt over guitarens signal/støjforhold på 53 db, fundet i målejournalen i appendiks D.2, og er således acceptabelt. I analysen er medtaget, at input-signalet deles med 4, som det sker i den faktiske implementation. Var dette ikke tilfældet ville et endnu større signal/støj-forhold kunne opnås, omend der i så fald ville være risiko for overflow eller klipning af signalet, hvilket ville give et væsentligt ringere signal/støj-forhold, såfremt klipning og overflow opfattes som støj. I denne analyse af støjen i filtrene er kun undersøgt et enkelt filter med tilhørende skalering af input-signal. Men da equalizeren består af tre filtre, er dette ikke en fuldstændig støj-analyse af equalizeren. En sådan er dog ikke realistisk at udføre, idet det ville kræve en analyse af samtligere kombinationer af de 4200 filtre, dvs kombinationer, istedet for de 4200 der er udført her. Den anvendte metode til beregning af støj i filtrene finder signal/støj-forholdet givet et signal på indgangen. En anden metode er, at beregne den absolute størrelse af støjen på udgangen. Denne størrelse kan eksempelvis sættes i forhold til maksimal udstyring på udgangen af filtret, for at finde et maksimalt signal/støj-forhold. Men et signal/støj-forhold, der sjældent kan opnås, da filtret selvsagt vil have en filtervirkning på input-signalet. Metoden fortæller dog størrelsen af den støj, der er på udgangen og dermed den støj, der kan høres i højttaleren ud af systemet. Denne støj kan beregnes, på samme måde som det er gjort i den udførte analyse, ved hjælp af formel G.6 i appendiks G som er enslydende med nævneren i formel For et 2.-ordens-IIR-filter som vist i figur 10.7(b), side 85, findes der formler til at beregne denne uendelig sum eksakt. Denne metode er dog ikke anvendt, idet den giver et udtryk for maksimalt signal/støj-forhold og ikke det faktiske. Det er derfor vurderet at den anvendte metode giver et mere korrekt billede af signal/støj-forholdet Implementation af equalizer Equalizeren er, som den øvrige software, implementeret i assembly. I et forsøg på at tidsoptimere koden, er der anvendt instruktioner LTD og MPYA, der begge udfører mere end en funktion ad gangen. LTD-instruktionen er særlig velegnet til at implementere filtre, idet den udfører en delay- 88

101 10.3 Implementation af equalizer funktion. Koden er lavet med tre næsten identiske stykker kode; et for hvert af de tre filtre. Eneste forskel de tre stykker kode imellem er parametrene der anvendes. En anden metode ville være at skrive en subrutine, der implementerer et filter, og kalde denne subrutine med parametre for hvilket filter, der skal afvikles. Den valgte metode fylder mere i programmet, men er valgt for at tidsoptimere koden. Koden for det første 2.-ordens-IIR-filter følger her, hvor funktionaliteten af de enkelte instruktioner er skrevet i kommentaren til højre. Koden implementerer følgende differensligning: y[n] = a 1 y[n 1] a 2 y[n 2] + b 0 x[n] + b 1 x[n 1] + b 2 x[n 2] (10.29) 1 2 E q u a l i z e r F i l t e r ZAC ; 0 > Acc 5 6 LT EQ1_X2 ; x [ n 2] > T r e g 7 MPY EQ1_B2 ; x [ n 2] b2 > P 8 9 LTD EQ1_X1 ; x [ n 1] > T reg, x [ n 1] > x [ n 2], Acc + P > Acc 10 MPY EQ1_B1 ; x [ n 1] b1 > P LTD EQ1_X0 ; x [ n ] > T reg, x [ n ] > x [ n 1], Acc + P > Acc 13 MPY EQ1_B0 ; x [ n ] b0 > P LT EQ1_Y2 ; y [ n 2] > T r e g 16 MPYA EQ1_A2 ; y [ n 2] a2 > P, Acc + P > Acc LTD EQ1_Y1 ; y [ n 1] > T reg, y [ n 1] > y [ n 2], Acc + P > Acc 19 MPY EQ1_A1 ; y [ n 1] a1 > P APAC ; Acc + P > Acc SACH EQ1_Y0, 2 ; Acc > y [ n ] med s h i f t på 2. Q13 > Q LTD EQ1_Y0 ; y [ n ] > T reg, y [ n ] > y [ n 1], Acc + P > Acc 26 ; O p d a t e r e r y [ n 1] med en e n k e l t i n s t r u k t i o n, 27 ; APAC og t r e g i s t e r e t anvendes i k k e LAC EQ1_Y0 ; Akkumulatoren i n d e h o l d e r u d g a n g s s i g n a l e t, 30 ; d e r s k a l s e n d e s v i d e r e t i l næste f i l t e r. I koden anvendes direkte adressering til parametrene, der er de fem filterkoefficienter samt de to delay-kæder; henholdvis x og y. De to led i differensligningen, der indeholder a-koefficienterne, skal subtraheres fra summen. Dette gøres ved a-koefficienter er gemt i hukommelsen med modsat fortegn. Da en del af filterkoefficienterne har en størrelse over 2, er de alle implementeret i Q13-formatet. De samples der filtreres er dog i Q15-format. Dette skal der tages højde for, så også output-samplen er i Q15-format. DSP en er i denne rutine opsat til at shifte 1 bit til venstre ud af produkt-registeret. Når to tal i Q15-format multipliceres fås et tal med to signbit. Shiftet sikrer derfor at dette produkt giver et tal i Q15-format. I filtret multipliceres altid et tal i Q13-format med et tal i Q15-format, hvilket giver et produkt med 4 bit til venstre for kommaet; Q4.28-format. Summen af disse produkter giver et tal i tilsvarende format. Shiftet ud af produkt-registret fjerner det ene af disse bit og instruktionen SACH EQ1_Y0,2, shifter de to andre ud idet produktsummen gemmes i hukommelsen. Dermed gemmes output-samplen i Q15-format. 89

102 Design og implementation af equalizer 10.4 Konklusion på equalizer Equalizeren er testet jævnfør accepttest-specifikationen i appendiks B.8. Resultatet kan ses i appendiks C.7. Her ses at equalizeren overholder alle de, i kravsspecifikationen i appendiks A, opstillede krav. Flere endda med god margin. En test, der ikke er dokumenteret, viser at også det sværeste filter at implementere; det med laveste centerfrekvens, højeste Q-værdi og højeste gain, overholder specifikationen lige så vel som de øvrige indenfor guitarens frekvensbånd. En yderligere feature ved den parametriske equalizer, der er opdaget efter implementationen af den, er at den også kan bruges som en wah-wah effekt. En sådan effekt er beskrevet i afsnit og er kendetegnet ved en høj-q sektion, hvor centerfrekvensen sweepes. Indstilles et filter i equalizeren på maksimal Q-værdi og maksimalt gain, kan centerfrekvensen sweepes op og ned, for at give en wah-wah effekt. Filtrene opdaterer så hurtigt, at en autentisk wah-wah lyd opnås. En digital wah-wah effekt kan således relativt nemt implementeres ved anvendelse af samme kode som equalizeren. Et lyd-eksempel på equalizeren kan høres på CD en: /equalizer/equalizer.wav. 90

103 11 Software Dette kapitel omhandler den udviklede software, samt tankerne bag denne. Først i dette kapitel kommer en beskrivelse af det overordnede software-design, dvs. hvilke opgaver de enkelte funktioner i softwaren varetager samt hvordan de spiller sammen. Dernæst følger en mere uddybende beskrivelse af enkelte funktioner Overordnet software-design Softwaren er grundlæggende delt op i to blokke. Dels en interrupt-rutine, der udfører selve signalbehandlingen, og dels en main-funktion, der udfører alle de opgaver, der ikke direkte er relateret til signalbehandlingen. Denne opdeling sker da signalbehandlingen skal køre i hård realtid; én sample skal være færdigbehandlet før den næste kommer. Sker dette ikke vil denne sample være at betragte som ubrugelig og outputsamplen fra systemet vil være den forrige behandlede sample. På denne måde vil outputtet være ubrugeligt og systemet fungerer dermed ikke.de funktioner, der ikke er betragtes som signalbehandling, har ikke disse tidskrav; de skal blot udføres indenfor en overskuelig tidsramme. Denne opdeling giver følgende opgaver til interrupt-rutinen: Lagring og gendannelse af alle nødvendige registre fra main-funktionen Udførelse af equalizer-rutine Udførelse af delay/echo-rutine Udførelse af flanger-rutine De ikke-realtids-krævende opgaver, der udføres i main-funktionen er: Skrivning af display Dekodning af knapper Opdatering af parametre i de forskellige effekter samt på display På figur 11.1 ses et data-flow-diagram for softwaren. At en del af softwaren skal køre i hård realtid, mens en anden del ikke skal, sætter forskellige forudsætninger for udviklingen af de to typer software. Den tidskritiske kode er således skrevet 91

104 Software Figur 11.1: Data-flow-diagram over softwaren. Parallelogrammer er hvor data opstår eller ender, cirkler er hvor der udføres en databehandling, sekskanten er et datalager og pilene viser retningen af data-flowene. Figuren viser hvilke forskellige moduler softwaren er opbygget af. 92

105 11.2 Main-funktion med tidsoptimering for øje; dvs. test og branches er forsøgt undgået, da disse ikke er optimale rent tidsmæssigt. Dette skyldes at de tømmer DSP ens pipeline udover at instruktionerne selv også tager tid. Omvendt er test og branches netop anvendt i stor udstrækning i den ikke-tidskritiske kode, da de kan give en mere pæn og overskuelig kode. Der er altså foretaget en afvejning af tidsoptimering kontra kodeoverskuelighed, hvor prioriteringen er forskellig for de to typer software Main-funktion Dette afsnit indeholder en beskrivelse af main-funktionen samt de rutiner, den anvender. Main-funktionen er, som det ses af figur 11.1 stærkt modul-opdelt; at skrive til displayet er en subrutine, der kaldes med en parameter, at aflæse knapperne er en subrutine og funktionen der opdaterer parametre er også en subrutine der kaldes med parametre. Derudover er der et menumodul, der holder styr på hvilken menu, der opereres i og kommunikerer med de tre subrutiner. To af disse tre subrutiner knytter sig stærkt til hardwaren, henholdsvis display-driver og knapdekoder, hvorimod parameter-opdateringen er en ren software-opgave. De tre opgaver de udfører vil blive beskrevet herefter Display Det anvendte display er et 4 16-karakterers display, dvs. i alt 64 karakterer. De forskellige menuer, der skal kunne vises på displayet, er alle gemt i hukommelsen som hele billeder, altså som et array med 64 karakterer. Funktionen der opdaterer parameter-værdier på displayet, skriver tallene på det relavante sted i dette array af karakterer. Når der skrives til displayet, skrives der således altid et helt menu-billede ad gangen. Når disse menu-billeder skal skrives til displayet er der visse timingskrav fra displayet, der skal overholdes; karaktererne skal skrives enkeltvis og skal holdes på displayet i minimum 40 µs, hvorefter en ny karakter kan skrives[powertip(), s. 5]. Det at holde dataene sørger display-peel en for, så fra software-siden skal karaktererne sendes med minimum 40 µs delay mellem hver. Dette timingskrav overholdes ved sende karakterer med samme frekvens som systemets samplingsfrekvens. Denne er ca. 20 khz og giver således et delay mellem hver karakter på 50µs. Dette gøres ved hjælp af DSP ens IDLE-instruktion. Displayet opdateres på denne måde hurtigt nok til at det fra brugeren ser ud som om det sker i det øjeblik, der trykkes på knappen. Initialisering af display Når displayet skal initialiseres, skal forskellige opsætninger sendes til displayet, for at det fungerer som ønsket. Alle disse opsætninger sendes til displayet på samme vis som en karakter sendes. Disse opsætningerne har forskellige timingskrav, hvorfor det for nogle er tilstrækkeligt at anvende IDLE-instruktionen, mens der for andre anvendes en decideret delay-rutine. 93

106 Software Knapper Brugerinterfacet til de digitale effekter består, udover display, af seks knapper og et jog-wheel. Knapperne har hver især forskellige funktioner, hvilket er beskrevet i brugervejledningen, afsnit 4.2. Knapperne repræsenteres hver især af et bit på en input-port hvorfra de kan læses. Jog-wheelet repræsenteres dog af to bit; et der fortæller om der er drejet og et der fortæller i hvilken retning. I knapperne kan der opstå prel, og det er derfor ikke tilstrækkeligt blot at læse på input-porten og registrere et knap-tryk, hver gang et bit er sat. Dette problem er løst ved at der læses fra porten tre gange med 100 µs mellem hver gang. Er disse tre aflæsninger ikke ens forkastes de og der foretages tre nye. Det gøres indtil tre ens aflæsninger fås. Herefter registreres det om resultatet er, at der er trykket på en (eller flere) knap(per) eller ikke. Når der er registreret et tryk på en knap, skal der registreres at der ikke er trykket på en knap, før der igen kan registreres et knaptryk. Ulempen ved denne metode er, at en knap ikke kan holdes inde for at registrere flere knaptryk. Joq-wheelet kan dog anvendes kontinuerligt, idet det fungerer på den måde, at der registreres et tryk, når det er indstillet mellem to hak, og et ikke-tryk, når jog-wheelet står i et hak. Da aflæsningen af knapperne foregår på under 1 ms, kan det ikke umiddelbart lade sig gøre at dreje hjulet så hurtigt at det ikke registreres. Da knapperne kun skal aflæses, er ingen initialisering nødvendig Parameteropdatering Som beskrevet i brugervejledningen i afsnit 4.2, kan der navigeres rundt i de forskellige menuer via interfacet, bestående af display og knapper. Dette foregår ved at main-funktionen dekoder hvilke knapper der er trykket på og skriver den tilhørende menuændring til displayet. Når der skal ændres parametre i menuen bliver et heltal, der ligger i hukommelsen for hver parameter, talt op eller ned. Dette heltal kan antage et antal værdier, svarende til antallet af mulige parameter-værdier for den givne parameter. Efterfølgende bliver dette heltal, via tabelopslag, oversat til henholdvis en, for brugeren, forståeligt værdi der skrives til displayet, samt den parameterværdi, der skal anvendes af den givne effekt. Først når parameteren i effekten er opdateret, kaldes rutinen der skriver til displayet. Og først når der er skrevet til displayet kan et nyt knaptryk registreres. På denne måde er den værdi der står på displayet altid den aktuelle værdi der faktisk anvendes af effekten. For både delay/echo- og flanger-effekten betyder en ændring af en parameter, kun en ændring af et enkelt tal i selve effektkoden. Dermed kan parametrene umiddelbart ændres, når dette skal gøres. Omvendt forholder det sig med equalizer-effekten, hvor en enkelt parameter-ændring, betyder opdatering af alle fem koefficienter i en 2. ordens-sektion. Dette kan ikke gøres parallelt, og derfor kan det risikeres at main-funktionen bliver afbrudt midt i denne koefficient-opdatering, hvilket vil betyde at filteret vil have en udefineret karakteristik. For at undgå dette disables interrupts lige inden denne koefficient-opdatering finder sted og enables igen lige efter. Initialisering af denne rutine er, at give alle heltallene for de forskellige parametre en startværdi. Menu-billeder i hukommelsen samt effekterne initialiseres med de tilhørende værdier, således at alle tre værdier stemmer overens idet systemet startes op. 94

107 11.3 Interrupt-rutine 11.3 Interrupt-rutine I dette afsnit beskrives interrupt-rutinen, dvs. de tre effekter med henblik på deres implementation i assembly samt interrupt-rutinens opgave med at lagre og genskabe af registre til main-funktionen Gendannelse af registre Da interrupt-rutinen kan afbryde main-funktionen på et vilkårligt tidspunkt, er det nødvendigt at interrupt-rutinen lagrer og genskaber de registre, der anvendes af begge funktioner. DSP en har to status-registre, der indeholder auxiliary register pointeren, data-page pointeren samt diverse statusbit, der fortæller om DSP ens opsætning. Disse skal derfor altid lagres og genskabes. Derudover udfører både main-funktionen og interrupt-rutinen diverse beregninger. Derfor lagres også registre der anvendes hertil, således at main-funktionen kan færdiggøres dens beregninger efter interruptrutinen har kørt Effekter De tre effekter beskrives her i et enkelt afsnit, da implementationen af de enkelte effekter er beskrevet i kapitel 8, 9 og 10 for henholdsvis delay/echo, flanger og equalizer. Ved effekterne er branches forsøgt undgået og instruktioner i DSP ens instruktionssæt, der udfører flere funktioner ad gangen, anvendt. Begge dele for at optimere tidsforbruget. Et eksempel på dette er equalizeren, der består af tre 2. ordens-iir-filtre. Dette er en typisk signalbehandlingsopgave og altså noget som DSP er er specialiseret i at udføre. Et eksempel på en instruktion, der er anvendt er LTD-intruktionen, der både henter en ny sample til en multiplikation, flytter samme sample en plads i hukommelsen, hvilket kan anvendes til delay-kæderne i et filter, samt gemmer det tidligere produkt i akkumulatoren. Altså tre funktioner, der ellers ville have taget tre instruktioner at udføre. Test og branches er dog ikke fuldstændigt udeladt, da utilization testen i afsnit 11.5 viser at de tre effekter uden problemer kan nå at blive afviklet indenfor tidsfristen mellem to samples. En yderligere tidsoptimering ville således kun blive relevant, hvis yderligere effekter skulle implementeres på samme system eller samplingsfrekvensen skulle øges Initialisering af effekter Som også beskrevet i afsnit , initialiseres effekterne ved at give alle parametre en værdi tilsvarende den på displayet og i parameteropdateringsrutinen. Desuden lægges værdien 0 i hele delay/echo- og flanger-bufferne, for at undgå at der bliver sendt tilfældige tal på udgangen af systemet, når effekterne startes op Hukommelse For at strukturere hukommelsen har hver effekt og andre rutiner hver deres datapage eller område i data-hukommelsen. Visse instruktioner, såsom den ovenfor beskrevne LDT-instruktion, kan kun udføres i DSP ens interne RAM. Derfor er funktioner, der anvender disse instruktioner placeret i denne hukommelse. Et fuldstændigt memory-map over data-hukommelsen kan ses i appendiks H. 95

108 Software 11.5 Utilization test Denne test har til formål at undersøge hvor stor en del af processorkraften, det vil sige hvor meget tid, der bruges på hver af de digitale effekter.denne test er udført i accepttesten i appendiks C.5. Resultatet af testen kan ses i tabel 11.1, der er en kopi af tabellen C.10. Effekt On - typisk On - worst case Off Delay/Echo 3,9 µs 3,9 µs 2,4 µs Flanger 10,3 µs 11,2 µs 1,2 µs Equalizer 6,2 µs 6,2 µs 1,6 µs Interrupt inkl. alle effekter 22,7 µs 23,6 µs 7,5 µs Tabel 11.1: Tidsforbrug for de enkelte effekter. Worst case for flangeren sker, når bufferpointeren skal opdateres, hvilket kun sker én ud af 3000 gange rutinen bliver kaldt. I tabellen ses tidsforbruget for effekterne, når de er henholdvis slået til og slået fra. At effekterne tager tid, selvom de er slået fra, skyldes at det først er i hver effekts egen rutine, at der tjekkes hvorvidt effekten skal afvikles eller ej. Rutinen skal således kaldes og returnere til interrupt-rutinen hver gang, også når effekten ikke skal afvikles. Disse kald tømmer pipelinen og derfor tager det relativt lang tid i forhold til tidsforbruget når effekterne skal afvikles. Når effekterne afvikles er der færre branches og det vil derfor være forkert at betragte forskellen i tiderne som tiden det tager at afvikle en effekt. Delay-rutinen bruger yderligere tid når den ikke afvikles, idet dens delay-buffer altid opdateres, således at delay-effekten er klar, når den slås til. Effektafviklingstiderne kan, om nødvendigt, optimeres ved ikke at have effekterne som rutiner, der kaldes, men placere dem i koden umiddelbart efter hinanden. Dette viser sig dog ikke nødvendigt her. Interessant er det dog at bemærke at over 25 % af tiden i interrupt-rutinen går med lagring og genskabelse af registre samt rutine-kald. Samplingsfrekvensen er 20,01 khz, hvilket giver en samplingstid på 49,9 µs. Denne tid kan omregnes til et antal instruktionstider, idet hver instruktionstid er = 97,7 ns. Dette giver i alt 510 instruktionstider per sample. På denne tid skal al signalbehandlingen overstås for at systemet kan fungere korrekt. Det ses af tabellen at interrupt-rutinen i worst case tager 23,6 at afvikle, når alle effekter er slået til. Alle effekter kan derfor uden problemer afvikles samtidig. Samplingsfrekvensen kunne faktisk fordobles og effekterne ville stadig kunne afvikles. Dette ville give en række fordele, men bestemt også ulemper. Fordelene ville være at linearitetskravet til systemet ville kunne overholdes; dette krav (krav 5 i kravspecifikationen) foreskriver at systemet skal have en båndbredde op til 10 khz. Det anvendte codec dæmper dog frekvenser højere end 0,4 f s, hvilket umuliggør overholdelse af kravet med en samplingsfrekvens på ca. 20 khz. En højere samplingsfrekvens ville også give mulighed for, at stille et krav om endnu større båndbredde. Disse to kombineret ville give en potentielt bedre lydkvalitet. Den højere samplingsfrekvens er dog ikke implementeret, hvilket skyldes ulemperne af at gøre det, hvilke er mange. Gøres båndbredden større sammen med den højere samplingsfrekvens vil det give mere støj i systemet. Desuden er mange parametre i koden direkte afhængige af samplingsfrekvens; frekvensen af flanger-sinusen, alle koefficienter til equalizeren, skrivningen til displayet og bufferlængderne i både delay/echo og flanger. Særligt den sidste ville være problematisk, idet den dobbelte samplingsfrekvens, ville kræve dobbelt længde af bufferne. Delay/echo bufferen har en længde på 40 kilo words og den dobbelte længde er ikke muligt, idet DSP en kun har et adresserum på 64 kilo words. Den udviklede software ville med andre ord ikke fungere ved en anden samplingsfrekvens uden gennemgribende ændringer. 96

109 Del III Accepttest og konklusion Efter endt analyse, design og implementation af systemet, udføres accepttesten. I det følgende evalueres projektet i form af en diskussion omhandlende resultatet af accepttesen, hvorefter der konkluderes samlet set på projektet. 97

110

111 12 Accepttest Formålet med accepttesten er, at undersøge og dokumentere hvorvidt systemet overholder de i kravspecifikationen i appendiks A opstillede krav. Dette er gjort i henhold til acceptestspecifikationerne i appendiks B. Resultaterne af målingerne fremgår af tabel En nærmere beskrivelse af de enkelte test findes i appendiks C Diskussion af accepttest Systemet anses i de fleste sammenhænge for værende vellykket. En enkelt effekt overholder ikke alle de opstillede krav, men den generelle virkemåde er implementeret tilfredsstillende i alle effekter. Signal/støjforhold: Hele systemet derimod har en mængde krav der ikke er overholdt. Det overskredne krav der virker mest kritisk, er umiddelbart signal/støjforholdet i systemet. Støjen opleves generende for lytteren. Det er i accepttest C.4 vist, at signal/støjforholdet kan forbedres væsentlig ved anvendelse af en lineær strømforsyning, fremfor den i rack et monterede switched mode power supply. Forbedringen er dog lige akkurat ikke god nok til at kravet overholdes. Det kan diskuteres om kravet til signal/støjforhold er sat højt nok, på trods af at det ikke overholdes. Dette skyldes at selv hvor kravet er næsten opfyldt føles støjen stadig generende for brugeren. Et højt signal/- støjforhold er dog særdeles vanskeligt at opnå med den anvendte implementation af systemet; dvs. hvor de enkelte kredsløb er wrappet og monteret i rack. En ændring af systemet, der sandsynligvis vil kunne forbedre signal/støjforholdet, er ikke at nedskalere signalet når det kommer ind i DSP en. Nedskaleringen gør at signalet sjældent vil have fuld udstyring, når det konverteres fra det digitale til det analoge domæne. Da DAC en introducerer en vis mængde støj, uafhængigt af signalamplituden, forringes signal/støjforholdet af denne hermed. Fuld udstyring kan dog opnås, hvis der er forstærket 12 db i equalizeren netop ved de frekvenser et signal måtte bestå af. Nedskaleres signalet ikke, kan equalizeren heller ikke forstærke signalet, uden risiko for overstyring, hvilke ville kræve en revision af kravene til denne. Ofte ses equalizerer, der kun kan dæmpe signalet og ikke forstærke. Måske netop af denne årsag? 99

112 Accepttest Krav nr. Krav Accepttest Overholdt Overordnede krav Krav 1 Analoge signalniveauer: max ±10 V peak C.3 Ja Krav 2 Indgangsimpedans: 2,2 MΩ C.3 Krav 3 Udgangsimpedans: 100 Ω Ved design Krav 4 Bitopløsning: 16 bit Ved design Krav 5 Systembåndbredde og linearitet: 70 Hz til 10 khz med gain C.1 Nej ±1 db, relativt til 1 khz uden effekter aktiveret. Krav 6 Interface: Menubaseret navigation på display med 1 jog Ved design wheel og 6 knapper. Krav 7 Signal/støjforhold: 60 db C.4 Nej Indgangstrin Krav 8 Gain: 5 til 20 gange C.3 Nej Krav 9 Båndbredde: 70 Hz til 10 khz ± 0,5 db relativt til 1 khz. C.2 Ja Krav 10 Signal/støjforhold: 66 db C.4 Ja Krav 11 Krav 12 Krav 13 Krav 14 Krav 15 Effekter generelt Samtidig brug af effekter: Alle typer skal kunne benyttes samtidig, og kunne slåes til og fra enkeltvis. Styring af effektparametre: Relevante effektparametre skal kunne ændres fra menuen. Tremolo Modulationsfrekvens: 0,1 til 10 Hz skal kunne indstilles med en drejeknap. Modulationsdybde: Fra 0 til -40 db ±3 db skal kunne indstilles med en drejeknap. Modulationssignal: Sinus, trekant eller firkant lignende signaler skal kunne vælges. C.5 Ja C.5 Ja C.6 Nej C.6 Nej C.6 Ja Equalizer Krav 16 Type equalizer: Parametrisk equalizer med tre separate filtre. C.7 Ja Krav 17 Centerfrekvenser: Centerfrekvensen skal kunne indstilles i C.7 Ja steps af 1/3-oktav fra 80 Hz op til 10 khz ±2 %. Krav 18 Gain: ±12 db ±0,2 db i steps af 1 db. C.7 Ja Krav 19 Q faktor: Der skal kunne vælges otte forskellige Q faktorer fra 0,5 til 4. C.7 Ja Krav 20 Krav 21 Krav 22 Krav 23 Krav 24 Krav 25 Krav 26 Delay/echo Variabelt delay: 50 ms til 2 sekunder ±5 ms skal kunne indstilles vha. software i steps af 50 ms. Gain: -12 db til -1 db ±0,2 db, samt -0,1 db 1 skal kunne indstilles vha. software i trin af 1 db. Delaytype: Der skal være mulighed for at vælge mellem delay (feed forward) og echo (feedback). Flanger Fast delay: 0 til 15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms. Modulérbar delaydybde (depth): 1-15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms. Signal til modulering af delay: Sinussignal, 0,1 til 2 Hz ±0,05 Hz skal kunne indstilles vha software i steps af 0,1 Hz. Mix: -12 db til 0 db ±0,2 db, skal kunne indstilles vha. software i trin af 1 db. C.8 Ja C.8 Ja C.8 Ja C.9 Ja C.9 Ja C.9 Ja C.9 Ja Tabel 12.1: Resultateterne af accepttesten. Der kan læses nærmere om de enkelte tests i det anførte appendiks afsnit. 100

113 12.1 Diskussion af accepttest Båndbredde: Kravet til båndbredden af systemet har været stærkt diskuteret. Samtlige gruppemedlemmer mente ikke at kunne høre bemærkelsesværdig forskel på guitaren samplet med 44,1 khz og den nu benyttede frekvens på ca. 20 khz. Ingen gruppemedlemmer kunne høre nogen forskel på en samplingsfrekvens på 44,1 khz og 25 khz. Samplingsfrekvensen på 20 khz blev valgt ud fra en opvejning af øget lydkvalitet kontra antal af instruktionscykler per sample. Da lyden opfattes logaritmisk og antallet af instruktionscykler per sample er lineært afhængigt af samplingsfrekvensen, vil en forøgelse af samplingsfrekvensen fra 20 khz til 25 khz kun give en lille forøgelse i lydkvaliteten, men sænke antallet af instruktionscykler per sample med 20 %. Denne problematik skal altid overvejes ved valg af samplingsfrekvens. Da samplingsfrekvensen blev fastlagt var softwaren ikke udviklet, så gruppen var ikke bevidste om hvor mange instruktionscykler, der var nødvendige for at kunne afvikle den ønskede signalbehandling. Ud fra en betragtning om, ikke at ville have for få instruktioner til rådighed, valgtes en samplingsfrekvens på 20 khz. Utilization testen i afsnit 11.5 viser at en højere samplingsfrekvens kunne være valgt. Da softwaren nødvendigvis skal være udviklet for at udføre en sådan test og mange dele af softwaren afhænger direkte af samplingsfrekvensen, er denne ikke efterfølgende sat op. Som tidligere nævnt, var ingen gruppemedlemmer i stand til høre, om et guitarsignal var samplet med 25 khz, eller CD-standarden 44,1 khz. Det virker også rimeligt, taget i betragtning at egne målinger ikke tyder på frekvensindhold over 12 khz. Problemet er imidlertid ikke frekvensindholdet af det rene guitarsignal, men i høj grad hvad brugeren kan finde på at tilslutte mellem guitaren og systemet. Både eksterne pitcheffekter og i særdeleshed også distortion vil ændre frekvensindholdet markant. Det kan derfor slet ikke udelukkes at båndbreddebegrænsningen, til praktisk brug, er for aggresiv. Kravet til båndbredden er i øvrigt sat urimeligt højt sammenholdt med samplingsfrekvensen og det anvendte codec. Kravet kan således under disse forudsætninger aldrig overholdes. At kravet er sat så højt skyldes uvidenhed om valg af codec og dets deraf følgende egenskaber, da kravet blev sat. Kravet burde efterfølgende have været revideret. I accepttest C.1 kan det ses, at de øvrige filtervirkninger udover codec ets antialiaseringsfilter overholder kravet til båndbredden. Indgangsimpedans: Kravet til systemets indgangsimpedans er ikke testet tilfredsstillende og det vides p.t. ikke om kravet er overholdt. Dette skyldes den høje indgangsimpedans og den relativt høje frekvens på 10 khz, den ønskes målt ved. Disse to forudsætninger sammenholdt gør at kapaciteter i måleudstyr, kabler og stik får meget stor indflydelse på målingen. En valid måling er derfor vanskelig at opnå. Accepttesten indikerer dog, at kravet kan være overholdt. Problematikken omkring kabler og stik, er ikke kun relevant ved målingen af indgangsimpedansen, men i høj grad også ved anvendelsen af systemet. En guitar kobles også til systemet med et kabel, hvori der også er en kapacitans. Den impedans guitaren ser vil således være parallelkoblingen af kablets impedans og systemets indgangsimpedans. Så selvom kravet faktisk er overholdt, vil det ikke være overholdt set fra guitaren. Det kan således diskuteres hvorvidt kravet er korrekt formuleret eller om der istedet skulle stilles krav til både kabel og forforstærker set som én enhed. Med et sådan krav vil det dog være særdeles vanskeligt at opnås en impedans på over 2 MΩ ved 10 khz, hvorfor hele problematikken omkring indgangsimpedans måske bør anskues fra en anden vinkel. Meget taler for at kravet heller ikke er kritisk; den minimale indgangsimpedans er sat til ca. ti gange så stor som guitarens maksimale udgangsimpedans. Denne maksimale værdi fremkommer med guitarens volumenpotentiometer indstillet til halv værdi, og ved den værst tænkelige frekvens. 101

114 Accepttest Det antages at en indgangsimpedans som den målte, hvor valid den end må være, ikke påvirker den opfattede lyd hørbart. Digitale effekter: Accepttestene viser at alle de tre digitale effekter overholder alle de opstillede krav. Kravet til samtidig afvikling af disse er diskuteret i afsnit 11.5, hvor det ses at alle effekter kan afvikles samtidig. At alle krav til de digitale effekter er opfyldt, mens en del krav til analog hardware ikke er det, er en interessant problemstilling. Årsagen til dette kan være at kravene til de digitale effekter simpelthen ikke er høje nok. Hvilket dog ikke umiddelbart synes at være tilfældet. Årsagen kan snarere være, at det med de digitale effekter er muligt at simulere dem præcis som de faktisk udføres, da det er samme operationer der udføres i MATLAB og i DSP en. Dette er en klar fordel fremfor de analoge dele, der kun kan simuleres med en model af det faktiske kredsløb. En begrænsning ved en model er at den netop er en model og dermed ikke fortæller hele sandheden. At kravene til særligt flangeren er opfyldt bunder også i et vist held. Den laveste frekvens flangeren skal kunne afvikles med indebærer en multiplikation med 1 LSB. Det er således den mindste mulige frekvens, der overhovedet kan repræsenteres ved denne opløsning. Desuden er frekvensen, der fås ved denne multiplikation, afhængig af samplingsfrekvensen. Havde kravet været en smule anderledes og opløsningen således ikke var tilstrækkelig, kunne multiplikationen relativt simpelt ændres fra at være bit til at være bit. Dette ville give en meget større opløsningen i mulige frekvenser, og en snart sagt given frekvens ville kunne opnås. Andre krav: Andre overskredne krav vil med høj sandsynlighed ikke opdages af brugeren. Her kan fremhæves kravet til minimum 20 gg gain i indgangstrinet, der er blevet målt til 19 gg og minimal tremolodybde på - 40 db, der er målt til ikke lavere end -22 db. Gainet i forforstærkeren vurderes som ukritisk, da den benyttede guitar-type med en rimelig sandsynlighed er den ringeste signalkilde, sammenlignet med elguitarer generelt. Den genererede spænding fra en singlecoil pickup er væsentlig mindre end samme fra en humbucker eller aktiv pickup. At opnå overholdelse af gain-kravet er også trivielt, idet det består i at skifte en enkelt modstand i forforstærkeren. Kravet til tremolodybden er som sagt ikke overholdt. Det er her værd at bemærke at en dæmpning på 20 db giver en faktor 100 mindre effekt, og dermed lydniveauet der opfattes af brugeren. Tremoloeffekten opfattes dermed som ønskes. Det kan dermed med rette diskuteres om kravet på 40 db er blevet sat for højt. Kravet til frekvens på tremoloen er heller ikke overholdt. Her er marginen til overholdelse af kravet dog ganske lille, og det da ikke er den eksakte frekvens, der er interessant, men derimod størrelsesordenen af frekvensen, vurderes dette også som værende ukritisk. Kravet kunne opfyldes ved at udskifte en enkelt modstand. 102

115 13 Konklusion Projektet Effektenhed til guitar er afviklet af gruppe 640 ved Aalborg Universitet. Denne rapport dokumenterer dette projektarbejde. Der er til projektet blevet stillet en guitar til rådighed; denne er blevet analyseret og testet, for at finde relevante parametre for en sådan. En række guitareffekter er blevet analyseret, hvorefter fire er blevet udvalgt til implementation. På baggrund af disse analyser er en række krav til de forskellige effekter opstillet samt krav til systemet, der skal afvikle disse effekter samt give grænsefladen til guitaren. På baggrund af kravspecifikationen er et DSP-system analyseret, designet og implementeret. Systemet består af en DSP med tilhørende hukommelse, debugger/monitor, codec, forforstærker samt et brugerinterface bestående af et display og knapper. Codec et anvendes til at konvertere signalet fra det analoge til det digitale domæne og tilbage. Forforstærkeren anvendes som grænseflade til guitaren, og tilpasser således impedanser og spændingsniveauer. Brugerinterfacet anvendes til at ændre parametre i forskellige effekter, således som kravspecifikationen foreskriver. En tremolo-effekt er implementeret analogt, ved brug af en trekant/firkant-generator, en sinusshaper samt en multiplier. En række af de opstillede krav overholdes ikke, men funktionaliteten af tremoloen er upåklagelig. Et signal kan således amplitudemoduleres med en trekant, firkant eller en sinus. Frekvensen og dybden af modulationen kan justeres af brugeren. Tremolo-effekten har sit eget brugerinterface, bestående af drejeknapper for hver parameter. En delay/echo-effekt er implementeret digitalt. Effekterne er analyseret, hvor det findes, at effekterne med fordel kan implementeres i én blok, da kun en af de to effekter skal kunne afvikles ad gangen. Effekterne bruger en fælles ringbuffer, hvis længde afhænger af delay-længden. Desuden kan gainet af det forsinkede signal justeres. En flanger-effekt er ligeledes implementeret digitalt. Til at implementere den langsomme svingning, der anvendes i en flanger, er CORDIC-algoritmen analyseret og fundet anvendeligt til dette formål. Denne algoritmen er modificeret til applikationen og implementeret. I flangeren anvendes lineær interpolation til beregning af amplituden mellem to samples. Frekvensen af den langsomme svingning, længden af det faste og det varierende delay samt gainet af det forsinkede signal kan justeres. Sidste digitalt implementerede effekt er en parametrisk equalizer med tre filtre. Filtrene er 2. ordens IIR-filtre, der er fundet ved bilineær transformation af overføringsfunktionen af analoge filtre. Forskellige filterstrukturer er analyseret for at finde den optimale til applikationen og filterkoefficienterne er implementeret ved tabelopslag. Slutteligt er filtrenes signal/støjforhold analyseret. I den parametriske equalizer er det muligt at justere centerfrekvenser, gain og Q-værdi for hvert af 103

116 Konklusion de tre filtre. Software er designet og implemeteret, hvor signalbehandlingen (dvs. effekterne) afvikles i en interruptrutine, for at imødegå kravet om afvikling i hård realtid. En main-funktion varetager ikketidskritiske funktioner såsom en menu-funktion, der betjenes vha. brugerinterfacet, samt opdatering af parametre i effekterne. Menu-funktionen giver mulighed for at justere de ovenfor beskrevne parametre og slå effekterne til og fra. En utilization test viser at alle effekter kan afvikles samtidigt. Menu-funktionen kan ligeledes afvikles samtidig, hvor opdatering af menu og parametre, fra brugerens synspunkt sker øjeblikkeligt. Denne hurtige opdatering muliggør at et enkelt af filtrene i equalizeren kan anvendes som en wahwah effekt. En accepttest af alle relevante krav i kravspecifikationen er udført. Denne viser at systemet ikke overholder alle stillede krav, men det virker dog overordnet på tilfredsstillende vis. Ingen af de ikke-overholdte krav har fatal betydning for systemet. Værst af de ikke-overholdte krav er signal/- støjforholdet, idet støjen kan virke generende for brugeren af systemet. Gruppen havde forventet tidspres med hensyn til afvikling af digitale effekter. Det har bl.a. udmyntet sig i en vis forsigtighed ved fastsættelse af krav til samplefrekvens. Det har også betydet at tidseffektivitet i digitale effekter er efterstræbt tidligt i designfasen og opnået i implementering, hvilket har givet udslag i en komfortabel tidsmargin. Der er ligeledes fortaget designvalg for at tidsoptimere den udviklede signalbehandlingssoftware. Af disse kan nævnes CORDIC-algoritmen i flanger samt tabelopslag i den parametriske equalizer. Gruppen er meget tilfreds med flere af disse tekniske løsninger der er benyttet i projektet. Gruppen, der også indbefatter guitareffekt-kyndige medlemmer, har ved test af systemet vurderet at de forskellige effekter har en autentisk lyd. Gruppen mener således, at guitareffekterne er implementeret tilfredsstillende, både ud fra et signalbehandlingsmæssigt samt et akustisk perspektiv. Gruppen mener ligeledes at studieordningen for 6. semesters Signalbehandling er opfyldt. 104

117 Litteratur [AAU(2007)] Det Teknisk-Naturvidenskabelige Fakultet AAU. Studieordning for bacheloruddannelsen i elektronik og elektroteknik samt datateknik semester. Internet, Sep pdf. [Analog-Devices(1990)] Analog-Devices. Low cost analog multiplier AD633, December Sheet/Linear/AD633.pdf. [Crystal(1996)] Crystal. CS Bit Stereo Audio Codec, Januar Sheet/ADC%20+%20DAC/CS4218.pdf. [Electronic(2008)] TC Electronic. G-force tech specs. Internet, Mar [Franco(2002)] Sergio Franco. Design with operational amplifiers and analog integrated circuits. McGraw Hill, 3 edition, ISBN [ICT()] ICT. PEEL 22CV10A-7/-10/-15/-25, CMOS Programmable Electrically Erasable Logic Device, Maj. Sheet/Memory/22CV10.pdf. [Leon-Garcia(2008)] Alberto Leon-Garcia. Probability, Statistics, and Random Processes for E- lectrical Engineering. Pearson Prentice Hall, 3 edition, ISBN [LIGITEK ELECTRONICS CO.()] LTD LIGITEK ELECTRONICS CO. 3mm round LED - red, Maj. Sheet/LCD/Led%203mm.pdf. [Nielsen(2000)] Sofus Birkedal Nielsen. Debugger/Monitor Systems For the Digital Signal Processor families TMS320C/2x/2xx/5x, Maj [Oppenheim and Schafer(1999)] Alan V. Oppenheim and Ronald W. Schafer. Discrete-time signal processing. Prentice Hall International, Inc., 2 edition, ISBN [Ott(1998)] Henry Ott. Noise Reduction Techniques in Electronic Systems. wiley, 2 edition, ISBN [Pirsch(1998)] Peter Pirsch. Architectures for Digital Signal Processing. wiley, 1 edition, ISBN

118 [Powertip()] Powertip. PC 1604-A, 16 karakterer * 4 linjers display. Sheet/LCD/PC1604.pdf. [Raymond A. Serway(2004)] John W. Jewett Jr. Raymond A. Serway. Physcis for Scientists and Engineers. THOMSON BROOKS/COLE, 6 edition, ISBN [Sedra/Smith(1998)] Sedra/Smith. Microelectronic circuits. Oxford, 4 edition, ISBN [STMicroelectronics(1998)] STMicroelectronics. M27C Mbit (64Kb x16) UV EPROM, September Sheet/Memory/M27C1024.pdf. [Texas-Instruments(1989)] Texas-Instruments. TMS320C26FNL Digital Signal Processor, Januar Sheet/Microprossor/TMS320C26.pdf. [Texas-Instruments(1993)] Texas-Instruments. TMS320C2x User s Guide, revision c edition, Januar [Texas-Instruments(2000)] Texas-Instruments. TLE207X EXCALIBUR LOW-NOISE HIGH- SPEED JFET-INPUT OPERATIONAL AMPLIFIERS, Marts Sheet/Linear/TLE2071.pdf. [Tony Bacon(2004)] Dave Hunter Tony Bacon. Totally Guitar. Thunder Bay Press, 1 edition, ISBN [Toshiba(1998)] Toshiba. TC AJ K x 8 bit S RAM 15ns, November Sheet/Memory/TC pdf. [Zölzer(1997)] Udo Zölzer. Digital Audio Signal Processing. John Wiley & Sons, Ltd, ISBN

119 Del IV Appendiks 107

120

121 A Kravspecifikation I dette appendiks oplistes alle de krav, som effektenheden skal overholde. De enkelte krav er bygget op således at det for hvert enkelt krav specificeres: Formål: Formålet med det enkelte krav hvorfor er det medtaget. Krav: Selve kravet, der er identisk med de i afsnit 3.2 opstillede krav. Sporbarhed: Hvor kommer kravet fra, og hvilke kilder, kriterier eller vurderinger ligger til grund herfor. Accepttest: Skal kravet testes, og hvordan. Acceptestspecifikationen findes i appendiks B. A.1 Overordnede krav Krav 1 Analoge signalniveauer Formål: Signaler må ikke blive forvrænget utilsigtet i effektenheden. Krav: Maksimalt ±10 V peak Sporbarhed: For at gøre signalet mere imunt over for indstrålet støj og egenstøj i analoge effekter, skal dette forstærkes op. Et signal niveau på maksimalt ± 10 V peak vurderes rimeligt da den analoge forsyningsspænding er ± 15 V DC. Accepttest: Er defineret i appendiks B.2 Krav 2 Indgangsimpedans Formål: At hindre unødigt tab i overførsel af signalspændingen fra guitar til effektenhed. Krav: 2,2 MΩ Sporbarhed: Vurderet ud fra udgangsimpedans af guitar, der kan være op til 218 kω, se målerapport i appendiks D.1 Accepttest: Er defineret i appendiks B.5 Krav 3 Udgangsimpedans Formål: At hindre unødigt tab i overførsel af signalspændingen fra effektenhed til efterfølgende trin. Krav: 100 Ω 109

122 Kravspecifikation Sporbarhed: Vurderet rimelig ud fra andre effektenheders parametre, se f.eks. TC Electronics G-Force [Electronic(2008)] Accepttest: Overholdes ved design, ved at placere en buffer i udgangen. Krav 4 Bitopløsning Formål: At sikre signalintegriteten og samtidig begrænse beregningsmængden for DSP en Krav: 16 bit Sporbarhed: 16 bit er den naturlige opløsning for den udleverede DSP, og det vurderes at dette er tilstrækkeligt til at bevare signalintegriteten, da 16 bit giver mulighed for et SNR der er større end 90 db Accepttest: Dette krav testes ikke, men overholdes ved design. Krav 5 Systembåndbredde og linearitet Formål: At sikre signalintegriteten og samtidig begrænse beregningsmængden for DSP en Krav: 70 Hz til 10 khz med gain ±1 db, relativt til 1 khz uden effekter aktiveret Sporbarhed: Den lavest målte frekvens er 80 Hz, og den højest målte overtone er 12 khz af hensyn til beregninger, og ud fra lytte test er det valgt at sætte den øvre grænse til 10 khz. 1 db afvigelse er vurderet rimeligt. Accepttest: Er defineret i appendiks B.4 Krav 6 Interface Formål: Systemet skal give visuel feedback, så det kan ses hvilke parametre der ændres. Krav: Menubaseret navigation på grafisk display med 1 jog-wheel og 6 knapper. Sporbarhed: Da det er valgt at implementere af hvilke effekter der ønskes implementeret, er ovenstående vurderet passende. Accepttest: Dette krav testes ikke, men overholdes ved design. Krav 7 Signal/støjforhold Formål: At begrænse støj i systemet. Krav: Min 60 db Sporbarhed: Guitarens SNR er i appendiks D.2 bestemt til 53,2 db. For ikke at introducere betydelig støj, er kravet derfor sat til 60 db. Accepttest: Er defineret i appendiks B.3. A.2 Krav til indgangstrin Krav 8 Gain Formål: Signalet fra guitaren skal forstærkes op til det ønskede signalniveau. Krav: 5 til 20 gange Sporbarhed: Ud fra maksimalt målt signal, se appendiks D.2 og krav til analogt signalniveau, krav 1, er 10 gange vurderet passende til maksimalt signal. Af hensyn til andre guitarer og effekter, der kan placeres foran, er det valgt at udvidde gainområdet, således at dette kan indstilles optimalt til hvilket udstyr der ønskes benyttet. Accepttest: Er defineret i appendiks B.2 Krav 9 Båndbredde Formål: At sikre signalintegritet og samtidig begrænse båndbredden af signalet. Krav: 70 Hz til 10 khz ± 0,5 db relativt til 1 khz. Sporbarhed: Kommer af krav 5, det overordnede krav til systembåndbredde. Da der skal 110

123 A.3 Generelle krav til effekter være lidt margin til andre ulineariteter, er ± 0,5 db valgt. Accepttest: Er defineret i appendiks B.2 Krav 10 Signal/støjforhold Formål: At begrænse egenstøjen i systemet. Krav: Min 66 db Sporbarhed: Da indgangstrinnet er det værste sted at introducere støj, bør her være højest muligt signal/støjforhold. Da krav 7 er sat til 60 db, og indgangstrinnet bør være bedre end dette, er 66 db valgt. Accepttest: Er defineret i appendiks B.2 A.3 Generelle krav til effekter Krav 11 Samtidig brug af effekter Formål: At give guitaristen de bedste betingelser for variaton af spillestilen. Krav: Alle typer skal kunne benyttes samtidig, og kunne slåes til og fra enkeltvis. Sporbarhed: Hvor det giver mening, skal effekter kunne anvendes samtidig, da en guitarist ofte vil forsøge at afprøve så mange forskellige lyde som muligt. Accepttest: Tænd/sluk testes ikke, men overholdes under design. Samtidig brug er defineret i appendiks B.6. Krav 12 Styring af effektparametre Formål: At give guitaristen størst mulig kontrol over systemet. Krav: Relevante effektparametre skal kunne ændres. Sporbarhed: For at guitaristen kan opnå den helt rigtige lyd, skal det være muligt at indstille relevante parametre ved alle effekter. Accepttest: Er defineret under de enkelte effekter i appendiks B.6 A.4 Krav til tremolo Krav 13 Modulationsfrekvens Formål: At indstille hastigheden af tremolo en Krav: 0,1 til 10 Hz skal kunne indstilles med en drejeknap Sporbarhed: Det er normalt en ønsket funktionalitet at kunne indstille hastigheden på en tremolo. 0,1 til 10 Hz er vurderet til at være passende. Accepttest: Er defineret i appendiks B.7 Krav 14 Modulationsdybde Formål: At kunne indstille hvor meget signalet skal dæmpes ved maksimal dæmpning. Krav: Fra 0 til -40 db ±3 db skal kunne indstilles med en drejeknap Sporbarhed: Dette er en ønsket funktionalitet. Signalet bør ikke forstærkes yderligere end i indgangsforstærker, af hensyn til efterfølgende kredsløb. Accepttest: Er defineret i appendiks B.7 Krav 15 Modulationssignal Formål: At kunne vælge forskellige signaler til modulationen. Krav: Sinus, trekant eller firkant lignende signaler skal kunne vælges Sporbarhed: Signaltyperne er valgt, da det er almindelige signaltyper, og giver en rimelig 111

124 Kravspecifikation variationsmulighed. Accepttest: Er defineret i appendiks B.7 A.5 Krav til equalizer Krav 16 Type equalizer Formål: At give guitaristen mulighed for at justere frekvensresponsen Krav: Parametrisk equalizer med tre separate filtre. Sporbarhed: Den parametriske equalizer giver brugeren mulighed for at justere flere parametre end ved eksempelvis en grafisk equalizer. Tre filtre er vurderet tilstrækkeligt. Accepttest: Dette krav overholdes ved design. En test af at tre filtre kan køre samtidig er defineret i appendiks B.8. Krav 17 Centerfrekvenser Formål: At sprede indstillingsfrekvenserne tilpas til at kunne indstille lyden. Krav: Centerfrekvensen skal kunne indstilles i steps af 1/3-oktav fra 80 Hz op til 10 khz ±2 %. Sporbarhed: 80 Hz er lavest målte frekvens fra guitaren og 10 khz er den halve samplingsfrekvens. En afstand mellem centerfrekvenserne på 1/3-oktav er vurderet rimeligt. Accepttest: Er defineret i appendiks B.8 Krav 18 Gain Formål: At bestemme hvor stort gain der skal være muligt indenfor det valgte område. Krav: ±12 db ±0,2 db i steps af 1 db. Sporbarhed: ±12 db er vurderet rimeligt for et enkelt filter. Accepttest: Er defineret i appendiks B.8 Krav 19 Q faktor Formål: At bestemme hvor stor Q faktoren skal være i hvert filter. Krav: Der skal kunne vælges otte forskellige Q faktorer fra 0,5 til 4. Sporbarhed: Otte forskellige båndbredder er vurderet rimeligt, og værdierne er vurderet rimelige ud fra simuleringer af frekvensresponsen. Se afsnit 10 for yderligere forklaring. Accepttest: Er defineret i appendiks B.8 A.6 Krav til delay/echo Krav 20 Variabelt delay Formål: At kunne indstille længden af et delay Krav: 50 ms til 2 sekunder ±5 ms skal kunne indstilles vha. software i steps af 50 ms. Sporbarhed: 50 ms til 2 sekunder er vurderet rimeligt delay Accepttest: Er defineret i appendiks B.9 Krav 21 Gain Formål: At bestemme hvor stort gain der skal være på det forsinkede signal Krav: -12 db til -1 db ±0,2 db, samt -0,1 db 1 skal kunne indstilles vha. software i trin af 1 db. 1-0,1 db er valgt for at give en mulighed for "næsten 0 db", der stadig dæmpes 112

125 A.7 Krav til flanger Sporbarhed: Ved tilbagekobling (echo), skal gainet være under 0 db, da det ellers vil medføre ustabilitet i systemet. -12 db er vurderet som rimelig dæmpning. Accepttest: Er defineret i appendiks B.9 Krav 22 Delaytype Formål: Det skal kunne vælges om der blot skal være et enkelt delay, eller echo. Krav: Der skal være mulighed for at vælge mellem delay (feed forward) og echo (feedback) Sporbarhed: Det giver ikke mening at benytte delay og echo samtidig, hvorfor de kombineres i samme effekt. Accepttest: Er defineret i appendiks B.9 A.7 Krav til flanger Krav 23 Fast delay Formål: At bestemme en fast minimums forsinkelse af signalet. Krav: 0 til 15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms Sporbarhed: Ud fra lydprocessering med en flanger i programmet Cubase 2, er 0 til 15 ms fast delay vurderet rimeligt. Accepttest: Er defineret i appendiks B.10 Krav 24 Modulérbar delaydybde (depth) Formål: At kunne indstille grænsen for den modulerede forsinkelse Krav: 1-15 ms ±0,1 ms skal kunne indstilles vha software i steps af 1 ms Sporbarhed: Ud fra lydprocessering med en flanger i programmet Cubase, er 1 til 15 ms variabelt delay vurderet rimeligt. Accepttest: Er defineret i appendiks B.10 Krav 25 Signal til modulering af delay Formål: At bestemme typen og frekvensen af det modulerende signal. Krav: Sinussignal, 0,1 til 2 Hz ±0,05 Hz skal kunne indstilles vha software i steps af 0,1 Hz Sporbarhed: Ud fra lydprocessering med en flanger i programmet Cubase, er 0,1 til 2 Hz variation af signalet vurderet rimeligt. Accepttest: Er defineret i appendiks B.10 Krav 26 Mix Formål: At bestemme gainet af det modulerede signal, der skal blandes med det originale. Krav: -12 db til 0 db ±0,2 db, skal kunne indstilles vha. software i trin af 1 db. Sporbarhed: Ud fra lydprocessering med en flanger i programmet Cubase, er det ovenstående vurderet rimeligt. Accepttest: Er defineret i appendiks B.10 2 Cubase er et professionelt audioprogram, der bl.a. benyttes i nogle lydstudier, med bl.a. et flanger plug-in, der kan indstilles med forskellige parametre. 113

126 Kravspecifikation 114

127 B Accepttestspecifikation I dette appendiks specificeres hvorledes en accepttest på kravene i kravspecifikationen skal udføres. Accepttestens formål er at teste om alle de, i kravspecifikationen, opstillede krav overholdes. For simple test, eller test, der ikke foretages, er det skrevet under de enkelte krav i kravspecifikationen i appendiks A. B.1 Standardopsætning En stor del af accepttestene indebærer at systemet skal sættes op på samme måde. Denne opsætning kaldes standardopsætningen og beskrives her: 1. Systemet tilsluttes forsyningsspænding. 2. Programmet loades over på systemet ved hjælp af Debugger/Monitor TMS320C/2x. 3. Alle effekter slås fra. B.1.1 Opsætning af audioanalysator En del af accepttestene anvender desuden audioanalysatoren i tabel B.1. Denne kan sættes til at sende et frekvenssweep ud og optage responsen på dette frekvenssweep. Til de effekter, der er LTI-systemer, kan frekvensresponsen af effekten på denne måde måles. Også frekvensresponsen af hele systemet kan måles. Audioanalysatoren kobles op som vist på figur B.1. For at denne måling forløber korrekt skal forskellige parametre i programmet Swept Sine FRF, der anvendes, indstilles. Disse indstillinger ses i tabel B.2. Producent Model Apparattype AAU nr. National Instruments NI-4461-kort Audioanalysator Tabel B.1: Beskrivelse af audioanalysatoren 115

128 Accepttestspecifikation AI0 AI1 System AO0 AO1 NI 4461 PCI bracket Figur B.1: Opkobling af audioanalysatoren for korrekt måling. Faneblad Undermenu Parameter Værdi DAQ Configuration AO excitation channel max value [V] 1, min value [V] -1,00 - AI stimulus channel max value [V] 1, min value [V] -1,00 - AI response channel max value [V] 3, min value [V] -3,00 - Ingen sampling frequency [Hz] ,00 Source Settings sweep frequencies [Hz] start frequency 20, stop frequency 15000, number of steps Ingen frequncy spacing logarithmic Processing Settings Settling settle time [s] 20,00m - - settle cycles 4 - integration integration time [s] 20,00m - - integration cycles 4 Tabel B.2: Opsætning af programmet Swept Sine FRF, der anvendes til at måle frekvensrespons. Øvrige parametre skal have deres default-værdi. Frekvensresponsen kan ses og gemmes, ved at trykke på fanebladet Frequency Response og trykke på knappen Start og Save. 116

129 B.2 Indgangstrin B.2 Indgangstrin Her testes kravene til indgangstrinnet. Først testes krav 8 (gain i indgangstrin) og 9 (båndbredde i indgangstrin) i den endelige konfiguration. Herefter testes krav 1 (analoge spændingsniveauer). 1. Systemet sættes op som beskrevet i B.1, dog måles der med audioanalysatoren på udgangen af forforstærkeren fremfor udgangen af systemet. 2. Indstillingen amplitude [V] under Source Settings i Swept Sine FRF sættes til 500 mv. 3. Forstærkningen i indgangstrinnet sættes til det minimale niveau. Test 1, Krav 8 og 9: Frekvensresponsen måles og resultatet analyseres. Forventet resultat: Forstærkningen ved 1 khz er under 5 gg samt at forstærkningen fra 70 Hz til 10 khz ikke afviger mere end ± 0,5 db fra forstærkningen ved 1 khz. 4. Forstærkningen i indgangstrinnet sættes til det maksimale niveau. Test 2, Krav 8 og 9: Frekvensresponsen måles og resultatet analyseres. Forventet resultat: Forstærkningen ved 1 khz er over 20 gg samt, at forstærkningen fra 70 Hz til 10 khz ikke afviger mere end ± 0,5 db fra forstærkningen ved 1 khz. 5. Indstillingen amplitude [V] under Source Settings i Swept Sine FRF sættes til 1 V og forstærkningen i indgangstrinnet sættes til det maksimale niveau. Test 3, Krav 1: Det aflæses ved hvor høj en spænding signalet klippes. Forventet resultat: En spænding større end 10 V p. B.3 Signal-/støjforhold Her testes kravene til signal-/støjforhold, både for indgangstrinnet, krav 10, og for hele systemet, krav Der måles direkte på indgandgstrinnet uden øvrige dele af systemet tilsluttet. 2. Forstærkningen i indgangstrinnet sættes til det maksimale niveau. 3. Indgangen termineres med 215 kω. Test 4, Krav 10: Efter indgangstrinnet måles egenstøjen med et RMS meter og resultatet sammenlignes med 7,07 V RMS (10 V peak ). Forventet resultat: SNR > 66 db 4. Hele systemet sluttes til og startes op, med alle effekter slået fra. Test 5, Krav 7: Efter udgangstrinnet måles egenstøjen med et RMS meter og resultatet sammenlignes med 7,07 V RMS (10 V peak ). Forventet resultat: SNR > 60 db 117

130 Accepttestspecifikation B.4 Systembåndbredde og linearitet Her testes krav 5 (systembåndbredde og linearitet). 1. Systemet sættes op som beskrevet i B Indstillingen amplitude [V] under Source Settings i Swept Sine FRF sættes til 300 mv. 3. Forforstærkeren sættes til maksimal forstærkning. Test 6, Krav 5: Frekvensresponsen måles og analyseres. Forventet resultat: Den maksimale afvigelse er ±1 db relativt til forstærkningen ved 1 khz, inden for båndbredden (70 Hz - 10 khz). B.5 Indgangsimpedans Her testes krav 2 (Indgangsimpedans). Det er vanskeligt at måle den meget høje ønskede indgangsimpedans (2,2 MΩ), på grund af impedanser i både måleudstyr og i kabler. En metode er dog fundet, hvor impedansen i måleudstyret er ubetydelig. 1. Systemet startes i standardopsætningen. 2. En signalgenerator sættes på indgangen. 3. Signalgeneratoren sættes til at levere en sinus med amplitude på 1 V. 4. Der måles på udgangen af forforstærkeren, og denne indstilles så der er en sinus på ca. 7 V rms på udgangen. 5. Frekvensen på signalgeneratoren sweepes fra 50 Hz til 10 khz, i step af en oktav. Test 7, Krav 2: Udgangssignalet fra forforstærkeren noteres. Forventet resultat: En sinus med konstant rms-værdi på 7 V, da alle frekvenser er indenfor forforstærkerens båndbredde. 6. En modstand på 1 MΩ seriekobles ind i signalvejen fra signalgenerator til forforstærker. 7. Frekvensen på signalgeneratoren sweepes fra 50 Hz til 10 khz, i step af en oktav. Test 8, Krav 2: Udgangssignalet fra forforstærkeren noteres. Forventet resultat: En sinus på udgangen af forforstærkeren med en rms-værdi, der ikke falder under 4,80 V. Da forstærkeren er lineær, vil denne spænding svare til en spændingsdeling af de 7 V rms mellem 1 MΩ og 2,2 MΩ. Måles en lavere spænding er indgangsimpedansen mindre end 2,2 MΩ. Det antages her at signalgeneratorens udgangsimpedans er meget mindre end 1 MΩ. Testopstillingen kan ses i figur B

131 B.6 Effekter Figur B.2: Måleopstilling for måling af indgangsimpedans. Forstærkeren i opstillingen er forforstærkeren, modstanden er test-modstanden og kablet er et RG-58 koaksial-kabel. Rækkefølgen på modstanden og kablet er vigtig for at kapaciteten i kablet ikke ødelægger målingen. B.6 Effekter Her testes det overordnede krav til effekter, omhandlende samtidig brug, krav 11, ved brug af en utilization test. Utilization for hver effekt måles også. Kravet til styring af effektparamtre, krav 12, samt øvrige krav for de enkelte effekter, vil blive beskrevet nærmere under disse i de følgende afsnit. 1. Koden redigeres således at XF-benet sættes høj i starten af interruptrutinen og lav i slutningen, vha. SXF og RXF-instruktionerne. 2. Systemet startes og samtlige effekter slåes til. 3. Der måles med oscilloskop på XF-benet Test 9, Krav 11: Tiden hvor XF-benet er høj måles, og sammenlignes med samplingstiden. Forventet resultat: Alle effekter kan udføres inden for en periode af samplingsfrekvensen. 4. Koden redigeres således at XF-benet er sat under eksekveringen af hver af de tre digitale effekter, og punkt 3 gentages. B.7 Tremolo Her testes kravene til Tremolo effekten, krav 13 (modulationsfrekvens), krav 14 (modulationsdybde) og krav 15 (,odulationssignal). 1. Tremoloeffekten slåes til og alle andre effekter slåes fra. 2. På indgangen af systemet påtrykkes en sinusspænding med en frekvens på 1 khz med amplitude 1 V peak og 0 V DC-offset 3. Indgangstrinnet indstilles således at der på udgangen af dette er ±10 V peak. 4. Signaltypen, modulationsfrekvensen og modulationsdybden indstilles som defineret i tabel B Ved hver test måles fra tremoloens udgang med audioanalysator eller oscilloskop og resultatet analyseres. 119

132 Accepttestspecifikation 6. Hvor signalstyrke er angivet i db, er referencen signalstyrken ved bypass af tremoloen. Test Frekvens Dybde Signal Forventet resultat type Test 10, krav 13 : 0,1 Hz 100% Sinus Modulationssignal er sinusformet, modulationsfrekvens dæmpning er maksimalt 0,1 Hz. Test 11, krav 13 : 10 Hz 100% Sinus Modulationssignal er sinusformet, modulationsfrekvens dæmpning er minimum 10 Hz. Test 12, krav 14 : 10 Hz 0% dæmpning Sinus Modulationssignal er ikke identificerbart, modulationsfrekvens er ikke identificerbar og gain Test 13, krav 14 og 15 : 10 Hz 100% dæmpning Test 14, krav 14 og 15 : 10 Hz 100% dæmpning Test 15, krav 14 og 15 : 10 Hz 100% dæmpning er 0 db ±3 db. Sinus Modulationssignal er sinusformet, modulationsfrekvens er 10 Hz, maksimalt gain er 0 db ±3 db, minimalt gain er -40 db ±3 db. Trekant Firkant Modulationssignal er en trekant, modulationsfrekvens er 10 Hz, maksimalt gain er 0 db ±3 db, minimalt gain er -40 db ±3 db. Modulationssignal er en firkant, modulationsfrekvens er 10 Hz, maksimalt gain er 0 db ±3 db, minimalt gain er -40 db ±3 db. Tabel B.3: Denne oversigt benyttes til test af tremoloeffekten, ud fra krav 13 (modulationsfrekvens), krav 14 (Modulationsdybde) og krav 15 (Modulationssignal). B.8 Equalizer Her testes kravene til equalizeren. Disse er krav 17 (Centerfrekvenser), krav 18 (Gain) og krav 19 (Q-værdier). Der testes på et enkelt filter ved yderpunkterne af hver parameter og et antal parameter-værdier imellem. En fuldstændig test af equalizeren ville blive for omfattende. Desuden veriferes krav 16 (type og antal filtre) ved at vise at equalizeren kan køre med tre filtre ad gangen. 1. Systemet sættes i standardopsætning og tilsluttes audioanalysatoren, som indstilles til bestemmelse af frekvensrespons som beskrevet i appendiks B Frekvensresponsen optages og gemmes som reference. Referencen er frekvensresponsen for det øvrige system, uden effekter slået til. 3. Punkt 2 gentages tre gange og en middelreference findes. 4. Equalizeren slås til med et enkelt filter med centerfrekvens på 640 Hz og Q-værdi på 1. Test 16, Krav 18: Gainet sættes til -12 db, -6 db, 0 db, 6 db og 12 db. Frekvensresponsen optages, referencen subtraheres og resultatet analyseres. Forventet resultat: Gains tilsvarende det indstillede. 5. Equalizeren slås til med et enkelt filter med gain på 12 db og Q-værdi på 1. Test 17, Krav 17: Centerfrekvensen sættes til 80 Hz, 320 Hz, 640 Hz, 1280 Hz, 2560 Hz, 5120 Hz og 8127 Hz. Frekvensresponsen optages, referencen subtraheres og resultatet analyseres. Forventet resultat: Centerfrekvenser tilsvarende det indstillede. 120

133 B.9 Delay/Echo 6. Equalizeren slås til medet enkelt filter med centerfrekvens på 640 Hz og gain på 12 db. Test 18, Krav 17: Q-værdien sættes til 0,3; 0,67; 1,00; 2,24 og 5,00. Frekvensresponsen optages, referencen subtraheres og resultatet analyseres. Forventet resultat: Q-værdier tilsvarende det indstillede. 7. Equalizeren slås til med alle tre filtre, og tilfældige værdier af centerfrekvens, gain og Q- værdi. Test 19, Krav 16: Frekvensresponsen optages, referencen subtraheres og resultatet analyseres. Forventet resultat: Frekvensrespons tilsvarende den simulerede for de tre tilfældigt valgte filtre. B.9 Delay/Echo Her testes Delay- og Echo effekten, nærmere bestemt krav 20 (variabel længde af fast delay), krav 21 (indstilling af gain på forsinket signal) samt krav 22 (valg af delay type, delay/echo). 1. Systemet sættes op som beskrevet i appendiks B Delayeffekten slåes til. 3. Delay indstilles som defineret i tabel B Til hver test påtrykkes en firkantpuls, og signalet på udgangen analyseres med et oscillloskop. 5. Firkantpulsen skal overholde følgende data: V low = 0±0, 1V, V high = 1±0, 1V, t period > 2 sek, t high = 200 ± 10 µs. Test Delay Gain Delay Forventet resultat type Test 20, krav 20 : 50 ms, 100 ms -0,1 db Delay Firkantpulsen bliver gentaget én gang efter hhv. og 150 ms 50, 100 og 150 ms Test 21, krav 21 : 100 ms -0,1 db, Delay Der er et kort delay på 100 ms, Det forsinkede -6 db og signal er dæmpet henholdsvis 0,1 db, 6 db og -12 db 12 db i forhold til det oprindelige Test 22, krav 22 : 100 ms -6 db Delay og Det oprindelige signal bliver gentaget hhv. én Echo og flere end 5 gange. Tabel B.4: Denne oversigt benyttes til test af krav 20 (længden af delay/echo), 21 (gain af delay/echo) og 22 (delaytype). B.10 Flanger Her testes funktionaliteten af flangereffekten, der er omfattet af følgende krav: krav 23 (fast delay), krav 24 (depth), krav 25 (signaltype og frekvens) og krav 26 (mix). 1. Systemet sættes op som beskrevet i afsnit B

134 Accepttestspecifikation 2. Flangereffekten slåes til. 3. Flangeren indstilles som defineret i tabel B Til hver test påtrykkes indgangen et pulstog, og signalet på udgangen analyseres med et oscillloskop. 5. Pulstoget skal overholde følgende data: V low = 0 ± 0, 1V. V high = 1 ± 0, 1V. t period = 40 ± 1ms. t high = 200 ± 10 µs. Test Frekvens Mix Depth Delay Forventet resultat 0,1 Hz 0, -6 og - 1 ms 5 ms Den forsinkede puls vil være henholdsvis 0, -6 og -12 db mindre Test 23, krav 26 : 12 db end Test 24, krav 25 : Test 25, krav 23 : Test 26, krav 24 : 2,0, 1,0 og 0,1 Hz den oprindelige. 0 db 15 ms 0 ms Der vil optræde et mønster med en periodetid svarende til henholdsvis 2,0, 1,0 og 0,1 Hz. 1 Hz 0 db 1 ms 15, 10 og 5 ms 1 Hz 0 db 1, 5, 10 og 15 ms Den forsinkede puls vil være forsinket den indstillede værdi af delay, samtidig med at den vil svinge 1 ms med en frekvens på 1 Hz. 0 ms Den forsinkede puls vil svinge med den indstillede værdi af depth. Tabel B.5: Denne oversigt benyttes til at test af flangereffekten ud fra. 122

135 C Accepttest I dette appendiks testes de i appendiks A definerede krav. C.1 Systembåndbredde og linearitet Accepttesten er udført som specificeret i appendiks B.4. C.1.1 Apparaturliste Producent Model Apparattype AAU nr. National Instruments NI-4461-kort Audioanalysator Tabel C.1: Apparaturliste. C.1.2 Resultater Måleresultaterne kan ses på figur C.1. På figuren svarer 0 db til forstærkningen ved 1 khz og tolerance-grænserne på ± 1 db relativt hertil er indtegnet som vandrette streger. C.1.3 Diskussion På frekvensresponsen ses en ripple på ca. 0,4 db. Denne ripple stammer fra codec et, der giver en ripple på 0,2 db i både dets ADC og DAC. Dette kan ses på figur 5.10(b) i afsnit 5.4, der er gældende for ADC en. Tilsvarende figur findes for DAC en. Desuden ses der en lavpas-virkning i frekvensresponsen; denne skyldes de tre lavpasfiltre i systemet, i forforstærkeren, før ADC en og efter DAC en. Hverken ripplen eller lavpasfiltreringen gør dog at kravet til båndbredden ikke overholdes. Dette gør derimod codec ets antialiaseringsfilter. Frekvensresponsen for dette filter kan ses på figur 5.10(a) i afsnit 5.4. Dette filter dæmper kraftigt over 8 khz når der samples med 20 khz. 123

136 Accepttest 2 1 Amplitude [db] Maksimal tolerance Frekvensrespons Minimal tolerance Frekvens [Hz] Figur C.1: Frekvensrespons for hele systemet samt grænserne for tilladelige værdier af denne. C.1.4 Konklusion Resultatet af denne accepttest er, at systemet ikke overholder kravet til systembåndbredden og lineariteten. Lineariteten overholdes op til 7,7 khz, men ikke 10 khz som kravet foreskriver. Dette skyldes codec ets antialiaseringsfilter, der umuliggør opfyldelse af kravet ved den anvendte samplingsfrekvens. C.2 Indgangstrin (linearitet) Accepttesten er udført som specificeret i appendiks B.2. C.2.1 Apparaturliste Producent Model Apparattype AAU nr. National Instruments NI-4461-kort Audioanalysator Tabel C.2: Apparaturliste. C.2.2 Resultater Resultaterne af målingerne kan ses i figur C.2. Ved både minimal og maksimal forstærkningen er grænserne ± 0,5 db relativt til forstærkningen ved 1 khz indtegnet. Det ses af figuren af forforstærkeren overholder dette linearitetskrav ved begge forstærkninger. Parameter Krav Målt værdi Minimal forstærkning < 5,00 gg 4,51 gg Maksimal forstærkning > 20,00 gg 19,00 gg Maksimalt spændingsniveau > 10 V 13 V Tabel C.3: Testresultater for indgangstrin 124

137 C.2 Indgangstrin (linearitet) Amplitude [db] Maksimal tolerance Maksimal forstaerkning Minimal forstaerkning Minimal tolerance Frekvens [Hz] Figur C.2: Frekvensresponser for minimal og maksimal forstærkning i indgangstrin. C.2.3 Konklusion Resultatet af denne accepttest er, at kravene 1 og 9 er opfyldt. Kravet til forstærkningen, krav 8, er ikke opfyldt, idet forforstærkeren kun kan forstærke 19 gg. 125

138 Accepttest C.3 Indgangstrin impedans Accepttesten er udført som specificeret i appendiks B.5. C.3.1 Apparaturliste Producent Model Apparattype AAU nr. Fluke 189 TRUE RMS Multimeter Wavetek 112 Signalgenerator Tabel C.4: Apparaturliste til måling af indgangsimpedans. C.3.2 Resultater Som beskrevet i accepttestspecifikationen, kan spændingen, der måles på udgangen af forforstærkeren med modstanden i signalvejen, opfattes som spændingsdelingen mellem denne modstand og indgangsimpedansen. Spændingen der spændingsdeles er den, der er på udgangen af forforstærkeren uden modstanden i signalvejen. Dette giver følgende udtryk for indgangsimpedansen, udledt af spændingsdeler-formlen: v med Z ind = R test v uden v med (C.1) hvor: Z ind er størrelsen af indgangsimpedansen [Ω] R test er den anvendte testmodstand, målt til 1,01 MΩ [Ω] v med er udgangsspændingen målt med modstanden i signalvejen [V rms ] v uden er udgangsspændingen målt uden modstanden i signalvejen [V rms ] Måleresultaterne kan ses i tabelc.5. Sidste kolonne er indgangsimpedansen udregnet med ovenstående formel. Frekvens v uden v med Z ind 50 Hz 6,82 V rms 4,80 V rms 2,39 MΩ 100 Hz 7,08 V rms 4,91 V rms 2,27 MΩ 200 Hz 7,14 V rms 4,93 V rms 2,24 MΩ 400 Hz 7,16 V rms 4,93 V rms 2,22 MΩ 800 Hz 7,17 V rms 4,91 V rms 2,18 MΩ 1,6 khz 7,16 V rms 4,83 V rms 2,08 MΩ 3,2 khz 7,15 V rms 4,56 V rms 1,76 MΩ 5,0 khz 7,14 V rms 4,15 V rms 1,39 MΩ 6,4 khz 7,08 V rms 3,79 V rms 1,16 MΩ 8 khz 7,06 V rms 3,43 V rms 950 kω 10 khz 6,97 V rms 2,99 V rms 755 kω Tabel C.5: Testresultater for måling af indgangsimpedans. C.3.3 Diskussion Det ses af tabel C.5, at kravet ikke umiddelbart er overholdt. Dette er dog ikke nødvendigvis ensbetydende med, at dette er sandheden. Som beskrevet i accepttestspecifikationen i appendiks 126

139 C.4 SNR for indgangstrin og system B.5, kan målemetoden, der eksempelvis anvendes i målejournalen i appendiks D.1, hvor guitarens udgangsimpedans bestemmes, ikke anvendes her på grund af den høje indgangsimpedans, der ønskes målt. Indgangsimpedanserne i måleinstrumenterne bliver for små i forhold til den, der ønskes målt, ved de højere frekvenser i det frekvensbånd, der ønskes målt i. Derfor anvendes her en anden metode, der eliminerer usikkerheden omkring instrumenterne. Hvad metoden dog ikke tager højde for er impedanserne i de kabler, der anvendes til målingen. Som beskrevet i accepttestspecifikationen er rækkefølgen af kabel og modstand vigtig. Faktisk skal testmodstanden placeres så tæt på indgangstrinnet som muligt. Dette skyldes at den impedans, der faktisk måles, er parallelkoblingen af indgangsimpedansen og impedansen i det kabel mm. der sidder mellem testmodstanden og indgangstrinet. Et koaksialkabel af typen RG-58 har en kapacitans på ca. 100 pf/m. Ved 10 khz giver dette en impedans på ca. 160 kω. Med en sådan impedans i parallel vil indgangsimpedansen på 2,2 MΩ ikke kunne måles. I den udførte måling er testmodstanden placeret i indgangstrinnets ende af koaksialkablet, men der er stadig nogle korte kabler og stik i signalvejen indtil forforstærkeren. I disse er der også små kapaciteter, der kan have betydning for målingen. Ud fra en målingen kan identificeres en 3 db knækfrekvens ved ca. 4 khz. Dette giver en kapacitet på 18 pf ved en modstand på 2,2 MΩ, når systemet opfattes som et 1. ordens-system. En kapacitet af denne størrelsesorden er ikke usandsynlig, i de anvendte kabler og stik. Målingen kan derfor ikke opfattes som værende valid nok til at verificere hverken at kravet til indgangsimpedans er overholdt, eller at det ikke er. Skulle en valid måling foretages, skulle testmodstanden placeres helt inde ved forforstærkeren, hvilket ikke umiddelbart er muligt. Det kan i denne forbindelse også diskuteres hvorvidt, de forskellige stik skal opfattes som en del af indgangtrinnet. Er dette tilfældet vil kravet til indgangsimpedansen ikke kunne overholdes. C.3.4 Konklusion Det kan ud fra denne test hverken vises eller afvises at indgangsimpedansen overholder kravet. Dette skyldes at den udførte måling ikke er valid nok. Målingen viser dog at kravet er overholdt op til lidt under 1 khz, hvor kapaciteterne i kabler og stik ikke har så stor betydning. Målingen indikerer derfor, at kravet potentielt kan være overholdt. C.4 SNR for indgangstrin og system Accepttesten er udført som specificeret i appendiks B.3. Yderligere er testen gennemført med og uden båndbreddebegrænsning af systemet og med en lineær PSU (Power SUpply), samt en SMPS (Switched Mode Power Supply). Den grundige test skyldes at det ønskes at klarlægge, hvorvidt der er mulighed for optimering af SNR ved at ændre disse testparametre. Indgangen på indgangstrinnet er termineret med 215 kω. C.4.1 C.4.2 Apparaturliste Resultater Resultater for indgangstrinnet alene ses i tabel C.7. Resultater for det samlede system ses i tabel C

140 Accepttest Producent Model Apparattype AAU nr. Radiometer Type RV36 AF millivoltmeter Krohn - Hite Model 3103 Filter B&O SN16 PSU Tabel C.6: Apparaturliste. Test Båndbreddebegrænsning PSU Måling[RMS] SNR accepteret SNR for indgangstrin Nej SMPS 3 mv 67,5 db Ja SNR for indgangstrin Ja SMPS 1,2 mv 75,4 db Ja SNR for indgangstrin Nej Lineær 1,4 mv 74,1 db Ja SNR for indgangstrin Ja Lineær 1,1 mv 76,2 db Ja Tabel C.7: Resultatet af målingerne på indgangstrinnet alene. C.4.3 Diskussion Ud fra resultaterne i tabel C.7 og C.8 er der tydeligvis noget at hente ved at benytte en anden PSU. Systemet bærer desuden præg af at være en prototype monteret i et rack. Det bør absolut være muligt at overholde systemkravet ved en slutimplementering, da hverken systemet eller de forskellige interne enheder er skærmet. Alle signaler imellem modulerne løber i et vertikalt backplane og der er rig lejlighed til at samle støj op undervejs. På trods af afkoblinger både på digitale og analoge kredse, er der meget ledningsbåret støj fra SMPS en. Ved at afmontere alle moduler og blot måle på forsyningen, ses en tydelig spike med en frekvens på lidt over 21 khz. Det må siges at det langt fra er optimalt at have swichstøj så tæt på systemfrekvenser. C.4.4 Konklusion Indgangstrinet overholder det i 10 specificerede krav til SNR. Systemet som helhed overholder ikke det i 7 specificerede krav til SNR på 60 db. 128

141 C.5 Utilization test Test Båndbreddebegrænsning PSU Måling[RMS] SNR accepteret SNR for system Nej SMPS 0,72 mv 50,7 db Nej SNR for system Ja SMPS 0,65 mv 51,6 db Nej SNR for system Nej Lineær 0,38 mv 56,3 db Nej SNR for system Ja Lineær 0,25 mv 59,9 db Nej Tabel C.8: Resultatet af målingerne på hele systemet. C.5 Utilization test Accepttesten udføres som beskrevet i appendiks B.6. C.5.1 Apparaturliste Producent Model Apparattype AAU nr. Agilent 54621A Oscilloskop Tabel C.9: Apparaturliste til utilization test. C.5.2 Resultater Tiden der anvendes for hver effekt samt interrupt-rutinen, kan ses i tabel C.10. Worst case af flangeren sker når buffer-pointere skal opdateres, hvilket kun sker én ud af 3000 gange rutinen bliver kaldt. Effekt On - typisk On - worst case Off Delay/Echo 3,9 µs 3,9 µs 2,4 µs Flanger 10,3 µs 11,2 µs 1,2 µs Equalizer 6,2 µs 6,2 µs 1,6 µs Interrupt inkl. alle effekter 22,7 µs 23,6 µs 7,5 µs Tabel C.10: Resultater af utilization test C.5.3 Konklusion Med en samplingsfrekvens på 20,01 khz haves der 49,9 µs mellem hver sample. Af disse bruges maksimalt 23,6 µs på effekterne. Resultatet er dermed at alle tre effekter kan afvikles samtidig. C.6 Tremolo Accepttesten af tremoloen er udført som specificeret i appendiks B.7. C.6.1 C.6.2 Apparaturliste Resultater Resultatet ses i tabel C

142 Accepttest Producent Model Apparattype AAU nr. Wavetek 112 Signalgenerator Agilent 54621A Oscilloskop Tabel C.11: Apparaturliste ved test af tremolo. Test B.7 Parameter Måling Krav Accepteret Test 10 Frekvens 112 mhz f < 100 mhz Nej Test 11 Frekvens 10,3 Hz f > 10 Hz Ja Test 12 Gain 1,14 db -3 db G 3 db Ja Test 13 Kurveform Sinusformet Sinusformet Ja Test 13 G min G -40 db G = -24,01 db Nej Test 13 G max -3 db G 3 db G = 1,21 db Ja Test 14 Kurveform Trekantformet Trekantformet Ja Test 14 G min G -40 db G = -21,94 db Nej Test 14 G max -3 db G 3 db G = 1,06 db Ja Test 15 Kurveform Firkantformet Firkantformet Ja Test 15 G min G -40 db G = -21,94 db Nej Test 15 G max -3 db G 3 db G = 1,14 db Ja Tabel C.12: I denne oversigt ses testen af tremoloeffekten, ud fra krav 13 (modulationsfrekvens), krav 14 (modulationsdybde) og krav 15 (modulationssignal), samt status for testresultatet. C.6.3 Diskussion Alle krav er ikke overholdt. Det er ikke muligt at opnå frekvenser under 0,1 Hz og den maksimale dæmpning er kun lidt over en faktor 10. De overskredne krav hindrer dog ikke funktionaliteten. Brugeren vil ikke opleve stor forskel på 0,1 Hz modulationsfrekvens og 0,112 Hz modulationsfrekvens. Ligeledes er der kun opnået ca. 10 gg dæmpning. Det er dog værd at huske på, at der er tale om 100 gg effektdæmpning og tremoloeffekten opleves af lytteren, som forventet. C.6.4 Konklusion Kravene om laveste modulationsfrekvens og største modulationsdybde (dæmpning) er ikke overholdt. Øvrige krav er overholdt. C.7 Equalizer Accepttesten er udført som specificeret i appendiks B.8. C.7.1 Apparaturliste Producent Model Apparattype AAU nr. National Instruments NI-4461-kort Audioanalysator Tabel C.13: Apparaturliste. 130

143 C.7 Equalizer C.7.2 Resultater Resultaterne af målingerne kan ses i figurerne C.3, C.4 og C.5. I hver figur er indtegnet den målte frekvensrespons med en kurve og udvalgte punkter af den simulerede frekvensrespons med cirkler. Den simulerede frekvensrespons er simuleret med 32 bit floating-point opløsning af såvel koefficienter som produktsummer. Til figurerne for gain og centerfrekvens hører en tabel, der viser forventede og målte værdier af parametrene samt afvigelsen på de to. Centerfrekvens: 640 Hz Gain: 12 db, 6 db, 0 db, 6 db, 12 db Q: 1 10 Maalt Simuleret Amplitude [db] Frekvens [Hz] Figur C.3: Frekvensresponser for forskellige gains. Parameter Krav/simuleret værdi Målt værdi Afvigelse Gain 12,00 db 12,00 db 0,00 db Gain 6,00 db 6,00 db 0,00 db Gain 0,00 db 0,00 db 0,00 db Gain -6 db -6,00 db 0,00 db Gain -12 db -12 db 0,00 db Tabel C.14: Testresultater for gain. Parameter Krav/simuleret værdi Målt værdi Afvigelse Centerfrekvens 80 Hz [78, 5; 81, 3] Hz < 1, 9 % Centerfrekvens 320 Hz [316; 324] Hz < 1, 3 % Centerfrekvens 640 Hz [631; 646] Hz < 1, 4 % Centerfrekvens 1280 Hz [1260; 1290] Hz < 1, 6 % Centerfrekvens 2560 Hz [2540; 2600] Hz < 1, 6 % Centerfrekvens 5120 Hz [5070; 5190] Hz < 1, 4 % Centerfrekvens 8127 Hz [8030; 8220] Hz < 1, 2 % Tabel C.15: Testresultater for centerfrekvens. 131

144 Accepttest 12 Centerfrekvens: 80 Hz, 320 Hz, 640 Hz, 1280 Hz, 2560 Hz, 5120 Hz, 8127 Hz Gain: 12 db Q: 1 10 Amplitude [db] Maalt Simuleret Frekvens [Hz] Figur C.4: Frekvensresponser for forskellige centerfrekvenser Centerfrekvens: 640 Hz Gain: 12 db Q: 0.3, 0.67, 1.00, 2.24, 5.00 Maalt Simuleret Amplitude [db] Frekvens [Hz] Figur C.5: Frekvensresponser for forskellige Q-værdier. C.7.3 Diskussion Målingen af gainet viser et meget stort sammenfald mellem de målte og simulerede værdier. Faktisk er det først på tredje decimal, at der kan ses en forskel mellem det målte og det simulerede gain. Dette vel at mærke i db. Centerfrekvenserne overholder også kravet på en maksimal afvigelse på 2 %. Den målte centerfrekvens er dog ikke helt eksakt. Dette skyldes at den målte frekvensrespons har en begrænset frekvensopløsning, da det ville tage meget lang tid at gennemløbe et stort antal frekvenser ved målingen. Den fundne afvigelse er således en maksimal afvigelse, og den faktiske er sandsynligvis i de fleste tilfælde væsentlig mindre. Målingen af Q-værdier er vanskeligere end de to øvrige, idet Q-værdien ikke direkte kan aflæses af frekvensresponserne, jævnfør afsnit Derfor er der heller ikke en tabel, der viser afvigelsen for denne parameter. Udfra de målte frekvensresponser i figur C.5 sammenholdt med de simulerede 132

145 C.8 Delay/echo Centerfrekvens: 127 Hz, Gain: 10 db, Q: 5,00 Centerfrekvens: 1280 Hz, Gain: 4 db, Q:0,67 Centerfrekvens: 4064 Hz, Gain: 7 db, Q: 1,50 10 Maalt Simuleret Amplitude [db] Frekvens [Hz] Figur C.6: Frekvensrespons for equalizeren aktiveret med tre tilfældigt valgte filtre. på samme figur, konkluderes det dog at kravet til Q-værdierne også er opfyldt. Sidste måling med tre samtidige filtre viser, at systemet også her leverer samme frekvensrespons som den simulerede og dermed overholder kravet. C.7.4 Konklusion Resultatet af denne accepttest, er at den parametriske equalizer overholder alle de opstillede krav. C.8 Delay/echo Accepttesten af delay/echo er udført som specificeret i appendiks B.9. C.8.1 Apparaturliste Producent Model Apparattype AAU nr. Phillips PM5715 Pulsgenerator Agilent 54621A Oscilloskop Tabel C.16: Apparaturliste ved test af delay/echo. C.8.2 Resultater Resultatet ses i tabel C.17. C.8.3 Diskussion Det er bevidst valgt ikke at teste delaylængden til mere end 150 ms, på trods af kravet om op til 2 sekunders forsinkelse. Grunden hertil er dels, at det er en ikke ubesværlig affære at lave en måling 133

146 Accepttest Test B.7 Parameter Måling Krav Accepteret Test 20 Delaylængde(L) 50,0 ms 45 ms L 55 ms Ja Test 20 Delaylængde(L) 100,0 ms 95 ms L 105 ms Ja Test 20 Delaylængde(L) 150,0 ms 145 ms L 155 ms Ja Test 21 Delaygain(G) -0,21 db -0,3 db G 0,1 db Ja Test 21 Delaygain(G) -6,02 db -6,2 db G 5,8 db Ja Test 21 Delaygain(G) -11,98 db -12,2 db G 11,8 db Ja Test 22 Delaytype Delay Delay Ja Test 22 Delaytype Echo Echo Ja Tabel C.17: I denne oversigt ses testen af delayeffekten, ud fra krav 20 (Delaylængden), krav 21 (Delaygainet) og krav 22 (Echo eller delay), samt status for testresultatet. over 2 sekunder, med en fornuftig tidsmæssig opløsning. Hvis vi skal regne med valide målinger, skal der benyttes udstyr der er 4 gange mere nøjagtigt end kravet til det målte. Det skal altså være muligt at detektere forskelle på 1,25 ms over en tid på 2 sekunder. Det kan naturligvis lade sig gøre, men er vurderet unødvendigt. Delaylængden fungerer fint i det testede område og med en samplefrekvens på 20 khz er vores tidsopløsning på 50 µs. Ved en eventuel fejl i delaylængden, bør den med al rimelighed også være at finde ved korte delaytider. C.8.4 Konklusion Alle krav til delay/echo-effekten er overholdt. C.9 Flanger Accepttesten af flangereffekten er udført som specificeret i appendiks B.10. C.9.1 Apparaturliste Producent Model Apparattype AAU nr. Phillips PM5715 Pulsgenerator Agilent 54621A Oscilloskop Tabel C.18: Apparaturliste ved test af flangereffekten. C.9.2 Resultater Resultateterne er listet i tabel C.19. C.9.3 Diskussion De målte afvigelser på frekvensen af sinusgeneratoren stemmer godt over ens med de i kapitel 9 beregnede værdier. Den bergnede værdi af den laveste frekvens er således 0,097 Hz hvilket passer fint med det målte. 134

147 C.9 Flanger Test B.10 Parameter Måling Krav Accepteret Test 24 Frekvens 2,04 Hz 2,00 Hz ± 0,05 Hz Ja Test 24 Frekvens 0,97 Hz 1,00 Hz ± 0,05 Hz Ja Test 24 Frekvens 0,097 Hz 0,10 Hz ± 0,05 Hz Ja Test 25 Fast delay 15,08 ms 15,00 ms ± 0,1 ms Ja Test 25 Fast delay 10,08 ms 10,00 ms ± 0,1 ms Ja Test 25 Fast delay 5,06 ms 5,00 ms ± 0,1 ms Ja Test 26 Depth 1,02 ms 1,00 ms ± 0,1 ms Ja Test 26 Depth 5,04 ms 5,00 ms ± 0,1 ms Ja Test 26 Depth 10,08 ms 10,00 ms ± 0,1 ms Ja Test 26 Depth 15,10 ms 15,00 ms ± 0,1 ms Ja Test 23 Mix 0,06 db 0,00 db ± 0,2 db Ja Test 23 Mix -6,19 db -6,00 db ± 0,2 db Ja Test 23 Mix -11,91 db -12,00 db ± 0,2 db Ja Tabel C.19 C.9.4 Konklusion Det kunkluderes på baggrund af de anførte resultater, at brugeren generelt vil få den forventede lytteoplevelse ved brug af falngereffekten. 135

148 Accepttest 136

149 D Målerapporter I dette appendiks findes målerapporter, der ikke er har med accepttesten at gøre. En måling af guitarens udgangsimpedans og signal er foretaget for at kunne dimensionere indgangstrinnet. Til at underbygge målinger af signal/støjforhold for systemet, er desuden foretaget en måling af SNR i audio codec et. D.1 Målerapport for udgangsimpedans i guitar Operatører: Casper Fynsk og Brian M. Christensen Sted: B1-101, Fredrik Bajers Vej 7, Aalborg Universitet Dato: 15/ Måleobjekt: Axtech Vintage guitar. D.1.1 Formål Formålet med forsøget er, at bestemme udgangsimpdansen af guitaren da denne skal bruges til at opstille krav til forforstærkeren i systemet. D.1.2 Apparaturliste Producent Model Apparattype AAU nr. Axtech Vintage Guitar Hameg HM7042 Strømforsyning Fluke 189 TRUE RMS Multimeter Fluke 189 TRUE RMS Multimeter National Instruments NI-4461 PC med NI-4461-kort Tabel D.1: Apparaturliste. D.1.3 Forsøgsbeskrivelse Der udføres to forsøg. I det første forsøg bestemmes størrelsen af potentiometret i volumenkontrollen. I det andet forsøg findes guitarens impedans som funktion af frekvens, hvorefter guitarens maksimale udgangsimpedans findes på baggrund af forsøgsresultaterne. 137

150 Målerapporter D.1.4 Måleopstilling Forsøg 1 Figur D.1 illustrerer forsøgsopstillingen. Guitarens udgang påtrykkes en DC spænding V f gennem en kendt modstand R 1 spændingen over modstanden måles i form af V 2. Udgangsimpedansen måles med volumenknappen på guitaren i tre positioner, henholdsvis min, maks og mellem. Under hele forsøget er de to øverste pickupper valgt. Forsøg 2 Der benyttes sammen måleopstilling se figur D.1 i stedet for en DC-spænding påtrykke guitarens udgang en kendt sinussvingning v f med varierende frekvens. Der foretages i alt syv målinger: en på den nederste pickup der ingen tonekontrol har og tre for hver af de to andre pickups hvor tonekontrollen indstillet til henholdsvis min, mellem og maks. Volumenkontrollen indstilles på maks under alle målingerne. v 2 v 1 Vf R 1 Guitar Figur D.1: Måleopstilling D.1.5 Målemetode Forsøg 1 Først indstilles volumenknappen, herefter tændes strømforsyningen og spændingerne V 1 og V 2 aflæses og noteres. Dette gentages for alle tre positioner af volumenknappen. Volumenknappens mellem position findes ved, at indstille på knappen indtil V 2 antager den mindst mulige værdi. Forsøg 2 Grundet den store mængde målinger der skal foretages, benyttes en computer med et NI-PCI-446 indstikskort og softwaren Swept sine vi. Kortet har to analoge indgange der benyttes til at måle v 1 og v 2, og to analoge udgange hvor den ene benyttes til at generere v f. Softwaren indstilles til at sweepe frekvenserne 20 Hz - 20 khz i 200 step logaritmisk fordelt og amplituden på signalet sættes til ±10 V. Ved hvert frekvensstep måles rms værdien af v 1 og v 2. Impedansen udregnes senere ved at overføre de målte værdier til MATLAB. D.1.6 Forsøgsresultater Forsøgsresultaterne for forsøg 1 fremgår af tabel D.2. Forsøgs resultaterne for forsøg 2 er plottet på figur D.2(a) og D.2(b). 138

151 D.1 Målerapport for udgangsimpedans i guitar V 1[V] V 2[V] R 1 [Ω] Volumen Impedans [Ω] 4,6062 4, kω min R min,m = 2, 00 Ω 4,6061 1, kω max R max,m = 3, 19 kω 4,6059 0, kω mellem R mel,m = 129, 83 kω Tabel D.2: Måledata fra 1. forsøg samt beregnet DC impedans. x 10 5 Impedans [Ω] Nedre pickup Midter pickup max tone Midter pickup mellem tone Midter pickup min tone Frekvens [Hz] (a) Nedre og midter pickup x Oevre pickup max tone Oevre pickup mellem tone Oevre pickup min tone Impedans [Ω] Frekvens [Hz] (b) Øvre pickup Figur D.2: Den målte impedans af guitaren som funktion af frekvens. Den maksimale impedans opnåes for den nedre pickup ved ca. 3,2 khz, hvor impedansen er 210 kω. Den øvre og midter pickup er næsten sammenfaldende for ens indstillinger af hver deres tonekontrol. 139

152 Målerapporter D.1.7 Teori Ud fra forsøgsresultaterne, konkluderes det, at volumenkontrollen i guitaren er implementeret som vist på figur D.3. Størrelsen af potentiometret R vol samt den resistive del af z g bestemmes i det følgende, på baggrund af forsøgsresultaterne fra forsøg 1(DC-målinger). Guitar R vol z g Figur D.3: Ækvivalent diagram over guitaren. Figur D.4(a) viser diagrammet når volumenkontrollen er indstillet til maksimum. Det ses, at den målte impedans R max,m udgøres af parallelforbindelsen af R vol og z g, hvorved der kan opstilles følgende ligning med to ubekendte: R max,m = R vol z g R vol + z g (D.1) Guitar Guitar R vol z g R 11 R 12 zg (a) Maks volumen (b) Mellem volumen (R vol = R 11 + R 12) Figur D.4: Ækvivalent diagram over guitaren med volumenknappen i de to positioner. Figur D.4(b) illustrerer kredsløbet for mellem-volumen, hvor R vol = R 11 + R 12. Da der under forsøget blev indstillet på volumenkontrollen indtil V 2 antog den mindst mulige værdi, gælder følgende: R 11 = R 12 + z g da dette giver den største værdi af parallelforbindelsen. Der må hermed også være følgende sammenhæng mellem den målte impedans R mel,m og R 11, R 11 = 2 R mel,m. På baggrund af dette, opstilles endnu en ligning med to ubekendte: R mel,m = R 11 (z g + R 12 ) R 11 + z g + R 12 = 2R mel,m (z g + (R vol 2R mel,m )) z g + R vol (D.2) Ved at sammensætte ligning D.1 og D.2 findes følgende udtryk for R vol : R 2 vol 4R volr mel,m + 4R max,m R mel,m = 0 R vol = 516, 09 kω (D.3) Det ønskes nu at finde den maksimale udgangsimpedans z o,maks af guitaren. Figur D.2(a) og D.2(b) beskriver impedansen som funktion af frekvens med volumenkontrollen indstillet til maks og forskellige indstillinger af tonekontrol og pickupvælger. Det ses at kurven topper ved 210 kω, 140

153 D.2 Målerapport for udgangssignal fra guitar når den nederste pickup er valgt. Den målte impedans z o,m er parallelforbindelsen af R vol og z g (se figur D.4(a)) og da R vol kendes findes z g til: z o,m = R vol z g R vol + z g z g = R vol z o,m R vol z o,m = 354 kω (D.4) Den maksimale udgangs impedans opstår når volumenkontrollen er indstillet så den deler summen af R vol og z g i to lige store dele, hvorved størrelsen af parallelforbindelsen bliver: z o,maks = R vol + z g 4 = 218 kω (D.5) D.1.8 Konklusion Forsøget viser, at guitarens udgangsimpedans kan variere fra 2, 0 Ω- 218 kω afhængigt af hvordan volumenkontrollen, pickupvælger og tonekontrol indstilles. D.2 Målerapport for udgangssignal fra guitar Operatører: Casper Fynsk og Brian M. Christensen Sted: B1-101, Fredrik Bajers Vej 7, Aalborg Universitet Dato: 15/ Måleobjekt: Axtech Vintage guitar. D.2.1 Formål Formålet med forsøget er, at bestemme amplituden af og frekvensindholdet i udgangssignalet fra guitaren, samt dennes signal/støjforhold. D.2.2 Apparaturliste Producent Model Apparattype AAU nr. Axtech Vintage Guitar National Instruments NI-4461-kort Audioanalysator Tabel D.3: Apparaturliste. D.2.3 Måleopstilling Alle målinger foretages med guitarens udgang koblet direkte på indgangen af audioanalysatoren, som vist på figur D.5. Signalet samples vha. programmet Sound and Vibration Assistant i audioanalysatoren, gemmes og analyseres efterfølgende i MATLAB. Alle signaler samples i 10 s. Ved alle målinger indstilles guitarens volumenkontrol på max, pickup-vælgeren sættes til kombinationen af de to øverste pickup er samt tonekontrollen sættes til maksimal-indstilling, alle tre gøres for at opnå det størst mulige udgangssignal, jævnfør afsnit 2.3 omhandlende guitarens indre opbygning. 141

154 Målerapporter Figur D.5: Måleopstilling for målinger af udgangssignal fra guitar. D.2.4 Forsøgsbeskrivelse For at måle den maksimale amplitude guitaren kan levere, anslås alle seks strenge med stor kraft på samme tid. I anslagsøjeblikket vil den maksimale amplitude opnås og rms-værdien af signalet umiddelbart efter anslaget vil være det maksimale signal-niveau, hvilket anvendes til bestemmelse af signal/støjforholdet. Det er valgt at definere signal/støjforholdet ud fra rms-værdien af signalet fra 100 ms efter et anslag og 1 s frem. Til bestemmelse af signal/støjforholdet skal rms-værdien af støjen også kendes. Denne findes ved måle på guitaren, efter at denne har ligget i ro i minimum 2 min, således at alle eventuelle svingniger i stregene er dæmpet til et ubetydeligt niveau. Ved bestemmelse af frekvensindholdet ønskes henholdvis laveste og højeste tone bestemt, samt overtoner af disse. Dermed kan højeste og laveste frekvenser, som guitaren leverer, findes. Dette gøres ved at slå en enkelt streng an; henholdvis den dybe E-streng uden at holde på et bånd og den høje e-streng med fingeren på det 22. bånd, dvs. det højeste bånd. Disse to former for anslag vil herefter benævnes henholdsvis den dybe E-streng og den høje e-streng. D.2.5 Forsøgsresultater Målingen af maksimal amplitude kan ses på figur D.6, hvor effektivværdien af signalet findes til 94,1 mv. v(t) [V] t [s] Figur D.6: Signalforløbet ved kraftigt anslag på alle seks strenge. Netop i anslaget ses en spidsværdi på 1,09 V. De to lodrette linjer på figuren beskriver start og slut på det tidsrum, hvori rms-værdien af signalet findes. Denne findes til 94,1 mv. Effektivværdien af støjen måles til 206 µv, og dermed kan signal/støjforholdet for guitaren findes 142

155 D.2 Målerapport for udgangssignal fra guitar til at være 53,2 db. Laves en frekvensanalyse af støjen ses det at den største frekvenskomposant er beliggende ved 50 Hz, som vist på figur D.7. Dette stemmer overens med at største delen af støjen er indstrålet 50 Hz brum Y(f) [db] Frekvens [Hz] Figur D.7: Frekvensindholdet af støjsignalet. Det ses at den største frekvenskomposant ligger ved 50 Hz, hvorfor grafen er normaliseret med hensyn til denne frekvenskomposant. Den er 7,4 db større end den næststørste; den tredjeharmoniske beliggende ved 150 Hz. Frekvensindholdet for den dybe E-streng og den høje e-streng er vist i henholdsvis figur D.8 og D.9. Det ses at guitaren laveste tone er ca. 80 Hz samt at den højeste overtone er ca. 12 khz. D.2.6 Diskussion Signalstøjforholdet er defineret ud fra et enkelt anslag, hvor effektiv-værdien af signalet findes umiddelbart efter anslaget og sammenlignes med effektiv-værdien af støjen. Dette er blot en måde at definere signal/støjforhold på; det kunne også defineres som forholdet mellem spids-værdier af henholdsvis signal og støj, hvormed signal/støjforholdet ville få en anden værdi. Det er vurderet, at den mest korrekte metode er at anvende effektiv-værdier. Effektiv-værdien af signalet findes over et sekund umiddelbart efter et anslag. Det er vurderet at et sekund er tilstrækkelig, idet der, når der spilles på en guitar, typisk slås strenge an en eller flere gange i sekundet, hvilket dermed opretholder signalniveauet. Den højeste frekvens er fundet til ca. 12 khz. Denne høje frekvenser er dog en overtone af grundtonen på 1180 Hz, og vil således kun være til stede når grundtonen også er til stede. Grundtonen ligger 60 db over frekvenskomposanterne over 10 khz, mens anden og tredje harmoniske ligger mere end 40 db over disse. Det er derfor næppe sandsynligt at frekvenserne over 10 khz kan høres. Vælges en øvre grænsefrekvens på 10 khz, vil 8. harmoniske af den højeste grundtone stadig være med i signalet. 143

156 Målerapporter Y(f) [db] Frekvens [Hz] Figur D.8: Frekvensindholdet af den dybe E-streng. Det ses at grundtonen, hvilket skalaen er normaliseret i forhold til, ligger ved 80 Hz. Derudover ses også en del overtoner, der fortsætter ved højere frekvenser end denne figur viser. Den laveste frekvens guitaren leverer er således 80 Hz Y(f) [db] Frekvens [Hz] Figur D.9: Frekvensindholdet af den høje e-streng. Grundtonen er beliggende ved 1180 Hz, mens overtonerne kan identificeres op til 12 khz. 144

157 D.3 Målejournal for SNR i codec D.2.7 Konklusion Forsøget viser, at udgangssignalet fra guitaren kan have en spidsværdi på 1,09 V. Signal/støjforholdet er fundet til 53 db, mens det betydende frekvensindhold af udgangssignalet er fundet til at ligge i området fra 80 Hz til 10 khz. D.3 Målejournal for SNR i codec Operatør(er): Brian M Christensen, Casper Fynsk og Johnni T Pedersen Sted: B1-101, Fredrik Bajers Vej 7, Aalborg Universitet Dato: 30/ Måleobjekt: Crystal CS4218 codec. D.3.1 Formål Formålet med forsøget er, at bestemme signal/støjforhold i det benyttede codec i den aktuelle implementering. Den teoretiske grænse er 96 db, svarende til 16 bit opløsning. I praksis skal der gøres mange designovervejelser for at opnå SNR i nærheden af det opgivede. Da SNR i codec et ikke har været en parameter der er taget specifikt hånd om, er det valgt blot at teste parameteren for at se, om SNR er problematisk. D.3.2 Apparaturliste Producent Model Apparattype AAU nr. Radiometer Type RV36 AF millivoltmeter Krohn - Hite Model 3103 Filter B&O SN16 PSU Tabel D.4: Apparaturliste. D.3.3 Måleopstilling Alle enheder i rack et afmonteres, med undtagelse af DSP system og codec. Der benyttes ekstern PSU, da PSU en i racket er af SMPS (Switched Mode Power Supply) typen og vi ønsker at minimere luft- og lednings-båret støj. DSP CS4218 Filter Voltmeter Figur D.10: Måleopstilling for målinger af SNR i codec. 145

158 Målerapporter D.3.4 Forsøgsbeskrivelse Alt unødigt perifær elektronik slukkes eller flyttes. Båndpasfiltret justeres, så der maksimalt er 1 db dæmpning ved 70 Hz og 10 khz. Målinger foretaget med og uden båndbreddebegrænsning og mærkes tilsvarende. Indgangen på codec et jordes. DSP systemet programeres til blot at sende input fra codec til output af codec, kaldet Bypass. I bypassmode er det altså både A/D- og D/Akonverteren der måles på. Målinger observeres på millivioltmetret. Herefter programmeres DSP systemet til kun at sende 00h til output på codec et. Disse målinger registreres på samme vis og er et udtryk for støjen i D/A-konverteren. D.3.5 Forsøgsresultater Test Båndbreddebegrænsning Måling[RMS] SNR A/D og D/A Nej 1,0 mv 60 db A/D og D/A Ja 0,35 mv 69 db D/A Nej 1,0 mv 60 db D/A Ja 0,27 mv 71 db Tabel D.5: I denne tabel ses resultatet af målingerne på codec et Hvis det antages at støjen i A/D- og D/A-konverteren er ukoreleret, vil den totale støjspænding være kvadratsummen af de individuelle bidrag, se formel D.6 v noise = va/d 2 + v2 D/A v A/D = vnoise 2 v2 D/A (D.6) v A/D = 0, 35m 2 0, 27m 2 = 0, 22mv 73dB (D.7) D.3.6 Diskussion Den teoretiske beregning af SNR for A/D-konverteren forudsætter at støjen er ukoreleret, men det er næppe tilfældet. Noget af støjspæningen stammer givetvis fra indstrålet digital støj, hvormed sandsynligheden for, at det analoge input og output D.3.7 Konklusion Målingerne viser at der reelt kun er en bitopløsning end 12 bits gennem codec et. Systemkravet til SNR bør kunne overholdes da dette er sat til 60 db. 146

159 E Analyse af DSP I dette appendiks beskrives og analyseres aspekter af TMS320C26 DSP en, der ikke er nødvendige for at forstå sammenhængen i rapporten, men beskriver væsentlige detaljer angående den interne arkitektur samt timing mere fyldestgørende end det sker i afsnit 5.1. For at kunne udnytte DSP en optimalt, er det nødvendigt at kende den interne arkitektur, hvilket er udnyttet ved programmering, og analysen af timing er nødvendig ved valg og brug af af ekstern hukommelse og øvrige perifære enheder. E.1 DSP Den første del af analysen af DSP-systemet er koncentreret omkring selve DSP en og den interne arkitektur. I beskrivelsen er fokuseret på at undersøge DSP ens egenskaber og funktioner, samt vurdere hvilke der skal benyttes, og hvorledes. Den primære kilde til denne undersøgelse, er [Texas-Instruments(1993)]. E.1.1 Pinouts En samlet oversigt over benforbindelserne på figur E.1 beskrives her, for at lette overblikket over den videre beskrivelse. det bemærkes at X betyder at X er aktiv lav. A0-A15 og D0-D15: ekstern adresse- og databus er multiplexet til kommunikation med både program- og datalager samt I/O porte. DS, PS og IS: signalerne går lav, når hhv. eksternt datalager, programlager og I/O porte skal benyttes. R/W: ved brug af ekstern hukommelse eller I/O, angiver signalet om der skal læses fra eller skrives til enheden. STRB: ved kommunikation med eksterne enheder, hukommelse eller I/O, går strobesignalet lav, når alle øvrige signaler er stabile. READY: dette inputsignal angiver om den eksterne enhed er klar til at programmet kan fortsætte. Dette signal anvendes til at generere wait-states, når den eksterne enhed ikke er hurtig nok til at opfylde kravene til timing i en enkelt instruktionscyklus. 147

160 Analyse af DSP Figur E.1: Pinout for TMS320C26. Kilde [Texas-Instruments(1993), 2-2] MSC: dette signal går kortvarigt lavt i starten af en intruktionscyklus, når en hukommelsesoperation er blevet udført, og det kan derfor benyttes til at generere et enkelt wait-state. MP/MC: indgangssignal, der styrer om programhukommelsen fra 0000h til 0FFFh er ekstern eller intern. Denne trækkes høj, for at benytte Debugger/monitor, brændt på en E- PROM. INT0-INT2: eksterne interrupt inputs. INT0 benyttes til debugger/monitor IACK: interrupt acknowledge indikerer at et interrupt er opfanget (kun gyldig når CL- KOUT1 er lav). RS: reset signalet skal holdes lav i minimum 3 instruktionscykler, det vil sige ca 300 ns med et 40,96 MHz krystal, for at resette processoren. Denne pulles høj, men kan trækkes lav med en kontakt, for at resette processoren. X2/CLKIN: clock input, 40,96 MHz (max) (hvis et krystal monteres direkte er X2 input og X1 output til dette) CLKOUT1 og 2: CLKOUT1 er masterclock, og disse to clocksignaler er 1/4 frekvens af inputclocken og faseforskudt 90 o. CLKR og CLKX: input til synkronisering af seriel kommunikation (recieve og transmit). Hvorledes disse benyttes til kommunikation med codec 1 beskrives i afsnit 5.4. DR og DX: serielt recieve input og transmit output FSR og FSX: input (FSX kan være output) til at Frame Synchronization (synkronisering af hvornår et samlet serielt signal starter). BIO: enkelt input ben, der kan polles og branches på med en enkelt instruktion XF: enkelt output ben, der kan sættes højt eller lavt uafhængigt af adresse- og databus. 1 A/D og D/A konverter i samme enhed. 148

161 E.1 DSP BR og HOLDA: er udgangssignaler til buskontrol, hvis flere enheder skal deles om bussen, og benyttes ikke. HOLD og SYNC: er indgangssignaler til buskontrol og synkroniseering med andre enheder, og benyttes ikke, hvorfor de pulles høje. E.1.2 Arkitektur Arkitekturen i den benyttede DSP er en Harvard struktur med seperat program- og databus, som det ses på figur E.2. Figuren viser desuden samtlige interne hardwareblokke, hvoraf de mest væsentlige kort vil blive beskrevet. CALU(Central Arithmetic Logic Unit) består af gruperingen af de grundlæggende regneblokke i systemet, som ses nederst til højre på figur E.2: en 32 bit (16 16 bit parallel) multiplier. På udgangen kan resultatet skiftes 0, 1 eller 4 bit til venstre eller 6 bit til højre. en 32 bit ALU (Arithmetic Logic Unit), der regner i 2 s komplement. en 32 bit akkumulator, hvor resultatet tilgåes i 2 halvdele (ACCH og ACCL). Resultatet fra ALU gemmes heri. På udgangen kan resultatet skiftes 0-7 pladser til venstre. en 16 bit input, 32 bit output scaling shifter, der kan skifte data 0-16 bit til venstre. Interne kontrolregistre ses øverst til højre på figur E.2: QIR (Queue Input Register) indeholder næste instruktion i pipelining. IR (Input Register) indeholder den instruktion der udføres nu. ST0 og ST1 (Status registers Temporary register) 16 bit registre til status- og kontrolbit. RPTC (Repeat Counter) 8 bit counter til antal gange en gentaget instruktion skal udføres. IFR (Interrupt Flag Register) latcher interrupts og er ikke tilgængelig via software. RSR og XSR (Serial Port Recieve/Transmit Shift Register) skifter data for at konvertere mellem parallel og seriel. DRR og DXR (Serial Port Data Recieve/Transmit Register) her læses/skrives data fra/til den serielle kommunikation. TIM (Timer) 16 bit timer, tilgængelig via software. PRD (Period Register) bruges til at genstarte timeren via software. IMR (Interrupt Mask Register) denne maske sættes for at bestemme hvilke interrupts, der skal slippe igennem. GREG (Global Memory Allocation Register) er til multiprocessorsystemer og derfor ikke relevant. Intern hukommelse og pointere er den del der styrer hvilken hukommelse der skal tilgåes, og ses nederst til venstre på figur E.2: RAM (B2) bit Data RAM. RAM (B0, B1 og B3) bit RAM, konfigurerbart som både Data og Program. Efter reset, er de alle konfigureret som Data. 149

162 Analyse af DSP Figur E.2: Internt blockdiagram for TMS320C26. Kilde modificeret [Texas-Instruments(1993), 3-8] 150

163 E.1 DSP ROM bit ROM. AR0-AR7 (Auxilary Register) gruges til indrirekte adressering, og indeholder pointere til adresser i hukommelsen. ARAU (Auxilary Register Arithmetit Unit) kan udføre aritmetiske funktioner på ARregistrene. ARP (Auxilary Register Pointer) definerer hvilket auxilary register der benyttes. ARB (Auxilary Register Pointer Buffer) gemmer den tidligere værdi af ARP. DP (Data Memory Page Pointer) indeholder nuværende sidenummer PC og stak styrer hvor programmet udføres fra og ses øverst i midten på figur E.2: PC (Program Counter) peger altid på adressen til den næste instruktion i programlageret, der skal udføres Stack er en 8 16 bit stak, der lagrer PC ved interrupts og calls. Her skal programmøren være opmærksom på ikke at overskride stakkens størrelse, da programmet således ikke kan returnere til udgangspunktet. PFC (Prefetch Counter) indeholder adressen på den næste instruktion der skal prefetches ved pipelining. Kan også adressere programhukommelse under block move, multiply accumulate og table read/write instruktioner MCS (Microcall Stack) indeholder midlertidigt PFC, når denne benyttes til block move, multiply accumulate eller table read/write instruktioner. Statusregistre I systemet er to statusregistre, der indeholder status af en række betingelser og tilstande, ST0 og ST1, som det ses på figur E.3. Disse kan hentes og gemmes med kommandoerne LST[1] og SST[1], med undtagelse af interruptmode, INTM, der kun kan ændres med kommandoerne DINT/EINT. Figur E.3: Statusregistre i TMS320C26 [Texas-Instruments(1993), 3-50] ST0 ARP (Auxilary Register Pointer) indeholder nummeret på det aktive AR, der benyttes til indirekte adressering. Kan modificeres med LARP, MAR og LST instruktionerne. Når LST1 benyttes, får ARP samme værdi som ARB OV (Overflow Flag) sættes ved overflow og forbliver 1 indtil en BV, BNV eller LST clearer den. 151

164 Analyse af DSP ST1 OVM (Overflow Mode) bestemmer om der skal foregå normalt overflow, så der wrappes rundt, hvilket sker når den er 0, eller om accumulatoren skal gå i mætning (forblive på det højeste/laveste tal), når den er 1. Kan ændres med SOVM, ROVM og LST. INTM (Interrupt Mode) når den er 0, bliver alle umaskerede interrupts slået til, og når den er 1, bliver alle maserbare interrupts slået fra (dvs. alle interrupts udover reset). Kan sættes med ENIT og DINT instruktionerne. DP (Data Memory Page Pointer) indeholder nuværende sidenummer. Kan ændres med LST, LDP og LDPK instruktionerne. ARB (Auxilary Register Pointer Buffer) loades med den foregående værdi af ARP, når ARP får en ny værdi, bortset fra under en LST instruktion. Kan modificeres med LST1. CNF0 (Internal RAM Configuration) definerer sammen med CNF1 om de enkelte blokke af intern RAM er konfigureret som Data eller Programlager. Kan ændres med CONF og LST1 og er 0 efter reset. TC (Test/Control) sættes til 1, hvis en bit testet af BIT eller BITT er 1, hvis resultatet af en CMPR instruktion er sand, eller hvis XOR af bit 30 og 31 af akkumulatoren i NORM instruktionen er sand. BBZ og BBNZ kan branche ud fra TC. SXM (Sign Extension Mode) giver sign extension ind i akkumulatoren, via scaling shifteren når den er 1, bortset fra ved specialinstruktioner, der ignorerer dette bit, f.eks. ADDS. Kan modificeres med SSXM og RSXM samt LST1 og er 1 efter reset. C (Carry) ved addition sættes den til 1 hvis der genereres carry og 0 ellers. Ved subtraktion sættes den til 1, hvis der lånes, og 0 ellers. ADDH kan dog kun sætte til 1 og SUBH kun til 1. CNF1 (Internal RAM Configuration) se CNF0 HM (Hold Mode) når den er 1, stoppes al eksekvering ved HOLD signal. Når den er 0, fortsættes intern eksekvering ved HOLD signal, men eksterne busser gøres højimpedante. Kan modificeres med SHM og RHM samt LST1, og er 1 efter reset. FSM (Frame Synchronization Mode) XF (XF pin status) denne statusbit bestemmer outputtet på XF benet og kan ændres med SXF, RXF og LST1. Efter reset er den 1. FO (Format) bestemmer om serielporten skal køre med 8 bit, når den er 1, eller 16 bit, når den er 0. Kan ændres med FORT og LST1 og er efter reset 0 (16 bit). TXM (Transmit Mode) sætter FSX benet til at være output, når den er 1 og input når den er 0. kan ændres med STXM, RTXM og LST1 PM (Product Shift Mode) sætter shift mode for produktet fra multiplieren, der loades ind i ALU en. 00: intet skift, 01: 1 left, 10: 4 left og 11: 6 right. Loades med SPM og LST1 og er 00 efter reset. Ud over de to statusregistre, er en række memory mapped registre i datahukommelsen. disse ses i tabel E.1 152

165 E.1 DSP Registernavn Placering i hukommelsen Definition DRR 0h Seriel port Data Recieve Register DXR 01h Seriel port Data Transmit Register TIM 02h Timer Register PRD 03h Period Register IMR 04h Interrupt Mask Register GREG 05h Global memory allocation Register Tabel E.1: Memory mapped registre [Texas-Instruments(1993), 3-22] Pipelining Ved udførsel af program, udnyttes internt i DSP en en pipelining på tre niveauer, hvilket vil sige at under udførsel af en instruktion, vil kommende instruktione blive læst ind og dekodet, hvilket giver en hurtigere instruktionstid. De tre niveauer i pipelinen, vil sige at udførsel af en instruktion foregår i tre trin: 1. Prefetch, hvor instruktionen læses ind i QIR registret 2. Decode, hvor instruktionen tydes 3. Execution, hvor instruktionen udføres Når DSP en er i gang med at udføre instruktionen INS1, er den således i gang med at tyde INS2 og at hente INS3. Dette har normalt ingen effekt på instruktionstiden, men kan, f.eks. ved gentagne udførsler, give en hurtigere udførsel af programmet. En forbedring ses ofte når især programhukommelsen er intern. Branch-, call- og returninstruktioner flusher pipelinen, og disse koster derfor yderligere 3 instruktioner at udføre. Interrupts I DSP en, er også en række interruptmuligheder, både eksternt og internt. En oversigt over disse ses i tabel E.2, og de er alle maskerbare, med undtagelse af RS, der resetter DSP en, når benet trækkes lav i minimum 3 instruktionscykler, og TRAP, der ikke er et rigtigt interrupt, men ganske enkelt en instruktion, der gemmer PC+1 i stakken, så der kan returneres med RET, og hopper til TRAP vektoren for at udføre den givne instruktion. Interruptnavn Placering i hukommelsen Prioritet Funktion RS 0h 1 (højest) Eksternt reset signal (non maskable) INT0 01h 2 Eksternt brugerinterrupt #0 INT1 02h 3 Eksternt brugerinterrupt #1 INT2 03h 4 Eksternt brugerinterrupt #2 TINT 018h 5 Internt timer interrupt RINT 01Ah 6 Seriel port Recieve interrupt XINT 01Ch 7 Seriel port Transmit interrupt TRAP 01Eh (N/A) TRAP instruktionsadresse Tabel E.2: Interrupt - adresser og prioritet [Texas-Instruments(1993), 3-59] Når et interrupt forekommer 2, latches et 1-tal på det tilsvarende sted i det 6 bits IFR (Interrupt Flag Register). Derefter maskeres IFR med IMR (Interrupt Mask Register), der indeholder de interrupts 2 Gælder ikke for RS og TRAP 153

166 Analyse af DSP det ønskes at slippe igennem, og hvis INTM er 0, udføres det interrupt der har højest prioritet. Interruptmasken kan læses fra og skrives i IMR med almindelige læse- og skrive instruktioner, og er memory mapped i adresse 04h. På figur E.4 ses hvorledes de enkelte interrupts ligger i masken Interrupt Mask Register (IMR) RESERVED XINT RINT TINT INT2 INT1 INT0 The INTM (interrupt Figur E.4: mode) Interrupt bit, Mask which Register is [Texas-Instruments(1993), bit 9 of status register 3-60] ST0, enables or disables all maskable interrupts. INTM = 0 enables all the unmasked interrupts, bliver and INTM latchet = på 1 disables indgangenthese og erinterrupts. både kant- og The niveautrigget, INTM is set såto uanset 1 by the omiack det er et Interrupts meget (interrupt kort interrupt acknowledge) eller det er signal, kontinuerligt, the DINT vil det instruction, blive detekteret. or a reset. Det bør This hertil bit bemærkes is reset at DSP en to 0 internt by the har EINT indbyggede instruction. mekanismer Note that til atthe sikreintm at et interrupt does not ikke actually afbrydermodify en instruktion, the selvom IMR denne or IFR. varer flere instruktionscykler, og således vil en RPT kommando heller ikke blive afbrudt, så i worst case kan det vare op til 256 gange instruktionestiden af den kommando der gentages The TMS320C2x før et interrupt vil has blive a built-in udført (ofte mechanism 2 ved gentagne for protecting instruktioner), multicycle og dermedinstruc- tions from interrupts. If an interrupt occurs during a multicycle instruction, the op til ca 50 µs. Selve interrupt tiden detis tager not fra processed et interrupt until er detekteret the instruction og den sidste is completed. instruktionthis er færdig, mechanism til interruptet udføres, also applies er 3 instruktionscykler, to instructions that altsåbecome ca 300 ns. multicycle Ønskes det due at vide to the hvilket READY interrupt, signal. der er detekteret, kan det læses på adressebussen, A1-A4, når IACK er lav, på den stigende flanke af CLKOUT2. In addition, the device does not allow interrupts to be processed when an instruction is being repeated via the RPT or RPTK instructions. The interrupt is stored in the IFR until the repeat counter (RPTC) decrements to zero, and E.2then Hukommelse the interrupt is ogprocessed. perifæreeven enheder if the interrupt is not used while the TMS320C2x is processing the RPT or RPTK, the interrupt will still be latched Eksternt by IFR på DSP en and pending befinderuntil sig 16 RPTC adresseben, decrements hvormedto der zero. kan adresseres 64 k adresser til hhv. data- og programlager om det er data eller program indikeres med signalerne DS (Data Select) og PS (Program If both the Select). HOLD Udover line and program- an interrupt og datalager, go active kan desuden during adresseres a multicycle 15 I/Oinstruction porte, hvilket dekodes or a med repeat adresseben loop, the A0-A3 HOLD og IS takes (I/O Select) control of the processor at the end of the instruction or loop. When HOLD is released, the interrupt is acknowledged. Internt har DSP en fire blokke RAM, hvoraf de tre blokke, B0, B1 og B3, er på hver bit og kan konfigureres til enten at være program eller datalager rent softwaremæssigt. Den sidste blok, Interrupts cannot be processed between EINT and the next instruction in a B2, er på bit og ligger fast i datalageret. Efter reset af DSP en, er alle de interne blokke program sequence. For example, if an interrupt occurs during an EINT instruction execution, the device always completes EINT as well as the following mappet til datalageret. Udover de fire ramblokke, er en intern ROM, der indeholder interrupttabel og bootloader som det kan vælges at benytte ved at sætte MP/MC-benet lavt (microcomputer instruction before the pending interrupt is processed. This insures that a RET mode), eller der kan benyttes et eksternt lager, ved at sætte benet høj (microprocessor mode). can be executed before the next interrupt is processed, assuming that a RET instruction follows the EINT. The state of the machine, upon receiving an interrupt, Direkte may be ogsaved indirekte and restored adressering (see subsection E ). Når hukommelsen skal adresseres, kan dette gøres enten med direkte eller indirekte adressering. External Interrupt Opdelingen Interface i disse foretaget for ikke at skulle benytte 16 bit i en instruktion til at adressere hukommelsen. Hermed kan instruktioner læses af en omgang frem for to, hvilket begrænser Interrupts may be asynchronously edge- or level-triggered. In the functional tidsforbruget. logic organization for INT(2 0), shown in Figure 3 31, the external interrupt MedINT0 den direkte is connected adressering, to an skal edge-triggered DSP en på forhånd flip-flop. være sat The opint0 til at signal befindeis sigored på denwith rigtige dataside, the interrupt der defineret edge ved flip-flop de øverste Q output 9 bit i en and adresse synchronized og kan sættes with medinternal kommandoerne quarterphases Herefter 1 and 2 skal to produce en kommando interrupt udføres med signal. direkte In this adressering, way, the hvor device sidste can han- 7 bit af LDP og LDPK. den dle samlede both adresse edge-triggered ligger i DMA and feltet level-triggered (Data Memory interrupts. Address), lige efter instruktionen, f.eks, vil kommandoen LDP DAT127 loade indholdet fra adresse 127 på den nuværende side over i sidepointeren, så der peges på en ny side. I alt er der, med 64 k adresser, 512 sider á hver 128 adresser (0-127). 154 Architecture

167 E.2 Hukommelse og perifære enheder Indirekte adressering udføres ved hjælp af de 8 Auxilary registre (AR0-AR7), der hver indeholder en komplet adresse, og denne kan, uden det koster ekstra instruktionscykler, in- eller dekrementeres med 1, skifte hvilket register der benyttes. Desuden kan adressen in- eller dekrementeres med det der står i AR0, enten på normal vis eller bit-reversed, hvor bit-reversed vil sige at carry propagerer modsat af normalt. Den indirekte adressering foretages, ved på forhånd at have valgt hvilket AR, der benyttes, og derefter skrives blot * i stedet for en adresse samt eventuelle operationer, der skal udføres på registeret. Næste register der skal benyttes kan også angives. Hvis den benyttede funktion har mulighed for shift, skal shiftkommandoen før angivelse af næste AR. Hvis f.eks. ARP er 7, vil kommandoen ADD *+,8,3 addere indholdet af AR7, skiftet 8 pladser til venstre, til akkumulatoren, hvorefter AR7 inkrementeres og AR3 benyttes næste gang. E.2.2 Timing For at sikre at den eksterne hukommelse opfylder kravene til timing, ses først på hvilke krav DSP en stiller til kommunikationen. Ved en ekstern buscyklus, opsættes adressen på adressebenene og på et af det tre ben PS, DS eller IS, indikerer om det er programhukommelsen, datahukommelsen eller en perifær enhed, der adresseres. Herefter går STRB lav og adressen er gyldig. Læsning På figur E.5 ses et timingdiagram over en perifær læsecyklus. På figuren ses at den ønskede tid fra adressen er gyldig, til data skal være gyldig, er t a(a) = t su(a) + t w(sl) t su(d)r (E.1) t a(a) = Q Q ± 5 23 [ns] (E.2) t a(a) = 38, 2 ± 5 [ns] (E.3) Værdier: [Texas-Instruments(1989), s. 20] Hvor: t a(a) er tiden fra adressen er gyldig, til data skal være gyldig [ns] t su(a) er tiden adressen er gyldig før STRB går lav [ns] t w(sl) er tiden STRB er lav [ns] t su(d)r er tiden data skal være gyldig før STRB går høj [ns] Q er 1/4 af en instruktionstid [ns] Heraf ses at en perifær enhed, skal have data klar inden for 30 ns fra chip select, for at være sikker på at data er klar, hvis en læsecyklus skal gennemføres inden for en instruktionscyklus. Skrivning På figur E.6 ses et timingdiagram over en perifær skrivecyklus. På figuren ses at data er gyldig i t su(d)w før STRB går høj, og, er gyldig i t h(d)w (= Q [-10] 3 = 24,4 [-10] ns), hvilket skal være tilstrækkeligt for en ekstern enhed til at gemme data, hvis en skrivning skal kunne udføres på en enkelt instruktionscyklus. Tiden fra chip select til data skrives, er uden wait cycles 3 Q-[-10] vil sige at minimumstidesn ifølge databladet er Q - 10 ns, mens typisk er Q. 155

168 Analyse af DSP Figur E.5: Timing for læsecyklus [Texas-Instruments(1989), s. 22] t a(w) = t su(a) + t w(sl) (E.4) t a(w) = Q Q ± 5 (E.5) t a(w) = 61, 2 ± 5 [ns] (E.6) Værdier: [Texas-Instruments(1989), s. 20] Hvor: t a(w) er tiden fraadressen er gyldig til STRB går høj t su(a) er tiden adressen er gyldig før STRB går lav t w(sl) er tiden STRB er lav [ns] [ns] [ns] Wait-cycles I tilfælde af at en enhed er langsommere end de ovenstående tider, skal en eller flere wait-cycles indføres, hvormed adresser, data og strobe holdes det givne antal instruktionscykler længere. Et wait state genereres, ved at holde READY benet lav, under Q2 i en instruktionscyklus, mens STRB er lav, og flere på hinanden følgende wait states, genereres ved at READY skal være lav i Q2, hver gang en eksta wait state skal introduceres. For hver wait state, der genereres, forlænges tiden, hvori adresse og data er gyldig, med en instruktionscyklus (97,7 ns). Der kan ganske simpelt genereres en enkelt wait state, ved at udnytte MSC signalet, der går lav, lige efter en hukommelsesinstruktion er udført, og sende et lavt signal til READY som kombination af dette, stroben og adressen. Timingen for en enkelt wait state ses på figur E

169 E.2 Hukommelse og perifære enheder Figur E.6: Timing for skrivecyklus [Texas-Instruments(1989), s. 23] Figur E.7: Timing for læse-/skrivecyklus med wait state [Texas-Instruments(1989), s. 23] 157

170 Analyse af DSP 158

171 F PEEL kode I dette appendiks, er de boolske udtryk for adressedekodningen udledt, og desuden er de boolske udtryk for knap- og display peels oplistet. Betydningen af symbolerne i de boolske udtryk er: Inverteret signal! AND * eller & OR + eller # Tabel F.1: Betydning af symboler i PEEL-kode. F.1 Adressedekodning I det følgende udledes de boolske udtryk for de enkelte output i adressedekoderen, der ses på figur F.1. A1 MSC 1 2 AR R 24 Vcc 23 STRB 3 22 PS 4 21 READ DS 5 20 A3 IS 6 19 A2 RW_DSP 7 18 READY A CS_PROM A CS_RAM A WRITE A15 Gnd SP P 14 DS_NPS 13 A0 Figur F.1: Pinout på adressepeel ROM Til adressering af EPROM, ønskes et aktivt lavt chip select, samt et aktivt lavt output enable, under læsning. ROM en skal adresseres, hvis adressen er under 1000h, og det er program, der tilgåes. 159

172 PEEL kode Ved select af ROM skal desuden genereres 1 wait cycle. Chip select navngives CS_PROM og genereres ud fra PS og A 1 2-A 1 5. Idet de alle skal være lave, bliver det boolske udtryk CS_PROM =!PS*!A15*!A14*!A13*!A12, hvor CS_PROM er aktiv lav. En waitcycle genereres ud fra MSC og CS_PROM, således at det boolske udtryk bliver READY = MSC + CS_PROM, hvor READY er aktiv høj. RAM Ved alle resterende adresser i program eller data, skal RAM adresseres med et aktivt lavt output enable, der afgør om der læses, et aktivt lavt write enable, samt et signal, der afgør om det er program eller data, der skrives til, samt et activt lavt chip select. Chip select til RAM navngives CS_RAM og genereres ud fra PS og A 1 2-A 1 5 samt DS. CS_RAM =!PS*(A15 + A14 + A13 + A12) +!DS, hvor CS_RAM er aktiv lav. Valget af om det er data- eller programdelen på RAM der adresseres, giver et output på den pin, det er valgt at navngive DS_NPS, som går ind på A16 på RAM. DS_NPS =!DS*PS, der er aktiv høj, idet et højt signal angiver at det er data, og et lavt, at det er program, der tilgåes. Output enable navngives READ og genereres ens til både RAM og ROM ud fra STRB og R/W fra DSP en. READ = STRB +!RW_DSP, hvor READ er aktiv lav. Skrivning til RAM foregår ved at synkronisere R/W med STRB, idet de begge skal være lave, før det tillades at skrive til RAM, og signalet navngives WRITE. WRITE = STRB + RW_DSP, hvor WRITE er aktiv lav. Knapper Knapperne skal adresseres i to tilfælde, nemlig ved I/O select 0 og 2, da 0 bruges til aflæsning og 2 til reset. I begge tilfælde ønskes et aktivt lavt chip select. Chip Select til læsning (I/O 00h) og reset (I/O 02h) af knapper navngives CS_BUTTON og genereres ud fra IS, STRB og A 0 -A 3, hvor A 2, dog er ligegyldig og derfor udelades. CS_BUTTON =!IS *!STRB *!A0 *!A2 *!A3, hvor CS_BUTTON er aktiv lav. Display Displayet skal kun adresseres i et tilfælde, ved I/O select 1, hvor et aktivt lavt chip select ønskes. Chip Select til display (IF 01h) navngives CS_DISPLAY og genereres ud fra IS, STRB og A 0 -A 3. CS_DISPLAY =!IS *!STRB * A0 *!A1 *!A2 *!A3, hvor CS_DISPLAY er aktiv lav. 160

173 F.2 Knapdekodning F.2 Knapdekodning Her ses de boolske udtryk for knap- og jog-wheel dekoderen på figur F.2, der desuden fungerer som tri-state latch til databussen, ud fra chip select. CLK reset 1 2 AR R 24 Vcc 23 F cs 3 22 E K DIR K JOG K D5 K D4 K D3 K D2 A D1 B Gnd SP P 14 D0 13 Figur F.2: Pinout på peel til knapdekodning og latch De fem knapper føres ind på en D flip-flop, og holdes således, så snart de er aktiveret. D0.D = (D0 #!K1) &!(reset &!cs); D1.D = (D1 #!K2) &!(reset &!cs); D2.D = (D2 #!K3) &!(reset &!cs); D3.D = (D3 #!K4) &!(reset &!cs); D4.D = (D4 #!K5) &!(reset &!cs); D5.D = (D5 #!K6) &!(reset &!cs); Detekteringen af at jog-wheelet er aktiveret er implementeret ligesådan, hvor begge flanker tages i betragtning. JOG.D = (JOG # (!A &!B)) &!(reset &!cs); En ekstra D flip-flop er implementeret til at detektere retningen så snart jog-wheelet benyttes. E.Com =!((JOG &!A) #!(E #!(!B # F))); F.Com =!(E #!(JOG #!A) #!(!B # F)); DIR.D =!(E #!(F # DIR)); Intet output sendes, når ikke der er chip selected. D0.OE = (!cs &!reset); D1.OE = (!cs &!reset); D2.OE = (!cs &!reset); 161

174 PEEL kode D3.OE = (!cs &!reset); D4.OE = (!cs &!reset); D5.OE = (!cs &!reset); JOG.OE = (!cs &!reset); DIR.OE = (!cs &!reset); F.3 Display latch Den til displayet implementerede latch ses på figur F.3, idet der altid sendes data til displayet, men dette kun ændres når det aktiveres fra DSP en. CE D0 1 2 AR R 24 Vcc 23 RS D E D DB7 D DB6 D DB5 D DB4 D DB3 D DB2 D DB1 D9 Gnd SP P 14 DB0 13 Figur F.3: Pinout på displaypeel Latch - når CE går høj, tages nyt input, da D flip-flops er clocket af denne - ellers fortsættes med det der ellers er DB0.D = D0; DB1.D = D1; DB2.D = D2; DB3.D = D3; DB4.D = D4; DB5.D = D5; DB6.D = D6; DB7.D = D7; E.D = D8; RS.D = D9; Alle signaler initialiseres lavt: DB0.And = 0; 162

175 F.3 Display latch DB1.And = 0; DB2.And = 0; DB3.And = 0; DB4.And = 0; DB5.And = 0; DB6.And = 0; DB7.And = 0; E.And = 0; RS.And = 0; 163

176 PEEL kode 164

177 G Udledning af SNR-formel Det ønskes at finde signal/støj-forholdet på udgangen af et system. Støjen og signalet repræsenteres af to hvid støjs-signaler med hver deres definerede varians og overføringsfunktion til udgangen. At finde signal/støj-forholdet gøres ved at finde power density spectrum på udgangen af systemet for hvert af de to input-signaler. Disse to spektrer kan integreres over hele frekvensområdet for at finde den samlede effekt givet hvert af de to inputs. Forholdet mellem disse to effekter, vil være signal/støj-forholdet for systemet. Power density spectrum findes ved [Oppenheim and Schafer(1999), s. 395] 1 : P (ω) = σ 2 i H(e jω ) 2 (G.1) Hvor: P (ω) er filtrets power density spectrum [-] σi 2 er variansen af indgangs-signalet [-] H(e jω ) 2 er filtrets energy density spectrum [-] Denne P (ω) ønskes altid integreret over hele frekvensområdet, dvs. fra π til π. Parsevals lov giver følgende sammenhæng, der kan anvendes [Oppenheim and Schafer(1999), s. 60]: n= h[n] 2 = 1 π H(e jω ) 2 dω 2π π (G.2) Ses der bort fra skaleringen med 2π er højresiden af dette udtryk netop hvad der ønskes. Dermed fås: π π P (ω)dω = σ 2 i π π = 2π σ 2 i H(e jω ) 2 dω n= h[n] 2 (G.3) (G.4) Desuden gælder det at: 1 Formlen gælder for en proces med middelværdi på 0. Støjen har i det anvendte tilfælde en middelværdi på 0,5 LSB, men det antages at den fejl der begås kan negligeres. 165

178 Udledning af SNR-formel σo 2 = 1 π P (ω)dω 2π π (G.5) Hvor: σ 2 o er variansen af udgangssignalet på et filter med P (ω) [-] De ovenstående ligninger kan kombineres til: σ 2 o = σ 2 i n= h[n] 2 (G.6) Dette udtryk forklarer hvorfor summen på højresiden også kaldes varians-forstærkningen. At finde signal/støj-forholdet svarer således til at finde forholdet mellem variansen af henholdsvis signalet og støjen på udgangen af systemet. Signal/støj-forholdet kan således findes som: SNR = 10 log σx 2 n= σe 2 n= h xy [n] 2 h ef [n] 2 (G.7) Hvor: σx 2 er variansen af input-signalet x[n] [-] h xy [n] impulsresponsen fra x[n] til y[n] [-] σe 2 er variansen af input-signalet e[n] [-] h ef [n] impulsresponsen fra e[n] til f[n] [-] Et eksempel på et system, hvor formlen kan anvendes er vist i figur G.1. e[n] x[n] b 0 y[n] + f[n] z 1 z 1 b 1 a 1 z 1 z 1 b 2 a 2 Figur G.1: Lineær kvantiseringsmodel af en 2. ordens-sektion. Anvendes den udledte formel for dette system, er de fire signaler x[n], y[n], e[n] og f[n] placeret som vist. Udgangssignalet er givet som summen af udgangssignalet givet x[n] (y[n]) og det givet e[n] (f[n]). 166

179 H Memorymap over program 167

180 Memorymap over program Program Data Interfaces 0000h 0000h } 0h Knapper 005Fh D/M ROM Page h B2 Data I/O og Backup til interrupt 0FFFh 1000h D/M RAM 107Fh 1080h 28 ki 125 fri til program 007Fh 0080h 01FFh 0200h 027Fh 0280h 02FFh 0300h 037Fh 0380h 03FFh 0400h 047Fh 0480h 04FFh 0500h 057Fh 0580h 05FFh 0600h 067Fh 0680h 06FFh 0700h 077Fh 0780h 07FFh 0800h } Page 1-3 B0 } Page 4 B0 } Page 5 B0 } Page 6 B0 } Page 7 B1 B1 B1 B1 B3 B3 B3 B3 Page 8: EQ } Page 9: Flanger } Page 10: Delay } Page 11: Parameter } Page 12: Display } Page 13: Display } Page 14: Display } Page 15: Display } 1h Display 2h Reset knapper 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh D/M Auxilary registre AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 EQ Flanger Delay Delay Flanger Flanger (Flanger) Parameter Display EQ: Dataside: 8 EQ1_B2: EQ1_B1: EQ1_B0: EQ1_A2: EQ1_A1: EQ2_B2: EQ2_B1: EQ2_B0: EQ2_A2: EQ2_A1: EQ3_B2: EQ3_B1: EQ3_B0: EQ3_A2: EQ3_A1: EQ_ON: Flanger: Dataside: 9 FL_DELAY: FL_DEPTH: FL_FREQ: FL_MIX: FL_ON: Delay: (B1 intern RAM) 10h (410h) 11h (411h) 12h (412h) 13h (413h) 14h (414h) 15h (415h) 16h (416h) 17h (417h) 18h (418h) 19h (419h) 1Ah (41Ah) 1Bh (41Bh) 1Ch (41Ch) 1Dh (41Dh) 1Eh (41Eh) 7Fh (47Fh) (B1 intern RAM) 20h (4A0h) 21h (4A1h) 22h (4A2h) 23h (4A3h) 7Fh (4FFh) 80FFh 8100h FFFFh EQ Koefficienter F9FFh FA00h Reserveret til evt. brug af intern RAM 19 ki 625 fri til data 567Fh 5680h Flanger Buffer 637Fh 6380h FFFFh Delay Buffer } } Page Page Dataside: 10 (B1 intern RAM) DL_ECHO_DELAY: 20h (520h) (FF=echo, 0=delay) DL_E_DELAY: 21h (521h) DL_E_GAIN: 22h (522h) DL_D_DELAY: 23h (523h) DL_D_GAIN: 24h (524h) DL_ON: 7Fh (57Fh) ON/OFF: ON: FFh OFF: 0h Data I/O: Dataside: 0 (B2 intern RAM) DIO_ IO: 70h (70h) 168 Figur H.1: Memory Map over program data

181 I El diagrammer 169

182 El diagrammer 170

183 J Indhold på CDROM Lyd PEEL asm Her ligger lydfiler med optagede effekter. Her ligger kildekoden til adresse-, knap- og displaypeel. Her ligger den samlede kildekode (assembly), samt opsætningsfiler og scripts til kompilering under Windows, Dos og Linux. Der kræves adgang til assembler m.m. datablade Her ligger datablade til komponenter, der er benyttet og refereret til i rapporten. delay_echo Her ligger en lydprøve på delay- og echo effekterne. equalizer flanger Her ligger en lydprøve på equalizeren og MAATLAB scripts, der er benyttet til analyse af equalizeren. Desuden ligger, i mappen eq_test, data fra accepttest af equalizeren. Her ligger en lydprøve samt en MATLAB fil til simulering af CORDIC-algoritmen. forforstaerker kilder Her ligger en MATLAB fil, der plotter bodediagram for forforstærkeren. Her ligger en kopi af internetkilder, der er refereret til i rapporten. Nærmere bestemt [AAU(2007)] og [Electronic(2008)]. system_test Her ligger frekvensresponsen, der er resultatet af accepttesten, der er udført i appendiks C.1 angående systembåndbredde og linearitet. 171

Synopsis: Titel: Digitalt styret effektenhed til el-guitar. Tema: Signalbehandlingsalgoritmer og -systemer. Projektperiode: SP6, Forår 2012

Synopsis: Titel: Digitalt styret effektenhed til el-guitar. Tema: Signalbehandlingsalgoritmer og -systemer. Projektperiode: SP6, Forår 2012 Titel: Digitalt styret effektenhed til el-guitar Tema: Signalbehandlingsalgoritmer og -systemer Projektperiode: SP6, Forår 2012 Projektgruppe: 642 Gruppemedlemmer: Asger Heidemann Andersen Frederik Juul

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

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!) MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,

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

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

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys! Og der blev lys! OPGAVEFORMULERING:... 2 DESIGN AF SEKVENS:... 3 PROGRAMMERING AF PEEL KREDS... 6 UDREGNING AF RC-LED CLOCK-GENERAOR:... 9 LYSDIODER:... 12 KOMPONENLISE:... 13 DIAGRAM:... 14 KONKLUSION:...

Læs mere

Kravspecifikation For. Gruppen

Kravspecifikation For. Gruppen Kravspecifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 LÆSEVEJLEDNING...3 2. GENEREL BESKRIVELSE...4 2.1 SYSTEM BESKRIVELSE...4 2.2 SYSTEMETS FUNKTION...4

Læs mere

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

Bredbånds-TV. Brugervejledning. ComX brugervejledning version 4.0 Bredbånds-TV Brugervejledning ComX brugervejledning version 4.0 1 INDHOLD PAKKENS INDHOLD Pakkens indhold side 2 Fjernbetjening side 2 Tilslutning af Settop-boksen side 3 Introduktion til Bredbånds-TV

Læs mere

DAB+ adaptor. Kære kunde,

DAB+ adaptor. Kære kunde, Kære kunde, Kvalitet har altid været drivkraften for os og grundlæggelsen af Argon Audio er en naturlig forlængelse af denne filosofi. Vi har 20 års erfaring i at lave og specificere høj kvalitetsprodukter

Læs mere

Hold 6 Tirsdag. Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe) Dato for aflevering: 29.

Hold 6 Tirsdag. Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe) Dato for aflevering: 29. ELA journal: Øvelse 3 Grundlæggende Op. Amp. Koblinger. Dato for øvelse:. nov. 00 & 9. nov. 00 Hold 6 Tirsdag Kristian Krøier, Jacob Christiansen & Thomas Duerlund Jensen Fag: ELA Lærer: Jan Petersen (JPe)

Læs mere

Brugervenlig og kommunikativ!

Brugervenlig og kommunikativ! Brugervenlig og kommunikativ! Altivar 312 Frekvensomformer til tre-faset asynkrone motorer, 0,18 til 2,2 kw en-faset 240V 0,18 til 15kW tre-faset 200-600V Specielle funktioner til alle typer af maskiner

Læs mere

BRUGERVEJLEDNING FLTA

BRUGERVEJLEDNING FLTA V2.2 (5.06.202) () FUNKTIONSPRINCIP fungerer som en basisstation for trådløse transmittere. Controller og målinger kan transmitteres via basestationen til de kontrolsystemer, der understøtter Modbus RTU-protokollen.

Læs mere

DCC digital dekoder til magnetiske produkter

DCC digital dekoder til magnetiske produkter Viessmann 5212 Digital Dekoder Dansk Brugervejledning DCC digital dekoder til magnetiske produkter med fire udgangsgrupper Indhold 1. Vigtige oplysninger... 2 2. Indledning / Egenskaber... 3 3. Montering...

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

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) 1. DS1821 1-WIRE KOMMUNIKATION (HERUNDER TIMING KRAV) ------------------------ 2 2. DS1821 SOFTWARE (OPBYGNING AF STYREPROGRAM I SYSTEM51 C) -----------

Læs mere

Digital tæller Programerbar for MIX magnetisk målebånd

Digital tæller Programerbar for MIX magnetisk målebånd SERIE Z-20E.SN005 Digital tæller Programerbar for MIX magnetisk målebånd ELGO - ELECTRIC Gerätebau und Steuerungstechnik GMBH D - 78239 Rielasingen, Postfach 11 30, Carl - Benz - Straße 1 Telefon 07731

Læs mere

Video Projector Controller. Brugermanual

Video Projector Controller. Brugermanual Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK l Video Projector Controller Brugermanual WWW.WAHLBERG.DK TELEPHONE +45 86 18 14 20 CELL PHONE +45 40 52 20 88 EMAIL: [email protected] Feb

Læs mere

Indholdsfortegnelse :

Indholdsfortegnelse : Rapporten er udarbejdet af Daniel & Kasper D. 23/1-2001 Indholdsfortegnelse : 1.0 STEPMOTEREN : 4 1.1 Stepmotorens formål : 4 1.2 Stepmotorens opbygning : 4 2.0 PEEL-KREDSEN 4 2.1 PEEL - Kredsen Generelt

Læs mere

0.1 Modultest af hardware

0.1 Modultest af hardware 0.1 Modultest af hardware Hardwaren af M2 testes ved, at de enkelte blokke først testes hver for sig, og derefter testes det, om hele modulet virker. TS2-monitoren brændes i ROM, og ved at forbinde M2

Læs mere

Premier. Forforstærkere. Brugervejledning. For modellerne

Premier. Forforstærkere. Brugervejledning. For modellerne Premier Forforstærkere Brugervejledning For modellerne Phono Stage Head Amplifier Line Pre-Amplifier + fjernbetjent version Line / Phono Pre-Amplifier + fjernbetjent version Line / Phono Plus + fjernbetjent

Læs mere

Funktions-data Fabriksindstilling Variabel Indstilling

Funktions-data Fabriksindstilling Variabel Indstilling eknisk datablad NR2A- Drejemotor til 2- og 3-vejs kugleventiler DN 1... 2 Moment 10 Nm Nominel spænding AC/DC 2 V Programmerbar, -Bus Konvertering af sensor signaler Styring: Modulerende DC 2... 10 V eller

Læs mere

Programmering af trådløse modtagere (RF)

Programmering af trådløse modtagere (RF) Comfort CSx75 Programmering af trådløse modtagere (RF) Introduktion Centralerne CSx75 kan udvides med trådløse (RF) modtagere på 868 MHz og 433 MHz. Når en RF modtager er installeret på centralen, kan

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

Overvågning af punktsug, URANOS LOCAL EXHAUST GUARD

Overvågning af punktsug, URANOS LOCAL EXHAUST GUARD Sikkert arbejde ved brug af punktsug Uranos Local Exhaust Guard kan fungere efter to forskellige principper: 1. Flowovervågning. 2. Trykovervågning. Flowovervågning Anvendes fortrinvis når hvert enkelt

Læs mere

Betjeningsvejledning DSS-200. 5.1 Home Theatre Højttalersystem med indbygget Forstærker og fjernbetjening

Betjeningsvejledning DSS-200. 5.1 Home Theatre Højttalersystem med indbygget Forstærker og fjernbetjening Betjeningsvejledning DSS-200 5.1 Home Theatre Højttalersystem med indbygget Forstærker og fjernbetjening Læs denne betjeningsvejledning omhyggeligt, så du får det bedst mulige udbytte af dit nye lydanlæg.

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

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

MCE2040 SERIEL KOMMUNIKATIONSMODUL

MCE2040 SERIEL KOMMUNIKATIONSMODUL Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf.: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE2040 SERIEL KOMMUNIKATIONSMODUL Overførsel af status og vægt for digitale vejeceller via simpel PC/PLC protokol

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. A/D Konvertering. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, a Erhvervsakademiet Fyn Udarbejdet i perioden:

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

DC-Motor Controller. Brugermanual

DC-Motor Controller. Brugermanual Forside Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK DC-Motor Controller Brugermanual Firmware V4.00 Produkt indhold 1 styreboks til styring af 1 DC-motor. 1 strømforsyning 100 240 volt

Læs mere

Quick Setup Guide SB168-ES og LS9 Dansk version

Quick Setup Guide SB168-ES og LS9 Dansk version Quick Setup Guide SB168-ES og LS9 Dansk version February, 2009 SB168-ES og LS9 Quick Setup Guide Beskrivelse af denne guide. Denne guide indeholder en hurtig og enkelt opsætning af LS932 med SB168ES digital

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

Elektronikken bag medicinsk måleudstyr

Elektronikken bag medicinsk måleudstyr Elektronikken bag medicinsk måleudstyr Måling af svage elektriske signaler Indholdsfortegnelse Indholdsfortegnelse... 1 Introduktion... 1 Grundlæggende kredsløbteknik... 2 Ohms lov... 2 Strøm- og spændingsdeling...

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

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

UniLock System 10. Manual til T550 Secure Radiomodtager og håndsender. Version 2.0 Revision 140220 UniLock System 10 Manual til T550 Secure Radiomodtager og håndsender Projekt PRJ124 Version 2.0 Revision 140220 T550 Secure er en højsikker trådløs UHF-læser der benyttes, hvor det ønskes at oplåse på

Læs mere

Computerens Anatomi. Af Martin Arnetoft

Computerens Anatomi. Af Martin Arnetoft Computerens Anatomi Af Martin Arnetoft Moores lov Moores lov siger, at antallet af transistorer på et stykke hardware over 18 eller 24 måneder fordobles. Denne lov bruges til at beskrive udviklingen indenfor

Læs mere

Niveauer af abstrakte maskiner

Niveauer af abstrakte maskiner Det digitale niveau Niveauer af abstrakte maskiner Mikroarkitektur: Mic-1 Digitale kredsløb Logiske tilstande: 0 (0-1 V), 1 (2-5 V) Mikroarkitektur: Mic-1 Kombinatoriske kredsløb Logiske tilstande: 0 (0-1

Læs mere

Rev.1 November 2009. Betjenings vejledning for RD 7000 DL

Rev.1 November 2009. Betjenings vejledning for RD 7000 DL Rev.1 November 2009 Betjenings vejledning for RD 7000 DL Beskrivelse af RD 7000 Modtager Modtager RD 7000 15 12 10 11 12 18 19 20 21 22 RD 7000 funktioner 1 Tryk knapper. 2 LCD-display 3 Batteriklap 4

Læs mere

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET Mandag den 14 januar 2013 I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET OZ1QK Knud Krogsgaard Jensen 1 ARDUINO I 2 C - BUSSEN ELLER?? Plan for I aften: Jeg siger noget i 10 minutter I fortæller lidt om

Læs mere

FireBUS PARKERINGSVENTILATION

FireBUS PARKERINGSVENTILATION FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne

Læs mere

Effektenhed til guitar

Effektenhed til guitar AALBORG UNIVERSITET Institut for elektroniske systemer Fredrik Bajers Vej 7-9220 Aalborg Øst - Telefon 96 35 80 80 TITEL: Effektenhed til guitar PROJEKTPERIODE: Februar - maj 2004 TEMA: Signalbehandlingssystemer

Læs mere

S26 MOTOR Original brugermanual

S26 MOTOR Original brugermanual S26 MOTOR Original brugermanual Indhold 1. Indledning 1 2. Liste over nødvendigt værktøj 1 3. Sikkerhedspåbud 1 4. Motor montering 2 4.1. Instruktion før montering 2 4.2. Samling af skinne 3 4.3. Opsætning

Læs mere

KEB Combivert Frekvensomformer F5-B version (0,37-15kW)

KEB Combivert Frekvensomformer F5-B version (0,37-15kW) Quickguide KEB Combivert Frekvensomformer F5-B version (0,37-15kW) Forord Denne quickguide er et supplement til manualer udgivet af KEB og kan således ikke erstatte KEBs manualer. Det er kun en lille del

Læs mere

CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul

CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul CAN BUS alarm, AK4625 Snapguide med oversigt over ledninger fra sirene og modul Denne snapguide er ikke en komplet monterings- eller brugeranvisning, men en oversigt over ledninger og funktioner. AK4625

Læs mere

Det er nødvendigt for brugeren at læse, forstå og følge vejledningens instruktioner.

Det er nødvendigt for brugeren at læse, forstå og følge vejledningens instruktioner. Tams Elektronik LD-G-3 / LD-W-3 (1) Lokomotivdekoder LD-G-3 / LD-W-3 i Märklin-Motorola format Denne oversættelse omfatter monterings- og anvendelsesvejledningerne til LD-G-3 / LD-W-3 dekoderen. Den originale

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

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde SPIDER Quick guide DATO: August 2017 FORHANDLER: WASYS A/S Langebjergvænget 18 4000 Roskilde +45 7221 7979 Indhold Om SPIDER... 3 Funktioner ved SPIDER... 3 Spændingsforsyning... 3 Installation og fysiske

Læs mere

tube tube Brugermanual Internet Radio Digital Radio OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian

tube tube Brugermanual Internet Radio Digital Radio OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian N E X T G E N E R A T I O N R A D I O tube Brugermanual Internet Radio tube OXX Digital 2010 1 Follow OXX DIGITAL on twitter Follow OXX DIGITAL Scandinavian on facebook Design Indhold Oversigt...3 Front

Læs mere

Detter dokument er kun til intern brug og klassificeret som strengt fortroligt. Forfatteren tager forbehold for alle fejl og mangler.

Detter dokument er kun til intern brug og klassificeret som strengt fortroligt. Forfatteren tager forbehold for alle fejl og mangler. 1KAPITEL Detter dokument er kun til intern brug og klassificeret som strengt fortroligt. Forfatteren tager forbehold for alle fejl og mangler. Kapitel 4 side 28 Kommentar:Statisk RAM gør brug af D-flip-flops

Læs mere

IAI Quick Start Guide

IAI Quick Start Guide IAI Quick Start Guide Opsætning: Manualen til controllerene ligger i: Produkter\IAI\Manual\RoboCylinder\Controller\ Her ligger den i en undermappe alt efter hvilken type controller det er. Installer RCPC

Læs mere

Silver Night. Forstærkere. Brugervejledning. For modellerne

Silver Night. Forstærkere. Brugervejledning. For modellerne Silver Night Forstærkere Brugervejledning For modellerne Stereo 300B - 7 Watt Mk1 & 2 Stereo Integrated 300B - 7 Watt Mk1 & 2 Stereo PX25 Mk2 8 Watt Stereo Integrated PX25-8 Watt Mk2 Parallel Single Ended

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

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

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

895 Harmony-fjernbetjening. Brugervejledning, version 1.0

895 Harmony-fjernbetjening. Brugervejledning, version 1.0 895 Harmony-fjernbetjening Brugervejledning, version 1.0 Indhold INTRODUKTION... 1 BLIV DUS MED DIN HARMONY-FJERNBETJENING... 2 KONFIGURATIONSPROCESSEN... 3 BRUG AF HARMONY-FJERNBETJENINGEN... 4 BRUG AF

Læs mere

Smartbox, 30-69001-8. Brugermanual Montageanvisning Denne folder skal altid opbevares ved produktet!

Smartbox, 30-69001-8. Brugermanual Montageanvisning Denne folder skal altid opbevares ved produktet! Smartbox, 0-6900-8 Brugermanual Montageanvisning Denne folder skal altid opbevares ved produktet! PDF 5956 / 0.0.2009 Indholdsfortegnelse:. ANVENDELSE...2 2. KOMPONENTLISTE.... TILSLUTNING AF SMARTBOX...4.

Læs mere

Quick-guide til harddiskoptager

Quick-guide til harddiskoptager Quick-guide til harddiskoptager Beckersberg DVR400, Beckersberg DVR800 og Beckersberg DVR1600 Læs venligst quick-guiden grundigt, før du tager din Beckersberg harddiskoptager i brug. 1 Indholdsfortegnelse

Læs mere

FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer

FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer FireBUS BRANDSIKRINGSAUTOMATIK For spjældsikrede og røgventilerede systemer QUICK GUIDE For anlæg med mindre end 12 spjæld og mindre end 100 m kabel-længde er der ikke behov for den store planlægning,

Læs mere

KP4.6 Installations- & Brugsvejledning

KP4.6 Installations- & Brugsvejledning Hea KP4.6 Installations- & Brugsvejledning ding Place your message here. For maximum impact, use two or three sentences. 2 Tillykke Tillykke og tak fordi du valgte Jamo KP4.6 tastatur. Tastaturet åbner

Læs mere

Side 1. Installationsvejledning for. systemet. Version 1 December 2004

Side 1. Installationsvejledning for. systemet. Version 1 December 2004 Side 1 Installationsvejledning for µ-pc systemet µ-pc Version 1 December 2004 Side 2 µ-pc systemet µ-pc systemet er opbygget af moduler som vist på figur 1. Hvert modul består af en kasse med stikforbindelser,

Læs mere

Bruger manual AGAM kontrolboks

Bruger manual AGAM kontrolboks Bruger manual AGAM kontrolboks Kontrol boks set- up Front tavle (dør) 1. LED : Indikerer hvilke funktioner der er tilsluttet. (Lys tændt = funktion tændt ; lys slukket = funktion slukket). #1- Hovedpumpe

Læs mere

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn.

Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen. Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG: Udarbejde af: Benjamin Grydehøj I samarbejde med PDA Projektgruppen Elektronikteknologafdelingen på Erhvervsakademi Fyn. Journal JTAG Xilinx XC9536 29-9-3 Generel beskrivelse af JTAG: JTAG:

Læs mere

Fysikøvelse Erik Vestergaard www.matematikfysik.dk. Musik og bølger

Fysikøvelse Erik Vestergaard www.matematikfysik.dk. Musik og bølger Fysikøvelse Erik Vestergaard www.matematikfysik.dk Musik og bølger Formål Hovedformålet med denne øvelse er at studere det fysiske begreb stående bølger, som er vigtigt for at forstå forskellige musikinstrumenters

Læs mere

Brugervejledning for Senge- og dørvagt PIR2003

Brugervejledning for Senge- og dørvagt PIR2003 DENNE BRUGERVEJLEDNING GÆLDER FRA SOFTWARE VERSION 3.X Brugervejledning for Senge- og dørvagt PIR2003 KNOP ELEKTRONIK A/S Fabriksvej 20=7600 Struer=Mail: [email protected]=web: www.knop.dk=tlf.: 9784 0444=Fax.:

Læs mere

Motor til modulerende styring AME 435

Motor til modulerende styring AME 435 Datablad Motor til modulerende styring AME 435 Beskrivelse ventilens karakteristik kan justeres trinløst mellem lineær og logaritmisk og omvendt. det avancerede design omfatter belastningsafhængige endestopkontakter,

Læs mere

TX electronic controller

TX electronic controller TX electronic controller Version 1.1 Rev. 14. Dec. 2011 Side 1 af 20 1.0.0 Indhold 1.0.0 Indhold... 2 2.0.0 Oversigt... 3 3.0.0 Funktionsbeskrivelse... 4 3.1.0 Bruger funktioner... 4 3.1.1 Dagsdrift...

Læs mere

NBE PELVAC MANUAL. Version 3.000001. RTB - Ready To Burn

NBE PELVAC MANUAL. Version 3.000001. RTB - Ready To Burn DK NBE PELVAC MANUAL Version 3.000001 RTB - Ready To Burn INDHOLD: Kære kunde. Tak fordi du har købt dette NBE-produkt, som er designet og fremstillet efter de højeste standarder i EU. Vi anbefaler, at

Læs mere

Betjeningsvejledning Elma 318 Mini automultimeter

Betjeningsvejledning Elma 318 Mini automultimeter Betjeningsvejledning Elma 318 Mini automultimeter El.nr. 63 98 910 288 BM318 Side 2 INDHOLDSFORTEGNELSE INDHOLDSFORTEGNELSE...2 1. SIKKERHED... 2 2. INTRODUKTION... 4 3. Beskrivelse... 5 3-1 Panel beskrivelse...

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

Vejledning til Blackboards portfolio værktøj

Vejledning til Blackboards portfolio værktøj Vejledning til Blackboards portfolio værktøj Brug denne vejledning, når du skal udarbejde din undervisningsportfolio i Blackboards portfolio værktøj. Ved at følge alle trinene nedenfor får du udarbejdet

Læs mere

Basrefleks kabinettet

Basrefleks kabinettet Basrefleks kabinettet Hvordan virker en basrefleks? Denne kabinet type er den mest populære da den typisk giver mere oplevelse af bas og en større belastbarhed. Inden du læser denne artikel vil jeg anbefale

Læs mere

LEAKSHOOTER BRUGERVEJLEDNING

LEAKSHOOTER BRUGERVEJLEDNING LEAKSHOOTER BRUGERVEJLEDNING LEAKSHOOTER-LKS1000 ULTRALYDSKAMERA (PATENTERET) LKS1000 VERSION1.5 BRUGERVEJLEDNING LEAKSHOOTER LKS1000 Leakshooter LKS1000 er en bærbar enhed, der giver mulighed for at høre,

Læs mere

Maskinanlæg, opsætning af frekvensomformer

Maskinanlæg, opsætning af frekvensomformer Maskinanlæg, opsætning af frekvensomformer INDHOLDSFORTEGNELSE Opgaver - Maskinanlæg, opsætning af frekvensomformer...3 2-20 Rekv. 0 Prod. 28-06-2006-08:33 Ordre 000 EFU Opgave 1 1 stk. VLT 2800 1 stk.

Læs mere

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato: Kokkedal Industripark 4 DK-2980 Kokkedal Denmark [email protected] Tel +45 49 180 100 Fax +45 49 180 200 2x50 ETHERNET MODUL RS485 slave med Ethernet-IP Gælder for: Program nr.: AUXSLAVE.140422.2v1 Dokument

Læs mere

VOM-1021DV. 10.2 motoriseret loftskærm/dvd Combo. Bruger manual

VOM-1021DV. 10.2 motoriseret loftskærm/dvd Combo. Bruger manual VOM-1021DV 10.2 motoriseret loftskærm/dvd Combo Bruger manual Indholdsfortegnelse Identifikation af loftskærm... 3 Identifikation af fjernbetjening... 4 Strøm og brug af skærm... 5 Strøm ON/OFF... 5 Justering

Læs mere

Strømforsyning +/- 12V serieregulator og 5V Switch mode

Strømforsyning +/- 12V serieregulator og 5V Switch mode Udarbejdet af: +/- 12V serieregulator og 5V Switch mode Side 1 af 15 Udarbejdet af: Komponentliste. B1: 4 stk. LN4007 1A/1000V diode D1: RGP30D diode Fast Recovery 150nS - 500nS, 3A 200V C1 C3 og C4: 100nF

Læs mere

IR32C: Elektronisk digital termostat med afrimningskontrol for køle-/ frostanlæg med drift inden for lave temperaturområder.

IR32C: Elektronisk digital termostat med afrimningskontrol for køle-/ frostanlæg med drift inden for lave temperaturområder. IR32C LED (lysdiode) instrumenter til køl/ frost infrarød IR32C: Elektronisk digital termostat med afrimningskontrol for køle-/ frostanlæg med drift inden for lave temperaturområder. IR32C - COMPACT modellen

Læs mere

Impac230. Beskrivelse. Egenskaber. Impac 230

Impac230. Beskrivelse. Egenskaber. Impac 230 I1 I2 I3 I4 I5 I6 I7 I8 IC O1 O2 O3 O4 OC +10V +10V RS232 RJ45 I²C RJ11 Error Power +10V E5 E4 E3 E2 E1 M1+ P- P+ 12-36VDC M1- M2- M2+ Impac230 Beskrivelse Impac230 er som hele impac-serien designet med

Læs mere

Kronback tracers P4+

Kronback tracers P4+ Brugervejledning Kronback tracers P4+ Fax:(+45) 46 907 910 Side 1 of 19 CONTENT 1. UDFORMNING OG FORBINDELSER 4 1.1. Serie nummer 5 1.2. Grafisk display 5 1.3. Navigationsknapper 6 1.4. 6-30V strømforsyning

Læs mere

Montage og brugsanvisning

Montage og brugsanvisning Montage og brugsanvisning System JA 3000 Standalone styring for befugter og affugter for relativ fugtighed eller dugpunkt. Indholdsfortegnelse Ophavsrettigheder... 3 EU overensstemmelseserklæring... 4

Læs mere

NC_8_ Quick Guide v1.0. CJ1W-NC_8_ Position Control via EtherCAT. Quick Guide

NC_8_ Quick Guide v1.0. CJ1W-NC_8_ Position Control via EtherCAT. Quick Guide Quick Guide v1.0 CJ1W- Position Control via EtherCAT Quick Guide Denne Quick Guide er ment som supplement til de respektive manualer for CJ1W- modulet og de installerede servodrev, frekvensomformere og

Læs mere

Manual til PRO DK180

Manual til PRO DK180 Manual til PRO DK180 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Tag alarmen i brug... 10 Programering af alarmen... 11 Indtastning af egen

Læs mere

Computerens Anatomi Af Mathias og Mark

Computerens Anatomi Af Mathias og Mark Computerens Anatomi Af Mathias og Mark Planlægning af projekt Case Størstedelen af nutidens unge har deres egen smartphone, computer og fjernsyn. Computere i alle afskygninger bliver fortsat en større

Læs mere

Den ideelle operationsforstærker.

Den ideelle operationsforstærker. ELA Den ideelle operationsforstærker. Symbol e - e + v o Differensforstærker v o A OL (e + - e - ) - A OL e ε e ε e - - e + (se nedenstående figur) e - e ε e + v o AOL e - Z in (i in 0) e + i in i in v

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

GSM SMS Modem MODEL: SA RTU-1 V1.01

GSM SMS Modem MODEL: SA RTU-1 V1.01 GSM SMS Modem MODEL: SA RTU1 V1.01 Brugervejledning Indgange: Der er fire indgange på modulet. De kan programmeres som normale indgange. De kan programmeres som tæller. Udgange: Der er en udgang på modulet

Læs mere

Synopsis: Titel: HiFi-forstærker med minimeret effektforbrug. Tema: Analog og digital elektronik. Projektperiode: P3, efterårssemesteret 2009

Synopsis: Titel: HiFi-forstærker med minimeret effektforbrug. Tema: Analog og digital elektronik. Projektperiode: P3, efterårssemesteret 2009 Synopsis: Institut for Elektroniske Systemer Elektronik og Elektroteknik Fredrik Bajers Vej 7 B 9220 Aalborg Ø Tlf.: 99 40 86 00 http://es.aau.dk Titel: Tema: HiFi-forstærker med minimeret effektforbrug.

Læs mere

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse.

Modbus data modellen er opbygget af fire primære data typer. I nedenstående skema er en kort oversigt over disse. Modbus RTU protokol Indledning Modbus er en application layer messaging protocol, placeret på 7. lag i OSI modellen, der sørger for client/server kommunikation mellem enheder koblet på forskellige typer

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 [email protected]

Læs mere

Dansk oversættelse version 1.0 Oktober 2007 Peter E. Jonasen baseret på den tyske original 101677/0906/SmEf

Dansk oversættelse version 1.0 Oktober 2007 Peter E. Jonasen baseret på den tyske original 101677/0906/SmEf Indbygnings- og brugervejledning Märklin 60760 Digital ombygningssæt til lokomotiver med tromlekummulator motor Dansk oversættelse version 1.0 Oktober 2007 Peter E. Jonasen baseret på den tyske original

Læs mere