Matlab在滤波器中的应用
- 格式:doc
- 大小:254.63 KB
- 文档页数:12
MATLAB大作业院(系):信息工程学院专业:09通信工程班级:通信一班学生:钟锦慧学号:**************指导教师:**2011年12月18日MATLAB在滤波器设计中的应用1. 绪论从20世纪初至今,在通信与电子系统中,滤波器的研究和应用经历了漫长、艰辛而曲折的道路,滤波器在信号传输与信号处理中的重要地位和作用已经非常明显,所以滤波器的分析与设计更是应该重点研究的问题。
滤波器,顾名思义,是对波进行过滤的器件。
“波”是一个非常广泛的物理概念,在电子技术领域,“波”被狭义地局限于特指描述各种物理量的取值随时间起伏变化的过程。
该过程通过各类传感器的作用,被转换为电压或电流的时间函数,称之为各种物理量的时间波形,或者称之为信号。
因为自变量时间是连续取值的,所以称之为连续时间信号,又习惯地称之为模拟信号(Analog Signal)。
随着数字式电子计算机(一般简称计算机)技术的产生和飞速发展,为了便于计算机对信号进行处理,产生了在抽样定理指导下将连续时间信号变换成离散时间信号的完整的理论和方法。
也就是说,可以只用原模拟信号在一系列离散时间坐标点上的样本值表达原始信号而不丢失任何信息,波、波形、信号这些概念既然表达的是客观世界中各种物理量的变化,自然就是现代社会赖以生存的各种信息的载体。
信息需要传播,靠的就是波形信号的传递。
信号在它的产生、转换、传输的每一个环节都可能由于环境和干扰的存在而畸变,有时,甚至是在相当多的情况下,这种畸变还很严重,以致于信号及其所携带的信息被深深地埋在噪声当中了[。
2. MATLAB简介2.1 MATLAB的概述20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MA TLAB和Simulink两大部分。
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。
附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。
20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler为了减轻学生编程的负担,用FORTRAN编写了最早的MATLAB。
1984年由Little、Moler、Steve Bangert合作成立了的MathWorks公司正式把MATLAB推向市场。
到20世纪90年代,MATLAB已成为国际控制界的标准计算软件。
2.2MATLAB的基本功能MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点, 使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
3.1 滤波器概述滤波器是对特定频率的频点或该频点以外的频率进行有效滤除的电路其主要作用是:让有用信号尽可能无衰减的通过,对无用信号尽可能的衰减。
滤波器一般有两个端口,一个输入端口,一个输出端口。
滤波器是由电感器和电容器构成的网络,可使混合的交直流电流分开。
电源整流器中,即借助此网络滤净脉动直流中涟波,而获得比较纯净的直流输出。
最基本的滤波器是由一个电容和一个电感器构,称为L 型滤波。
所有各型滤波器,都是集合L 型单节滤波器构成。
基本单节式滤波器由一个串联臂所组成,串联臂为电感器,并联臂为电容器。
在电源及声频电路中的滤波器,最通用者为L 型及π型两种。
就L 型单节滤波器而言,其电感抗L X 与电容抗C X ,对任一频率为一常数,其关系为L X ·C X =K故L 型滤波器又称为K 常数滤波器。
倘若一滤波器的构成部分,较K 常数型具有较尖锐的截止频率(即对频率范围选择性强),而同时对此截止频率以外的其他频率只有较小的衰减率者,称为m 常数滤波器。
所谓截止频率,亦即与滤波器有尖锐谐振的频率。
通带与带阻滤波器都是m 常数滤波器,M 为截止频率与被衰减的其它频率之衰减比的函数。
每一M 常数滤波器的阻抗与K 常数滤波器之间的关系,均由M 常数决定,此常数介于0~1之间。
当m 接近零值时,截止频率的尖锐度增高,但对于截止频的倍频之衰减率将随着而减小。
最合于实用的M 值为0.6。
至于那一频率需被截止,可调节共振臂以决定之。
M 常数滤波器对截止频率的衰减度,决定于共振臂的有效Q 值之大小。
若达K 常数及M 常数滤波器组成级联电路,可获得尖锐的滤波作用及良好的频率衰减[。
4 滤波器的设计4.1传统的滤波器的设计滤波器根据其逼近函数的形式不同,可设计出多种滤波器,常用的有巴特沃斯滤波器、切比雪夫I 型滤波器、切比雪夫Ⅱ型滤波器、椭圆滤波器、巴塞尔滤波器。
对于这些滤波器的设计,都是先给定其幅频特性的模的平方()2ωj H ,在求出系统函数()s H 。
()2ωj H 与系统函数 ()s H 存在下面的关系:()2ωA =()2ωj H =()()ωj s s H s H =- (4.1) ()222s A =ωω=()()s H s H - (4.2)由(4.2)式可知,当给定模拟滤波器的技术指标后,由()2ωA =()2ωj H 求出()2s A -,再适当地分配零极点可求出()s H 。
以切比雪夫Ⅰ型滤波器为例分析:()2ωj H =⎥⎦⎤⎢⎣⎡+C N C E ωω211(4.3)式中E 是决定带通内起伏大小的波纹参数,()X C N 是第一类切比雪夫多项式,N 为滤波器阶数,C ω为截止频率,定义为:()X CN =()()⎩⎨⎧shX arccoN cosh sX rcco a N cos (4.4) 设计滤波器时,需有经典式求出滤波器的系统函数()s H ,求出求出极点k S (k=1,2,……2N ), 给定N ,C ω,E 即可求得N 2个极点分布。
然后利用归一化函数,得出归一化的电路元件值,即可得到满足要求的滤波器。
在这设计中,需要进行烦琐、冗长的数字计算,这对于电路设计者来说,不仅费时费力,准确性不易把握,而且不符合当今高速发展的时代要求[。
4.2利用MATLAB 设计滤波器利用MATLAB 来设计滤波器,主要是依据它的信号处理工具箱。
所用理论仍然是 ( 4.2) 式,但不再需要进行烦琐的计算,只需调用相应的函数,根据设计要求编制相应的软件即可。
这样,可大大节省时间和设备。
但利用MATLAB 设计滤波器时,如果调用不同的函数来设计同一滤波器,其过程仍有差别。
以切比雪夫Ⅰ 型滤波器为例。
这种滤波器的特点是: 通带内具有等波纹起伏特性, 而在阻带内则单调下降且具有更大衰减特性; 阶数 N 愈高, 特性愈接近矩形。
传递函数没有零点, 极点发布在一个椭圆上[12]。
分步设计的步骤是: 先设计出低通原形滤波器, 再按频率变换设计所需的滤波器 ,再确定最小阶数。
利用MATLAB 信号处理工具箱函数CHEB1AP 设计Chebyshew Ⅰ型模拟低通滤波器。
调用格式为:[ Z , P , K ]= Cheblap (N , R p )其中, N 为滤波器的阶数; p R 为通带波纹; Z , P , K 为滤波器的零点、极点和增益。
滤波器传递函数具有下面形式:()s H = s) ( P s) ( Z =()()()321p s p s p s k --- (4.5) 绘制低通滤波器的幅频特性曲线,设阶数分别为2,用matlab 编程如下:n=0:0.01:2;N=2;Rp=1;[z,p,k]=cheb1ap(N,Rp);[b,a]=zp2tf(z,p,k);freqs(b,a,n)程序运行结果如图4-1所示:4-1 特性曲线MATLAB信号处理工具箱还提供模拟滤波器的完全设计函数: butter,cheby1, cheby2, ellip , besself, 只需调用一次即可完成全部设计过程。
对于采样频率为1000Hz的采样信号,设计一个阶数为9阶、截止频率为300Hz的低通cheby1数字滤波器,其中滤波器在通带的波纹为0.5dB。
程序如下:n=9;rp=0.5;[b,a]=cheby1(9,0.5,300/500);freqz(b,a,512,1000);程序运行结果如图4-2所示:图4-2 特性曲线5.MATLAB在滤波器设计中得应用实例1.设计一个数字低通滤波器频带fp=3Hz,通带内衰减小于1dB,阻带临界频率为4Hz,阻带内衰减大于15dB。
程序如下:T=0.1;Fs=1/T;Fp=3;fs=4;Rp=1;As=15;wp=fp/Fs*2*pi;ws=fs/Fs*2*pi;Wp=(2/T)*tan(wp/2);Ws=(2/T)*tan(ws/2);ep=sqrt(10^(Rp/10)-1);A=10^(As/20);Wc=wp;Wr=Ws/Wp;G=sqrt(A*A-1/ep)’N=ceil(log10(g+sqrt(g*g-1))/log10(Wr+sqrt(Wr*(Wr-1)))); [z,p,k,]=cheb1ap(N,Rp);p=p*Wc;a=real(poly(p));aNu=a(N+1);k=k*aNu/a(N);b0=k;B=real(poly(z));b=k*b;[bz,az]=bilinear(b,a,Fs);H=freqz(bz,az,200,’whole’);plot(abs(H));程序运行结果如图5-1所示:图5-1 数字低通滤波器的增幅响应2. 设计一个数字滤波器采样频率:Fs=80KHz,通带截止频率:fp=0.6*Fs/2,通带波纹:rp=0.01,阻带截止频率:fs=0.7*Fs/2,阻带衰减:rs=0.1程序如下:Fs=80;fp=0.6*Fs/2;rp=0.01;fs=0.7*Fs/2;rs=0.1;f= [fp fs];A=[1 0];dev=[rp rs];[n,f0,m0,W]=remezord(f,A,dev,Fs);b=remez(n,f0,m0,W);[h,w]=freqz(b,1,256,1);h=abs(h);h=20*log10(h);plot(w,h);grid;xlabel('频率(归一化)');ylabel('幅度(dB)');程序运行结果如图5-2所示:图5-2 数字滤波器的增幅响应3.设计满足下列指标的等波纹线性相位FIR 低通滤波器 0017.0,6.0,5.0===Ω=Ωs p s p rad rad δδππ 程序如下:%Program5_9 等波纹FIR 滤波器设计Fp=0.5;Fs=0.6;ds=0.0017;dp=ds;f=[Fp Fs];a=[1 0];dev=[dp ds];[M,fo,ao,w]=remezord(f,a,dev);h=remez(M,fo,ao,w);w=linspace(0,pi,1000);mag=freqz(h,[1],w);hd=plot(w/pi,20*log10(abs(mag)));xlabel(‘Normalized frequency’);ylabel(‘Gain,dB’)程序运行结果如图5-3所示:图5-3 FIR低通滤波器的增幅响应4.试用频率抽样法设计一个FIR低通滤波器,该滤波器的截止频率为0.5pi,频率抽样点数为33。