matlab编程代做基于FPGA的滤波器设计.docx

上传人:b****6 文档编号:6230863 上传时间:2023-01-04 格式:DOCX 页数:18 大小:330.04KB
下载 相关 举报
matlab编程代做基于FPGA的滤波器设计.docx_第1页
第1页 / 共18页
matlab编程代做基于FPGA的滤波器设计.docx_第2页
第2页 / 共18页
matlab编程代做基于FPGA的滤波器设计.docx_第3页
第3页 / 共18页
matlab编程代做基于FPGA的滤波器设计.docx_第4页
第4页 / 共18页
matlab编程代做基于FPGA的滤波器设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

matlab编程代做基于FPGA的滤波器设计.docx

《matlab编程代做基于FPGA的滤波器设计.docx》由会员分享,可在线阅读,更多相关《matlab编程代做基于FPGA的滤波器设计.docx(18页珍藏版)》请在冰豆网上搜索。

matlab编程代做基于FPGA的滤波器设计.docx

matlab编程代做基于FPGA的滤波器设计

数字滤波器的设计

摘要

FPGA是近几年出现的新型可编程逻辑器件,它不仅具有很高的速度和可靠性,而且具有用户重复定义的逻辑功能,即具有可编程的特点。

它的出现不仅使数字电路系统的设计非常灵活,而且大大缩短了系统研制周期,缩小了数字电路系统的体积和所用芯片的种类。

 

DESIGNOFFIRFILTERS

Abstract

FPGAinthepastfewyearsanewtypeofprogrammablelogicdevice,Itnotonlyhashighspeedandreliable,Andrepeatwithuser-definedlogicfunction,Thatis,withprogrammablefeatures.Itnotonlymakestheemergenceofdigitalcircuitdesignisveryflexible,butalsogreatlyshortenthesystemdevelopmentcycle,reducingthesizeofthedigitalcircuitsystemandthetypeofchipused.

 

前言

在许多信息处理过程中,如对信号的过滤、检测、预测等,都要广泛地用到滤波器,数字滤波器是数字信号处理中使用最广泛的一种方法。

数字滤波器(digitalfilter)是由数字乘法器、加法器和延时单元组成的一种装置。

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

由于电子计算机技术和大规模集成电路的发展,数字滤波器可用计算机软件实现,也可用大规模集成数字硬件实时实现。

数字滤波器是一个离散时间系统。

数字滤波器在语言信号处理、图像信号处理、医学生物信号处理以及其他应用领域都得到了广泛应用。

数字滤波器有低通、高通、带通、带阻和全通等类型。

它可以是时不变的或时变的、因果的或非因果的、线性的或非线性的。

应用最广的是线性、时不变数字滤波器.

随着数字信号处理的发展,对于器件的要求也越来越高,传统技术如单片机,PLC等很难胜任数字信号处理,因此,FPGA的使用无疑是数字信号处理实现的最佳选择。

FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性,可以减少系统设计和维护的风险,降低产品成本,缩短设计周期。

FPGA有着规整的内部逻辑块阵列和丰富的连线资源,特别适合细粒度和高并行度结构特点的数字信号处理任务。

我们设计的FIR滤波器是基于窗函数的数字滤波器,首先应用MATLAB进行理论分析,根据所要求的带通频率和截止频率以及滤波器的阶数得到所需要的滤波器的系数,然后将得到的系数量化并利用FPGA实现FIR滤波器。

因此,我们只需要简单的改变频率指标,并相应的调整滤波器系数就能实现不同应用场合的FIR滤波器。

 

第一章.数字滤波器原理与选择

1.1数字滤波器简介

滤波器,是指对输入信号起到滤波作用的系统。

根据处理的信号不同,可分为模拟滤波器和数字滤波器两大类。

若滤波器的输入、输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,我们称这样的滤波器为数字滤波器(DigitalFilter)。

当用硬件实现一个数字滤波器时,所需的元件是延时器、乘法器和加法器。

当在通用计算机上用软件实现时,即是一段线性卷积的程序。

数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变(LinearTimeInvariant,LTI)离散系统。

它的基本工作原理是利用离散系统特性对系统输入信号进行加工、处理和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。

根据频率响应特性,数字滤波器可分为低通、高通、带通、带阻等类型,与模拟滤波器相比,除了具有数字信号处理的固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。

