www.gusucode.com > dsp 案例源码程序 matlab代码 > dsp/ComputeTheMovingAverageOfANoisyRampSignalExample.m

    %% Moving Average of Noisy Ramp Signal
% Compute the moving average of a noisy ramp signal using the 
% |dsp.MovingAverage| object.

%% Initialization
% Set up |movavgWindow| and |movavgExp| objects. |movavgWindow|
% uses the sliding window method with a window length of 10. |movavgExp|
% uses the exponentially weighting method with a forgetting factor
% of 0.9. Create a time scope for viewing the output.
FrameLength = 1001;
Fs = 1000;
movavgWindow = dsp.MovingAverage(10);
movavgExp = dsp.MovingAverage('Method','Exponential weighting',...
    'ForgettingFactor',0.9);
scope  = dsp.TimeScope('SampleRate',Fs,...
    'TimeSpanOverrunAction','Scroll',...
    'TimeSpan',2,...
    'ShowGrid',true,...
    'YLimits',[-0.5 1.5]);
title = 'Sliding Window Average(blue) and Exponentially Weighted Average(red)';
scope.Title = title;

%% Compute the Average
% Generate a ramp signal with an amplitude of 1.0 and a time span of 2
% seconds. Apply the sliding window average and exponentially weighted
% average to the ramp. View the output on the time scope.
for i = 1:500
    t = (0:0.001:1)';
    unitstep = t>=0;
    ramp = t.*unitstep;
    x = ramp + 0.1 * randn(FrameLength,1);
    y1 = movavgWindow(x);
    y2 = movavgExp(x);
    scope([x,y1,y2]);
end