我需要计算一个加权移动平均线的循环和存储信息。权重可以是线性的,因此旧样本的权重小于新样本。
例如,使用20个样本窗口,我的权重向量将是:
[1 2 3 4 5 ... 20]
我正在使用以下公式来计算移动平均值:
newMean = currMean + (newSample - currMean)/WindowSize
现在我需要“注射”体重。
我所知道的: 1.我正在考虑哪个样本(第14 ......第26 ......),我可以算数。 2.当然,我可以知道currMean
我能知道但我不想这样做: 1.存储所有样本(在我的情况下,它们是1200 x 1980 x 3矩阵,我根本无法存储它们)。
我目前正在使用Matlab,但我真的不需要代码,只需要概念,如果存在的话。
谢谢。
答案 0 :(得分:0)
研究数字信号处理技术。您正在描述FIR滤波器,它可以实现为卷积,也可以实现为存储器效率电路。基本上,您可以将其重写为递归方程,仅保留过滤器长度过去的过滤中间状态变量。 MATLAB在filter
函数中执行此操作(您可以链接内部状态以继续过滤)。请参阅filter
的文档,我还建议您阅读DSP教科书。