基于FPGA设计FIR数字滤波器

  • IT技术
  • 2019-11-30
  • 人已阅读
简介随着科技的发展,电子电路的设计正逐渐摆脱传统的设计模式,而采用FPGA(现场可编程门阵列)来设计电子电路正成为设计的趋势。这是因为采用 FPGA 设计电子电路不仅开发时间短,资金投入相对少,且可将电路板级产品集成为芯片级产品。在数字信号处理中,滤波占有重要的地位。

 

基于FPGA设计FIR数字滤波器

随着科技的发展,电子电路的设计正逐渐摆脱传统的设计模式,而采用FPGA(现场可编程门阵列)来设计电子电路正成为设计的趋势。这是因为采用 FPGA 设计电子电路不仅开发时间短,资金投入相对少,且可将电路板级产品集成为芯片级产品。在数字信号处理中,滤波占有重要的地位。数字滤波在语音和图像处理、HDTV(高清晰电视)、模式识别、频谱分析等应用中经常用到。与模拟滤波相比,数字滤波具有很突出的优点。例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波所无法克服的电压漂移、温度漂移和噪声等问题。有限长冲激响应(FIR滤波器,由FIR系统只有零点、系统稳定,便于实现FFT法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用。本文将研究基于FPGAFIR数字滤波器。

关键词:FPGA  FIR滤波器  窗函数  MATLAB

 

 


 

随着信息时代和数字世界的到来,数字信号处理已成为一门极其重要的学科和技术领域。作为数字信号处理的一项重要内容,数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。目前FIR滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。本文选用可编程逻辑器件实现FIR滤波器。

现场可编程门阵列FPGA器件的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。目前使用最多的可编程开发环境Quartus II 软件支持几乎所有的EDA(电子设计自动化)工具,并且可以通过命令行或Tcl脚本文件与第三方EDA工具之间进行无缝连接。但在很多工程设计应用中,由FPGA器件完成的主程序中只完成大量的数学运算,程序调试时以二进制形式输出的信号可视性差,给设计人员进行仿真、调试带来了很多不便。对于很多工程设计人员来说MATLAB是一种熟悉的具有强大的运算功能和波形仿真、分析功能的软件,如果能将FPGAMATLAB接口,就可以快速、准确、直观地对FPGA程序进行校验和仿真,尤其在数字信号处理等工程应用领域具有实际意义。本文正是借助于MATLAB/Simulink工具设计分析FIR数字滤波器,并实现对FIR数字滤波器系统的模拟仿真。

近年来,FPGA市场开发十分迅速,各大FPGA厂商不断采用新技术来提高FPGA器件的容量,增强软件的性能。如今,FPGA器件广泛应用于通信、自动控制、信息处理等诸多领域,越来越多的电子设计人员在使用FPGA,熟练掌握FPGA设计技术已经是对电子设计工程师的基本要求。


 

 

  数字滤波器

1.1 数字滤波器的基本概述

所谓数字滤波器,是指输入、输出均为数字信号,通过一定的运算关系改变输入信号所含频率成份的相对比例或者滤除某些频率成份的器件。因此,数字滤波器的概念和模拟滤波器相同,只是信号的形式和实现滤波方法不同。正因为该点的不同,数字滤波器具有比模拟滤波器精度高、稳定、体积小、重量轻、灵活、不要求阻抗匹配以及实现模拟滤波器无法实现的特殊滤波功能等优点。如果要处理的是模拟信号,可通过ADCDAC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。

1.1.1 数字滤波器的分类

一般数字滤波器从功能上分类,和模拟滤波器一样,可以分为低通、高通、带通、带阻等选通滤波器。它们的理想幅频特性如图1-1所示。这种理想滤波器是不可能实现的,因为它们的单位脉冲响应均为非因果且是无限长的,我们只能按照某些准则设计滤波器,使之尽可能逼近它,这些理想的滤波器可作为逼近的标准用。另外,需要注意的是数字滤波器的传输函数H)都是以2为周期的,滤波器的低通频带处于2的整数倍处,而高通频带处于的奇数倍附近,这一点和模拟滤波器是有区别的。

说明: 图1

1-1 理想低通、高通、带通、带阻滤波器幅频特性

 

数字滤波器从实现的网络结构或者从单位脉冲响应分类,可以分为无限长脉冲响应(IIR)滤波器和有限脉长冲响应(FIR)滤波器。它们的系统函数分别为:

Hz)=                  1.1

Hz)=                   1.2

(1.1)式中的H(z)称为NIIR滤波器函数,(1.2)式中的Hz)称为(N1)阶FIR滤波器函数。这两种类型的设计方法有很大的区别,本课题主要讨论FIR设计

1.1.2 数字滤波器的技术要求

我们常使用的数字滤波器一般属于选频滤波器。假设数字滤波器的传输函数H()用下式表示:

H()|H()|

式中,|H()|称为幅频特性,Q(ω)称为相频特性。幅频特性表示信号通过该滤波器后各频率成份衰减情况,而相频特性反映各频率成份通过滤波器后在时间上的延时情况。因此,即使两个滤波器的幅频特性相同,而相频特性不一样,对同样的输入,滤波器的输出信号也是不一样的。一般选频滤波器的技术要求有幅频特性给出,相频特性一般不作要求,但如果对输出波形有要求,则需要考虑相频特性的技术指标,例如,语音合成、波形传输、图像信号处理等。如果对输出波形有严格要求,则需要设计线性相位的数字滤波器。

对于图1-1中所示的各种理想滤波器,我们必须设计一个因果可实现的滤波器去实现。另外,也要考虑复杂性与成本问题,因此实用中通带和阻带中允许一定的误差容限,即通带不一定是完全水平的,阻带信号电压不一定都绝对衰减到零。此外,按要求在通带与阻带之间还应设置一定宽度的过渡带。因此由上可知数字滤波器的技术指标有:通带的最大波动、阻带的最小衰减、以及过渡带的宽度。

1.1.3 数字滤波器的设计概述

