Övningar med Digitala Filter med exempel på konstruktion och analys i MatLab



Relevanta dokument
DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)

FÖRELÄSNING 13: Analoga o p. 1 Digitala filter. Kausalitet. Stabilitet. Ex) på användning av analoga p. 2 filter = tidskontinuerliga filter

Laplace, Fourier och resten varför alla dessa transformer?

DIGITALA FILTER DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1

Laboration i tidsdiskreta system

Laplace, Fourier och resten varför alla dessa transformer?

Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19

Bildbehandling i frekvensdomänen

DT1130 Spektrala transformer Tentamen

Spektrala Transformer

Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl

Elektronik 2018 EITA35

Innehåll. Innehåll. sida i

TIDSDISKRETA SYSTEM SYSTEMEGENSKAPER. Minne Kausalitet Tidsinvarians. Linjäritet Inverterbarhet Stabilitet. System. Tillämpad Fysik och Elektronik 1

Lab lanserade R.A. Moog Inc. en ny synt: Minimoog. Den var designad av Bill Hemsath och Robert Moog och kom att revolutionera musikhistorien.

Laboration 1: Aktiva Filter ( tid: ca 4 tim)

DT1130 Spektrala transformer Tentamen

Flerdimensionella signaler och system

Digitala filter. FIR Finit Impulse Response. Digitala filter. Digitala filter. Digitala filter

TSDT15 Signaler och System

Laboration ( ELEKTRO

DT1130 Spektrala transformer Tentamen

TSDT18/84 SigSys Kap 4 Laplacetransformanalys av tidskontinuerliga system. De flesta begränsade insignaler ger upphov till begränsade utsignaler

Spektrala Transformer

Filter. Mätteknik. Ville Jalkanen, TFE, UmU. 1

TNMK054 - LJUDTEKNIK 1 FILTER OCH VCF

Tillämpning av komplext kommunikationssystem i MATLAB

Passiva filter. Laboration i Elektronik E151. Tillämpad fysik och elektronik UMEÅ UNIVERSITET Ulf Holmgren. Ej godkänd. Godkänd

GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen

Bildbehandling i frekvensdomänen. Erik Vidholm

Frekvensplanet och Bode-diagram. Frekvensanalys

Föreläsning 10, Egenskaper hos tidsdiskreta system

Spektrala Transformer

2F1120 Spektrala transformer för Media Tentamen

Hambley avsnitt

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

RÄKNEEXEMPEL FÖRELÄSNINGAR Signaler&System del 2

Laboration 3 Sampling, samplingsteoremet och frekvensanalys

TSKS21 Signaler, Information och Bilder Lab 2: Digitalisering

Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University

IE1206 Inbyggd Elektronik

Signal- och bildbehandling TSBB03

DT1120/DT1130 Spektrala transformer Tentamen

DT1130 Spektrala transformer Tentamen

Elektro och Informationsteknik LTH Laboration 4 Tidsplan, frekvensplan och impedanser

TSBB16 Datorövning A Samplade signaler Faltning

AKTIVA FILTER. Laboration E42 ELEKTRO. UMEÅ UNIVERSITET Tillämpad fysik och elektronik Sverker Johansson Rev 1.0.

Optimal Signalbehandling Datorövning 1 och 2

Hambley avsnitt

Tentamen i Signaler och kommunikation, ETT080

Vad gör vi när vi bara har en mätserie och ingen elegant matematisk funktion? Spektrum av en samplad signal. Trunkering i tiden

Digital signalbehandling Laboration 2 Digital filtrering

Datorövning: Fouriertransform med Python

Introduktion Digitala filter. Filter. Staffan Grundberg. 12 maj 2016

Projekt 3: Diskret fouriertransform

5 OP-förstärkare och filter

Introduktion till Digitala filter

DT1120 Spektrala transformer för Media Tentamen

Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi

REGLERTEKNIK Laboration 5

( ), så kan du lika gärna skriva H ( ω )! ( ) eftersom boken går igenom laplacetransformen före

Laboration i Fourieroptik

Fouriermetoder MVE295 - bonusuppgifter

Ellära 2, Tema 3. Ville Jalkanen Tillämpad fysik och elektronik, UmU. 1

Tentamen ssy080 Transformer, Signaler och System, D3

Spektrala transformer Laboration: Vokalsyntes

Signalanalys med snabb Fouriertransform

TSRT91 Reglerteknik: Föreläsning 5

Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation

System. Z-transformen. Staffan Grundberg. 8 februari 2016

TSKS06 Linjära system för kommunikation Lab2 : Aktivt filter

Faltningsreverb i realtidsimplementering

Digital Signalbehandling i Audio/Video

Mätning av biopotentialer

AD-DA-omvandlare. Mätteknik. Ville Jalkanen. 1

Signal- och bildbehandling TSBB14

Laboration i Fourieranalys för F2, TM2, Kf2 2011/12 Signalanalys med snabb Fouriertransform (FFT)

Spektralanalys - konsten att hitta frekvensinnehållet i en signal

Miniräknare, formelsamling i signalbehandling.

Laboration i Fourieranalys, TMA132 Signalanalys med snabb Fouriertransform

IE1206 Inbyggd Elektronik

Lab skapades Ove (Orator Verbis Electris) av Gunnar Fant, KTH.

Ulrik Söderström 20 Jan Signaler & Signalanalys

Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl

i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)

