【问题标题】:How can I turn an fir1 stop-band filter into a multiple stop-band filter如何将 fir1 阻带滤波器变成多阻带滤波器
【发布时间】:2012-05-15 11:40:27
【问题描述】:

单个带阻滤波器可由fir1(N,[w1 w2],'stop')构成,其中N为滤波器系数个数,w1为起始终止频率,w2为终止终止频率,如何我可以把它变成一个多阻带滤波器吗?有没有直接的方法可以做到这一点?

【问题讨论】:

  • 如果您想屏蔽 2 组频率 [w1:w2] 和 [w3:w4],为什么不直接构建 2 个单独的带阻滤波器?
  • 另一种选择是使用反向过滤带。在伪代码中 - 1.) 执行 x_filt=lowpass(x_orig,w<w2) 后跟 2.) 执行 x_filt=highpass(x_filt,w>w1),然后执行 3.) x_new=x_orig-x_filt

标签: matlab


【解决方案1】:

使用 'DC-0' 而不是 'stop' 并给出每个波段的开始和结束:

bd1start=1500/(fs/2);
bd1end=3500/(fs/2);

bd2start=6500/(fs/2);
bd2end=8500/(fs/2);
order=64;
bb=fir1( order, [bd1start bd1end bd2start bd2end ],'DC-1' ); 

【讨论】:

    【解决方案2】:

    使用 conv 确定合适的系数:

    b =  fir1(50,[0.2 0.3],'stop');
    b2 =  fir1(50,[0.7 0.8],'stop');
    freqz(conv(b,b2),1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-27
      • 2020-08-24
      • 2015-09-12
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多