基于FPGA的FIR数字滤波器设计

合集下载

基于FPGA的FIR滤波器设计与实现

基于FPGA的FIR滤波器设计与实现

目录引言................................... 错误!未定义书签。

第一章 FPGA的设计流程 ................... 错误!未定义书签。

1.1 FPGA概述 ................................... 错误!未定义书签。

1.2 FPGA设计流程................................. 错误!未定义书签。

1.3硬件描述语言HDL(Hardware Description Language) 错误!未定义书签。

1.4 FPGA开发工具Quartus Ⅱ软件设计流程 ......... 错误!未定义书签。

第二章有限冲激响应(FIR)滤波器的原理及设计.... 错误!未定义书签。

2.1数字信号处理基础原理.......................... 错误!未定义书签。

2.2 FIR滤波器背影知识........................... 错误!未定义书签。

2.3 FIR数字滤波器原理............................ 错误!未定义书签。

2.4 利用窗函数法设计FIR滤波器................... 错误!未定义书签。

第三章 FIR 数字滤波器的FPGA实现........... 错误!未定义书签。

3.1串行FIR滤波器原理............................ 错误!未定义书签。

3.2分布式算法基础................................ 错误!未定义书签。

3.3直接型FIR滤波器的原理结构图.................. 错误!未定义书签。

3.4具有转置结构的FIR滤波器...................... 错误!未定义书签。

第四章结论与总结......................... 错误!未定义书签。

基于FPGA的FIR数字滤波器的实现

基于FPGA的FIR数字滤波器的实现

基于FPGA的FIR数字滤波器的实现陈剑冰【期刊名称】《现代计算机(普及版)》【年(卷),期】2013(000)010【摘要】The main problems in the study of FIR digital filter are focused on reducing the consumption of the system resources, improving the speed and accuracy of operation. Realizes the FIR digital filter on FPGA with VHDL language. Introduces the CSD-RAG coding and builds the adder tree with the key factors. Compared with the traditional MAC structure and DA look-up table, the method can reduce the consumption of system resources and improve the accuracy of data processing by employing the integer quantization coefficients.%减少系统资源占用,提高运算速度与运算精度一直是FIR数字滤波器的研究中的主要课题。

采用VHDL语言在FPGA上实现一种FIR数学滤波器。

该滤波器采用CSD-RAG编码,利用公共因子来构建加法树。

相对于传统的乘累加结构与DA查表法,能大量地降低系统资源占用,同时采用整数量化抽头系数,提高数据处理的精度。

【总页数】4页(P64-66,80)【作者】陈剑冰【作者单位】华南师范大学物理与电信工程学院,广州 510006【正文语种】中文【相关文献】1.基于CORDIC算法的动态FIR数字滤波器FPGA实现与应用 [J], 宋定昆;刘桂雄;唐文明2.基于人体域网的FIR数字滤波器的FPGA实现 [J], 徐洋;李国权;庞宇;贺焱秋3.基于FPGA的FIR数字滤波器的设计与实现 [J], 熊洁;黄蕾4.基于FPGA的FIR数字滤波器设计与实现 [J],5.基于FPGA的FIR数字滤波器设计及实现 [J], 宋卓达;王志乾;李建荣;沈铖武;刘绍锦因版权原因,仅展示原文概要,查看原文内容请购买。

基于FPGA技术的FIR数字滤波器的设计

基于FPGA技术的FIR数字滤波器的设计

通常在信号产生、采集、传输过程中产生杂波和噪声,通常需要加入滤波器将干扰无用的噪声或者不需要频段的信号滤除。

数字滤波器和模拟滤波器相比具有更高的精度、信噪比,以及不可比拟的可靠性[1]。

只要适当改变数字滤波程序有关参数,就能方便的改变滤波特性,因此数字滤波使用时方便灵活。

由于在性能、成本、灵活性和功耗等方面的优势,基于FPGA 的信号处理器已广泛应用于各种信号处理领域。

本文正是在此背景下研究基于FPGA 技术,运用DSP Builder 和MATLAB 等软件工具设计工程中实用的FIR 数字滤波器。

1、FIR 数字滤波器设计原理有限长脉冲响应(FIR )滤波器的系统函数只有零点,除原点外,没有极点,因而FIR 滤波器总是稳定的[2]。

长度为M 的因果有限冲激响应滤波器由传输函数H (z )描述:1()()M kk H z h k z −−==∑它是次数为M-1的z-1的一个多项式。

