10s平滑均值滤波matlab
时间: 2023-12-02 12:42:15 浏览: 243
Matlab均值滤波
4星 · 用户满意度95%
以下是在MATLAB中进行10s平滑均值滤波的示例代码:
```matlab
% 假设数据存储在名为data的向量中
% 将数据分为10秒的时间段
time = 10; % 时间段长度(秒)
fs = 1000; % 采样率(Hz)
data_len = length(data);
num_segments = floor(data_len / (time * fs)); % 时间段数量
data_segmented = reshape(data(1:num_segments*time*fs), [time*fs, num_segments]); % 将数据分段
% 对每个时间段进行平滑均值滤波
window_size = 100; % 滤波窗口大小
data_filtered = zeros(size(data_segmented));
for i = 1:num_segments
data_filtered(:,i) = smooth(data_segmented(:,i), window_size);
end
% 将滤波后的数据合并
data_smoothed = reshape(data_filtered, [num_segments*time*fs, 1]);
% 绘制原始数据和滤波后的数据
t = (0:data_len-1) / fs;
plot(t, data, 'b', t, data_smoothed, 'r');
legend('原始数据', '滤波后的数据');
```
阅读全文