AnyMath 文档

sos2tf

将数字滤波器的二阶段的数据转换成传递函数。

库::`工程师`

语法

函数调用

* [参数:ba]=sos2tf(<参数:sos>>) -返回以二阶段形式描述的离散系统的传递函数的系数 [参数:sos].

* [参数:ba]=sos2tf(<参数:sos>>,<参数:g>>) -返回以二阶段形式描述的离散系统的传递函数的系数 [参数:sos] 具有增益因子 [参数:g].

争论

输入参数

# *sos* — 二阶段的表示

+ 矩阵

Details

二阶段的表示,定义为矩阵。 论点 sos —这是一个大小矩阵

其中的行包含分子和分母的系数 函数的二阶段 :

数据类型

漂浮64</无翻译> 支持复数::是

# *g*是 系统的总增益

+ 标量,标量

Details

系统的总增益,作为实标量给出。

数据类型

漂浮64</无翻译>

输出参数

# *b,a*是 传递函数的系数

+ 向量资料

Details

作为行向量返回的传递函数的系数。 输出参数 ba 它们包含函数的分子和分母的系数 度降序存储 :

例子:

使用传递函数的二阶分区系统的表示

Details

让我们使用传递函数计算一个简单的二阶分区系统的表示。

import EngeeDSP.Functions: sos2tf

sos = [1  1  1  1  0 -1; -2  3  1  1 10  1]
b, a = sos2tf(sos)
println("b = ", b, "\na = ", a)
b = [-2.0 1.0 2.0 4.0 1.0]
a = [1.0 10.0 0.0 -10.0 -1.0]

算法

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