📄 program_iir_hp.asv
字号:
%用双线性变换法设计一个Chebyshev1型数字高通滤波器,设计指标为:Rp=1db,Rs=60db,fp=0.4kHz,fs=0.3kHz,F=1kHz
N=256;F=1000;T=1/F; %抽样频率设置
n=1:N;f1=200;f2=450; %信号的频率设置
x=1.3*sin(2*pi*f1*n*T)+sin(2*pi*f2*n*T)+sin(2*pi*(f1+20)*n*T) %信号的产生:f1=200HZ,f2=450Hz,f3=220Hz
%subplot(2,2,1);stem(n,x);title('signal x(n)');grid; %信号的绘图
k=[0:1:N/2];w=2*pi/N*k;
X=fft(x,N)';magX=abs(X(1:1:N/2+1)); %输入信号的频谱
subplot(2,1,1);plot(w/pi,magX);
title('X(e^j^w)');xlabel('频率(单位:2*pi)');ylabel('|X|');axis([0,0.8,0,200]);grid;
fp=0.4;fs=0.3;Rp=1;Rs=60;wp=fp*2*pi;ws=fs*2*pi; %性能指标
wp1=(2/T)*tan(wp/2);ws1=(2/T)*tan(ws/2); %预畸变
[n,wn]=cheb1ord(wp1,ws1,Rp,Rs,'s') %估计满足性能指标的模拟低通原型阶数和截止频率
[z,p,k]=cheb1ap(n,Rp); %设计模拟低通原型滤波器(截止频率为1rad/s)
[c,d]=zp2tf(z,p,k); %零极点形式转化为多项式形式
[c1,d1]=lp2hp(c,d,wn); %将模拟低通原型滤波器(截止频率为1rad/s),变换为指定截止频率为wn的低通滤波器
[b,a]=bilinear(c1,d1,F) %利用双线形变换法,实现模拟滤波器到数字滤波器的映射
[db,mag,pha,grd,w] = freqz_m(b,a);
%subplot(2,2,3);plot(w/pi,db);
title('H(e^j^w)');xlabel('频率(单位:2*pi)');ylabel('|H|');grid;
y=filter(b,a,x); %用所设计滤波器对输入信号进行滤波处理
k=[0:1:N/2];w=2*pi/N*k;
Y=fft(y,N)';magY=abs(Y(1:1:N/2+1));
subplot(2,1,2);plot(w/pi,magY);axis([0,0.8,0,200]);grid; %滤波输出信号的频谱
title('Y(e^j^w)');xlabel('频率(单位:2*pi)');ylabel('|Y|');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -