毕业设计(论文)基于FPGA的滤波器的设计.doc

上传人:仙人指路1688 文档编号:3985587 上传时间:2023-03-30 格式:DOC 页数:30 大小:384.50KB
返回 下载 相关 举报
毕业设计(论文)基于FPGA的滤波器的设计.doc_第1页
第1页 / 共30页
毕业设计(论文)基于FPGA的滤波器的设计.doc_第2页
第2页 / 共30页
毕业设计(论文)基于FPGA的滤波器的设计.doc_第3页
第3页 / 共30页
毕业设计(论文)基于FPGA的滤波器的设计.doc_第4页
第4页 / 共30页
毕业设计(论文)基于FPGA的滤波器的设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《毕业设计(论文)基于FPGA的滤波器的设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于FPGA的滤波器的设计.doc(30页珍藏版)》请在三一办公上搜索。

1、摘 要自适应滤波器是统计信号处理的一个重要组成部分。在现代滤波处理技术中,自适应滤波器的处理效果尤为突出。在众多滤波器中,特别是在一些对信号处理的实时性要求比较高,体积功耗有严格限制的场合,使用FPGA硬件实现的数字滤波器更为广泛。本论文从自适应滤波器研究的重要意义入手,介绍了线性自适应滤波器的算法,对几种基于最小均方误差准则或最小平方误差准则的自适应滤波器算法进行研究,就滤波器的基本原理及设计方法做了简单的介绍,最终设计基于FPGA的LMS算法设计复数自适应滤波器,对设计方法进行叙述,并以VHDL语言编写程序进行仿真测试。关键词:自适应滤波器;FPGA;自适应算法LMS;有限冲激响应滤波器

2、FPGA-based design of adaptive filterStudent:TAN xx Teacher:CHEN xxAbstract:Adaptive filter is a statistical signal processing as an important component. Processing technology in the modern filter, the adaptive filter, particularly in the treatment effect. Among the filters, especially in some of the

3、 real-time signal processing requirements of higher power, there are strict restrictions on the size of the occasion, the use of FPGA hardware to achieve a wider range of digital filters. In this paper, adaptive filter from the importance of research to start to introduce the linear adaptive filter

4、algorithm, based on several criteria MMSE or least square error criteria for the study of adaptive filter algorithm, it filters The basic principle and design method of a brief introduction, the final design of FPGA-based design of complex LMS adaptive filter algorithm, the design methods described,

5、 and VHDL languages in maxplus simulation test platform.Keywords: adaptive filter;FPGA;LMS adaptive algorithm;finite impulse response filter目 录摘 要I1 绪论11.1 引 言12 自适应算法研究及分析12.1 自适应滤波基本概念12.2 变步长自适应滤波算法22.3 仿射投影算法32.4 RLS自适应滤波算法32.5 LMS算法及其推广32.6小结63 滤波器原理介绍73.1 自适应滤波器原理73.2 本文滤波器的工作原理84 基于FPGA的自适应滤波

6、器的设计114.1 基本设计方法114.2 设计流程124.2.1 设计准备134.2.2 设计输入134.2.3 功能仿真144.2.4 设计处理144.2.5 时序仿真144.2.6 器件编程测试144.3 自适应滤波器设计154.3.1 自适应滤波器结构164.3.2 复数滤波器设计与实现184.3.3 基本设计准备194.3.4 复数自适应滤波器设计防真224.4小结245 结论25致 谢26参考文献271 绪论1.1 引 言随着信号处理技术的不断发展,对信号处理速度的要求也不断提高。由于受到目前技术水平的限制,特别是集成电路技术发展的限制,许多理论上已经很成熟的信号处理算法很难得以实

7、用,这里面一个最重要的原因是硬件速度问题。要求处理的信号形式越来越复杂,使得现代信号处理的方法大都以大数据量、高复杂度为其主要特点。在这种情况下,寻找有效的实时信号处理方法是非常有必要和迫切的。而随着数字信号处理技术的发展,可编程门阵列FPGA的应用迅速的普及起来,FPGA具有高逻辑密度,高可靠性,用户可编程以及可并行运算等特点,可缩短开发周期,降低成本,很好的同时满足通用性和实时性要求。自1985年Xilinx公司推出的第一块现场可编程逻辑器件至今,以FPGA为代表的数位系统现场集成获得了惊人的发展,从最初1200个可编程逻辑门电路发展到到90年代的25万个逻辑门电路。发展最早两大著名FPG

8、A厂商即是以FPGA器件系列为代表的Xilinx公司和以CPLD器件系列为代表的Altera公司。随着集成电路技术和数字信号处理技术的日新月异,FPGA技术以现场可编程、现场修改、现场验证、现场实现的应用优势,已经跃升为电子电路应用领域广受欢迎的实用技术。2 自适应算法研究及分析2.1 自适应滤波基本概念自适应滤波器一般可分为两个部分,即滤波部分和自适应更新部分:(l)其中滤波部分根据某结构常用的可有FIR和IIR两种滤波形式,IIR结构的自适应滤波器在运算的阶数上要比FIR结构的滤波器的阶数要少,因而比相同性能的FIR池波器所需要本文最后讨论的自适应算法应用是基于FIR滤波自适应信号处理算法

9、一般用来获得有的运算里要少,但由于IIR结构的滤波器在有限精度的条件下容易产生振荡,具有不稳定的特性,而且通过增加阶数,AR模型能够对ARMA棋型进行近似的模拟,所以,关可调参数。使这些参数为变盈的目标函数在一定的约束条件下达到最优。最常用的方法是基于估计误差的平方值。然而在不同情况下它具有不尽相通的定义,从其准则上进行区分,自适应处理方法可分为两类:(a)随机统计法,在随机统计法中,准则包含了输入数据的统计特性,算法的推导以估计误差的平方的集平均或时平均(即均方误差,MSE)为基础,经典的算法是LMS算法。(b)精确法,在精确法中,准则包含了已经得到的真实确切的数据。满足此类准则所用的技术常

10、称为递归最小平方(RLS)技术。本章中将对其中的一些算法进行综述。2.2 变步长自适应滤波算法所谓自适应滤波器,就是利用前一时刻己获得的滤波器参数等结果,自动调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。由Widrow和HOFF提出的最小均方误差(LMS)算法,因其具有计算量小、易于实现等优点而在实践中被广泛采用。根据自适应滤波器的原理,LMS算法迭代公式为: y(n)=xT(n)w(n),e(n)=d(n)-y(n),W(n+1)=w(n)+2e(n)X(n)其中X(n)表示n时刻的输入信号矢量;y(n)为自适应滤波器的输出信号;d(n)定义了期望信

11、号;e(n)表示n时刻的误差;W(n)表示n时刻的自适应滤波器的权值; 是控制稳定性和收敛速度的参量,称之为步长。LMS算法收敛的条件为:01/ max,max是输入信号自相关矩阵的最大特征值。由于主输入端不可避免地存在干扰噪声,自适应滤波算法将产生参数失调噪声,减少步长因子可减少自适应滤波算法的稳态失调,提高算法的收敛精度,然而步长因子的减少将降低算法的收敛速度和跟踪速度。因此,固定步长的自适应滤波算法在收敛速度、时变系统跟踪速度与收敛精度方面对算法调整步长的要求相互矛盾.为了克服这种矛盾,人们提出多种变步长自适应算法。本文采用VSS-LMS的算法如下:y(n)=xT(n)W(n),e(n)

12、=d(n)-y(n), w(n+l)=W(n)+2(n)e(n)x(n) (n+l)=a(n)+ye2(n) 当(n+l)Umax则(n+l)=Umax Umax一般选择接近标准LMS不稳定的步长点,以提供最大的可能的收敛速度;在稳定状况下,根据所预期的误调水平和所要求的算法的跟踪能力作出一个合适的选择。其中,参数参数0a0。a:为步长的遗传因子,主要决定算法的收敛时的步长值,y主要控制算法的跟踪速度。在实际中a , y取值范围分别为(0.95,0.99)和(0,0.001)。2.3 仿射投影算法在有些情况下,可以重复利用过去的数据信号,以便提高自适应滤波算法的收敛速度。数据重用算法的代价就是