Spektrala transformer Laboration: Vokalsyntes

Ulrik Söderström 19 Jan Signalanalys

Signal- och Bildbehandling, TSBB14 Laboration 1: Kontinuerliga signaler

Mätningar med avancerade metoder

Signalbehandling, förstärkare och filter F9, MF1016

Liten MATLAB introduktion

Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-

Övningsuppgifter. Digital Signal Processing. Övningar med svar och lösningar. Mikael Swartling Nedelko Grbic Bengt Mandersson. rev.

Lab 4: Digital transmission Redigerad av Niclas Wadströmer. Mål. Uppstart. Genomförande. TSEI67 Telekommunikation

Signal- och bildbehandling TSBB03

Välkomna till TSRT19 Reglerteknik Föreläsning 6. Sammanfattning av föreläsning 5 Lite mer om Bodediagram Den röda tråden!

Projekt 6. Fourieroptik Av Eva Danielsson och Carl-Martin Sikström

Laborationsprojekt i digital ljudsyntes

Välkomna till TSRT19 Reglerteknik Föreläsning 5. Sammanfattning av föreläsning 4 Frekvensanalys Bodediagram

Transkript:

Övningar med Digitala Filter med exempel på konstruktion och analys i MatLab Eddie Alestedt Vt-2002

Digitala filter Digitala filter appliceras på samplade signaler och uppvisar helt andra egenskaper än analoga filter. En egenskap är att de är periodiska kring samplingsfrekvensen och ger upphov till aliaserade frekvenser på utgången om vi inte har vissa restriktioner på insignalen. Vi börjar med att studera egenskaperna hos de ideala grundläggande filtertyperna i figur 1. Fig.1 Ideala digitala filter av typ LP, HP, BP och BS. Filtren är periodiska, men är bara definierade inom intervallet 0 - ±Fs/2, där Fs är samplingsfrekvensen. Brytfrekvenserna är relaterade till samplingsfrekvensen. I MatLab normerar man filterfrekvenserna genom att sätta halva samplingsfrekvensen (Nyqvistfrekvensen) till 1. Ett digitalt lågpassfilter med Fs = 1000 Hz och en brytfrekvens på 200 Hz får i MatLab den normerade brytfrekvensen 200/500 = 0,4. När man realiserar ett digitalt filter försöker man anpassa filtret till de villkor man sätter upp. Ett villkor är att anpassa filtret till vissa parametrar som rippel i passband (Rp) och spärrband (Rs) samt filtrets brytfrekvenser. Vi kan ta ett exempel med att specificera ett LP-filter inom vissa gränser. Vi har följande parametrar att ta hänsyn till: 1. Wp definierar brytfrekvensen där passbandet slutar

