Matlab 对不确定信号求平均

Matlab 对不确定信号求平均,matlab,filter,simulink,Matlab,Filter,Simulink,我试图平均一个信号,这是来我的simulink模型(未知的初始条件)。我可以按原样传递第一个值,但第二个值必须在传递前与第一个值求平均值,并且必须与前两个值的平均值求平均值,依此类推。对于第一种情况,我可以将初始条件设为0吗 但问题是信号的长度是未知的,我可以一直得到信号,直到我运行我的程序。我想到了移动平均滤波器,但不知道如何继续进行 如果有人能给我指出正确的方向。你想要一个累积移动平均线 它的方程式很简单 average=(newpoint+average*npoints)/(npoints

我试图平均一个信号,这是来我的simulink模型(未知的初始条件)。我可以按原样传递第一个值,但第二个值必须在传递前与第一个值求平均值,并且必须与前两个值的平均值求平均值,依此类推。对于第一种情况,我可以将初始条件设为0吗

但问题是信号的长度是未知的,我可以一直得到信号,直到我运行我的程序。我想到了移动平均滤波器,但不知道如何继续进行


如果有人能给我指出正确的方向。

你想要一个累积移动平均线

它的方程式很简单

average=(newpoint+average*npoints)/(npoints+1);
npoits++

如果您有DSP系统工具箱,则可以使用该块。关闭“指定窗口长度”以获取累积移动平均值。

我会尝试a:
y[n]=a*x[n]+(1-a)*y[n-1]
。这会自动为过去距离较远的输入样本提供较少的权重(指数级)。参数
a
控制块中过滤器的平均量或惯性。设置窗口长度Of给出累积移动平均值。我只是对你的配方感兴趣。是(1-a)还是(a-1)。那么a控制平均值的确切含义是什么呢?它是
1-a
。参数
a
控制lowpas滤波器的截止频率,即应用平均值的近似时间宽度。例如,我没有DSP工具箱,我试图使用延迟块手动实现它。但问题在于初始条件。我写错了,不可能是0。它必须与第一个值相同。