?? fir_lp.m
字號:
function FIR_LP
clear
clc
wp=0.2*pi;ws=0.3*pi;
tr_width=ws-wp;
N=ceil(6.6*pi/tr_width)+1;
n=[0:1:N-1];
wc=(ws+wp)/2;%理想LPF截止頻
hd=ideal_lp(wc,N);%理想低通濾波器計算,hd=0-(N-1)之間的理想脈沖響應,wc=截止頻率(弧度),N=理想濾波器的長度
wd1=hanning(N)';b1=hd.*wd1;
wd2=hamming(N)';b2=hd.*wd2;
wd3=blackman(N)';b3=hd.*wd3;
wd4=kaiser(N)';b4=hd.*wd4;
[db1,mag1,pha1,w]=freqz_m(b1,1);%漢寧窗
delta_w=2*pi/1000;
rp1=-(min(db1(1:1:wp/delta_w+1)));%實際帶通波動
rp1
as1=-round(max(db1(ws/delta_w+1:1:501)));%最小帶阻衰減
as1
[db2,mag2,pha2,w]=freqz_m(b2,1);%海明窗
delta_w=2*pi/1000;
rp2=-(min(db2(1:1:wp/delta_w+1)));%實際帶通波動
rp2
as2=-round(max(db2(ws/delta_w+1:1:501)));%最小帶阻衰減
as2
[db3,mag3,pha3,w]=freqz_m(b3,1);%blackman
delta_w=2*pi/1000;
rp3=-(min(db3(1:1:wp/delta_w+1)));%實際帶通波動
rp3
as3=-round(max(db3(ws/delta_w+1:1:501)));%最小帶阻衰減
as3
[db4,mag4,pha4,w]=freqz_m(b4,1);%kaiser
delta_w=2*pi/1000;
rp4=-(min(db4(1:1:wp/delta_w+1)));%實際帶通波動
rp4
as4=-round(max(db4(ws/delta_w+1:1:501)));%最小帶阻衰減
as4
figure(1)
stem(n,hd);
title('理想脈沖響應')
axis([0 N-1 -0.1 0.3]);xlabel('n');ylabel('hd(n)');
figure(2)
subplot(2,2,1)
plot(w,mag1,':b')
legend('漢寧窗低通濾波器')
subplot(2,2,2)
plot(w,mag2,'-.g')
legend('海明窗低通濾波器')
subplot(2,2,3)
plot(w,mag3,'--r')
legend('布來克曼窗低通濾波器')
subplot(2,2,4)
plot(w,mag4,'-c')
legend('凱澤窗低通濾波器')
figure(3)
plot(w,mag1,':b',w,mag2,'-.g',w,mag3,'--r',w,mag4,'-c')
legend('漢寧窗低通濾波器','海明窗低通濾波器','布來克曼窗低通濾波器','凱澤窗低通濾波器')
figure(4)
plot(w/pi,20*log10(mag1),':b',w/pi,20*log10(mag2),'-.g',w/pi,20*log10(mag3),'--r',w/pi,20*log10(mag4),'-c')
legend('漢寧窗幅度響應(dB)','海明窗幅度響應(dB)','布來克曼窗幅度響應(dB)','凱澤窗幅度響應(dB)')
figure(5)
plot(n,b1,':b',n,b2,'-.g',n,b3,'--r',n,b4,'-c')
legend('漢寧窗h(n)','海明窗h(n)','布來克曼窗h(n)','凱澤窗h(n)')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -