【MATLAB】常用数字滤波器函数调用

【MATLAB】常用数字滤波器函数调用

逢迎诗酒徒
2024-06-28 / 0 评论 / 92 阅读 / 正在检测是否收录...

1.巴特沃斯滤波器滤波
巴特沃斯滤波器就是滤波器的一种,也被称作最大平坦滤波器,其主要特点是通频带内的频率响应曲线最大限度平坦,没有纹波,而在阻频带则逐渐下降为零。

function [outdata] =filt_iir_butterfilter(indata,Fs,pass1,pass2,stop1,stop2,N )
%%  函数功能:巴特沃斯滤波器滤波1
% 输入参数:
% indata--输入信号
% Fs--采样频率
% pass1--通带上限 % pass2--通带下限
% stop1--阻带下限% stop2--阻带上限
% N--滤波器阶数
% 输出参数:
% outdata---滤波后的时域信号
Wp = [pass1, pass2] / (Fs/2);%通带
Ws = [stop1,stop2] / (Fs/2);%阻带
 Rp = 3;%通带纹波最多3 dB
Rs = 40;%阻带衰减至少40 dB
[n,Wn] = buttord(Wp,Ws,Rp,Rs);
[b,a] = butter(N/2,Wn,'bandpass');
% figure;
% freqz(b,a);
outdata = filtfilt(b,a,indata);
end

2.切比雪夫滤波器滤波
1)切比雪夫滤波器是在通带或阻带上频率响应幅度等波纹波动(通带平坦、阻带等波纹或是阻带平坦、通带等波纹)的滤波器,振幅特性在通带内是等波纹。

2)切比雪夫滤波器在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。

3)切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动。

4)在通带(或称“通频带”)上频率响应幅度等波纹波动的滤波器称为“I型切比雪夫滤波器”,在阻带(或称“阻频带”)上频率响应幅度等波纹波动的滤波器称为“II型切比雪夫滤波器”

function [outdata] =filt_iir_chebyfilter(indata,Fs,pass1,pass2,stop1,stop2,N )
%%  函数功能:切比雪夫滤波器滤波
% 输入参数:
% indata--输入信号
% Fs--采样频率
% pass1--通带上限 % pass2--通带下限
% stop1--阻带下限% stop2--阻带上限
% N--滤波器阶数
% 输出参数:
% outdata---滤波后的时域信号
Wp = [pass1, pass2] / (Fs/2);%通带
Ws = [stop1  stop2] / (Fs/2);%阻带
 Rp = 3;%通带纹波最多3 dB
Rs = 40;%阻带衰减至少40 dB
[n, Wn]=cheb1ord(Wp, Ws,  Rp, Rs);%对于带通和带阻滤波器,n为滤波器阶数的一半。
[b, a] = cheby1(N/2,Rp, Wn,'bandpass');
% figure
% freqz(b,a);
outdata = filtfilt(b, a, indata);
end

3.椭圆滤波器滤波
通带和阻带等波纹的一种滤波器。 椭圆滤波器相比其他类型的滤波器,在阶数相同的条件下有着最小的通带和阻带波动。 它在通带和阻带的波动相同,这一点区别于在通带和阻带都平坦的巴特沃斯滤波器,以及通带平坦、阻带等波纹或是阻带平坦、通带等波纹的切比雪夫滤波器。

%%  函数功能:椭圆滤波器滤波
% 输入参数:
% indata--输入信号
% Fs--采样频率
% pass1--通带上限 % pass2--通带下限
% stop1--阻带下限% stop2--阻带上限
% N--滤波器阶数
% 输出参数:
% outdata---滤波后的时域信号
Wp = [pass1, pass2] / (Fs/2);%通带
Ws = [stop1,stop2] / (Fs/2);%阻带
Rp = 3;%通带纹波最多3 dB
Rs = 40;%阻带衰减至少40 dB
[n, Wn]=ellipord(Wp, Ws,  Rp, Rs);
[b, a]=ellip(N/2,Rp,Rs,Wn,'bandpass');
% figure
% freqz(b,a);
outdata = filtfilt(b, a, indata);
end
0

评论 (0)

取消