AnyMath 文档

sos2cell

将二阶段矩阵转换为任何类型的向量。

库::`工程师`

语法

函数调用

争论

输入参数

# sos — 二阶段的表示

+ 矩阵

Details

二阶段的表示,定义为矩阵。 论点 sos —这是一个大小矩阵 ,在哪里 -二阶段数:

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

数据类型

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

# g — 比例增益因子

+ 1 (默认情况下)| 标量,标量

Details

的比例增益因子,设置为标量。

数据类型

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

输出参数

# cll — 将二阶段表示为任何类型的向量

+ 任何类型的向量

Details

作为类型的双元素向量返回的二阶段的表示形式 任何 以下长度:

  • 元素—如果参数的值是 [参数:g] 同样 1 或者如果没有设置。 任何类型的向量的每个元素对应于一个二阶段。 例如,矢量元素 cll[k] 包含系数从 -矩阵的第一部分 [参数:sos].

    cll[k] = [sos(k, 1:3) sos(k, 4:6)]
  • 元素-如果参数的值是 [参数:g] 不同于 1. 向量的第一个元素 cll 包含参数中指定的增益因子 [参数:g]. 任何类型的向量的每个后续元素对应于一个二阶段。 例如,矢量元素 cll[k+1] 包含系数从 -矩阵的第一部分 [参数:sos].

    cll[1] = [g 1]
    cll[k+1] = [sos(k, 1:3) sos(k, 4:6)]

例子:

椭圆滤波器二阶段的矢量

Details

让我们创建一个椭圆低通滤波器。 4-带宽中有波纹的顺序 0.5 动臂带中的dB和衰减 20 分贝。 带宽限制为 0.6 从奈奎斯特频率。 我们将传递函数转换为二阶段的矩阵。

import EngeeDSP.Functions: ellip, tf2sos

b, a = ellip(4, 0.5, 20, 0.6)
m = tf2sos(b, a)

使用函数 sos2cell 转换大小矩阵 26 使用函数获得 tf2sos,成任意类型的向量 c 大小 12. 让我们显示向量的第一个元素的第二个元素 c. 让我们确保它包含二阶矩阵第一部分分母的系数。 m.

c = sos2cell(m)
compare = [c[1][2]; m[1, 4:6]']
2×3 Matrix{Float64}:
 1.0  0.167735  0.257534
 1.0  0.167735  0.257534