2. Ws definierar brytfrekvensen där filtret har en viss dämpning som specificeras av Rs. 3. Rs anger dämpningen i db relativt den övre nivån i passbandet. 4. Rp anger det tillåtna ripplet i db i passbandet I MatLab definieras de digitala filtren som kvoten mellan två polynom: 1 B( z) b(1) + b(2) z + b(3) z H ( z) = = 1 2 A( z) 1 + a(2) z + a(3) z 2 + K + b( n + 1) z + K + a( n + 1) z n n Variabeln z är en generell komplex variabel av typ a+j. b, där H(z) är z-transformen av filtrets impulsrespons. Z-transformen används allmänt för att beskriva digitala filter där Fouriertransformen är ett specialfall med z = e-jwn. Vid konstruktion av digitala filter i MatLab krävs inte någon ingående kännedom om transformerna, utan vi matar in de filterparametrar som karaktäriserar filtret (Wp, Ws, Rp och Rs) enligt modellen i figur 8. Täljarpolynomet B(z) betecknar den icke rekursiva delen av filtret (ej återkoppling av utsignalen) och nämnarpolynomet A(z) är den rekursiva delen (återkoppling av utsignalen). Om vi läser ut rötterna ur polynomen erhålles filtrets nollställen ur B(z) och filtrets poler ur A(z). Det återkopplade filtret kallas för IIR-filter (Infinite Impulse Response) och det icke återkopplade (A(z) = 1) kallas FIR-filter (Finite Impulse Response). I MatLabs Signal Processing Toolbox förekommer flera designmetoder för bägge sortens filter. Designmetoder för IIR-filter De.m-filer som beräknar digitala IIR-filter från analoga prototyper är: Butterwortfilter: Chebyshev typ I filter: Chebyshev typ II filter: Elliptiska filter: [b,a] = butter(n,wn, options) [b,a] = cheby1(n, Rp,Wn, options) [b,a] = cheby2(n, Rs,Wn, options) [b,a] = ellip(n, Rp, Rs,Wn, options) n anger ordningen hos filtret och Wn -är en vektor som innehåller filtrets brytpunkter. Rp och Rs definierar tillåtet rippel i passband och spärrband. Innan man designar ett filter måste man veta vilken ordning som krävs för att filtret skall hålla sig inom de definierade toleranserna. Snäva toleranser ger filter med högre ordning och kräver mer beräkningar. Det finns hjälp i form av.m-filer som beräknar ordningen från en given specifikation. Butterwortfilter: [n,wn] = buttord(wp, Ws, Rp, Rs) Chebyshev typ I filter: [n,wn] = cheb1ord(wp, Ws, Rp, Rs) Chebyshev typ II filter: [n,wn] = cheb2ord(wp, Ws, Rp, Rs) Elliptiska filter: [n,wn] = ellipord(wp, Ws, Rp, Rs) Med dessa filterfunktioner kan vi designa lågpassfilter, högpassfilter, bandpassfilter och bandspärrfilter genom olika optioner i parametrarna.

Exempel: Beräkna ett Butterworth- LP-filter som har en brytfrekvens vid 200 Hz och som samplas med Fs = 2000 Hz. Passbandsripplet får inte överstiga 0.1 db och vid 300 Hz skall signalen dämpas med minst 20 db. (Referensfrekvensen är Fs/2 = 1000 Hz) Passbandets brytfrekvens Wp = 200/1000 = 0.2 Ws = 300/1000 = 0.3 Rp = 0.1dB och Rs = 20dB. Använd buttord(wp, Ws, Rp, Rs) för att bestämma ordningen. [n,wn] = buttord(0.2, 0.3, 0.1, 20); ger n = 10 och Wn = 0.2449, vilket ger ett 10:de ordningens filter där den optimala brytfrekvensen är kalkylerad till 0.2449. [b,a]=butter(n,wn); ger koefficienterna i täljar- och nämnarpolynomen. b = [ 0.0000 0.0001 0.0004 0.0011 0.0020 0.0023 0.0020 0.0011 0.0004 0.0001 0.0000] a = [1.0000-5.0882 12.3746-18.6458 19.1147-13.8507 7.1547-2.5933 0.6296-0.0923 0.0062] För att analysera filtret använder vi oss av freqz [H,w] = freqz(b, a, N); ger filtrets överföringsfunktion H(w) som funktion av den normerade vinkelfrekvensen ( 0 till π ), där π = Fs/2. H(w) beräknas med N st värden. H(w) är en komplex funktion som också innehåller information om filtrets fasvridning, vilket ger information om hur en signal distorderas vid passage genom filtret. Sätt N = 256, beräkna och plotta H(w) genom följande kommandon: [H,w] = freqz(b, a, 256); plot(w/pi,abs(h)) Fig.3 Plot av överföringsfunktionen för LP-filtret Ofta vill man ha logaritmiska skalor på axlarna med amplituden i db. Vi kan åstadkomma detta med: HH = 20*log10(abs(H)); w1 = w*256/pi;

