1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > [Matlab]切比雪夫Ⅰ型滤波器设计:低通 高通 带通和带阻(2)

[Matlab]切比雪夫Ⅰ型滤波器设计:低通 高通 带通和带阻(2)

时间:2021-02-24 00:27:11

相关推荐

[Matlab]切比雪夫Ⅰ型滤波器设计:低通 高通 带通和带阻(2)

[Matlab]切比雪夫Ⅰ型滤波器设计:低通、高通、带通和带阻-------(2)

​ 切比雪夫滤波器,又名“车比雪夫滤波器”,是在通带或阻带上频率响应幅度等波纹波动的滤波器。切比雪夫滤波器来自切比雪夫分布,以“切比雪夫”命名,是用以纪念俄罗斯数学家巴夫尼提·列波维其·切比雪夫。

切比雪夫Ⅰ型滤波器特点:

​ 切比雪夫滤波器在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动。

1、幅度特性是在一个频带内(通带或阻带)范围内具有等波纹特性;

2、Ⅰ型在通带范围内是等波纹的,在阻带范围内是单调的。

根据频率响应曲线波动位置的不同,切比雪夫滤波器可以分为以下两种:

I型切比雪夫滤波器

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

原始信号设定:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cheby1Filter.m% 切比雪夫Ⅰ型滤波器的设计%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%clear;close all;clc;fs = 1000; %Hz 采样频率Ts = 1/fs;N = 1000; %序列长度t = (0:N-1)*Ts;delta_f = 1*fs/N;f1 = 50;f2 = 100;f3 = 200;f4 = 400;x1 = 2*0.5*sin(2*pi*f1*t);x2 = 2*0.5*sin(2*pi*f2*t);x3 = 2*0.5*sin(2*pi*f3*t);x4 = 2*0.5*sin(2*pi*f4*t);x = x1 + x2 + x3 + x4; %待处理信号由四个分量组成X = fftshift(abs(fft(x)))/N;X_angle = fftshift(angle(fft(x)));f = (-N/2:N/2-1)*delta_f;figure(1);subplot(3,1,1);plot(t,x);title('原信号');subplot(3,1,2);plot(f,X);grid on;title('原信号频谱幅度特性');subplot(3,1,3);plot(f,X_angle);title('原信号频谱相位特性');grid on;

低通滤波器设计:

%设计一个切比雪夫低通滤波器,要求把50Hz的频率分量保留,其他分量滤掉wp = 55/(fs/2); %通带截止频率,取50~100中间的值,并对其归一化ws = 90/(fs/2); %阻带截止频率,取50~100中间的值,并对其归一化alpha_p = 3; %通带允许最大衰减为 dbalpha_s = 40;%阻带允许最小衰减为 db%获取阶数和截止频率[ N1 wc1 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N1,alpha_p,wc1,'low');%滤波filter_lp_s = filter(b,a,x);X_lp_s = fftshift(abs(fft(filter_lp_s)))/N;X_lp_s_angle = fftshift(angle(fft(filter_lp_s)));figure(2);freqz(b,a); %滤波器频谱特性figure(3);subplot(3,1,1);plot(t,filter_lp_s);grid on;title('低通滤波后时域图形');subplot(3,1,2);plot(f,X_lp_s);title('低通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_lp_s_angle);title('低通滤波后频域相位特性');

高通滤波器设计:

%设计一个高通滤波器,要求把400Hz的频率分量保留,其他分量滤掉wp = 350/(fs/2); %通带截止频率,取200~400中间的值,并对其归一化ws = 380/(fs/2); %阻带截止频率,取200~400中间的值,并对其归一化alpha_p = 3; %通带允许最大衰减为 dbalpha_s = 20;%阻带允许最小衰减为 db%获取阶数和截止频率[ N2 wc2 ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N2,alpha_p,wc2,'high');%滤波filter_hp_s = filter(b,a,x);X_hp_s = fftshift(abs(fft(filter_hp_s)))/N;X_hp_s_angle = fftshift(angle(fft(filter_hp_s)));figure(4);freqz(b,a); %滤波器频谱特性figure(5);subplot(3,1,1);plot(t,filter_hp_s);grid on;title('高通滤波后时域图形');subplot(3,1,2);plot(f,X_hp_s);title('高通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_hp_s_angle);title('高通滤波后频域相位特性');

带通滤波器设计:

%设计一个带通滤波器,要求把50Hz和400Hz的频率分量滤掉,其他分量保留wp = [65 385 ] / (fs/2); %通带截止频率,50~100、200~400中间各取一个值,并对其归一化ws = [75 375 ] / (fs/2); %阻带截止频率,50~100、200~400中间各取一个值,并对其归一化alpha_p = 3; %通带允许最大衰减为 dbalpha_s = 20;%阻带允许最小衰减为 db%获取阶数和截止频率[ N3 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N3,alpha_p,wn,'bandpass');%滤波filter_bp_s = filter(b,a,x);X_bp_s = fftshift(abs(fft(filter_bp_s)))/N;X_bp_s_angle = fftshift(angle(fft(filter_bp_s)));figure(6);freqz(b,a); %滤波器频谱特性figure(7);subplot(3,1,1);plot(t,filter_bp_s);grid on;title('带通滤波后时域图形');subplot(3,1,2);plot(f,X_bp_s);title('带通滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bp_s_angle);title('带通滤波后频域相位特性');

带阻滤波器设计:

%设计一个带阻滤波器,要求把50Hz和400Hz的频率分量保留,其他分量滤掉wp = [65 385 ] / (fs/2); %通带截止频率?,50~100、200~400中间各取一个值,并对其归一化ws = [75 375 ] / (fs/2); %阻带截止频率?,50~100、200~400中间各取一个值,并对其归一化alpha_p = 3; %通带允许最大衰减为 dbalpha_s = 20;%阻带允许最小衰减为 db%获取阶数和截止频率[ N4 wn ] = cheb1ord( wp , ws , alpha_p , alpha_s);%获得转移函数系数[ b a ] = cheby1(N4,alpha_p,wn,'stop');%滤波filter_bs_s = filter(b,a,x);X_bs_s = fftshift(abs(fft(filter_bs_s)))/N;X_bs_s_angle = fftshift(angle(fft(filter_bs_s)));figure(8);freqz(b,a); %滤波器频谱特性figure(9);subplot(3,1,1);plot(t,filter_bs_s);grid on;title('带阻滤波后时域图形');subplot(3,1,2);plot(f,X_bs_s);title('带阻滤波后频域幅度特性');subplot(3,1,3);plot(f,X_bs_s_angle);title('带阻滤波后频域相位特性');

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。