在时域中,上述有限冲激响应滤波器的输入输出关系为:1()()()M k y n h k x n k −==−∑其中x(n)是输入采样序列,h(i)是滤波器系数,y(n)表示滤波器的输出序列。

也可以用卷积来表示输出序列y(n)与x(n)、h(n)的关系。

)(*)()(n h n x n y =通常一个长度为M 的有限冲激响应滤波器由M 个系数描述,并且需要M 个乘法器和(M-1)个双输入加法器来实现。

图1中显示了一个典型的直接I型4阶FIR 滤波器,其输出序列y (n)满足下列等式:在这个FIR 滤波器中,总共存在3个延时节,4个乘法单元,一个4输入的加法器。

z -1x (n )h (0)y (n )z -1z-1h(1)h(2)h (3)图1 直接I 型4阶FIR 滤波器模型2、设计方案及设计指标2.1 DSP Builder 设计概述FPGA 的DSP 性能领先的关键是其内在的并行机制,即利用并行架构实现DSP 功能的功能。

基于FPGA的FIR数字滤波器的设计及仿真设计

基于FPGA的FIR数字滤波器的设计及仿真设计

1 绪论本章主要论述该课题的研究意义,目前在世界上的发展情况,以及我在这篇论文中所用到的主要的设计方法与设计工作。

1.1 课题研究的意义许多工程领域都涉及到如何能在强背景的噪声信号和干扰信号中提取到真正的信号。

如:遥感和遥测系统,通信系统,雷达系统,航天系统等,这就要求有信号的滤波。

滤波器的带宽等性能,处理速度的要求随着现在对高速,宽带,实时信号处理的要求越来越高,也随之提高。

系统的稳定性和后续信号的处理受滤波器的性能好坏程度影响常大。

[1]1.2 国内外研究动态1.2.1 数字信号处理的发展动态一般可以用两类方法来实现FIR滤波器的设计。

一类通过软件来设计实现,使用常见的电脑语言如高层次的C / C + +跟MATLAB语言。

此方法用于教学或算法仿真。

但是采用软件的方法不能实现实时性。

目前可以通过以下几种方式在硬件中来实现,。

一种是使用可编程的主要数学单位是一个乘法累加器(MAC)的通用DSP 芯片编程。

实时数字信号能够实现高速的处理,是因为MAC在一台机器时钟周期就能完成乘法累加操作,同时在硬件上还辅助与不同的流水结构和哈佛架构。

然而,在应用时受到了限制,是由于硬件结构和流水结构是固定不变的。

一种是使用专用的ASIC数字信号处理芯片。

这种方法是芯片尺寸小,高性能,保密性好。

其缺点是一个单一功能的芯片,多是针对一定的功能而设计,灵活性不够。

另一种方法是使用可编程逻辑器件(FPGA / CPLD)。

FPGA所具有得可编程逻辑的灵活性突破了流水线结构和并行处理的局限性,可以很好的实现实时信号处理功能。

研发过程中它的可移植性更好,可以缩短开发周期。

[2~11]1.2.2 FIR数字滤波器的FPGA实现使用FPGA技术设计的FIR数字滤波器在目前通常采用的是乘法器结构和分布式算法结构。

乘法器结构,有乘累加结构与并行乘法器结构两种形式。

乘累加结构是最简单的一种,占用资源少,缺点是处理速度慢;并行乘法器结构比较复杂,但是如果能够加上流水结构,信号就能够实现高速的处理,但是它还是会受到处理速度和数量的限制。

基于FPGA的FIR数字低通滤波器的设计

基于FPGA的FIR数字低通滤波器的设计

EDA设计基础实验课程论文题目基于FPGA的FIR数字低通滤波器的设计学院通信与电子工程学院专业班级通信111班学生姓名霍守斌指导教师大力会目录摘要 (I)Abstract............................................................ I I 第1章绪论 (1)1.1 课题的目的和意义 (1)1.2 FPGA技术的发展及应用 (2)1.3FPGA软件设计工具Quartus II (3)第2章FIR数字滤波器的理论研究及分析 (5)2.1数字滤波器的理论基础 (5)2.2 数字滤波器的分类 (5)2.3FIR数字滤波器的设计方法 (6)第3章FPGA DSP系统设计分析 (7)3.1DSP的基本概念 (7)3.2 FPGA实现DSP的特点 (8)3.3DSP Builder设计工具及设计规则 (9)第4章基于FPGA的FIR低通滤波器设计 (12)4.1设计方案 (12)4.2FDATool滤波器设计 (12)4.3FPGA定点数的确定 (14)4.3.1导出系数文件 (14)4.3.2FPGA定点数转换 (15)4.4FIR滤波器模型的建立 (17)4.4.1乘加子系统的搭建 (17)4.4.2滤波器模块的添加和模块参数设置 (21)4.4.3各模块的连接 (27)第5章Simulink仿真 (29)5.1 仿真时间设定 (29)5.2示波器模块显示 (29)5.3仿真结果分析 (31)结论 (33)参考文献 (34)致谢 (35)附录 (36)附录1 FIR滤波器仿真模型图 (36)附录2 FIR滤波器测试模型图 (37)附录3 FPGA定点数转换程序 (37)摘要在现代通信领域中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。

在实践中,往往要求对信号处理有实时性和灵活性,而已有的一些软件和硬件的实现方式则难以同时到达这两方面的要求。

基于FPGA的FIR数字滤波器算法研究与设计实现的开题报告

基于FPGA的FIR数字滤波器算法研究与设计实现的开题报告

基于FPGA的FIR数字滤波器算法研究与设计实现的开题报告一、研究背景数字滤波器是数字信号处理中的重要组成部分,能够对数字信号进行滤波处理,用于实现去噪、滤波等信号处理功能。

其中,有限长脉冲响应(FIR)数字滤波器是一种基于加权系数的离散时间滤波器,其具有线性相位、稳定性好等优点,因而得到广泛应用。

同时,FPGA作为一种可编程逻辑门阵列,拥有较高的计算性能和可重构性,在数字信号处理系统中得到广泛应用。

因此,本研究将以FPGA为硬件基础,设计并实现基于FIR的数字滤波器算法。

二、研究目的本研究旨在探究FPGA实现FIR数字滤波器算法的方法,具体包括以下目标:1.研究FIR数字滤波器的基本原理和实现方法,包括滤波器设计、FIR滤波算法及其计算方法等。

2.探究FPGA的基本原理和应用,了解FPGA的可重构特性和计算性能优势。

3.设计并实现基于FPGA的FIR数字滤波器算法,包括滤波器模块的设计、模块间的数据传输及控制等。

4.通过实验验证所设计实现的数字滤波器算法的性能和可行性,包括信号滤波效果、计算速度等方面的评价。

三、研究内容和方法1.研究内容(1)FIR滤波器的基本原理及其设计方法,包括滤波器类型、频率响应、滤波器系数的计算和设计等。

(2)FPGA的基本原理和应用,了解FPGA的特性、开发工具及其编程语言等。

(3)设计并实现基于FPGA的FIR数字滤波器算法,包括设计硬件端口、数值计算模块、状态机控制、波形展示等。

(4)通过实验验证所设计实现的数字滤波器算法的性能和可行性。

2.研究方法(1)文献调研法:通过查阅相关文献,了解FIR数字滤波器算法的原理和应用以及基于FPGA的数字信号处理方法。

(2)实验方法:依据研究方案,选定适当硬件和软件平台,搭建实验环境,进行实验数据采集、计算和分析。

(3)仿真方法:通过仿真软件对设计的数字滤波器进行性能分析和计算模型验证。

四、研究意义本研究的意义在于探究基于FPGA的数字滤波器算法实现方法,对数字信号处理领域的研究具有重要的意义。

毕业设计_基于FPGA的FIR数字滤波器设计 - 1

毕业设计_基于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数字滤波器的设计

基于FPGA的FIR数字滤波器的设计The Design Of FIR Digital Filter Based On FPGA目录摘要 (I)Abstract (II)引言 (1)第一章FIR数字滤波器设计 (2)1.1 FIR数字滤波器 (2)1.1.1数字滤波器简介 (2)1.1.2 FIR数字滤波器 (3)1.1.3 FIR数字滤波器的结构 (4)1.2 FIR数字滤波器设计方法 (6)1.2.1时窗函数法 (6)1.2.2频率采样法 (8)1.2.3等波纹最佳逼近法 (10)1.2.4三种设计方法的比较 (11)第二章基于MATLAB的FIR数字滤波器的设计与仿真 (12)2.1 MATLAB软件 (12)2.2使用MATLAB函数进行FIR数字滤波器的设计 (12)2.2.1时窗函数设计法 (12)2.2.2频率采样设计法 (13)2.2.3等波纹最佳逼近设计法 (14)2.3使用FDATool设计FIR数字滤波器 (15)2.4使用Simulink进行仿真 (16)第三章EDA技术与分布式算法 (19)3.1 EDA技术 (19)3.1.1 EDA技术简介 (19)3.1.2 QUARTUS II软件介绍 (19)3.1.3 FPGA介绍 (20)3.2 FPGA设计方法 (22)3.3分布式算法 (23)3.3.1分布式算法基础 (23)3.3.2并行的分布式算法 (24)3.3.3串行的分布式算法 (24)第四章 15阶并行FIR数字滤波器的设计与仿真 (26)4.1顶层文件的设计 (26)4.2并行FIR各个模块的设计 (28)4.2.1输入数据预处理模块 (28)4.2.3预相加模块 (30)4.2.4查找表模块 (32)4.2.5加法器模块 (35)4.2.6移位累加器模块 (37)4.2.7输出处理模块 (38)4.3顶层综合与仿真 (38)4.4数据误差分析 (41)结论 (43)致谢 (44)参考文献 (45)基于FPGA的FIR数字滤波器的设计摘要:线性相位是FIR数字滤波器设计中的一个重要条件。

基于FPGA的FIR数字滤波器的设计和实现

基于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数字滤波器的优化设计

基于FPGA的FIR数字滤波器的优化设计

在图像处理、语音识别等数字信号处理中,数字滤波器占有重要的地位,其性能对系统有直接的影响。

随着系统在宽带、高速、实时信号处理上要求的提高,对滤波器的处理速度、性能等也提出更高的要求。

目前数字滤波器的硬件实现方法通常采用专用DSP芯片或FPGA,DSP特有的一些硬件结构和特性使其非常适合作数字滤波电路,但由于其软件算法在执行时的串行性,限制了它在高速和实时系统中的应。

FPGA最明显的优势在于其实现数字信号处理算法的并行性,可以显著提高滤波器的数据吞吐率,随着FPGA技术的不断发展,现在的FPGA不仅包含查找表、寄存器、多路复用器、分布式块存储器,而且还嵌入专用的快速加法器、乘法器和输入/输出设备,因而成为高性能数字信号处理的理想器件。

而在FPGA 中,数字滤波器不同的实现方法所消耗的FPGA资源是不同的,且对滤波器的性能影响也有较大差异。

基于此,本文从FIR滤波器的系数考虑,采用CSD编码,对FIR数字滤波器进行优化设计。

1 FIR滤波器的基本原理一个L阶的FIR数字滤波器的基本系统函数见式(1):式中:h(n)表示滤波器的系数;x(i)表示带有时间延迟的输入序列,此表达式对应的直接型实现结构可用图1来表示。

可以看出,FIR滤波器是由一个“抽头延迟线”加法器和乘法器的集合构成的。

传给每个乘法器的操作数就是一个FIR系数。

对每次采样x(n)要进行N次连续的乘法和(N-1)次加法操作,因实际中滤波器的阶数都很高,实现高数据吞吐率就需要很多的硬件乘法器,硬件实现时将占用大量的资源,同时也会因此影响滤波器的速度和性能。

为了解决这个问题,人们从多个角度寻求优化方法。

从数字滤波器表达式看,对它的优化操作,实际最终转换成两类改进。

一类是针对输入xi的DA操作的改进;另一类是针对系数hi编码的操作。

2 DA算法分布式算法(Distributed Arithmetic,DA)是为了解决乘法资源问题而提出的经典优化算法这种算法结构,可以有效地将乘法运算转换成基于查找表LUT(Look Up Table)的加法运算,利用查表方法快速得到部分积。

基于FPGA的FIR滤波器设计

基于FPGA的FIR滤波器设计

一、概述在通信与信息技术领域,数字信号处理显得越来越重要了,数字滤波器在数字信号处理中起到重要作用并能够获得广泛应用。

数字滤波器根据频域特性可以分为低通、高通、带通和带阻四种基本类型,根据时域特性可以分为无限脉冲响应IIR(Infinte Impulse Response)和有限脉冲响应FIR(Finite Impulse Response)。

FIR滤波器具有良好的线性相位特性,因此在数据通信、图像处理方面有广泛的应用。

FPGA(Field Programmable Gate Array),即现场可编程门阵列,由于具有用户可编程性,能够实现用户规定的各种用途,因此又被称为可编程专用集成电路,在电子系统的设计中得到广泛的应用。

利用FPGA实现FIR数字滤波器的设计,是本次课程设计需要解决的问题,利用学过的知识实现FIR数字滤波器是本次课程设计的主要内容。

二、方案论证1.FIR数字滤波器是一种线性时不变系统(LTI),如果FIR数字滤波器的单位脉冲响应h(n)的长度为N,其传递函数和差分方程分别为:H(z) = ∑=-1-0 n1 ) (Nznhy(n) = x(n)*h(n) =∑-=-1)()(Nmmnxmh其中,x(n)和y(n)分别为输入和输出序列。

如果FIR数字滤波器的单位脉冲响应h(n)是实数序列,而且满足偶对称或者奇对称条件,即h(n) = h(N-1-n)或者h(n) = -h(N-1-n)则滤波器具有严格的线性相位特点。

正是因为这种特点,在滤波器的设计过程中,可使乘法器的数量减半。

对于n阶滤波器,当n是偶数时,乘法器的个数为n/2个,当n 为奇数时,乘法器的个数为(n+1)/2个。

由传递函数和差分方程可以直接画出FIR滤波器的直接型结构如图1所示。

1-1-1-1-y(n)图1 FIR滤波器的直接型结构2.FIR滤波器的实现方法有多种,通常有串行算法、半并行算法和并行算法,在串行算法中,常见的有单乘法器MAC FIR滤波器和对称MAC FIR滤波器。

基于FPGA的FIR滤波器优化设计

基于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滤波器设计论文

基于FPGA的FIR滤波器设计论文

基于FPGA 的FIR 滤波器设计数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。

数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。

数字滤波器是一个离散系统,该系统能对输入的离散信号进行处理,从而获取所需的有用信息。

在数字信号处理中,FIR 数字滤波器是最常用的单元之一。

它用于将输入信号x [n ]的频率特性进行特定的修改,转换成另外的输出序列y [n ]。

FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。

因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。

有限长脉冲响应(FIR )滤波器的系统函数只有零点,除原点外,没有极点,因而FIR 滤波器总是稳定的。

如果他的单位脉冲响应是非因果的,总能够方便的通过适当的移位得到因果的单位脉冲响应,所以FIR 滤波器不存在稳定性和是否可实现的问题。

它的另一个突出的优点是在满足一定的对称条件时,可以实现严格的线性相位。

由于线性相位滤波器不会改变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位FIR 滤波器得到了广泛的应用。

长度为M 的因果有限冲激响应滤波器由传输函数H (z )描述:10()()M k k H z h k z --==∑它是次数为M-1的z -1的一个多项式。

在时域中上述有限冲激响应输入输出关系为:10()()()M k y n h k x n k -==-∑其中y (n )和x (n )分别是输出和输入序列。

有限冲激响应滤波器的一种直接型实现,如图所示。

通常一个长度为M 的有限冲激响应滤波器由M 个系数描述,并且需要M 个乘法器和(M-1)个双输入加法器来实现。

基于FPGA的多功能FIR数字滤波器设计

基于FPGA的多功能FIR数字滤波器设计

现代电子技术Modern Electronics TechniqueSep. 2023Vol. 46 No. 182023年9月15日第46卷第18期0 引 言数字滤波是数字信号处理(Digital SignalProcessing, DSP )的重要内容,其作用是抑制或滤除传输信号所不需要的某些频率成分。

有限脉冲响应(Finite Impulse Response, FIR )数字滤波器的采样值和单位冲激响应是有限长的,系统性能稳定,且具有严格的线性相位特性。

因此,FIR 数字滤波器被广泛应用于现代通信系统中,是航天测控、卫星导航、移动通信、雷达探测等领域的重要研究课题[1]。

传统数字滤波器需要多个乘法器来实现,在实际航天测控通信系统中一般采用FPGA (Field Programmable Gate Array )进行并行处理[2],但是它复杂度高、计算速度慢、处理效率低、数据延迟大[3]。

改进型滤波器结构[4]、分布式算法[5]、分划松弛算法[6]、卷积算法[7]、粒子群算法[8]等方法被用来提高数字滤波器的效率,但仍存在单一滤波参数无法适应复杂滤波场景、实时性不好的问题。

传统FIR 数字滤波器的滤波参数通常固定不变,其频率响应特性、通带类型、滤波带宽、截止频率、带内波DOI :10.16652/j.issn.1004‐373x.2023.18.007引用格式:王媛,金磊,曾富华.基于FPGA 的多功能FIR 数字滤波器设计[J].现代电子技术,2023,46(18):38‐42.基于FPGA 的多功能FIR 数字滤波器设计王 媛, 金 磊, 曾富华(中国西南电子技术研究所, 四川 成都 610036)摘 要: 现代测控通信系统为航天器传输的测控信号模式多样、特性复杂。

针对传统数字滤波器无法满足滤波特性多变的问题,设计一种基于FPGA 的多功能FIR 数字滤波器。

根据任务需求选择满足性能指标的窗函数、频率响应特性、滤波带宽等控制命令,调用ROM 表中对应的滤波参数,满足多功能滤波需求,采用对称型滤波结构节省FPGA 硬件资源,利用乒乓缓存的操作满足信号滤波实时性,通过Verilog HDL 语言实现多功能FIR 数字滤波器。

基于FPGA技术的FIR数字滤波器的设计

基于FPGA技术的FIR数字滤波器的设计
( ) ( ) () =xn
通常一个长度为M的有 限冲激响应滤波器 由M个系数描述 , 并 静 且需要M个乘法器和( M—1个双输入加法器 来实现 。 ) 图l 中显示 了一个典型的直 接I 阶F R 型4 I 滤波器 , 其输出序列y 执 束瓣 一 ~ () 足 下 列 等 式 : n满
应 用 研 究
基于 F G P A技术的 F R数字滤波器的设计 I
李俊 ’刘淮霞 ,朱丹 ,贺曼2
(. 1 安徽理工大学电气与信息工程 学院 安徽淮南 22 0 ;2西安交通大学电气工程学院 陕西西安 70 4) 30 1 . 10 9
摘要 : 数 字化技 术在 各 个领 域得 到广 泛 运 用的今 天 , 字滤波 器是 数 字 系统 中信 号 处理 关键 的一 环 。 字滤 波器和 模拟 滤 波 器相 比具有 在 数 数 更 高的精 度 、 噪 比 , 及不 可 比拟 的 可 靠性 。 于在 性 能 、 信 以 由 成本 、 活性和 功耗 等方 面 的优 势 , 于F GA的信 号 处 理 器 已广泛 应 用 于各 种信 灵 基 P
: ;
yn ()=h O xn +h 1xn一1 h 2x n一2 +h S xn一3 () () ( ) ( )+ ( ) ( ) () ( )
图 2D ule 设 计 流 程 SP B i r d
在这个FR滤波器 中 , I 总共存 在3 个延时节,个乘法单元, 4 一个 4 入 的加 法 器 。 输
1 I 、FR数字滤波器设计原理
有 限长脉冲响 应( I 滤波器 的系统 函数 只有零点 , F R) 除原 点 外 , 有 极 点 , 而 FR滤 波 器 总 是 稳 定 的【 没 因 I 长度 为M的因果有 限冲激 响应滤波器 由传 输函数H() z 描述 :

基于FPGA的FIR数字滤波器设计及实现

基于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.。

基于FPGA的高速FIR数字滤波器的设计

基于FPGA的高速FIR数字滤波器的设计

基于FPGA的高速FIR数字滤波器的设计目前FIR的实现办法主要有3种:利用单片通用数字滤波器、器件和可编程规律器件实现。

单片通用数字滤波器用法便利,但因为字长和阶数的规格较少,不能彻低满足实际需要。

用法DSP器件实现虽然容易,但因为程序挨次执行,执行速度必定不快。

有着规整的内部规律阵列和丰盛的连线资源,特殊适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。

但长久以来,FPGA向来被用于系统规律或时序控制上,很少有信号处理方面的应用,其缘由主要是由于在FPGA中缺乏实现乘法运算的有效结构。

本文利用FPGA乘累加的迅速算法,可以设计出高速的FIR数字滤波器,使FPGA在数字信号处理方面有了长足的进展。

2 Matlab设计滤波器参数
利用Matlab为设计FIR滤波器提供的工具箱,挑选滤波器类型为低通FIR,设计办法为窗口法,阶数为16,窗口类型为Hamming,Beta为0.5,Fs为8.6 kHz,FC为3.4 kHz,导出的滤波器系数如下:
3 迅速FIR滤波器算法的基本原理
(1) 分布式算法
分布式算法在完成乘加功能时是通过将各输入数据每一对应位产生的部分积预先相加形成相应的部分积,然后再对各部分积举行累加得到终于结果。

对于一个N(N为偶数)阶线性相位FIR数字滤波器,输出可由式(1)表示:
(2) 乘法器设计
高性能乘法器是实现高性能的FIR运算的关键,分析乘法器的运算过
第1页共6页。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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引脚。

4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5) FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