数字滤波器按其单位样值响应的性质可分为有限冲激响应滤波器(FiniteImpulseResponse,FIR)和无限冲激响应滤波器(InfiniteImpulseResponse,IIR)[11]。

1.2FIR与IIR数字滤波器

1.2.1有限冲击响应(FiniteImpulseResponse,FIR)滤波器

有限长冲击响应滤波器,即FIR滤波器,是指离散系统的单位冲击响应h(k)是一个有限长的序列,即系统的单位冲击响应只在给定的时间区间里有非零值。

此时,系统的传输函数是:

(3-1)

1.2.2无限冲击响应(InfiniteImpulseResponse,IIR)滤波器

无限冲击响应滤波器,即IIR滤波器,是指离散系统的单位冲击响应h(k)是一个无限长的时间序列。

这种滤波器滤波的实现结构与一般数字滤波器的结构相同。

系统的传输函数是:

(3-2)

1.3FIR与IIR数字滤波器的比较与选择

首先,从系统的幅频特性来看,IIR滤波器由于综合利用了系统的零极点,容易达到比较理想的设计效果;而FIR滤波器由于只有零点,效果较IIR滤波器差。

要达到与IIR滤波器相似的效果,往往要提高系统的阶数,这就会增加计算量,影响信号处理的速度。

所以在对滤波器幅频特性和处理速度有很高要求的场合,多使用IIR滤波器。

其次,从相位特性来看,用FIR滤波器可以得到线性相位数字滤波器,满足信号不失真传输的要求;而使用IIR滤波器则做不到这一点。

对于IIR滤波器而言,往往幅频特性越好,相位非线性就越严重。

所以,在对线性相位要求较高的场合,往往使用FIR滤波器。

再次,从系统稳定性来看,FIR滤波器由于没有极点,所以一定是稳定的;而IIR滤波器的稳定与否取决于其极点的位置。

即使IIR滤波器的极点都处于Z平面的内部,如果其中某个极点非常靠近Z平面的单位圆,则在实际使用中,有时会由于数据计算误差的存在而导致系统不稳定。

最后,从设计方法来看,IIR滤波器的设计参照连续时间系统的传输函数进行,可以充分利用模拟滤波器的设计结果,但是要求设计者有一定的模拟滤波器的设计知识,而且必须保证在模拟滤波器中能够找到合适的滤波器原型作为设计基础;而FIR滤波器设计结果完全是根据系统频率进行,不需要设计者有其他滤波器的知识,设计方法比较简单。

综上所述,本课题决定使用FIR数字滤波器。

因为本课题对心音信号的处理,对滤波器的相位特性有较高的要求,而对幅频特性则不是很敏感。

虽然选择FIR数字滤波器会带来相对较多的运算量,但由于是在计算机上利用MATLAB软件进行处理,不会涉及到硬件资源的问题,而所需要处理的数据量不是很大,所以结合自身水平,决定选用FIR数字滤波器。

第二章.基于MATLAB的FIR数字滤波器设计

2.1FIR数字滤波器设计原理

数字滤波器的设计,其实质就是对提出的设计要求给出相应的性能指标,再通过计算,使物理可实现的实际滤波器的频率响应特性,逼近给出的理论频率响应特性。

2.2基于MATLAB的FIR数字滤波器设计方法

利用MATLAB进行FIR滤波器的设计,方法主要有:

1.直接程序设计法

MATLAB信号处理工具箱中提供了基于滤波器设计方法的工具函数,编程中可根据设计要求直接调用相应函数,方便快捷。

2.利用SPTool设计法

SPTool(SignalProcessingTool)提供了一个便于完成信号处理任务的GUI环境。

利用它,可以从MATLAB工作空间或从文件直接导入设计好的信号的频谱;可以分析、比较和输出时域信号;可以设计、分析和输出滤波器;可以完成对信号的滤波;可以对输入输出信号进行各种谱分析并输出结果。

3.利用FDATool设计法

在MATLAB信号处理的图形用户界面中,不但SPTool工具为滤波器的分析和设计提供了一个交互式的设计环境,给用户带来了极大方便;而且,MATLAB还为用户提供了另一个更加综合、简便的图形用户界面工具—FDATool(FilterDesign&AnalysisTool)工具。

