【问题标题】:How to combine filter coefficients for multiple stop band filters - Matlab如何组合多个阻带滤波器的滤波器系数 - Matlab
【发布时间】:2013-03-27 07:20:53
【问题描述】:

我想将多个阻带滤波器组合成一个滤波器,以了解当移除多个波段时滤波器如何改变相位。

这个question 提供了两个滤波器的解决方案,但是如果有两个以上的滤波器频带怎么办?

这是一张显示每个单独滤波器的增益和相位的图像。

所以我的问题是:

  1. 如果我在五个单独的操作中过滤数据,该阶段会发生什么情况
  2. 我可以将过滤步骤合并为一个步骤吗?

我在 Matlab 中使用了 butter 和 freqz 函数。

[b,a] = butter(order,cutoff/(fs/2),'high');
[h,w] = freqz(b,a,fs);

谢谢。

【问题讨论】:

  • 请注意,如果您在绘制之前unwrap the phase,您可能能够更清楚地看到结果;相位的不连续性实际上并不存在:这只是从freqz 返回的相位始终在[-pi, pi] 范围内的结果。您可能还想通过绘制20 * log10(abs(h)) 来绘制dB re 1 中的响应。
  • 谢谢,很好的建议。

标签: matlab filter signal-processing


【解决方案1】:

相位和幅度 (dB) 将相加。如果你想在Matlab上看到你需要cascate过滤器,例如:

% computes the coefficients
[b1,a1]=butter(8,0.6);          
[b2,a2]=butter(8,0.4,'high');   
[b3,a3]=butter(8,0.2,'high');   
% creates the filters
H1=dfilt.df2t(b1,a1);
H2=dfilt.df2t(b2,a2);
H3=dfilt.df2t(b3,a3);
% creates the cascate filter
Hcas=dfilt.cascade(H1,H2,H3)   
% plot    
Hcas.freqz()

【讨论】:

    【解决方案2】:
    1. 卷积过程中相位效应累加,总相位效应是所有滤波器相位效应的总和

    2. 是的,你只需要将它们全部卷积即可得到新的过滤器:conv(conv(filter1,filter2),filter3)

    【讨论】:

    • 有趣。如果我对滤波器系数进行卷积,然后相位图应该在每个阻带显示从 0 到 -2pi 然后从 -2pi 到 -4pi 等的步骤?我试试看。
    • 不,如果您以图形方式对滤波器相位响应求和,您可以在单相图中观察到 5 个相位镜头
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多