电路最优化设计作业报告基于MATLAB的高通滤波器的优化设计姓名:刘贤君学号:2012020688专业:电路与系统内容摘要为了进一步优化滤波器设计,便于及时调整滤波器的参数,提出了基于MATLAB平台利用滤波器设计与分析工具箱设计数字滤波器。阐述了数字滤波器的基本原理并进行仿真模拟。结果表明:所设计的优化滤波器可以有效抑制干扰信号,提高信噪比;设计过程快速简单,方便根据实际需求调整滤波器的参数,适用于工程实践中。关键词:MATLAB;高通;数字滤波器;优化一、引言在工程实际的各种测量与控制系统中,系统通常输出的信号并不是模拟的电压电流信号,而是数字信号。对于数字信号的处理,为了去除噪声的影响和其他频率成分信号的干扰,提高系统测量的准确性和稳定性,需要对数字信号进行滤波处理,所以数字滤波器的设计对于实际工程应用中的测量与控制系统就显得尤为重要。而对于传统数字滤波器的设计方法而言,一方面其设计步骤冗杂,需要进行大量的计算;另一方面,一旦滤波器设计好,它的滤波特性也就固定了,想要调整的它的滤波特性就变得非常困难[1-4]。因此针对传统滤波器的缺点,文章提出一种新的便捷的数字滤波器设计方法——利用MATLAB平台中的滤波器设计与分析工具箱。二、设计目的通过设计优化滤波器,并在MATLAB实现仿真,进一步加深了解滤波器的原理以及函数remez。同时也让我加深了对MATLAB的使用。在滤波器设计中,技术指标越高,实现滤波器的阶数也就越高,另外,对固定的阶数,通带与阻带指标可以互换,过渡带宽度与通带波纹和阻带衰减指标可以互换。用等波纹最佳一致逼近设计函数remez很容易。三、数字滤波器及传统的设计方法数字滤波技术是信号分析与处理技术中非常重要的一个分支,它作为一个线性处理模块在工程实际中得到了广泛的应用,更为重要的是它能够得到准确的线性相位关系,这是模拟器件几乎无法实现的。通常,数字滤波器分为两种,分别是有限冲激响应滤波器(FIR)和无限冲激响应滤波器(IIR)。相比于IIR,FIR具有更加良好的线性相位特性,所以它的应用更加广泛。它内核的结构是一个分节的延时线,然后再对把每一分节的输出进行加权求和,最终得到滤波后的输出,它的差分方程[5]可表示为10()()()Niynhixni(1)式中N为抽头数,x(n)为输入序列,y(n)为输出序列,h(i)是第i个抽头数。滤波器的相应函数即为:10()()NniHzhnz(2)由(1)式和(2)式可知,数字滤波器设计的核心工作就是计算其脉冲响应系数。计算脉冲响应系数的传统方法主要三种:等波纹最佳逼近法、频率采样法和窗函数法。运用这些方法设计滤波器时,计算工作量大,费时。四、技术分析等波纹最佳一致逼近法(也称parks-McClellan最优法)信号处理工具箱采用remez算法实现线性相位FIR数字滤波器的等波纹最佳一致逼近设计。与其他设计法相比,其优点是,设计指标相同时,使滤波器阶数最低;或阶数相同时,使带通最平坦,阻带最小衰减最大;通带和阻带均为等波纹形式,最适合设计片段常数特性的滤波器。其调用格式如下:B=remez(N,f,m,w,‘ftype’)其中,w和ftype可默认。b为滤波器系数向量,调用参数N,f,m的含义与函数fir2中类同,但这里有一点不同,期望的幅频响应值位于f(k)与f(k+1)(k为奇数)之间的频段上(即(f(k),m(k))与(f(k+1),m(k+1)两点间的连线),而f(k+1)与f(k+2)之间为无关区。W为加权向量,其长度为f的一半。w(k)为对m中第k(k为奇数)个常数片段的逼近精度加权值,w值越大毕竟精度越高。ftype用于指定滤波器类型,可用help命令查看。注意:f中不能出现重复频点,即remez函数不能逼近理想频响特性。remezord函数用于估算FIR数字滤波器的等波纹最佳一致逼近设计的最低阶数N,从而使滤波器在满足指标的前提下造价最低。基本调用格式如下:[N,fo,mo,w]=remezord(f,m,dev,Fs)其返回参数供remez函数使用。设计的滤波器可以满足由参数f,m,dev和Fs指定的指标。f和m与remez中所用的类似,这里f可以是模拟频率(Hz)或归一化数字频率,但必须以0开始,以Fs/2(用归一化频率时为1)结束,而且其中省略了0和Fs/2两个频点。Fs为采样频率,省略时默认为2Hz。dev为各逼近频段允许的幅频响应偏差(波纹振幅)。remez函数可直接调用remezord返回的参数,使用格式如下:b=remez(N,fo,mo,w)五、导入仿真软件仿真思路在remez函数调用格式b=remez(N,f,m,w)中,f=[0,23/32,3/4,1],m=[0,0,1,1]。其余参数分三种情况进行设计,①N1=30,W1=[1,1];②N2=30,W2=[1,5];③N3=60,W3=[1,1]。1、程序代码%初始化clearall;f=[0,23/32,3/4,1];m=[0,0,1,1];N1=30;W1=[1,1];hn1=remez(N1,f,m,W1);%情况1k=[0:1023]*2/1024;Hw1=fft(hn1,1024);y1=20*log10(abs(Hw1))%求出其幅频特性%subplot(3,1,1)figure(1);plot(k,y1);axis([0,1,-40,5]),%只画出正半轴频谱title('N1=30,W1=[1,1]')gridon,N2=30;W2=[1,5];hn2=remez(N2,f,m,W2);%情况1Hw2=fft(hn2,1024);y2=20*log10(abs(Hw2))%求出其幅频特性%subplot(3,1,2)figure(2);plot(k,y2);axis([0,1,-40,5]),%只画出正半轴频谱title('N2=30,W2=[1,5]')gridon,N3=60;W3=[1,1];hn3=remez(N3,f,m,W3);%情况1Hw3=fft(hn3,1024);y3=20*log10(abs(Hw3))%求出其幅频特性%subplot(3,1,3)figure(3);plot(k,y3);axis([0,1,-40,5]),%只画出正半轴频谱title('N3=60,W3=[1,1]')gridon,2、仿真结果图1N1=30;W1=[1,1]图2N2=30;W2=[1,5]图3N3=60;W3=[1,1]利用MATLAB中滤波器设计与分析工具箱得到的滤波器的系数,再编写数字滤波程序,对含有低频干扰的理想正弦信号进行模拟仿真。需保留信号的频率为4kHz,幅值为1;需去除的低频干扰频率为50Hz,幅值为1。相应的数字滤波程序为:clearclcN=512;fs=20000;n=0:1:N-1;f=n*fs/N;x=sin(2*pi*4000*n/fs)+sin(2*pi*300*n/fs);b=abs(fft(x));coe=load('lvboqi');h=coe.numform=1:1:512fork=1:1:49if(m=k)a(k)=h(k)*(m+1-k);endendy(m)=sum(a);endz=abs(fft(y));%subplot(2,1,1)plot(n,x);%subplot(2,1,2)plot(f,b);3、仿真结果图5有滤波时的信号五、结果分析由图1、2、3可见,W较大的频段逼近精度较高;w较小的频段逼近精度较低。N较大时逼近精度较高,N较小时逼近精度较低。六、结束语基于MATLAB软件,利用软件中内含的滤波器设计与分析工具箱得到滤波器的系数,从而设计相应的高通滤波器,运算量小,而且方便调整滤波参数,这大大缩短了滤波器设计的时间,提高了设计效率。七、参考文献[1]楼顺天,李博菡.基于MATLAB的系统分析与设计——信号处理[M].北京:西安电子科技大学出版社,1998.[2]倪养华,王董玮.数字信号处理一原理与实现[M].上海:上海交通大学出版社,1997.[3]程佩青.数字信号处理教程[M].第2版.北京:清华大学出版社,2002.[4]胡广书.数字信号处理一理论、算法与实现[M].北京:清华大学出版社,2003.[5]蒋志凯.数字滤波与卡尔曼滤波[M].北京:中国科学技术出版社,1993.[6]陈怀琛,吴大正,高西全。MATLAB及在电子信息课程中的应用。