利用它可以方便地设计出满足各种性能指标的滤波器,并可以查看该滤波器的各种分析图形。

滤波器设计满意后,还可以把其系数直接导出为MATLAB变量、文本文件或C语言文件。

本课题采用直接程序设计法,采用窗设计法。

其基本设计思想是:

先给定所要求的理想滤波器频率响应

,然后由

导出与其相对应的单位冲击响应

,由于

是矩形频率特性,故

一定是无限长序列,是非因果的,而所要设计的FIR滤波器单位冲击响应

必然是有限长的,所以要用一有限长的

来逼近无限长的

,最有效的方法即是用窗函数(有限长)

来截断

具体设计步骤如下:

(1)给定所要求的理想的频率响应函数

(2)求其傅立叶反变换,即

=

(3)根据允许的过渡带宽及阻带最小衰减的要求,可选定窗函数

的形状及滤波器长度N,一般N要通过多次试探后才能确定;

(4)求得所设计的FIR滤波器的单位冲击响

=

·

,n=0,1,2,…,N-1

(5)计算出

=

检查是否满足设计要求,如不满足,则需重新设计。

2.3窗函数设计法的步骤

  窗函数设计法是一种通过截短和计权的方法使无限长非因果序列成为有限长脉冲响应序列的设计方法。

通常在设计滤波器之前,应该先根据具体的工程应用确定滤波器的技术指标。

用窗函数法设计FIR滤波器的步骤如下:

(1)根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1)。

窗函数类型可根据最小阻带衰减AS独立选择,因为窗口长度N对最小阻带衰减AS没有影响。

在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N。

设待求滤波器的过渡带宽为△ω,它与窗口长度N近似成反比。

窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正。

原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N。

在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。

(2)根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n)。

如果给出待求滤波器的频率响应为Hd(ejω),则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:

  

  

(3)计算滤波器的单位脉冲响应h(n)。

它是理想单位脉冲响应和窗函数的乘积,即h(n)=hd(n)·wd(n),在MATLAB中用点乘命令表示为h=hd·wd。

(4)验算技术指标是否满足要求。

为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。

  在实际工程中常用的窗函数有五种,即矩形窗、三角窗、汉宁窗、海明窗和凯泽窗。

2.4FIR数字滤波器的MATLAB实现

Fir滤波器有如下的特点:

线性相位;系统总是稳定;容易硬件实现;满足相同设计指标时需要较高的阶数(与IIR相比),因此就会带来较长的时间延迟,相位延迟和群迟延在滤波器通带内为常数。

我们设FIR滤波器系数向量

的长度为N,则当

偶对称的时候,滤波器对输入信号的延迟为(N-1)/2,当

为奇对称的时候,该滤波器对输入信号的延迟为(N-1)/2,和90度的相移。

在本文中,我们采用窗函数法来设计FIR滤波器,其基本原理如下,考虑截止频率为

,其对应的理想低通滤波器的冲激响应为:

是无限长SINC函数的抽样。

因此理想低通滤波器是非因果的,物理不可实现的,但是如果用一个窗函数来截断它,并保证其中心对称,就可以获得线性相位的FIR滤波器了。

2.4.1矩形窗FIR数字滤波器

首先我们使用矩形窗设计一个FIR线性相位低通数字滤波器。

假设

求出

并画出

曲线。

由矩形窗的冲激响应函数:

我们可以得到如下等式:

利用MATLAB我们可以编写响应的矩形窗函数代码(具体代码见附录)。

其时域和频域的波形如下(在具体实现过程中,为了增加效果,我们采用的参数为:

阶数:

64;a:

0.1;Ts:

1/1000):

图4-1

2.4.2汉宁窗FIR数字滤波器

为了体现低通,带通,高通,带阻滤波器的不同性质,在这里我们利用汉宁窗设计一个线性相位高通滤波器,但是MATLAB仍给出低通滤波器的时域和频域波形图。

汉宁窗的基本表达式为:

现假设一个高通滤波器的冲激响应函数为:

那么我们可以得到:

利用MATLAB可以响应的低通滤波器的时域和频率的波形图:

图4-2

三部分矩形窗函数频谱相加,使旁瓣互相抵消,能量集中在主瓣,旁瓣大小减小,主瓣宽度增加了1倍。

2.4.3汉明窗FIR数字滤波器