同时,FPGA还存在以下五大优势。

1)性能:利用硬件并行的优势,FPGA打破了顺序执行的模式,在每个时钟周期内完成更多的处理任务,超越了数字信号处理器(DSP)的运算能力。

著名的分析与基准测试公司BDTI,发布基准表明在某些应用方面,FPGA每美元的处理能力是DSP解决方案的多倍。

2在硬件层面控制输入和输出(I/ O)为满足应用需求提供了更快速的响应时间和专业化的功能。

2)上市时间:尽管上市的限制条件越来越多,FPGA技术仍提供了灵活性和快速原型的能力。

用户可以测试一个想法或概念,并在硬件中完成验证,而无需经过自定制ASIC设计漫长的制造过程。

3由此用户就可在数小时内完成逐步的修改并进行FPGA设计迭代,省去了几周的时间。

商用现成(COTS)硬件可提供连接至用户可编程FPGA芯片的不同类型的I/O。

高层次的软件工具的日益普及降低了学习曲线与抽象层,并经常提供有用的IP核(预置功能)来实现高级控制与信号处理。

3)成本:自定制ASIC设计的非经常性工程(NRE)费用远远超过基于FPGA的硬件解决方案所产生的费用。

ASIC设计初期的巨大投资表明了原始设备制造商每年需要运输数千种芯片,但更多的最终用户需要的是自定义硬件功能,从而实现数十至数百种系统的开发。

