Institutionen för data- och elektroteknik 004-03-15 Signalbehandling i Matlab och LabVIEW 1 Introduktion Vi skall i denna laboration bekanta oss med hur vi kan använda programmen Matlab och LabVIEW för enklare signalbehandlingsrutiner. Vi skall dessutom se hur vi kan använda de två programmvararorna tillsammans. Som underlag för Matlabberäkningarna bör man studera stencilen Sammanställning av Matlabkommandon som räknar upp ett antal grundläggande Matlabkommandon och ett antal kommandon som är mer inriktade mot signalbehandling. Kommandona förklaras inte närmare, denna hjälp får sökas via Matlabs eget inbyggda hjälpsystem. För LabVIEW-programmeringen finns ingen motsvarande uppräkning då det är lätt att med LabVIEW:s hjälpfönster leta fram lämplig funktion. Även här får programmets inbyggda hjälpsystem användas för att förklara hur funktionerna används. Varje laborationsuppgift kompletteras med en liten hjälp som anger under vilken eller vilka rubriker man bör söka lämpliga funktioner i Matlabstencilen respektive i LabVIEW:s menysystem. Hjälpen ger bara ledtrådar om ett möjligt sätt att lösa uppgiften. I de flesta fall finns det flera möjliga lösningar. Alla uppgifter utom uppgifterna.1.6,..5 och..8 är rena simuleringar och kan göras före laborationstillfället och bara visas upp vid laborationen (Uppgift.1.6 kan skrivas före labtillfället, men inte testas). Några av LabVIEW-uppgifterna kräver en fullständig Lab- VIEW-installation och kan därför inte lösas med hjälp av LabVIEW Student Edition. De tre uppgifter som inte kan göras klara i förväg kräver ett installerat in/utkort i datorn, vilket bara finns på labplatserna. Uppgift..4 är mer omfattande och kan betraktas som överkurs. CHALMERS LINDHOLMEN Sida 1 Institutionen för data- och elektroteknik Sven Knutsson Box 8873 40 7 Göteborg Besöksdress: Hörselgången 4 Telefon: 31-77 57 7 Fax: 31-77 57 31 E-mail: svenk@chl.chalmers.se Web: www.chl.chalmers.se/ svenk
Laborationsuppgifter.1 Signalbehandling i Matlab.1.1Beräkning av överföringsfunktion Bestäm överföringsfunktionen för ett tidsdiskret system som beskrivs av nollställena z z n1 n, = 0, 8 = 0, 7 ± j 0, 6 och polerna z z n1 n, = 0, 5 = 0, 8 ± j 0, systemet har dessutom förstärkningsfaktorn K = Sök under rubriken Transformering mellan systembeskrivningar..1. Beräkning av impulssvar Bestäm ovanstående systems impulssvar i intervallet 0 n 10. Rita även upp resultatet i en figur. Sök under rubrikerna Tids- och frekvenssvar och Figurer, plot och image.1.3 Beräkning av utsignal Beräkna utsignalen från ovanstående system i intervallet 0 n 10 om insignalen beskrivs av uttrycket x [ n] = 0, 7 δ [ n] 0, 37 δ [ n 1] + 0, 65 δ [ n ] + 0, 5 δ [ n 4] Rita in- och utsignal som varsin figur. Sök under rubriken Filter sida
.1.4 Omvandla till andragradsuttryck Omvandla ovanstående överföringsfunktion till så kallade biquadlänkar, dvs seriekopplade andragradslänkar. Sök under rubriken Transformering mellan systembeskrivningar..1.5 Beräkning av frekvensegenskaper Bestäm belopps- och fasegenskaper för ovanstående system och rita upp de två kurvorna i var sitt diagram i samma figur. Komplettera dessutom figuren med ett diagram där beloppet är beräknat i decibel. De tre diagrammen skall ha korrekt frekvensskala. Sök under rubrikerna Tids- och frekvenssvar och Figurer, plot och image.1.6 Beräkning av FFT Uppgiften måste göras klar efter Uppgift..5. Läs in den samplade signal som vi i en kommande LabVIEW-uppgift (Uppgift..5) har lagrat i en kalkylarksfil. Beräkna signalens FFT-spektra och rita beloppet med korrekt frekvensaxel. Studera vad som händer om vi använder funktionen fftshift. Komplettera med en funktion som söker upp frekvenskomponenten med störst belopp och anger dess frekvens. Sök under rubrikerna DFT och FFT med inverser, Figurer, plot och image Matriser och vektorer och Filhantering..1.7 Skapa signal via invers FFT Använd invers DFT för att skapa en 500 punkter lång signal. Vi använder samplingsfrekvensen 1 khz och signalen skall bestå av en sinusformad delsignal med frekvensen 0 Hz och amplituden, en cosinusformad signal med frekvensen 48 Hz och amplituden 1,5 samt en cosinusformad signal med frekvensen 80 Hz, amplituden 1 och fasvridningen - 30. Rita de tre delsignalerna samt den totala signalen i var sin delfigur. Lagra den totala signalen i en textfil med kommaseparerade datapunkter som kan användas som kalkylarksfil. Sök under rubrikerna DFT och FFT med inverser och Figurer, plot och image. sida 3
. Signalbehandling i LabVIEW..1 Beräkning av överföringsfunktion Bestäm samma överföringsfunktion som i Uppgift.1.1. Sök under menyn Control+Simulation/Conversion... Beräkning av impulssvar Beräkna och rita upp samma impulssvar som i Uppgift.1.. Sök under menyn Analyze/Signal Processing/Signal Generation och Analyze/Signal Processing/Filters/Advanced IIR Filtering...3 Beräkning av utsignal Beräkna utsignal på samma sätt som i Uppgift.1.3. Sök under menyn Analyze/Signal Processing/Signal Generation och Analyze/Signal Processing/Filters/Advanced IIR Filtering...4 Beräkning av frekvensegenskaper Beräkna systemets belopps- och fasspektra på samma sätt som i Uppgift.1.5. LabVIEW saknar en färdig funktion för detta. Bygg i stället upp programmet som en loop där spektralberäkningen sker utifrån grunddefinitionen på fouriertransform...5 Sampling Ställ in funktionsgeneratorn få fyrkantsvåg, välj amplituden 0,8 volt och frekvensen 40 Hz. Skriv ett program som samplar signalen med samplingsfrekvensen 100 Hz. Sampla 104 punkter. Rita upp den samplade signalen i en graf och lagra även samplen till en kalkylarksfil. Sök under menyn Data Aquisition/Analog Input, File I/O och File I/O/Advanced File Functions. sida 4
..6 Beräkning av FFT Gör FFT-beräkning för den signal som vi har samlat. Rita upp FFT:ns belopp med korrekt frekvensaxel. Bestäm frekvensen hos den största komponenten i signalens beloppsspektra. LabVIEWtips Sök under menyerna File I/O, File I/O/ Advanced File Functions, Analyze/Signal Processing/Frequency Domain och Array...7 Kombination av Matlab och LabVIEW Komplettera ovanstående FFT-beräkning i LabVIEW med en parallell beräkning där vi från LabVIEW anropar Matlabkod för att beräkna FFT:n. Rita upp de två FFTbeloppen i samma diagram för att kontrollera att de två implementeringarna ger samma resultat. Sök under menyn Mathematics/Formula och File I/O...8 Kör signal skapad via invers FFT Ladda hem LabVIEW-applikationen uppg8.vi från kursens hamsida. Starta applikationen och använd den för att via datorns in/utkort skicka ut den signal ni skapade i Uppgift.1.7. Signalen finns på anslutning AO0 på in/utkortets kopplingsplint.använd oscilloskop för att kortrollera resultatet. Prova med att använda olika samplingsfrekvenser och förstärkningar. Lägg märke till att applikationen bara kan avbrytas eller startas om då ett förlopp har avslutats och signalen körs en ny period. Detta gör att väntetiden kan kännas lång om sampelföljden är lång och samplingsfrekvensen är låg. sida 5