13、增加了算法的失调,并且和通常情况下一样,通过引入步长来实现最终的失调和收敛速度的之间的平衡,但是我们也可以通过仿射投影算法来达到目的。仿射投影算法最早由K.Ozeki和T.Umeda提出,它是归一化最小均方误差(NLMS)算法的推广。仿射投影算法的性能介于LMS算法和RLS算法之间,其计算复杂度比RLs算法低。归一化最小均方误差(NLMS)算法是LMS算法的一种改进算法,它可以看作是一种变步长因子的LMS算法,其收敛性能对输入信号的能量变化不敏感。而仿射投影算法的计算复杂度比NLMS算法高很多,提出的快速仿射投影算法大大降低了仿射投影算法的计算复杂度。在快速仿射投影算法中,采用滑动窗快速横向滤

14、波器算法计算预滤波向量,避免了矩阵求逆运算。快速仿射投影算法的计算复杂度虽然降低了,但其内嵌的滑动窗快速横向滤波器算法的实现相对复杂,并且存在数值稳定性问题。为解决快速仿射投影算法的数值稳定性问题,Douglas等提出了正交变换的快速仿射投影算法的近似算法,避免了采用复杂的滑动窗快速横向滤波器算法,改善了快速仿射投影算法在有限精度运算时的数值稳定性。2.4 RLS自适应滤波算法RLS算法采用了在每个时刻对所有己输入信号重估的平方误差之和最小这样的准则,它是对输入信号的自相关矩阵Rxx(n)逆进行递推估计更新,收敛速度快,其收敛性能与输入信号的频谱特性无关。但是,RLS算法的计算复杂度很高,所需

15、的存储量极大,不利于实时实现;倘若被估计的自相关矩阵Rxx(n)的逆失去了正定特性,还将引起算法的发散。2.5 LMS算法及其推广LMS算法最早由Widrow和Hoff提出,是最简单也是应用最广泛的一种自适应算法。本章将介绍LMS算法的一些重要特性,以及在实际系统设计中所采用的LMS算法推广形式。LMS算法介绍代价函数和误差性能曲面自适应算法的工作是依据某种误差最小准则通过迭代来调整权重矢量。这里说的误差是指滤波输出和期望信号在某种意义下的距离。定义估计误差e(n)为滤波器输出和期望信号的差值,即e(n)=d(n)-y(n)=d(n)- XT(n)W(n)则最典型的情况就是依据均方误差(Mea

16、n Square Error,MSE)最小准则将权矢量的代价函数定义为(n )= E e2(n)其中E.表示取期望。将相关式代入。展开代价函数的表达式(n )= E |d(n)- XT(n)W(n)|2=E d2(n)+WT (n)RW(n)-2PTW(n)其中R表示输入信号的自相关矩阵R=E X (n )X T(n)P表示输入信号和期望信号的互相关向量P =E X (n )d (n)W (n)表示权矢量,d (n)表示期望信号。LMS算法原理和性能分析LMS算法使用随机梯度下降的方法实现代价函数最小化,具体地说,每次迭代时权矢量沿着误差性能曲面的梯度估值的负方向按一定比例对步长进行更新。由式

17、可得代价函数的梯度为(n )= (n) = -2P+2RW(n) W(n)式中用到了自相关矩阵R和互相关向量P,而实际上这两个参量只有对输入信号和期望响应的统计特性进行估计才能获得。为了减小计算复杂度,用瞬时均方误差的梯度e 2(n)作为均方误差梯度的估值e2(n )= e2(n) = 2e(n) e(n) = -2e(n)x(n) W(n) W(n)由于E e2(n )= (n),权矢量可以用一个简单的迭代表达式来更新W(n+1)= W(n)-(/2)e2(n )= W(n)+e(n) x(n)其中代表迭代步长。这就是LMS算法,参数决定了算法的收敛速度以及稳态误差。一个较大的可以产生很快的

18、收敛速度,但在收敛到Wopt附近后将在一个较大范围内抖动而无法进一步收敛,即稳态误差较大;选择较小的步长可以获得较小的稳态误差,但同时收敛速度也较慢。事实上,步长的取值并不是任意的,其大小必须处于某一特定范围,LMS算法才能收敛,即当且仅当步长满足0 1/max时LimW(n)=Wopt上式为LMS算法的收敛条件。以下是LMS算法的稳态特性分析:Widrow引入失调系数来描述算法的稳态均方误差对维纳误差的相对误差,其中min=E2| eopt (n)|2为维纳误差。对于LMS算法来说,其失调系数可以表示为如下两种形式 =Tr(R)= i=MPin式中的Pin表示输入信号功率。也就是说,滤波器阶

