FIR滤波器设计

% 【例4-7】根据下列技术指标,设计一个FIR数字低通滤波器:
%            =0.3π, =0.4π, =3dB, =50dB
% 选择一个适当的窗函数,确定单位冲激响应,绘出所设计的滤波器的幅度响应。
% 根据窗函数最小阻带衰减的特性表4-2,可采用海明窗和布拉克曼窗可提供大于50dB的衰减。本例选择海明窗,其过渡带为6.6π/N,因此具有较小的阶次
% 例程4-13  利用海明窗设计Ⅱ型数字低通滤波器
clear all;
Wp=0.2*pi;
Ws=0.4*pi;
rp=3;
rs=50;
Rip=10^(-rp/20);
Atn=10^(-rs/20);

tr_width=Ws-Wp;                         %过渡带宽度
N=ceil(6.6*pi/tr_width)+1                    %滤波器长度
n=0:1:N-1;
Wc=(Ws+Wp)/2;                         %理想低通滤波器的截止频率
hd=ideal_lp1(Wc,N);                      %理想低通滤波器的单位冲激响应
w_ham=(hamming (N))';                    %海明窗
h=hd.*w_ham;                           %截取得到实际的单位脉冲响应

[db,mag,pha,grd,w]=freqz_m2(h,[1]);              %计算实际滤波器的幅度响应

delta_w=2*pi/1000;
Ap=-(min(db(1:1:Wp/delta_w+1)))            %实际通带纹波
As=-(max(db(Ws/delta_w+1:1:501)))     %实际阻带纹波

figure(1);
subplot(221);
stem(n,hd);
title('理想单位脉冲响应hd(n)');

subplot(222);
stem(n,w_ham);
title('海明窗w(n)');

subplot(223);
stem(n,h);
title('实际单位脉冲响应hd(n)');

subplot(224);
plot(w/pi,db);
title('幅度响应(dB)');
axis([0,1,-100,10]);

figure(2);
subplot(221);
plot(w/pi,mag);
title('幅频特性');
xlabel('w(/pi)');
ylabel('|H(jw)|');
axis([0,1,0,1.2]);
set(gca,'XTickMode','manual','XTick',[Wp/pi Ws/pi]);
set(gca,'YTickMode','manual','YTick',[Atn Rip]);
grid

subplot(222);
plot(w/pi,db);
title('幅频特性(db)');
xlabel('w(/pi)');
ylabel('dB');
axis([0,1,-100,5]);
set(gca,'XTickMode','manual','XTick',[Wp/pi Ws/pi]);
set(gca,'YTickMode','manual','YTick',[-rs -rp 0]);
grid

subplot(223);
plot(w/pi,pha/pi);
title('相频特性');
xlabel('w(/pi)');
ylabel('pha(/pi)');
axis([0,1,-1,1]);
set(gca,'XTickMode','manual','XTick',[Wp/pi Ws/pi]);
grid

subplot(224);
plot(w/pi,grd);
title('群延时');
xlabel('w(/pi)');
ylabel('Sample');
axis([0,1,0,50]);
set(gca,'XTickMode','manual','XTick',[Wp/pi Ws/pi]);
grid

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值