可编程芯片的特性意味着用户可以节省制造成本以及漫长的交货组装时间。

系统的需求时时都会发生改变,但改变FPGA设计所产生的成本相对ASCI的巨额费用来说是微不足道的。

4)稳定性:软件工具提供了编程环境,FPGA电路是真正的编程“硬”执行过程。

基于处理器的系统往往包含了多个抽象层,可在多个进程之间计划任务、共享资源。

驱动层控制着硬件资源,而操作系统管理内存和处理器的带宽。

对于任何给定的处理器内核,一次只能执行一个指令,且基于处理器的系统时刻面临着严格限时的任务相互取占的风险。

而FPGA不使用操作系统,拥有真正的并行执行和专注于每一项任务的确定性硬件,可减少稳定性方面出现问题的可能。

5)长期维护:正如上文所提到的,FPGA芯片是现场可升级的,无需重新设计ASIC所涉及的时间与费用投入。

举例来说,数字通信协议包含了可随时间改变的规范,而基于ASIC的接口可能会造成维护和向前兼容方面的困难。

可重新配置的FPGA芯片能够适应未来需要作出的修改。

随着产品或系统成熟起来,用户无需花费时间重新设计硬件或修改电路板布局就能增强功能。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

2、F IR数字滤波器实验结果之前的simulink仿真与matlab程序仿真仅仅是证明了算法是正确的,接下来我们需要把这个算法用Verilog HDL语言写出来,用modelsim仿真程序,用Signaltap II看输出波形。