由于结构的差异,IIR滤波器和FIR滤波器的设计方法也是不相同的。IIR设计方法通常有两类,经常用的一类设计方法是借助于模拟滤波器设计方法进行的。其设计步骤是:先设计模拟滤波器得到传输函数Ha(s),然后将Ha(s)按某种方法转换为数字滤波器的系统函数H(z)。这一类相对容易一些,这是因为模拟滤波器的设计方法已经很成熟,它不仅有完整的设计公式,还有完善的图表供查询;另外,还有一些典型的滤波器类型可以供我们使用。另一类是直接在频域或者时域中进行设计的,由于要解联立方程,设计时需要计算机作辅助设计FIR滤波器不能采用由模拟滤波器的设计进行转换的方法,经常用的是窗函数法和频率采样法。还有一种比较有效的方法是切比雪夫等波纹逼近法,需要通过计算机辅助设计完成。

对于线性相位型滤波器,通常采用FIR滤波器,其单位脉冲响应满足一定条件,可以证明其相位特性在整个频带中是严格线性的,这是模拟滤波器无法达到的。当然,也可以采用IIR滤波器,但必须使用全通网络对其非线性相位特性进行相位校正,这样增加了设计与实现的复杂性。本课题主要研究FIR滤波器的设计                                                                                                                                                       

1.2 FIR 滤波器的原理及结构

常见的数字滤波器为线性时不变(Line Time Invariant , LTI)滤波器。FIR是数字滤波器的一种。

1.2.1 FIR滤波器的特点

FIR滤波器是脉冲响应有限长的数字滤波器,它由有限个采样值构成。按网络实现结构,FIR滤波器可分以下几种:直接型、级联型、频率采样型,若FIR的脉冲响应满足奇偶对称的条件,则FIR还具有线性相位型结构。由于FIR脉冲响应是有限长的,系统函数在单位圆外没有极点,因而系统具有很好的稳定性,多采用非递归结构实现,运算误差小。相比之下,IIR滤波器的单位脉冲响应序列是无限长的,其系统函数极点在单位圆内时才是稳定的,实现结构必定是递归型的,这种结构由于运算误差,有时会引起零输入极限环震荡。

FIR滤波器的运算是一种卷积运算,可以用快速傅氏变换和其他快速算法来实现。而IIR滤波器没有快速算法。FIR滤波器能得到严格的线性相位特性。而IIR滤波器具有良好的幅频特性,但相位是非线性的,要设计线性相位的IIR滤波器,只能用优化设计的方法逼近。通常,在满足同样设计指标的情况下,FIR滤波器的阶数要比IIR滤波器的阶数高,这是因为FIR滤波器的极点固定在原点位置上,要达到较好的选择性,只能提高滤波器的阶数。在设计滤波器时,IIR滤波器的设计可利用模拟滤波器的理论,有公式表格可供查阅等,设计工作量小。而FIR滤波器没有直接设计公式,计算工作量大,一般要借助于计算机来完成。

1.2.2 线性相位FIR滤波器

并非所有的FIR数字滤波器都具有线性相位特点,而是当FIR数字滤波器的单位脉冲响应具有对称性特点时,才具有严格线性相位,即h(n)是实数,且h(n)的前半部和后半部之间满足偶对称或奇对称,

h(n)h(N1n)

当一个 FIR 滤波器具有线性相位响应时,其脉冲响应呈现某种对称条件。在这种形式中,将利用这些对称关系把相乘的次数减少一半。正是由于此原因,在本课题中才会选择线性相位型来进行设计

线性相位响应的优点如下:

1设计过程中只有实数运算而没有复数运算,运算简单;

2、 线性相位 FIR 滤波器没有延时失真,仅有某一固定时延,便于设计

3、 对于长度为 N(N-1)的滤波器,其运算次数具有 N/2数量级,有利于提高运算速度,节省资源。

