MATLAB —— 低通滤波器设计与信号滤波

百度百科 - 简介: 低通滤波器是容许低于截止频率的信号通过, 但高于截止频率的信号不能通过的电子滤波装置。

(1)提取滤波器(系数矩阵)

打开工具: MATLAB - APP - Filter Designer
参数设置:

  1. 滤波器类型:Response Type - Lowpass;
  2. 滤波器设计方法:Design Method - FIR - Window
  3. 滤波器阶数:Filter Order - Specify order
    - 滤波器长度等于阶数+1;
    - 阶数越高,性能越好;
  4. Options - Window - Hamming
  5. 频率响应参数:设置采样频率:Fs ;设置截止频率:Fc(仪器中获取)
  6. 点击" Design Filter ",分析并且生成低通滤波器;
    - View:时域/频域的波形;
    - Nagnitude Response(dB):查看滤波器曲线;
    - Current Filter Information:查看滤波器信息;
  7. 点击" 文件 - 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 指定的位置创建坐标区。

猜你喜欢

转载自blog.csdn.net/shinuone/article/details/125894168