Deney3 - omerkaksi

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