Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
INF3470 Digital signalbehandlingINF3470 Digital signalbehandlingTidsdomene analyse (kap 3 – del 1)Sverre HolmSverre Holm
Mål for kapittel 3: Systemer
1. Forstå linearitet, superposisjon, tidsinvarians og k lit tkausalitet
2. Vite hvordan å identifisere LTI (lineære tidsinvariante) systemer
3. Forstå terminologi og klassifisering av digitale filtre
4. Vite hvordan å sette opp en realisering av filtre5. Vite at en differanseligning har to responser, en
fra initialbetingelser og en fra inputg g p
5. september 2011 2
Mål for kapittel 3: Systemer6. Vite hvordan å finne impulsresponsen til et LTI system
fra differanseligningenfra differanseligningen7. Vite hvordan å konvertere mellom differanse-ligningen
for et system og impulsresponsenfor et system og impulsresponsen8. Vite hvordan å finne konvolusjon mellom sekvenser av
endelig lengdeg g9. Vite hvordan å bruke definisjonen til å finne konvolusjon10. Forstå egenskapene til konvolusjon og vite hvordan å
bruke dem for å løse problemer
5. september 2011 3
Mål for kapittel 3: Systemer11. Vite hvordan å finne impulsresponsen til systemer i
kaskade og i parallellkaskade og i parallell12. Forstå stabilitetsbegrepet13 Vite hvordan å bestemme stabilitet fra differanseligning13. Vite hvordan å bestemme stabilitet fra differanseligning
og impulserespons14. Forstå periodisk konvolusjon og hvordan å finne den for o stå pe od s o o usjo og o da å e de o
to signaler15. Vite hvordan å finne krysskorrelasjon og
autokorrelasjon16. Forstå sammenhengen mellom konvolusjon og
t f t dtransform-metoder
5. september 2011 4
3.1 Tids-diskrete systemer
• Differanselikning, S ll diff i llik i i l• Samme rolle som differensiallikning i analog signalbehandling
• y[n] = α y[n-1] + β x[n]• y[n] = α y[n-1] + β x[n]• Inn x[n], ut y[n]• α β koeffisienterα, β koeffisienter
• Lineære, tidsinvariante (LTI) systemer• Viktigste klasse systemer/filtreViktigste klasse systemer/filtre• Konstante koeffisienter
5. september 2011 5
Operatorer
• Operator O(x[n]) = y[n] • Andre: O{ } 2• Addisjon
• Multiplikasjon med konstant
• O{·} = x2
• O{·} = C{·} + D (legge til konstant)konstant
• Forsinkelse z-m
• Alle tre: O{·} = 4z-3 + 6
til konstant)
Alle tre: O{ } 4z 6
5. september 2011 6
Linearitet og superposisjon
• Formell notasjon:Additi O{ [ ] [ ]} O{ [ ]} O{ [ ]}• Additiv: O{x1[n] + x2[n]} = O{x1[n]} + O{x2[n]}
• Homogen eller skalerbar: O{Kx[n]} = K· O{x[n]}• Superposisjon: de to sammen linearitet:• Superposisjon: de to sammen linearitet:
O{Ax1[n] + Bx2[n]} = A·O{x1[n]} + B·O{x2[n]}
• Alle filtre (FIR, IIR) er lineære• Mange interessante effekter er det ikke:Mange interessante effekter er det ikke:
• Gitarvreng, ultralyd i kroppsvev, forsterkere/høyttalere som spiller for høyt, ...p y
5. september 2011 8
Linearitet
• Er kvantisering en li j ?lineær operasjon?
• ≈ lineær ved mange nok bit 0 6
0.8
1Kvantiserings nivåer
nok bit
0
0.2
0.4
0.6
iser
t var
iabe
l
16 bit
• Er mpeg-koding av lyd li j ? -0 8
-0.6
-0.4
-0.2
Dis
kret 4 bit
en lineær operasjon?-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
Kontinuerlig variabel
5. september 2011 9
Tidsinvarians
• Utgangen y[n] er bare avhengig av hva man tt i [ ] ikk å j d tputter inn, x[n] – og ikke når man gjør det.
• Formell notasjon:O{ [ ]} [ ] O{ [ ]} [ ]• O{x[n]}=y[n] ⇒ O{x[n-n0]}=y[n-n0]
All filt (FIR IIR) tid i i t• Alle filtre (FIR, IIR) er tidsinvariante• Mange interessante effekter er det ikke:
L d ff kt fl i h i h• Lydeffekter som flanging, phasing, chorus• De kan likevel tolkes ved hjelp av filterteori
• Tidsinvariante over kort tid• Tidsinvariante over kort tid
5. september 2011 10
LTI
• LTI = Lineær og tidsinvariantå• Mer generelt: skift-invariant (også romlige signaler og
systemer)Forutsetning for beskrivelse med impulsrespons• Forutsetning for beskrivelse med impulsrespons og frekvensrespons (via Fourier-transform)V ldi ikti b å f tå!• Veldig viktig begrep å forstå!
• Sjekk av en operator O{·}:• Linearitet:
• O{Ax1[n] + Bx2[n]} = A·O{x1[n]} + B·O{x2[n]}• Tidsinvariant:• Tidsinvariant:
• O{x[n]} = y[n] ⇒ O{x[n-n0]} = y[n-n0]
3.2 Digitale filtre
• N-te ordensdifferanselikning:[ ] A [ 1] A [ N]• y[n]+A1y[n-1]+...+ANy[n-N]
= B0x[n] + B1x[n-1] + ... . BMx[n-M]• Orden N (utgangsledd med maks forsinkelse)• Orden N (utgangsledd med maks forsinkelse)• Konstante koeffisienter LTI
• Initial-betingelse 0: g• y[-1] = ... = yN[-N] = 0 => relaxed
• Input δ[n] => Impuls-respons h[n]• Pga superposisjon kan respons til et vilkårlig signal
finnes ved hjelp av h[n]: konvolusjon
5. september 2011 12
Ikke-rekursivt filter– FIR filter• Generelt: y[n]+A1y[n-1]+...+ANy[n-N]
= B x[n] + B x[n 1] + B x[n M]= B0x[n] + B1x[n-1] + ... . BMx[n-M]
• Ikke-rekursivt filter: y[n]= B x[n] + B x[n-1] + B x[n-M]• Ikke-rekursivt filter: y[n]= B0x[n] + B1x[n-1] + ... . BMx[n-M]• Orden M• Utgangen dannes fra forsinkede inngangsverdier• Kobler ikke tilbake: ikke-rekursivt • Kalles også Moving Average (MA)
• Hvis alle B = 1/(M+1) blir det middelverdi• Hvis alle Bm = 1/(M+1) blir det middelverdi• Vil vise etter hvert at h[n] = [B0, ... BM] og at h[n] dermed er
endelig: => Finite Impulse Response Filter
5. september 2011 13
Rekursivt filter – IIR filter• Generelt: y[n]+A1y[n-1]+...+ANy[n-N]
= B x[n] + B x[n 1] + B x[n M]= B0x[n] + B1x[n-1] + ... . BMx[n-M]
• Rekursivt filter: y[n]+A y[n-1]+ +A y[n-N] = B x[n]• Rekursivt filter: y[n]+A1y[n-1]+...+ANy[n-N] = B0x[n]• Orden N• Kobler tilbake: rekursjon, kalles også Autoregressivt (AR)• Skal se at h[n] blir ∞ lang: Infinite Impulse Response Filter
Det mest generelle filteret er også rekursivt og IIR kalles• Det mest generelle filteret er også rekursivt og IIR, kalles ARMA (autoregressive – moving average)
• Utgangen avhenger av tidligere utgangsverdier, y, og ogsåUtgangen avhenger av tidligere utgangsverdier, y, og også tidligere verdier av inngangen, x
5. september 2011 14
Digitale filtre: realisering
• Multiplikasjon (gain), forsinkelse, summasjon
5. september 2011 15
Drill 3.6
5. september 2011 16
Filterrealisering – generell formy[n]+A1y[n-1]+...+ANy[n-N]=B0x[n] + B1x[n-1] + ... . BMx[n-M]
Ek i l t ( li it t)• Ekvivalente (pga linearitet)
5. september 2011 17
3.3 Respons: ikke-rekursive filtre (FIR)
• y[n]= B0x[n] + B1x[n-1] + ... . BMx[n-M]V i t f i k d i t l• Veiet sum av forsinkede input samples
• Eks y[n]= 2x[n] - 3x[n-2]• Hva er B0, B1, B2?• Input x[n]=0 5n u[n] Hva er y[1] og y[2]?• Input x[n]=0.5n u[n]. Hva er y[1] og y[2]?
5. september 2011 19
Respons: Rekursive filtre (IIR) y[n]+A1y[n-1]+...+ANy[n-N]=B0x[n] + B1x[n-1] + ... . BMx[n-M]
• Skriver om så utgangen blir:y[n]= A y[n 1] A y[n N ]+ B x[n] + B x[n 1] + +B x[n M]y[n]=-A1y[n-1]-...-ANy[n-N ]+ B0x[n] + B1x[n-1] +...+BMx[n-M]
• Initialbetingelser for å finne y[n]: y[n-1] y[n-N]• Initialbetingelser for å finne y[n]: y[n-1], ..., y[n-N]
5. september 2011 20
Eks: Rekursivt filter• y[n]=a1y[n-1] + b0x[n]
x[n] = u[n]• x[n] = u[n]• y[-1] = 0
• Utgangen:• y[0] = a1 0+b0 1 = b0• y[1] = a1 b0 + b0 = b0[1+a1]• y[2] = a1 b0[1+a1] + b0 = b0[1+a1+a1
2] • ......• y[n] = b0[1+a1+a1
2+ ...+ a1n]
• Endelig geometrisk rekke: y[n]=b0 (1-a1n+1)/(1-a1)
5. september 2011 21
3.4 Løsning av differenselikninger
• Samme metode som for differensiallikninger• Total respons =
• Homogen + inhomogen løsningN t li + t t• Naturlig respons + tvunget respons
• Transient respons + stasjonær respons
• y[n]= yN[n]+yF[n]
5. september 2011 22
Transient: EKG - Før og etter filtrering
Eks fra første forelesingEks fra første forelesingSe nøyere på starten av det filtrerte signalet.
•Fsample=100 Hz•FIR Filterlengde N=20
20/100 sek = 200 ms
•Uønskede effekter:•Nulling•Smell (lyd)
•Blokkprosessering med uønsketeffekt ved hver blokkgrense
5. september 2011 23•Kan bli enda mer med IIR-filter
Transient respons
• Må løse karakteristisk likning og finne røtterN’ d [ ] A [ 1] A [ N] [ ]• N’te ordens: y[n]+A1y[n-1]+...+ANy[n-N]=x[n]
• => karakteristisk likning: 1+A1 z-1+...+AN z-N=0• N røtter z1, z2, ..., zN
• Transient løsning har form yN[n]=K1z1n + K2z2
n +...+ KN zNn
5. september 2011 24
Stasjonær respons
• Skyldes inngangssignalet• Utgang har samme form som inngangen:
5. september 2011 25
3.5 0-input og 0-tilstands respons
• Alternativ måte for løsning av differanselikning:R i iti lb ti l 0 i t [ ]• Respons pga initialbetingelser: 0-input respons: yzi[n]
• Respons pga input alene (0 i initialbetingelser): yzs[n]• Totalrespons y[n] = y [n] + y [n]• Totalrespons y[n] = yzi[n] + yzs[n] • Likner forrige metode: y[n]= yN[n] + yF[n]
Men y [n] y [n] og y [n] y [n]• Men yzi[n] yN[n] og yzs[n] yF[n]
5. september 2011 28
Lydsyntese: filter uten inngang
• 1979 K. Karplus og A. Strong, Stanford Un.• Gitar-liknende lyd • y[n] - 0 5*(y[n-N] + y[n-N-1]) = 0y[n] 0.5 (y[n N] + y[n N 1]) 0
Karplus-Strong algoritmen
• N bestemmer tonehøyde:• 440 Hz og fs = 44100 samples/sekund ⇒• 440 Hz og fs = 44100 samples/sekund ⇒
P=44100/440=100,22≈100 samples• y[n], y[n-1], , y[n-N], må initialiseres med y[ ], y[ ], , y[ ],
tilfeldige tall og utgangen taes fra y[n-N].• Høye harmoniske dør ut raskt, lave varer lengrey , g• Analyse og varianter:
• Karplus, K. and Strong, A., Digital synthesis of l k d t i d d ti b C t M iplucked-string and drum timbres, Computer Music
Journal, pp. 43-55,1983 • http://www.music.mcgill.ca/~gary/courses/papers/Karp g g y p p
plus-Strong-CMJ-1983.pdf
Differanseligning for Karplus-Strong
• Rekursiv differanseligning: y[n] - 0.5*(y[n-N] + y[n-N-1])=0• Intet inngangssignal• Intet inngangssignal• Utgangen er en effekt av transienten etter de tilfeldige tallene
som er i hele forsinkelseslinjen• På grensen av å være et ustabilt system
• http://ccrma.stanford.edu/realsimple/faust_strings/Karplus_Strong_Digitar_Algorithm.html
• http://focus ti com/lit/an/spra252/spra252 pdfhttp://focus.ti.com/lit/an/spra252/spra252.pdf• http://lab.andre-michelle.com/karplus-strong-guitar : Bra demo
Karplus0.mfunction out = Karplus0(tid, tone, plott)%% Karplus Strong basic version
length = fix(fs/tone);out = zeros(time,1);table = randn(length+1 1);% Karplus-Strong, basic version
% % tid in seconds% tone in Hertz
table = randn(length+1,1);% initialize output buffer:out(1:length) = table(2:length+1);maxloop = fix(time/length);
% plott = 1 for plot and soundfs=44100;if nargin == 0
time = 2*fs;
for loop = 2:maxlooptable(2:length+1) = 0.5*(table(2:length+1) + table(1:length));out((loop-1)*length + 1: loop*length) = time 2 fs;
elsetime = tid *fs; % no of samples
endif nargin <= 1
(( p ) g p g )table(2:length+1);
endif (plott == 1)
soundsc(out,fs)if nargin <= 1tone = 440; % Hz
endif nargin <=2
soundsc(out,fs)figure(1);plot(out) figure(2);spectrogram(out,512,128,512,fs,'yaxis')
endplott = 0;end
end
3.6 Impulsrespons
• Viktigste karakterisering av et filter• Null som initialbetingelser
• Viktigste verktøy for beregning av respons• Lengden avhenger av IIR, FIR (∞ lang eller ikke)
FIR impulsrespons (ikke-rekursivt filter)
• y[n]= B0x[n] + B1x[n-1] + ... . BMx[n-M]• La x[n] være [n]• La x[n] være [n]
• Impulsrespons:• Impulsrespons: h[n]= B0[n] + B1 [n-1] + ... . BM [n-M]
• h[n] = {B0, B1, ... , BM} = filterkoeffisientene –lett!
• Finite Impulse Response filter• Ikke-rekursivt filter• Transversalt filter
Impulsrespons for rekursivt filter (IIR)
• Noen få koeffisienter kan generere ∞ lang h[n]
• Eks h[n] gitt som et uttrykk• Filter gitt ved y[n] - y[n-1] = x[n]• Filter gitt ved y[n] - y[n-1] = x[n]• Løs h[n] = [n] + h[n-1] med h[-1]=0• Rekursjon:
• h[0] = 1 – eneste ledd der inngangen har noen verdi• h[1] = • h[2] = 2
• ...• h[n] = n u[n] (Husk u[n] da løsningen er bare for n ≥ 0)
• Hva slags filter? lavpass for 0<<1, høypass for -1<<0 g p , yp
Impulsrespons for rekursivt filter (IIR)
Generelt IIR med ikke-rekursiv del også:[ ] A [ 1] A [ N] B [ ] B [ 1] B [ M]• y[n]+A1y[n-1]+...+ANy[n-N]=B0x[n] + B1x[n-1] + ... . BMx[n-M]
Del i to:Del i to:1. Rekursiv del2. Ikke-rekursiv del2. Ikke rekursiv del
Impulsrespons for rekursivt filter (IIR)
Generelt IIR med ikke-rekursiv del også:[ ] A [ 1] A [ N] B [ ] B [ 1] B [ M]• y[n]+A1y[n-1]+...+ANy[n-N]=B0x[n] + B1x[n-1] + ... . BMx[n-M]
1 Finn impulsresponsen h0[n] til den rekursive delen1. Finn impulsresponsen, h0[n], til den rekursive delen y[n]+A1y[n-1]+...+ANy[n-N]=x[n] ved å løse
• h0[n]+A1h0 [n-1]+...+ANh0 [n-N]=0 med h0[0]=1
2. Bruk så superposisjon og inkluder den ikke-rekursive d l h[ ] B h [ ] B h [ 1] B h [ M]delen h[n] = B0h0[n] + B1h0[n-1] + ... . BMh0[n-M]
Eks 3.12
y[n] – y[n-1] = 3x[n+1] - x[n]1. Start med rekursivt system y[n]- y[n-1]=x[n]
• Tidligere: y[n] - y[n-1] = x[n] => h[n]=n u[n] så da bli h [ ] 0 6n [ ]blir h0[n]=0.6n u[n]
2. Send h0[n] gjennom ikke-rekursiv del:h[ ] 3h [ 1] h [ ] 3 0 6n+1 [ 1] 0 6n [ ]• h[n] =3h0[n+1] - h0[n] = 3·0.6n+1 u[n+1] - 0.6n u[n]
• Skisser utgangen så ser man at det også kan• Skisser utgangen så ser man at det også kan skrives som h[n] = 3 [n+1] + 3· 0.6n+1 u[n] - 0.6n u[n] = 3 [n+1] + 0.8·0.6n u[n][ ] [ ]
• Kausal eller ikke-kausal?
3.7 Systembeskrivelser
• Rekursive filtre er ikke alltid IIR!Ek 3 14 ) [ ] [ 1] + [ ] [ 3]• Eks 3.14a) y[n] = y[n-1] +x[n]-x[n-3]
• Impulsrespons: x[n]=[n] og y[-1]=0:• y[0]=0+1-0 = 1, y[1]=1+0+0 = 1y[0] 0 1 0 1, y[1] 1 0 0 1• y[2]=1+0+0 = 1, y[3] =1+0-1 = 0 • y[4]=0+0+0 = 0, y[5]=0+0+0 = 0, osv
• Dette er jo et FIR filter! y[n]=x[n]+ x[n 1]+ x[n 2]• Dette er jo et FIR filter! y[n]=x[n]+ x[n-1]+ x[n-2]• Finnes noen ganger en rekursiv form for et ikke-
rekursivt system
• NB! Filtre med like koeffisienter og verdi=1, som her, kan være på grensen av stabilitet og ikke heltkan være på grensen av stabilitet og ikke helt numerisk gode å ha med å gjøre
Systembeskrivelser
• Å finne differanselikning fra impulsresponsen:
• Lett for FIR: h[n] = {B0, B1, ... , BM}
• Generelt for rekursivt system: Kan gjøres, men mye lettere ut fra Z-transformlettere ut fra Z transform
• Eks: h[n]=3· 0.6n u[n]• Kjenner igjen formen y[n] - y[n-1] = x[n] h[n]=n u[n]• => y[n] – y[n-1] = 3x[n]
3.8 Eksempler på filtre
• Moving average (MA): middelverdi av naboene:K lt FIR filt• Kausalt FIR filter
• Glattefilter, glatte bort støy – jo lenger filter jo mer glatting
• Lavpassfilter med impulsrespons:
MA filter: L=10 og L=50 på N=50 perioders sinus i støy
Inverse systemer
• ’Opphever’ effekten av et tidligere filterMik f h då li i b /di k t• Mikrofon som har dårlig respons i bass/diskant ⇒invers filter for å rette opp
• Effekten av et rom på lyd ⇒ invers filter gir tilbake• Effekten av et rom på lyd ⇒ invers filter gir tilbake lyden som den ”var ment” å være
• SeismikkSeismikk
Seismikk
5. september 2011 46
Wenzel, Seismic modeling in the domain of intercept time and ray parameter, IEEE Trans Acous., speech, Sign. Proc., 1982
Wood, L.C.; Treitel, S., "Seismic signal processing," Proc IEEE , April 1975
Marin seismikk, luftkanon
Luftkanonen har en pulsform som ’farger’ ekko fra sedimentene ⇒ fjernes ved
Etterklang mellom vann-bunn i marin seismikk
5. september 2011 47
inversfilter
Wikipedia commons: Airgun-array hg.png
Wood, L.C.; Treitel, S., "Seismic signal processing," Proc IEEE , April 1975
Inverse systemer
• Bytte om inngangs- og utgangs-variable
IIR: Speilet og med snudd fortegn på tilbakekoblingFIR:
Inverse systemer
• System y[n] = x[n] - 0.5x[n-1] • Hypotese: invers er x[n] = y[n] - 0.5y[n-1]• Impulsrespons av system 1: h1[n] = [n]-0.5[n-1]• Send dette inn på system 2: y[n] = 0.5y[n-1]+x[n]
• y[0] = 0.5· 0 + 1 = 1 • y[1] = 0.5·1 + (0-0.5) = 0• y[2] = 0.5· 0 +(0-0) = 0 osv
å f• y[n] = [n], det samme som ble sendt inn på filter 1• Så x[n] = y[n] - 0.5y[n-1] er det inverse filteret
Inverse filtre – betingelser for inverterbarhet
• Et FIR filter kan alltid inverteres til et IIR filter, ikk lltid t ttmen ikke alltid motsatt
• Se drill problem 3.20bS t t å t di f kj lli• Systemet må være entydig: forskjellige inngangsverdier må gi forskjellige utgangsverdier
Ikk li [ ] [ ]2 ikk di• Ikke-lineært system y[n]=x[n]2 er ikke entydig• Desimeringssystem y[n]=x[2n] er lineært, men ikke
tidsinvarianttidsinvariant • x1={1,2,4,5} og x2={1,3,4,8} gir begge y[n]={1,4} – ikke
entydig