该部分的verilog HDL代码如下:module FIR (input clk_1M,input reset_n,input[7:0]datain,//ADC的采样数据,无符号output[7:0]dataout//滤波后给DAC的数据);parameter signed COEF0 =12'd3;parameter signed COEF1 =-12'd2;parameter signed COEF2 =-12'd11;parameter signed COEF3 =12'd23;parameter signed COEF4 =12'd17;parameter signed COEF5 =-12'd100;parameter signed COEF6 =12'd61;parameter signed COEF7 =12'd520;parameter signed COEF8 =12'd520;parameter signed COEF9 =12'd61;parameter signed COEF10 = -12'd100;parameter signed COEF11 = 12'd17;parameter signed COEF12 = 12'd23;parameter signed COEF13 = -12'd11;parameter signed COEF14 = -12'd2;parameter signed COEF15 = 12'd3;reg signed[8:0] shift_buf0;//第一级延时寄存器reg signed [8:0] shift_buf1;//第二级延时寄存器reg signed [8:0] shift_buf2;//第三级延时寄存器reg signed [8:0] shift_buf3;//第四级延时寄存器reg signed [8:0] shift_buf4;//第五级延时寄存器reg signed [8:0] shift_buf5;//第六级延时寄存器reg signed [8:0] shift_buf6;//第七级延时寄存器reg signed [8:0] shift_buf7;//第八级延时寄存器reg signed [8:0] shift_buf8;//第九级延时寄存器reg signed [8:0] shift_buf9;//第十级延时寄存器reg signed [8:0] shift_buf10;//第十一级延时寄存器reg signed [8:0] shift_buf11;//第十二级延时寄存器reg signed [8:0] shift_buf12;//第十三级延时寄存器reg signed [8:0] shift_buf13;//第十四级延时寄存器reg signed [8:0] shift_buf14;//第十五级延时寄存器reg signed [8:0] shift_buf15;//第十六级延时寄存器reg signed [9:0] add_0_15;reg signed [9:0] add_1_14;reg signed [9:0] add_2_13;reg signed [9:0] add_3_12;reg signed [9:0] add_4_11;reg signed [9:0] add_5_10;reg signed [9:0] add_6_9;reg signed [9:0] add_7_8;reg signed [21:0] mul1;reg signed [21:0] mul2;reg signed[21:0] mul3;reg signed [21:0] mul4;reg signed [21:0] mul5;reg signed [21:0] mul6;reg signed [21:0] mul7;reg signed [21:0] mul8;reg signed [29:0] add;always@ (posedge clk_1M or negedge reset_n) beginif (!reset_n)beginshift_buf0 <= 9'd0;shift_buf1 <= 9'd0;shift_buf2 <= 9'd0;shift_buf3 <= 9'd0;shift_buf4 <= 9'd0;shift_buf5 <= 9'd0;shift_buf6 <= 9'd0;shift_buf7 <= 9'd0;shift_buf8 <= 9'd0;shift_buf9 <= 9'd0;shift_buf10<= 9'd0;shift_buf11<= 9'd0;shift_buf12<= 9'd0;shift_buf13<= 9'd0;shift_buf14<= 9'd0;shift_buf15<= 9'd0;endelsebeginshift_buf0 <= {1'b0,datain};shift_buf1 <= shift_buf0;shift_buf2 <= shift_buf1;shift_buf3 <= shift_buf2;shift_buf4 <= shift_buf3;shift_buf5 <= shift_buf4;shift_buf6 <= shift_buf5;shift_buf7 <= shift_buf6;shift_buf8 <= shift_buf7;shift_buf9 <= shift_buf8;shift_buf10<= shift_buf9;shift_buf11 <= shift_buf10;shift_buf12 <= shift_buf11;shift_buf13 <= shift_buf12;shift_buf14 <= shift_buf13;shift_buf15 <= shift_buf14;endendalways@ (posedge clk_1M or negedge reset_n) beginif (!reset_n)beginadd_0_15 <= 10'd0;add_1_14 <= 10'd0;add_2_13 <= 10'd0;add_3_12 <= 10'd0;add_4_11 <= 10'd0;add_5_10 <= 10'd0;add_6_9 <= 10'd0;add_7_8 <= 10'd0;endelsebeginadd_0_15 <= shift_buf0 + shift_buf15;add_1_14 <= shift_buf1 + shift_buf14;add_2_13 <= shift_buf2 + shift_buf13;add_3_12 <= shift_buf3 + shift_buf12;add_4_11 <= shift_buf4 + shift_buf11;add_5_10 <= shift_buf5 + shift_buf10;add_6_9 <= shift_buf6 + shift_buf9;add_7_8 <= shift_buf7 + shift_buf8;endendalways@ (posedge clk_1M or negedge reset_n) beginif (!reset_n)beginmul1 <= 22'd0;mul2 <= 22'd0;mul3 <= 22'd0;mul4 <= 22'd0;mul5 <= 22'd0;mul6 <= 22'd0;mul7 <= 22'd0;mul8 <= 22'd0;endelsebeginmul1 <= COEF0 * add_0_15;mul2 <= COEF1 * add_1_14;mul3 <= COEF2 * add_2_13;mul4 <= COEF3 * add_3_12;mul5 <= COEF4 * add_4_11;mul6 <= COEF5 * add_5_10;mul7 <= COEF6 * add_6_9;mul8 <= COEF7 * add_7_8;endendalways@ (posedge clk_1M or negedge reset_n)beginif (!reset_n)add <= 30'd0;elseadd <= mul1+mul2+mul3+mul4+mul5+mul6+mul7+mul8;endassign dataout = (add >=0)?add>>10 :0;endmodule同时,通过modelsim来仿真最终的结果,Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

相关文档
最新文档