滤波器matlab_第1页
滤波器matlab_第2页
滤波器matlab_第3页
滤波器matlab_第4页
滤波器matlab_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、>> n=31;%定义滤波器阶数32fs=12.8*103;fc1=49;fc2=51;w1=2*pi*fc1/fs;w2=2*pi*fc2/fs;%参数转换,将模拟滤波器的技术指标转换为数字滤波器的技术指标window=hanning(n+1);%使用hanning窗函数q=fir1(n,w1/pi w2/pi,hanning(n+1);%滤波器时域函数,使用标准响应的加窗设计函数fir1w=linspace(0,pi,512);h1=freqz(q,1,512);%进行512个点的傅里叶变换figure(2);plot(w/pi,20*log10(abs(h1);title(&

2、#39;滤波器频谱图');xlabel('频率');ylabel('幅度');grid ;设计FIR低通滤波器,系统频率为50MHz,通带截止频率Fpass为1MHz,阻带截止频率Fstop为4MHz,通带最大衰减Apass为1dB,阻带最小衰减Astop为30dB。 程序和必要的程序注释 谢谢最佳答案 只要用一个公式就行。library IEEE;entity fir is Port (clk: in std_logic; reset: in std_logic; inpx: in std_logic_vector(11 downto 0); outy

3、: out std_logic_vector(11 downto 0);end fir;architecture beh of fir is signal x0,x1,x2,x3: std_logic_vector(11 downto 0); constant c0:integer :=-1234*32768/1000; constant c1:integer :=2345*32768/10000; constant c2:integer :=5*32768; constant c3:integer :=-3*32768/10000; signal p0,p1,p2,p3:integer; s

4、ignal sum: integer;begin sample_delay_line: process(clk) begin if rising_edge(clk) then if reset='1' then x3 <=(others=>'0'); x2 <=(others=>'0'); x1 <=(others=>'0'); x0 <=(others=>'0'); else x3 <=x2; x2 <=x1; x1 <=x0; x0 <=i

5、npx; end if; end if; end process; p0 <= conv_integer(x0)*c0; p1 <= conv_integer(x1)*c1; p2 <= conv_integer(x2)*c2; p3 <= conv_integer(x3)*c3; sum <=p0+p1+p2+p3; outy <=conv_std_logic_vector(sum/32768,12);end beh;4.1 数字滤波器简介 数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响

6、应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。如果系统是一个连续系统,则滤波器称为模拟滤波器。如果系统是一个离散系统,则滤波器称为数字滤波器。信号 通过线性系统后,其输出 就是输入信号 和系统冲激响应 的卷积。除了 外, 的波形将不同于输入波形 。从频域分析来看,信号通过线性系统后,输出信号的频谱将是输入信号的频谱与系统传递函数的乘积。除非 为常数,否则输出信号的频谱将不同于输入信号的频谱,某些频率成分 较大的模,因此, 中这些频率成分将得到加强,而另外一些频率成分 的模很小甚至为零, 中这部分频率分量将被削弱或消失。因此,系统的作用相当于

7、对输入信号的频谱进行加权。4.2 IIR滤波器的设计原理IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。IIR数字滤波器的设计步骤:(1) 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;(2) 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;(3) 很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;(4) 如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤

8、波器,最后通过频率转换的方法来得到所要的滤波器。4.3 FIR滤波器的设计原理FIR滤波器通常采用窗函数方法来设计。窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后街区(加窗)它的脉冲响应得到线性相位和因果FIR滤波器。我们用Hd(ejw)表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。一个带宽wc<pi的低通滤波器由下式给定: 为了从hd(n)得到一个FIR滤波器,必须同时在两边截取hd(n)。而要得到一个因果的线性相位滤波器,它的h(n)长度为N,必须有: 这种操作叫做加窗,h(n)可以看做是hd(n

9、)与窗函数w(n)的乘积: h(n)=hd(n)w(n)其中 根据w(n)的不同定义,可以得到不同的窗结构。 在频域中,因果FIR滤波器响应H(ejw)由Hd(ejw)和窗响应W(ejw)的周期卷积得到,即 常用的窗函数有矩形窗、巴特利特(BARTLETT)窗、汉宁(HANNING)窗、海明(HAMMING)窗、布莱克曼(BLACKMAN)窗、凯泽(KAISER)窗等。4.4 FIR滤波器的窗函数设计法 FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为: (1)

10、通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n)。 (2) 由性能指标确定窗函数W(n)和窗口长度N。 (3) 求得实际滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数向量b(n)。 五、 设计内容5.1 设计题目:1-1.试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,主带截至频率为Ws=35HZ,通带衰减不大于0.5DB,主带衰减不小于40DB,抽样频Fs=100HZ。1-2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频率Omega=0.3*pi,通带

11、波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=20000Hz。1-3设计一巴特沃斯高通数字滤波器,要求通带截止频率0.6*pi,通带衰减不大于1dB,阻带衰减15DB,抽样T=1。1-4.设计一巴特沃斯带阻数字滤波器,要求通带上下截至频率为0.8*PI、0.2*PI,通带衰减不大于1DB,阻带上下截至频率0.7*PI、0.4*PI 阻带衰减不小于30DB, 2-1.用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB。选择汉宁窗。2-4用海明窗设计一个FIR滤波器,其中

12、Wp=0.2*pi,Ws=0.3*pi,通带衰减不大于0.25dB,阻带衰减不小于50dB。5.2设计程序代码及结果:1-1一.试用MATLAB设计一巴特沃斯低通数字滤波器,要求通带截至频率Wp=30HZ,阻带截至频率为Ws=35HZ,通带衰减不大于0.5DB,阻带衰减不小于40DB,抽样频Fs=100HZ。代码为:fp = 30;fs = 35;Fs = 100;wp = 2*pi*fp/Fs;ws = 2*pi*fs/Fs;wp = tan(wp/2);ws = tan(ws/2); % 通带最大衰减为0.5dB,阻带最小衰减为40dBN, wn = buttord(wp, ws, 0.5

13、, 40, 's'); % 模拟低通滤波器极零点z, p, k = buttap(N); % 由极零点获得转移函数参数b, a = zp2tf(z, p, k); % 由原型滤波器获得实际低通滤波器B, A = lp2lp(b, a, wp); bz, az = bilinear(B, A, .5);h, w = freqz(bz, az, 256, Fs);figureplot(w, abs(h)grid on 图1 巴特沃斯数字低通滤波器1-2基于Butterworth模拟滤波器原型,使用双线性状换设计数字滤波器:各参数值为:通带截止频率Omega=0.2*pi,阻带截止频

14、率Omega=0.3*pi,通带波动值Rp=1dB,阻带波动值Rs=15dB,设Fs=4000Hz。代码:wp=0.2*pi;ws=0.3*pi;Fs=4000;T=1/Fs; OmegaP=(2/T)*tan(wp/2);OmegaS=(2/T)*tan(ws/2);rp=1;rs=15;as=15;ripple=10(-rp/20);attn=10(-rs/20);n,wn=buttord(OmegaP,OmegaS,rp,rs,'s');z,p,k=Buttap(n);b,a=zp2tf(z,p,k);bt,at=lp2lp(b,a,wn);b,a=bilinear(bt

15、,at,Fs);db,mag,pha,grd,w=freqz_m(b,a);%下面绘出各条曲线subplot(2,2,1);plot(w/pi,mag);title('Magnitude Frequency幅频特性');xlabel('w(/pi)');ylabel('|H(jw)|');axis(0,1,0,1.1);set(gca,'XTickMode','manual','XTick',0 0.2 0.3 1);set(gca,'YTickMode','manual&#

16、39;,'YTick',0 attn ripple 1);gridsubplot(2,2,2);plot(w/pi,db);title('Magnitude Frequency幅频特性(db)');xlabel('w(/pi)');ylabel('dB');axis(0,1,-30,5);set(gca,'XTickMode','manual','XTick',0 0.2 0.3 1);set(gca,'YTickMode','manual','

17、;YTick',-60 -as -rp 0);gridsubplot(2,2,3);plot(w/pi,pha/pi);title('Phase Frequency相频特性');xlabel('w(/pi)');ylabel('pha(/pi)');axis(0,1,-1,1);subplot(2,2,4);plot(w/pi,grd);title('Group Delay群延时');xlabel('w(/pi)');ylabel('Sample');axis(0,1,0,15);set(g

18、ca,'XTickMode','manual','XTick',0 0.2 0.3 1);grid运行结果: 图2巴特沃思数字低通滤波器幅频-相频特性1-3设计一巴特沃斯高通数字滤波器,要求通带截止频率0.6*pi,通带衰减不大于1dB,阻带衰减15DB,抽样T=1。Wp=0.6*pi;Ws=0.4*pi;Ap=1;As=15;N,wn=buttord(Wp/pi,Ws/pi,Ap,As); %计算巴特沃斯滤波器阶次和截止频率 %频率变换法设计巴特沃斯高通滤波器db,mag,pha,grd,w=freqz_m(b,a); %数字滤波器响应plot

19、(w,mag);title('数字滤波器幅频响应|H(ejOmega)|') 图3巴特沃斯数字高通滤波器2-1用窗函数法设计一个线性相位FIR低通滤波器,并满足性能指标:通带边界频率Wp=0.5*pi,阻带边界频率Ws=0.66*pi,阻带衰减不小于40dB,通带波纹不大于3dB。选择汉宁窗。 代码:wp =0.5*pi; ws=0.66*pi; wdelta =ws-wp; N= ceil(8*pi/wdelta)if rem(N,2)=0N=N+1;end);1 数字滤波器及传统设计方法数字滤波器可以理解为是一个计算程序或算法,将代表输入信号的数字时间序列转化为代表输出信号

20、的数字时间序列,并在转化过程中,使信号按预定的形式变化。数字滤波器有多种分类,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。所以IIR滤波器的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。FIR数字滤波器的单位脉冲响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹最佳逼近法等。在对滤波器实际设计时,整个过程的运算量是很大的。例如利用窗函数法【2】设计M阶FIR低通滤波器时,首

21、先要根据(1)式计算出理想低通滤波器的单位冲激响应序列,然后根据(2)式计算出M个滤波器系数。当滤波器阶数比较高时,计算量比较大,设计过程中改变参数或滤波器类型时都要重新计算。 (1) (2)设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特性,运算量也是很大的。我们平时所要设计的数字滤波器,阶数和类型并不一定是完全给定的,很多时候都是要根据设计要求和滤波效果不断的调整,以达到设计的最优化。在这种情况下,滤波器的设计就要进行大量复杂的运算,单纯的靠公式计算和编制简单的程序很难在短时间内完成设计。利用MATLAB强大的计算功能进行计算机辅助设计,可以快速有效的设计数字滤波器,大

22、大的简化了计算量,直观简便。2数字滤波器的MATLAB设计2.1 FDATool界面设计 FDATool的介绍FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具,MATLAB6.0以上的版本还专门增加了滤波器设计工具箱(Filter Design Toolbox)。FDATool可以设计几乎所有的基本的常规滤波器,包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool界面总共分两大部分,一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数,另一部分则是特性区,在界面的

23、上半部分,用来显示滤波器的各种特性。Design Filter部分主要分为:Filter Type(滤波器类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的FIR滤波器。Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type I(切比雪夫I型)法、 Chebyshev Type II(切比雪夫II型) 法、Elliptic(椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares(最小乘方)法、Window(窗函数)法。Fi

24、lter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify Order(指定阶数)和Minimum Order(最小阶数)。在Specify Order中填入所要设计的滤波器的阶数(N阶滤波器,Specify OrderN-1),如果选择Minimum Order则MATLAB根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项决定,例如Bandpass(带通)滤波器需要定义Fstop1(下阻带截止频率

25、)、Fpass1(通带下限截止频率)、Fpass2(通带上限截止频率)、Fstop2(上阻带截止频率),而Lowpass(低通)滤波器只需要定义Fstop1、Fpass1。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications选项,可以定义幅值衰减的情况。例如设计带通滤波器时,可以定义Wstop1(频率Fstop1处的幅值衰减)、Wpass(通带范围内的幅值衰减)、Wstop2(频率Fstop2处的幅值衰减)。当采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。Win

26、dow Specifications选项,当选取采用窗函数设计时,该选项可定义,它包含了各种窗函数。 带通滤波器设计实例本文将以一个FIR 滤波器的设计为例来说明如何使用MATLAB设计数字滤波器:在小电流接地系统中注入83.3Hz的正弦信号,对其进行跟踪分析,要求设计一带通数字滤波器,滤除工频及整次谐波,以便在非常复杂的信号中分离出该注入信号。参数要求:96阶FIR数字滤波器,采样频率1000Hz,采用Hamming窗函数设计。本例中,首先在Filter Type中选择Bandpass(带通滤波器);在Design Method选项中选择FIR Window(FIR滤波器窗函数法),接着在W

27、indow Specifications选项中选取Hamming;指定Filter Order项中的Specify Order95;由于采用窗函数法设计,只要给出通带下限截止频率Fc1和通带上限截止频率Fc2,选取Fc170Hz,Fc284Hz。设置完以后点击Design Filter即可得到所设计的FIR滤波器。通过菜单选项Analysis可以在特性区看到所设计滤波器的幅频响应、相频响应、零极点配置和滤波器系数等各种特性。设计完成后将结果保存为1.fda文件。在设计过程中,可以对比滤波器幅频相频特性和设计要求,随时调整参数和滤波器类型,以便得到最佳效果。其它类型的FIR滤波器和IIR滤波器也都可以使用FDATool来设计。图1 滤波器幅频和相频响应(特性区)Fig.1 Magnitude Response and Phase Response of the filter2.2 程序设计法在MATLAB中,对各种滤波器的设计都有相应的计算振幅响应的函数【3】,可以用来做滤波器的程序设计。上例的带通滤波器可以用程序设计:c=95; 定义滤波器阶数96阶w1=2*pi*fc1/fs;w2=2*pi*fc2/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论