Institutionen för data- och elektroteknik 2002-02-19 1 Inledning Laboration två är inriktad på digitala filter. Ni kommer att via en LabVIEW-applikation kunna dimensionera filter samt mata in egna filterdimensioneringar. Applikationen gör det också möjligt att köra dessa filter i realtid och därmed göra digitala filtreringar av verkliga signaler. Det är möjligt att köra filtren inifrån LabVIEW eller genom nedladdning till signalprocessor. Den första metoden begränsar samplingsfrekvensen till maximalt ungefär 1 khz medan den senare applikationen kan använda samplingsfrekvenser upp till 48 khz. I laborationen ingående uppgifter är avsedda för att köras via datorns in/utkort, dess begränsade samplingshastighet gör dock att vi bara kan kontrollera filterfunktion via oscilloskopmätningar. Möjligheten att köra med högre samplingsfrekvens via signalprocessorn har lagts in för att ge er möjlighet att lyssna på resultatet av signalbehandling genom att spela en CD i datorns CD-spelare (tag med egen CD), ansluta utgången från datorns ljudkort till signalprocessorkortet, signalbehandla signalen och skicka ut den behandlade signalen till en förstärkare som gör det möjligt att lyssna på resultatet via hörlurar (hörlurar finns men av låg kvalité, läs billiga, så ta gärna med egna hörlurar). Ni behöver inte begränsa er till de uppgifter som ingår i laborationen, testa gärna andra filtervarianter som ni är nyfikna på. I LabVIEW-applikationen finns möjlighet att göra ganska avancerade filter utan att beräkna för hand. De dimensioneringar som krävs för uppgifterna skall vara gjorda före laborationstillfället. 1.1 Dimensioneringsnoggrannhet Vid dimensioneringarna blir en del av konstanterna små. Sker för kraftiga avrundningar så påverkar detta resulatatet negativt, detta gäller speciellt det smala bandpassfiltret som blir mycket känsligt för fel i filterkonstanter. I signalprocessorfallet medför processorns talrepresentation (fraktionella fixtal) större risk för avrundningsfel. För att få små avrundningsfel vid dimensioneringarna skall all dimensionering ge konstanter med fyra decimaler. CHALMERS LINDHOLMEN Sida 1 Institutionen för data- och elektroteknik Sven Knutsson Box 8873 402 72 Göteborg Besöksdress: Hörselgången 4 Telefon: 31-772 57 27 Fax: 31-772 57 31 E-mail: svenk@chl.chalmers.se Web: www.chl.chalmers.se/ svenk
2 Laborationsutrustning 2.1 Programvara Även denna laboration bygger på en applikation i programvaran LabVIEW. Applikationen är uppbyggd som ett huvudprogram från vilket man kan välja olika dimensioneringsmetoder och köra filtren via in/utkort eller generera program för signalprocessor, dessa senare program får sedan laddas ner till signalporcessorn via ett separat terminalprogram. Eftersom in/utkort och signalprocessor ger olika möjligheter vad gäller val av samplingsfrekvens så börjar vi med att välja om vi skall köra filtret via in/utkort eller ladda ned det till signalprocessor. Detta gör vi via knappen Programmera DSP/Kör in/utkort. Via menyval väljs önskad dimensioneringsmetod och tryck på knappen Dimensionera anropa underprogram för filterdimensionering enligt vald metod. De metoder som kan väljas är Överföringsfunktion. Täljar- och nämnarkonstanter i filtrets överföringsfunktion matas in i två stycken arrayer. Detta är den metod som ni skall använda för att mata in filterkonstruktionerna från era dimansioneringar Poler och nollställen. Filtrets poler och nollställen anges Invers fouriertransform. Programmet beräknar filtret utifrån inmatat gradtal och inmatad gränsfrekvens. Vi kan dimensionera lågpass-, högpass-, bandpass- och bandspärrfilter Parks-McClellan. Programmet använder Parks-McClellans metod för equirippelfilter för att beräkna filtret utgående från angivet gradtal och angivna gränser för pass- och spärrband. Vi kan dimensionera lågpass-, högpass-, bandpass- och bandspärrfilter Från analoga modeller. Programmet använder bilinjär transform för att dimensionera filter av typ Bessel-, Butterworth-, Tjebytjev I-, Tjebytjev II-filter samt elliptiskt filter utgående från inmatade gradtal och gränsfrekvenser, i vissa fall anges dessutom önskad rippelnivå Efter återgång till huvudprogrammet via knappen Återgå kan filtret sedan köras via in/utkort genom klick på knappen Kör in/utkort om vi tidigare valt att dimensionera för denna platform. Har vi valt att dimensionera för signalprocessor har knappen texten Skapa DSP-fil Och klickande på denna knapp skapar programmeringsfiler för signalprocessorn. Via knappen Börja om kan vi återgå och välja ny målplattform eller göra ny dimensionering. Ni hittar LabVIEW-applikationen som C:\DATA\D00\DIG_SIGN\LABBAR\LAB_2\LAB_2.LLB och den startas precis som Laboration 1 enklast genom dubbelklick på LAB_2.LLB i Utforskaren.. sida 2
2.1.1 Att köra via in/utkort Vid körning via in/utkort ansluts signalkälla till kortets ingång och oscilloskop till kortets utgång på det sätt som beskrivs nedan i punkt 2.2.1, varefter filtreringen startas genom klick på knappen Kör in/utkort, som beskrivs ovan. Applikationen hinner med sin filtrering om samplingsfrekvensen ligger under c:a 1 khz. Detta gäller dock inte om man gör filter med många termer (50 100). Ju fler termer ju längre tid tar beräkningen. 2.1.2 Att köra via signalprocessor Denna del av laborationen får betraktas som överkurs och är bara avsedd för den som är intresserad. I detta fall kommer applikationen vid klick på knappen Skapa DSP-fil, som angivits ovan, att generera signalprocessorfiler, assemblera dessa och länka ihop dem till en enda signalprocessorfil. Den assemblerade och länkade filen som skall laddas ner till signalprocessorn heter LAB_2.EXE och hamnar i biblioteket C:\TEMP\DSP. Vi har möjlighet att skapa filer för två olika signalprocessorer Analog Devices ADSP- 2105 och Analog Devices ADSP-2181, ni skall använda den senare. Till signalprocessorn ADSP-2105 sitter en codec (A/D- och D/A-omvandlarmodul) som bara kan hantera samplingsfrekvensen 8 khz. Codecen till signalprocessorn ADSP-2181 kan hantera ett antal samplingsfrekvenser, dock inte vilka som helst. Den kan hantera samplingsfrekvenserna 5.5125, 6.615, 8, 9.6, 11.025, 16, 18.9, 22.05, 27.42857, 32, 33.075, 37.8, 44.1 och 48 khz. Välj själv önskad samplingsfrekvens. Filterdimensioneringarna laddas ned till signalprocessorn med hjälp av ett monitorprogram som finns i Windows startmeny under Program/Digital Signalbehandling/EzKit 2.0. Då programmet startas skall signalprocessorkortet vara anslutet till datorns serieport 1 (COM 1) och kortet skall ha spänningsmatning. Orsaken till detta är att monitorprogrammet kontrollerar att det har kontakt med signalprocessorn då det startas upp. Så länge inget program laddas ner till signalprocessorn så kör denna ett monitorprogram som hela tiden samplar in signaler via sin analoga ingång och skickar sedan ut dessa opåverkade via sin analoga utgång. Kortet hanterar två kanaler varför stereosignaler kan användas, i laborationsapplikationen används dock bara en kanal som insignal och denna skickas efter signalbehandlingen ut på båda utgångskanalerna. Denna begränsning har lagts in för att slippa göra två filterberäkningar, en per kanal. Er applikation laddas ner via monitorprogrammet i PC-datorn via menyvalet Loading/Download user program and Go varvid en filhanterare visar sig där ni kan navigera fram till önskad fil. Kom ihåg att LabVIEW-applikationen placerar denna fil i C:\TEMP\DSP och att den heter LAB_2.EXE. Efter nedladdning startar applikationen automatiskt. Om ni sedan vill ladda ner en ny applikation så måste den tidigare applikationen avbrytas först. Detta sker via tryck på knappen Interrupt på signalprocessorkortet varvid processorn återgår till sitt monitorprogram som bara läser in och skickar ut obearbetade värden (sampel). sida 3
2.2 Hårdvara 2.2.1 In/utkort För att studera filtrens frekvensgång används en sinussignal från funktionsgeneratorn Hewlett-Packard 33120A som finns på labplatserna. Signalen från funktionsgeneratorn ansluts till ett in/utkort i datorn via terminalen AI0 på den kopplingsbox som finns på labbänken. Signalen ansluts också till ett oscilloskop för att vi skall kunna se vad vi skickar in i applikationerna. Utsignalen från filtret finns på terminal AO0 och även denna ansluts till oscilloskopet via en annan av dess kanaler. För uppgiften Bortfiltrering av brus används en insignal som fördelas till Analoga ingångar alla labplatser via laboratoriets bussystem. Denna signal finns på den koaxialkontakt som har lägst nummer på labplatsens kontaktlist. 2.2.2 Signalprocessor Då dimensioneringen laddas ner till signalprocessor blir filtret extra avrundningskänsligt eftersom processorn använder fixtal med 16 bitars noggrannhet (15 bitar för konstantstorlek då MSB är teckenbit). Processorn kan inte heller hantera tal med belopp större än ett vilket begränsar filterkonstanternas storlek. Applikationen korrigerar konstanter som är för stora men detta sker genom att alla konstanter skiftas tillräckligt många steg åt höger vilket kommer att minska antalet värdebärande bitar i konstanterna och felen blir större. I praktiken bör ni inte ha konstanter med belopp större än fyra. Processorkortet kommunicerar med ett terminalprogram i PC-datorn via en seriekabel som ansluts till D-subkontakten på kortet och till serieport 1 (COM 1, den övre serieporten) på PC:n. Insignalen till signalprocessorkortet, från funktionsgenerator eller CD-spelare, ansluts via sin terminal (Analog ingång) och utsignalen går vidare till oscilloskop eller hörlursförstärkare via terminalen Analog utgång. Vid tryck på knappen Reset kommer processorn att startas om, dess monitorprogram initieras och processorn skickar ut en kort melodi och en hälsningsfras spelas upp. För att avbryta körning av en applikation och möjliggöra nedladdning av ny applikation göres tryck på knappen Interrupt varvid processorn återgår till sitt monitorprogram och väntar på ny programnedladdning. AI1 AI0 AGND Analoga utgångar AO1 AO0 AGND Analog jord PA1 PA0 DGND Figur L2.1 Anslutningsplint för in/utkort PA3 PA2 DGND Digital jord Digitala in/utbitar sida 4
Analog utgång Analog ingång Spänningsmatning + 9-10 volt Serieport från dator Interrupt Reset Figur L2.2 Labkort till ADSP-2181 2.2.3 Ljudkort Ljudkortet i datorn har ett antal anslutningar Linje in, för att anslutna ljudutrustning, t ex CD-spelare och bandspelare Mikrofon in, för att koppla in en mikrofon Hörlur/linje ut, denna kombinationsutgång används för att skicka vidare signalen till t ex en förstärkare eller en bandspelare men den har också tillräcklig drivförmåga för att mata en lågohmig hörlur Joystickanslutning för användning av Joystick Hörlur/ linje ut (grön) Mikrofon in (Röd) Linje in (blå) Figur L2.3 Anslutningar på datorns ljudkort joystick t ex i spel. Anslutningen används också för kommunikation med musikinstrument och liknande via MIDI-protokollet I vårt fall skall vi använda ljuskortet för att få en signal från datorns CD-spelare och vi ansluter då utgången Hörlur/linje ut till signalprocessorkortets ingång. sida 5
2.2.4 Hörlursförstärkare För att lyssna på materialet från signalprocessorn används en hörlur som drivs av vidstående förstärkare. Se till att ha låg volym vid inkoppling så att inte öron eller hörlur skadas. Hörlur (Analog utgång) Analog ingång Volym Jord Spänningsmatning + 3-15 volt Figur L2.4 Hörlursförstärkare 2.2.5 Inkoppling för CD-ljud Vi kör CD-spelaren via datorns ljudkort och ansluter därför ljudkortets linjeutgång till signalprocessorkortets analoga ingång. Processorn får därefter utföra sin signalbehandling av ljudet och vi kopplar signalprocessorkortets analoga utgång till hörlursförstärkarens analoga ingång. Hörluren ansluts till hörlursförstärkarens utgång. Både signalprocessorkort och hörlursförstärkare kan drivas av en spänning på 9 10 volt. För att ladda ner program till signalprocessorn ansluts en seriekabel mellan datorns serieport 1 (COM 1, den övreserieporten) och signalprocessorkortets serieingång. Ljudstyrkan från datorns ljudkort till signalprocessorkortet regleras från datorns volymkontroll som finns i Windows Startmeny under Program/Tillbehör/Multimedia/Volymkontroll. Ljuddtyrkan ut från ljudkortet och in till signalprocessorn ges av regeln (volymkontrollen) CD Audio tillsammans med huvudregeln Volume Control. Ljudstyrkan i hörluren kontrolleras av volymkontrollen på hörlursförstärkaren. sida 6
3 Laborationsuppgifter Använd samplingsfrekvensen 1 khz vid samtliga dimensioneringar. Era dimensioneringsresultat matas in i datorapplikationen via underprogrammet Överföringsfunktion eftersom det är ni som skall ha gjort dimensioneringarna i förväg och därmed skapat en överföringsfunktion. Det är inte applikationen som skall göra dimensioneringarna. 3.1 Bortfiltrering av brus 3.1.1 Bakgrund Via laboratoriets bussystem distribueras en sinussignal som är kraftigt störd av brus. Ni skall plocka fram sinussignalen med hjälp av ett smalt bandpassfilter. 3.1.2 Dimensionering Dimensionera ett smalt bandpassfilter med mittfrekvens 50 Hz, bandbredd 5 Hz och passbandsförstärkningen ett. 3.1.3 Uppgift Starta upp LabVIEW-applikationen och välj underprogrammet Överföringsfunktion för att mata in er dimensionering. Låt programmet beräkna filtrets frekvenskurva och kontrollera att denna verkar bra innan ni återgår till huvudprogrammet. Återgå till huvudprogrammet och starta filtreringen via via in/utkortet. a) Svep signalfrekvensen från funktionsgeneratorn för att bestämma det verkliga filtrets frekvensgång b) Anslut signalen från bussystemet och studera utsignalen från filtret och kontrollera att ni har ganska bra dämpning av bruset c) Undersök vad som händer om samplingsfrekvensen ändras till 800 Hz medan allt annat förblir ofärändrat d) Prova vad som händer med filtret om ni minskar antalet decimaler hos dimensioneringen. Detta kan göras i LabVIEW-applikationen utan att nya filterkonstanter behöver matas in 3.2 Filter via invers fouriertransform 3.2.1 Bakgrund Invers fouriertransform är en vanlig metod för att dimensionera filter med linjär fasgång. Metoden kräver ett stort antal filtertermer för att bli bra. Det filter ni kommer att dimensionera har för få termer för att bli riktigt bra men vi måste begränsa antalet termer för att inte få så många filterkonstanter att beräkna och mata in i programmet. sida 7
3.2.2 Dimensionering Använd invers fouriertransform för att dimensionera ett lågpassfilter med gränsfrekvens 100 Hz och passbandsförstärkningen ett. Filtret skall ha 15 termer. a) Gör först en dimensionering utan fönster b) Gör om dimensioneringen med ett Hanningfönster 3.2.3 Uppgift Mata in era dimensioneringar (med och utan Hanningfönster) via underprogrammet Överföringsfunktion, kontrollera att den filterkurva som programmet ritar upp blir den önskade. Starta filtreringen och svep frekvensen på filtrets insignal från funktionsgeneratorn för att bestämma filtrets frekvensgång. 3.3 Filter via analoga avbildningar 3.3.1 Bakgrund I många fall är man intresserad av att efterlikna de filtertyper som man är van vid från analog signalbehandling. Två vanliga metoder för detta är impulsinvariant avbildning och avbildning via bilinjär transform. Vi skall studera den senare metoden. 3.3.2 Dimensionering Dimensionera ett andra ordningens lågpassfilter av Butterworthtyp med gränsfrekvens 100 Hz och passbandsförstärkning ett. 3.3.3 Uppgift Mata in er dimensionering via underprogrammet Överföringsfunktion, kontrollera den uppritade frekvensgången, starta filtreringen och svep filtrets insignal från funktionsgeneratorn för att bestämma filtrets frekvensgång. 3.4 Jämförelse mellan olika filterdimensioneringar 3.4.1 Bakgrund Som framgått av kursens lektioner så kan vi använda olika metoder för att dimensionera digitala filter med snarlika egenskaper. Vi skall låta datorapplikationen göra ett antal olika filterdimensioneringar så att vi kan jämföra deras resultat. sida 8
3.4.2 Uppgift a) Jämför egenskaperna hos de filter som ni har dimensionerat via invers fouriertransform och via bilinjär transform. Försök dra några slutsatser angående respektive filters förtjänster b) Använd underprogrammet Invers fouriertransform för att gör om den tidigare dimensioneringen via invers fouriertransform men öka nu till 101 termer. Undersök vad som händer då olika fönster används c) Använd underprogrammet Parks-McClellan för att dimensionera ett equirippelfilter av lågpasstyp, med passbandsfrekvensen 100 Hz och spärrbandsfrekvensen 110 Hz. Filtret skall ha 101 termer. Prova även andra antal termer. d) Jämför de två filtren med 101 termer e) Använd underprogrammet Från analoga modeller för att hitta ett Butterworthfilter som har liknande frekvensegenskaper som ovanstående två filter f) Prova att minska antalet decimaler på konstanterna vid de olika dimensioneringarna sida 9