EEM 451 Dijital Sinyal İşleme LAB 3 1. AMAÇ Ayrık zamanlı filtrelerin implementasyonu, çeşitleri FIR filtrelerinin incelenmesi FIR filtresi dizayn edilmesi 2. TEMEL BİLGİLER 2.1 FIR(Finite impulse response) (Sınırlı dürtü cevabı) Filtreleri H(z): FIR filtresinin sistem fonksiyonu h(n): Birim dürtü cevabı (impulse response) y(n): Fark denklemi Filtrenin derecesi M-1, filtrenin uzunluğu da M ‘dir. FIR filtrenin yapısı her zaman kararlıdır ve IIR a göre daha basittir. [0,wp]: passband (sinyal geçiren bant) [wp,ws]: transition band (geçiş bandı) [ws,π]: stopband (Durma bandı) δ: tolerance or ripple (tolerans) Rp: passband ripple (bant geçiren sinyalin dalgası) As: stopband attenuation (durma bandındaki sinyal zayıflaması) 2.2 Lineer Fazlı FIR Filtrelerinin Özellikleri Dijital Filtre Dizaynı Adımları Tanımlama (Specification) Yaklaştırma (Approximation) Uygulama (Implementation) FIR Filtre avantajları Faz cevabı tamamen lineer olabilir. Kararlılık problemi olmadığı için dizaynı daha kolaydır. Uygulaması etkilidir. DFT kullanılabilir. Frekans cevabı için ‘freqz’ komutu kullanılabilir Örnek: h = [-2,1,0,-2,5,6,5,-2,-4]olsun. Genlik cevabı H(w) yi bulunuz. h = [-4,1,-1,-2,5,6,5,-2,-1,1,-4]; M = length(h); n = 0:M-1; [Hr,w,a,L] = Hr_Type1(h); a,L amax = max(a)+1; amin = min(a)-1; subplot(2,2,1); stem(n,h); axis([-1 2*L+1 amin amax]) xlabel('n'); ylabel('h(n)'); title('Impulse Response') subplot(2,2,3); stem(0:L,a); axis([-1 2*L+1 amin amax]) xlabel('n'); ylabel('a(n)'); title('a(n) coefficients') subplot(2,2,2); plot(w/pi,Hr);grid xlabel('frequency in pi units'); ylabel('Hr') % title('Type-1 Amplitude Response') % subplot(2,2,4); pzplotz(h,1) 2.3 Pencere Dizayn Teknikleri ‘Pencere dizaynı’ nın amacı uygun frekans-seçen filtre seçme ve bunu dürtü cevabı lineer fazlı causal FIR filtresi olacak hale getirmedir. Bundan dolayı önemli olan uygun pencere fonksiyonunun ve ideal filtre nin seçilmesidir. İdeal frekans-seçen filtre aşağıda gösterilmiştir. Band genişliği wc olan ideal alçak geçiren filtre (LPF) nin denklemi: wc : cutoff frequency α: örnek gecikmesi (sample delay) Frekans düzleminde ideal LPF elde etmek için zaman düzlemindeki karşılığı (yukarıdaki ‘h’) elde edilmesi gerekiyor. Fakat sınırlı sayıda FIR parametresi kullanmak zorunda olduğumuz için yukarıdaki fonksiyonun başından ve sonundan kesmemiz gerekiyor. Bu işleme ‘pencereleme’ deniyor ve aşağıdaki fonksiyon oluşturuluyor: w(n) pencereleme fonksiyonu, 0-(M-1) aralığında simetrik bir fonksiyon ve diğer değerleri 0. Örnek: İdeal alçak geçiren filtrenin çizdirilmesi freqz(ideal_lp(0.3*pi,100)) % wc=0.3*pi Magnitude (dB) 50 0 -50 -100 -150 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Normalized Frequency ( rad/sample) 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 Normalized Frequency ( rad/sample) 0.9 1 Phase (degrees) 0 -1000 -2000 -3000 2.3.1 Dikdörtgen Pencere 2.3.2 Barlett Penceresi Hann Penceresi, Hamming Penceresi, Blackman Penceresi, Kaiser Penceresi gibi örnekleri mevcuttur. MATLAB gösterimi w=boxcar(M) : M-noktalı dikdörtgen pencere fonksiyonu üretir w=barlett(M) : M-noktalı Barlett pencere fonksiyonu üretir w=hann(M) : M-noktalı Hann pencere fonksiyonu üretir w=hamming(M) : M-noktalı Hamming pencere fonksiyonu üretir w=blackman(M) : M-noktalı Blackman pencere fonksiyonu üretir w=kaiser(M,beta) : M-noktalı beta değerli dikdörtgen pencere fonksiyonu üretir *** Pencere fonksiyonunu görüntülemek için freqz komutu kullanılabilir. Örnek: Aşağıdaki özelliklere sahip olan dijital FIR alçak geçiren filtre (LPF) dizayn ediniz. İstenilen pencereleme tekniği kullanılabilir. Dizayn ettiğiniz filtrenin birim dürtü cevabını ve frekans cevabını çiziniz. Wp: Bant geçirme kenarı Ws: Bant durdurma kenarı wp = 0.2*pi; ws = 0.3*pi; tr_width = ws - wp; M = ceil(6.6*pi/tr_width) + 1 n=[0:1:M-1]; wc = (ws+wp)/2, % Ideal LPF cutoff frequency hd = ideal_lp(wc,M); w_ham = (hamming(M))'; h = hd .* w_ham; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -(min(db(1:1:wp/delta_w+1))); % Actual Passband Ripple As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband attenuation % plots subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_ham);title('Hamming Window') axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h);title('Actual Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)') subplot(2,2,4); plot(w/pi,db);title('Magnitude Response in dB');grid axis([0 1 -100 10]); xlabel('frequency in pi units'); ylabel('Decibels') 2.4 MATLAB komutları ile FIR filtre dizaynı 2.4.1 filterbuilder 1. 2. 3. 4. MATLAB da ‘filterbuilder’ yazıp enter a basın. Üretmek istediğiniz filtre çeşidini belirtin. Karşınıza çıkan pencerede filtre ile ilgili gerekli ayarlamaları yapın. Ürettiğiniz filtrenin özelliklerini görmek için fvtool komutunu kullanın. fvtool(…) 2.4.2 fdatool
© Copyright 2024 Paperzz