www.gusucode.com > dsp 案例源码程序 matlab代码 > dsp/ComputeMovingAverageUsingOnlyMATLABFunctionsCodeExample.m
%% Compute Moving Average Using Only MATLAB Functions % This example shows how to compute the moving average of a signal using % the |movmean| function. %% % The |movmean| function computes the 10-point moving average % of the noisy data coming from an accelerometer. The three columns in this % data represent the linear acceleration of the accelerometer in the % _X_-axis, _Y_-axis, and _Z_-axis, respectively. All the data is available % in a MAT file. Plot the moving average of the _X_-axis data. winLen = 10; accel = load('LSM9DS1accelData73.mat'); movAvg = movmean(accel.data,winLen,'Endpoints','fill'); plot([accel.data(:,1),movAvg(:,1)]); legend('Input','Moving average along X data'); %% % The data is not very large (7140 samples in each column) and is entirely % available for processing. The |movmean| function is designed to handle % such one-time computations. However, if the data is very large, such as % in the order of GB, or if the data is a live stream that needs to be % processed in real time, then use System objects. The System objects % divide the data into segments called frames and process each frame in an % iteration loop seamlessly. This approach is memory efficient, because % only one frame of data is processed at any given time. Also, the System % objects are optimized to handle states internally.