【问题标题】:How can i get coefficients of filter in matlab如何在matlab中获取滤波器系数
【发布时间】:2015-01-27 04:42:13
【问题描述】:

我使用matlab中的设计函数设计了带通滤波器“椭圆”,我怎样才能得到这个滤波器[A,B]的系数。我在工作区中看到包含一些文件(比例值、状态 sosMatrix)的高清文件。

【问题讨论】:

    标签: matlab filter


    【解决方案1】:

    您可以使用 DSP System Toolbox 的coeffs

    s = coeffs(Hd);
    s.Numerator
    

    编辑: 您实际上是在使用级联二阶滤波器,因此它不是用分子 B 和分母 A 定义的,而是级联部分的系数在 Hd.sosMatrix 中:

    fvtool:

    sos 是一个 K×6 矩阵,其中节数 K 必须大于或等于 2。如果节数小于 2,则 fvtool 将输入视为分子向量。每行 sos 对应于二阶(双二阶)滤波器的系数。 sos矩阵的第i行对应[bi(1)bi(2)bi(3)ai(1)ai(2)ai(3)]。

    因此,如果您确实需要具有系数 [A,B] 的等效经典滤波器,您最好的选择是使用 sos2tf,但这只是一个近似值:

    [B,A] = sos2tf(Hd.sosMatrix,Hd.ScaleValues);
    

    【讨论】:

    • 感谢您的快速回复,我已经使用了它,但它给了我相同的文件(scalevalues,states sosMatrix)。我想找到 [A, B]。
    • 您能否发布您用于创建过滤器的确切代码。
    • h = fdesign.bandpass(Fstop1, Fpass1, Fpass2, Fstop2, Astop1, Apass, ... Astop2, Fs);高清=设计(h,'椭圆')
    猜你喜欢
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多