19、数越高,步长因子和信号功率越大,就使得失调系数越大。LMS滤波算法的一个完整描述如下所示:W(n+1)= W(n)+ e(n)U(n)e(n)=d(n)-y(n)y(n)=WT(n)U(n)最小均方误差(LMS)算法是最简单、应用最广泛的自适应算法之一。LMS算法通过自适应调节w(n),使得残余回波或平方误差的期望值达到最小。事实上,LMs算法是依据最陡梯度法来更新滤波器系数w(n)的,为确保收敛,收敛因子应满足o2/max、(max、是Ex(n)*XT(n)的最大特征值)。由于LMS算法易于实现,同时,算法对有限寄存器长度造成的实现误差不敏感,因此LMS算法对于实际应用来说具有相当的吸引力。

20、然而LMS算法的收敛速率依赖于Ex(n)* XT(n)特征值的发散程度。在实际应用中,输入信号往往是语音,而语音的特征值分布相对分散,因此LMS的收敛速度较慢,于是又出现了很多改进算法,比如滑动窗LMS算法,时域去相关LMS算法(DLMS),NLMS算法,符号误差算法,变步长算法等等。这些算法比基本的LMS算法在精度和收敛速度上有明显的改进,计算量和基本LMS算法相当。2.6小结本章主要对自适应算法做了一些介绍以及性能分析。着重分析了常用的LMS算法和变步长滤波算法,在自适应算法中,LMS算法较为突出,通过介绍分析,为后文滤波器设计提供一定的理论基础,3 滤波器原理介绍3.1 自适应滤波器原理

21、滤波器是电子设备的一个常用的基本部件,人们对其已经进行了广泛的研究。滤波器研究的一个基本问题就是:如何设计和建立最佳或最优的滤波器。所谓最佳滤波器是指能够根据某一最佳准则进行设计的滤波器。20世纪40年代,维纳奠定了关于最佳滤波器研究的基础。假定线性滤波器的输入为有用信号和噪声信号之和,两者均为广义平稳过程且已知它们的二阶统计特性,根据最小均方误差准则,得了最佳线性滤波器的参数波器获得了极其广泛的应用。这种滤波器被称为维纳滤波器。维纳滤波器在维纳研究的基础上,人们还研究了根据最大输出信噪比准则、统计检测准则以及其他最佳准则求得的最佳线性滤波器。但人们发现,在一定条件下,这些最佳滤波器与维纳滤波

22、器是等价的。因而,讨论最优线性滤波器时,一般均以维纳滤波器作为参考。要实现维纳滤波,就要求:(l)输入信号是广义平稳的;2)输入信号的统计特征是已知的。根据其他最佳准则的滤波器亦有同样要求。然而,由于输入过程取决于外界的信号、干扰环境,这种统计特性常常是未知的、变化的,因而不能满足上述两个要求。在这种情况下,促使人们研究自适应滤波器。滤波器研究的一个基本问题是:如何建立最佳或最优的滤波器。根据最小均方误差准则,20世纪40年代维纳求得了最佳线性滤波器的参数,这种滤波器称为维纳滤波器。然而,只有对信号和噪声的统计特性先验已知的情况下,维纳滤波器才能获得最优滤波。遗憾的是在实际应用中,常常无法得到

23、这些统计特性的先验知识;或者,统计特性是随时间变化的。因此用维纳滤波器实现不了最优滤波。在这种情况下,自适应滤波能够提供卓越的滤波性能。所谓自适应滤波器,就是利用前一时刻己获得的滤波器参数的结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器具有“自我调节”和“跟踪”能力。自适应滤波器可以分为线性自适应滤波器和非线性自适应滤波器。非线性自适应滤波器包括Vofterra滤波器和基于神经网络的自适应滤波器。非线性自适应滤波器具有更强的信号处理能力。但是,由于非线性自适应滤波器的计算较复杂,实际用得最多的仍然是线性自适应滤波器如图3.1所示

