ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:428.54KB ,
资源ID:17930481      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17930481.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(fir滤波器设计Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

fir滤波器设计Word文件下载.docx

1、利用线性相位有限冲激响应滤波器的对称(或反对称)性质,可以将传输函数的直接型实现所需的乘法器总量减少一半。例如,图2-2显示了一个具有对称冲击响应的、长度为7的有限冲激响应传输函数的实现。图2- 2 线性相位有限冲激响应结构三、设计思路:根据课程上老师所讲例题,首先使用matlab计算出符合设计要求的滤波器冲激响应系数。后将整个电路规划为语言编辑和原理图编辑两个单元,其中语言编辑部分负责编辑整个滤波器电路中所需用的单元器件,包括寄存器、加法器、减法器以及乘法器几个单元器件;原理图编辑部分完成单元器件的电气连接工作。整个电路的原理图设置方案如图3-1所示:图3- 1 滤波器整体设计思路四、设计过

2、程:(一)基于matlab工具的滤波器系数计算:在matlab命令编辑窗口输入Fdatool指令,敲击回车可以打开Filter Design & Analysis Tool窗口(如图4-1所示),在该工具的帮助下,我们可以完成f.i.r.滤波器系数的计算工作。图 4- 1 Filter Design & Analysis Tool窗口Fdatool界面总共分两大部分,一部分是design filter,在界面的下半部分,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。design filter部分主要分为:Response Type(响应类型)选项,包

3、括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的滤波器。根据本次作业要求,在该选项中选择Lowpass选项。Design Method(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type i(切比雪夫i型)法、 Chebyshev Type ii(切比雪夫ii型) 法、Elliptic(椭圆滤波器)法等和FIR滤波器的Equiripple法、Least-squares(最小乘方)法、Window(窗函数)法等多种方法。结合本次作业要求,选择FIR滤波器的窗函数法进行设计。选定窗函数法

4、后,会在右侧出现Options区域,进行窗函数法相关参量的设置,根据作业要求选择Kaiser窗并设置Beta为:0.5。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括Specify order(指定阶数)和Minimum order(最小阶数)。在Specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify ordern-1),如果选择Minimum order则matlab根据所选择的滤波器类型自动使用最小阶数。本次作业要求设计16阶滤波器,所以选定Specify order并填入15。Frenquency Specifications选项,可以详细

5、定义频带的各参数,包括采样频率Fs和频带的截止频率。它的具体选项由Response Type选项和Design Metho选项决定。我们要求的 Lowpass(低通)滤波器只需要定义Fs、Fc。采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。Magnitude Specifications选项,可以定义幅值衰减的情况。采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。本次作业中的参数设定结果如图4-2所示。图 4- 2 滤波器参数设定结果参数设定完毕,单击工具窗口下方的Design Filter按钮,开始进行

6、相关参数计算。在计算结果中我们可以看到该滤波器的一些相关曲线,如幅频响应(如图4-3)、相频响应(如图4-4)、冲激响应(如图4-5)等以及具体的系数值(如图4-6)。图 4- 3 幅频响应图 4- 4 相频响应图 4- 5 冲激响应图 4- 6 所设计滤波器冲激系数计算的结果可通过File下拉菜单中的Export命令取出,点击Export打开Export对话框(如图4-7),点击OK按钮可将滤波器系数数据存放到当前工作空间,并以Num命名。图 4- 7 冲激系数输出对话框保存并关闭滤波器设计分析工具回到matlab主窗口,在命令编辑区输入Num可得到工具的计算结果(如图4-8)。图 4- 8

7、 输出在matlab的冲激系数对FIR滤波器的系数进行调整,做整数化操作(如图4-9)。可得到滤波器整数化的系数为-31 -88 -106 -54 70 239 401 499 499 401 239 70 -54 -106 -88 -31图 4- 9 整数化后的冲激系数(二)单元器件的语言编辑:1、寄存器模块寄存器用于寄存一组二值代码,只要求它们具有置1、置0的功能即可。在本设计中用D触发器组成寄存器,实现寄存功能。本设计中使用带异步复位rst端的D触发器,当rst=1时,输出信号q=0,当rst=0且上升沿脉冲到达时q=d。 程序代码如下:-LIBRARY ieee;USE ieee.st

8、d_logic_1164.all;ENTITY dff16 ISPORT (rst,clk: IN STD_LOGIC; d:IN STD_LOGIC_VECTOR (9 DOWNTO 0); q:OUT STD_LOGIC_VECTOR (9 DOWNTO 0);END dff16;ARCHITECTURE dff16 OF dff16 ISBEGIN PROCESS (rst,clk) BEGIN IF(rst=1)THEN q0); ELSIF(clkEVENT AND clk=)THEN=d; END IF; END PROCESS;仿真结果如图4-10所示:图 4- 10 寄存器仿真

9、结果2、加法器模块实现两个有符号数的相加运算。即将输入的两数,在时钟脉冲到来时相加运算,输出结果。在本设计中共有8个两个10位有符号数相加产生一个11位有符号数的加法器、一个18位和19位有符号数相加产生20位有符号数的加法器、一个两个20位有符号数相加产生一个21位有符号数的加法器、一个两个19位有符号数相加产生一个20位有符号位数的加法器、一个20位和21位有符号数相加产生22位有符号数的加法器,以及一个20位和22位有符号数相加产生23位有符号数的加法器电路。其中一个20位和22位有符号数相加产生23位有符号数的加法器电路为最后一级,所以在加法器电路中在引入低位舍去功能只保留最终10位输

10、出,最终保留10位输出采用了直接取输出23位数的高十位的方法,因此在输出中近似等于除掉了213即8192以后的结果。 10位有符号数相加产生一个11位有符号数的加法器设计: -USE ieee.std_logic_arith.all;ENTITY sum101011 IS PORT(a,b: IN SIGNED(9 DOWNTO 0); clk: s:OUT SIGNED(10 DOWNTO 0);END SUM101011;ARCHITECTURE sum101011 OF sum101011 IS PROCESS(clk) BEGIN IF(clk s=(a(9)&a)+(b(9)&b);

11、END sum101011;仿真结果如图4-11所示:图 4- 11 两10位相加产生11位加法器仿真结果 18位和19位有符号数相加产生20位有符号数的加法器设计:ENTITY sum7023918 IS PORT(a: IN SIGNED(17 DOWNTO 0); b: IN SIGNED(18 DOWNTO 0);OUT SIGNED(19 DOWNTO 0);END sum7023918;ARCHITECTURE sum7023918 OF sum7023918 IS=(a(17)&a(17)&a)+(b(18)&仿真结果如图4-12所示:图 4- 12 18位19位相加产生20位数

12、仿真结果 两个20位有符号数相加产生一个21位有符号数的加法器设计:ENTITY sum40149919 IS IN SIGNED(19 DOWNTO 0);OUT SIGNED(20 DOWNTO 0);END sum40149919;ARCHITECTURE sum40149919 OF sum40149919 IS=(a(19)&a)+(b(19)&仿真结果如图4-13所示:图 4- 13 两20位相加产生21位数仿真结果 两个19位有符号数相加产生一个20位有符号位数的加法器设计:ENTITY sum181819 ISEND sum181819;ARCHITECTURE sum1818

13、19 OF sum181819 IS=(a(18)&仿真结果如图4-14所示:图 4- 14 两19位相加产生20位数仿真结果 20位和21位有符号数相加产生22位有符号数的加法器:ENTITY sum192021 IS IN SIGNED(20 DOWNTO 0);OUT SIGNED(21 DOWNTO 0);END sum192021;ARCHITECTURE sum192021 OF sum192021 ISa(19)&a)+(b(20)&仿真结果如图4-15所示:图 4- 15 20位和21相加产生22位数仿真结果 20位和22位有符号数相加产生23位有符号数的加法器电路设计(最后一

14、级带舍位):- ENTITY sum192110 IS IN SIGNED(21 DOWNTO 0);OUT SIGNED(9 DOWNTO 0);END sum192110;ARCHITECTURE sum192110 OF sum192110 IS VARIABLE c:SIGNED(22 DOWNTO 0); c:a)+(b(21)&=c(22 DOWNTO 13);仿真结果如图4-16所示:图 4- 16 20位22位相加产生被截短的10位数仿真结果3、减法器模块:实现零值减去两个有符号数的减法运算。即用零值减去输入的两数,在时钟脉冲到来时做减法运算,输出结果。-31和-88的乘结果都

15、只包含了乘系数31和88的数值,并没有将两个负号代入,所以两乘法器后面的加法器运算改为减法器模块,采用0-31*累加结果-88*累加结果的方法,实现(-31)*累加结果+(-88)*累加结果的计算。-106和-54后面的加法器采用同样的方式处理。 -31和-88的减法器设计:-ENTITY sub318817 isPORT(clk : in STD_LOGIC; Din1 :in signed (15 downto 0); Din2 :in signed (17 downto 0); Dout :out signed(18 downto 0);END sub318817;ARCHITECTUR

16、E sub318817 of sub318817 ISSIGNAL s1: signed(17 downto 0):=(Din1(15)&Din1(15)&Din1);SIGNAL s2: signed(18 downto 0): PROCESS(Din1,Din2,clk) IF clkevent and clk= THEN Dout=s2-Din2-s1;仿真结果如图4-17所示:图 4- 17 -31和-88减法器的仿真结果 -106和-54的减法器的设计:ENTITY sub1065417 isin signed (16 downto 0);END sub1065417;ARCHITE

17、CTURE sub1065417 of sub1065417 IS=(Din2(16)&Din2);=s2-Din1-s1;仿真结果如图4-18所示:图 4- 18 -106和-54减法器的仿真结果4、乘法器模块:从资源和速度考虑,常系数乘法运算可用移位相加来实现。将常系数分解成几个2的幂的和形式。滤波器系数分别为-31、-88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、-31。算法:其中带负号数先乘去负号的整数部分,在后面的求和中做减法运算。编码方式如下:31被编码为25-20、88被编码为26+24+23、106被编码为26+2

18、5+23+21、54被编码为26-23-21、70被编码为26+22+21、239被编码为28-24-20、401被编码为29-27+24+20、499被编码为29-23-22-20。实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升沿时,将两数输入,运算并输出结果。乘31电路设计:ENTITY mult31 ISPORT( clk : Din : IN SIGNED (10 DOWNTO 0); OUT SIGNED (15 DOWNTO 0);END mult31;ARCHITECTURE mult31 OF mult31 ISSIGNAL s1 : SIGNED (15 DOWNTO 0);SIGNAL s2 : SIGNED (10 DOWNTO 0);SIGNAL s3 : A1:PROCESS(Din,s1,s2,s3) s1=Din&00000; s2=Din; IF (Din(10)=) THEN s3=(&s1(14 downto 0)-(s2(10 DOWNTO 0); ELSE 11111 A2: PROCESS(clk,s3) I

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1