Laborationsuppgifter i TSDT18 Signaler och System, ver. 1.4, 2014

Download Report

Transcript Laborationsuppgifter i TSDT18 Signaler och System, ver. 1.4, 2014

Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 Laborationsuppgifter i TSDT18/84 Signaler & System Namn 1: ……………………………….....……………………………….
Personnummer: …………………………….........
Pgm. & klass: ……………
Student-Id: ……………………………………
Namn 2: ……………………………….....……………………………….
Personnummer: …………………………….........
Pgm. & klass: ……………
Student-Id: ……………………………………
”Pgm. & klass” ovan anges på formen ”Y3b”
Ifylls av assistenten:
Godkänd t.o.m. sid: ……… Datum: ………………... Assistentsignatur: ………..……………….
Godkänd t.o.m. sid: ……… Datum: ………………... Assistentsignatur: ………..……………….
Godkänd t.o.m. sid: ……… Datum: ………………... Assistentsignatur: ………..……………….
Godkänd t.o.m. sid: ……… Datum: ………………... Assistentsignatur: ………..……………….
Hela labben godkänd:
Datum: ………………... Assistentsignatur: ………..……………….
Kursens laborationsuppgifter löses med hjälp av Matlab. Några av uppgifterna är hämtade från kursboken, men det tillkommer ytterligare ett antal andra uppgifter. Alla matlabfunktioner som finns i kursboken Linear Systems and Signals av B.P. Lathi, samt alla övriga matlabfunktioner som används i labserien, blir tillgängliga/nåbara när du i någon av ISY:s datorsalar startar Matlab och skriver initcourse TSDT18 följt av startup. Även ett antal av matlabexemplen finns med. Matlabskriptet för datorexempel (”Computer Example”) Cx.y i kapitel x finns då i CEx_y.m. Matlabfunktionen/-­‐skriptet MSxPy.m skall tolkas som program y i matlabsession x. Det kan även finnas funktioner/skript av typen MSx.m, som är en genomgång/demonstration av de matlabanrop som visas i matlabsession x (Matlabsession x finns i slutet av kapitel x). Du som löser matlabuppgifter på egen dator hittar ovanstående beskrivna matlabfiler i form av en zip-­‐fil på laborationswebbsidan. Om du upplever att dina matlabkunskaper är mer bristfälliga än vad som förutsätts nedan, så gå förslagsvis först igenom matlab-­‐introduktionen i kursbokens inledande bakgrundskapitel B, dvs. Matlabsession B, sid. 53–64. Tips: Läs hjälptexten för matlabfunktioner som du inte riktigt vet hur de fungerar − t.ex. help fcn eller helpwin fcn eller doc fcn 1 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 Redovisning av lab-­‐uppgifter & grafer Skriv ut detta laborationshäfte i pappersform och skriv in alla svar för hand. Under hela laborationen ska du också spara alla relevanta Matlab-­‐anrop i ett eget skript: •
Använd dubbla procenttecken, dvs. ”%% ”, för att dela in skriptet i separata celler/sektioner − en cell/sektion för varje deluppgift − så att du vid redovisningen enkelt och snabbt (i editorn) kan exekvera och redovisa din matlabkod och relaterade grafer för en deluppgift i taget. Sätt en rubrik på varje cell, så man lätt hittar i koden! •
I de fall en graf ska redovisas, t.ex. en signal eller något frekvensspektrum, så ska ditt skript generera grafen på det sätt du gjorde när du löste uppgiften. Du ska alltså inte redovisa några grafer/figurer i form av fig-­‐filer eller utskriva i pappersform. Anledningen till detta är att det ska vara möjligt att i efterhand, vid redovisningen, undersöka vad som händer med grafen om du justerar någon parameter hos uppgiftens signal eller system − vilket assistenten ibland kan be dig att göra. •
Tips: Använd gärna funktionen ohfig för att förtydliga en redan ritad graf. Funktionen ökar fontstorleken på text och linjetjockleken i graferna i figurfönstret. •
Vid behov kan du behöva spara matlab-­‐variabler under labben med save (som t.ex. save filnamn.mat A H1 D för att spara variablerna A, H1 och D i datafilen filnamn.mat). I ditt skript laddar du sedan in de sparade variablerna med load filnamn.mat. •
För att på bästa sätt använda laborationens handlednings-­‐ och redovisningstid, så tar du upp eventuella allmänna teorifrågor med assistenten under lektionstid. •
Lektions-­‐ och lab-­‐assistenterna kommer, både på lektionstid och i början av lab-­‐
serien, att ge närmare information och instruktioner om hur det praktiska redo-­‐
visningsförfarandet går till. Det gäller bland annat hur många minuter varje grupp får på sig att redovisa vid varje lab-­‐pass och hur ”kösystemet” för redovisning fungerar. •
Viktigt att tänka på: o Läs noga igenom uppgiftstexten, så du inte missar någon viktig information. o Redovisningen handlar inte främst om att du ska visa att du löst uppgifterna, utan du behöver också förmedla en förståelse för varje uppgift, din lösningsgång och ditt resultat. Reflektera därför över detta för varje utförd uppgift innan du går vidare till nästa! 1. Inledning Uppgift: Börja med att fräscha upp dina matlabkunskaper genom att läsa igenom Matlabsession 1, på sidan 131–138 i kursboken. Speciellt viktigt är det att förstå inline-­‐funktionen, för den använder författaren flitigt i fortsatta exempel. Inled med att anropa matlabskriptet MS1. Skriptet innehåller alla de funktionsanrop som visas på sidan 131–138. Du stegar dig fram i skriptet genom att trycka på någon tangent och matlabfunktionerna visas samtidigt i kommandofönstret. Se till att du samtidigt även ser de utritade graferna! Har du gått igenom Matlabsession 1 och förstått vad som sker (JA/NEJ)? ………………………. 2 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 2. Faltning Uppgift: I matlabsession M2.4 finns matlabskriptet MS2P4 som utgör en grafisk demonstration av faltning. Anropa skriptet och studera hur faltningen mellan den givna insignalen x ( t ) och impulssvaret h ( t ) går till. En förklarande text finns även på sid. 232–234. Uppgift: Examinatorn har omformat skriptet MS2P4 till en matlabfunktion MS2P4_mod, med vilken du kan göra om faltningsdemonstrationen med valfri insignal x ( t ) och impulssvar h ( t ) . •
Skriv help MS2P4_mod för att se hur funktionen anropas och fungerar. •
I hjälptexten finns fyra anropsexempel. Kör/anropa MS2P4_mod enligt Ex 1 (kopiera texten!) och sedan enligt Ex 2. o I Ex 2 har insignal och impulssvar bytt plats, jämfört med Ex 1, dvs. x 2 ( t ) = h1( t ) och h2 ( t ) = x 1( t ) . Blir det samma utsignal i de två fallen? …………………… Varför / Varför inte? …………………………………………………………………………… •
I det tredje exemplet, Ex 3, är impulssvaret förskjutet 0.2 sek åt vänster, jämfört med Ex 1. dvs. h3( t ) = h1( t + 0.2 ) . Hur ser den nya utsignalen ut, jämfört med utsignalen vid det icke förskjutna impulssvaret? ……………………………………………….…………………………………………………. ………………………………………………………………………………………………………………………... Vilken kausalitetsegenskap har det första systemet och vilken kausalitetsegenskap har det modifierade systemet? Förklara (relatera speciellt till de olika grafernas (x, h och y) respektive utseenden)! …………………………………………………………………………………………………………………..……. …………………………………………………………………………………………………………………..……. •
Utför en ny faltning med det förskjutna impulssvaret h3( t ) = h1( t + 0.2 ) enligt ovan, men låt nu insignalen vara förskjuten 0.5 sek åt höger, dvs. x4 ( t ) = x1( t − 0.5) . Detta är Ex 4 i MS2P4_mod. Reflektera över utsignalens utseende, jämfört med utsignalerna ovan! …………………………………………………………………………………………………………………..……. …………………………………………………………………………………………………………………..……. 3 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 3. Fourierserieanalys Nedanstående stationärt periodiska signal x(t) består av en periodisk upprepning (med periodtid T0 = 8 sek.) av en fyrkantpuls med bredden τ = 2 sek. Denna signal är insignal till ett LTI-­‐system med frekvensfunktion H (ω ) = u (ω + ω LP ) − u (ω − ω LP ) , alt. (som funktion av f)
H ( f ) = H (ω )
ω =2π f
= u ( f + f LP ) − u ( f − f LP ) , enligt grafen nedan. Systemet utgör alltså ett idealt lågpassfilter, som släpper igenom allt frekvensinnehåll hos insignalen upp till och med (gräns-­‐)frekvensen f LP och tar helt bort allt frekvensinnehåll hos insignalen över f = f LP .
x(t)
1
-1
-8
1
1
8
t
H ( f )
− f LP
f LP
f
I laborationsserien kommer du att använda dig av ett antal kurs-­‐anpassade matlabfunktioner i en s.k. toolbox vid namn Kretslab. Innan någon kretslab-­‐funktion anropas, måste några nödvändiga globala variabler definieras och initieras. Gör detta genom att anropa funktionen startup. Gör alltid detta efter att du har startat Matlab och skrivit initcourse TSDT18! OBS: Du som gör lab-­‐uppgifterna på egen dator skriver inte initcourse TSDT18, utan du måste i stället ha mappen med alla kursspecifika matlabfiler som aktuell mapp, ”Current Folder”. •
Läs texten som returneras i kommandofönstret, t.ex. att du får en listning av alla kretslab-­‐funktioner genom att anropa funktionen kretslab. I Kretslab genereras periodiska signaler m.h.a. funktionen fouser. Skriv helpwin fouser för att se hur funktionen används. Notera speciellt att man i fouser skall ange den periodiska funktionens utseende i intervallet 0 till T sekunder! Funktionen remtone används för att idealt filtrera periodiska signaler. a) Besvara följande frågor − och förtydliga/motivera ditt svar: • Funktionen pwr mäter signalmedeleffekten hos en periodisk signal. Hur liten får filtrets bandbredd vara om man har som krav att minst 94% av signalmedeleffekten hos x(t) måste släppas igenom filtret? …………………………………………………………………………………………………………………..… • Vilka av signalens deltoner släpps då igenom? …………………………………………………………………………………………………………………..… 4 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 • Funktionerna signal och spect ritar en signal respektive dess spektrum. §
Redovisa en graf med filtrets utsignal. §
Redovisa även en graf innehållande insignalens amplitudspektrum och utsignalens amplitudspektrum i ett figurfönster (funktionsanrops-­‐
exempel: ”spect(D1,D2)” (se hjälptexten till spect). De funktionsanrop som du använder under labserien för att lösa de olika uppgif-­‐
terna skall du − i enlighet med instruktionerna på sidan 2 − spara i ett skript som är indelat i olika celler/sektioner. De olika cellerna/sektionerna exekveras separat i editorn för att redovisa motsvarande deluppgift. Här ovan lägger du alltså till, i ditt skript, en cell/sektion som genererar de efterfrågade graferna. Kom gärna ihåg tipset på sidan 2 om funktionen ohfig, som förtydligar graferna i redan ritade figurfönster. b) Undersök, för x(t) som insignal, hur utsignalen från det ideala lågpassfiltret ändras då filtrets gränsfrekvens successivt ökas (från någon lämpligt låg frekvens). Vilken inverkan har de högfrekventa signalkomponenterna, vid formandet av den ideala fyrkantvågen? Relatera gärna till Gibbs fenomen i någon del av din förklaring. Tips: Lämpligt är att även studera den del av x ( t ) som filtreras bort av lågpassfiltret, dvs. den motsvarande högpassfiltrerade signal-­‐ komponenten (remtone kan även högpassfiltrera…). Du får gärna (frivilligt) även redovisa en matlabfigur med två grafer − utsignalen från lågpassfiltret och utsignalen från högpassfiltret (funktionsanropsexempel: signal(D2,D3)). ……………………………………………………………………………………………………………………………..… ……………………………………………………………………………………………………………………………..… ……………………………………………………………………………………………………………………………..… ……………………………………………………………………………………………………………………………..… Anm: Notera att Kretslab i flera sammanhang inte kan representera högfrekventa förlopp speciellt noggrant. Nu är det lämpligt att redovisa lösta dina uppgifter i kapitel 1, 2 och 3 för assistenten! Se då till att redovisa enligt anvisningarna på sidan 2 i lab-­‐häftet. Under tiden du väntar på att det ska bli din grupps tur att redovisa, så fortsätter ni att lösa uppgifter i nästa kapitel! 5 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 4. Fouriertransformanalys Frekvensspektrumet för den stationära sinussignalen s (t ) = A ⋅ sin ( 2π ⋅ 200 ⋅ t ) består av två dirac-­‐impulser, vid f = −200 Hz och f = 200 Hz. En tidsbegränsad sinussignal s (t ) ⋅ p (t ) , där p (t ) = u (t ) − u (t − τ ) , har däremot andra frekvensegenskaper. I toolboxen Kretslab matar man in signaler och transformer med funktionen in ‒ till exempel s=in('3*sin(2*pi*200*t)','t');
p=in('us(t)-us(t-5)','t');
p=in('pulse(t,0,5)','t');
( s (t ) = 3sin ( 2π ⋅ 200 ⋅ t ))
( p ( t ) = u ( t ) − u ( t − 5) )
( p ( t ) = u ( t ) − u ( t − 5) )
Läs hjälptexterna för in, us och pulse (skriv t.ex. helpwin pulse) för att läsa mer om hur funktionerna används! Läs även hjälptexterna för kretslabfunktionerna foutr och ifoutr, som används för fouriertransformering respektive invers fouriertransformering. a) Mata in pulsen p (t ) = u (t ) − u (t − 5) , fouriertransformera den samt rita och redovisa dess amplitud-­‐ och fasspektrum P ( f ) resp. arg P ( f ) i intervallet 0 ≤ f ≤ 2 Hz. Spektrumen (som funktion av frekvens) ritas m.h.a. funktionen spect. Anm: Pulsens amplitudspektrum är uppenbarligen absolutbeloppet av en sin (π f )
⎛
⎞
sinc-­‐funktion ⎜ sinc N ( f ) =
= sinc (π f ) ⎟ , bestående av en πf
⎝
⎠
huvudlob med avklingande sidolober (i det ritade spektrumet ser vi bara den högra delen av den symmetriska sinc:en). Hur är sinc:ens toppvärde och dess nollgenomgångar (där P ( f ) = 0 ) relaterade till utseendet hos fyrkantpulsen p (t ) ? …………………………………………………………………………………………………………..…………………… ………………………………………………………………………………………………………………..……………… ⎛
⎛ 1 ⎞⎞
b) Mata in de två tidsbegränsade sinussignalerna s1 ( t ) = sin ( 2π ⋅ 200 ⋅ t ) ⎜ u (t ) − u ⎜ t − ⎟ ⎟ ⎝ 5 ⎠⎠
⎝
⎛
1 ⎞⎞
⎛
och s 2 ( t ) = sin ( 2π ⋅ 200 ⋅ t ) ⎜ u (t ) − u ⎜ t − ⎟ ⎟ i Matlab på följande sätt: ⎝ 40 ⎠ ⎠
⎝
s1=in('sin(2*pi*200*t)*pulse(t,0,1/5)','t');
s2=in('sin(2*pi*200*t)*pulse(t,0,1/40)','t'); De två sinuspulserna kan betraktas som produkten mellan den stationära sinusen och 1
1
en fyrkantpuls med två olika pulsbredder, τ = sek. respektive τ =
sek, vilket t.ex. 5
40
kan tolkas som amplitudmodulering av sinusen med två olika fyrkantpulser. 6 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 Du skall nu undersöka relationen mellan s1 ( t ) och dess amplitudspektrum S1 ( f ) , samt detsamma för s 2 ( t ) och S 2 ( f ) : • Amplitudspektrumen S1 ( f ) och S 2 ( f ) har en huvudlob med avklingande sidolober (samt, naturligtvis, motsvarande för negativa frekvenser). Förklara kortfattat varför så är fallet samt varför respektive huvudlob är centrerad vid en viss frekvens. ………………………………………………………………………………………………………………………….. ………………………………………………………………………………………………………………………….. ………………………………………………………………………………………………………………………….. •
De s.k. lobernas bredd och huvudlobens höjd skiljer åt sig för de två amplitud-­‐
spektrumen. Varför? Ange, i ditt svar, hur lobernas bredd samt huvudlobens höjd relateras analytiskt till tidsutseendet för motsvarande sinusformade signalpuls! ………………………………………………………………………………………………………………………...….. ………………………………………………………………………………………………………………………...….. ……………………………………………………………………………………………………………………...…….. …………………………………………………………………………………………………………………...……….. •
Redovisa, med hjälp av ditt redovisningsskript, en figur med amplitudspektrumen S1 ( f ) och S 2 ( f ) i lämpliga frekvensintervall för respektive graf. Förslag på generering av tydliga grafer, för spektum ritade i intervallen 175 ≤ f ≤ 225 Hz respektive 0 ≤ f ≤ 400 Hz: spect(S1,S2,400)
subplot(2,1,1), set(gca,'xlim',[175,225])
ohfig (I ditt skrip måste du naturligtvis även ha med definitionen av S1 och S2.)
•
En frivillig delfråga, som inte behöver redovisas: För både S1 ( f ) och S2 ( f ) gäller att varje sidolob för frekvenser lägre än huvudloben har högre amplitud än motsvarande sidolob för frekvenser högre än huvudloben. Detta syns tydligast i det utritade spektrumet S2 ( f ) . Varför är det så – är inte sinc-­‐funktionen symmetrisk? Rita gärna nedan en förtydligande skiss till din förklaring. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. 7 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 c) DTMF (Dual Tone Multiple-­‐Frequency) kallas det tonsignaleringssystem som används då man trycker på en tonvalstelefons knappsats. Tonsignalerna bildas genom addition av två cosinus-­‐/sinussignaler med olika frekvenser, enligt tabellen nedan. Frekvenser 1209 Hz 1336 Hz 1477 Hz 1633 Hz 697 Hz 1 2 3 A 770 Hz 4 5 6 B 852 Hz 7 8 9 C 941 Hz * 0 # D En DTMF-­‐puls som finns i tidsintervallet t1 ≤ t < t2 och som består av två sinuspulser med amplitud A och frekvenserna f1 och f 2 , kan alltså uttryckas på formen
(
)(
)
A⋅ sin ( 2π ⋅ f1 ⋅t ) + sin ( 2π ⋅ f 2 ⋅t ) u ( t − t1 ) − u ( t − t2 ) . Om t.ex. knappen ”9” trycks ned, sänds alltså ett sinus-­‐signalpar med frekvenserna 852 Hz resp. 1477 Hz. Bokstäverna A−D finns inte på en vanlig knappsats, men används i protokoll för t.ex. nummerpresentatörer. De olika frekvenserna är valda så att ingen av signalerna är överton till någon av de andra signalerna. I datafilen dtmf.mat (skriv load dtmf), finns en DTMF-­‐signal i form av Matlab-­‐
variabeln toner. Kretslab representerar tidskontinuerliga signaler i samplad form. DTMF-­‐signalen toner är samplad i 65536 tidpunkter (från ca. –5 till +5 sek.) med sampelfrekvensen fs = 6400 Hz. Anm: En tidskontinuerlig Kretslab-­‐signal representeras av en signalvektor av längd 65537, där de 65536 första vektorelementen innehåller sampelvärdena (position 32769 motsvarar t = 0) och element 65537 innehåller sampelperioden Ts = 1 f s . •
Lyssna gärna på DTMF-­‐signalen (rekommenderas, men är ej nödvändigt för att lösa uppgifterna nedan) m.h.a. Matlab-­‐funktionen soundsc genom funktionsanropet soundsc(toner,fs) − alternativt soundsc(toner(32768:65536),fs), för att slippa lyssna till fyra sekunders inledande tystnad. •
Undersök den givna DTMF-­‐signalens (toner) tidsutseende och dess amplitud-­‐
spektrum. Hur många knapptryckningar representerar signalen? Motivera! …………………………………………………………………………………………………………………...……….. •
Kan man direkt ur signalen eller dess amplitudspektrum visuellt bestämma den aktuella nummersekvensen? Om inte – förklara varför! …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. 8 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 d) I datafilen dtmf finns även en enda DTMF-­‐puls, i form av Matlabvariabeln ton. •
Vilken sifferknapp har tryckts ned och gett upphov till denna DTMF-­‐puls? Förklara hur ni resonerar! …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. •
Redovisa en graf med DTMF-­‐pulsen och en graf med dess amplitudspektrum. (Det är möjligt, men inte nödvändigt, att rita signalen och amplitudspektrumet i samma figurfönster. Du som vill kan göra detta genom att anropa funktionerna subplot, signalmod och spectmod på lämpligt sätt). •
Vilken amplitud A har sinussignalerna i DTMF-­‐pulsen ton? Referera, i din förklaring, till dina slutsatser/resultat i deluppgift 4b)! …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. …………………………………………………………………………………………………………………...……….. Nu är det lämpligt att redovisa lösta dina uppgifter i kapitel 4 för assistenten! (Kap 1− 3 ska redan vara redovisade.) Se då till att redovisa enligt anvisningarna på sidan 2 i lab-­‐häftet. Under tiden du väntar på att det ska bli din grupps tur att redovisa, så fortsätter ni att lösa uppgifter i nästa kapitel! 9 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 5. Tidskontinuerliga filter INLEDANDE OM BUTTERWORTHFILTER OCH CHEBYSHEVFILTER I Matlabsession 4, sid. 468–478, finns ett antal funktionsanrop som illustrerar/demonstrerar butterworthfilter och chebyshevfilter. a) Anropa matlabskriptet MS4 och stega dig igenom de exempel som visas i matlabsessionen. Har du gått igenom Matlabsession 4 och förstått vad som sker (JA/NEJ)? …………………. DESIGN AV FREKVENSSELEKTIVA TIDSKONTINUERLIGA FILTER
Du skall nedan undersöka hur tids-­‐ och frekvensegenskaperna hos LTI-­‐system beror på polernas och nollställenas lägen hos motsvarande systemfunktion H s . Ett lämpligt verktyg ()
för detta ändamål är kretslabfunktionen pzchange, med vilken man manuellt kan justera poler och nollställen för en laplacetransform och samtidigt se hur motsvarande amplitud och fas (-­‐karaktäristik eller -­‐spektrum) ändras. Observera att de laplacetransformer och z-­‐trans-­‐
former som manipuleras i pzchange antas vara enkelsidiga, samt att pzchange bara kan anropas/användas för en transform i taget! Uppgift: Läs och följ de tips och inledande instruktioner som är angivna nedan och överst på nästa sida, för att få en känsla och förståelse för hur verktyget fungerar. Inga moment behöver redovisas, detta gör du främst för att komma igång! • Skriv initcourse TSDT18 (gäller bara om du använder en ISY-­‐dator). • Skriv startup för att initiera Kretslab. • Skriv helpwin pzchange och läs funktionsbeskrivningen! • Skriv pzchange i kommandofönstret, för att starta verktyget. • ”Lek” först med de verktyg som finns. Placera ut poler och nollställen, flytta och ta bort, ändra multiplicitet, m.m. Testa även alla menyval, för att se hur de fungerar. • Tänk på att när man placerar ut en pol eller ett nollställe, så skapas den komplexkonjugerade motsvarigheten automatiskt. • Poler och nollställen kan bara placeras och flyttas till lägen inom den aktuella axelgraderingen. Om du vill skapa i eller flytta poler och nollställen till positioner längre ut i s-­‐planet, så måste du först ändra axelgraderingen. Den automatiskt genererade komplex-­‐konjugerade polen/nollstället kan dock hamna utanför axelgraderingen. Vid menyvalet ”Default plot” → ”PZ” så ändras axelgraderingen på lämpligt sätt, så att alla poler och nollställen syns. • Om du t.ex. vill placera en enkelpol på s = –2, så placerar du förslagsvis först polen ungefär där. Det skapas då antagligen ett komplexkonjugerat polpar, för det är svårt att exakt ”pricka in” den reella axeln. Utför sedan menyvalet ”Move” → ”To the real axis” (eller sätt polens imaginärdel till 0 i edit-­‐rutan ”Imaginary” under pol-­‐nollställediagram-­‐
met), så flyttas polen till reella axeln och det komplexkonjugerade polparet blir till en enkelpol. Justera sedan det exakta läget genom att ändra realdelen i edit-­‐rutan under pol-­‐nollställediagrammet. • Transformen/filtret kan amplitudnormeras automatiskt genom menyvalet ”Normalize” (upprepade sådana menyval togglar denna funktion ON/OFF). 10 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 •
•
Flytta smidigt aktuell pol eller nollställe genom menyvalet ”Move” → ”Move to new position”. Vid högerklick flyttas polen/nollstället och amplitud-­‐ och faskaraktäristiken uppdateras. Fortsätt att högerklicka tills du är nöjd med positionen. Vänsterklicka då på samma position för att slutligen placera polen/nollstället där! Viktigt: pzchange representerar den aktuella laplacetransformen (alt. z-­‐transformen) i den globala variabeln TRFM. Om du i kommandofönstret skriver global TRFM, så får du tillgång till transformen där och kan bl.a. spara den i en datafil (xxx.mat) – använd då funktionen save. Detta kommer bl.a. att vara nödvändigt i de deluppgifter där du skall redovisa systemfunktion (pol-­‐nollställediagram) och motsvarande amplitud-­‐ och faskaraktäristik. Två LTI-­‐system har impulssvaren h1 ( t ) = e−3t u ( t ) respektive h2 ( t ) = e−3t sin ( 2π 5t ) u ( t ) och ()
()
motsvarande systemfunktioner H1 s respektive H 2 s . Du skall nedan undersöka hur dessa två LTI-­‐systems tids-­‐ och frekvensegenskaper ändras då de motsvarande systemfunktionernas poler flyttas i s-­‐planet. b) OBS: Uppgiften fortsätter på nästa sida – läs först där, vid punkt III, hur de efterfrågade graferna sparas och redovisas! •
Ange/bestäm systemfunktionerna (hämtas t.ex. från tabell): ()
•
()
H1 s = ……………………….…… H 2 s = …………………………… Skapa, med hjälp av pzchange, systemfunktionen H1 s . Efter att ha gjort ()
()
()
nedanstående undersökning för H1 s , så undersöker du H 2 s på motsvarande sätt. Impulssvaret erhålls grafiskt genom menyvalet ”Signal plot” → ”Plot the corresponding signal” (i den här uppgiften är det förstås impulssvar som ritas, inte en signal… ). Zooma in i grafen för att bättre se hur impulssvaret ser ut! •
()
()
Hur ändrar sig de två systemens impulssvar h1 t och h2 t samt deras respektive ( )
( )
amplitudkaraktäristik H1 f och H 2 f (beskriv tydligt både impulssvarens och amplitudkaraktäristikernas beroende av motsvarande pollägen hos respektive systemfunktion) då ()
I. polen hos H1 s förskjuts längs reella axeln? ……………………………………………………. ………………………………………………………………………………………………………………………… ()
II. polerna hos H 2 s flyttas parallellt med reella axeln respektive parallellt med imaginära axeln? ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… 11 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 ()
()
III. Redovisa en representativ graf av h1 t och en representativ graf av h 2 t , samt de två motsvarande pzchange-­‐fönsterna med respektive pol-­‐nollställediagram och amplitud-­‐ och faskaraktäristik, genom att: 1. Först skriva global TRFM för att i kommandofönstret få tillgång till TRFM. ()
()
2. Spara de två systemfunktionerna H1 s och H 2 s , som du skapar med pzchange, genom att i kommandofönstret skriva H1=TRFM respektive H2=TRFM när du är ”färdig” med motsvarande systemfunktion och sedan spara variablerna i en datafil m.h.a. save uppgift5b.mat H1 H2 (eller annat lämpligt valt filnamn). 3. I en cell i ditt skript ladda in H1 och H2 m.h.a. load uppgift5b.mat, för att sedan anropa pzchange(H1) respektive pzchange(H2). c) Använd pzchange för att skapa ett kausalt system med en godtycklig systemfunktion H 3 ( s ) som har två poler och två nollställen. Flytta sedan polerna och nollställena till valfria positioner i s-­‐planet, både längs reella axeln och längs imaginära axeln. Systemet skall vara stabilt, så du kan inte placera polerna var som helst…. Det här är en uppgift där tanken är att ni skall få en känsla och förståelse för hur poler och nollställen samverkar för att ge önskad amplitudkaraktäristik. •
Placera polerna och nollställena i H 3 (s ) så att systemet utgör ett amplitudnormerat ( )
och stabilt högpassfilter med 3 dB-­‐gränsfrekvens 30 Hz och så att lim H 3 f = 0 . f →0
Ange polernas och nollställenas lägen, samt värdet på nivåkonstanten: …………………………………………………………………………………………………………………………… •
()
Redovisa systemfunktionen H 3 s för ditt system på motsvarande sätt som du ()
()
gjorde för H1 s och H 2 s ovan − dvs. genom global TRFM , H3=TRFM, save uppgift5c.mat. I ditt skript laddar du sedan in H3 i Matlab med anropet load uppgift5c.mat och anropar därefter pzchange(H3). Om assistenten, vid redovisningen, ber dig att visa hur väl ditt system uppfyller dämpningskraven, så gör du lämpligen enligt följande: 1. Ändra axelgraderingen för amplitudkaraktäristiken med hjälp av menyvalet ”Magnitude axis” → ”Decibels: -­‐100 to +20 dB” 2. Justera sedan den övre gränsen på frekvensaxeln till 100 Hz. Då visas 3 dB-­‐gränsfrekvenserna ovanför amplitudkaraktäristiken och man ser tydligt att filtret uppfyller dämpningskraven eller ej. ()
d) Ett annat system har en systemfunktion H 4 s , som också har två poler och två nollställen. Går det att placera denna systemfunktions poler och nollställen (och justera nivåkonstanten) så att man erhåller ett stabilt och amplitudnormerat ( )
lågpassfilter med 3 dB-­‐gränsfrekvens 30 Hz och så att lim H 4 f = 0 ? f →∞
Förklara/motivera! Hur ”bra” LP-­‐filter kan du få till? (Redovisa din H4(s) p.s.s.s H3(s)!) ……………………………………………………………………………………………………………………………….. ……………………………………………………………………………………………………………………………….. 12 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 Med hjälp av matlabfunktionerna butter och cheby1 kan man erhålla poler och nollställen till butterworthfilter och chebyshev I-­‐filter. Funktionerna finns i Signal Processing Toolbox, som ingår i den Matlab-­‐licens som ni använder. Läs i funktionernas hjälptexter för att se hur de anropas (glöm inte argumentet ’s’, som indikerar tidskontinuerligt filter). De returnerade variablerna B och A representerar koefficienterna i systemfunktionens täljarpolynom respektive nämnarpolynom. Man kan sedan studera dessa filter med hjälp av pzchange, enligt följande exempel: [B,A]=butter(10,2*pi*100,'low','s');
pzchange(in(B,A,'s')) e) Läs först hjälptexterna för butter & cheby1 för att se hur de används! Använd sedan butter, cheby1 och pzchange för att lösa följande problem: •
Generera ett amplitudnormerat butterworthfilter av lågpasstyp, ordning N=10 och med 3 dB-­‐gränsfrekvensen 100 Hz. Med hur många dB dämpar butterworthfiltret en sinusformad insignal x1 t med ()
frekvensen 150 Hz och med hur många dB dämpar filtret en sinusformad insignal x 2 t med frekvensen 400 Hz? (Tips: visa amplitudkaraktäristiken i dB-­‐skala ()
och justera frekvensaxeln till ett lämpligt intervall!) ………………………………………………………………………………………………………………………… •
Spara dina funktionsanrop (butter & pzchange) i ditt skript så du, vid behov under redovisningen, snabbt kan generera och redovisa pzchange-­‐fönstret med pol-­‐nollställediagram och amplitud-­‐ & faskaraktäristik. Om assistenten ber dig att visa systemfunktionen i pzchange-­‐fönstret, så bör du manuellt ändra så att amplitudkaraktäristiken visas i dB-­‐skala och ändra frekvensaxeln så att dämpningarna vid 150 Hz resp. 400 Hz framgår tydligt! •
Använd nu i stället ett motsvarande chebyshev I-­‐filter med samma 3 dB-­‐gräns-­‐
vinkelfrekvens som butterworthfiltret. Vilket är den lägsta ordning ett sådant filter måste ha för att dämpa den sinusformade signalen x1 t minst lika mycket som ()
butterworthfiltret? Med hur många dB dämpar detta chebyshevfilter den sinus-­‐
formade signalen x 2 t ? (Dämpningen i dB: H f
= −20 10 log H f ) ()
( ) dB
( )
Kommentera resultatet (bl.a. vilket av de två filtren ni tycker är bäst – och varför)! ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… •
Redovisa, för chebyshev-­‐filtret, samma som du redovisar för butterworthfiltret ovan, så man enkelt kan jämföra dessa båda filter. Spara alltså dina cheby1-­‐ och pzchange-­‐anrop i en separat cell/sektion i ditt skript. 13 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 f) I DTMF-signalen toner, som du undersökte i avsnitt 4 (fouriertransformanalys), kan det
vara av intresse att ta reda på vilka knapptryckningar som innehåller en sinussignal med en
viss frekvens. Det kan man göra genom att filtrera bort alla frekvenskomponenter utom just
den som är av intresse.
Sinussignal-pulser med frekvenserna 941 Hz och 1209 Hz ingår i en DTMF-puls då någon
av telefonknapparna ”*”, ”0”, ”#” eller ”D” respektive ”1”, ”4”, ”7” eller ”*” tryckts ned.
Eftersom det inte finns någon annan DTMF-puls med frekvens mellan 941 Hz och 1209 Hz,
kan vi filtrera fram dessa två frekvenskomponenter genom att låta DTMF-signalen toner
passera genom ett lämpligt bandpassfilter. •
Tag fram ett amplitudnormerat, kausalt och stabilt bandpassfilter av högst ordning 6, dvs. dess systemfunktion har högst 6 poler, genom att m.h.a. pzchange placera ut systemfunktionens poler och nollställen på lämpliga ställen i s-­‐planet. Justera deras lägen i s-­‐planet för hand, tills du erhåller önskad amplitudkaraktäristik.
Filterkrav: Frekvenskomponenterna vid 941 Hz och 1209 Hz får inte dämpas med mer än 3 dB och dämpningen vid 900 Hz och 1250 Hz skall vara minst 6 dB.
Anm. 1: Tänk först igenom ungefär var poler och nollställen bör placeras. Uppgiften blir onödigt tidskrävande om du börjar med att sporadiskt placera ut poler & nollställen. What would Butterworth do? Anm. 2: Det är OK med rippel i passbandet. Anm. 3: 900 = 941 – 41, 1250 = 1209 + 41 Anm. 4: Det här är en uppgift där tanken är att du skall få en känsla och förståelse för hur poler och nollställen samverkar för att ge önskad amplitudkaraktäristik.
•
Förklara/motivera (lagom kort men tydligt!) hur du resonerar, vid placeringen av systemfunktionens nollställen och poler för att erhålla önskat frekvensuppförande! Relatera lämpligen även till ditt resonemang i deluppgift 5b på sid. 11. Ange även polernas och nollställenas lägen (menyval ”Print/Type”) samt nivåkonstanten.
………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… ………………………………………………………………………………………………………………………… •
Spara och redovisa ditt bandpassfilter på samma sätt som du gjorde med systemfunktionerna i deluppgifterna 5b)−5d)! När assistenten ber dig redovisa bandpassfiltret och du − genom lämpliga anrop i en separat cell/sektion i ditt skript − öppnar pzchange för att visa bandpassfiltrets systemfunktion, så ska du sedan: 1. med hjälp av menyvalet ”Default plot” → ”PZ” ställa in en lämplig axel-­‐gradering på pol-­‐nollställediagrammet 2. ändra axelgraderingarna för amplitudkaraktäristiken, så den visas mellan 900 och 1250 Hz resp. mellan ‒10 och +1 dB. Ändra frekvensaxeln först, för amplitudgränserna ändras automatiskt till standardvärden när man ändrar frekvensaxelgraderingen! 14 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 •
Använd, enligt beskrivningen på föregående sida, ert filter för att ta reda på vilka av DTMF-­‐pulserna som representerar någon/några av knapptryckningarna ”0”, ”1”, ”4”, ”7”, ”*”, ”#” eller ”D”.
I Kretslab beräknas utsignalen, antingen i tidsdomänen eller i transformdomänen, med hjälp av funktionen output. Här behöver du använda funktionsanrop i stil med Y=output(X,TRFM); där X och Y är insignalens och utsignalens respektive fouriertransformer och TRFM är systemfunktionen (dvs. en laplacetransform) ‒ se hjälptexten (helpwin output). Fouriertransformera och inversfourier-­‐
transformera med foutr och ifoutr.
Precis som tidigare ritar du signaler/tidsfunktioner och frekvensspektrum/-­‐
karaktäristik med signal respektive spect.
I. Vilka av knapptryckningarna i sekvensen innehåller någon/några av knapparna ”0”, ”1”, ”4”, ”7”, ”*”, ”#” eller ”D”?
Förklara hur du resonerar samt hur du tolkar utsignalens utseende, dvs. vilken information som grafen ger dig!
………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
…………………………………………………………………………………………………………………………
………………………………………………………………………………………………………………………… II. Är det någon/några av dessa knapptryckningar som du med säkerhet kan säga är nedtryckt på en viss plats i sekvensen? Vilken knapp och vilken plats i så fall? Förklara hur du resonerar!
………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
När du löst deluppgift IV är det lämpligt att redovisa lösta dina uppgifter i kapitel 5 för assistenten! (Kap 1− 4 ska redan vara redovisade.) Se då till att redovisa enligt anvisningarna på sidan 2 i lab-­‐häftet. Under tiden du väntar på att det ska bli din grupps tur att redovisa, så fortsätter ni att lösa uppgifter i nästa kapitel! III. Spara, i en separat cell i ditt skript, de funktionsanrop som beräknar bandpassfiltrets utsignal. Skriptet skall även rita utsignalen och dess amplitudspektrum, vilket ska redovisas! Du som önskar visa flera grafer i samma figurfönster (färre grafer att hålla reda på) kan t.ex. göra enligt följande principiella funktionsanrop:
subplot(3,1,1), signalmod(y,4); axis([-0.1 4 -5 5])
title('Filtrets utsignal - Anna Larsson och Johan Eriksson')
subplot(3,1,2); spectmod(H,'A',1700); axis([600 1700 0 1.1])
title('Bandpassfiltrets amplitudkaraktäristik')
subplot(3,1,3), spectmod(Y,'A'); set(gca,'xlim',[600 1700]);
set(gca,'xtick',[697 770 852 941 1209 1336 1477 1633]);
title('Utsignalens amplitudspektrum')
IV. Vilka egenskaper/parametrar hos bandpassfiltret som kan förbättras/förändras om man vill uppnå ett ännu tydligare/bättre filtreringsresultat? ………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………
15 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 6. Tidsdomänanalys av tidsdiskreta signaler & system FÖRBEREDANDE UPPGIFT I Matlabsession 3, sid. 320–325, finns ett antal funktionsanrop som illustrerar/demonstrerar hur man m.h.a. matlabfunktionerna filter och conv kan lösa differensekvationer respektive utföra tidsdiskret faltning. a) Anropa matlabskriptet MS3 och stega dig igenom de exempel som visas i matlabsessionen. Följ samtidigt med i kursbokstexten, sid. 320‒325 . Har du gått igenom Matlabsession 3 och förstått vad som sker (JA/NEJ)? …………………. LÖSNING AV DIFFERENSEKVATION I matlabskriptet CE3_5.m, som även visas i ”Computer Example C3.5”, sid. 285, demonstreras lösning av den systembeskrivande differensekvationen i Exempel 3.12, sid. 284‒285, för en given insignal ( x ⎡⎣ n ⎤⎦ = δ ⎡⎣ n ⎤⎦ i exemplet) med hjälp av matlabfunktionen filter. b) Anropa skriptet och studera resultatet. c) Spara en egen kopia av skriptet CE3_5 i din egen arbetsmapp (skriv edit CE3_5 och spara skriptet lokalt) och ändra sedan i skriptet för att anpassa till följande fall: •
Lös, genom en lämplig justering av CE3_5.m, uppgifterna E3.14(a), (b) och (d) på sidan 286, dvs. bestäm impulssvaren h a ⎡⎣ n ⎤⎦ , hb ⎡⎣ n ⎤⎦ och hd ⎡⎣ n ⎤⎦ , för vart och ett av de tre respektive systemen. Spara samtidigt respektive impulssvar (variabeln h) för vart och ett av de tre olika systemen, t.ex. som variablerna ha, hb resp. hd. Lägg också till, i en separat cell i ditt redovisningsskript, de få funktionsanrop som återskapar de tre impulssvaren grafiskt. Visa dessa grafer under redovisningen! •
Vilken stabilitetsegenskap har vart och ett av de tre systemen i (a), (b) resp. (d)? Motivera! (a): .……………………………………………………………………………………………………………………… (b): ……………………………………………………………………………………………………………………… (d): ……………………………………………………………………………………………………………………… TIDSDISKRET FALTNING I matlabskriptet falta.m demonstreras tidsdiskret faltning med hjälp av matlabfunktionen (
)
conv. För insignalen x ⎡⎣ n ⎤⎦ = 2 u ⎡⎣ n − 5⎤⎦ − u ⎡⎣ n − 20 ⎤⎦ beräknar och ritar skriptet utsignalen y ⎡⎣ n ⎤⎦ från ett tidsdiskret LTI-­‐system med impulssvar h ⎡⎣ n ⎤⎦ = u ⎡⎣ n − 2 ⎤⎦ − u ⎡⎣ n − 10 ⎤⎦ . d) Anropa skriptet falta och betrakta de utritade funktionerna. Varför blir utsignalen y ⎡⎣ n ⎤⎦ nollskild från och med n = 7? …………………………………………………………………………………………………………………………………. ……………………………………………………………………………………………………………………………… 16 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 e) Nu skall du göra om faltningen med andra insignaler och impulssvar: Spara först en egen kopia av skriptet falta i din arbetsmapp och ändra sedan på lämpligt sätt i skriptet för att anpassa till nedanstående fall: •
Låt nu insignalen vara x2 ⎡⎣ n ⎤⎦ = x ⎡⎣ n − 10 ⎤⎦ , där x ⎡⎣ n ⎤⎦ är den pulsformade signalen ovan (ändra i falta.m lämpligen bara det ena stem-­‐anropet samt conv-­‐anropet) och kör skriptet igen! Kopiera även matlab-­‐koden i den justerade falta -­‐funktionen och spara i en separat cell i ditt eget skript, så du kan generera samma grafer vid redovisningen. Vilken systemegenskap demonstreras speciellt här? Förklara! ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… •
(
)
Betrakta nu ett nytt system, med impulssvaret h ⎡⎣ n ⎤⎦ = 1.5( 0.95) u ⎡⎣ n ⎤⎦ − u ⎡⎣ n − 11⎤⎦ . n
Bestäm, med hjälp av falta-­‐skriptet, systemets utsignal y ⎡⎣ n ⎤⎦ för insignalen ⎛π ⎞
x ⎡⎣ n ⎤⎦ = cos ⎜ n⎟ u ⎡⎣ n ⎤⎦ . Spara på nytt matlab-­‐koden i en separat cell i ditt skript, så du ⎝6 ⎠
kan generera även dessa två grafer vid redovisningen. Var i den utritade grafen hittar du (syns) utsignalens transienta komponent och var hittar du dess stationära komponent? Förklara! ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… 7. Tidsdiskreta frekvensselektiva filter Systemfunktionen H1 ⎡⎣ z ⎤⎦ till ett amplitudnormerat kausalt tidsdiskret filter (LTI-­‐system) har två nollställen i z = ± j och tre poler i z = 0,9e ± jπ 4 och z = −0,9 . Denna systemfunktion skall nedan undersökas med hjälp av pzchange. Några pzchange-­‐tips: • Anropa som pzchange('z'), så funktionen vet att det är en z-­‐transform som skall hanteras. (pzchange ritar alltid enhetscirkeln i z-­‐planet – om du inte ser den, så har du anropat pzchange på fel sätt, för då antas att det är en laplacetransform som hanteras). • En sparad z-­‐transform, i form av variabeln H, öppnas i pzchange med pzchange(H). • Ändra gärna Coordinates till Polar i motsvarande menyval, så att aktuell pol/nollställe under pol-­‐nollställediagrammet skrivs i polära koordinater. Då blir det lättare att placera och flytta poler och nollställen i z-­‐planet ‒ de specificeras ju oftast på polär form. • Notera att pzchange alltid låter konvergensområdet, relativt varje pol z k = rk ⋅ e
jϕ k
i z-­‐planet, vara z > rk , dvs. om det är en systemfunktion som undersöks så är motsvarande LTI-­‐system kausalt. 17 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 a) Initiera, som vanligt, Kretslab, genom att anropa startup. Använd sedan pzchange för att skapa systemfunktionen H1 ⎡⎣ z ⎤⎦ . Välj ”Spectrum derived from pole and zero vectors” i menyn ”Spectrum vectors” och ändra reglaget för att se hur amplitud-­‐ och faskaraktäristiken beror på pol-­‐ och nollställevektorerna. Kompletterande information/kunskap kan även erhållas från 3D-­‐grafen av H1 ⎡⎣ z ⎤⎦ på och innanför enhetscirkeln. Den grafen erhålls via menyvalet ”3D-­‐plot”. Vrid och betrakta grafen! •
Beskriv tydligt (och någorlunda kortfattat) hur amplitud-­‐ och faskaraktäristikens utseende relateras till polernas och nollställenas lägen hos H1 ⎡⎣ z ⎤⎦ : ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… •
Genom att i kommandofönstret skriva global TRFM, så får du tillgång till den undersökta z-­‐transformen, i form av den globala variabeln TRFM. Namnge den t.ex. som H1z och spara den till en datafil. Lägg till en separat cell i ditt redovisningsskript, där du vid redovisningen kan hämta och anropa/öppna pzchange med H1z. Två olika tidsdiskreta LTI-­‐system HA och HB utgör båda amplitudnormerade, tidsdiskreta, kausala och stabila LP-­‐filter med normerad 3 dB-­‐gränsfrekvens θ0 ≈ 0,15 (dvs. de har samma normerade 3 dB-­‐gränsvinkelfrekvens Ω0 ≈ 0.3π rad). b) Generera, med pzchange, LTI-­‐systemens respektive systemfunktioner H A [ z ] och H B [ z ] genom att placera ut poler och nollställen (så få som möjligt) på lämpliga ställen i z-­‐planet: • H A [ z ] får ha godtyckligt placerade poler. • H B [ z ] måste ha alla sina poler placerade i origo. Överst på nästa sida skall du redovisa erhållna systemfunktioner H A [ z ] och H B [ z ] ! •
Eftersom pzchange bara kan hantera en z-­‐transform, så måste du generera och undersöka ett system i taget. Efter att ha du i kommandofönstret skrivit global TRFM, så sparar du lämpligen din slutliga H A [ z ] som HA=TRFM , innan du rensar alla poler och nollställen (menyval Delete → Delete all poles and zeros) och börjar skapa H B [ z ] . Spara transformerna (förslagsvis namngivna HA resp. HB) i en datafil och redovisa dem enligt instruktionerna på nästa sida. 18 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 •
Redovisa erhållna systemfunktioner H A [ z ] och H B [ z ] . Ange z-­‐transformernas nämnar-­‐ och täljarpolynom på faktoriserad form och med poler och nollställen skrivna på polär form, dvs. som t.ex. H [ z ] =
(
0.3 ( z + 0.2 )
z − 0.8e j1.22
)(
z − 0.8e − j1.22
)
: H A [ z ] = …………………………….…….……..…. H B [ z ] = ……………………..….………..………. Motivera kort, men tydligt, placeringen av alla poler och nollställen! ……………………………………………………………………………………………………………..…….….……... …………………………………………………………………………………………………………….….….….……... ………………………………………………………………………………………………………………..…………... •
För att enkelt kunna redovisa och jämföra dina två systemfunktioner och mot-­‐
svarande amplitudkarakteristik skall du skriva en cell i ditt redovisningsskript som med load hämtar dina sparade systemfunktioner (dvs. variablerna HA resp. HB) och sedan visar dem i var sitt pzchange-­‐fönster: load xxxx % xxxx=din datafil
pzchange(HA), pause, pzchange(HB) w Vid det första pzchange-­‐anropet visas HA och Matlab pausar. w Utför då, i figurfönstret, menyvalet Magnitude axis → Decibels: -­‐100 to +20 dB w Tryck sedan på valfri tangent för att visa HB i ett annat pzchange-­‐fönster och gör sedan samma menyval i det fönstret. •
Jämför dina två LP-­‐filter med varandra, i termer av filterordning, dämpnings-­‐
egenskaper, m.m. Redovisa kortfattat dina slutsatser och eventuella för-­‐ och nackdelar med de olika filterna. ………………………………………………………………………………………………………………...…….….… ……………………………………………………………………………………………………………..………..….… ………………………………………………………………………………………………………………..………...… ………………………………………………………………………………………………………………..………...… •
Vilket av de två filtren är ett FIR-­‐filter och vilket är ett IIR-­‐filter? Motivera och förklara skillnaden! …………………………………………………………………………………………………………………..…….. …………………………………………………………………………………………………………………………. …………………………………………………………………………………………………………………………. 19 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 TIDSDISKRETA BUTTERWORTH-­‐ OCH CHEBYSHEV-­‐FILTER Matlabfunktionerna butter och cheby1, som du använde för att erhålla tidskontinuerliga butterworthfilter och chebyshev I-­‐filter, kan även användas för att erhålla motsvarande tidsdiskreta filter. Läs återigen i funktionernas hjälptexter för att se hur de anropas. Tidsdiskret filtersyntes påminner om det tidskontinuerliga fallet, men nu utelämnas argumentet ’s’. Exempel (notera även att man anger dubbla normerade gränsfrekvensen): [B,A]=butter(3,2*0.15, 'low');
H=in(B,A, 'z');
pzchange(H) c) •
Vilken typ av filter genereras med ovanstående matlab-­‐anrop? ……………………………………………………………………………………………………………………………… •
Använd butter och cheby1 för att ta fram två st. 5:e ordningens amplitud-­‐
normerade lågpassfilter med normerad 3 dB-­‐gränsfrekvens θ0 ≈ 0,15 ‒ det ena filtret skall vara av butterworthtyp och det andra av chebyshev I-­‐typ. Undersök, med hjälp av pzchange de båda filtrens egenskaper, speciellt med avseende på poler, nollställen, frekvensegenskaper och impulssvar (impulssvaret ritas m.h.a. menyvalet ”Signal plot”). Anm: Vid behov kan du även endast rita pol-­‐nollställediagram med pz och rita frekvenskarakteristik med spect eller logspect . Ex: pz(H), spect(H1,H2), logspect(H1,H2) Jämför och kommentera kortfattat de båda filtrens allmänna likheter och skillnader. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… Anm: På grund av beräknings-­‐onoggrannhet avrundas inte alltid multipel-­‐ nollställen till samma position, vilket innebär att det i pol-­‐nollställe-­‐ diagrammet i så fall bara ser ut att vara ett enkelnollställe. Zooma då gärna in och bekräfta att det finns flera nollställen där! Under pol-­‐nollställediagrammet ser du det totala antalet poler och nollställen.) •
Spara och redovisa dina två systemfunktioner med hjälp av ditt skript (välj själv lämpliga namn på dem), på samma sätt som du redovisade H A [ z ] och H B [ z ] på föregående sida! 20 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 •
Använd butter, cheby1 och pzchange för att ta fram två 5:e ordningens amplitudnormerade högpassfilter ‒ det ena av butterworthtyp och det andra av chebyshev I-­‐typ, med normerad 3 dB-­‐gränsfrekvens θ 0 ≈ 0,15 . Jämför och kommentera kortfattat, på samma sätt som du gjorde för lågpassfiltren på förra sidan, de båda filtrens allmänna likheter och skillnader. ……………………………………………………………………………………………………………………………… ……………………………………………………………………………………………………………………………… Anm: Här kan det återigen bli samma konsekvens av beräknings-­‐onoggrannheten som för lågpassfiltren − ett multipelnollställe visas som ett enkelnollställe. Zooma i så fall in kolla/bekräfta! •
Spara och redovisa dina två systemfunktioner med hjälp av ditt skript, på samma sätt som du redovisade lågpassfiltren på föregående sida! I lab-­‐häftets avsnitt 4c), sid. 8, undersökte du frekvensegenskaperna för signalen toner, som består av en sekvens med DTMF-­‐pulser. I avsnitt 5f), sid. 14, filtrerade du sedan denna signal med ett tidskontinuerligt bandpassfilter, som du själv hade designat. Som du redan vet (se sid. 8), så utgör toner egentligen en samplad version (65536 sampelvärden, sampel-­‐
frekvens f s = 6400 Hz) av en motsvarande tidskontinuerlig signal, för Matlab kan ju inte lagra tidskontinuerliga signaler. De 65536 första elementen i Matlab-­‐vektorn toner innehåller sampelvärdena (där position 32769 motsvarar t = 0) och toner(65537)innehåller sampel-­‐
perioden T = 1 f s . d) Genom att lägga till tre godtyckliga element till toner erhålls en vektor av längd 65540, vilket i Kretslab tolkas som en tidsdiskret signal. (Kretslab-­‐intresserade studenter kan läsa om variabeltyper här: help vartype). •
Läs in datafilen dtmf.mat, och jämför den tidskontinuerliga signalen toner med motsvarande tidsdiskreta signal, kalla den Dtoner, genom följande funktionsanrop: load dtmf, T=toner(65537); Dtoner=[toner 0 0 0]; N=30;
subplot(2,1,1), signalmod(toner,N*T);
subplot(2,1,2), signalmod(Dtoner,N) •
Undersök och jämför den tidskontinuerliga signalens och motsvarande samplade signals amplitudspektrum, efter att ha utfört följande funktionsanrop: TONER=foutr(toner); DTONER=foutr(Dtoner);
spect(TONER,DTONER);
subplot(2,1,1), axis([0 3200 0 2]) Var och en av frekvenskomponenterna i TONER, med 7 olika frekvenser, har motsvarande frekvenskomponenter i DTONER, vid olika normerade frekvenser samt med andra amplituder. Ange det allmänna sambandet mellan frekvenser och normerade frekvenser samt mellan amplituderna hos TONER och DTONER! …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… 21 Lasse Alfredsson 2014 Laborationsuppgifter i TSDT18/84 Signaler & System, ver. 1.4 •
I stället för att filtrera toner med ett tidskontinuerligt bandpassfilter, så kan man filtrera Dtoner genom ett motsvarande tidsdiskret bandpassfilter. Som en sista laborationsuppgift skall du ta fram ett sådant tidsdiskret BP-­‐filter. Det krav vi har på det tidskontinuerliga amplitudnormerade bandpassfiltret är att frekvenskomponenterna vid fp1 = 941 Hz och fp2 = 1209 Hz inte får dämpas !
!
med mer än 3 dB och dämpningen vid fs1 = 900 Hz och fs2 = 1250 Hz skall vara !
!
minst 6 dB. Samma dämpningskrav gäller därför för det tidsdiskreta bandpassfiltret vid motsvarande normerade frekvenser θ p1 , θ p2 , θ s1 respektive θ s2 . !
!
Ange värdet på dessa fyra normerade frekvenser: …………………………………………………………………………………………………………………………… •
När du är färdig med alla lab-­‐
uppgifter och ska redovisa, så förväntas du att bara redovisa lösta uppgifter i kapitel 6−7 för assisten-­‐
ten! (Kap 1− 5 ska redan vara redovisade.) Se då till att redovisa enligt anvis-­‐
ningarna på sidan 2 i lab-­‐häftet. Vid konstruktionen av det tidskontinuerliga filtret fick ordningen, dvs. antalet poler, vara högst 6. Om man använder ett chebyshev I-­‐filter, så är det möjligt att uppfylla dämpningskraven med ett filter med endast 4 poler. I. Använd cheby1 för att ta fram ett tidskontinuerligt chebyshev I-­‐bandpassfilter av ordning 4, med 3 dB-­‐gränsfrekvenserna fp1 = 941 Hz och fp2 = 1209 Hz. !
!
II. Använd sedan, på nytt, cheby1 för att ta fram ett tidsdiskret chebyshev I-­‐band-­‐
passfilter av ordning 4, med de motsvarande normerade 3 dB-­‐gränsfrekvenserna θ och θ p2 . ! p1
!
Undersök systemens respektive pol-­‐nollställediagram och amplitudkarakteristik med hjälp av pzchange. Jämför även de två filtrens amplitudkarakteristik i dB-­‐
skala, m.h.a. logspect (logspect(H1,H2)). Tänk då på att det normerade frekvensintervallet 0 till 0.5 motsvarar frekvensintervallet 0 till f s 2 = 3200 Hz. !
Hur väl filtrerar det tidsdiskreta BP-­‐filtret den tidsdiskreta signalen Dtoner (i passbandet respektive de två spärrbanden), jämfört med hur det tidskontinuerliga BP-­‐filtret filtrerar den tidskontinuerliga signalen toner? …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… •
Redovisning: Spara dina två systemfunktioner i en datafil och lägg i ditt redovis-­‐
ningsskript till en cell som med pz ritar de två respektive pol-­‐nollställediagrammen och med logspect ritar filtrens respektive amplitudkarakteristik i dB-­‐skala. •
Hur bra bandpassfiltrerar det tidskontinuerliga filtret respektive det tidsdiskreta filtret ovan om insignalen toner skulle innehålla en sinuskomponent på 5400 Hz? …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… …………………………………………………………………………………………………………………………… 22 Lasse Alfredsson 2014