semilogx(w1,hh) zoom % tillåter oss att zooma in en del av plotten Prova också med freqz(b, a, N) utan utvärden, vilket ger en plot av både magnitud och fasvridning. Vill vi applicera filtret på en signal x, kan vi använda kommandot y = filter(b,a,x), där y är den filtrerade signalen. Vi ser att Butterworthfiltret har den karaktäristiska egenskapen att den har en jämn frekvensgång i passbandet Maximally Flat. Fig.4 Överföringsfunktionen för LP-filtret i logaritmisk skala Genom att tillåta ett större passbandrippel kan filtret göras brantare med en given ordning på filtret, vilket t.ex kan realiseras med ett Chebyshev typ I filter. Låt oss realisera samma exempel som med Butterworthfiltret, fast nu med ett Chebyshev typ I filter. Vi börjar med att bestämma ordningen hos filtret. [n,wn] = cheb1ord(0.2, 0.3, 0.1, 20); ger n = 5 och Wn = 0.2000 [b,a] = cheby1(5, 0.1,Wn); ger koefficienterna i täljar- och nämnarpolynomen. b = [0.0008 0.0038 0.0076 0.0076 0.0038 0.0008] a = [1.0000-3.4994 5.3249-4.3205 1.8553-0.3360] [H,w] = freqz(b, a, 256); plot(w/pi,abs(h)) ger plotten i figur 5. Med logaritmiska skalor får vi plotten i figur 6.

Fig.5 Linär plot av Chebyshev I-filter Fig.6 Log plot av Chebyshev I-filter I figur 7 har vi tillåtit ett passbandsrippel på 1 db, varigenom vi kan få ett brantare filter. I figur 8 har vi begränsat passbandsripplet till 0.01dB, vilket ger ett flackare filter. Fig.7 Chebyshev I-filter med Rp=1 db Fig.8 ChebyshevI-filter med Rp=0.01dB Chebyshev typ II filter har liknande egenskaper som hos Chebyshev typ I med den skillnaden att man här definierar filtret med hänsyn till stoppbandsripplet Rs. Elliptiska filter ger brantare filter än Butterworth och Chebyshev på bekostnad av rippel både i passband och spärrband. Samma exempel med ett elliptiskt filter ger följande: [n,wn] = ellipord(0.2, 0.3, 0.1, 20) ger n = 4 och Wn = 0.2000 [b,a] = ellip(4, 0.1, 20,Wn) I figur 9 och 10 visas filtret i linjär och logaritmisk skala.

Fig.9 Linjär plot av elliptiskt filter Fig.10 Log plot av elliptiskt filter Låt oss ta ett exempel med ett elliptiskt bandpassfilter som har ett passband mellan 100 Hz och 150 Hz med en samplingsfrekvens på 1000 Hz. Låt ripplet i passbanden vara 0.01 db och dämpningen i spärrbanden ligga på -60 db på ett minsta avstånd av 20 Hz från passbandet. Följande kommandon beräknar filtret: Wp=[100 150]/500; Ws=[80 170]/500; Rp=0.01; Rs=60; Låt oss ta ett exempel med ett elliptiskt bandpassfilter som har ett passband mellan 100 Hz och 150 Hz med en samplingsfrekvens på 1000 Hz. Låt ripplet i passbanden vara 0.01 db och dämpningen i spärrbanden ligga på -60 db på ett minsta avstånd av 20 Hz från passbandet. Följande kommandon beräknar filtret: Wp=[100 150]/500; Ws=[80 170]/500; Rp=0.01; Rs=60;

FIR-filter Antag att vi har ett IIR-filter som beskrivs med följande täljar- och nämnarpolynom: b=[1 2 1]; a=[1-0.8876 0.3145]; Vi genererar en impulsvektor och plottar impulssvaret: imp=[1 zeros(1,255)]; h=filter(b,a,imp); plot(h) Om vi vill titta på filtrets överföringsfunktion använder vi oss av: [H,w]=freqz(b,a,256); plot(w,abs(h))

