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;

EWMA_globa
EWMA_local

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值