24、。未知系统 自适应滤波v(n)y(n)d(n)x(n)e(n)图3.1 自适应滤波器原理图w(n)表示自适应滤波器在时刻n的权矢量,用X(n)=x(n)x(n+l)x(n-N+l)T表示n时刻输入信号矢量,W(n)=w0(n) w1 (n)wN-1 (n)表示n时刻N阶自适应滤波器的权系数,d(n)是期望信号,e(n)是误差信号,v(n)是主端输入干扰信号。根据自适应滤波算法优化准则J(n)=n-1 |e(i)|2的不同,自适应滤波算法可以分为两类最基本的算法:最小均方误差(LMS)算法和递推最小二乘(RLS)算法。基于最小均方误差准则,LMS算法使滤波器的输出信号与期望输出信号之间的均方误差

25、Ee2(n)最小。基于最小二乘准则,RLS算法决定自适应滤波器的权系数向量w(n)使估计误差的加权平方和最小。其中为遗忘因子,且01.由此两准则衍生出许多不同的自适应滤波算法。自适应滤波算法广泛应用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域中。3.2 本文滤波器的工作原理数据选择器C1SELX(n)寄存器A2移位寄存器A1数据选择器C1乘法器D1累加器E1寄存器G1减法器F寄存器G2乘法器D2移位寄存器B数据选择器C1CLOCKstartClk1D(n)Clk2CS2CLOCK2图3.2 自适应滤波器电路结构图如图3.2,移位寄存器A1和寄存器A

26、2用于存放输入数据x(n),移位寄存器B中存放的是权系数。当采样的输入信号x(n)准备好以后,应发出一个准备好的信号READY给滤波电路的控制器,它可以开始滤波了。下面将介绍滤波器从READY信号有效到滤波完毕这一过程中控制信号的值以及各寄存器的状态。(1)READY上升沿出现到T1状态来临之前。这个时间段,外部采样好的数据x(n)还没有被送入到移位寄存器A1中,因此A1中存放的数据由左至右依次为x(n-1)、x(n-2)、x(n-3)、x(n-4)、x(n-5)、x(n-6)、x(n-7)和x(n-8);寄存器A2中存放的数据是x(n-9);移位寄存器B中存放的是w(n,0)、w(n,1)、

27、w(n,2)、w(n,3)、w(n,4)、w(n,5)、w(n,6)和w(n,7);寄存器G1中存放的是y(n-1);G2中存放的是e(n-1)。移位寄存器A1与寄存器A2的片选信号CS1从高电平变为低电平(低电平有效);数据选择器C1的控制信号SEL维持低电平,C1选择的是外部送进来的采样信号x(n);累加器E1的清零信号在T1上升沿到来之前把E1清零;移位寄存器B的片选信号CS2与累加器E1的片选信号CS3此时都为无效。这样,一旦T1到来,外部送来的采样信号x(n)被送进移位寄存器A1的最左端,与此同时,A1中的数据均自左向右移一位,x(n-8)被这个上升沿送入寄存器A2。滤波器中的其他寄

28、存器此时都不发生动作。(2)T1状态。这期间各寄存器的状态不难由T1的上升沿动作推测出来,移位寄存器A1中存放数据由左至右依次为x(n)、x(n-1)、x(n-2)、x(n-3)、x(n-4)、x(n-5)、x(n-6)与x(n-7);寄存器A2中存放的数据是x(n-8);移位寄存器B中存放的是w(n,0)、w(n,1)、w(n,2)、w(n,3)、w(n,4)、w(n,5)、w(n,6)和w(n,7);寄存器G1中存放的是y(n-1);G2中存放的是e(n-1)。进入T1状态以后,A1与A2的片选信号CS1继续有效;数据选择器C1的控制信号SEL变为高电平,C1选择的是A1最右端送过来的数据

29、x(n-7);移位寄存器B的片选信号CS2与累加器E1的片选信号CS3变为有效;累加器的清零信号CLR变为高电平,乘法器D1完成乘法运算x(n-7)w(n,7),累加器完成加法运算,等到T2上升沿将加法结果送入累加器中的寄存器。同时由乘法器D2、数据选择器C2以及加法器E2对权系数w(n,7)进行更新。T1状态结束时,加法器E2输出的数据是w(n,7)+2x(n-8)e(n-1),T2上升沿将其送入移位寄存器B,完成w(n,7)的更新。(3)T2、T8状态。这七个状态滤波器的运行状况与T1状态完全一致,不同的是个寄存器存放的数据。滤波器的运算情况这里不在复述。(4)T9状态。在一个运算周期的前