Ett annat sätt att titta på överföringsfunktionen är att Fouriertransformera impulsresponsen h och plotta magnituden av spektrum. Fh=abs(fft(h)); plot(fh) Ett tredje sätt är att att använda sig av freqz utan utparametrar: freqz(b,a,256) Vi får en plott av både magnitud och fasvridning hos filtret. Prova! Vi har beskrivit filtret som ett IIR-filter. Motsvarande FIR-filter får man om man använder impulsresponsen h för att beskriva filtret. Eftersom FIR-filtret är icke rekursivt, tar vi helt enkelt och ersätter b med h och sätter a = 1. Prova med följande kommando: [H,ww]=freqz(h,1,256); plot(ww,abs(h)) Överföringsfunktionen bör sammanfalla med den för IIR-filtret ( plotta i samma diagram genom att använda dig av kommandot hold). Om vi studerar impulsresponsen, ser vi att efter ca. 15 sampel har impulsresponsen stabiliserats, varför vi bör kunna realisera filtret med färre koefficienter. Prova med att minska antalet koefficienter tills du ser att filtret avviker från det ursprungliga - vi kommer att minska ordningen hos filtret. Prova med följande kommando där du minskar N successivt: [H,ww]=freqz(h(1:N),1,256); plot(ww,abs(h)) Alternativt kan du plotta både magnitud och fasvridning använda freqz(b,a,n) Några Filterexempel med MatLab Här kommer några exempel på hur man kan beräkna och analysera filter i MatLab

>>Fs=1000; >>t=0:1/fs:1; >>x1=sin(2*pi*50*t); >>x2=sin(2*pi*110*t); >>x3=sin(2*pi*210*t); >>x=x1+x2+x3; >>plot(x) >>plot(x(1:200)) % Samplingsfrekvensen = 1000 Hz % tidsvektor % generera en sinus på 50 Hz % generera en sinus på 110 Hz % generera en sinus på 210 Hz % summera signalerna % plotta den sammansatta signalen % plotta de 200 första samplen >> [B1,A1]=butter(12,0.16); % Beräkna ett IIR-Butterworth lågpassfilter % av 12:te ordningen >>y1=filter(b1,a1,x); % Applicera filtret på signalen x >>plot(y1(1:200)) % plotta resultatet efter filtrering >>hold % frys plotten >>plot(x1(1:200), r ) % plotta 50 Hz - signalen och jämför med y1 >> [B2,A2]=butter(12,0.3, high ); % Beräkna ett IIR-Butterworth högpassfilter % av 12:te ordningen >>y2=filter(b2,a2,x); % Applicera filtret på signalen x >>plot(y2(1:100)) % plotta resultatet efter filtrering >>hold % frys plotten >>plot(x3(1:100), r ) % plotta 210 Hz - signalen och jämför med y2 >> [B3,A3]=butter(12,[0.16 0.3]); % Beräkna ett IIR-Butterworth bandpassfilter % av 12:te ordningen >>y3=filter(b3,a3,x); % Applicera filtret på signalen x >>plot(y3(1:200)) % plotta resultatet efter filtrering >>hold % frys plotten >>plot(x2(1:200), r ) % plotta 110 Hz - signalen och jämför med y3 >> [B4,A4]=butter(12,[0.16 0.3], stop ); % Beräkna ett IIR-Butterworth bandstoppfilter % av 12:te ordningen >>y4=filter(b4,a4,x); % Applicera filtret på signalen x >>plot(y4(1:100)) % plotta resultatet efter filtrering Undersökning av de filtrerade signalerna med Fouriertransform. Vi har skapat följande signaler: x1= 50 Hz sinus, x2= 110 Hz sinus, x3= 210 Hz sinus, x= summan av x1, x2 och x3 y1= x - lågpassfiltrerad, y2= x - högpassfiltrerad, y3= x - bandpassfiltrerad, y4= x - bandspärrfiltrerad Undersök signalerna med följande kommandon: >>z=abs(fft(x)); >>plot(z(1:500)) fortsätt att undersöka y1, y2, y3 och y4 på samma sätt. Undersökning av filterfunktionen De Butterworthfilter vi har beräknat, beskrivs av vektorerna A och B. Dessa vektorer innehåller koefficienterna för de täljare- (B) och nämnarpolynom (A) som beskriver filtret på