为了体现低通,带通,高通,带阻滤波器的不同性质,这里我们利用汉明窗设计一个线性相位带通滤波器,但是MATLAB仍给出低通滤波器的时域和频域波形图。

汉明窗的基本表达式为:

现假设一个带通滤波器的冲激响应函数为:

采用海明窗设计时:

利用MATLAB可以响应的低通滤波器的时域和频率的波形图:

图4-3

汉明窗是对汉宁窗的改进,在主瓣宽度相同的情况下,旁瓣进一步减小,可使99.96%的能量集中在主瓣内。

2.4.4布拉克曼窗FIR数字滤波器

为了体现低通,带通,高通,带阻滤波器的不同性质,这里我们利用布拉克曼窗设计一个线性相位的理想带通滤波器,但是MATLAB仍给出低通滤波器的时域和频域波形图。

布拉克曼窗的基本表达式为:

现假设一个带通滤波器的冲激响应函数为:

利用MATLAB可以响应的低通滤波器的时域和频率的波形图:

图4-4

通过比较,我们可以发现布拉克曼窗增加了一个二次谐波余弦分量,可进一步降低旁瓣,但主瓣宽度进一步增加,增加N可减少过渡带。

2.5不同阶数N的窗函数FIR数字滤波器

为了选取效果最佳的窗函数滤波器,我们这里统一设定a=0.5,Ts=1/1000,通过改变N理对比滤波器的性能,我们分别通过比较N=16,32,128来比较。

·矩形窗

图4-8

由图4-8可以得知,虽然矩形窗函数FIR滤波器实现起来比较简单,但是随着N阶数的不断增加,其窗函数的旁瓣并没有明显的变化,能量也没有完全集中在主瓣上,因此基于矩形窗函数的FIR滤波器只能应用于较简单的场合,而且随着阶数的增加,其系统性能并不能得到很好的改善,因此,在实际信号处理中,不使用矩形窗函数的FIR滤波器。

·汉宁窗

图4-9

由图4-9可以得知,汉宁窗函数的性能相对于矩形窗函数有了明显的提升,但是当阶数较低的时候,其能力也并不完全集中在主瓣,当阶数较高的情况下,才能明显感觉到。

但是当阶数较高的情况下,对设备成本有较大的影响。

 

·汉明窗

图4-10

汉明窗是在汉宁窗的基础上改进的窗函数,由图可以看见,其能量基本集中在主瓣中,而且当阶数较低时,能量也基本集中在主瓣上,性能比汉宁窗和矩形窗更好。

·布拉克曼窗

图4-11

布拉克曼窗函数其旁瓣衰减也是随着阶数的增加而增加,但是布拉克曼窗函数在硬件上实现较前三种窗函数而言,更加复杂。

因此,通过比较,我们采用汉明窗函数作为FIR滤波器的窗函数。

 

第三章FPGA简介

FPGA是近几年出现的新型可编程逻辑器件,它不仅具有很高的速度和可靠性,而且具有用户重复定义的逻辑功能,即具有可编程的特点。

它的出现不仅使数字电路系统的设计非常灵活,而且大大缩短了系统研制周期,缩小了数字电路系统的体积和所用芯片的种类。

当今社会是数字化的社会,是数字集成电路广泛应用的社会。

数字集成电路本身在不断地进行更新换代。

它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。

但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。

系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。

早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可删除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。

由于结构的限制,它们只能完成简单的数字逻辑功能。

其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。

典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以,PLD能以乘积、和的形式完成大量的组合逻辑功能。

这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。

PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。

PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。

还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。

PLA器件既有现场可编程的,也有掩膜可编程的。

 

20世纪80年代中期。

Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD(ComplexProgrammab1eLogicDvice)和与标准门阵列类似的FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。

这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。

