基于MATLAB的数字滤波器之低通滤波器

目录

一、低通滤波器简介

1.概念

2.原理

二、低通滤波器的设计

1.技术指标

2.设计步骤

三、MATLAB代码

参考文献


一、低通滤波器简介

1.概念

数字低通滤波器就是让低于截止频率的信号通过,而高于截止频率的信号将被阻止通过。基于这种工作方式,低通滤波器可以将信号中的高频分量去掉,保留低频分量,进而达到去除高频噪声的目的。

2.原理

数字滤波器可以用一个常系数线性差分方程来表示,该方程称为滤波器的系统函数。通过建立理想的数字滤波器模型,再利用数字滤波器的设计方法,就可得到一个逼近该模型的实际滤波器。

二、低通滤波器的设计

1.技术指标

通带截止频率Wp,阻带起始频率Ws, 通带纹波系数Rp(dB),阻带衰减系数Rs(dB)。

2.设计步骤

(1)确定技术指标:Wp,Ws,Rp,Rs;

(2)计算滤波器的最低阶数n和3dB截止频率Wn;

(3)计算系统函数H(z)的分子、分母多项式系数;

(4)计算系统函数H(z)的幅频响应。

三、MATLAB代码

%% 主函数-----------信号去噪
clc;
clear;
close all;

% 产生数据
Fs=4000;  % 信号的采样频率
t=(0:1/Fs:(1-1/Fs))';
x1=3*sin(200*pi*t+pi/4);
x2=2*cos(1000*pi*t);
x=x1+x2;

[m,n]=size(x);  % m为信号点数

Rp=4;    % 通带纹波系数
Rs=20;   % 阻带衰减系数
fp=250; % 通带截止频率
fs=400; % 阻带起始频率
[b,a] = Buttord_Filter(fp,fs,Rp,Rs,m,Fs);
y=filter(b,a,x);      % filter函数实现IIR滤波器的直接形式
figure;
subplot(2,1,1);plot(x);
subplot(2,1,2);plot(y);
function [b,a] = Buttord_Filter(Wp,Ws,Rp,Rs,N,Fs)
%% 设计巴特沃斯低通滤波器

    % 滤波器设计参数(计算归一化角频率)
    Wp=Wp/(Fs/2);    % 通带截止频率
    Ws=Ws/(Fs/2);    % 阻带起始频率

    % 计算滤波器的最低阶数n和3dB截止频率Wn
    [n,Wn]=buttord(Wp,Ws,Rp,Rs);
    % 计算系统函数H(z)的分子、分母多项式系数
    [b,a]=butter(n,Wn);
    % 计算系统函数H(z)的幅频响应:freqz(b,a,计算点数,采样速率);
    [H,F]=freqz(b,a,N,Fs);
    % 计算滤波器的相位
    pha=angle(H)*180/pi;
    %% 低通滤波器的幅频特性
    figure;
    subplot(2,1,1);plot(F,20*log10(abs(H)));
    xlabel('频率(Hz)');ylabel('幅值(dB)');
    axis tight;
    grid on;
    subplot(2,1,2);plot(F,pha);
    xlabel('频率(Hz)');ylabel('相位');
    axis tight;
    grid on;
    title('低通滤波器');
end

参考文献

[1]沈再阳. MATLAB信号处理[M]. 北京:清华大学出版社,2017:214–233.

[2]基于matlab的心电信号预处理

你可能感兴趣的:(MATLAB信号处理,数字滤波器,matlab,巴特沃斯)