Clear Filters
Clear Filters

Trouble with Implementing Moving Average Filter in MATLAB

24 views (last 30 days)
I am encountering difficulties while trying to implement a moving average filter in MATLAB. I have a code snippet that I believe should work, but I am getting unexpected results. Here is the code snippet that I have tried: %Input data inputData = [1, 2, 3, 4, 5, 6, 7, 8, 9]; windowSize = 3; % Moving average filter implementation filteredData = zeros(size(inputData)); for i = 1:length(inputData) startIndex = max(1, i - windowSize); endIndex = min(length(inputData), i + windowSize); filteredData(i) = mean(inputData(startIndex:endIndex)); end

Answers (2)

Chunru
Chunru on 30 Jun 2023
Edited: Chunru on 30 Jun 2023
%Input data
inputData = [1, 2, 3, 4, 5, 6, 7, 8, 9];
windowSize = 3;
% use matlab function
filteredData = movmean(inputData, windowSize)
filteredData = 1×9
1.5000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 8.5000
% Moving average filter implementation
wS = floor((windowSize-1)/2);
filteredData = zeros(size(inputData));
for i = 1:length(inputData)
startIndex = max(1, i - wS);
endIndex = min(length(inputData), i + wS);
filteredData(i) = mean(inputData(startIndex:endIndex));
end
filteredData
filteredData = 1×9
1.5000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 8.5000

Harshavardhan Putta
Harshavardhan Putta on 30 Jun 2023
I understand that you're encountering difficulties while implementing a moving average filter in MATLAB. You can use the movmean function in MATLAB to implement a moving average filter. The movmean function calculates the moving average of a given data sequence using a specified window size.
% Input data
inputData = [1, 2, 3, 4, 5, 6, 7, 8, 9];
windowSize = 3;
% Moving average filter implementation using movmean
filteredData = movmean(inputData, windowSize);
disp(filteredData);
Please refer to the following documentation for more information.
I hope it helps!

Categories

Find more on Startup and Shutdown in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!