手机版

带通滤波器滤波

时间:2025-07-09   来源:未知    
字号:

对象1:一个含有10Hz、30Hz和60Hz的混合正弦波信号X=sin(2*pi*t*10)+ sin(2*pi*t*30)+ sin(2*pi*t*60),通过一个设计的IIR带通椭圆滤波器(elliptic)后,使输入的混合信号中频率为30Hz的正弦波信号通过,而将频率为10Hz和60Hz的正弦波信号大大衰减。 产生一个含有10Hz、30Hz和60Hz的混合正弦波信号X

MATLAB程序实现如下:

Fs=200;

t=(1:200)/Fs;

x1=sin(2*pi*t*10);

x2=sin(2*pi*t*30);

x3=sin(2*pi*t*60);

X= x1+ x2+ x3;

plot(t,X);

title('混合正弦波信号X(t)-滤波前');

grid;

产生一个4阶IIR带通椭圆滤波器

MATLAB程序实现如下:

wp1=20;

wp2=40;

Fs=200;

rp=0.2;

rs=40;

wp1=2*pi*wp1;

wp2=2*pi*wp2;

Bw=wp2-wp1;

Wo=sqrt(wp2*wp1);

[z,p,k]=ellipap(4,rp,rs); %创建模拟低通滤波器原型

[A,B,C,D]=zp2ss(z,p,k); %把模拟低通滤波器原型转换成模拟低通滤波器

[At,Bt,Ct,Dt]=lp2bp(A,B,C,D,Wo,Bw); %把模拟低通滤波器转换成带通滤波器

[At1,Bt1,Ct1,Dt1]=bilinear(At,Bt,Ct,Dt,Fs); %双线性变换法把模拟滤波

[num,den]=ss2tf(At1,Bt1,Ct1,Dt1); 器转换成数字滤波器

[H,W]=freqz(num,den);

plot(W*Fs/(2*pi),abs(H));

title('频率响应特性');

grid;

xlabel('频率/Hz');

ylabel('幅值');

对混合正弦波信号X进行滤波

MATLAB程序实现如下

Y=filter(num,den,X);

plot(t,Y);

title('滤波后信号-Y');

gri;

axis([0 1 -1 1]);

绘出信号滤波前、后的幅频图

带通滤波器滤波.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
×
二维码
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)