⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fir_dzp.m

📁 FIR滤波器设计
💻 M
字号:
function FIR_DZP
clear
clc
wp1=0.2*pi;
wp2=0.8*pi;
ws1=0.4*pi;
ws2=0.6*pi
tr_width=min((wp1-ws1),(ws2-wp2));
N=ceil(6.2*pi/tr_width);
n=0:1:N-1;
wc1=(wp1+ws1);wc2=(ws2+wp2);%理想LPF截止频

hd=ideal_bs(wc1,wc2,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:wp1/delta_w+1)));%实际带通波动
rp1
as1=-round(max(db1(ws1/delta_w+1:1:ws2/delta_w+1)));%最小带阻衰减
as1
[db2,mag2,pha2,w]=freqz_m(b2,1);%海明窗
delta_w=2*pi/1000;
rp2=-(min(db2(1:1:wp1/delta_w+1)));%实际带通波动
rp2
as2=-round(max(db2(ws1/delta_w+1:1:ws2/delta_w+1)));%最小带阻衰减
as2
[db3,mag3,pha3,w]=freqz_m(b3,1);%blackman
delta_w=2*pi/1000;
rp3=-(min(db3(1:1:wp1/delta_w+1)));%实际带通波动
rp3
as3=-round(max(db3(ws1/delta_w+1:1:wp2/delta_w+1)));%最小带阻衰减
as3
[db4,mag4,pha4,w]=freqz_m(b4,1);%kaiser
delta_w=2*pi/1000;
rp4=-(min(db4(1:1:wp1/delta_w+1)));%实际带通波动
rp4
as4=-round(max(db4(ws1/delta_w+1:1:ws2/delta_w+1)));%最小带阻衰减
as4
figure(1)
stem(n,hd);
title('理想脉冲响应')
axis([0 N-1 -0.4 0.5]);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 + -