1、滤波器设计哈尔滨工业大学内容简介 IIR滤波器设计 FIR滤波器设计滤波器性能说明 滤波器设计的目的是进行数据序列的频率变换。一个要求是从采样频率为100Hz的数据序列中消除掉30Hz以上的噪声,更为严格的要求是要求滤波器具有某一指定的通频带、阻频带或过度过程宽度。精确的性能要求是要求以最小的滤波器阶次满足一定的性能目标。 不同的滤波器设计方法主要体现在它们具有不同的性能说明。滤波器的表达方式 传递函数模型 num,den 状态方程模型 (A,B,C,D) 零极点增益模型 Z,P,K滤波器数学模型之间的相互转换 状态方程到零极点 Z,P,K=ss2zp(A,B,C,D,iu) 单输入iu=1
2、零极点到状态方程 A,B,C,D=zp2ss(Z,P,K) 传函到零极点Z,P,K=tf2zp(num,den) 零极点到传函num,den=zp2tf(Z,P,K) 状态方程到传函num,den=ss2tf(A,B,C,D,iu) 传函到状态方程A,B,C,D=tf2ss(num,den)IIR滤波器设计 几种模拟低通滤波器的原型Butterworth滤波器 具有通带内最大平坦的幅度特性,而且随着频率升高呈单调减小。“最平”的幅频响应滤波器。 Z,P,K=buttap(n)Chebyshev 型滤波器 Z,P,K=cheb1ap(n,rp) 通带内的最大衰减为rp 在阻带内达到最大平滑Che
3、byshev 型滤波器 Z,P,K=cheb2ap(n,rs) 阻带内最大衰减为rs 在通带内达到最大平滑椭圆滤波器 Z,P,K=ellipap(n,rp,rs) 例如,获得一个3阶低通模拟椭圆滤波器原型,在通带内最大衰减为3dB,阻带内最小衰减为40dB。 num,den=ellipap(3,3,40)Bessel滤波器 Z,P,K=besselap(n)低通、高通、带通、带阻滤波器的设计 先将要设计的滤波器的技术指标通过某种频率转变关系转换成模拟低通滤波器的技术指标,并依据这些指标设计出低通滤波器的转移函数,然后再依据频率转换关系变成所要设计的滤波器的转移函数。(1)低通到低通 AT,BT
4、,CT,DT=lp2lp(A,B,C,D,wn) numt,dent=lp2lp(num,den,wn)(2)低通到高通 AT,BT,CT,DT=lp2hp(A,B,C,wo)(3)低通到带通 AT,BT,CT,DT=lp2bp(A,B,C,D,wo,Bw)(4)低通到带阻 AT,BT,CT,DT=lp2bs(A,B,C,D,wo,Bw)例1-1 设计一个三阶的模拟椭圆低通滤波器,它在通带内的最大衰减为3dB,在阻带内的最大衰减为40dB,截止频率为8弧度,再把它转换成为截止频率是50弧度的高通滤波器,并分别绘出它们的频率响应图。原信号处理后源程序z,p,k=ellipap(10,3,40);
5、A1,B1,C1,D1=zp2ss(z,p,k);AT1,BT1,CT1,DT1=lp2lp(A1,B1,C1,D1,8*pi);num1,den1=ss2tf(AT1,BT1,CT1,DT1);figure;freqs(num1,den1);AT2,BT2,CT2,DT2=lp2hp(A1,B1,C1,D1,50*pi);num2,den2=ss2tf(AT2,BT2,CT2,DT2);figure;freqs(num2,den2)IIR阶数选择 例:运用Butterworth低通数字滤波器设计函数butter (N,Wn),阶数分别为1,3,5,7。 随着阶数N的增大响应曲线在通带内越平缓
6、,阻带内衰减的速度越大。实际设计中,选择合适的阶数。阶数1,3,5,7Butterworth滤波器阶数选择函数buttord() N,Wn=buttord(Wp,Ws,Rp,Rs)例1-2:IIR滤波器的实现 人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波后,才能判断心脏功能的有用信息。下面给出一实际心电图信号采样序列x(n),滤出其中的干扰成分。例1-2源程序X=-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,. -2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,-2,. -4,8,12,12,10,
7、6,6,4,0,0,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0;figure;plot(X);xlabel(time);ylabel(amplitude)wp=40;ws=50;rp=0.5;rs=40;Fs=200;N,Wn=buttord(wp/(Fs/2),ws/(Fs/2),rp,rs);b,a=butter(N,Wn);figure;H,W=freqz(b,a);plot(W*Fs/(2*pi),abs(H);grid;xlabel(frequency/Hz);ylabel(amplitude);Y=filter(b,a,X);figure;plot(Y);xlabe
8、l(time);ylabel(amplitude);figure;psd(X,200);figure;psd(Y,200)原数据图形Butterworth低通滤波器的幅频响应滤波后滤波前功率谱图滤波后功率谱图MATLAB中设计IIR数字滤波器步骤 按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标; 根据转换后的技术指标使用滤波器阶数选择函数,确定最小阶数N和固有频率Wn; 运用最小阶数N产生模拟低通滤波原型; 运用固有频率Wn把模拟低通滤波原型转换成模拟低通、高通、带通、带阻滤波器; 运用冲激响应不变法或双线性不变法把模拟滤波器转换成数字滤波器。FIR数字滤波器的设计 设计
9、方法:Fourier级数展开法、窗函数法、频率采样法、Chebyshev逼近法。 MATLAB中的有关函数用有限制条件的最小二乘逼近法设计线性相位FIR滤波器fircls() B=fircls(N,F,A,UP,LO) 返回的是一个长度为N+1的线性相位FIR滤波器,其期望逼近的频率响应为分段恒定的,由向量F和A指定,各段幅度波动的上下限由向量UP和LO给定。A中元素分别为各恒定段的频率响应的理想幅值,A中元素的个数为不同的频段数。UP和LO的长度与A的相同,它们给定频率响应各频段的上下界。F中的元素为临界频率。例2-1 设计一带通滤波器,其通带为:0.2,0.4,并用所设计的滤波器对信号滤波
10、(采样频率为600Hz)。t=0:1/600:1;sig=sin(2*pi*15*t)+0.5*sin(2*pi*90*t)+0.2*sin(2*pi*300*t);plot(t,sig)n=51;f=0 0.2 0.4 1;a=0 1 0;up=0.02 1.02 0.01;lo=-0.02 0.98 -0.01;b=fircls(n,f,a,up,lo);newsig=fftfilt(b,sig);figureft=t(301:350);ns=newsig(301:350);zns=interp(ns,12);znt=interp(ft,12);plot(znt,zns)原信号显示结果例2
11、-2:I/Q解调 I/Q解调原理 MATLAB仿真 硬件实现原理推导仿真1仿真1的源程序Ts = 1 / 4e7;t = 0 : 100;echo =cos(2*pi*5e6*t*Ts+pi/4);c=cos(2*pi*5e6*t*Ts);f = echo.*c;b=-0.0013 -0.0054 -0.0124 -0.0107 0.0204 0.0904 0.1784 0.2406. 0.2406 0.1784 0.0904 0.0204 -0.0107 -0.0124 -0.0054 -0.0013;newsig=filter(b,1,f);plot(t,f,t,newsig),grid仿
12、真2仿真2源程序Ts = 1 / 4e7;t=0:500;echo=t;for t1=0:200 echo(t1+1)=cos(2*pi*5e6*t1*Ts);endfor t2=201:300 echo(t2+1)=cos(2*pi*(5e6-1e6)*t2*Ts);endfor t3=301:500 echo(t3+1)=cos(2*pi*5e6*t3*Ts);endc=cos(2*pi*5e6*t*Ts);d=sin(2*pi*5e6*t*Ts);f=echo.*c;g=echo.*d;b=-0.0013 -0.0054 -0.0124 -0.0107 0.0204 0.0904 0.1
13、784 0.2406. 0.2406 0.1784 0.0904 0.0204 -0.0107 -0.0124 -0.0054 -0.0013;newsig=filter(b,1,f)newsig1=filter(b,1,g);plot(t,echo,t,newsig,t,newsig1,black),grid实现输入信号的种类、形式及要求:输入15位数字信号echo14.0(回波信号)。输出信号的种类、形式及特性:输出I通道16位数字信号I15.0,Q通道16位数字信号Q15.0。通过FPGA实现,要求满足40MHZ工作频率。主要元器件使用说明(PDF)ACEXEP1K100QC208-3 2片(I,Q各一片)配置芯片EPC2LC20 2片(I,Q各一片)时钟驱动芯片IDT74FCT3807 1片3.3V电源芯片TPS7333 2片2.5V电源芯片3177 2片33上拉电阻 32个滤波电容若干基本壁滤波器的分析与设计 内容取自冯乃章师兄的博士论文CH3