基于FPGA的FIR滤波器设计

上传人:琴**** 文档编号:19126700 上传时间:2017-11-18 格式:DOC 页数:29 大小:1.31MB
返回 下载 相关 举报
基于FPGA的FIR滤波器设计_第1页
第1页 / 共29页
基于FPGA的FIR滤波器设计_第2页
第2页 / 共29页
基于FPGA的FIR滤波器设计_第3页
第3页 / 共29页
基于FPGA的FIR滤波器设计_第4页
第4页 / 共29页
基于FPGA的FIR滤波器设计_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《基于FPGA的FIR滤波器设计》由会员分享,可在线阅读,更多相关《基于FPGA的FIR滤波器设计(29页珍藏版)》请在金锄头文库上搜索。

1、基于 FPGA 的 FIR 滤波器设计一 、设计目的为了帮助学生深入理解和消化基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将数字信号处理 、 集成电路原理与应用和FPGA 系统设计与应用几门课程融合在一起开设的 FPGA 综合实验课程设计。本次完成的是利用 FPGA 来完成 FIR 滤波器的设计、程序设计和实验调试任务。二、设计要求(1)基本要求利用所学知识,采用 VHDL 语言完成 FIR 滤波器的设计仿真。要求用 VHDL编程设计底层文件,顶层文件可任意(可用原理图方式或文本方式) ;完成仿真文件(包括 MATLAB 和 QUARTUSII 两种仿真)并对其结果比较。具

2、体设计指标如下:(1)采样频率 SF=80KHz;(2)截止频率 C1;(3)输入序列为 10 位(最高位为符号位) ;(4)窗口类型为 kaiser 窗, =0.5 ;(5)滤波器长度为 16 ;(6)输出结果保留 10 位。(2)提高部分根据所学知识,设计出一个具有频率控制功能 DDS,要求输出频率分别为 10KHz 和 100KHz,将输出的两路数字信号进行叠加,并通过所设计的 FIR 滤波器进行滤波,将滤波输出的数字信号通过 D/A 转换电路输出波形,并用示波器观察输出波形,并完成测试结果分析。结构框图如图 1-1 所示。D D S 模块输出D D S 模块输出F I R 滤波器 D

3、/ A 转换模块输出频率 1频率 2图 2-1 整体结构框图三、设计原理3.1 FIR 滤波器由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。3.2 线性 FIR 滤波器原理FIR 滤波器响应(简称 FIR)系统的单位脉冲响应 为有限长序列,系统()hn函数 在有限 z 平面上不存在极点,其运算结构中不存在反馈支路,即没有()Hz环路。如果 的

4、长度为 N,则它的系统函数和差分方程一()hn般具有如下形式:10()()Nmynhxn根据差分方程直接画出 FIR 滤波器的结构,称为直接型结构。如图 3-1 所示: 图 3-1 FIR 滤波器直接结构FIR 滤波器的特点:单位脉冲响应序列为有限个;可快速实现;可得到线性相位;滤波器阶数较高。对线性时不变系统保持线性相位的条件是:单位脉10()()Nnnzz冲响应为偶对称或奇对称。即:为设计线性滤波器,应保证 h(n)为对称的。 若 N 为偶数,其线性相位 FIR 滤波器的对称结构流图如图 3-2 所示:图 3-2 若 N 为偶数线性相位 FIR 滤波器的对称结构流图图中:“ +1 ” 对应

5、偶对称情况, “ -1 ” 对应奇对称情况。当 n 为奇数时,支路断开。 若 N 为奇数,其线性相位 FIR 滤波器的对称结构流图如图 3-3:图 3-3 N 为奇数线性相位 FIR 滤波器的对称结构流图其中 y(n)和 x(n)分别是输出和输入序列。有限冲激响应滤波器的一种直接型实现,可由式(2)生成,M=5 的情况如图 3-4(a)所示。其转置,如图3-4(b)所示,是第二个直接型结构。通常一个长度为 M 的有限冲激响应滤波器由 M 个系数描述,并且需要 M 个乘法器和(M-1)个双输入加法器来实现。-1z-1z-1z-1z+x(n)h(0)h(1)h(2)h(3)h(4)y(n)+图 3

6、-4(a)直接型一0 ()(1) n N-1hnh(0)h(1)h(2)h(3)h(4) -1z-1z-1z-1z+x(n) y(n)图 3-4(b)直接型二长度为 M 的线性相位有限冲激响应滤波器由对称的冲激响应 h(n)=h(M-1-n)或反对称的冲激响应 h(n)=-h(M-1-n)描述。利用线性相位有限冲激响应滤波器的对称(或反对称)性质,可以将传输函数的直接型实现所需的乘法器总量减少一半。例如,图 3-5 显示了一个具有对称冲击响应的、长度为 7的有限冲激响应传输函数的实现。 -1z-1z-1z-1z-1z-1z+h(0) h(1) h(2) h(3)+x(n) y(n)+图 3-

7、5 线性相位有限冲激响应结构四、设计方案因为 N=16 为偶数,根据老师上课时所讲,可以按照上面第一个原理图设计滤波器,如图 4-1 所示。图 4-1 若 N 为偶数线性相位 FIR 滤波器的对称结构流图本设计取 为偶对称的情况,则图中:应取“ +1 ” 。由上图可分析得到,()hn要完成滤波器的设计,需要设计的底层文件包括延时单元、加法电路单元、乘以负一单元、乘法器单元及截取 10 位数单元。由各单元 VHDL 编程后,生成相应的符号文件。最后连接成顶层原理图。整个电路的原理图设置方案如图 4-2所示: -1z-1z-1z-1z-1z-1z-1z-1z+-1z-1z-1z-1z-1z-1z-

8、1z+xxxx+- -Din9.0Dout9.0图 4- 2 滤波器整体设计方案原理图五、设计内容及结果分析首先使用 matlab 计算出符合设计要求的滤波器冲激响应系数。后将整个电路规划为语言编辑和原理图编辑两个单元,其中语言编辑部分负责编辑整个滤波器电路中所需用的单元器件,包括寄存器、加法器、减法器以及乘法器几个单元器件;最后将所有的器件连接成顶层原理图。在进行编译及仿真。5.1 基于 matlab 的 FIR 滤波器系数计算在 matlab 命令编辑窗口输入 Fdatool 指令,再点回车即可打开 Filter Design & Analysis Tool 窗口,在该工具的帮助下,我们就

9、可以完成 f.i.r.滤波器系数的计算。Fdatool 界面总共分两大部分,一部分是 design filter,在界面的下半部分,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。design filter 部分主要分为:Response Type(响应类型)选项,包括 Lowpass(低通) 、Highpass(高通) 、Bandpass(带通) 、Bandstop(带阻)和特殊的滤波器。根据本次作业要求,在该选项中选择 Lowpass 选项。Design Method(设计方法)选项,包括 IIR 滤波器的 Butterworth(巴特沃思)法、C

10、hebyshev Type i(切比雪夫 i 型)法、 Chebyshev Type ii(切比雪夫 ii 型) 法、Elliptic(椭圆滤波器)法等和 Window(窗函数)法等多种方法。结合本次课设要求,选择 FIR 滤波器的窗函数法进行设计。选定窗函数法后,会在右侧出现 Options 区域,进行窗函数法相关参量的设置,根据作业要求选择 Kaiser 窗并设置 Beta 为:0.5。Filter Order(滤波器阶数)选项,定义滤波器的阶数,包括 Specify order(指定阶数)和 Minimum order(最小阶数) 。在 Specify order 中填入所要设计的滤波器

11、的阶数(n 阶滤波器,specify ordern-1) ,如果选择Minimum order 则 matlab 根据所选择的滤波器类型自动使用最小阶数。本次作业要求设计 16 阶滤波器,所以选定 Specify order 并填入 15。Frenquency Specifications 选项,可以详细定义频带的各参数,包括采样频率 Fs 和频带的截止频率。它的具体选项由 Response Type 选项和 Design Metho 选项决定。我们要求的 Lowpass(低通)滤波器只需要定义 Fs=80 KHz、Fc=10 KHz。本次课设中的参数全部设定后的结果如图 5-1 所示。图 5

12、-1 参数全部设定后图参数设定完毕,单击工具窗口下方的 Design Filter 按钮,就开始进行相关参数计算。在计算结果中可以看到该滤波器的一些相关曲线,如幅频响应(如图 5-2) 、相频响应(如图 5-3) 、冲激响应(如图 5-4)等。图形如下:图 5-2 幅频响应曲线图 5-3 相频响应曲线图 5-4 冲激响应计算的结果可通过 File 下拉菜单中的 Export 命令取出,点击 Export 打开Export 对话框(如图 5-5) ,点击 Export 按钮可将滤波器系数数据存放到当前工作空间,并以 Num 命名。图 5-5 冲激系数输出对话框保存并关闭滤波器设计分析工具回到 m

13、atlab 主窗口,在命令编辑区输入Num 可得到工具的计算结果(如图 5-6) 。图 5-6 输出在 matlab 的冲激系数对 FIR 滤波器的系数进行调整,做整数化操作。可得到滤波器整数化的系数为-31 -88 -106 -54 70 239 401 499 499 401 239 70 -54 -106 -88 -31,如图 5-7 所示:图 5-7 整数化后的冲激系数5.2 单元器件的编辑及仿真5.2.1、寄存器模块在本次课设中延迟单元可用寄存器来替代,寄存器用于寄存一组二值代码,只要求它们具有置 1、置 0 的功能即可。在本设计中使用带异步复位 rst 端的D 触发器,当 rst=

14、1 时,输出信号 q=0,当 rst=0 且上升沿脉冲到达时 q=d,即延迟了一个在周期。其程序代码如下:LIBRARY ieee; USE ieee.std_logic_1164.all;ENTITY jicunqi ISPORT (rst,clk: IN STD_LOGIC;d:IN STD_LOGIC_VECTOR (9 DOWNTO 0);q:OUT STD_LOGIC_VECTOR (9 DOWNTO 0);END jicunqi;ARCHITECTURE dff16 OF jicunqi ISBEGINPROCESS (rst,clk)BEGINIF(rst=1)THEN q0);

15、ELSIF(clkEVENT AND clk=1)THENq0);BEGINPROCESS(Din1,Din2,clk)BEGINIF clkevent and clk=1 THENDout0);BEGINPROCESS(Din1,Din2,clk)BEGINIF clkevent and clk=1 THENDout=s2-Din1-s1;END IF;END PROCESS;END sub1065417;程序编译后就可进行仿真,仿真结果如图 5-24 所示:图 5-24 -106 和-54 的减法器结果仿真图由上图可知,与预期相符,即设计正确,再将其生成为一个元件以便后来调用,其生成图如图 5-25 所示;图 5-25 -106 和-54 的减法器元件图5.2.4、乘法器模块:实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升沿时,将两数输入,运算并输出结果。从资源和速度方面考虑,常系数乘法运算可用移位相加来实现。将常系数分解成几个 2 的幂的和形式,然后再分别进行运算。滤波器系数分别为-31、-88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、-31。算法:其中带负号数先乘去负号的整数部分,在后面的求和中做减法运算

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号