与门阵列等其它ASIC(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。

几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

经过了十几年的发展,许多公司都开发出了多种可编程逻辑器件。

比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。

通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。

全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。

可以讲Altera和Xilinx共同决定了PLD技术的发展方向。

当然还有许多其它类型器件,如:

Lattice,Vantis,Actel,Quicklogic,Lucent等。

Altera公司生产的FLEX10K系列的FPGA,具有规模覆盖范围广、布线资源丰富、时间可预测性好的优点,在数字通信系统设计中得到了广泛的应用。

由于在信道编码中,没有过多存储器的要求,它只是需要很多的D触发器和一些常用的门电路,而FLEX10K芯片有一定的片内EAB资源,另外实现信道编码的时序控制逻辑不太复杂,大概需要2万门左右的资源就够了,再加上系统其它功能块也不过几万门。

考虑到方案的性价比以及将来的功能的增加,本方案的FPGA选用Cyclone芯片,实现了系统的单片设计,从而大大减小电路的复杂度和体积。

此外Altera公司的Cyclone系列的FPGA在通信行业具有广泛的应用,这是一款低成本的FPGA产品。

MaxPlusII是ALTERA公司较早的一款软件,它的界面非常的简单,是初学者比较容易接受的一款软件,但是Altera公司已经停止了对其的升级,所以MaxPlusII所支持的器件比较少,而且对于一些大型项目开发就不太适用了。

QuartusII是ALTERA公司的新一代开发软件,它拥有两种界面,一种是QuartusII的界面,另一种是用有QuartusII全部功能的MaxPlusII界面,从而使原有的MaxplusII的用户更快的适应新的开发环境。

目前QuartusII最高版本好似QuartusII7.2。

相对于MaxPlusII,QuartusII支持更多的器件,而且也支持Altera最新的一些器件如Straix、StraixGX系列。

在本课题中,我们采用QuartusII开发软件,在功能上比MAXplusII更加强大。

 

 

第四章基于FPGA的FIR滤波器设计

通过前面几章的分析,我们已经分析了FIR滤波器的基本结构,现在就基本结构用FPGA来实现。

FIR滤波器的基本结构包括乘法器和加法器。

4.1加法器设计

在将两个多位二进制数相加时,除了最低位以外,每一位都应该考虑来自低位的进位,即将两个对应位的加数和来自低位的进位3个数相加。

这种运算称为全加,所用的电路称为全加器。

多位加法器的构成有两种方式:

并行进位和串行进位。

并行进位加法器设有进位产生逻辑,预算速度较快;串行进位方式是将全加器级联构成多位加法器。

并行进位加法器通常比串行级联加法器占用更多的资源。

随着为数的增加,相同位数的并行加法器与串行加法器的资源占用差距也越来越大,因此,在工程中使用加法器时,要在速度和容量之间寻找平衡点。

ARCHITECTUREaOFADDIS

BEGIN

PROCESS(clk,clear)

BEGIN

IFclear='0'THEN

Dout<="0000000000000000";

ELSIFclear='1'THEN

IF(clk'EVENTANDclk='1')THEN

Dout<=D0+D1+D2+D3+D4+D5+D6+D7+D8;

ENDIF;

ENDIF;

ENDPROCESS;

ENDa;

4.2乘法器设计

从资源和速度考虑,常系数乘法运算可用移位相加来实现。

将常系数分解成几个2的幂的和形式。

实现输入带符号数据与固定数据两个二进制数的乘法运算。

当到达时钟上升沿时,将两数输入,运算,输出结果。

我们利用提供的IP核来设计乘法器。

具体设计步骤如下:

图4-1乘法IP核参数设置界面一

图4-2乘法IP核参数设置界面二

图4-3乘法IP核参数设置界面三

图4-4乘法IP核参数设置界面四

通过如上的设计,我实现了乘法器的IP核设计,在FPGA的顶层文件中,我们只要例化这个IP核就可以了。

4.3FIR滤波器设计

通过上面的分析,我们将我们可以得到如下两种基本结构的FIR滤波器结构,通过每个模块的例化,在原理图上搭建FIR滤波器。

其结构如下:

图5-2结构一FIR滤波器

图5-3结构二FIR滤波器

对以上模型进行功能仿真,我们可以得到基于FPGA的FIR滤波器的波形图,具体波形如下:

图5-4滤波器滤波结果

我们通过仿真,可以看到输入的方波的边带已经变得非常的平滑,从而验证了FIR滤波器的基本性能。

 

参考文献

[1]卓兴旺等.基于VerilogHDL的数字系统用用.国防工业出版社,2007.

[2]姜宇柏等.通信收发信机的Verilog实现与仿真.机械工业出版社,2006.

[3]段吉海等.基于CPLD/FPGA的数字通信系统建模与设计.电子工业出版社,2006.

[4]刘昌华.数字逻辑ED

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1