30、8个时钟内,y(n)已经计算完毕,w(n,0)w(n,7)也被更新完毕,T9的上升沿将累加器内部的加法器计算结果y(n)送入其内部的寄存器,同时将更新后的w(n,0)送入B,权系数至此完全被更新。此后寄存器G的时钟信号CLK1将y(n)送入G,寄存器G2的时钟信号CLK2将减法器F计算的误差e(n)送入G2。T4状态还必须调整控制信号,为下个运算做准备。A1与A2的片选信号CS1,B的片选信号CS2,累加器的片选信号CS3都变为无效;数据选择器C1的控制信号SEL变为低电平,C1再次选择外部送进来的采样信号。累加器E1的清零信号CLR变为低电平。此后,滤波器进入等待状态,知道下一个READY信

31、号的上升沿到来才使它重新启动工作。4基于FPGA的自适应滤波器的设计现场可编程门阵列(FPGA,Field Programmable Gate Array)的出现是超大规模集成电路(VLSI)技术和计算机辅助设计(CAD)技术发展的结果。FPGA器件集成度高、体积小、具有通过用户编程实现专门应用的功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直至达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金的投入。更吸引人的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。F

32、PGA器件成为研制开发的理想器件,特别适用于产品的样机开发和小批量的生产,因此有人也把FPGA称为可编程的ASIC。如今,FPGA器件广泛应用于通信、自动控制、信息处理等诸多领域,越来越多的电子设计人员在使用FPGA,熟练掌握FPGA设计技术已经是对电子设计工程师的基本要求。4.1 基本设计方法传统的系统硬件电路设计方法在EDA出现以前,人们采用传统的硬件电路设计方法来设计系统。传统的硬件电路采用自下而上(Bottom Up)的设计方法。其主要步骤是:根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图:然后根据技术规格书和系统控制流图,对系统的功能进行分化,合理地划分功能模块,并画出

33、系统功能框图;接着就是进行各功能的细化和电路设计;各功能模块电路设计调试完毕以后,将各功能模块的硬件电路连接起来,再进行系统的调试;最后完成整个系统的硬件电路设计。从上述过程可以看到,系统硬件的设计是从选择具体逻辑元器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。上述过程从最底层设计开始,到最高层设计完毕,故将这种设计方法称为“自下而上”的设计方法。传统的自下而上的硬件电路设计方法主要特征如下:1)采用通用的逻辑元器件;2)在系统硬件设计的后期进行仿真和调试;3)主要设计文件是电原理图;2.新兴的EDA硬件电路设计方法

34、随着大规模专用集成电路的开发和研制,为了提高开发的效率和增加已有开发成果的可继承性,以及缩短开发时间,各种新兴的EDA工具开始出现,特别是硬件描述语言HDL(Hardware Description Language)的出现,使得传统的硬件电路设计方法发生了巨大变革,新兴的EDA设计方法采用了自上而下(TopDown)的设计方法。所谓自上而下的设计方法,就是从系统要求出发,自上而下的逐步将设计内容细化,最后完成系统的整体设计。各公司的EDA工具基本上都支持两种标准的HDL,分别是VDHL和Verilog HDL。利用HDL语言对系统硬件电路的自上而下设计一般分为三个层次,如图4.1所示:规格设

35、计行为级描述行为级防真RLT级描述输出门级网表门级防真,定时检查逻辑综合优化RLT级防真图4.1 自上而下设计系统硬件的过程图第一层次为行为描述,它是对整个系统的数学模型的描述。第二层次是寄存器传输描述RTL(又称数据流描述)。第三层次是逻辑综合。EDA自上而下的设计方法具有以下特点:1)电路设计更趋合理;2)采用系统早期仿真,从而可以在系统设计早期发现设计中存在的问题, 这样就可以大大缩短系统的设计周期,降低费用;3)降低了硬件电路设计难度,采用HDL语言,可免除编写逻辑表达式或真值表的过程,令设计难度大幅度下降,从而也缩短了设计周期;4)主要设计文件是用HDL语言编写的源程序。4.2 设计

36、流程可编程逻辑器件的设计是利用EDA开发软件和编程工具对器件开发的过程。高密度复杂可编程逻辑器件的设计流程如下图所示。它包括设计准备、设计输入、功能仿真、设计处理、时序仿真和器件编程及测试等七个步骤。4.2.1 设计准备在系统设计之前,首先要进行方案论证、系统设计和器件选择等准备工作。一般采用自上而下的设计方法,也可采用传统的自下而上的设计方法。如图4.3所示:设计准备设计输入(原理图,硬件描述语言,波形图)设计处理(优化,综合适配,分割布局,布线)器件编程器件测试时序防真功能防真图4.2方案图4.2.2 设计输入设计输入将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程

37、称为设计输入。设计输入通常有以下集中形式:1)原理图输入方式2)硬件描述语言输入方式3)波形输入方式4.2.3 功能仿真功能仿真也叫做前仿真。用户所设计的电路必须在编译之前进行逻辑功能验证,此时的仿真没有延时信息,对于初步的功能检测非常方便。仿真中如发现错误,则返回设计输入中修改逻辑设计。4.2.4 设计处理设计处理是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合优化和适配,最后产生编程用的编程文件。主要有:1)语法检查和设计规则检查2)逻辑优化和综合3)适配和分割4)布局和布线4.2.5 时序仿真时序仿真又称后仿真或延时仿真。由于不同器件的内部延时不一样,

38、不同的布局布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等是非常有必要的。4.2.6 器件编程测试时序仿真完成后,软件就可产生供器件编程使用的数据文件。自适应滤波器的FPGA实现根据图中LMS自适应FIR滤波器的计算机过程及实现的功能,系统主要有7大部分组成 ,控制模块、输入输出接口模块、滤波模块、权值更新模块、步长调整模块、误差计算模块和数据存储模块,其功能图如图4.4所示:控制模块输入模块权值更新模块误差计算模块FIR滤波输出模块步长调整模块存储模块图4.3方框图(1)控制模块主要初始化各模块 产生控制

39、信号 控制各模块特定的功能。如负责数据存储地址分配、数据输入输出控制功能,根据外部输入的帧时钟生成数据存储模块读取数据的读写地址等(2)输入输出接口模块主要实现输入输出接口协议,使数据并行输入串行输出。(3)滤波模块实现FIR算法和抽头系数调整 FIR算法得到 Y(n),其主要实现一个卷积运算,即Y(n)=W(n)X(n);抽头系数调整算法利用己修改的单个抽头系数的值来更新其它存储在LUT中的抽头系数的组合和。(4)误差计算模块主要根据当前输入的数据和从数据存储模块中读取的数据对该路信号进行处理,并产生权值更新模块所需的数据。(5)步长调整模块主要根据数据处理模块的输出对该路步长进行调整,同时

40、把它们存入数据存储模块。(6)权值更新模块主要根据数据处理模块的输出对该路信号的数据和权值进行更新,同时把它们存入数据存储模块。(7)刀数据存储模块主要存储各路信号的处理数据 包括该路信号的增益、权值和步长,该路信号的上一个时刻的数值等。利用VHDL 硬件描述语言编写程序,在 平台对运算单元进行综合和功能仿真。4.3 自适应滤波器设计用FPGA来实现自适应滤波器,最理想的算法是最小均方(LMS)算法,其输出信号y(n)、输出误差e(n)的计算公式为:y(n)=w(n)xT(n)e(n)=d(n)-y(n)=d(n)-w(n)xT(n)其中,x(n)表示第n个时刻输入信号向量,x(n)=x(n)

41、,x(n-1) .x(n-M+1),M为滤波器的阶数,d(n)表示第n个时刻的输入期待响应,y(n)、e(n)分别表示第n个时刻的输出信号与输出误差,w(n)表示n时刻权系数向量,w(n)=w(n,0),w(n,1)w(n,M-1)。权系数是不断更新的,权系数的更新使用下式:w(n+1)=w(n)+-(n)式中表示收敛因子,自适应滤波器收敛的条件是0 1/(2max)其中:max是输入信号的自相关矩阵Rxx的最大特征值;(n)表示n时刻的均方误差梯度,它的精确计算十分困难,通常使用一种非常有效的近似(n)-2(n)x(n)此时,权系数的更新可以表示为 w(n +1)=w(n)+2e(n)x(n

42、)用上式权系数可以非常方便的更新,但是有一个问题:对当前的权系数进行更新,必须知道当前时刻的误差信号e(n),显然必须在输出信号y(n)与误差信号e(n)计算完毕后才能进行权系数的更新;换言之,权系数的更新与滤波(y(n)的计算)不能同步进行。如果能够实现权系数的更新与滤波同步进行,那么在滤波的同时权系数也被更新了,这样,自适应滤波器的滤波速度将提高将近一倍,这是我们所期待的。为了实现这一点,必须对LMS算法进行改进。权系数的更新之所以不能与滤波同步进行是由式w(n +1)=w(n)+2e(n)x(n)决定的,如果将式w(n +1)=w(n)+2e(n)x(n)中的e(n)改成e(n-1)后,

43、自适应算法还能成立,权系数更新与y(n)的计算就能够同步进行了。改进后的权系数更新方程为:w(n +1)=w(n)+2e(n-1)x(n-1) 式中,2e (n-1)x(n-1)为n-1时刻均方误差梯度的近似形式。4.3.1 自适应滤波器结构这部分内容设计一个8阶自适应滤波器,如图4.5所示。图中,A1、B、C1、D1、E1、G1用于计算输出信号y(n)(即滤波器的追踪部分),由于在运算过程中,累加器的内容不断变化,等运算完毕以后,才等于输出信号y(n)。要保存y(n)的值,必须提供一个寄存器,它就是下图中的寄存器G1。F用于产生输出误差e(n),并将误差锁存在寄存器G2中,以供更新权系数只用

44、;A1、A2、B、C2、D2、E2用于更新权系数(即滤波器的训练部分),更新过程中采用的误差为上一次计算所产生的并保存在寄存器G2中的误差e(n-1)。数据选择器C1SELX(n)寄存器A2移位寄存器A1数据选择器C1乘法器D1累加器E1寄存器G1减法器F寄存器G2乘法器D2移位寄存器B数据选择器C1CLOCKstartClk1D(n)Clk2CS2CLOCK2图4.4自适应滤波器结构从上图中可以看出,x(n-1)与e(n-1)相乘用的是乘法器,但是二者的乘积与2相乘,使用一个数据选择器来实现。这是因为2为收敛因子的两倍,通常数值远小于1,只要满足收敛条件,它的值大一点或者小一点对滤波效果影响

45、并不是很明显,因此可以考虑它只取诸如以下的一系列分立的值:1/2 1/4 1/8 1/16 1/2n 这样就可以通过移位运算来代替乘法运算,从而大大减少电路所耗的硬件资源;不仅如此,由于这样实现起来电路的延时远小于一个乘法器的延时,用数据选择器代替乘法器可以很大程度上提高滤波器的最高采样频率。4.3.2 复数滤波器设计与实现一般的自适应滤波器的操作模式包括训练(Training)、追踪(Tracking)两个模式。首先,在发射端传送固定长度的训练序列,其典型序列为虚拟随机序列。则滤波器便可从输入讯号搭配已知的序列,利用回归演算法,去计算滤波器的系数,以补偿传输通道所造成的衰减。在这节中,我们将

46、假设滤波器已经进入了追踪模式,进行滤波。在此基础上,我们采用FIR架构设计一个复数滤波器。在色散信道上传输二进制数据的通信系统自适应均衡中,需要复数LMS算法的经典模型。为了便于在信道上传输数据,应采用某种调制形式,以使发送信号的频谱落在信道的带宽之内。此外,为了使频谱有效,要使用诸如QPSK或QAM等调制技术,这里信道输出的基带信号是复数形式,所以需要使用复数LMS算法。其模型流图如图所示。流图说明,一个复数LMS算法等效于一组它们之间具有交叉耦合的四个实数LMS算法。对于FIR系统,系统函数只有零点,其差分方程如下:dR(n)Er(n)Wi(n)Wr (n)Wi(n)Wi(n)yR(n)dR(n)Er(n)xR(n)xi(n)图4.5 直接式FTR结构由式即可绘出直接式FIR结构如图4.5所示。此种结构也可称为头式延迟线结构,俗称为横向滤波器结构。如

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号