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

下载本文档

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

文档简介

1、精品文档 n=31;%定义滤波器阶数32fs=12.8*10A3;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=li nspace(0,pi,512);h仁freqz(q,1,512);% 进行512个点的傅里叶变换figure(2);plot(w/pi,20*log10(abs(h1);titl

2、e(滤波器频谱图);xlabel(频率);ylabel(幅度);grid ;设计FIR低通滤波器,系统频率为50MHz,通带截止频率Fpass为1MHz,阻 带截止频率Fstop为4MHz,通带最大衰减 Apass为1dB,阻带最小衰减 Astop 为30dB。 程序和必要的程序注释 谢谢叵最佳答案只要用一个公式就行。library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;en tity fir isPort (clk: in std_logic;

3、reset: in std_logic;inpx: in stdogic_vector(11 downto 0);outy: out stdo gic_vector(11 dow nto 0);end fir;architecture beh of fir issig nalx0,x1,x2,x3: stdo gic_vector(11 dow nto 0);con sta nt c0:i nteger :=-1234*32768/1000;con sta nt c1:i nteger :=2345*32768/10000;con sta nt c2:i nteger :=5*32768;co

4、n sta nt c3:i nteger :=-3*32768/10000;signal p0,p1,p2,p3:integer;signal sum: integer; beginsample_delay_line: process(clk) beginif rising_edge(clk) thenif reset=1 thenx3 0);x2 0);x1 0);x0 0);elsex3 =x2;x2 =x1;x1 =x0;x0 =inpx;end if;end if;end process;p0 = conv_integer(x0)*c0;p1 = conv_integer(x1)*c1

5、;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、通过线性系统后,其输出 就是输入信号 和系统冲激响应 的卷积。除了 外, 的波形将不同于输入波形 。从频域分析来看,信号通过线性系统后,输出 信号的频谱将是输入信号的频谱与系统传递函数的乘积。除非 为常数,否则输 出信号的频谱将不同于输入信号的频谱, 某些频率成分 较大的模, 因此, 中这 些频率成分将得到加强, 而另外一些频率成分 的模很小甚至为零, 中这部分频 率分量将被削弱或消失。因此,系统的作用相当于对输入信号的频谱进行加权。4.2 IIR 滤波器的设计原理IIR 数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有 butterworth

7、函数、Chebyshev函数、bessel 函数、椭圆滤波器函数等。IIR 数字滤波器的设计步骤:( 1) 按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指 标;( 2) 根据模拟滤波器技术指标设计为响应的模拟低通滤波器;( 3) 很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;( 4) 如果要设计的滤波器是高通、 带通或带阻滤波器, 则首先把它们的技术指 标转化为模拟低通滤波器的技术指标, 设计为数字低通滤波器, 最后通过频率转 换的方法来得到所要的滤波器。4.3 FIR 滤波器的设计原理FIR 滤波器通常采用窗函数方法来设计。 窗设计的基本思想是, 首先选择一个

8、适 当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后 街区(加窗)它的脉冲响应得到线性相位和因果 FIR滤波器。我们用Hd (eAjw) 表示理想的选频滤波器, 它在通带上具有单位增益和线性相位, 在阻带上具有零 响应。一个带宽 wCpi 的低通滤波器由下式给定:为了从hd(n)得到一个FIR滤波器,必须同时在两边截取 hd( n)。而要得到一 个因果的线性相位滤波器,它的h(n)长度为N,必须有:这种操作叫做加窗,h(n)可以看做是hd(n)与窗函数w(n)的乘积: h(n)=hd(n)w(n)其中根据w(n)的不同定义,可以得到不同的窗结构。在频域中,因果FIR滤波器

9、响应H(eAjw)由Hd(eAjw)和窗响应 W(eAjw)的周 期卷积得到,即常用的窗函数有矩形窗、巴特利特( BARTLETT )窗、汉宁( HANNING ) 窗、海明(HAMMING )窗、布莱克曼(BLACKMAN )窗、凯泽(KAISER)窗 等。4.4 FIR 滤波器的窗函数设计法FIR 滤波器的设计方法有许多种, 如窗函数设计法、 频率采样设计法和最优 化设计法等。窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序 列获得有限长的脉冲响应序列,主要设计步骤为:(1) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应 hd(n)。(2) 由性能指标确定窗函数 W(n)和窗口长

10、度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, 通带波动值 Rp=1dB, 阻带波动值 Rs=15dB, 设 Fs

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

13、 buttord(wp, ws, 0.5, 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 模拟滤波器原型,使用双线性状换设计数字滤波器:各参 数值为:通带截止频率 Ome

14、ga=0.2*pi, 阻带截止频率 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=10A(-rp/20);att n=10A(-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)

15、;b,a=bilinear(bt,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,YTick,0 attn ripple 1);gridsubplot(2,2,2);plot(w/pi,db);t

16、itle(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,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

17、/pi,grd);title(Group Delay 群延时 ); xlabel(w(/pi);ylabel(Sample);axis(0,1,0,15); set(gca,XTickMode,manual,XTick,0 0.2 0.3 1);grid 运行结果: 图 2 巴特沃思数字低通滤波器幅频 - 相频特性1-3 设计一巴特沃斯高通数字滤波器,要求通带截止频率 0.6*pi ,通带衰减不大于1dB,阻带衰减15DB,抽样T=1 0Wp=0.6*pi;Ws=0.4*pi;Ap=1;As=15;N,wn=buttord(Wp/pi,Ws/pi,Ap,As);%计算巴特沃斯滤波器阶次和截止频

18、率%频率变换法设计巴特沃斯高通滤波器 db,mag,pha,grd,w=freqz_m(b,a);%数字滤波器响应plot(w,mag);title( 数字滤波器幅频响应 |H(ejOmega)|)图 3 巴特沃斯数字高通滤波器2-1 用窗函数法设计一个线性相位 FIR 低通滤波器,并满足性能指标 :通带边界频 率Wp=0.5*pi, 阻带边界频率 Ws=0.66*pi, 阻带衰减不小于 40dB, 通带波纹不大于 3dB 0选择汉宁窗0代码:wp =0.5*pi;ws=0.66*pi;wdelta =ws-wp;N= ceil(8*pi/wdelta)if rem(N,2)=0N=N+1;e

19、nd);1 数字滤波器及传统设计方法数字滤波器可以理解为是一个计算程序或算法, 将代表输入信号的数字时间序列 转化为代表输出信号的数字时间序列, 并在转化过程中, 使信号按预定的形式变 化。数字滤波器有多种分类, 根据数字滤波器冲激响应的时域特征, 可将数字滤 波器分为两种,即无限长冲激响应( IIR )滤波器和有限长冲激响应( FIR )滤波IIR 数字滤波器具有无限宽的冲激响应,与模拟滤波器相匹配。所以 IIR 滤波器 的设计可以采取在模拟滤波器设计的基础上进一步变换的方法。 FIR 数字滤波器 的单位脉冲响应是有限长序列。 它的设计问题实质上是确定能满足所要求的转移 序列或脉冲响应的常数

20、问题, 设计方法主要有窗函数法、 频率采样法和等波纹最 佳逼近法等。在对滤波器实际设计时,整个过程的运算量是很大的。例如利用窗函数法【2】设计 M 阶 FIR 低通滤波器时, 首先要根据 (1)式计算出理想低通滤波器的单位 冲激响应序列,然后根据( 2)式计算出 M 个滤波器系数。当滤波器阶数比较高 时,计算量比较大,设计过程中改变参数或滤波器类型时都要重新计算。(1)(2)设计完成后对已设计的滤波器的频率响应要进行校核,要得到幅频相频响应特 性,运算量也是很大的。 我们平时所要设计的数字滤波器, 阶数和类型并不一定 是完全给定的, 很多时候都是要根据设计要求和滤波效果不断的调整, 以达到设

21、计的最优化。在这种情况下, 滤波器的设计就要进行大量复杂的运算, 单纯的靠 公式计算和编制简单的程序很难在短时间内完成设计。利用 MATLAB 强大的计 算功能进行计算机辅助设计, 可以快速有效的设计数字滤波器, 大大的简化了计 算量,直观简便。2 数字滤波器的 MATLAB 设计2.1 FDATool 界面设计2.1.1 FDATool 的介绍FDATool ( Filter Design & Analysis Tool )是 MATLAB 信号处理工具箱里专用 的滤波器设计分析工具, MATLAB6.0 以上的版本还专门增加了滤波器设计工具 箱(Filter Design Toolbox

22、)。FDATool可以设计几乎所有的基本的常规滤波器, 包括FIR和IIR的各种设计方法。它操作简单,方便灵活。FDATool 界面总共分两大部分, 一部分是 Design Filter ,在界面的下半部, 用来 设置滤波器的设计参数, 另一部分则是特性区, 在界面的上半部分, 用来显示滤 波器的各种特性。 Design Filter 部分主要分为:Filter Type (滤波器类型)选项,包括 Lowpass (低通)、 Highpass (高通)、 Bandpass (带通)、 Bandstop (带阻)和特殊的 FIR 滤波器。Design Method (设计方法)选项,包括 IIR

23、 滤波器的 Butterworth (巴特沃思) 法、Chebyshev Type I (切比雪夫 I 型)法、 Chebyshev Type II (切比雪夫 II 型)法、Elliptic (椭圆滤波器)法和FIR滤波器的Equiripple法、Least-Squares (最小乘方)法、 Window (窗函数)法。Filter Order (滤波器阶数)选项,定义滤波器的阶数,包括 Specify Order (指 定阶数)和 Minimum Order (最小阶数)。在 Specify Order 中填入所要设计的 滤波器的阶数(N阶滤波器,Specify Order = N-1 )

24、,如果选择 Minimum Order 则 MATLAB 根据所选择的滤波器类型自动使用最小阶数。Frenquency Specifications 选项,可以详细定义频带的各参数,包括采样频率 Fs和频带的截止频率。它的具体选项由Filter Type选项和Design Method选项 决定,例如 Bandpass (带通)滤波器需要定义 Fstop1 (下阻带截止频率)、 Fpass1 (通带下限截止频率)、 Fpass2 (通带上限截止频率)、 Fstop2 (上阻 带截止频率),而 Lowpass (低通)滤波器只需要定义 Fstop1 、 Fpass1 。采用 窗函数设计滤波器时,

25、 由于过渡带是由窗函数的类型和阶数所决定的, 所以只需 要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications 选项,可以定义幅值衰减的情况。例如设计带通滤波 器时,可以定义 Wstop1 (频率Fstop1处的幅值衰减)、Wpass (通带范围内 的幅值衰减)、 Wstop2 (频率 Fstop2 处的幅值衰减)。当采用窗函数设计时, 通带截止频率处的幅值衰减固定为 6db,所以不必定义。Window Specifications 选项,当选取采用窗函数设计时,该选项可定义,它包 含了各种窗函数。2.1.2 带通滤波器设计实例本文将以一个 FIR 滤波器的设

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

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

温馨提示

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

评论

0/150

提交评论