Matlab中firpm函数设计具有非对称衰减的 FIR 带通滤波器

使用 Parks-McClellan 算法(firpm)创建一个 50 阶等波纹 FIR 带通滤波器,要求如下:

以 1 kHz 采样频率,通带为 200 Hz 和 300 Hz 之间的频率,并且通带两侧的过渡带宽度为50 Hz。使优化拟合权重为权重为 3 的低频阻带、权重为 1 的通带和权重为 100 的高频阻带,并显示滤波器的对数模图。

 代码:

%滤波器阶数及采样频率
N = 50;               
fs = 1e3;   

%截止频率以及通频带
Fstop1 = 150;
Fpass1 = 200;
Fpass2 = 300;
Fstop2 = 350;

%三段频段的权值
Wstop1 = 3;
Wpass = 1;
Wstop2 =100;


b = firpm(N,[0 Fstop1 Fpass1 Fpass2 Fstop2 fs/2]/(fs/2), ...
    [0 0 1 1 0 0],[Wstop1 Wpass Wstop2]);

fvtool(b,1)

如图:

 函数结构: b = firpm(n,f,a,w)​​​​​​

 其中f为归一化后的频率段,参考频段归一化

当然我们也可以通过上图进行验证归一化结果:

[150 200 300 350] / (1000 /2) = [0.3  0.4  0.6  0.7] , 对应图横坐标上截止频率及通频带的点

matlab更多关于滤波器参数设定参考:signal_tb.pdf (udel.edu)

 

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值