本源文秘网为您提供优质参考范文! 思想汇报 党建材料 疫情防控 自查报告 谈话记录 扫黑除恶
当前位置:首页 > 范文大全 > 教案设计 >

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

时间:2022-12-23 09:30:03 来源:网友投稿

摘 要:介绍了基于FPGA的FIR数字滤波器的设计与实现,该设计利用Matlab工具箱设计窗函数计算FIR滤波器系数,并通过VHDL层次化设计方法,同时FPGA与单片机有机结合,采用C51及VHDL语言模块化的设计思想及进行优化编程,有效实现了键盘可设置参数及LCD显示。结果表明此实现结构能进一步完善数据的快速处理和有效控制,提高了设计的灵活性、可靠性和功能的可扩展性。

关键词:FPGA;滤波器;VHDL;窗函数;模块化;可扩展性

中图分类号:TN713文献标识码:B文章编号:1004373X(2008)1918403

Design and Realization of FIR Digital Filter Based on FPGA

YANG Guoqing

(Tianjin Institute of Urban Construction,Tianjin,300384,China)

Abstract:This paper introduces a design and realization of FIR digital filter based on FPGA.The design uses window function of Matlab toolbox to calculate FIR filter coefficient.Through VHDL level of design,FPGA and MCU organic integration,C51 and VHDL used modular design and optimize programming,the effective realization of the keyboard can also set the parameters and LCD display,the results show that this structure can be further improved to achieve the rapid data processing and effective control,the design flexibility,reliability and extendibility function are improved as well.

Keywords:FPGA; filter;VHDL;window function;modulization;extendibility

1 引 言

数字滤波是通信、语音与图像处理、模式识别和谱分析等应用中的一种基本的处理部件,它可以满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。数字滤波的作用是滤除信号中某一部分频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的频率响应相乘的结果。从时域来看,就是输入信号与滤波器的冲激响应作卷积和。数字滤波器在各种领域得到广泛的应用,例如数字音响、音乐和语音合成、噪声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。

有限冲激响应(Finite Impulse Response,FIR)滤波器是数字信号处理系统中最基本的元件,它可以保证在任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,是稳定的系统[1]。目前FIR滤波器的硬件实现有以下几种方式,一种是使用通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。另一种是使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。还有一种是使用可编程逻辑器件,如FPGA(Field Programmable Gate Array,即现场可编程门阵列),有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。本文采用基于单片机和FPGA相结合的设计方法,实现了FIR滤波器的功能,并可实现其他控制和检测功能的有效扩展。

2 FIR滤波器的网络结构

N阶FIR滤波器相对于输入时间序列x(n)的输出表达式为:

y(n)=∑n=1i=0h(i)x(n-i)

(1)

即输出序列为单位脉冲响应h(n)与输入x(n)的卷积,由卷积关系可直接画出结构图,称之为直接型结构,如图1所示,该结构中共需要N个乘法器。每次采样y(n)需要进行n次乘法和n-1次加法操作实现乘累加之和[2]。

图1 FIR 滤波器直接型网络结构

对于线性相位FIR滤波器,其单位取样响应是对称或反对称的,即:h(n)=±h(N-1-n),利用对称性可以简化网络结构,当h(n)为偶对称且N为偶数时:

y(n)=∑n=1i=0h(i)x(n-i)

=∑N/2-1i=0h(i)[x(n-i)+(n-N+m)]

(2)

其线性网络结构如图2所示,仅需N/2个乘法器。FIR滤波器实质上是一个分节的延迟线,把每一节的输出加权累加,得到滤波器的输出。

图2 线性相位FIR滤波器结构

为了减少逻辑资源的占有量和提高系统的运行速度,对FIR滤波器进行了优化处理,本设计采用的优化主要有两种:一种是对表达式进行优化;另一种是在FPGA实现中利用特有的查找表进行优化编程。

3 FIR滤波器电路设计

FIR滤波器的硬件电路设计主要由前置放大电路、A/D转换、D/A转换、单片机、FPGA等部分组成。其中,数字滤波器利用Matlab工具箱设计窗函数计算FIR滤波器系数,基于FPGA最终实现。A/D采样、D/A输出由单片机控制FPGA实现。系统设计框图如图3所示。

图3 系统设计框图

3.1 A/D采样与存储的设计

A/D芯片采用TLC5540,此芯片为8位高速AD转换芯片,在本系统中FPGA时钟为20 MHz,通过PLL扩大为40 MHz单独控制A/D采样,因此在后级通过分频改变截止频率Fc时并不会造成输入数据失真。由于A/D采样采进的都是正数,所以在进入滤波器之前对采样数据进行了一次求补运算,在滤波器输出后再进行一次求补运算,最后再传给高速D/A转换输出。

