【发布时间】:2017-04-20 13:48:03
【问题描述】:
我想实现一个滞后 2 的移动平均模型,其函数形式为:
y[n] = h1*x[n] + h2*x[n-1] + h3*x[n-2]
有系数,h_true = [h1, h2, h3];
输出是n 处的标量值数字。
Matlab 具有filter() 函数,可用于实现 MA 或 AR 模型。但是,当我按原样实现方程式和使用filter() 函数时,输出是不同的。正确的方法是什么?请在下面找到代码。
N = 10;
x = rand(1,N);
h_true = [1, 0.6, 0.3]; %h1 = 1, h2 = 0.6; h3 = 0.3
y(1) = 0.0;
y(2) = 0.0;
for i =3 : N
y(i) = h_true(1)*x(i) + h_true(2)*x(i-1) + h_true(3)*x(i-2);
end
filtered_y = filter(h_true,1,x);
y 和 filtered_y 不同
【问题讨论】:
标签: matlab filtering signal-processing moving-average