admin 发表于 2022-7-14 23:12:06

设计一个高/低通滤波器,并检验它的性能

close all; %先关闭所有图片
%设计一个高/低通滤波器,并检验它的性能
%采样率Fs为10kHZ
%阻带边缘fs为1.5Khz,衰减As为40bB
%通带边缘fp为2kHz,波纹Rp为3Db
%通带截止wp为0.4,阻带截止ws为0.3
Fs=1e4;
fs=1.5e3;
fp=2e3;
As=40;
Rp=3;
wp=2*fp/Fs;
ws=2*fs/Fs;
=cheb2ord(wp,ws,Rp,As);
%符合要求性质的滤波器最小阶数N,及滤波器的固有频率为wn
=cheby2(N,As,wn,'low');
%ChebyshevⅡ型滤波器设计,b为离散系统的系统函数中Ha(z)分子多项式系数,a为Hz(z)分子多项式系数
=freqz_m(b,a); %z变换频率响应,来表示滤波器的性能
%db为相对幅度,mag为绝对振幅,pha为相位响应,grd为群延时,w为频率样本点向量
subplot(2,4,1);
plot(w/pi,mag);
axis();
%setX();
%setY();
title('绝对振幅');
subplot(2,4,2);plot(w/pi,db);
axis();
%setX();
%setY([-40 -2.7589]);
title('相对幅度');

n=0:200;
%x=cos(0.4*pi*n);
x=cos(0.6*pi*n)+2*cos(0.2*pi*n);
%频率为
y=filter(b,a,x);
%x为滤波前序列,y为滤波后序列,b/a提供滤波器系数
%计算过程为
%a(1)*y(n)= b(1)*x(n)+b(2)*x(n-1)+ ...+b(nb+1)*x(n-nb)-a(2)*y(n-1)-...-a(na+1)*y(n-na)            
subplot(2,4,3);plot(n,x);
axis();
title('滤波前序列');
subplot(2,4,4);plot(n,y);
axis();
title('滤波后序列');

%做傅立叶变换后显示频谱图
x1=fft(x,201);
x11=abs(x1);
subplot(2,4,5);stem(n,x11);%stem绘制针状图
axis();
title('滤波前频谱图');
y1=fft(y,201);
y11=abs(y1);
subplot(2,4,6);stem(n,y11);
axis();
title('滤波后频谱图');

g=x11-y11;
subplot(2,4,7);stem(n,g);
axis();
title('滤去波频谱图');
页: [1]
查看完整版本: 设计一个高/低通滤波器,并检验它的性能