formen H = B/A. För att plotta filtrets överföringsfunktion kan vi generera en impuls och studera Fouriertransformen av filtrets utsignal applicerat på impulsen (impulsresponsen). Följande kommandon kan användas för att analysera filtret: x=[1; zeros(511,1)]; [B1,A1]=butter(12,0.16); y=filter(b1,a1,x); fy=abs(fft(y)); plot(fy) % generera en impulsvektor (kolumn) med en etta och % 511 nollor % beräkna ett IIR-Butterworth lågpassfilter av 12:te ordningen % beräkna impulsresponsen hos filtret % beräkna magnituden av Fouriertransformen % plotta filtrets överföringsfunktion. För positiva frekvenser % kan man använda plot(fy(1:length(fy)/2)) Om vi vill använda oss av en db-skala kan vi använda oss av följande: fy=20*log10(abs(fft(y))+eps); % logaritmera Fouriertransformen. eps finns för att % undvika att logaritmera eventuella nollor. fy=fy-max(fy); % normera skalan s. att maximum ligger vid 0 db % plot(fy) En analys av ett 12:te ordningens bandpass Butterworthfilter kan se ut så här: Fs=1000; Samplingsfrekvensen = 1000 Hz n=512; Antal sampel f = Fs.*(1:n)./n; Frekvensskala x=[1; zeros(n-1,1)]; Impulsvektor [B1,A1]=butter(12,[0.16 0.3]); IIR-Butterworth bandpassfilter av 12:te ordningen y=filter(b1,a1,x); Impulsresponsen fy=20*log10(abs(fft(y))+eps); Fouriertransformen i db-skala fy=fy-max(fy); Normering - max(fy) = 0 db L=length(fy)/2; Plotta bara positiva frekvenser plot(f(1:l),fy(1:l)); ylabel( H (db) );xlabel( frekvens ) Exempel på några sätt att beräkna och analysera ett FIR-filter Beräkning och undersökning av filtret med funktionen freqz a=1; b=[1 1 1]/3; [h,w]=freqz(b,a,256); plot(w,abs(h)) plot(w,real(h),w,imag(h),w,abs(h)) % nämnarpolynomet i filtret. a=1 ger ett FIR-filter % täljararpolynomet i FIR-filtret % frekvensresponsen för digitala filter % plotta magnituden av överföringsfunktionen % plotta realdel, imaginärdel och magnitud Undersökning av filtret med funktionen Fouriertransform imp=[1;zeros(255,1)]; % en impulsvektor y=filter(b,a,imp); % impulsresponsen fy= abs(fft(y)); plot(fy)

Exempel på filtrering i frekvensdomänen I detta exempel visas hur man kan utföra en filtrering i frekvensdomänen genom för att ta bort icke önskvärda frekvenser. Läs in ekg-signal lagrad i en.wav-fil [a1,fs,bits]=wavread( e011 ); % length(a1) =138840 a1=a1(1:2^17); % använd 131072 sampel = 2^17 sampel för att få en snabb FFT plot(a1) fa1=fft(a1); plot(abs(fa1)) zoom % zooma in transformen

Applicera filtret på ekg-signalen fa11=[fa1(1:500) ; fa1(length(fa1)-499:length(fa1))]; ifa11=ifft(fa11); plot(real(ifa11)) Observera att vi måste ta bort både positiva och negativa frekvenser ur Fouriertransformen! Exempel på filtrering av en EKG-signal [x,fs,bits]=wavread( e012 ); N=length(x); % 15030 sampel T=N/Fs; % Fs =1000 Hz t=(0:n-1)/fs; % tidsvektor plot(t,x)

Plot av den samplade signalen x % Beräkna ett Butterworth LP-filter av 8:e ordningen med brytfrekvens på 20 Hz [b,a]=butter(8,20/500); y=filter(b,a,x); % filtrera x plot(t,y) % Generera en kombination av x och y z=[x(1:5000) ;y(1:5000)]; plot(z) Plot av den lågpassfiltrerade signalen y

Plot av en förstoring av delar av signalerna x och y Konstruktion av IIR-filter Konstruktion av ett bandspärrfilter. Uppgift 1 Konstruera ett 50 Hz bandspärrfilter av andra ordningen, som använder en samplingsfrekvens på 1000 Hz. Definiera ett spärrband mellan 48-52 Hz. Det gäller att dämpa 50 Hz så mycket som möjligt med ett filter av lågt gradtal, vilket ger en snabb algoritm för realtidsfiltrering. Använd samma metod som i exemplet på sid. 39 i Introduktion till Digitala filter. Filtret beskrivs med koefficienterna i täljar- (b) och nämnarpolynomen (a). Undersök filtret och plotta frekvensgången med freqz(b,a,256) Skriv en.m-fil som beräknar filtret och där du kan variera bandspärrfrekvens, bandbredd och samplingsfrekvens. Uppgift 2 Konstruera samma 2:a ordnings bandspärrfilter av typ Butterworth. Tips! Använd [b,a] = butter(n,wn, stop ) Observera att filtret som genereras är av ordningen 2*n och att vektorn Wn skall innehålla spärrbandets normerade gränsfrekvenser. Wn = [w1 w2], där w1är första brytfrekvens och w2 är den sista brytfrekvensen.

Undersök filtret genom att plotta överföringsfunktionen och jämför med uppgift 1. Uppgift 3 Hur ser samma filter ut om vi använder de andra typerna av filter? Definiera ett lämpligt ripppel i passband och stoppband. Prova med följande: Observera att filtret som genereras är av ordningen 2*n [b,a]=cheby1(n,rp,[48/500 52/500], stop ) [b,a]=cheby2(n,rs,[48/500 52/500], stop ) [b,a]=ellip(n,rp,rs,[48/500 52/500], stop ) Lösning till uppgift 1: Samplingsfrekvensen på 1000 Hz klarar av signaler upp till 500 Hz enligt samplingsteoremet. 500 Hz motsvarar Ω=π i z-planet runt enhetscirkeln. Centerfrekvensen på 50 Hz motsvarar då Ω0=0,1π. Bandbredden (48-52 Hz) är 4 Hz. Eftersom p radianer motsvarar 500 Hz, kommer en bandbredd på 4 Hz att motsvara 4. π/500 =π/125. Enligt ekv. (70) i filterkompendiet kan vi skriva: 2 ( 1 r) π H ( z) = b = a = Y X 4 = 500 ( z) = ( z) π, vilket ger r = 1 = 0. 98743 250 jπ /10 jπ /10 ( z e ) ( z e ) z e = jπ /10 jπ /10 z r e z r e z 0.98743 e ( ) ( ) [ 1 1.90211 1] [ 1 1.87821 0.975025] 2 jπ /10 jπ /10 ( ) ( z e ) jπ /10 jπ /10 ( ) ( z 0.98743 e ) = 2 z 2z cos( π /10) + 1 = 2 z 1.974867z cos( π /10) + 0.975025 z 2 z 1.90211z + 1 1.87821z + 0.975025 Här kommer ett förslag på en funktion som beräknar samma typ av filter med olika frekvenser och bandbredder. =

Exempel på sampling av en EKG-signal Uppgift: Figuren visar ett EKG-diagram som är samplat med ett digitalt oscilloskop. Samplingsfrekvensen är 300 Hz och antalet sampel N=1024. a) Hur stor får den maximala frekvensen hos den samplade EKG-signalen vara för att vi inte skall få vikningsdistortion vid samplingen? b) För att studera EKG-signalens frekvensinnehåll, Fouriertransformeras signalen och vi erhåller ett frekvensspektrum. Hur stor är frekvensupplösningen f i spektret och vad uppskattar du den dominerande frekvensen till? c) Signalen innehåller en massa störningar. Ange minst två olika typer av störningar som kan uppträda när man mäter EKG och ge tips hur man kan åtgärda dem. d) Skissa utseendet hos en brusfri EKG-signal och ange några karakteristiska drag. Lösning:

a) Med Fs = 300 Hz får vi en maximalt tillåten frekvens på 150 Hz (Fs/2) för att undvika vikningsdistortion. b) Fs = 300 Hz ger en samplingstid på 3,33 ms. Med N = 1024 sampel blir den totala samplingstiden T = 3,41 s. Frekvensupplösningen är 1/T = 0.293 Hz. Ur figuren kan man uppskatta att 3 perioder upptar ca. 810 sampel = 810*3,33 ms = 2.7 s, vilket ger en hjärtpulsfrekvens av 1.11 Hz = 67 slag/min. c) Som vi ser, verkar signalen innehålla en 50-periodig bakgrundssignal, vilket kan filtreras med ett bandspärrfilter. Störningar kan också uppkomma genom att andra muskel celler samverkar med signalen, vilket resulterar i att den blir brusig med varierande baslinje. Man kan här filtrera med ett lågpassfilter på ca. 20 Hz med möjligheter till biasjustering. d) I figuren finns några karaktäristiska drag markerade.