sos2cell
将二阶段矩阵转换为任何类型的向量。
库::`工程师`
争论
输入参数
# sos — 二阶段的表示
+
矩阵
Details
二阶段的表示,定义为矩阵。 论点 sos —这是一个大小矩阵 ,在哪里 -二阶段数:
其中的行包含分子和分母的系数
| 数据类型 |
|
输出参数
# 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 转换大小矩阵 2 上 6 使用函数获得 tf2sos,成任意类型的向量 c 大小 1 上 2. 让我们显示向量的第一个元素的第二个元素 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