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

📄 bs.m

📁 FIR滤波器设计
💻 M
字号:
function bs
clear all;                     

Wpl=0.2*pi;

Wph=0.8*pi;

Wsl=0.4*pi;

Wsh=0.6*pi;

tr_width=min((Wsl-Wpl),(Wph-Wsh));                            %过渡带宽度

N=ceil(6.2*pi/tr_width)                                          %滤波器长度

n=0:1:N-1;

Wcl=(Wsl+Wpl)/2;                                           %理想低通滤波器的截止频率

Wch=(Wsh+Wph)/2;

hd=ideal_bs(Wcl,Wch,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,w1]=freqz_m(b1,[1]);                                 %计算实际滤波器的幅度响应
[db2,mag2,pha2,w2]=freqz_m(b2,[1]);  
[db3,mag3,pha3,w3]=freqz_m(b3,[1]);  
[db4,mag4,pha4,w4]=freqz_m(b4,[1]);  
delta_w=2*pi/1000;

Ap1=-(min(db1(1:1:Wpl/delta_w+1)))                         %实际通带纹波

As1=-round(max(db1(Wsl/delta_w+1:1:Wsh/delta_w+1)))    %实际阻带纹波
Ap2=-(min(db2(1:1:Wpl/delta_w+1)))                         %实际通带纹波

As=-round(max(db2(Wsl/delta_w+1:1:Wsh/delta_w+1)))    %实际阻带纹波
Ap3=-(min(db3(1:1:Wpl/delta_w+1)))                         %实际通带纹波

As3=-round(max(db3(Wsl/delta_w+1:1:Wsh/delta_w+1)))    %实际阻带纹波
Ap4=-(min(db4(1:1:Wpl/delta_w+1)))                         %实际通带纹波

As4=-round(max(db4(Wsl/delta_w+1:1:Wsh/delta_w+1)))    %实际阻带纹波

figure(1)
stem(n,hd);
title('理想脉冲响应')
axis([0 N-1 -0.4 1]);xlabel('n');ylabel('hd(n)');

figure(2)
subplot(2,2,1)
plot(w1,mag1,':b')
legend('汉宁窗带阻滤波器')
subplot(2,2,2)
plot(w2,mag2,'-.g')
legend('海明窗带阻滤波器')
subplot(2,2,3)
plot(w3,mag3,'--r')
legend('布来克曼窗带阻滤波器')
subplot(2,2,4)
plot(w4,mag4,'-c')
legend('凯泽窗带阻滤波器')

figure(3)

plot(w1,mag1,':b',w2,mag2,'-.g',w3,mag3,'--r',w4,mag4,'-c')
legend('汉宁窗带阻滤波器','海明窗带阻滤波器','布来克曼窗带阻滤波器','凯泽窗带阻滤波器')


figure(4)
plot(w1/pi,20*log10(mag1),':b',w2/pi,20*log10(mag2),'-.k',w3/pi,20*log10(mag3),'--r',w4/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 + -