Stavanger,. oktober 3 Det teknisknaturvitenskapelige fakultet ELE5 Signalbehandling, 3. Generell informasjon om faget er tilgjengelig fra It s learning. Innhold 4. Frekvensrespons for system..................... 4. LTI system gitt ved impulsrespons................ 4.3 FIR-filter.............................. 4 4.4 Ideelle filter............................. 7 4.5 Boxcar filter............................. 9 Løsningsforslag, øving 4. 4. Frekvensrespons for system System () T x(n) = ( ) n u(n) X(e jω ) = Y (e jω ) = n= n= T y(n) = ( 8) n u(n) () ( ) n e jωn = ( ) n e jωn = 8 e jω 8 e jω H(e jω ) = Y (ejω ) X(e jω ) = e jω 8 e jω Karl Skretting, Institutt for data- og elektroteknikk (IDE), Universitetet i Stavanger (UiS), 436 Stavanger. Sentralbord 5 83. Direkte 5 83 6. E-post: karl.skretting@uis.no.
System () T x(n) = e jπ/5 u(n) T y(n) = 3e jπ/5 u(n) () Vi ser at y(n) = 3x(n) som gir Y (e jω ) = 3X(e jω ), dermed: H(e jω ) = Y (ejω ) X(e jω ) = 3 4. LTI system gitt ved impulsrespons Vi har et LTI system med impulsrespons h(n) = ( )n u(n). a) Finn amplitude og faseresponsen. Amplituderesponsen: Faseresponsen H(e jω ) = n= ( ) n e jωn = H(e jω ) = H(e jω ) H (e jω ) = H(e jω ) = H(e jω ) = H(e jω ) = ejω e jω + 4 e jω ( e jω )( ejω ) = ( 5 = 5 cos ω 4 cos ω 4 cos ω + j sin ω 5 cos ω 4 ) / For fase av en brøk har vi Φ(z /z ) = Φ(z ) Φ(z ) Φ(ω) = Φ ( cos ω + j ) sin ω Fasen av et komplekst tall z = x + jy er Φ(z) = atan(y/x), og en må være oppmerksom hvilken kvadrant z er, når reell del er negativ må en legge til (eller trekke fra) π. Her er reelldel alltid positiv og det er da ikke et problem. ( Φ(ω) = atan sin ω ) ( ) sin ω cos ω = atan cos ω En kan legge merke til at når ω går mot null så går nevneren cos ω mot og telleren mot, og vinkelen Φ(ω) går dermed mot null den også, fra negativ side på grunn av minustegnet.
Amplituderespons..8.6.4..8.5.5.5 3 3.5 Faserespons (grader). 5 5 5 3.5.5.5 3 3.5 Figur : Amplitude og faserespons for oppgave 4. b) Hva blir y(n) når vi påtrykker x(n) = cos( 3π n), < n <. Vi har x(n) = cos( 3πn) = cos(ω n), der ω = 3π y(n) = H(e jω ) cos ( ω n + φ(ω ) ) ( ) / H(e jω 5 ) = 4 cos ω.3 ( ) sin ω Φ(ω ) = atan.5 cos ω ( ) 3π y(n).3 cos n.5 c) Kommentarer til systemet (som en ikke spurde om). En kan legge merke til at H(z) = / ( z ) og at differanseligningen dermed er y(n) y(n ) = x(n) eller y(n) = x(n) + y(n ) Det er altså et AR() system. Noe Matlab kode som illustrerer dette er N = ; n = :(N-); h = (.5).^n; [H,W] = freqz(h,,5); % gitt system med h % [H,W] = freqz(,[ -/],5); % AR() system figure();clf; 3
subplot(); plot(w, abs(h)); title( Amplituderespons med freqz. ); subplot(); plot(w, (5/4-cos(W)).^(-/)); title( Beregnet amplituderespons. ); figure();clf; subplot(); plot(w, (8/pi)*phase(H)); title( Faserespons (grader) med freqz. ); subplot(); plot(w, (8/pi)*(-atan(sin(W)./(-cos(W))))); title( Beregnet faserespons i grader. ); w =.3*pi; Hw = (5/4-cos(w)).^(-/); phi = (8/pi)*(-atan(sin(w)./(-cos(w)))); disp([ H(w) =,numstr(hw), og fase er,numstr(phi), grader. ]); % alternativt w = (:.:)*pi; [H,W] = freqz(h,,w); disp([ H(w) =,numstr(abs(h(4)))]); disp([ Fase er,numstr(8*phase(h(4))/pi), grader. ]); 4.3 FIR-filter Problem 5.7 fra lærebok, y(n) = x(n) x(n 4). a) Finner z-transformen fra differanseligningen Y (z) = X(z) + z 4 X(z), H(z) = Y (z)/x(z) = + z 4 For frekvensresponsen og amplituderesponsen får vi da H(e jω ) = + e j4ω = + cos 4ω j sin 4ω H(e jω ) = H(e jω ) H (e jω ) = ( + e j4ω) ( + e j4ω) H(e jω ) = + e j4ω + e j4ω + e = + cos 4ω Dette kan illustres med Matlab H(e jω ) = + cos 4ω h = [,,,,]; [H,W] = freqz(h,,5); figure();clf; subplot(); plot(w, abs(h)); title( Amplituderespons med freqz. ); subplot(); plot( W, sqrt((+cos(4*w))) ); title( Beregnet amplituderespons. ); Vi finner så fasen Φ(ω) = atan sin 4ω + cos 4ω 4
Amplituderespons..5.5.5.5.5 3 3.5 Faserespons (grader). 5 5.5.5.5 3 3.5 Figur : Amplitude og faserespons for oppgave 4.3 Formel for tangens til halve vinkel fra Wikipedia er tan( θ) = og vi ser da Φ(ω) = atan( tan ω) = atan(tan ω) = ω sin θ +cos θ Her må vi som vanlig for inverse trigonometriske funksjoner være observante på hvilken kvadrant vinkelen er i. y = atan x-funksjonen returnerer (for x R) π < y < π altså en vinkel i første eller fjerde kvadrant. Ligningen over gjelder altså strengt tatt kun for π < ω < π, og gjentas så med periode 4 4 π/. For tilfellene ω = π/4 + kπ/, k Z må vi se på uttrykket for H(e jω ), altså + e j4ω eller + cos 4ω j sin 4ω og vi ser da at vi får H(e jω ) =, for ω = π 4 + kπ, k Z og fasen til tallet er ikke definert, (hva som helst duger, en kan gjerne bruke ). Fasen kan illustres i Matlab h = [,,,,]; [H,W] = freqz(h,,5); figure();clf; subplot(); plot(w, (8/pi)*phase(H)); title( Faserespons (grader) med freqz. ); subplot(); plot(w, rem(pi/-*w,pi)-pi/); title( Beregnet faserespons i grader. ); 5
b) Med x(n) = cos πn + cos πn skal vi finne y(n). Ut fra differanseligningen 4 får vi da y(n) = cos π n + cos π 4 n + cos π (n 4) + cos π (n 4) 4 y(n) = cos π n + cos π 4 n + cos(π n π) + cos(π 4 n π) y(n) = cos π n + cos π 4 n + cos(π n) cos(π 4 n) y(n) = cos π n c) Når x(n) er periodisk og < n <. x(n) = K A k cos(ω k n + φ k ) k= Så får vi at responsen kan beregnes for hver komponent og så legges sammen (lineært system). Altså y(n) = K A k H(e jω k ) cos(ω k n + φ k + Φ(ω k )) k= Her har vi K =, ω = π og ω = π, A 4 = A = og φ = φ =. Med å bruke frekvensresponsen fra a så får vi H(e jω ) = + cos 4ω = H(e jω ) = + cos 4ω = + cos 4 π = + cos 4 π 4 = Φ(ω ) = Φ(ω π ) = = Φ(ω ) = Φ( π 4 ) = der vi for Φ(ω ) først brukte det at fasefunksjonen er periodisk med periode π/. Med dette så får vi y(n) = A H(e jω ) cos(ω n+φ +Φ(ω ))+A H(e jω ) cos(ω n+φ +Φ(ω )) y(n) = cos( π n + + ) + cos(π 4 n + + ) y(n) = cos π n 6
4.4 Ideelle filter a) La oss anta et ideelt lavpassfilter:, if w w l, H LP (e jw ) =, if w l < w < π (3) Vi finner nå impulsresponsen h LP (n) = π π π Integralet finnes for n som h LP (n) = π [ jn ejωn H LP (e jω )e jωn dω = ωl e jωn dω π ω l ] ωl = ω l π ( e jω l n e ) jω ln jn = πjn (cos(ω ln) + j sin(ω l n) cos( ω l n) j sin( ω l n)) for n. For n = har en h LP () = π = πjn (j sin(ω ln)) = sin(ω ln) πn ωl h LP (n) = ω l π ω l e jω dω = π sin(ω l n) ω l n ωl dω = ω l π [ω]ω l ω l = ω l π Funksjonen sinc er definert som sinc x = sin x når x og når x =. Dermed x har vi vist at impulsresponsen kan skrives: h LP (n) = ω l π sinc(ω ln) = ω l π n = ω l sin(ω l n) π ω l n n Vi ser at et ideelt filter korresponderer til et ikke kausalt system med verdier på impulsresponsen for < n < og er således ikke et realiserbart filter. b) Vi har et ideelt høypass filter: (4), ω π H HP (e jω 4 ) = (5) π, < ω < π. 4 7
og finner h hp (n) med utgangspunkt i ligning (4). Vi husker at H HP (e jω ) er periodisk med periode π, og skifter med π og får da følgende lavpassfilter., ω 3π H LP (e jω 4 ) = < ω < π., 3π 4 Fra oppgave a har vi da h LP (n) = ω l π sinc(ω ln) = 3π/4 π sinc(3nπ/4) = 3 ( ) 3n 4 sinc 4 π Skifter tilbake med π (eller π) og får (med regelen om frekvensskift) { h HP (n) = e jπn hlp (n), n =, ±, ±4,... h LP (n) = h LP (n), n = ±, ±3, ±5,... Her har vi ω l = 3π/4 og får dermed h LP () = 3/4, h HP () = 3/4 Vi kan her, ω h = π/4 og ω l = 3π/4 skrive { 3/4, n = h LP (n) = sin ( 3π n), n nπ 4 Sinus delen, sin ( 3π n), blir nå: {a,, a,, a,, a, } for n lik til 8 (a = 4.5 ) og deretter gjentas den med periode 8. 3/4, n = n =... 7,, 9,... nπ n =... 6,,,... nπ n =... 5, 3,,... h HP (n) = nπ n =... 8, 4, 4, 8,,... n =... 3, 5, 3,... nπ n =..., 6, 4,... nπ n =..., 7, 5,... nπ I Matlab kan dette testes med a = sqrt()/; seq = [-a,-,-a,,a,,a,]; L = ; hhp = repmat(seq,,l)./(pi*(:(8*l))); hhp = [fliplr(hhp),3/4,hhp]; [H,W] = freqz(hhp,,48); figure(); clf; plot(w/pi, abs(h)); grid on; title( Amplituderespons med freqz. ); xlabel( Normalisert frekvens, Fs/ =. ); 8
.4 Amplituderespons med freqz...8.6.4....3.4.5.6.7.8.9 Normalisert frekvens, Fs/ =. 4.5 Boxcar filter Figur 3: Amplituderespons for oppgave 4.4 Gitt et FIR filter med enhetspulsrespons: /M, n M h(n) =, ellers. (6) a) Z-transformen for boxcar-filteret blir H(z) = n= h(n)z n = M n= M z n Summen over kan skrives som brøk for alle z unntatt z =, vi kan da bruke formelen for sum av endelig geometrisk rekke. For tilfellet der z = blir H(z) =. Dermed, z = Med ROC: z. H(z) = M z M z, z. (7) 9
Noen av de sentral filterkoeffisientene..7.6.5.4.3.... 795 8 85 8 85 Figur 4: Filterkoeffisienter for oppgave 4.4 En kan også merke seg at en kan skrive H(z) som et polynom gitt som et produkt av faktorer: H(z) = M z M z M z M = M k= (z ejπk/m ) M z M (z ) = M k= (z ejπk/m ) M z M H(z) = M z M (z e jπk/m ) En ser at nullpunktene for H(z) er jevnt fordelt på enhetssirkelen, unntatt for z =. Det er fortsatt pol(er) for z =. Den tilsynelatende polen for z = kan altså kortes bort siden z = også er et nullpunkt. Som over har vi her også ROC: z. M k= b) Fra (7) for z blir frekvensresponsen H(e jω ) = M z M z z=e jω = M e jωm e jω H(e jω ) = M H(e jω ) = M e jωm e jωm/ e jωm/ e jω e jω/ e jω/ (e jωm/ e jωm/ ) (e jω/ e jω/ ) e jωm/ e jω/
Uttrykkene inni parentesene blir sinus-uttrykk og dermed H(e jω ) = M j sin ωm j sin ω e jωm/+jω = M sin ωm sin ω e jω(m )/ Dette gjelder z, altså for ω k π, k Z For ω = (egentlig ω = k π), tilsvarer z =, har vi direkte fra (7) H(e jω ) =. Altså, ω = k π, k Z H(e jω ) = ) e jω(m )/, ω k π. M ( sin ωm sin ω (8) En kan også vise (med L Hopital s regel) at lim H(ejω ) = lim H(ejω ) = ω + ω og H(e jω ) er dermed kontinuerlig. Strengt tatt trenger vi bare se på H(e jω ) i området π < ω π siden den er periodisk med periode π. Eller, siden vi har reelle koeffisienter og da er H(e jω ) = H (e jω ), holder det egentlig å se på H(e jω ) i området ω π. Vi får nå amplituderesponsen, først for z H(e jω ) = sin ωm M sin ω = M cos Mω cos ω Der siste uttrykk kommer ved å bruke identiteten sin θ = cosθ som en gjerne finner i ei god formelsamling. For z = er det enkelt, og vi får H(e jω ) =, ω = k π, k Z M cos Mω cos ω, ω k π. (9) For fasen må vi legge merke til at nevneren i (8) (sin ω ) er positiv og ulik null (når < ω π). Telleren skifter imidlertid fortegn flere ganger i dett området, den passerer hver gang sin ωm = altså ωm = k π eller ω = k π. Vi har M at fasen forsyves med π når telleren er negativ. Vi får da (når vi kun ser på π < ω π), ω =, (ω = k π) Φ(ω) = udefinert, ω = k π, k Z \ {} M () ω(m ) + π [ sign ( sin ωm sin ω )], ellers. Generelt for midterste ligning kan en presisere: k Z\{..., M,, M, M,...}.
Amplitude og faserespons plottes enklest med Matlab M = 5; h = ones(,m)/m; w = linspace(-pi,pi,5*m+)+.; % 5 points for each bump % vil unngå fase av som er udefinert [H,w] = freqz(h,,w); figure();clf; subplot(); plot(w/pi,abs(h)); grid on; title([ Amplituderespons for boxcar-filter, lengde M =,intstr(m)]); subplot(); plot(w/pi, mod(phase(h)/pi+,)-); grid on; title( Faserespons ); xlabel( Normalisert frekvens, \pi = ); % grid treffer bedre da Dette er et lavpassfilter. c) Vi kan betrakte dette FIR-filteret som et rekursivt filter, differenseligningen finnes fra H(z) i (7) og blir Y (z) = H(z)X(z) = M z M X(z) z Y (z)( z ) = M ( z M )X(z) Y (z) Y (z)z = M X(z) M z M X(z) y(n) y(n ) = M x(n) x(n M) M y(n) = y(n ) + M x(n) x(n M) M
Amplituderespons for boxcar filter, lengde M = 5.8.6.4..5.5.5 Faserespons.5.5.5.5.5 Normalisert frekvens, π = Figur 5: Frekvensrespons for oppgave 4.5 3