我们知道,对于FIR滤波器的直接型结构如图1-2所示,图中共需要N个乘法器,但对于线性相位的FIR滤波器,N为偶数时,仅需要N/2次乘法,节约一半乘法器。如果N为奇数,则需要(N+1/2个乘法器,也节约了近一半。

 

说明: 图1

 

 

 

 

1-2 FIR滤波器直接型结构

 

线性相位FIR滤波器的差分方程为,

y(n)

h(0)*x(n)+h(1)*x(n-1)++h(1)*x(n-N+2)+h(0)*x(n-N+1)

h(0)[x(n)+x(n-N+1)]+h(1)[x(n-1)+x(n- N+2)]+

FIR滤波器的阶数为奇数和偶数时,其相应的结构如图1-31-4所示。

  

 

 

 

              

 

 

1-3线性相位FIR滤波器(奇数阶)

                                                   

 

 

 

 

 

 

 

1-4线性相位FIR滤波器(偶数阶)

比较从以上图形结构,可看出线性相位结构比较简单,节省了大量的硬件资源。对于线性相位FIR滤波器的单位脉冲响应h(n)为奇对称和偶对称又分别分为列长N为奇数和偶数两种情况。其单位脉冲响应序列h(n)如图1-51-6所示。因此共有四种类型的线性相位FIR滤波器。

说明: 图1说明: 图1

1-5偶对称单位脉冲响应                        1-6奇对称单位脉冲响应

 

1.3 FIR滤波器的设计

前文提到设计FIR滤波器不能采用由模拟滤波器的设计进行转换,通常用的是窗函数法,频率采样法以及切比雪夫等波纹逼近法。在本课题中,选用窗函数法来设计

1.3.1窗函数法设计原理

FIR滤波器最简单的设计方法是窗函数法,也称为傅氏级数法。FIR滤波器的设计IIR滤波器一样,先给出要求的理想滤波器的频域,设计一个FIR滤波器的频响去逼近理想的频响。然而窗函数设计法是在时域进行的,因此必须先求出理想频响对应的单位脉冲响应hd(n),设计FIR滤波器的单位脉冲响应h(n)去逼近hd(n)。它的基本思想是要选取某一种合适的理想频率选择性滤波器,然后将它的脉冲响应平移截断以得到一个线性相位和因果的 FIR 滤波器。因此这种方法的重点在于选择某种合适的窗函数和一种理想滤波器。对于给定的滤波器技术指标,选择滤波器长度和具有最窄主瓣宽度和尽可能小的旁瓣衰减的某个窗函数。任何数字滤波器的频率响应 H()都是ω的周期函数,它的傅立叶级数展开式为,

H()

其傅立叶级数系数hd(n)就是理想数字滤波器的单位脉冲响应,且

  hd(n)

其中ωc为滤波器的归一化截止频率。

显然,hd(n)是无限长的序列,系统是非因果的,物理不可实现的。因此我们必须把hd(n)右移截断,得到一个有限长的因果序列 h(n),h(n)去逼近hd(n),比如把hd(n)右移(N-1/2位得:

hd(n)

可以看出hd(n)是一个关于(N-1/2点偶对称的序列,其相位响应是严格线性的。但这种直接平移截取的方法,会产生吉布斯(Gibbs)现象。即随着窗口长度的增加,窗口频谱的主瓣宽度变窄,频谱旁瓣个数增加,但主瓣与旁瓣相对比例基本不变。因此增加窗口长度,由于主瓣宽度变窄可减小过渡带宽,又由于频谱旁瓣个数增加而使得通带内起伏和阻带内的余振增加,但肩峰强度以及阻带最小衰减基本不变,若要改善阻带衰减特性,必须减小旁瓣与主瓣的相对比例,使窗口能量集中在频谱主瓣,这样一来又增加了主瓣的宽度,其结果将导致过渡带变宽。实际应用中要兼顾过渡带宽和阻带衰减。因此常常结合具体情况,通过选择不同的窗函数来满足实际的需要。

1.3.2几种常用的窗函数

工程中比较常用的窗函数有:矩形窗函数、三角形(Bartlett)窗函数、汉宁(Hanning)窗函数、海明(Hamming)窗函数、布莱克曼(Blackman)窗函数和凯塞(Kaiser)窗函数。其中凯塞窗是由零阶贝塞尔函数构成的。它有一个形状参数β,可以自由选择。改变β值可以调节主瓣宽度和旁瓣电平。β越大,W(n)窗越窄,频谱的旁瓣越小,但主瓣也相应加宽。以上六种窗函数的比较如表1-1所示。

1-1  六种窗函数的比较

窗函数

第一旁瓣幅度衰减/dB

过渡带宽

阻带最小衰减/dB

矩形窗

-13

4/N

-21

三角形窗

-27

8/N

-25

汉宁窗

-31

8/N

-44

海明窗

-41

8/N

-53

布莱克曼窗

-57

12/N

-74

凯塞窗

-57

10/N

-80

 

窗函数的选择原则是:

1、具有较低的旁瓣幅度,尤其是第一旁瓣幅度;

2、旁瓣幅度下降速度要大,以利增加阻带衰减;

3、主瓣的宽度要窄,以获得较陡的过渡带。

通常上述三点很难同时满足。当选用窗函数主瓣宽度较窄时,虽然得到较陡的过渡带,但通带和阻带的波动明显增加,当选用最小的旁瓣幅度时,虽能得到均匀的幅度响应和较小的阻带波动,但过渡带变宽。因此,实际选用的窗函数往往是取它们的折衷。在保证主瓣宽度达到一定要求的条件下,适当牺牲主瓣宽度来换取旁瓣波动的减少。以上是从幅频特性的改善对时域窗函数提出的原则要求。通过分析比较,本课题选择海明窗。

1.3.3海明窗简介

海明窗是一种改进的升余弦窗,定义为:

W(n)=0.54-0.46cos   0nN-1

1-71-8所示,分别为64阶海明窗、矩形窗窗函数的时域及频域幅度特性。由表1-1及图1-71-8比较得出,本课题选择海明窗的主要原因如下:

1、在以上所列窗函数中,矩形窗的主瓣宽度最窄,但其旁瓣幅度衰减太小,从而造成所设滤波器的通带和阻带特性均不理想。然而所选的海明窗,其主瓣宽度适中,对应所设计的滤波器的过渡带也比较窄。

2、在窗函数中,海明窗最大旁瓣值比主瓣衰减约41dB,旁瓣抑制较高,通带特性好。

3、海明窗的谱能量绝大部分集中在主瓣内,阻带特性良好。

本课题研究的是线性相位FIR滤波器的设计h(n)有对称特点,且要求窗函数W(n)必须有偶对称特点,即

W(n)=W(N-1-n)

 

 

 

 

 

 

 

 

 

 

 

1-7 64阶海明窗时域与频域幅度特性

1-8 64阶矩形窗时域与频域幅度特性

 

 

 

 

 

 

  可编程逻辑器件概述

在传统硬件电路系统设计制作中,设计者根据电路图画出电路板并做出PCB板,把电路元件焊接好后对整个电路板系统进行模拟调试。在整个设计过程中,若稍有疏忽,则将前功尽弃,不仅浪费时间,还造成资源上的浪费。可编程逻辑器件则改变了传统的硬件电路系统设计方式、方法及制作过程,它摒弃了传统设计中的不灵活性,可以通过软件编程的方法对其硬件结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。随着计算机软件、硬件和集成电路制造技术的飞速发展,可编程逻辑器件在复杂程度及模块功能上也经历着从量变到质变的飞跃。

2.1 可编程逻辑器件的发展历程

早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可擦除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。

其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个门和一个门阵列组成,而任意一个组合逻辑都可以用-表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑功能。

这一阶段的产品主要有PAL(可编程阵列逻辑)GAL(通用阵列逻辑) PAL由一个可编程的平面和一个固定的平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。 PAL器件是现场可编程的,它的实现工艺有反熔丝技术EPROM技术EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个平面和一个平面构成,但是这两个平面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。

为了弥补这一缺陷,20世纪80年代中期。 AlteraXilinx分别推出了类似于PAL结构的扩展型器件CPLD(Complex Programmab1e Logic Device,复杂可编程逻辑器件)和与标准门阵列类似的FPGA(Field Programmable Gate Array,现场可编程门阵列),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。 这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它ASIC(Application Specific IC,专用集成电路)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGACPLD器件。

FPGA CPLD 都是可编程逻辑器件,它们是在PAL,GAL等逻辑器件的基础之上发展起来的。同以往的PAL,GAL等相比较,FPGACPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGACPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占有了较大的PLD市场。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用Altera的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由AlteraXilinx提供的。可以讲AlteraXilinx共同决定了PLD技术的发展方向。当然还有许多其它类型器件,如:LatticeVantisActelQuicklogicLucent等。

2.2 FPGA简介

现场可编程门阵列(FPGA)的出现是超大规模集成电路(VLSI技术和计算机辅助设计CAD技术发展的结果。FPGA器件的集成度高、体积小,具有通过用户编程实现专门应用的功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直接到达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金投入。更吸引人的是,采用FPGA器件可将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。FPGA器件成为研制开发的理想器件,特别适合于产品的样机开发和小批量生产,因此有时人们也把FPGA称为可编程的ASIC

2.2.1 FPGA的基本结构

FPGA 的发展相当迅速,现已形成了各种不同的结构。按逻辑功能块的大小分类,可分为细粒度 FPGA 和粗粒度 FPGA。细粒度 FPGA 的逻辑功能块小,资源可利用度高,但连线和开关多,速度慢;粗粒度 FPGA 的逻辑功能模块大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。

根据 FPGA 的内部连线的结构不同,可分为分段互连型 FPGA 和连续互连型FPGA 两种。分段互连型 FPGA 中具有多种不同长度的金属线,各金属线段之间通过开关矩阵或反熔丝编程连接,走线灵活方便,但走线延时无法预测;连续互连型 FPGA 是利用相同长度的金属线,连接与距离远近无关,布线延时是固定和可预测的。

根据编程方式,FPGA可分为一次编程型和可重复编程型两类。一次编程型采用反熔丝开关元件,具有体积小、集成度高、互连性特性阻抗低、寄生电容小和高速度的特点,此外还具有加密位、防拷贝、抗辐射、抗干扰、不需外接PROMEPROM的特点,但只能一次编程,比较适合于定型产品及大批量应用,Actel公司和Quicklogic公司提供此类产品。可重复编程型FPGA采用SRAM开关元件或FLASH控制的开关元件,配置数据存储在SRAMFLASH中。SRAM型的FPGA的突出优点是可以反复编程,系统上电时,给FPGA加载不同的配置数据就可完成不同的硬件功能,甚至在系统运行中改变配置,实现系统功能的动态重构。FLASHFPGA具有非易失性和可重复编程的双重优点,但不能动态重构,功耗也较SRAM型高。目前FPGA的主流仍然是Xilinx公司的产品。

FPGA一般有由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑模块CLB(Configurable Logic Block)、输入/输出模块IOB(I/O Block)和可编程布线通道(其中包括可编程内部连接点PIP,其基本结构如图2-1所示。CLBFPGA的主要组成部分,是实现逻辑功能的基本单元。I/O 模块提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。可编程布线通道把各逻辑模块与 I/O 模块互相连接起来,构成各种功能复杂的系统。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2-1 FPGA的基本结构

 

 

 

2.2.2 可编程逻辑器件的设计方法及流程

EDA 出现以前,人们采用传统的硬件电路设计方法来设计数字系统。传统的硬件电路采用自下而上的设计方法。其主要步骤是:根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流程图,对系统的功能进行分化,合理的划分功能模块,并画出系统的功能框图;接着就是进行功能的细化和电路设计;各功能模块电路设计调试完成后,将各功能模块的硬件电路连接起来,再进行系统的调试;最后完成整个系统的硬件电路设计。随着计算机技术、大规模集成电路的技术的发展,这种设计方法已经落后于当今技术的发展。一种崭新的自上而下的设计方法已经兴起,它为硬件电路设计带来一次重大的变革。

20世纪80年代初,在硬件电路设计中开始采用计算机辅助设计技术CAD),开始仅仅是利用计算机软件来实现印刷板的布线,以后慢慢地才实现了插件板级规模的电子电路的设计和仿真。随着大规模专用集成电路的开发研制,为了提高开发的效益和增加已有开发成果的可继承性,以及缩短开发时间,各种新兴的EDA工具开始出现,特别是硬件描述语言HDL(Hardware Description Language)的出现,使得传统的硬件电路设计方法发生了巨大的变革,新兴的EDA设计方法采用自上而下的设计方法。所谓自上而下的设计方法,就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计

    可编程逻辑器件的设计是指利用EDA开发软件和编程工具对器件进行开发的过程。高密度复杂可编程逻辑器件的设计流程如图2-2所示,它包括设计准备,设计输入,功能仿真,设计处理,时序仿真和器件编程及测试等七个步骤。

 

 

 

 

 

 

 

 

 

 

 

 

 

2-2 可编程逻辑器件设计流程

  基于QuartusII软件设计FIR滤波器

目前全世界生产PLD的厂家很多,但比较大的厂家有:AlteraXilinxLattice ActelAltera 是目前最大的 PLD 供应商之一,Xilinx FPGA 的发明者,最大的 PLD 供应商之一,Lattice ISP 技术的发明者,Actel 提供军品及宇航级产品。由于 Altera 公司的 PLD 具有高性能、高密度集成、高性能价格比、开发周期短、对器件优化的 IP 解决方案和在线可编程能力。所以本课题选用Altera公司的Cyclone系列芯片EP1C6Q240C8

3.1 设计环境及工具介绍

本课题以FPGA开发环境QuartusII为平台,利用系统软件DSP Builder,结合MATLAB工具编辑出硬件电路图形。之后在QuartusII上进行综合,生成FIR滤波器模块,同时编译整个硬件系统并生成VHDL代码,然后下载到实际电路中进行系统调试。

3.1.1开发环境QuartusII 

Altera公司提供的 QuartusII 设计软件是适合单芯片可编程系统 (SOPC) 的最全面的设计环境。Quartus II 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII软件支持VHDLVerilog硬件描述语言的设计输入、基于图形的设计输入方式以及集成系统级设计工具。QuartusII软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中也包括和第三方EDA工具的接口。不管你使用的是个人计算机还是UNIXLinux工作平台,QuartusII 软件都能确保系统设计的简易输入、快速处理、及器件的直接编程。

作为可编程逻辑器件的开发软件,QuartusII支持以下Altera器件:ACEX 1KACEX 20KACEX 20KCACEX 20KEAPEX II ARM-based ExcaliburCycloneCyclone IIFLEX6000FLEX 10KFLEX 10KAFLEX 10KE HardCopy  StratixMAX IIMAX 3000AMAX 7000AEMAX 7000BMAX 7000SMercuryStratixStratix II,Stratix GX

QuartusII支持Nativelink,以及结合主要的设计工具提供在QuartusII和其他EDA工具之间进行无缝信息传输。同时Nativelink使得QuartusII软件可以轻易地从EDA工具原文件中识别出错误源头,从而使设计者可以很快地改正它们。除此之外,QuartusII软件允许从该软件内部自动运行许多EDA工具,进一步增强设计流程的综合性。

QuartusII也识别标准的EDIF网络表文件、VHDL网络表文件以及Verilog HDL网络表文件,同时还能生成VHDLVerilog HDL网络表文件,其中还包括VITAL自适应文件,以便为其它工业标准的EDA工具提供方便的界面。

QuartusII提供丰富的图形用户界面编译环境,并附带有详细解说和易用的在线帮助系统。完善的QuartusII软件拥有一个完整的设计环境,它包括从设计输入到器件编程的每一个阶段。

在一个层次设计工程中,设计者可以方便的使用不同的文件类型,选择每个功能模块的设计输入格式让其工作在最佳状态下。设计者还可以使用QuartusII模块编辑器在高层次创建模块图表,对设计进行描述,然后使用附加的模块图表创建低层次的设计。层次结构独立的设计输入,使得设计者自由地创建逻辑图表,而不必担心最后的器件实现。

先进的图形用户界面使得QuartusII允许设计者在同一时间处理多个文件,编辑多个设计,并在多个设计之间进行信息传输,同时还可以编辑或模拟其他工程。设计者可以一览整个设计层次,并可以灵活的从一个层次移动到另一个层次。每当打开一个设计文件,QuartusII软件便会自动地启动相应的编辑器。

QuartusII编译器位于系统的核心,提供强有力的设计处理。设计者可以根据需要对其进行自定义,以达到设计工程的最佳实现。自动地检测错误、定位和丰富的错误或警告提示文档信息,使得设计修正非常简便。在程序设计的每一个阶段QuartusII软件使设计者把重心集中在设计上,而不是在该如何使用这个软件上。

QuartusII软件的极好整合,改善了设计者的工作效率和生产力,把设计者放在控制整个逻辑设计环境的重要位置。

QuartusII设计软件提供完整的多平台设计环境,它可以轻易满足特定设计的需要。它包含整个FPGACPLD设计阶段的解决方案。有关QuartusII软件开发流程的图示说明,如图3-3所示。此外,QuartusII软件允许在设计流程的每个阶段使用QuartusII 图形用户界面、EDA工具界面或命令行界面。既可以在整个流程中只使用这些界面中的一个,也可以在设计流程的不同阶段使用不同的选项。

3-3 QuartusII软件的开发流程

 

 

3.1.2 DSP Builder简介

基于Altera可编程逻辑器件(PLDs)的数字信号处理(DSP)系统设计,要求有高级的算法和硬件描述语言(HDL)开发工具。Altera公司的DSP Builder通过结合具有VHDLVerilog HDL设计流程的MATLAB/Simulink系统级设计工具(集算法开发、模拟仿真、校验功能于一身)和QuartusII软件满足上述开发环境。

DSP Builder通过友好开发环境创建DSP设计的硬件描述来缩短DSP设计周期。你可以结合已有的MATLAB函数、Simulink模块和Altera公司提供的DSP Builder模块、IP 兆核功能函数把系统设计、实现与DSP算法开发联系在一块。在这种方式下,DSP Builder允许系统级、算法级以及硬件级设计者共享同一个开发平台。

可以在Simulink软件工作环境下,使用DSP Builder中的模块创建一个硬件系统。DSP Builder中含有位和周期仿真模块,如基本的代数运算和存储函数等,利用这些可充分体现某些重要器件的特性,比如,片内PLLDSP模块,嵌入式存储器。

通过使用DSP Builder模块中的兆核函数可以增加复合功能。也可以通过在FPGA上实现设计的一部分来体现系统设计的快速性能和硬件综合仿真的丰富性。

DSP Builder信号编译器模块通过对Simulink模型文件进行编译,同时生成VHDLVerilog HDL文件和Tcl脚本文件,以便于系统的综合,仿真和硬件实现。

可编程逻辑器件在设计专用数字信号处理器方面显示出优越的性能。可编程逻辑器件可以被认为是单元的阵列,各单元可以配置多路处理器程序。这些处理器程序可以串联在一起,也可以以并联的方式连接在一起。在并联的情况下,通过在同一时间执行上百条指令,其处理速度比标准的数字信号处理器快好几倍。

当使用DSP Builder时,首先在MATLAB/Simulink软件上创建一个设计模型。创建完之后可以在QuartusII环境下进行综合编辑并输出VHDL文件。具体设计步骤如下:

1、利用MATLAB/Simulink软件,组合SimulinkDSP Builder模块创建一个硬件模型。

2、 使用信号编译器模块对设计进行分析。

3、Simulink中对设计模型进行仿真,并用示波器模块观察结果。

4、运行信号编译器来启动RTL模拟和综合。

5、实现RTL模拟。DSP Builder可以利用Tcl脚本文件在ModelSim软件上进行自动模拟,也可以在其他仿真工具上使用生成的VHDLVerilog HDL文件进行手动模拟。

6、使用DSP Builder信号编译器模块产生的输出文件实现RTL综合。DSP Builder支持自动综合,同样也可以使用其他的综合工具对VHDL文件进行手动综合。

7、QuartusII开发软件上对设计进行编译,生成代码。

8、把编译代码下载到硬件开发板上并进行测试。

DSP Builder系统级设计流程如图3-2所示。

3-2 DSP Builder系统级设计流程

 

3.1.3 MATLAB介绍及FIR系数生成

MATLAB MATrix  LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。

20世纪80年代初期,Cleve MolerJohn Little等利用C语言开发了新一代的MATLAB语言,此时的MATLAB语言已同时具备了数值计算功能和简单的图形处理功能。1984年,Cleve MolerJohn Little等正式成立了Mathworks公司,把MATLAB语言推向市场,并开始了对MATLAB工具箱等的开发设计1993年,Mathworks公司推出了基于个人计算机的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本 ,并在2000年又推出了最新的MATLAB 6版本。如今已发展到MATLAB 7.0版本。

现在,MATLAB已经发展成为适合多学科的大型软件,在世界各高校,MATLAB已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动态系统仿真等高级课程的基本教学工具。特别是最近几年,MATLAB在我国大学生数学建模竞赛中的应用,为参赛者在有限的时间内准确、有效的解决问题提供了有力的保证。

概括地讲,整个MATLAB系统由两部分组成,即MATLAB内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。MATLAB语言以数组为基本数据单位,包括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言。

本课题中利MATLAB提供的滤波设计分析工具FDAtool进行FIR滤波器的参数计算。工作界面如图3-3所示,根据设计要求选择参数实现滤波器的设计分析。其中,指定FIR低通滤波器为32阶,选择海明窗函数设计,采用数字归一化频率,令截止频率为0.3 点击设计按钮,导出系数如下表所示,由于该滤波器是线性相位的,因此系数具有对称性。

3-1 32阶线性相位FIR滤波器系数

H0 = H32

0.000935

 

 

 

 

 

由于FPGA只支持定点运算,各系数同乘上一个数量级2^12,并取整

4

H1 = H31

0.001885

8

H2 = H30

0.001537

6

H3 = H29

-0.001192

-5

H4 = H28

-0.005417

-22

H5 = H27

-0.006659

-27

H6 = H26

0

0

H7 = H25

0.012883

53

H8 = H24

0.020434

84

H9 = H23

0.008849

36

H10= H22

-0.022328

-91

H11= H21

-0.050647

-207

H12= H20

-0.040472

-166

H13= H19

0.030246

124

H14= H18

0.146065

598

H15= H17

0.255242

1045

H16

0.3

1229

 

由于在FDAtool工具中采用数字归一化频率设计滤波器,并指定了截止频率与采样频率的比例,因此在滤波器的实现时,只要调节采样频率就可以改变截止频率,而对应的滤波器系数不发生改变[4]。本设计对应的滤波器的幅频、相频特性如图3-4所示。

 

3-3 FDAtool设计界面

3-4 32阶线性相位FIR滤波器幅频、相频特性(归一化截止频率为0.3

3.2 FIR滤波器电路软件设计及模拟仿真

设计利用MATLAB可视化图形编辑工具,结合DSP Builder软件先画出课题所设计的线性相位的FIR滤波器硬件电路结构图,如图3-5所示。同时根据FIR滤波器的技术参数,使用MATLAB滤波器设计工具计算出FIR滤波器的系数,然后把系数代入结构图中,初步完成FIR滤波器的图形编辑。

3-5 32阶线性相位FIR滤波器结构简图

 

通常MATLAB计算得到FIR滤波器的系数是浮点数,而为了方便FPGA器件的定点数运算及提高系统的工作效率,必须把浮点数转换成定点数来进行计算。因此,在这里先对系数进行处理。由线性相位FIR滤波器的差分方程表达式:

y(n)

可知,等式两边可同乘一个最佳数量级,然后取整使得系数由浮点数转换成定点数。在整个过程中必然造成一定的量化误差,然而数量级选得越大,则误差就越小,但计算也就变得更复杂。所以根据实际具体要求,选择合适的数量级,对提高系统性能起着重要的作用。

MATLAB/Simulink环境下对所编辑的FIR滤波器进行模拟,根据要求设定FIR滤波器图形编辑结构中各元件的参数,通过示波器模块观察模拟结果。结果如图3-63-7所示。以上两图所示为32阶海明窗函数低通FIR滤波器的模拟效果,采样频率为100KHz,截止频率为30KHz。其中,SineWave为正弦无符号输入信号(幅度为127、频率为10KHz),Signed_inFIR滤波器系统有符号输入信号,FIR(LP)_outFIR滤波器系统的有符号输出信号,DA_in为外围数模转换电路输入信号。通过改变正弦输入信号的频率可观察到该系统的低通滤波效果(在这里是通过改变每个周期内的采样点数来达到改变输入信号的频率),即随着输入信号频率的增大,FIR(LP)_out波形的幅度逐渐减小。图3-63-7中的模拟信号输入频率分别为1KHz10KHz

3-6 模拟仿真结果(模拟信号输入1KHz

说明: tu33

3-7模拟仿真结果(模拟信号输入10KHz

 

  基于FPGA芯片硬件实现FIR滤波器

设计中用到的FPGA芯片为Cyclone EP1C6,该芯片是本系统FIR滤波器设计的核心。通过下载程序对其编程后,结合信号输入/输出外围电路(ADDA转换电路),最终完成硬件系统的实现。

4.1 Cyclone芯片介绍

Cyclone器件系列是唯一在TSMC 0.13微米工艺之上“重新构建”的低成本FPGACyclone器件的容量从2,91020,060个逻辑单元,具有288Kbit嵌入存储器采用1.5V全铜工艺。Cyclone器件具有多达两个锁相环(PLL)和层次时钟结构,对片内和片外时钟进行管理。每个器件支持多种单端I/O标准如LVTTLLVCMOSPCISSTL-2/3,以及差分I/O技术,支持速率高达311MbpsLVDS信号。Cyclone器件有专用电路和高性能的外部单数据率(SDRSDRAM和双数据率(DDRSDRAMFCRAM存储器件相连接。

Cyclone器件具有基于行和列的2维结构,用于执行自定义的逻辑。不同速度的行和列互连可以在LAB和嵌入存储块之间提供信号的互连。

逻辑矩阵由LAB组成,每个LAB都包括10LE1LE1个逻辑的最小单元,它可以提供有效使用的用户逻辑功能。LAB在器件中大量存在于行和列中。Cyclone器件有291020060LE

M4K RAM块是具有4K比特的寄存器奇偶校验的双端口的块。这些块在36位带宽和250MHz下提供真正的双端口,简单的双端口或是信号端口。这些块大量存在于器件中的某些LAB的行和列中。Cyclone器件提供60K比特到288K比特的嵌入式RAM

每个Cyclone器件I/O引脚都被外围器件周围的LAB末端的I/O单元所反馈。I/O引脚提供不同的单一和并行的I/O标准,例如:66- and 33-MHz, 64- and 32-bit PCI 标准和640Mbps下的LVDS I/O标准。每个IOE包括1个双向的I/O缓冲器和3个用于寄存输入,输出和输出使能信号的寄存器。具有延时链的双目的的DQSDQDM引脚给外部储存器提供接口支持,例如:133MHz下的DDR SDRAM FCRAM 

Cyclone器件提供1个全局时钟网络和2PLL。这个全局时钟网络由8个驱动整个器件的全局时钟线组成。它可以给器件中的全部资源提供时钟,例如:IOELE和储存块。时钟线路还可以被用于信号的控制。Cyclone PLL提供具有时钟复用和移相位的通用时钟,同时它还可以支持高速并行的I/O口的外部输出。

Cyclone EP1C6Altera推出的一款高性价比FPGA。该器件提供具有异步、双端口、带寄存器输入口、可选择的带寄存器输出口的存储模块-M4K,在本设计M4K被设置成一个双口RAM,实现数据的读写同步,提高了系统的刷新频率。正是考虑到该芯片的高性价比,在本课题中选择该芯片来设计FIR滤波器。

 

4.2 A/DD/A转换电路的描述

本系统设计中涉及到的外围电路主要由模数转换输入电路和数模转换输出电路组成,其中模数电路选用A/D芯片TLC5510,数模电路选用D/A芯片TLC5602。这两种芯片都是8位的高速转换器芯片,下面分别介绍。

4.2.1 TCL5510简介

TLC5510是美国TI公司生产的新型模数转换器件(ADC),它是一种采用CMOS工艺制造的8位高阻抗并行A/D芯片,能提供的最小采样率为20MSPS。由于TLC5510采用了半闪速结构(semiflash architecture)及CMOS工艺,因而大大减少了器件中比较器的数量,而且在高速转换的同时能够保持较低的功耗。TLC5510用单5V工作电源且功耗只有100mW(典型值)的功率。由于TLC5510不仅具有高速的A/D转换功能,而且还带有内部采样保持电路,从而大大简化了外围电路的设计。它具有高阻抗方式的并行接口和内部基准电阻。同时,由于其内部的基准分压电阻,因而可以从+5V的电源获得2V满刻度的基准电压。TLC5510可应用于数字TV、医学图像、视频会议、高速数据转换以及QAM解调器等方面。它内部含有采样和保持电路,与闪速转换器(flash converters)相比,半闪速结构减少了功率损耗和晶片尺寸。

TLC5510使用3个内部基准电阻可产生标准的2V满刻度满度转换范围。为了实现此选项仅需外部跳线器,这样减小了对外部基准或电阻的需求。差分线性度在25℃温度下为0.5LSB,在整个工作温度范围内的最大值是0.75LSB。用差分增益1%和差分相位0.7%可以规定动态特性范围。TLC5510的工作温度范围从2575

4-1 TLC5510功能框图

 

TLC5510的功能框图如图4-1所示

TLC5510模数转换器内含时钟发生器、内部基准电压分压器、1套高4位采样比较器、编码器、锁存器、2套低4位采样比较器、编码器和1个低4位锁存器等电路。TLC5510的外部时钟信号CLK通过其内部的时钟发生器可产生3路内部时钟,以驱动3组采样比较器。基准电压分压器则可用来为这3组比较器提供基准电压。输出A/D信号的高4位由高4位编码器直接提供,而低4位的采样数据则由两个低4位的编码器交替提供

TLC5510的工作时序见图4-2。时钟信号CLK在每一个下降沿采集模拟输入信号。第N次采集的数据经过2.5个时钟周期的延迟之后,将送到内部数据总线上。

4-2 TLC5510工作时序图

 

TLC5510是具有两个低比较器块的半闪速结构ADC,每个比较器为四位。在图4-2所示的工作时序的控制下,当第一个时钟周期CLK1的下降沿到来时,模拟输入电压V(1)将被采样到高比较器块和低比较器块(A),高比较器块在第二个时钟周期CLK2的上升沿最后确定高位数据UD(1),同时,低基准电压产生与高位数据相对应的电压RV(1)。低比较块(A)在第三个时钟周期CLK(3)的上升沿的最后确定低位数据LD(1)。高位数据和低位数据在第四个时钟周期CLK(4)的上升沿进行组合并输出为OUT(1)。根据上面的描述,输出数据滞后模拟输入电压采样点2.5个时钟。这样,第N次采集的数据经过2.5个时钟周期的延迟之后,便可送到内部数据总线上。此时如果输出使能OE有效,则数据便可被送至8位数据总线上。由于CLK的最大周期为50ns,因此,TLC5510数模转换器的最小采样速率可以达到20MSPS

输入电压V(2)CLK2下降沿被采样,UD(2)CLK3的上升沿最后确定,LD(2)CLK4的上升沿由低比较器块(B)最后确定。OUT(2)CLK5上升沿输入。

TLC5510的功能表如表4-1所示

4-1 TLC5510的功能表

输入信号电压

步骤

数字输出代码

MSB                        LSB

VREF(B)

·

·

·

·

·

·

VREF(T)

255

·

·

128

127

·

·

0

0   0   0   0   0   0   0   0

·  ·  ·  ·  ·  ·  ·  ·

·  ·  ·  ·  ·  ·  ·  ·

0   1   1   1   1   1   1   1

1   0   0   0   0   0   0   0

·  ·  ·  ·  ·  ·  ·  ·

·  ·  ·  ·  ·  ·  ·  ·  

1   1   1   1   1   1   1   1

 

4.2.2 TCL5602简介

本系统所使用的D/ATLC5602,它是一款低电压工作,超高速的8位视频数模转换器。TLC5602的转换速度最高可达20MHz,由于高速转换的特点,TLC5602被广泛的应用在数字视频方面,如数字电视,计算机图像处理以及雷达信号处理等领域。TLC5602的功能框图如图4-3所示,其数模转换时序图如图4-4所示。从图上可以看出,在时钟的上升沿,TLC5602对输入的数据进行采样,在经过的延迟时间后,输出正确的转换电压。另外需要注意的是,这款高速D/A的输出电压范围是4V-5V,也就是0x00对应的4V0xff对应的5V,所以为了得到正确的信号,实际应用中必须对此D/A的输出作适当的处理。

4-3 TLC5602内部功能框图

4-4 TLC5602转换时序图

TLC5510的功能表如表4-2所示

4-2 TLC5602的功能表

步骤

数字输入代码

输出信号电压

MSB                        LSB

0

1

·

·

127

128

129

·

·

254

255

L   L   L   L   L   L   L   L

L   L   L   L   L   L   L   H

·  ·  ·  ·  ·  ·  ·  ·

·  ·  ·  ·  ·  ·  ·  ·

L   H   H   H   H   H   H   H

H   L   L   L   L   L   L   L

H   L   L   L   L   L   L   H

·  ·  ·  ·  ·  ·  ·  ·

·  ·  ·  ·  ·  ·  ·  ·

H   H   H   H   H   H   H   L

H   H   H   H   H   H   H   H

3.980V

3.984V

·

·

4.488V

4.492V

4.496V

·

·

4.996V

5.000V

4.3 FIR滤波器硬件实现

本课题的最后阶段是进行系统的硬件实现,上文中已介绍通过在MATLAB/Simulink环境下对所编辑的FIR滤波器进行模拟仿真,根据要求设定FIR滤波器图形编辑结构中各元件的参数,然后通过示波器模块观察模拟结果。若结果达到预期要求,则模拟成功。之后利用QuartusIIFIR滤波器图形编辑结构进行综合、分析,估算出所设计FIR滤波器系统所占用的硬件资源,同时生成FIR滤波器模块,并建立QuartusII工程文件。最后在QuartusII 平台上,通过调用已有的元件模块及I/O时序、控制端口,正确连接各元件模块建成整个硬件系统模块(如图4.5),综合通过后给系统的输入/输出端口及数据线端口分配引脚。然后对整个硬件系统进一步综合、分析并生成对应的VHDL代码。接着把VHDL代码下载到有EP1C6Q240C8芯片的实际电路上进行系统调试。用示波器观察结果。通过调节系统采样频率,从而改变截止频率。

在图4-5中,可以看到引入一个74244模块,74244是一个8位三态门逻辑器件模块,它有两个控制端口,分别控制高低四位,均为低电平有效。由于所用的开发实验箱上ADDA共用一条数据总线,为避免数据传输冲突,因此在此硬件系统中引入了74244模块,来控制数据的传输。

4-5 FIR滤波器系统模块结构

4.4 测试结果

对下载到实际电路中的32阶线性相位低通FIR滤波器系统程序运行调试,用示波器观察系统输出信号,其结果如下列图形(图4-6至图4-14)所示。其中模拟输入信号幅度峰峰值恒为2V,频率从10Hz变化到7KHz,滤波器系统采样频率为100KHz,归一化截止频率为0.05。示波器CH1显示数字滤波器输出信号,CH2显示模拟输入信号。

4-6 模拟输入信号10Hz滤波结果

4-7 模拟输入信号100Hz滤波结果

4-8 模拟输入信号1KHz滤波结果

4-9 模拟输入信号2KHz滤波结果

4-10 模拟输入信号3KHz滤波结果

4-11 模拟输入信号4KHz滤波结果

4-12 模拟输入信号5KHz滤波结果

4-13 模拟输入信号6KHz滤波结果

4-14 模拟输入信号7KHz滤波结果

分析以上波形,针对系统输入和输出结果列表如下所示。由此表4-3可知,对于本课题设计32阶低通FIR滤波器系统,随着模拟输入信号频率的增加,该滤波器系统输出信号幅度逐渐减小。在通带上有较小的波动,其中过渡带衰减的速度与本课题选择的窗函数类型有关。以上结果表明本设计较好地实现了低通滤波的效果。

4-3 滤波结果分析表

 

模拟输入信号

FIR系统输出信号

幅度(V

频率(Hz

幅度(V

频率(Hz

4-6

Vpp=2

10

Vpp=0.9

10

4-7

Vpp=2

100

Vpp=1.4

100

4-8

Vpp=2

1K

Vpp=1.3

1K

4-9

Vpp=2

2K

Vpp=1.1

2K

4-10

Vpp=2

3K

Vpp=0.8

3K

4-11

Vpp=2

4K

Vpp=0.5

4K

4-12

Vpp=2

5K

Vpp=0.25

5K

4-13

Vpp=2

6K

Vpp=0.1

6K

4-14

Vpp=2

7K

Vpp=0.05

7K

 

  结语

在当今的电子电路的设计中,占用相对少的资源和在此相对少的资源上具有最快运行速度以及提高系统设计的性价比是设计的方向。在不同的系统设计中,为了满足具体实际的需要,适当的牺牲一方面的优势也是可以接受的。随着科技的日新月异,基于 FPGA 设计电子电路已成为一种趋势。这是由于 FPGA 器件集成度高、体积小,使用它可以大大缩短开发的周期,减少资金的投入,将原来的电路板级产品升级为芯片级产品。

作者在本课题的整个设计过程中,通过学习和交流发现不少问题尚未得到很好的解决。一方面由于作者才疏学浅,很多相关知识只是有个肤浅的了解;另一方面,毕业设计时间有限,作者来不及对某些具体细节作进一步探讨。比如本设计中在用MATLAB工具算出FIR滤波器的系数,得到的是浮点数,而FPGA系统芯片只支持定点数的运算,因此在把系数定标处理的过程中引进了误差;另外在模数转换中也引进了量化误差,这些误差作者在本设计中没有进行具体分析,只是一笔带过。总之,这些问题还有待进一步研究。

从全文的论述中可以看出,基于可编程逻辑器件来进行电子电路设计已成为一种趋势,在今后的发展中,会有越来越多的开发人员从事此项工作。基于 FPGA 进行滤波器的设计技术目前还处于不成熟的阶段。在本设计的过程中,虽然最终在实际电路系统上实现达到了较好的效果,但由于时间和条件的限制,难免存在缺点与不足之处,所以在今后的设计中仍有待改善和提高。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

考文献

[1]  褚振勇,翁木云. FPGA设计及应用,西安电子科技大学出版社,20021-100

[2]  徐志军,徐光辉. CPLD/FPGA的开发与应用,电子工业出版社,20021-40

[3]  宋万杰,罗丰,吴顺君. CPLD技术及应用,西安电子科技大学出版社,19991-50

[4]  丁玉美,高西全. 数字信号处理(第二版),西安电子科技大学出版社,2001

[5]  李芬华. 数字信号处理,河北大学出版社,200212

[6]  奥本海姆,谢弗. 离散时间信号处理,科学出版社,1981

[7]  王世一. 数字信号处理(修订版),北京理工大学出版社,2004

[8]  侯伯亨,顾新. VHDL硬件描述语言与数字逻辑电路设计(修订版),西安电子科技大学出版社,1999

[9]  潘松,黄继业. EDA技术实用教材,科学出版社,2000

[10] 楼顺天,李博菡. 基于MATLAB的系统分析与设计——信号处理,西安电子科技大学出版社,200020-80

[11] J.G.Prokis et al.:“Advanced Digital Signal Processing”, Macmillan Publishing Company, 1992

[12] Altera Corporation. Altera Digital Library, Version 2, 2001

[14] www.altera.com/literiture, DSP Builder documents & Quartus2 documents

[15] www.alldatasheet.com.cn, TLC5510 & TLC5602 documents

 

 

文章评论

共有条评论来说两句吧...

用户名:

验证码:

Top