采用双口RAM实现实时回放,完全采用独立的采样、回放模块,避免了无法实时回放的弊端。为了实现实时显示,达到滤波要求,利用Quartus Ⅱ中的LPM定制一个双口RAM核,如图4所示。

图4 双口RAM的电路图

3.2 FPGA中程控截止频率Fc单元电路的设计

通过改变FIR滤波器的采样时钟频率,可以改变滤波器的截止频率。因此在滤波器顶层文件前加一个可预制数的分频器控制改变滤波器截止频率。截止频率Fc过低时,由于此时滤波器采样点的减少,将会造成输出波形的不连续。为了解决这一问题,需在外围输出电路加一个阻抗为1 kΩ,截止频率Fc为100 kHz的RC低通滤波器,这样既满足性能要求,又能使输出波形连续不失真。顶层文件如图5所示。

图5 顶层文件原理图

3.3 Matlab滤波器参数的设定

使用Matlab软件中Filter Design-Toolbox工具箱中的FDATool,选择低通滤波器,通过不同的窗函数来实现FIR滤波器,观察到不同的窗函数而产生的不同波形,实现滤波功能效果不同[3]。通过仿真分析,当Fc=1 kHz,Fs=2 001 kHz时,利用Blackman窗设计低通滤波器,若阶数为16时,即在-3 dB处为截止频率,且滚降特性最好,线性相位。幅频、相频仿真图从略。设计出的线性相位16阶FIR数字低通滤波器的特性系数如下:

3.4 系统功能仿真测试

低通滤波器输出仿真测试:给定输入数据为一最大正数511(输入数据位宽10 b,假设加法器输入输出位宽为31 b,乘法器输出位宽31 b),可有效确定滤波器输出数据范围,仿真图如图6所示。

图6FIR低通滤波器仿真测试图

4 基于FPGA片上系统的硬件测试与实现

设计目标器件选用美国ALTERA公司Cyclone系列FPGA器件中的EP2C8Q20C8芯片,通过开发工具QuartusⅡ对各个模块的VHDL源程序及顶层电路

进行编译、逻辑综合,电路的纠错、验证、自动布局布线

及仿真等各种测试,最终将设计编译的数据下载到芯片

中,同时与单片机AT89S8253结合,进一步进行数据的快速处理和控制,实现键盘可设置参数及LCD显示,经实际电路测试验证,达到了设计的要求。成功完成了基于FPGA数字滤波器的硬件测试,也扩展实现了DDS函数信号发生器的相关功能。

这种基于FPGA数字滤波器的设计与实现,不仅利用Matlab工具箱设计窗函数计算FIR滤波器系数,并通过VHDL层次化设计方法,同时FPGA与单片机相结合,采用C51及VHDL语言模块化的设计思想进行优化编程,进一步完善了数据的快速处理和有效控制,提高了设计的灵活性、可靠性,也增强了系统功能的可扩展性。

参考文献

[1]胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社,2003.

[2]UweMeyer-baese.数字信号处理的FPGA实现[M].刘凌,胡永生,译.北京:清华大学出版社,2006.

[3]飞思科技产品研发中心.Matlab 7辅助信号处理技术与应用[M].北京:电子工业出版社,2005.

[4]程佩青.数字信号处理教程[M].北京:清华大学出版社,2006.

[5]Cheng C,Parhik K.Low-cost Parallel FIR Filter Structures with 2-stage Parallelism[J].IEEE Transactions on Circuits and Systems,2007(54):280-290.

[6]Chen Xiaoping,Qu Bo,Lu Gang.An Application of Immune Algorithm in FIR Filter Design[J].Proceedings of the 2003 International Conference on Neural Networks and Signal Processing,Nanjing,China,2003(1):473-475.

[7]刘圆,黄晨灵,高佩君,等.基于分段查找表的高速FIR滤波器的设计实现[J].微电子学,2006,36(5):674-678.

[8]徐欣,于红旗.基于FPGA的嵌入式系统设计[M].北京:机械工业出版社,2005.

[9]潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2005.

[10]王田,陈健,付宇卓.一种32位全定制高速乘法器设计[J].小型微型计算机系统,2005,26(2):307-309.

作者简介 杨国庆 男,1974年出生,宁夏隆德人,讲师。现从事计算机控制、楼宇自控及电气自动化方面的教学、实验研究。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文

推荐访问:设计 数字滤波器 FPGA FIR