# filt
指定离散传递函数的 DSP 格式
# 语法
sys = filt(num, den)
sys = filt(num, den, Ts)
sys = filt(M)
# 说明
在数字信号处理(DSP)中,通常将传递函数写成
filt 函数用于方便地指定 DSP 格式的传递函数。
sys = filt(num, den) 创建一个离散时间传递函数 sys,其分子为 num,分母为 den。采样时间未指定(sys.Ts = -1),输出 sys 是一个 TF 对象。
sys = filt(num, den, Ts) 进一步指定采样时间 Ts(以秒为单位)。
sys = filt(M) 指定一个增益矩阵为 M 的静态滤波器。
前面的任何语法都可以跟随属性名/属性值对,形式如下:
PropertyName, PropertyValue
每对属性指定模型的特定属性,例如输入名称或传递函数变量。
# 参数
对于 SISO 传递函数,num 和 den 是按
MIMO 传递函数被视为 SISO 传递函数的数组(每个 I/O 通道一个),每个传递函数都由其分子和分母表征。输入参数 num 和 den 是行向量的元胞数组,使得:
num 和 den 的行数与输出数相同,列数与输入数相同;
其 (i, j) 条目 num{i, j} 和 den{i, j} 指定从输入 j 到输出 i 的传递函数的分子和分母。
如果所有 SISO 条目具有相同的分母,则也可以将 den 设置为该公共分母的行向量表示。
# 示例
DSP 形式的离散时间传递函数
创建默认采样时间(Ts=1)的离散传递函数:
clc; clear;
num = [0 1 0.5]; % 分子系数
den = [1 -1.5 0.7]; % 分母系数
分子 num = [0 1 0.5],分母 den = [1 -1.5 0.7],表示系统:
sys = filt(num, den)
sys =
1.0z^-1 + 0.5z^-2
-----------------------
1.0 - 1.5z^-1 + 0.7z^-2
Delay: 0.0
Sample Time: -1 (seconds)
离散时间传递函数模型
创建自定义采样时间(Ts=0.1)的离散系统:
Ts = 0.1;
sys_ts = filt(num, den, Ts)
sys_ts =
1.0z^-1 + 0.5z^-2
-----------------------
1.0 - 1.5z^-1 + 0.7z^-2
Delay: 0.0
Sample Time: 0.1 (seconds)
离散时间传递函数模型
通过 bode 图对比不同采样时间对频率响应的影响。
% 对比频率响应
figure;
bode(sys, sys_ts);
legend('Ts=1', ['Ts=' num2str(Ts)]);
title('不同采样时间的Bode图对比');
grid on;
通过标量输入 M = 2.5 创建静态增益系统:
M = 2.5; % 静态增益值
sys_gain = filt(M)
sys_gain =
2.5
---
1.0
Delay: 0.0
Sample Time: -1 (seconds)
离散时间传递函数模型
# 提示
filt 的行为类似于将 Variable 属性设置为