ss
将离散时间滤波器 System object 转换为状态空间表示
说明
示例
设计一个四阶低通 SOS 滤波器对象,归一化截止频率为 0.4。
[z,p,k] = ellip(4,1,60,.4); % Set up the filter [sosMatrix,scaleValues] = zp2sos(z,p,k); [num,den] = sos2ctf(sosMatrix); sosFilt = dsp.SOSFilter(Structure='Direct form I',... Numerator=num,Denominator=den,... ScaleValues=scaleValues)
sosFilt =
dsp.SOSFilter with properties:
Structure: 'Direct form I'
CoefficientSource: 'Property'
Numerator: [2×3 double]
Denominator: [2×3 double]
HasScaleValues: true
ScaleValues: [0.0351 1 1]
Show all properties
使用 ss 函数将设计的滤波器转换为状态空间形式。
[A,B,C,D] = ss(sosFilt)
A = 8×8
0 0 0 0 0 0 0 0
1.0000 0 0 0 0 0 0 0
1.8116 1.0000 1.0095 -0.3954 0 0 0 0
0 0 1.0000 0 0 0 0 0
1.8116 1.0000 1.0095 -0.3954 0 0 0 0
0 0 0 0 1.0000 0 0 0
1.8116 1.0000 1.0095 -0.3954 1.1484 1.0000 0.5581 -0.7823
0 0 0 0 0 0 1.0000 0
B = 8×1
0.0351
0
0.0351
0
0.0351
0
0.0351
0
C = 1×8
1.8116 1.0000 1.0095 -0.3954 1.1484 1.0000 0.5581 -0.7823
D = 0.0351
输入参数
滤波器分析中使用的算术,指定为 'double'、'single' 或 'Fixed'。当未指定算术输入且滤波器 System object 未锁定时,分析工具假定为双精度滤波器。当未指定算术输入且 System object 锁定时,该函数基于锁定输入的数据类型执行分析。
'Fixed' 值仅适用于具有定点属性的滤波器 System object。
当 'Arithmetic' 输入参量指定为 'Fixed' 且滤波器对象的系数数据类型设置为 'Same word length as input' 时,算术分析取决于 System object 是未锁定还是锁定。
未锁定 - 分析对象函数无法确定系数数据类型。该函数假定系数数据类型为有符号,具有 16 位字长,并且是自动定标的。该函数基于此假设执行定点分析。
锁定 - 当输入数据类型为
'double'或'single'时,分析对象函数无法确定系数数据类型。该函数假定系数的数据类型为有符号,具有 16 位字长,并且是自动定标的。该函数基于此假设执行定点分析。
要检查 System object 是锁定还是未锁定,请使用 isLocked 函数。
当算术输入指定为 'Fixed' 且滤波器对象的系数数据类型设置为自定义数值类型时,对象函数基于自定义数值数据类型执行定点分析。
输出参量
状态矩阵,以 N×N 矩阵形式返回,其中 N 是滤波器阶数。
数据类型: double
输入矩阵,以 N×1 列向量形式返回,表示线性系统的输入数目为 1。N 是滤波器阶数。
数据类型: double
输出矩阵,以 1×N 行向量形式返回,表示线性系统的输出数目为 1。N 是滤波器阶数。
数据类型: double
馈通矩阵,以标量形式返回,表示线性系统的输入和输出数目为 1。
数据类型: double
版本历史记录
在 R2011a 中推出dsp.BiquadFilter 对象在使用时会发出警告,并将在以后的版本中删除。请改用 dsp.SOSFilter 对象。
更新代码
下表说明对象的典型用法,并解释如何更新现有代码以使用 dsp.SOSFilter 对象。
| 不推荐使用 | 推荐的替代项 |
|---|---|
[z,p,k] = butter(10,2000/(8000/2)); [s,g] = zp2sos(z,p,k); biquad = dsp.BiquadFilter(Structure='Direct form I',... SOSMatrix=s,ScaleValues=g); [A,B,C,D] = ss(biquad) | [z,p,k] = butter(10,2000/(8000/2)); [s,g] = zp2sos(z,p,k); [num,den] = sos2ctf(s); sosFilter = dsp.SOSFilter(Numerator=num,... Denominator=den,... ScaleValues=g,... Structure="Direct form I"); [A,B,C,D] = ss(sosFilter) |
从 R2024b 开始,此函数支持 dsp.DCBlocker 对象。
从 R2023b 开始,ss 分析函数支持 dsp.ParallelFilter 对象。
dsp.BiquadFilter 对象将在以后的版本中删除。请改用 dsp.SOSFilter 对象。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)