主要内容

sos2tf

将数字滤波器二阶节数据转换为传递函数形式

说明

[b,a] = sos2tf(sos) 返回由 sos 以二阶节形式描述的离散时间系统的传递函数系数。

[b,a] = sos2tf(sos,g) 返回由 sos 以二阶节形式描述且增益为 g 的离散时间系统的传递函数系数。

示例

示例

全部折叠

计算简单二阶节系统的传递函数表示。

sos = [1  1  1  1  0 -1; -2  3  1  1 10  1];
[b,a] = sos2tf(sos)
b = 1×5

    -2     1     2     4     1

a = 1×5

     1    10     0   -10    -1

输入参数

全部折叠

二阶节表示,指定为矩阵。sosL×6 矩阵

sos=[b01b11b211a11a21b02b12b221a12a22b0Lb1Lb2L1a1La2L]

其行包含 H(z) 的二阶节的分子系数和分母系数 bikaik

H(z)=gk=1LHk(z)=gk=1Lb0k+b1kz1+b2kz21+a1kz1+a2kz2.

示例: [2 4 2 6 0 2;3 3 0 6 0 0] 用于指定归一化 3 dB 频率为 0.5π 弧度/采样点的三阶巴特沃斯滤波器。

数据类型: double
复数支持:

整体系统增益,指定为实数标量。

数据类型: double

输出参量

全部折叠

传递函数系数,以行向量形式返回。ba 包含按 z 的降幂存储的 H(z) 的分子系数和分母系数:

H(z)=B(z)A(z)=b1+b2z1++bn+1zna1+a2z1++am+1zm.

算法

sos2tf 使用 conv 函数将所有分子和分母二次多项式相乘。对于更高阶滤波器(可能从 8 阶开始),在形成传递函数时可能会由于舍入误差出现数值问题。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |