matlab实现zbar_scan_y中的EMWA滤波

2016年3月3日16:32:50

第一步EMWA滤波

Exponentially Weighted Moving Average(EWMA)指数加权移动平均是一种常用的序列数据处理方式,如下:

在时间 t, 根据实际的观测值(或量测值)我们可以求取 EWMA(t)如下:

EWMA(t ) = λY(t)+ ( 1-λ) EWMA(t-1) for t = 1, 2, …, n.

  • EWMA(t):t时刻的估计值
  • Y(t): t 时间之量测值﹐
  • n is the number of observations to be monitored including EWMA0
  • λ ( 0 < λ< 1 ) ﹐表EWMA对于历史量测值之权重系数﹐其值越接近1,表对过去量测值的权重较低

从另一个角度看, λ 决定了EWM A估计器跟踪实际数据突然发生变化的能力,即时效性, 显然随着λ 增大, 估计器的时效性就越强,反之,越弱;另一方面,由于 λ 的存在,EWMA还表现出一定的吸收瞬时突发的能力,这种能力称为平稳性。显然随着 λ 减小, 估计器的平稳性增强,反之降低。1

Img = imread('pic/barcode.bmp');
data = double(Img(50,:));
len = length(data);
%EWMA filter
EWMA_WEIGHT = 0.78;
y = data(1);
y0 = zeros(1,len);
y0(1:3) = data(1:3);
y00=y;y01=y;y02=y;y03=y;
y11=0;y12=0;
y21=0;y22=0;

for x = 4:len
    y = data(x);
    y01 = y0(x-1);
    y00 = y01 + (y-y01) * EWMA_WEIGHT;
    y0(x) = y00;
    y02 = y0(x-2);
    y03 = y0(x-3);
end
figure(1);
plot(data);
hold on;
plot(y0);
hold off;

matlab实现zbar_scan_y中的EMWA滤波_第1张图片
matlab实现zbar_scan_y中的EMWA滤波_第2张图片


  1. EWMA 移动平均模型http://www.360doc.com/content/11/1116/10/7242176_164724098.shtml ↩

你可能感兴趣的:(笔记)