移动平均算法matlab程序
时间: 2023-09-26 15:02:42 浏览: 36
移动平均算法是一种常用的信号处理方法,用于平滑数据序列。下面是一个使用MATLAB编写的移动平均算法程序:
```matlab
% 假设一个数据序列存储在向量data中,移动窗口大小为windowSize
% 假设windowSize是一个正整数
function smoothedData = movingAverage(data, windowSize)
dataSize = length(data); % 获取数据序列的长度
smoothedData = zeros(1, dataSize); % 创建一个与输入数据大小相同的零向量
for i = 1:dataSize
% 计算窗口的开始和结束索引
startIdx = max(1, i - floor(windowSize/2));
endIdx = min(dataSize, i + floor(windowSize/2));
% 计算窗口内数据的平均值
smoothedData(i) = mean(data(startIdx:endIdx));
end
end
```
上述程序中,移动平均算法的核心思想是对于数据序列中的每一个元素,计算其周围窗口大小内数据的平均值,并将该平均值赋值给输出序列中对应的位置。
程序首先获取输入数据序列的长度,并创建一个与输入数据大小相同的零向量以存储平滑后的数据。
然后,利用for循环遍历数据序列中的每一个元素。对于每一个元素,计算窗口的开始和结束索引,确保窗口内的数据不会超出序列的范围。
最后,通过计算窗口内数据的平均值,将该平均值赋值给输出序列中对应的位置。
最后,程序返回平滑后的数据序列。