1 前言
在实际应用中,我们经常会用到滤波算法处理一些传感器数据。例如,中值滤波算法。中值滤波是一种非线性滤波技术,常用于去除信号中的噪声。与线性滤波方法(如平均滤波)不同,中值滤波使用窗口内的中值来替代当前位置的值,因此它对于处理脉冲噪声等离群值非常有效。
2 中值滤波
代码实例
下面用中值滤波器来处理一段车辆的加速度信号:
% 生成模拟车辆加速度信号
t = 0:0.01:10; % 时间范围
acc_signal = sin(2*pi*0.5*t) + 0.2*randn(size(t)); % 加速度信号 + 随机噪声
% 使用自适应中值滤波对加速度信号进行处理
window_size = 5; % 初始窗口大小
filtered_signal = medfilt1(acc_signal, window_size);
% 绘制原始信号和滤波后的信号
figure;
subplot(2,