Signaler och system II SMS021 Laboration 3 Anders Grennberg May 13, 2002 1 Inledning Denna laboration bestar av tva delar: Signalanpassade lter. Uppskattning av spektrum och spektraltathetet Avsikten med denna laboration ar genom att simulera processer i MATLAB och forsoka ge en mer konkret bild av sadana begrepp och hur de anvands. Som hjalp nns kortare teoriavsnitt som kompletterar laroboken pa de punkter som berors i laborationen. Begreppen som tas upp i laborationen ar centrala i kursen och kommer ofta pa tentamen. Det rekommenderas starkt att tanka igenom och losa uppgifterna i laborationen. Laborationen redovisas muntligt gruppvis efter anmalan hos Anders Grennberg. En anteckningslista med tillgangliga tider for presentation under perioden v 21, veckan fore tentamensperioden, kommer att nnas tillganglig. 1.1 Uppgift: Signalanpassat lter Vi denierar pulsen p som en 8 tal lang foljd av 1: Bilda sedan en signal s som bestar av p foljd av 12 nollor. Bilda en brusfoljd n [k] som ar 20 sampel lang med vantevarde 0 och varians 1. Bilda x = s + n: Sand den genom det optimala signalanpassade ltret h som ar anpassat for att bast leta efter pulsen p och som alltsa har langd 8, och plotta resultatet. Anvand MATLAB-funktionen lter. y=lter(h,1,x); Enligt teorin bor utsignalen y ha storst amplitud i punkten k = 8:atminstone da insignalen saknar brusdel. Plotta darfor utsignalen da bara signalen s sands in i ltret. Vid k = 16 nns ingen puls sa darfor bor y[16] vara noll. Signalen s forestaller nu en signal som bestar av pulsen p foljd av ingen puls. Upprepa nu observationer av utsignalens varden i 8 respektive 16 i 100 upprepade forsok med nya realiseringar av bruset for nagra olika varianser, t ex 0:12 ; 1; 22: Gor histogram over vardena och jamfor med teorin.. Bestam beslutsgrans B sa att sannolikheten att missa, dvs att inte upptacka att signalen 1 nns med blir hogst 5%. Hur stor blir da risken att felaktigt tro att pulsen nns med? Stammer det med simuleringen? Ett forsok att gora simuleringen i MATLAB kan se ut ungefar som nedan: for k=1:100, y=lter(h,1,s+sigma*randn(1,size(s)));z(k,:)=y([8 16]); end, hist(z) Valj ett lamligt kompromissvarde for troskeln B Bilda nu en lang vektor som bestar av pulsen p upprepad 50 ganger efter varann och addera brus med variansen 2 i en lika lang vektor, (400 tal) och ltrera med det signalanpassade ltret. Observera utsignalens varde i punkterna 8; 16; 24; :::400: Avgor hur manga av dessa varden som ligger over troskelvardet. Upprepa detta for nagra olika varden pa 2 och sammanfatta i en tabell och ett diagram. Tabellen ska uppta SNR, teoretisk felsannolikhet och observerad felprocent. Hur "starkt" kan man gora bruset utan att besluten blir "alldeles fel"? Bilda nu en fojd av "information", dvs en foljd av 25 ettor och nollor, i (n) ; och sedan signalen av langd 200 z [k] = 24 X n=0 i [n] p [k 8n] Denna signal kan enkelt byggas upp med funktionen kron: z=kron(i,p); Till z adderas som tidigare en lika lang slumptalsfoljd med varians 2 varefter summan ltreras som tidigare och utsignalens amplitud noteras i punkterna k = 8; 16; :::; 200: Anvand troskling for att avgora vilket varde talen i [n] troligen hade och jamfor med de riktiga vardena. Hur stor blev felprocenten? Upprepa for nagra olika brusstyrkor (dvs SNR) och sammanfatta i en tabell och gur. Av "misstag" tappar ni synkronisering och observerar i stallet i punkterna 10, 18, 24,... Hur gar det da? Skullle man kunna hitta pa nagon metod att hitta ratt synkronisering genom denna ltrering? Fundera over begrepp som akf kan vara anvandbar. Pa kursens hemsida nns en l med data som bestar av en signal av typen z ovan som alltsa konstruerats med pulsen p. Ett meddelande i siror (oktala) har kodats med tre bitar som gett en foljd av typen i ovan varefter brus adderats. Vilket ar meddelandet? 1.1.1 Frivillig extra uppgift Valj tva ortogonala pulser p1 och p2 av langd 8, t ex den tidigare plus-minus- foljden och en foljd av fyra ettor med fyra nollor efter sig. Valj en foljd talpar (i1 ; i2 ) av typen (1; 1) och bilda summa av typen x [k ] = K X n=0 i1 [n] p1 [k 8n] + i2 [n] p2 [k 8n] : Liksom tidigare kan konstruktionen latt utforas mha funktionen kron. Till denna adderas som tidigare en brusvektor. Skapa tva lter anpassade till p1 respektive p2 och sand signalen genom dem. Utsignalerna fran de tva signalanpassade ltren observeras i punkterna 8; 16; osv. De talpar man far plottas i ett koordinatsystem och det bor visa sig att de tenderar att klumpa sig kring fyra olika punkter. Ur detta kan man besluta sig for vilka vardena pa de "utsanda" talparen (i1 ; i2) har varit. Jamfor med facit och se hur stor felprocent man fatt vid olika styrka pa brussignalen. 2 1.2 Uppgifter p a spektralskattning 1. Generera "vitt gaussiskt brus" i en vektor med 800 tal. Generera slumptalsfoljder genom att skicka detta brus genom AR(1) och AR(2) lter som i laboration 2. Studera spektraltatheten med nagra metoder for dessa tre fall: Bilda det "raa" periodogrammet och plotta det for nagra olika realiseringar for vart och.ett av det tre fallen ovan.(Vitt brus respektive tva fall av ltrerat brus) Vardera genom att jamfora resultaten. Vad kan sagas om kvaliteten pa skattningarna? 2. Anvand Welchs metod med hjalp av funktionen psd for att gora samma skattning men med kortare delfojder, t x 128, 256 och 512. Vad blir resultatet nu? 3. Ett vanligt problem ar att forsoka upptacka och uppskatta amplituden av periodiska signaler i additivt brus. Studera funktionen s(t) = cos(!0 t) som samplas i N punkter med tidssteg T . For att samplingssatsen skall galla maste sampelfrekvensen 1=T > 2(!0 =2); dvs T < =!0 : Den tid man observerar och samplar blir alltsa NT: Minsta frekvens man kan fa blir 2=NT och frekvensen !0 rad/s motsvaras i FFT-metoden av ett tal med index k0 sa att k0 2=NT = !0 : Hogsta frekvens blir N=2 2=NT = =T: Addera vitt brus till s(t) = cos(!0 t) dar t = kT for att fa talfoljden x [k] = s (k!0 T ) + Bn [k] : Har ar B en parameter som bestammer signal/brus-forhallandet i x [k] : Valj parametrarna !0; T och NT sa att det k som motsvarar !0 blir ca 20-30% av N: Plotta aven en del av signalen x[k]: t ex for 1 k N=10: (a) Lat X (k) vara den stokastiska processen X (k) = A cos(!0 T k + ) +N (k) dar N (k) ar vitt gaussiskt brus med spektraltathet 0:5 och dar ar likformigt fordelad pa [0; 2] och oberoende av N (k): A ar en konstant. Bestam teoretiskt processens spektraltathet S (!): (b) Forsok uppskatta om det nns en sinuskomponent i den simulerade signalen x[k] och i sa fall dess amplitud. Gor detta for nagra olika B -varden. t ex 10; 1; 0:1 (c) Byt funktionen s(t) till funktionen cos(!0 t 1) och gor om skattningen med samma sampelpunkter. Vad blev det for skillnad i spektraltatheten och varfor? (d) Plotta log(absolutbeloppet av DFT) av talfoljden for nagra olika varden pa B och jamfor med plottar av motsvarande x [k] : Vad kan sagas om uppskattningen av frekvensinneha llet i den brusiga signalen? (e) Byt signalen s till en summa av tva cosinusfunktioner av olika frekvens, t ex cos(0:5t) + 2 cos(2t). Kan man nna frekvens och amplitud nu? (f) Anvand psd for samma foljder och jamfor resultaten med det foregaende. Slutsatser? Bakgrundsmaterial for ovanstaende uppgifter nns i de foljande avsnitten. 3 2 Signalanpassade lter, teori Vi ska har beskriva en metod att nna en kand signal inbaddad i brus. Laroboken beskriver detta for det fall att signalerna ar tidskontinuerliga. For att kunna simulera i MATLAB ges darfor motsvarande teori for tidsdiskreta signaler. Dessa kan tankas ha uppstatt genom sampling av tidskontinuerliga signaler. I denna laboration antar vi att sampelsteget ar 1 tidsenhet vilket gor att den diskreta frekvensen kommer att ligga mellan -0.5 och 0.5 (t ex Hz), eller i vinkelfrekvens, mellan - och : Vi gor alltsa foljande antagande: Vi mater en signal x[k] som ar summan av ett vitt tidsdiskret brus n[k]och en signal p[k]: Bruset kan antas vara en realisering av en stokastisk process N [k] medan signalen p[k] ar en kand signalform som vi antar har andlig langd M + 1: Vi har observerat signalen x[k] for 0 k B . Vi vet inte om den kanda signalen nns i vara observationer och vill darfor avgora pa nagot satt om den fanns med. Metoden gar ut pa att sanda den observerade signalen x[k] genom ett linjart lter och sedan genom att jamfora utsignalens amplitud i en viss tidpunkt med ett lampligt troskelvarde avgora om pulsen fanns med eller inte. 2.0.1 Matematisk modell Lat N [k]; k 2 Z; vara svagt stationart vitt brus med vantevardesfunktion 0 och varians 2 : Lat vidare p[k]; 0 k M vara en kand puls med energi PM E = k=0 p[k]2 : Vi kan anta att p[k] ar noll utanfor intervallet [0; M ]: Vi studerar nu tva olika alternativ: 1. Vi har observerat den stokastiska processen X1 [k] = p[k] + N [k] 2. Vi har studerat processen X0 [k] = N [k]: Vi vill konstruera ett linjart lter med kausalt impulssvar h[k]; k 2 Z; sadant att vi genom att studera utsignalens varde i punkten k = M kan avgora vilket av alternativen vi studerat, dvs om p nns med eller inte i den observerade signalen x: Vi valjer tidpunkten M eftersom vi vill ha ett kausalt lter och eftersom hela signalpulsen p da har kommit med om den nns. Efter ltret har vi alltsa signalen y [k] = (x h) [k] ; k 2 Z: Vi undersoker forst alternativ 1 dar signalen p ingar. Efter ltret har vi vid tiden M X X X y[M ] = x(k)h [M k] = p [k] h [M k] + n [k] h [M k] : k k k Den forsta summan beror endast av den kanda signalen p men inte av bruset n: Det ar tydligen den termen som ska ge indikation om den sokta signalen ingar. Den andra summan beror bara av bruset och ar det enda vi skulle fa om alternativ 2 gallde. Brustermen ar en observation av den stokastiska variablen X N = N [k] h [M k] k medan den deterministiska delen, eftersom p har andligt stod, ar S= M X k=0 s [k] h [M 4 k] Vi har alltsa konstruerat en testvariabel Y = y[M ] som antingen ar S + N (alternativ 1) eller bara N (alternativ 2). Variablen N ar en viktad summa av oberoende likafordelade stokastiska variabler N [k] med vikterna h [M k] : Eftersom variablerna har vantevarde 0 och varians 2 kommer N att fa vantevarde 0 och for variansen galler, pga oberoendet, att V (N) = X k = 2 V (h [M X k k] N [k]) = h2 [M X h2 [M k] V (N [k]) k] Om vi antar att bruset ar gaussiskt, dvs normalfordelat, ser vi dessutom att N ar normalfordelad med en varians som ar lterkoeÆcienternas kvadratsumma ganger brusets varians. Nar vi val valt koeÆcienterna h [k] kanner vi alltsa hela fordelningen for N: For att fa en lyckosam detektering bor vi se till att talet S ar sa stort som mojligt jamfort med vanliga utfall av N: I summan S forekommer endast h [k] med index mellan 0 och M: Om man valjer varden skilda fran 0 for ltret h [k] for index utanfor detta intervall kommer detta endast att oka variansen hos N medan S inte andras. Det bor betyda samre chans att avgora mellan alternativen 1 och 2. Vi antar alltsa att ltrets impulssvar h endast ar skilt fran 0 for 0 k M: Vi vill att S ska goras sa stor som mojligt utan att variansen for N blir stor. Vi anvander Cauchy-Schwartz olikhet: Den sager att P X k=1 ! ak bk 2 P X k=1 a2k P X k=1 b2k for alla uppsattningar tal ak och bk och med likhet om och endast om det nns ett tal sadant att bk = ak for k = 1; :::; P: Av detta foljer alltsa att S maximeras om h [M k] = p [k] for k = 0; :::; M: Detta kan ocksa skrivas h [k] = p [M k] : Det innebar alltsa att det optimala ltrets impulssvar ar den kanda pulsen "vand baklanges". Da blir alltsa S= M X k=0 p [k] h [M k] = M X k=0 p2 [k] = E: Satter vi in detta val av impulssvar h [k] far vi ocksa att V (N) = 2 2 E: I fall 1 ar alltsa Y en stokastisk variabel p som ar normalfordelad med vantevarde S = E och standardavvikelse E medan i fall 2, ingen signal, Y har vantevarde 0 men samma standardavvikelse. 5 1 0.9 0.8 0.7 Bara brus Signal närvarande 0.6 0.5 0.4 0.3 0.2 0.1 0 −5 0 5 10 S Gräns G Frekvensfuntionerna for kvantiteten Y betingat av de tva alternativen. Valj nu ett tal G och infor foljande beslutsregel: Om y [M ] > G anser vi att alternativ 1 galler ,dvs pulsen p ingar i signalen x: Om y [M ] < G anser vi att p inte nns i x: Vi kan da gora fel av tva slag: 1. Alternativ 1 ar sant, dvs signalen p nns i x; men vi drar slutsatsen att den inte nns med. Detta intraar om y [M ] < G trots p att y [M ] ar observation av den stokastiska variabeln Y 2 N (E; E ): Detta sker med sannolikheten p Y E G E G E p P (Y < G Y 2 N (E; E )) = P ( p < p ) = E E E dar ar den standardiserade normalfordelningens fordelningsfunktion. 2. Alternativ 2 ar sant, dvs ingen signal p nns i x trots att vi dragit slutsatsen att den nns med. Detta sker alltsa om y [M ] > G p trots att y [M ] ar observation av den stokastiska variabeln Y 2 N (0; E ): Sannolikheten for detta ar p Y 0 G G p : P (Y > G Y 2 N (0; E )) = P ( p > p ) = 1 E E E Man far bestamma sig for vilket fel man tycker ar viktigast att undvika. Om man har svart att bestamma sig kan ett satt vara att valja G sa att de tva olika felen far samma sannolikhet. I sa fall skall alltsa galla att G pE = 1 G p = pG E E E (eftersom funktionen uppfyller villkoret att ( t) = 1 (t)). Detta intraar om G E p = pG E E Detta ger att G = E=2; som ju ligger mitt emellan vantevardena for fall 1 och fall 2, och medfor att felsannolikheterna blir E=2 p =1 P (fel 1) = P (fel 2) = 1 E 6 p ! E 2 = Q p ! E 2 : Vi ser att ar bara beror av pEden avgorande egenskapen som styr hur stort fel vi f kvoten 2 : Felsannolikheten beror alltsa inte pa skalfaktorn ; dvs det bar sig inte att oka forstarkningen i ltret. Kvantiteten PM 1 h2 [k] E SNR = k=0 = 2 2 brukar kallas "Signal to Noise Ratio" och ofta anges i dB. Vi sera att SNR helt styr prestanda for ett sadant lter. En fraga man kan stalla sig ar om eller hur pulsens langd, dvs M; spelar roll. Vad tror du? 2.1 Utvidgad teori (for frivillig uppgift) Antag nu att vi har tva olika mojliga pulser av samma langd p1 (k) och p2 (k); 0 k M: Vi antar dessutom att de ar ortogonala och att de har energi 1, dvs M X1 k=0 p1 (k)p2 (k) = 0: M X1 k=0 p21 (k) = M X1 k=0 p22 (k) = 1: Antag nu att vi tar emot en signal x (k) = 1 p1 (k) + 2 p2 (k) + e(k); 0 k M 1 Har ar e(k) en realisering av vitt gaussiskt brus med vantevarde 0 och varians 2 och 1 och 2 ar koeÆcienter. Vi skapar tva olika (signalanpassade) linjara tidsinvarianta lter med impulssvar h1 respektive h2 dar h1 (k) = p1 (M k); 0 k M h2 (k) = p2 (M k); 0 k M: Vi observerar utsignalerna fran dessa lter vid tiden k = M och far slumptalet y1 = M X1 p1 (k) (1 p1 (k) + 2 p2 (k) + e(k)) = k=0 M X1 = 1 k=0 p21 (k) + 2 M X1 k=0 p1 (k)p2 (k) + M X1 k=0 p1 (k)e(k) = = 1 1 + 2 0 + n1 = 1 + n1 Pa samma satt ger det andra ltret slumptalet y2 = 2 + n2 Talen n1 och n2 blir bada normalfordelade med vantevarde 0 och standardavvikelse 2 : De ar utfall av de stokastiska variablerna N1 respektive N2 dar N1 = M X1 k=0 p1 (k) (k); N2 = 7 M X1 m=0 p2 (m) (m) Korrelationen mellan dem ar alltsa E (N1 N2 ) = E M X1 k=0 0 M X1 =E@ k;m=0 = = = M X1 k;m=0 M X1 k;m=0 M X1 k=0 ! p1 (k) (k) M X1 m=0 !! p2 (m) (m) = 1 p1 (k) (k)p2 (m) (m)A = p1 (k)p2 (m)E ( (k) (m)) = p1 (k)p2 (m)2 Æ [k m] = p1 (k)p2 (k)2 = 0: Har anvands att (k) ar oberoende av (m) samt att p1 ar ortogonal mot p2 : Eftersom N1 och N2 ar okorrelerade och normalfordelade ar de ocksa oberoende stokastiska variabler. Vektorn (N1 ; N2 ) ar en tvadimensionellt fordelad vektor med kovariansmatris som ar enhetsmatrisen multiplicerad med 2 och med vantevarde (1 ; 2 ): Den mottagna signalen innehaller alltsa information om vardet av de tva koeÆcienterna 1 och 2 : Detta kan vi anvanda for att overfora information over en brusig kanal. Om vi sander en signal dar talen j far anta tva olika varden, t ex 1 eller +1, sa far vi i den mottagna signalen x den information som ryms i tva bitar. Genom att anpassa amplituderna, dvs j i forhallande till brusets varians 2 kan vi styra felsannolikheten da den mottagna signalen skall avkodas. Hur manga bitar skulle man kunna sanda samtidigt pa detta satt utan att de "stor varann"? 3 Spektralskattningar, teori Syftet med denna del av laborationen ar att undersoka spektralegenskaper hos nagra olika stationara stokastiska processer. Nagra olika metoder att uppskatta spektrum skall ocksa undersokas. For en stationar tidsdiskret process fX [m]g denierar man autokorrelationsfunktionen rX [k] (kallas akf) som rX [k] = E fX [m] X [m + k]g ; 1<k<1 som pga stationariteten endast beror av k och inte av m: Detta ar en "dubbelt oandlig" jamn talfoljd som har en Fouriertransform SX (!) som benamns spektraltatheten och som denieras av : SX (!) = 1 X k= 1 rX [k] e jk! : Denna funktion far perioden 2 i variablen !:och ar dessutom en jamn reellvard funktion Den ska ocksa vara icke-negativ. Vi behover en skattning av autoko8 rrelationsfunktionen och kan exempelvis valja 1 rX [k] M X1 M m=0 x [m] x [m + k] Den kan for varden M som ar mycket storre an k vantas ge acceptabla skattningar. Det forutsatter att processen ar ergodisk. Vi far en uppsakttning av rX [k] som kan anvandas till skattning av spektraltatheten om M har valts "stort" rX [k]e jk! M1 M X1 m=0 x [m] x [m + k] e jk! Vi valjer ocksa att endast ta med ett andligt antal rX [k] i summan som ska ge spektraltatheten SX (!) och far darmed att SX ( ! ) 1 X M X1 M m=0 k ! x [m] x [m + k] e jk! : Den yttre summationen over k gors over N termer symmetriskt kring 0: Detta uttryck kan forhoppningsvis vara en god uppskattning av spektraltatheten SX (!): Vi nojer oss med att berakna den for N diskreta varden pa !; !n = n2=N; n = 0; 1; : : : ; N 1: Detta ger en approximerande summa SX (!n ) 1 X M X1 M m=0 k ! x [m] x [m + k] e j knN2 Denna dubbelsumma kan vi se som utfallet av den stokastiska variabeln X 1 M X1 M m=0 k X [m] X [m + k] e j knN2 Denna har vantevarde (ensemblemedelvarde) X 1 M X1 E fX [m] X [m + k]g e M m=0 = rx [k] e k X j knN2 j knN2 k som vi ser nagot liknar den sokta spektralt atheten men dar summan trunkerats. Vi bildar nu DFT av foljden fx [k]gNk=01 och far for dess kvadrerade absolutbe- 9 lopp, eftersom x [k] -vardena ar reella, N X1 = = x [k ] e k=0 N X1 k;m=0 N X1 k;m=0 j knN2 x [k] e !0 @ N X1 m=0 N q X x [k] x [m] e k rx [k] e x [m] e j knN2 x [m]e+j mnN2 )n2 j (k m N (k = m + q) XX = x [m + q] x [m] e m 1 j mnN2 A j knN2 j qnN2 NSX (!n ) dar resultatet fran tidigare anvants. Har har ocksa for enkelhets skull antagits att de varden x [n] som saknas, dvs de som har index utanfor intervallet [0; N 1] har satts till 0. Slutsatsen blir att en tankbar skattning av spektraltatheten ar att ta 1 1 )2 SX (!n ) DF T (fx [k]gN k=0 N for en typisk realisering av processen. Denna skattning kallas periodogram. Ofta ar detta vad man far genom att "ta FFT av signalen". Tyvarr ar metoden inte sa bra eftersom dess varians ar av samma storleksordning som det den ska skatta. Darfor har ett antal forbattrade skattningar utvecklats, t ex Welchs metod som i MATLAB implementerats i funktionen psd. I denna metod, forenklat beskriven, borjar man med att dela upp en lang foljd sampel i ett antal delfoljder. Varje sadan delfoljd multipliceras med en fonsterfunktion, t ex hammingfonstret. Detta gor att sidoloberna i spektrum som annars uppkommer minskas. Sedan beraknar man en skattning med DFT enligt ovan for var och en av dessa delfojder varefter man tar medelvardet av dessa olika skattningar. Man kan tillata att delfoljderna har visst overlapp utan att skattningen blir vasentligt samre. Viktiga parametrar i skattningen blir 1. Langden pa varje delfoljd, N. Detta ger frekvensupplosningen 2=N i frekvensvariablen !: 2. Antaletpdelfoljder M. Standardavvikelsen i skattningen blir proportionell mot 1= M: 3. Vilket fonster man skall valja. Detta paverkar bredd pa sidolober i spektrum. 4. Hur stort overlapp man ska tillata. Att anvanda overlapp gor att alla data anvands lite battre trots fonstringen. Funktionen psd anvander som standard hammingfonstret, N valjs som en tvapotens enligt vissa regler som beror pa hur lang datavektor man ger som indata. O verlappet ar vanligen 0. Antalet delfoljder M beror av datalangden och valet av N. Gor help psd for narmare information. 10