算术平均滤波法MATLAB代码
时间: 2024-10-17 07:04:14 浏览: 41
算术平均滤波法是一种常用的信号处理技术,它通过计算一组邻近样本值的简单平均来平滑信号并减少噪声。在MATLAB中,你可以使用`filter`函数或者简单的循环来实现这个过程。下面是一个简单的算术平均滤波的MATLAB代码示例:
```matlab
function smoothed_signal = arithmetic_filter(input_signal, filter_length)
% 确定滤波长度
if filter_length < 1 || isnan(filter_length) || ~isnumeric(filter_length)
error('Invalid filter length. It should be a positive integer.');
end
% 初始化滤波后的信号
smoothed_signal = zeros(size(input_signal));
% 使用滑动窗口进行算术平均
for i = 1:filter_length:length(input_signal)
window_samples = input_signal(i-filter_length+1:i); % 取样窗口
smoothed_signal(i) = mean(window_samples); % 计算平均值
end
end
```
在这个代码中,`input_signal`是要进行滤波的原始信号,`filter_length`表示滤波窗口的大小(即每个点周围取多少个邻居)。然后,我们逐个窗口地计算平均值,并将结果保存到`smoothed_signal`中。
阅读全文