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

(整期优先)网络出版时间:2018-12-22
/ 2

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

汪发

汪发

安徽新华学院230081

摘要:本文设计了一个有限长FIR数字低通滤波器,采样频率1MHz,截止频率100KHz,输入输出数据为8位。软件测试阶段中,滤波器的系数和函数类型可以通过Matlab编程仿真的数据来进行确认,再利用分布式算法在FPGA芯片上完成滤波器的乘累加部分,FIR滤波可以使用Verilog语言编程实现,最后的仿真是在Modelsim上完成。实物的测试阶段中,由信号源产生输入信号,在A/D、D/A模块经A/D可以将信号转入FPGA芯片进行滤波,得到滤波结果由D/A转换芯片输出,同时FPGA芯片可以控制A/D和D/A模块的工作,最后的滤波结果送示波器观察。研究结果表明,这次论文中涉及到的FIR滤波器硬件的模块小,只是1MHz采样频率。将查找表进行相应的改动能实现高通、带通的FIR滤波器,这也体现了设计的灵活性。

关键词:分布式算法;FPGA;Verilog语言;FIR滤波器

1.国内外研究现状

数字滤波器在国内外的地位一直很高,目前国内外普遍使用的乘法有分布式算法,并串行乘法。其中分布式算法的乘法广受人们喜欢,因为他有着一个特点,既可以全并行又可以全串行实现还可以并串一起实现。

目前,可使用软件和硬件来实现FIR滤波器,其中软件实现只要在计算机上利用MATLAB编程就可以了,这种方法比较简单,简单易懂。硬件需要通过数字处理器和DSP处理器来实现的,这种方法可操作性高,不易理解。

2研究背景及意义

随着通信发展的脚步越来越快,我们使用的模拟滤波器越来越满足不了人们期望,比如速度太慢,噪音太大,电压漂移,温度漂移导致会产生误差等一系列问题,所以出现了替代模拟滤波器的数字滤波器,它具有模拟滤波器没有的稳定性高、速度快、灵活性的设计等特点。

现在数字滤波器目前应用广泛,它在语音处理、图像处理、雷达信号处理、电视信号处理都有涉及。现在本文将利用FPGA来实现FIR数字滤波器的实现,FPGA既是现场可编程门列,具有速度快成本又低规模还小等一系列优点。

3FIR数字滤波器设计

3.1数字滤波器基础

数字滤波指通过一定的计算或者判断程序对采样信号进行平滑加工,减少干扰在有用信号中的比例。它的组成由数字乘法器、加法器和延时单元的一种算法或者器件。

数字滤波器的类型有低通、高通、带通、带阻、全通,可以时不变或者时变也可以因果或非因果、线性或非线性。如果从长度分类的话,又可以分为无限长单位的脉冲响应和有限长单位脉冲响应。

本文讨论的是有限长单位的脉冲响应(FIR)数字滤波器。

3.2FIR数字滤波器设计方法

FIR的数字滤波器的设计方法有傅立叶级数法(窗函数)、频谱采样法、最佳逼近法。

4FPGA设计优点以及分布式算法

如果综合考虑的话,使用FPGA实现数字系统的成本的确要比一般的数字系统要低。其一,FPGA器件集成度高,所以在布线排板上面会节省了很多不必要多余的部分。其二,FPGA实现数字滤波系统设计周期短,这样就大大节省了开发的资金成本,最后一点也是一个原因,由于FPGA设计的可靠性高,所以产品它在后期上面维修费用大大降低。

5模块划分

首先画出FIR滤波器的顶层设计和结构框图

各模块的功能介绍:

(1)输入模块,顾名思义这个模块可以处理输入信号,为后面的系统做铺垫,这个模块由加法器和集成器组和为一体;

(2)查找表模块,主要作用是对前面输入模块产生的地址码经过查找表可以找出对应的输出的数值,它由高四位、低四位、补码高四位、补码低四位组成;

(3)树型移位加法器模块,将前面查找表输出的数值进行移位加法运算;

(4)控制模块,它的作用主要是产生不同的信号来控制其他模块,它可以产生前面的所有信号实现控制前面的输入模块、查找表、加法器模块。

6FIR滤波器的顶层设计

S0:输入信号模块,主要作用是并行进入移位寄存器用来实现信号的延迟;

S1:根据系数的对称性,实现B(i)=X(i)+X(N-i),并形成8位地址码;

其中S0、S1状态是在输入模块完成的。

S2:根据地址码对应LUT函数值S2状态在查找表模块完成的。

S3-S6:输入信号得到的数据输出数值树状移位相加得出卷积结果,这是一个树形转换加上4个层次的过程,它是在一个树形的移位添加模块中完成的。

考虑到硬件条件的限制,D/A转换器只有8位,所以我们需要添加锁存模块来选择卷积结果,实现所需精度的输出。完成卷积需要7个脉冲周期,即从数据输入到数据输出需要7个脉冲周期。但在流水线操作模式下,可以假设每个脉冲的上升沿并行输入8位数据,并且8位数据并行输出。

7系统硬件

7.1系统框图

系统硬件框图如图1所示。主要由四部分组成:A/D转换、FPGA、JTAG和D/A转换。

图1系统框图

7.2部分芯片介绍

(1)FPGA芯片

本文中使用的是FPGA芯片名为Ep2ce6c8n,它具有速度快,功能多,稳定性高,集成度高的一些列特点。

(2)A/D转换芯片

本设计采用高速AD芯片是8位,与32msps最大通过率它的芯片。

(3)D/A转换芯片

高速DA芯片是一款8位,125MSPS的DA转换芯片,内置1.2V参考电压和一个差分电流输出。

8Modelsim的程序和仿真

之前的simulink仿真与matlab程序仿真仅仅是证明了算法是正确的,接下来我们需要把这个算法用Verilog语言写出来,用modelsim仿真程序,用SignaltapII看输出波形。

9硬件调式

首先需要将在Matlab中将编写需要实现的程序,编译显示一切正常后在将程序移植到FPGA开发板上连接进行测试。

测试:以下是1M的采样率,100K的截止频率的16阶低通FIR滤波器现场测试图。

测试一:输入50Khz方波,因为方波只有奇次谐波,所以这个方波是由50Khz,150Khz,250khz的谐波组成,又由于滤波器的截止频率是100Khz,所以只有50Khz的信号可以通过,输出50K的正弦波,由于采样率是1M.,所以可以看出正弦波由20个点组成。

测试二:50Khz的方波,可以看出方波有许多谐波分量。

结论

在本文中对本次设计的各个模块进行了详细的分析与说明,其中重点部分是FIR低通滤波器模型的建立,并附加以仿真演示和结果分析,最后阐述FPGA技术以及数字信号处理,涵盖了两者之间联系,使之一目了然。

参考文献:

[1]林怀蔚,费旻,邢玮.基于VHDL和Matlab应用结合的FIR数字滤波器设计[C].合肥:中国科技大学出版社,2007.

[2]梁二虎,刘文怡.基于FPGA的IIR数字滤波器硬件模块设计[J].微计算机信息,2008,01-2:218-219.

[3]雷伏容.VHDL电路设计[M].北京:清华大学出版社,2006.