【发布时间】:2021-09-21 06:50:15
【问题描述】:
我在 Matlab 中使用 filter() 函数来模拟一个系统及其逆。然而,当我试图验证逆系统是否按应有的方式工作时,我发现 H(z)H_i(Z) 不等于 1,这与逆系统的性质不符。这是我的代码:
function y2 = Inverse()
b = [2 0 0.5];
a = [1 0 -0.25];
fprintf('2y(n)+0.5y(n-2) = x(n)-0.25x(n-2)\n')
N = 30 ;
n =[0: N-1] ;
x = 0.8.^n;
y = filter(b,a,x);
subplot(3,2,1);stem(x,y);
y1 = filter(a,b,x);
subplot(3,2,2);stem(x,y1);
y2 = y.*y1;
end
在我看来,y2 应该是所有向量的向量。我是否在代码中犯了任何错误或误解了逆系统?
【问题讨论】:
-
您在任何时候都没有计算
H(z)*H_i(Z),您是在乘以过滤器的输出,而不是过滤器。这背后有一个完整的测量理论领域,除其他外,傅里叶变换、Z 变换等。它对我来说有点生疏,但 AFAIK 你不能随心所欲地乘法,傅里叶空间中的操作是不一样的比他们在信号空间中 -
谢谢。看来我过滤器()的用法错误。
标签: matlab vector filter signals