模拟滤波器

  • Meng511
    了解作者
  • matlab
    开发工具
  • 748B
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-05-23 19:25
    上传日期
IIR数字滤波是经典滤波器,本程序可根据给定的频率来画出相应的IIR低通滤波器的滤波图
滤波器.zip
  • a3_1.m
    1.1KB
内容介绍
A1=10; A2=1; fs1=20; fs2=50; Fs=200; N=200; t=(0:N-1)/Fs; y1=A1*sin(2*pi*fs1*t); y2=A2*sin(2*pi*fs2*t); y=y1+y2; f=(0:N-1)*Fs./N; Y=fft(y,N); %fft变换 Y=abs(Y)./N; %幅值变换 %Delta = 0.005; fp=fs1; fs=fs2; ap=1; as=35; wp=2*pi*fp/Fs;%数字滤波器参数 ws=2*pi*fs/Fs; Fs1=Fs/Fs; T=1/Fs1; Op=2/T*tan(wp/2);%转化为模拟滤波器参数 Os=2/T*tan(ws/2); [N_1,Wn]=buttord(Op,Os,ap,as,'s'); [z,p,k]=buttap(N_1);%设计模拟低通的原型滤波器G(p) [b,a]=zp2tf(z,p,k); [B,A]=lp2lp(b,a,Op); [Bz,Az]=bilinear(B,A,Fs1*T/2); [H,w]=freqz(Bz,Az,256,Fs*Fs1);%IIR双线性变换法 figure plot(w,abs(H)) title('IIR低通滤波器的幅频特性') xlabel('频率(HZ)') ylabel('幅值') yy=filter(Bz,Az,y); figure subplot(2,1,1),plot(t,y) title('滤波前的时域信号') xlabel('时间(t)') ylabel('幅值') subplot(2,1,2),plot(t,yy); title('滤波后的时域信号') xlabel('时间(t)') ylabel('幅值') Y1=fft(yy,N); %fft变换 Y1=abs(Y1)./N; %幅值变换 figure subplot(2,1,1),plot(f(1:N/2),Y(1:N/2)); title('滤波前的频率响应') xlabel('频率(HZ)') ylabel('幅值') subplot(2,1,2),plot(f(1:N/2),Y1(1:N/2)); title('滤波后的频率响应') xlabel('频率(HZ)') ylabel('幅值')
评论
    相关推荐