主要内容

filtic

转置直接 II 型滤波器实现的初始条件

说明

z = filtic(b,a,y,x) 在给定过去输出 y 和输入 x 的情况下,为转置直接 II 型滤波器实现中的延迟找到初始条件 z。向量 ba 分别表示滤波器传递函数的分子系数和分母系数。

z = filtic(b,a,y) 假定输入 x 在过去为 0。

示例

示例

全部折叠

确定以下方程组的零输入响应:y(n)+1.12y(n-1)=0.1x(n)+0.2x(n-1),初始条件为 y(-1)=1。设置分子系数和分母系数以及输出的初始条件。

b = [0.1 0.2];
a = [1 1.12];
Y = 1;

计算系统的零输入初始条件。

xic = filtic(b,a,Y);

计算零输入响应。

yzi = filter(b,a,zeros(1,20),xic);
stem(yzi)

Figure contains an axes object. The axes object contains an object of type stem.

输入参数

全部折叠

传递函数系数,指定为向量。

示例: b = [1 3 3 1]/6a = [3 0 1 0]/3 指定一个归一化 3 dB 频率为 0.5π 弧度/采样点的三阶巴特沃斯滤波器。

数据类型: double

过去输出,指定为向量。向量 y 包含最近的输出在前,最旧的输出在后,如

y=[y(1),y(2),y(3),,y(m)]

中所示,其中 mlength(a)-1(分母阶数)。如果 length(y) 小于 m,则函数用零将其填充至长度 m

数据类型: double

过去输入,指定为向量。向量 x 包含最近的输入在前,最旧的输入在后,如

x=[x(1),x(2),x(3),,x(n)]

中所示,其中 nlength(b)-1(分子阶数)。如果 length(x) 小于 n,则函数用零将其填充至长度 n

数据类型: double

输出参量

全部折叠

初始条件,以列向量形式返回。z 的长度等于 nm 中的较大者。z 描述在给定过去输入 x 和过去输出 y 的情况下的延迟状态。

算法

filtic 函数执行反向差分方程以获取延迟状态 wx 中超出 x(n-1) 的元素和 y 中超出 y(m-1) 的元素是不必要的,因此 filtic 会忽略它们。

转置直接 II 型结构如下图所示,其中 n - 1 是滤波器阶数。如果您的反馈和前馈滤波器阶数不同,您可以将较高阶的项视为 0。例如,对于具有 a = [1 2]b = [2 3 2 4] 的滤波器,您可以假设 a = [1 2 0 0]

参考

[1] Oppenheim, A.V., and R.W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, pp. 296, 301-302.

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

|