FPGA实现FIR抽取滤波器的设计
基于FPGA的FIR数字滤波器设计
1、F PGA技术简介现场可编程门阵列FPGA是80年代末开始使用的大规模可编程数字IC器件,它充分利用EDA技术进行器件的开发与应用。
用户借助于计算机不仅能自行设计自己的专用集成电路芯片,还可在计算机上进行功能仿真和时序仿真,及时发现问题,调整电路,改进设计方案。
这样,设计者不必动手搭接电路、调试验证,只需短时间内在计算机上操作即可设计出与实际系统相差无几的理想电路。
而且,FPGA器件采用标准化结构,体积小、集成度高、功耗低、速度快,可无限次反复编程,因此成为科研产品开发及其小型化的首选器件,其应用极为广泛。
3.1 FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。
FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
3.2 FIR滤波器特点1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
FPGA的FIR抽取滤波器设计
FPGA的FIR抽取滤波器设计用FPGA实现抽取滤波器比较复杂,主要是因为在FPGA中缺乏实现乘法运算的有效结构,现在,FPGA中集成了硬件乘法器,使FPGA在数字信号处理方面有了长足的进步。
本文介绍了一种采用Xilinx公司的XC2V1000实现FIR抽取滤波器的设计方法。
具体实现结构设计基于抽取滤波器的工作原理,本文采用XC2V1000实现了一个抽取率为2、具有线性相位的3阶FIR抽取滤波器,利用原理图和VHDL共同完成源文件设计。
图1是抽取滤波器的顶层原理图。
其中,clock是工作时钟,reset是复位信号,enable是输入数据有效信号,data_in(17:0)是输入数据,data_out(17:0)是输出数据,valid是输出数据有效信号。
adder18是加法器模块,mult18是乘法器模块,acc36是累加器模块,signal_36to18是数据截位器模块,fir_controller是控制器模块。
控制器定时向加法器、乘法器和累加器发送数据或控制信号,实现流水线操作。
图1 抽取滤波器顶层原理图控制器控制器是抽取滤波器的核心模块,有两个功能:一是接收输入数据,二是向其它模块发送数据和控制信号。
它根据加法器、乘法器和累加器的时序特性,有规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器在每个时钟周期都完成指定的任务,从而实现流水线操作。
控制器用VHDL语言描述,用寄存器存放抽头和系数。
加法器加法器的输入和输出都是18 bit,用VHDL语言描述实现。
它有两个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二个时钟把相加结果锁存输出。
乘法器乘法器为18 bit输入,36bit输出,用库元件MULT18X18S和36 bit锁存器实现。
MULT18X18S是XC2V1000自带的18×18bit硬件乘法器,单个时钟就可完成乘法运算。
基于FPGA的FIR数字滤波器设计说明
毕业论文设计题目基于FPGA的FIR数字滤波器设计摘要FIR(Finite Impulse Response,FIR)数字滤波器被大量的运用因为其良好的特性属于数字信号处理的基本模块之一。
在工程实践中,我们对信号处理的实时性和灵活性有很高的要求,而己有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
本文研究了基于FPGA的FIR数字低通滤波器的设计及实现,其主要工作如下:(1)以FIR数字滤波器的基本理论为依据,在MATLAB上通过等波纹逼近法计算得出滤波系数,并分析其幅频、相频特性判断是否满足要求。
(2)在FPGA的设计中,采用了层次化、模块化的设计思想,将整个滤波器划分为多个功能模块,利用Verilog语言和原理图输入两种设计技术进行了各个功能模块的设计,并用MATLAB、QuartusII软件进行了仿真。
最终完成了FIR数字滤波器的系统设计。
(3)将设计的64阶的FIR低通滤波器下载FPGA(EP2C5T114C8N)芯片中后,用示波器观察到设计结果符合要求,证明了所设计的FIR数字滤波器功能正确。
且其结果也表明了FPGA来实现FIR滤波器,既具有实时性,又有一定的灵活性。
关键词:FIR数字滤波器;MATLAB;可编程逻辑器件;模块化算法Abstractthe FIR digital filter is used form any practical applications for its g ood linear phase character, and it provide an important function in digital signal processing design. In engineering practice, there is always a real-time and flexible requirement for signal processing. However, software and hardware techniques available for implementation are difficult to meet the demand for the two aspects in the same time.(1) With the basic theory of FIR digital filters for basis, In MATLAB th rough corrugated approximation method such as calculated filter coefficient , and analyzes the amplitude frequency, phase frequency characteristics det ermine whether meet the requirements.(2) In the FPGA design, the arrangement, modular design thought, the fil ter will be divided into multiple function module, the use of language and Verilog principle chart input two design technology of each function module design, with MATLAB, QuartusII software simulation. Eventually completed t he FIR digital filters system design.(3) Download the 64 order of the design of the low FIR filter into FPGA (EP2C5T114C8N) chip, with an oscilloscope to observe the design result acc ords with a requirement, Show the design of FIR digital filters function co rrectly. And the results also show that the FPGA to achieve FIR filter, hasboth the real-time property, also has the certain flexibility.Keywords:FIR digital filters; MATLAB; Programmable logic device; Modular al gorithm目录第一章研究的背景和意义 ................................................ - 1 -1.1 课题的研究背景.................................................. - 1 -1.2 国外的研究现状.................................................. - 1 -1.3 研究思路........................................................ - 1 -第二章 FIR 数字滤波器 ................................................. - 2 -2.1 数字滤波器概述.................................................. - 2 -2.2 数字滤波器的性能指标............................................. - 3 -2.3 数字滤波器系统结构............................................... - 5 -2.4 线性相位特性..................................................... - 5 -2.5 FIR滤波器的基本结构............................................. - 7 -2.5.1 直接型..................................................... - 7 -2.5.2 级联型.................................................... - 8 -2.5.3 线性相位型结构............................................. - 8 -2.5.4 频率采样型............................................... - 10 - 第三章 FIR数字滤波器设计与仿真........................................ - 11 -3.1 利用MATLAB计算FIR滤波系数..................................... - 11 -3.1.1 emez函数的最优化法...................................... - 11 -3.1.2 量化与量化误差量.......................................... - 15 -3.2 FIR滤波器的各模块设计......................................... - 17 -3.2.1 带噪声信号发生器的设计.................................... - 18 -3.2.2 位移寄存器(延时)、一级求和的设计....................... - 19 -3.2.3 滤波系数模块............................................. - 20 -3.2.4 二级求和与结尾处理模块................................... - 21 - 第四章系统调试 ...................................................... - 24 -4.1 EP2C5T114C8N最小系统电路图.................................... - 24 -4.2 DAC0832原理及电路图............................................ - 24 -4.3 系统调试及结果................................................. - 25 - 结论................................................................. - 27 -致 28第一章研究的背景和意义1.1 课题的研究背景在信号处理领域中,人们在进行信号处理时对速度的要求越来越高。
基于FPGA乘法器的FIR滤波器系统设计
基于FPGA乘法器的FIR滤波器系统设计FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以根据设计者的需求和要求进行编程,实现各种数字电路功能。
FIR (Finite Impulse Response)滤波器是一种常用的数字滤波器,其特点是能够对输入信号的有限长度的响应进行滤波处理。
本文将介绍基于FPGA乘法器的FIR滤波器系统设计。
首先,介绍FIR滤波器的原理。
FIR滤波器是一种线性时不变系统,其输出信号由输入信号的加权和组成。
FIR滤波器的输入经过一串系数的加权运算后,得到滤波器的输出。
FIR滤波器的传输函数为:H(z) = b0 + b1*z^(-1) + b2*z^(-2) + ... + bn*z^(-n)其中,bi是滤波器的系数,n是滤波器的阶数,z为单位延迟。
FIR 滤波器的输出信号可以表示为:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(n-n)其中,x是输入信号,y是输出信号。
FIR滤波器的阶数决定了滤波器的性能,阶数越高,滤波器的频率响应越陡峭。
接下来,介绍基于FPGA乘法器的FIR滤波器系统设计。
FPGA乘法器是FPGA中的一种硬件资源,通常用于实现乘法运算。
FPGA乘法器的乘法操作可以并行地执行,可以大大提高FIR滤波器的运算速度。
在设计基于FPGA乘法器的FIR滤波器系统时,首先需要确定FIR滤波器的阶数和系数。
根据滤波器的需求,可以选择不同的阶数和系数。
然后,根据FIR滤波器的传输函数,可以将其转化为差分方程形式。
差分方程形式如下:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(n-n)然后,将差分方程形式转化为数据流形式。
数据流形式中的每一步计算只涉及到少量的数据,可以并行地执行。
数据流形式如下:y(n) = b0*x(n) + b1*x(n-1) + b2*x(n-2) + ... + bn*x(0)接下来,需要将数据流形式转化为硬件电路。
基于FPGA的FIR滤波器设计书
基于FPGA的FIR滤波器设计书1 概述我们学生通过这次的课设深入理解和消化了基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《FPGA 系统设计与应用》几门课程融合在一起综合应用设计一个实用的数字FIR 滤波器。
本报告中首先讲解了这次设计的具体内容,以及所要求的数字 FIR 滤波器的技术指标。
然后,数字滤波器的一些设计方法,并具体确定我这次设计所用的设计方案。
滤波器在matlab 中的设计方法应用。
通过matlab 得到所需滤波器的具体参数h(n),然后用这些所设计的参数,通过Quartus ii 工具编程具体实现滤波器功能。
这次滤波器实现过程中,用到以下小模块:延时器,加法器,乘法器,减法器。
2 课程设计要求及注意事项1.设计过程以小组为单位,各组设一个组长,负责组织和协调本小组的讨论、任务分工等;2.设计过程必须在本组内独立完成,不得跨组参考或抄袭,避免方案出现雷同;3.设计书一律采用专用报告纸,用统一封面装订;4.课程设计原则上在3 周内做完;5.最后一周周五进行优秀设计方案评选,在各组推选代表进行方案介绍的基础上,推选出2-3 个优秀设计方案。
6.学有余力的学生在完成必做设计内容的基础上,可对内容进一步展开设计,以提高综合应用能力,锻炼独立解决问题的能力。
3 课程设计内容3.1 课程设计题目及要求3.1.1 设计题目:基于 FPGA 的 FIR 滤波器设计3.1.2 设计要求利用所学知识,采用MATLAB 和FPGA 相结合完成FIR 滤波器的设计仿真。
采用直接法或分布式算法实现FIR 数字滤波器,了解两种算法的优缺点,选择其中一种算法,得出用它来实现FIR 滤波器的硬件结构,对其实现方式进行研究,分别采用合适的方法来设计,最后利用FPGA 器件实现FIR 数字滤波器的硬件电路,并用Matlab 对实现的结果进行仿真分析。
设计指标:1)类型:FIR 低通2)系统采样频率:Fs=10KHz;3)输入序列位宽为8 位的有符号数(最高位为符号位);4)输出结果保留8 位5)窗口类型为 kaiser 窗,β=0.5; 6)滤波器长度为N=16;3.2 数字滤波器简介及结构3.2.1 简介 滤波器是用来进行频率选择或频率分辨操作的线性时不变系统的通称。
基于FPGA的FIR数字滤波器的设计
毕业设计(论文)任务书基于FPGA的FIR数字滤波器的设计摘要在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而己有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
随着可编程逻辑器件和FDA技术的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR 滤波器。
本文对基于FPGA的FIR数字滤波器实现进行了研究。
主要工作如下:(1)以FIR数字滤波器的基本理论为依据,使用分布式算法为滤波器的硬件实现算法,并对其进行了详细的讨论。
针对分布式算法中查找表规模过大的缺点,采用多块查找表和OBC编码方式使得硬件规模极大的减小。
(2)在设计中采用了层次化、模块化的设计思想,将整个滤波器划分为多个功能模块,利用VHDL语言和原理图输入两种设计技术进行了各个功能模块的设计,最终完成了FIR数字滤波器的系统设计。
(3)最后给出了采用FLEX10K系列器件实现一个16阶的FIR低通滤波器的设计实例,用QuartusII软件进行了仿真,并对仿真结果进行了分析,证明所设计的FIR数字滤波器功能正确。
仿真结果表明,本论文设计的滤波器硬件规模较小,采样率达到了8.8MHz。
同时只要将查找表进行相应的改动,就能分别实现低通、高通、带通FIR滤波器,体现了设计的灵活性。
关键词:FIR数字滤波器;FPGA;分布式算法;OBC编码;查找表Design of the FIR Digital Filter Based on FPGAAbstractIn the modern electrical system,the FIR digital filter is used form any practical applications for its good linear phase character, and it provide an important function in digital signal processing design. In engineering practice, there is always a real-time and flexible requirement for signal processing. However, software and hardware techniques available for implementation are difficult to meet the demand for the two aspects in the same time. Along with the development of PLD device and EDA technology, more and more electrical engineers use FPGA to implement FIR filter, as it not only meet the real-time requirement, but also has some flexibility.In this paper, a method to implement the FIR filter using FPGA is proposed. The work mainly as follow:(1) According to the basic theory of FIR filters, a scheme of hardware implementation is worked out using distributed arithmetic algorithm. As the scale of the LUT in the distributed arithmetic algorithm is so large, the thesis reduces it with the use of multiple coefficient memory banks.(2) From the clew of implementing a top-down stratified, modular design, the thesis describes the hard ware design of all functional modules and the FIR system with the VHDL and schematic diagram design methods.(3) At last, a sixteen-tapped low-pass FIR filter is taken as an example, and the simulation design carried out using QuartusII. And analyzed the result, and it proved that the function of the design is correct.The result of the simulation indicates that the scale of the design is small, and the sample rate of the FIR filter can reach 8.8MHZ.Modifying the LUT can realize the low-pass, high-pass and band-pass FIR filters respectively, and incarnates the flexibility of the design.Key words:FIR digital filter;FPGA;Distributed Arithmetic;Offset-Binary Coding;LUT目录毕业设计(论文)任务书 (I)摘要............................................................................................................................... I I Abstract. (III)第1章绪论 (1)1.1 本课题的研究意义和应用背景 (1)1.2 国内外的研究现状 (1)1.3 研究思路 (3)1.4 本论文的主要内容和主要工作 (4)第2章FIR数字滤波器简介 (5)2.1 FIR数字滤波器 (5)2.1.1 数字滤波器的概述 (5)2.1.2 FIR滤波器的原理 (6)2.1.3 FIR滤波器的基本结构 (7)2.1.4 线性相位FIR数字滤波器的系统结构 (7)2.1.5 FIR数字滤波器的设计方法 (8)2.2 实现FIR数字滤波器的硬件算法——分布式算法 (10)2.2.1 分布式算法 (10)2.2.2 分布式算法的优化 (12)第3章EDA技术和可编程逻辑器件 (17)3.1 EDA技术 (18)3.2 EDA技术的主要内容 (18)3.2.1 大规模可编程器件 (18)3.2.2 硬件描述语言VHDL (19)3.3 基于EDA技术的“自顶向下”的设计方法 (21)3.4 基于EDA技术的电子电路设计流程 (21)3.5 可编程逻辑器件 (23)3.5.1 可编程逻辑器件简介 (23)3.5.2 使用FPGA器件进行开发的优点 (24)3.5.3 FPGA设计的开发流程 (25)3.6 FLEX10K系列芯片介绍 (26)3.6.1 FLEX10k的结构 (27)3.6.2 FLEX10K系列器件的特点 (28)3.7 开发工具QuartusII介绍 (28)第4章FIR滤波器的设计与仿真 (29)4.1 FIR滤波器的模块划分 (29)4.1.1 滤波器模块的划分 (29)4.1.2 方案确定 (29)4.2 FIR滤波器各模块功能的实现 (30)4.2.1 控制模块 (30)4.2.2 输入模块 (31)4.2.3 乘累加模块 (33)4.2.4 锁存模块 (35)4.2.5 顶层设计 (35)4.3 FIR数字滤波器的系统设计 (36)4.4 FIR滤波器的综合 (44)4.4.1 数字系统综合概述 (44)4.4.2 本设计的综合 (44)4.5 FIR滤波器各模块的仿真 (46)4.5.1 控制模块的仿真 (46)4.5.2 输入模块时序仿真 (47)4.5.3 乘累加模块时序仿真 (50)4.5.4 锁存模块时序仿真 (53)第5章结束语 (51)5.1 总结 (51)5.2 展望 (51)参考文献 (68)致谢 (70)附录 (I)第1章绪论1.1本课题的研究意义和应用背景几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。
基于FPGA的FIR滤波器设计
基于FPGA 的FIR 滤波器设计一 、设计目的为了帮助学生深入理解和消化基本理论、进一步提高综合应用能力并且锻炼独立解决问题的能力,我们将《数字信号处理》、《集成电路原理与应用》和《《FPGA 系统设计与应用》几门课程融合在一起开设的FPGA 综合实验课程设计。
本次完成的是利用FPGA 来完成FIR 滤波器的设计、程序设计和实验调试任务。
二、设计要求(1)基本要求利用所学知识,采用VHDL 语言完成FIR 滤波器的设计仿真。
要求用VHDL 编程设计底层文件,顶层文件可任意(可用原理图方式或文本方式);完成仿真文件(包括MATLAB 和QUARTUSII 两种仿真)并对其结果比较。
具体设计指标如下: (1)采样频率S F =80KHz ; (2)截止频率KHz F C 10=;(3)输入序列为10位(最高位为符号位); (4)窗口类型为kaiser 窗,β=0.5 ; (5)滤波器长度为16 ; (6)输出结果保留10位。
(2)提高部分根据所学知识,设计出一个具有频率控制功能DDS ,要求输出频率分别为10KHz 和100KHz ,将输出的两路数字信号进行叠加,并通过所设计的FIR 滤波器进行滤波,将滤波输出的数字信号通过D/A 转换电路输出波形,并用示波器观察输出波形,并完成测试结果分析。
结构框图如图1-1所示。
图2-1 整体结构框图三、设计原理3.1 FIR 滤波器由线性系统理论可知,在某种适度条件下,输入到线性系统的一个冲击完全可以表征系统。
当我们处理有限的离散数据时,线形系统的响应(包括对冲击的响应)也是有限的。
若线性系统仅是一个空间滤波器,则通过简单地观察它对冲击的响应,我们就可以完全确定该滤波器。
通过这种方式确定的滤波器称为有限冲击响应(FIR)滤波器。
3.2 线性FIR 滤波器原理FIR 滤波器响应(简称FIR )系统的单位脉冲响应()h n 为有限长序列,系统函数()H z 在有限z 平面上不存在极点,其运算结构中不存在反馈支路,即没有环路。
FPGA设计FIR滤波器的设计
文件说明 (1)代码文件 (1)QuartusII工程文件 (2)仿真文件 (2)系统框图 (3)DDS正弦信号产生 (3)DDS的原理 (3)DA转换和滤波 (6)正弦波形 (6)波形的产生 (6)波形的存储 (8)FIR滤波器原理 (15)FIR原理以及设计方法 (15)FIR滤波器主要有直接型、级联型、线性相位型: (15)FIR滤波器的设计方法 (17)设计框架 (19)Matlab软件导出需要的滤波器系数过程 (19)Modelsim仿真 (20)打开软件 (20)打开工程 (21)编译 (21)选择仿真文件 (22)开始仿真 (25)仿真结果 (26)文件说明代码文件Fir文件谐波产生模块文件存放波形的文件测试文件QuartusII工程文件仿真文件系统框图DDS 正弦信号产生DDS 的原理DDS(Direct Digital Frequency Synthesizer)直接数字频率合成器,也可叫DDFS 。
•DDS 是从相位的概念直接合成所需波形的一种频率合成技术。
• 不仅可以产生不同频率的正弦波,而且可以控制波形的初始相位。
DDS原理框图主要构成:内部:相位累加器,正弦查找表外围:DAC,LPF(低通滤波器)工作过程1、将存于ROM中的数字波形,经DAC,形成模拟量波形。
2、改变寻址的步长来改变输出信号的频率。
步长即为对数字波形查表的相位增量。
由累加器对相位增量进行累加,累加器的值作为查表地址。
3、DAC输出的阶梯形波形,经低通滤波,成为模拟波形。
频率控制在程序中,采样时钟是50M,N相位累加器的位宽是32,M频率控制字的位宽是16位;可以控制的最大的频率就是65535*50000000/4294967296=762Hz;DA转换和滤波分析:DDS优点•频率分辨率高,可达2的N次。
•频率切换速度快,可达us量级。
•频率切换时相位连续。
•可以产生任意波形。
DDS缺点•输出频带范围有限。
FPGA的FIR抽取滤波器设计
FPGA的FIR抽取滤波器设计
用FPGA 实现抽取滤波器比较复杂,主要是因为在FPGA 中缺乏实现乘法运算的有效结构,现在,FPGA 中集成了硬件乘法器,使FPGA 在数字信号处理方面有了长足的进步。
本文介绍了一种采用Xilinx 公司的XC2V1000 实现FIR 抽取滤波器的设计方法。
具体实现
结构设计
基于抽取滤波器的工作原理,本文采用XC2V1000 实现了一个抽取率为2、具有线性相位的3 阶FIR 抽取滤波器,利用原理
控制器
控制器是抽取滤波器的核心模块,有两个功能:一是接收输入数据,二
是向其它模块发送数据和控制信号。
它根据加法器、乘法器和累加器的时序特性,有规律地向加法器发送抽头数据,向乘法器发送系数,向累加器发送控制信号,让加法器、乘法器和累加器在每个时钟周期都完成指定的任务,从而
实现流水线操作。
控制器用VHDL 语言描述,用寄存器存放抽头和系数。
加法器
加法器的输入和输出都是18 bit,用VHDL 语言描述实现。
它有两个工作时钟的延迟,在输入数据准备好的情况下,第一个时钟得出相加结果,第二
个时钟把相加结果锁存输出。
乘法器
乘法器为18 bit 输入,36bit 输出,用库元件MULT18X18S 和36 bit 锁存器实现。
MULT18X18S 是XC2V1000 自带的18 乘以18bit 硬件乘法器,单个时钟就可完成乘法运算。
36 bit 锁存器工作于时钟的上升沿,用VHDL 语言。
毕业设计_基于FPGA的FIR数字滤波器设计 - 1
学士论文基于FPGA的FIR数字滤波器设计摘要随着公元的第二十一个世纪的到来,今天我们进入了一个科技日新月异的时代。
在现代电子数字系统中,滤波器都以一个不可缺少的身份出现。
其中,FIR数字滤波器又以其良好的线性特性被广泛和有针对性的大量使用。
众所周知,灵活性和实时性是工程实践中对数字信号处理的基本要求。
在以往使用的各种滤波器技术中,不难发现有许许多多的问题。
但是,随着现代计算机技术在滤波问题上的飞跃,派生出一个全新的分支——数字滤波器。
利用可编程逻辑器件和EDA技术,使用FPGA来实现FIR滤波器,可以同时兼顾实时性和灵活性。
基于FPGA的FIR数字滤波器的研究势在必行。
本论文讨论基于FPGA的FIR数字滤波器设计,针对该毕业设计要做的基本工作有如下几点:(一)掌握有限冲击响应FIR(Finite Impulse Response,FIR)的基本结构,研究现有的实现方法。
对各种方案和步骤进行比较和论证分析,然后针对目前FIR数字滤波器需要的特点,速度快和硬件规模小,作为指导思想进行设计计算。
(二)基于硬件FPGA的特点,利用Matlab软件以及窗函数法设计滤波器。
对整个FPGA元件,计划采用模块化、层次化设计思想,从而对各个部分功能进行更为详细的理解和分工设计。
最终FIR数字滤波器的设计语言选择VHDL硬件编程语言。
(三)设计中的软件仿真使用Altera公司的综合性PLD开发软件Quartus II,并且利用Matlab工具进行对比仿真,在仿真的过程中,对比证明,本论文设计的滤波器的技术指标已经全部达标。
关键词:数字滤波器Matlab 可编程逻辑元件模块化算法1绪论1.1本课题研究意义在现代通信信号处理领域中,随着各种精密计算和快速计算的发展对信号处理的实时性、快速性的要求越来越高。
以往的模拟滤波器无法克服电压漂移、温度漂移和噪声等问题,从而带来了许多误差和不稳定因素。
而数字滤波器具有稳定性高、精度高、设计灵活、实现方便等突出优点。
基于FPGA的FIR数字滤波器设计与实现
基于FPGA的FIR数字滤波器设计与实现佚名【摘要】简要介绍了FIR数字滤波器的结构特点和基本原理,提出基于FPGA和DSP Builder的FIR数字滤波器的基本设计流程和实现方案。
在Matlab/Simulink 环境下,采用DSP Builder模块搭建FIR模型,根据FDATool工具对FIR滤波器进行了设计,然后进行系统级仿真和ModelSim功能仿真,其仿真结果表明其数字滤波器的滤波效果良好。
通过SignalCompiler把模型转换成VHDL语言加入到FPGA的硬件设计中,从QuartusⅡ软件中的虚拟逻辑分析工具SignalTapⅡ中得到数字滤波器实时的结果波形图,结果符合预期。
%The structure feature and the basic principle of FIR digital filter is introduced briefly. The basic design process and implementation scheme of the FIR digital filter based on FPGA and DSP Builder is proposed in this paper. FIR model is structured with DSP Builder module in the Matlab/Simulink environment. The FIR digital filter is designed according to the FDA⁃Tool. The system level simulation and ModelSim function simulation were completed. The simulation results show that the filter has excellent effect. The model is converted to VHDL language through SingalCompiler and added to FPGA hardware design. The real⁃time waveform graph of the FIR digital filter was received by the virtual logic analysis tool SignalTapⅡ in QuartusⅡ. The results conform to the expected requirement.【期刊名称】《现代电子技术》【年(卷),期】2013(000)014【总页数】4页(P123-126)【关键词】FPGA;DSP Builder;FIR数字滤波器;ModelSim功能仿真【正文语种】中文【中图分类】TN911-34在信息信号处理过程中,数字滤波器是信号处理中使用最广泛的一种方法。
基于FPGA的FIR数字滤波器的设计和实现
基于FPGA的FIR数字滤波器的设计和实现摘要:本文基于FPGA平台实现了一种FIR数字滤波器,通过对滤波器的设计与实现过程的详细介绍,展示了FPGA在数字滤波器中的应用优势。
首先介绍了数字滤波器的原理及其在信号处理中的重要性,并对FPGA及其特点进行了概述。
接着,详细介绍了FIR滤波器的原理以及其在FPGA上的实现步骤,分析了滤波器设计中需要考虑到的各种因素。
最后,通过实验验证了FPGA上实现的FIR滤波器的性能,并对优化策略进行了讨论。
关键词:FPGA,FIR滤波器,数字信号处理,性能优化1. 引言数字滤波器是现代信号处理的重要组成部分,通过选择性地传递或抑制输入信号的特定频率组成部分,对信号进行处理和改善。
FIR滤波器是数字滤波器中最常用的一种类型,具有线性相位特性、稳定性较强以及易于实现等优势。
而FPGA作为一种可编程逻辑器件,具有灵活性高、可重构性强等特点,成为实现数字滤波器的理想平台。
2. FIR滤波器的原理FIR滤波器是一种线性时不变系统,其输出仅和当前输入值以及过去若干个输入值有关。
该滤波器的输出可以通过输入信号的线性加权和来计算,其中,每个输入值的加权系数通过FIR 滤波器的系数来确定。
FIR滤波器的系数决定了它对不同频率分量的响应,从而实现了信号的滤波目的。
3. FIR滤波器在FPGA上的实现步骤(1)选择合适的FPGA平台和开发工具,如Xilinx FPGA平台和Vivado开发工具。
(2)根据所要设计的滤波器的需求,确定其采样频率、截止频率和滤波器类型等参数,并进行系统级设计。
(3)根据所选参数,设计FIR滤波器的传递函数,并确定滤波器的阶数和系数。
(4)通过数学运算或者通过滤波器设计软件生成滤波器的差分方程。
(5)根据生成的差分方程,使用HDL(HardwareDescription Language)进行滤波器的编写。
(6)进行FPGA的综合、布局与布线、下载与验证,完成滤波器的硬件实现。
基于FPGA的FIR滤波器的设计(毕业设计) 可用
目录摘要 (2)英文摘要 (3)1 引言 (3)1.1国内外研究现状 (4)1.2本论文的研究内容及主要工作 (6)2 FIR数字滤波器设计 (6)2.1数字滤波器基础 (6)2.1.1 数字滤波器简介 (6)2.1.2 FIR数字滤波器的结构 (7)2.2 FIR数字滤波器设计方法 (8)2.2.1 窗函数法 (8)2.2.2 频率采样法 (9)2.2.3 等波纹最佳逼近法 (11)2.2.4 三种设计方法的比较......................... 错误!未定义书签。
3 FPGA 设计优点以及分布式算法 (12)3.1 使用FPGA器件进行开发的优点 (13)3.2分布式算法 (14)3.2.1 分布式算法基础 (14)3.2.2 有符号的DA系统 (15)4 基于FPGA的FIR滤波器设计 (15)4.1基于M ATLAB的FIR数字低通滤波器抽头系数的提取 (16)4.1.1 滤波器的设计指标 (16)4.1.2 滤波器的具体设计方法 (16)4.1.3 参数提取与量化 (17)4.2FIR滤波器的FPGA实现 (19)4.2.1 模块划分 (19)4.2.2 FIR滤波器各模块的实现 (20)4.2.3 FIR滤波器的顶层设计 (30)4.3FIR滤波器的系统仿真验证 (32)4.4系统硬件 (36)4.4.1 系统框图 (36)4.4.2 部分芯片简介 (36)4.4.3 AD、DA电路原理图 (39)4.5测试波形及现场照片 (39)4.6数据误差分析 (40)结论 (41)参考文献 (41)附件 (42)基于FPGA的FIR滤波器的设计摘要:本文设计了一个基于FPGA的16阶FIR低通滤波器,使用分布式算法作为滤波器的硬件实现算法,并对其进行了详细的讨论。
针对分布式算法中LUT规模过大的缺点,采用多块查找表的方式减小硬件规模。
在设计中采用了自顶向下的层次化、模块化的设计思想,将整个滤波器划分为多个模块,利用VHDL语言的描述方法进行了各个功能模块的设计,最终完成了FIR数字滤波器的系统设计。
基于FPGA的FIR滤波器设计与实现
traditional digital logic.digital signal processing and embedded systems.T11is makes
the digital signal processing technology development in the direction of the
vector distribution a separate ROM.Then we get a pipelining parallel structure which Can be fater.We also introduce FIR digital filters witll diffent numbers of coefficients
<目录
第四章滤波器实现…-分布式算法………………lInlll IInllllM IIll01111..42
4.1基本理论……………………………………Y2702474。42
4.2提高乘法速度…并行分布式算法……………………………………52 4.3探索滤波器对称性……………………………………………………53 4.4滤波器吞吐量…………………………………………………………56 4.5多通道设计……………………………………………………………56 4.6实例设计与仿真………………………………………………………57
关键字:FPGA FIR滤波器分布式算法(act
Abstract
With the advent of information age and the digital era,digital signal processing has become an extremely important subject and technology.Digital technology revolution led to the birth of a large number of new products and solutions.Along with the revolution is the research and development of digital filters in the field of
基于FPGA的FIR滤波器优化设计
基于FPGA的FIR滤波器优化设计FPGA技术是一种灵活和可重配置的硬件设计技术,具有高度的并行性和可定制性。
其中,FIR(Finite Impulse Response)滤波器是一种常见的数字滤波器,可以用于信号处理和数据通信等领域。
在本文中,我们将讨论基于FPGA的FIR滤波器的优化设计。
首先,我们将介绍FIR滤波器的基本原理。
FIR滤波器是一种非递归滤波器,其输出只与当前输入和有限数量的以前输入相关。
其主要特点是具有线性相位响应和稳定性。
FIR滤波器通过卷积运算来实现滤波的功能,其中滤波器的系数是其关键部分。
接下来,我们将讨论如何将FIR滤波器设计为基于FPGA的硬件实现。
在FPGA设计中,我们可以使用硬件描述语言(如VHDL或Verilog)来描述FIR滤波器的功能和行为。
然后,我们可以使用FPGA设计工具(如Xilinx Vivado)将这些硬件描述转换为可在FPGA芯片上实现的逻辑电路。
在进行优化设计时,可以采用以下几种方法:1.并行计算:由于FPGA具有高度的并行性,我们可以利用并行计算来加速FIR滤波器的运算。
可以将输入信号分成多个并行通道,并在每个通道上独立地进行滤波计算。
2.流水线设计:流水线设计可以进一步提高FIR滤波器的运算效率。
可以将滤波器的计算分成多个阶段,并使每个阶段的计算互相重叠。
这样可以实现更高的吞吐量。
3.系数优化:FIR滤波器的计算涉及到滤波器的系数乘法和累加操作。
可以通过使用定点算法和优化系数位宽等方法来减少计算的复杂度。
此外,还可以使用现成的IP核来实现FIR滤波器。
例如,Xilinx Vivado中提供了用于FIR滤波器的IP核。
这些IP核具有预先优化的代码和配置选项,可以帮助我们更方便地实现FIFO滤波器。
另一方面,我们还可以采用硬件/软件协同设计的方法来优化FIR滤波器的设计。
在这种方法中,可以将一部分滤波器的计算任务转移到CPU上进行处理,以减轻FPGA上的计算负载。
基于FPGA 的FIR 滤波器设计与实现
图 1 DA 串行滤波器(RFD 为最后一个信号)
图 2 DA 并行滤波器(RFD 为最后一个信号)
在数字系统中,滤波器的设计是数字信号处理的重要一环,关系到整个数字系统的性能好坏,因此在 基于 FPGA 的数字系统中,滤波器的设计显得尤为重要。本文以 Xilinx 公司 100 万门的 V2 系列 FPGA 芯 片为例,对滤波器的多种实现方式作一个详细的探讨,为了方便起见,在示例中,滤波器全部采用对称系 数 FIR 滤波器。
计算出来,对于 192 阶的对称系数滤波器,实际上对于每个输入数据只需要作 96 次乘法,而在每个输入 数据之间有 45 个时钟周期,所以至少必须有 3 个乘法器才能在完成对输入数据的实时处理,只要对滤波 器系数和输入数据稍作技巧性处理,就可以很简单的编写出这个滤波器的算法。
再看另外一个实例:系统时钟速率是 90MHz,输入数据速率是 2MHz,滤波器为 64 阶对称系数 FIR 滤波器,系数和输入数据都是 16 位。对于以上滤波器设计采用不同设计方案的资源占用情况如表 2 所示:
DA 串行滤波器
Number of occupied Slices
261(5%)
Number of MULT18X18s
0
Number of Block RAMs
0
备注
RFD 为低共 17 个 时钟
DA 并行滤波器
3049(59%)
0
0
RFD 恒为高
DA 可选时钟滤波 器
MAC 滤波器 1 (系数和入数据都 用分布式 Ram) MAC 滤波器 2
FPGA实现FIR抽取滤波器的设计
FPGA实现FIR抽取滤波器的设计FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
随着可编程逻辑器件的发展,使用FPG A来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。
1 FIR滤波器工作原理在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
2 16阶滤波器结构在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。
抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。
在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。
采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式:乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。
基于FPGA的FIR滤波器系统的设计
针对 F R滤 波器 电路 系 统 , 计 了一个 与 之 I 设 专 门配套 的 串 口通 信 软 件 , 软件 能 读 取 串 口数 该 据 , 把 串 口数 据保 存在 以 D T为 后 缀名 的文 件 并 A
个滤 波 系数 , 这些 滤波 系数 来 生成 FR低 通滤 用 I
波器 。
2 FR滤波器 系统硬 件设计 I
F r f r ,% 1. fn ,of) pi ( d ’ 60\ ’ce ; n i
FR滤波器 硬件 电路 主要 由 A D转换 器 、 P I / F—
F l e r ) c s( d ; o i
图 2 F a o 导 出 系数 窗 口 dt l o
在 图 2的 菜单 中 点击 E p r 这 样 就 可 以对 x ot , 系 数 进 行 量 化 。 在 窗 口 中 输 入 “ of ce f=ru d o n
1 2 FR滤波器 系数 的产 生 。 I
F A ol Fl r D s n & A a s ro )是 D T o ( ie ei t g nl i r 1 ys 0
正弦信号进行 A D转换 , / 然后送至 F G P A内部进
一
步处 理 。本 设 计 中采 用 了 A D公 司 的 高性 能
A D转 换 芯 片 A 7 9 , D 6 1每 秒 可 采 样 2 / D 6 1 A 79 5 万 次具有 1 bt 8 i的线性度 ,8位 的串行 数据 输 出 , l 采用 2 7 . V或 5 V单 电源 供 电。与 A I 司推 出 D公 l i 6b t和 1 i 单 端 到 差 分 A C 驱 动 器 8 bt的 D A A 9 11配 合 使 用 , D 4 4 — D 44 - A A 9 11与 A 7 9 D 6 1的 外 围电路连 接 如 图 4 5所 示 , D 4 4 — 、 A A 9 11是一 款 低功耗 、 噪声 差分 驱 动器 。它 采 用易 于 使用 的 低
基于FPGA的FIR数字滤波器设计及实现
第35卷㊀第10期2020年10月㊀㊀㊀㊀㊀㊀㊀液晶与显示㊀㊀㊀C h i n e s e J o u r n a l o fL i q u i dC r y s t a l s a n dD i s p l a ys ㊀㊀㊀㊀㊀V o l .35㊀N o .10㊀O c t .2020㊀㊀收稿日期:2020G04G09;修订日期:2020G06G04.㊀㊀基金项目:吉林省科技厅技术攻关项目(N o .20190302086G X ,N o .20200403067S F )S u p p o r t e db y K e y S c i e n c ea n dT e c h n o l o y Fo u n d a t i o no f J i l i nP r o v i n c e ,C h i n a (N o .20190302086G X ,N o .20200403067S F )㊀㊀∗通信联系人,E Gm a i l :z h i q i a n _w a n g@s i n a .c o m 文章编号:1007G2780(2020)10G1073G06基于F P G A 的F I R 数字滤波器设计及实现宋卓达1,2,王志乾1∗,李建荣1,沈铖武1,2,刘绍锦1(1.中国科学院长春光学精密机械与物理研究所,吉林长春130033;2.中国科学院大学,北京100049)摘要:针对应变信号采集系统中的信号处理环节,设计并实现一种基于现场可编程门阵列(F P G A )的F I R 数字滤波器.首先,基于M a t l a b 采用克莱德曼窗函数设计一个长度为16的15阶数字滤波器,并生成高斯白噪声与频率为2k H z㊁8k H z 正弦波的合成信号,然后量化12位系数,将系数文件导入Q u a r t u s Ⅱ13.1软件,结合F P G A 内部数字滤波器I P 核,采用自上而下的方式设计出F I R 数字滤波器,最终在S i m u l i n k 环境下对其进行仿真.实验结果表明,滤波前后合成信号的均方误差下降28.5%,提高了低频信号质量,增强了应变信号采集系统的功能性和集成度.关㊀键㊀词:信号采集;F I R 数字滤波器;F P G A ;I P 核中图分类号:T N 911.72;T N 713.7㊀㊀文献标识码:A㊀㊀d o i :10.37188/Y J Y X S 20203510.1073D e s i g na n d i m p l e m e n t a t i o no f F I Rd i gi t a l f i l t e r b a s e d o nF P G A S O N GZ h u o Gd a 1,2,WA N GZ h i Gq i a n 1∗,L I J i a n Gr o n g1S H E N C h e n g Gw u 1,2,L I US h a o Gji n 1(1.C h a n g c h u nI n s t i t u t e o f O p t i c s ,F i n eM e c h a n i c s a n dP h y s i c s ,C h i n e s eA c a d e m y o f Sc i e n c e s ,C h a n gc h u n 130033,C h i n a ;2.U n i v e r s i t y o f C h i n e s eA c ade m y of S c i e n c e s ,B e i j i ng 100049,C h i n a )A b s t r a c t :A F i n i t eI m p u l s eR e s p o n s e (F I R )d i g i t a l f i l t e rb a s e do nF i e l dP r o g r a mm a b l eG a t e A r r a y(F P G A )i s d e s i g n e d a n d i m p l e m e n t e d f o r s i g n a l p r o c e s s i n g i n s t r a i n s i g n a l a c q u i s i t i o n s y s t e m.F i r s t l y,b a s e do n MA T L A B ,B l a c k m a n w i n d o wf u n c t i o ni su s e dt od e s i g na15o r d e rd i g i t a l f i l t e rw i t h16l e n g t h ,a n d t h e s i g n a l i s c o m p o s e d o fw h i t eG a u s s i a nn o i s e a n d s i n ew a v ew i t h f r e q u e n c y o f 2k H z a n d 8k H z .T h e n t h e 12b i t c o e f f i c i e n t s a r e q u a n t i z e d ,a n d t h e c o e f f i c i e n t f i l e i s i m po r t e d i n t oQ u a r t u s Ⅱ13.1s o f t w a r e .C o m b i n i n g w i t h t h e I P c o r e o f d i g i t a l f i l t e r i nF P G A ,F I Rd i g i t a l f i l t e r i s d e s i gn e d f r o m t o p t ob o t t o m.F i n a l l y,i t i ss i m u l a t e di nS i m u l i n ke n v i r o n m e n t .T h er e s u l t ss h o wt h a tt h e m e a n s q u a r ee r r o ro ft h es y n t h e s i z e ds i g n a ld e c r e a s e sb y 28.5%b e f o r ea n da f t e rf i l t e r i n g ,w h i c hc a n i m p r o v e t h e q u a l i t y o f l o wf r e q u e n c y s i g n a l a n d e n h a n c e d t h e f u n c t i o n a n d i n t e g r a t i o n o f t h e s t r a i n s i gGn a l a c q u i s i t i o n s ys t e m.K e y wo r d s :s i g n a l a c q u i s i t i o n ;F I Rd i g i t a l f i l t e r ;F P G A ;I Pc o r e . All Rights Reserved.1㊀引㊀㊀言㊀㊀在高速旋转部件的性能测试㊁强度及疲劳试验过程中,通常采用应变测量技术,实时采集旋转部件载荷的应变信号,进行分析和处理,为旋转部件的结构设计提供理论分析数据[1].在应变信号采集的过程中,应变电桥的输出电压信号的变化十分微小,达到μV级.为获得高质量的低频电压信号,本文采用一种基于F P G A的F I R数字滤波器进行信号处理,在高转速㊁气动性复杂㊁震动环境恶劣的情况下,提高所采集应变信号的精度.采用软硬件协同设计技术,利用F P G A定制I P,每一个模块都能单独完成,又能轻松整合在一起形成一个系统[2].F I R滤波器的实质是将输入的连续时间信号按照设定的算法转换成离散时间信号的滤波装置[3],而F PG A内含丰富的I P核和L U T表结构,能够完整地将F I R数字滤波器移植到F P G A 上,并且可以根据实际需求在线修改滤波器的参数,大幅缩减了产品的设计周期,并增强应变信号采集系统本身的集成度和灵活性.利用可编程逻辑器件和E D A技术实现F I R 数字滤波器是现代嵌入式系统信号处理环节普遍采用的手段[4],随着F P G A逻辑单元数量和集成度不断提高,可在F P G A上实现F I R数字滤波器的算法复杂程度㊁量化系数位宽㊁阶数等也随之提高,具有可观的发展前景.2㊀系统框架应变信号采集系统的总体框架如图1所示,整个系统分为模拟部分和数字部分.图1㊀应变信号采集系统流程框图F i g.1㊀B l o c kd i a g r a mo f s t r a i n s i g n a l a c q u i s i t i o n s y s t e m其中模拟部分有4个应变信号采集通道,每个采集通道包含对应变电桥的模拟信号进行预放大㊁调理和A/D采集,数字信号部分包括对模拟板前端电压信号偏移量修正和温度补偿控制㊁程控自动增益㊁A/D采集的读写控制和接收经过A/D采集后的信号,并对其进行缓存和处理[5].最后将信号通过U A R T串行总线传输至P C端显示[6].3㊀F I R数字滤波器的设计3.1㊀基本原理和结构F I R数字滤波器为单位脉冲响应有限长序列[7],是非递归性线性时不变因果系统,对于N阶F I R滤波器输入时间序列x(n)的输出表达式为:y n()=ðn-1i=0hi()x n-i(),(1)系统传递函数可表示为:H z()=ðn-1i=0h n()z-n=h(0)+h(1)z-1+ +h(n-1)zG(n-1),(2)式中:h(n)为滤波器第级n抽头系数,x(n-i)为延时i个抽头输入.F I R滤波器按构成形式主要有直接型㊁级联型㊁线性相位F I R滤波器等[8].其中直接型结构如图2所示,该结构需要N个乘法器,每次采样y(n)都需要进行n次乘法和n-1次加法实现乘累加之和[9].图2㊀直接型F I R滤波器网络结构F i g.2㊀N e t w o r ks t r u c t u r e o f d i r e c tF I Rf i l t e r对于线性相位F I R滤波器,其单位响应是对称或反对称的,即h(n)=ʃh(N-1-n),利用其对称性可以简化网络结构,当h(n)为偶对称且N为偶数时:y n()=ðnG1i=0hi()x n-i()=ðN2G1i=0hi()x n-i()+n-N+m()[].(3)4701㊀㊀㊀㊀液晶与显示㊀㊀㊀㊀㊀㊀第35卷㊀. All Rights Reserved.其线性网络结构如图3所示,仅需要N/2个乘法器.F I R滤波器实际上是一个分节的延时线,把每一节的输出加权累加得到滤波器的输出[10].本设计采用线性相位F I R数字滤波器.图3㊀F I R滤波器线性相位网络结构F i g.3㊀L i n e a r p h a s en e t w o r ks t r u c t u r e o fF I Rf i l t e r 3.2㊀F I R滤波器设计流程F I R数字滤波器设计流程如图4所示,整个F I R数字滤波器的设计可以分为滤波器系数设计和滤波器在F PG A上实现两个部分.利用M a t l a b 软件设计出F I R数字滤波器各级抽头系数,并将F I R数字滤波器的功能移植到F P G A上.图4㊀F I R滤波器设计流程图F i g.4㊀F l o wc h a r t o fF I Rf i l t e r d e s i g n4㊀F I R数字滤波器的F P G A实现4.1㊀M a t l a b设计滤波器系数通过使用M a t a l b中F D A T o o l工具箱设计出一个15阶低通线性相位F I R数字滤波器,其采样频率为20k H z,截止频率为3k H z,长度为16位,并采用布莱克曼窗实现,将滤波器浮点系数量化为12位.运行所编辑的滤波器,并将量化后的滤波器系数写入F I R C O E.T X T文件中.滤波器设计界面如图5所示.4.2㊀S i m u l i n k仿真滤波器输入信号将S i m u l i n k中正弦波信号产生模块s i n e w a v e㊁高斯白噪声模块AWG N通过多信号叠加模块a d d生成一个采样频率为20k H z的信号干扰源,并生成12位量化系数,再与2k H z和图5㊀F D A t o o l滤波器设计界面F i g.5㊀D e s i g n i n t e r f a c e o fF D A T o o l f i l t e r8k H z的正弦波信号合成作为F P G A的输入信号.信号发生模块如图6所示.图6㊀合成信号发生模块F i g.6㊀S c h e m a t i c d i a g r a mo f s y n t h e t i c s i g n a l g e n e r aGt i n g m o d u l e4.3㊀I P核设计F I R数字滤波器进入Q u a r t u sⅡI P核设置界面,设计一个15阶低通线性滤波器,将4.2中的F I R C O E系数文件导入到C o e f f i c i e n t s e t中[11],配置好滤波器各项参数,生成F I R数字滤波器模块,并将其实例化引用.数字滤波器R T L级原理如图7所示,其中a s t_s i n k_ d a t a[11..0]和a s t_s o u r c e_d a t a[25..0]分别为信号输入端口和数据输出端口.整个模块只占用2199个逻辑元,占用率不到10%.图7㊀数字滤波器R T L级原理图F i g.7㊀R T L l e v e l s c h e m a t i c d i a g r a mo f d i g i t a l f i l t e r 5㊀F I R数字滤波器仿真与性能测试5.1㊀F I R数字滤波器功能仿真搭建F P G A与S i m u l i n k联合实时环路平台,在S i m u l i n k创建测试模块,通过测试模块产生信号,再传送到F P G A,F P G A将信号处理后返回S i m u l i n k显示[12].首先在S i m u l i n k中创建用户5701第10期㊀㊀㊀㊀㊀宋卓达,等:基于F P G A的F I R数字滤波器设计及实现. All Rights Reserved.板卡,配制板卡上F P G A 芯片信息,本设计F P G A 采用的是C y c l o n e Ⅳ系列E P 4C E 6E 22C 8N .然后采用J T A G 连接方式,设置J T A G 接口类型㊁时钟信号频率㊁引脚号㊁时钟类型㊁复位信号引脚㊁复位电平等信息,并将配置的信息保存在l o gi c _b o a r d .x m l 文件中.创建S i m u l i n k 模型,将配置好的l o g i cb o a r d .x m l 文件导入,加载R T L 文件即V e r i l o g 代码文件,并将其设置为顶层文件,自动配置I O 口,将数据传送到S i m u l i n k 中.仿真结果如图8㊁图9所示.图8㊀合成信号滤波前(a )后(b )时域波形图F i g.8㊀T i m ed o m a i nw a v e f o r m b e f o r e (a )a n da f t e r (b )f i l t e r i n g o f s y n t h e t i c s i gn a l (a)滤波前合成信号频域波形(a )F r e q u e n c y d o m a i n w a v e f o r m o f s yn t h e s i z e d s i g n a l b e f o r e f i l t e r i ng(b)滤波后合成信号频域波形(b )F r e q u e n c y do m a i n w a v e f o r m o f f i l t e r e d s y n t h e t i c s i gn a l 图9㊀合成信号滤波前后频域波形图F i g .9㊀F r e q u e n c y do m a i nw a v e f o r mb e f o r e a n d a f t e r f i l t e r i n g o f s y n t h e t i c s i gn a l 由图8㊁图9可知,滤波后的合成信号在时域和频域上趋于缓和,毛刺噪声已经滤除,并且同时滤除了8k H z 高频信号分量,滤波后的信号已形成规则平滑的频率为2k H z 的单频正弦信号,因此,F I R 线性相位低通滤波功能在F P G A 上已经实现.5.2㊀F I R 数字滤波器性能分析将应变信号采集系统的4个应变采集通道分别对高速旋转部件的4个点进行应变测量,并且通过串口将F I R 数字滤波前后量化结果的文本文件导入M a t l a b 中,进行数据处理,得到F I R 数字滤波前后的均方差,如表1所示.表1㊀F I R 数字滤波前后均方差T a b .1㊀M e a n s qu a r e d e v i a t i o n b e f o r e a n d a f t e r F I R d i g i t a l f i l t e r i n g 通道测量次序测试数据量数据均值数字滤波前均方差数字滤波后均方差第一通道130015-884671237.1907.6235494-897361126.5875.3338772-854731283.1910.4第二通道140913-21073972.5674.1258209-19386856.4600.8349328-19758782.3545.0第三通道17963570394709.2539.526397971834693.6528.436429870936707.0545.5第四通道110090152043607.8406.527036552864583.4384.338493252567594.6379.6由表1F I R 数字滤波前后量化信号均方差的对比可知,经过F I R 数字滤波器后,信号的均方差大幅度下降,4个通道的采集信号均方差平均下降28.5%,具有良好的滤波效果.5.3㊀界面显示为了能够将4个应变采集通道中的最终采样结果通过串口在P C 端实时显示,使用M a t l a b 中G U I 工具箱设计出显示界面,并且通过式(4)将6701㊀㊀㊀㊀液晶与显示㊀㊀㊀㊀㊀㊀第35卷㊀. All Rights Reserved.采样结果转化为对应的电压值.U o =V r e f -GN D ()ˑA D C R e s e l t2N+G N D ,(4)式中:V r e f 为AD C 参考电压㊁G N D 为输出结果为0时的最低电压,A D C R e s e l t 为采样结果,N 为A D C 位数.同时根据式(5),在全桥测量的情况下将电压转换成相应的应变量.U o =E K ε,(5)式中:E 为电桥电压,K 为应变灵敏系数,ε为应变量.显示界面如图10所示.图10㊀界面显示F i g .10㊀I n t e r f a c e d i s p l a y6㊀结㊀㊀论本文针对应变信号采集系统提出一种基于F P G A 的F I R 线性相位低通数字滤波器方案,构建了数字滤波器设计与仿真体系,最终在F P G A 上实现,而且仿真系统可以任意改变合成信号的类型㊁数字滤波器的种类和各项参数,相比传统的通过编写t e s t b e n t c h 脚本仿真文件导入M o d e l s i m 来实现仿真结果,简化了复杂的仿真步骤,不需要在F P G A 上增添信号发生模块,同时保证了实验可靠性.通过高速旋转部件的多次应变测量,结果表明数字滤波前后量化信号的均方差下降28.5%,具有良好的滤波效果.增加显示界面,便于观察采样结果的动态变化.对于接触式应变信号采集系统而言,将整个F I R 数字滤波器的功能移植在F P G A 上,增强功能的同时,系统的体积㊁质量㊁电路复杂程度均不受影响,从而不会影响直升机在飞行测试中旋翼系统的动态平衡.参㊀考㊀文㊀献:[1]㊀魏国波.直升机旋转动部件载荷测试技术研究[D ].西安:西安电子科技大学,2013.W E IGB .T h e i n v e s t i g a t i o n i n t h eF l i g h tT e s tT e c h n i q u e o fR o t a r y p a r t s o nh e l i c o pt e r [D ].X i a n :X i d i a nU n i v e r s i Gt y ,2013.(i nC h i n e s e )[2]㊀黄学业,凌朝东,黄锐敏,等.基于F P G A 的多路微弱医学生物电信号处理系统[J ].液晶与显示,2014,29(2):245G250.HU A N G X Y ,L I N GCD ,HU A N GR M ,e t a l .M u l t i c h a n n e lw e a km e d i c a l b i o e l e c t r i c a l s i g n a l p r o c e s s i n g s ys t e m b a s e do nF P G A [J ].C h i n e s eJ o u r n a l o f L i q u i dC r y s t a l s a n dD i s p l a y ,2014,29(2):245G250.(i nC h i n e s e )[3]㊀杜勇.数字滤波器的MA T L A B 与F P G A 实现[M ].2版.北京:电子工业出版社,2014.D U Y.M A T L A Ba n dF P G AI m p l e m e n t a t i o no f D i gi t a lF i l t e r [M ].2n de d .B e i j i n g :P u b l i s h i n g H o u s eo fE l e c Gt r o n i c s I n d u s t r y,2014.(i nC h i n e s e )[4]㊀卢雍卿,李剑文,许雯雯,等.基于F P G A 的数字滤波器设计与仿真[J ].软件导刊,2017,16(2):85G88.L U Y Q ,L I JW ,X U W W ,e t a l .D e s i g na n ds i m u l a t i o no f d i g i t a l f i l t e rb a s e do nF P G A [J ].S o ft w a r eG u i d e ,2017,16(2):85G88.(i nC h i n e s e)[5]㊀安都勋,霍建华,王留全.基于MA X 1452的应变测试系统前端模块的设计[J ].电子设计工程,2012,20(2):118G120.A N DX ,HU OJH ,WA N GLQ.D e s i g n o f s t r a i n t e s t i n g s ys t e mf r o n t Ge n dm o d u l e b a s e d o nMA X 1452[J ].E l e c Gt r o n i cD e s i g nE n g i n e e r i n g ,2012,20(2):118G120.(i nC h i n e s e )[6]㊀罗杰.V e r i l o g H DL 与F P G A 数字系统设计:Q u a r t u s Ⅱ[M ].北京:机械工业出版社,2015.L U OJ .D e s i g n o f V e r i l o g HD La n dF P G A D i g i t a l S ys t e mQ u a r t u s Ⅱ[M ].B e i j i n g :C h i n aM a c h i n eP r e s s ,2015.(i nC h i n e s e)[7]㊀王艳芬,张晓光,王刚,等.关于F I R 滤波器窗函数设计法的若干问题讨论[J ].电气电子教学学报,2017,39(2):83G88.WA N G YF ,Z HA N GXG ,WA N GG ,e t a l .D i s c u s s i o no n s o m e p r o b l e m s a b o u t t h e d e s i gno fw i n d o wf u n c t i o no f 7701第10期㊀㊀㊀㊀㊀宋卓达,等:基于F P G A 的F I R 数字滤波器设计及实现. All Rights Reserved.F I Rf i l t e r[J].J o u r n a l o f E l e c t r i c a l&E l e c t r o n i cE d u c a t i o n,2017,39(2):83G88.(i nC h i n e s e)[8]㊀刘福泉.基于F P G A的F I R数字滤波器实现[D].北京:北京邮电大学,2012.L I U FQ.I m p l e m e n t a t i o no fF I Rd i g i t a l f i l t e r b a s e do nF P G A[D].B e i j i n g:B e i j i n g U n i v e r s i t y o fP o s t s a n dT e l eGc o mm u n i c a t i o n s,2012.(i nC h i n e s e)[9]㊀郭晓伟,陈钟荣,夏利娜.基于F P G A的高速高阶F I R滤波器的频域改进方法[J].现代电子技术,2016,39(11):55G58,62.G U O X W,C H E NZR,X I ALN.F r e q u e n c y d o m a i n i m p r o v e m e n tm e t h o d f o r h i g hGs p e e d a n d h i g hGo r d e r F I R f i l t e rb a s e do nF P G A[J].M o d e r nE l ec t r o n i c sT e c h n i q u e,2016,39(11):55G58,62.(i nC h i n e s e)[10]㊀王辉.F I R数字滤波器的设计与研究[J].装备制造技术,2018(1):48G49,62.WA N G H.D e s i g n a n d r e s e a r c ho f F I Rd i g i t a l f i l t e r[J].E q u i p m e n tM a n u f a c t u r i n g T e c h n o l o g y,2018(1):48G49,62.(i nC h i n e s e)[11]㊀陈媛媛,刘有耀.F I R滤波器的F P G A设计与实现[J].电子设计工程,2017,25(24):65G69,73.C H E N Y Y,L IY Y.F I Rf i l t e ro f t h eF P G A d e s i g na n di m p l e m e n t a t i o n[J].E l e c t r o n i cD e s i g nE n g i n e e r i n g,2017,25(24):65G69,73.(i nC h i n e s e)[12]㊀李亮.基于S i m u l i n k的软件无线电硬件协同仿真技术[D].成都:电子科技大学,2013.L IL.S i m u l i n kGb a s e ds o f t w a r er a d i oh a r d w a r ec oGs i m u l a t i o nt e c h n o l o g y[D].C h e n g d u:U n i v e r s i t y o fE l e c t r o n i c S c i e n c e a n dT e c h n o l o g y o fC h i n a,2013.(i nC h i n e s e)作者简介:㊀宋卓达(1993-),男,吉林长春人,硕士研究生,2016年于南昌大学获得学士学位,主要从事F P G A嵌入式系统设计方面的研究.EGm a i l:453474362@q q.c om ㊀王志乾(1969-),男,吉林省吉林市人,研究员,2009年于吉林大学获得博士学位,主要从事光电测量㊁数字信号处理方面的研究.EGm a i l:z h i q i a n_w a n g @s i n a.c o m8701㊀㊀㊀㊀液晶与显示㊀㊀㊀㊀㊀㊀第35卷㊀. All Rights Reserved.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA实现FIR抽取滤波器的设计
FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。
随着可编程逻辑器件的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPG A器件来实现FIR滤波器。
1 FIR滤波器工作原理
在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。
FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。
2 16阶滤波器结构
在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。
抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。
在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。
采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式:
乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。
3 滤波器系数的求取
使用Matlab集成的滤波器设计工具FDAtool,可以完成多种滤波器的数值设计、分析与评估,设计16阶低通滤波器参数如下:
采样频率:Fs为50MHz,滤波器归一化截止频率:Fc为0.4MHz,输入数据位宽:8位,输出数据宽度:16位FDAtool采用汉宁窗函数(Hanning)设计16阶线性相位FIR数字滤波器,并提取其特性参数h(n)浮点数值。
MATLAB中算出的系数h(n)的值是一组浮点数,进行浮点值到定点值的转换,用16位二进制补码表示为
滤波器抽头数是16个,考虑到线性FIR滤波器的偶对称特性,只考虑8个独立滤波器抽头数,则需要一个28×8的表(其中指数8指的是8个滤波器抽头数,后面的8指的是输入数据的位宽)。
但是Virrex—e FPGA只能提供4输入的杏找表,所以要对查找表的地址进行电路分割。
将8位地址线分为高4位和低4位,分别作为两个24×8的查找表的地址输入,从而指数倍地节省了硬件资源。
4 主程序及仿真
在时钟和计数器的控制下,根据查找表输出结果位权的不同,将输入数据向左移动相应的位数,低位按照位权的不同补上个数相当的“0”,然后将移位数据进行累加操作,输出最终滤波结果,这里的结果依旧是用二进制数据表示的,只是位数因为移位和累加操作增加了8位。
图五移位加法器的波形仿真图
以上便是基于分布式算法的FIR滤波器的三个主要模块的分析,为了能使该滤波器能正常工作,还需要用VHDL语言编写控制程序,使各模块连接起来,总的来说,该滤波器的实现原理图如下:
图六基于分布式算法的FIR滤波器顶层原理图在FPGA中,不论是基于乘累加的FIR滤波器,还是基于分布式算法的FIR滤波器(包括FIR滤波器的各模块)都是通过VHDL语言编程来实现的。
5 结语
本文所介绍的基于FPGA、采用分布式算法实现FIR滤波器的方法,在提高系统运行速度和节省硬件资源方面具有很大的优势。
基于分布式算法的FIR滤波器结构可以扩展成任意阶数的FIR滤波器。
而且,通过改变阶数和查找表中的系数,还可以将此设计灵活地运用于实现高通、低通和带阻滤波器,可移植性较好。
因此,这种方法在高速数字信号处理中将有很好的应用前景。