二阶IIR滤波器 利用Matlab求解级/并联结构

二阶IIR滤波器 利用Matlab/Octave求解级/并联结构


    



    当系统的阶数很高的时候,总是把它拆分成一个个二阶或者一阶的系统级联的形式来进行分析.

因此,分析二阶系统就很重要.


分析下面的例子

二阶IIR滤波器 利用Matlab求解级/并联结构_第1张图片


容易确定

y项系数a = [1 -5/4 3/4 -1/8]

x项系数b = [8 -4 11 -2]

利用matlab中的tf()函数可以创建传递函数

二阶IIR滤波器 利用Matlab求解级/并联结构_第2张图片


接着利用tf2sos()函数去把这个传递函数转换为二阶系统级联的形式

根据文档说明可以知道tf == transform function  sos == second order system


二阶IIR滤波器 利用Matlab求解级/并联结构_第3张图片


 SOS is an L by 6 matrix with the following structure:
        SOS = [ b01 b11 b21  1 a11 a21 
                b02 b12 b22  1 a12 a22
                ...
                b0L b1L b2L  1 a1L a2L ]
 
    Each row of the SOS matrix describes a 2nd order transfer function:
                  b0k +  b1k z^-1 +  b2k  z^-2
        Hk(z) =  ----------------------------
                   1 +  a1k z^-1 +  a2k  z^-2
    where k is the row index.
 
    G is a scalar which accounts for the overall gain of the system.


这里,我们得到的L等于2,于是

                     b01 +  b11 z^-1 +  b21  z^-2                1    -    0. 19 z^-1
        H1(z) =  ----------------------------                = -----------------------------------
                      1 +  a11 z^-1 +  a21  z^-2                 1 -0.31 z^-1 +1.316 z^-2 


同理可以得到H2(z)

如果已知sos矩阵,求传递函数也是很简单的,直接调用sos2tf()即可


利用sosfilt()求解二阶级联形式的系统对输入信号的输出.

二阶IIR滤波器 利用Matlab求解级/并联结构_第4张图片



shit ... 感觉好弱智无聊~...没时间自己写API实现了T_T








摄于二零一四年九月三十日

二阶IIR滤波器 利用Matlab求解级/并联结构_第5张图片



你可能感兴趣的:(二阶IIR滤波器 利用Matlab求解级/并联结构)