百度百科 - 简介: 低通滤波器是容许低于截止频率的信号通过, 但高于截止频率的信号不能通过的电子滤波装置。
(1)提取滤波器(系数矩阵)
打开工具: MATLAB - APP - Filter Designer
参数设置:
- 滤波器类型:Response Type - Lowpass;
- 滤波器设计方法:Design Method - FIR - Window
- 滤波器阶数:Filter Order - Specify order
- 滤波器长度等于阶数+1;
- 阶数越高,性能越好;- Options - Window - Hamming
- 频率响应参数:设置采样频率:Fs ;设置截止频率:Fc(仪器中获取)
- 点击" Design Filter ",分析并且生成低通滤波器;
- View:时域/频域的波形;
- Nagnitude Response(dB):查看滤波器曲线;
- Current Filter Information:查看滤波器信息;- 点击" 文件 - Export ",导出低通滤波器(系数矩阵);
- (默认)保存到 Workspace;
- (默认)以数组形式保存 Coefficients;
- (默认)Variable Names:Num(可自主命名);
(2)信号滤波
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (1)获取数据
clc;clear;close all;
raw_signal = randn(1, 500); % randn(行, 列):获取正态分布的随机数
raw_signal_len = length(raw_signal); % 获取数组的长
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (2)低通滤波器(Fs = 100Hz; Fc = 10Hz)
% 特点:系数矩阵对折对称 ———— 采用上述操作后获取
filter = [0, -0.0014, -0.0056, -0.0100, -0.0070, ...
0.0119, 0.0511, 0.1052, 0.1597, 0.1961, ...
0.1961, 0.1597, 0.1052, 0.0511, 0.0119, ...
-0.0070, -0.0100, -0.0056, -0.0014, 0];
filter_len = length(filter); % 低通滤波器长度
filtered_signal = [0, 0]; % 滤波后信号初始化
for ii = 1:raw_signal_len - filter_len
sum_signal = 0;
for jj = 1:filter_len
sum_signal = sum_signal + raw_signal((ii - 1) + jj) * filter((filter_len + 1) - jj);
filtered_signal(ii) = sum_signal;
end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% (3)画图
subplot(2, 1, 1);
plot(1:raw_signal_len, raw_signal, 'Color', 'b');
title('原始曲线');
subplot(2, 1, 2);
plot(1:raw_signal_len - filter_len, filtered_signal, 'Color', 'r');
title('滤波曲线');
% subplot(m, n, p); 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。