基于FPGA的自适应滤波器的设计Word文档格式.docx

上传人:b****7 文档编号:21851200 上传时间:2023-02-01 格式:DOCX 页数:27 大小:255.27KB
下载 相关 举报
基于FPGA的自适应滤波器的设计Word文档格式.docx_第1页
第1页 / 共27页
基于FPGA的自适应滤波器的设计Word文档格式.docx_第2页
第2页 / 共27页
基于FPGA的自适应滤波器的设计Word文档格式.docx_第3页
第3页 / 共27页
基于FPGA的自适应滤波器的设计Word文档格式.docx_第4页
第4页 / 共27页
基于FPGA的自适应滤波器的设计Word文档格式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于FPGA的自适应滤波器的设计Word文档格式.docx

《基于FPGA的自适应滤波器的设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于FPGA的自适应滤波器的设计Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。

基于FPGA的自适应滤波器的设计Word文档格式.docx

由于受到目前技术水平的限制,特别是集成电路技术发展的限制,许多理论上已经很成熟的信号处理算法很难得以实用,这里面一个最重要的原因是硬件速度问题。

要求处理的信号形式越来越复杂,使得现代信号处理的方法大都以大数据量、高复杂度为其主要特点。

在这种情况下,寻找有效的实时信号处理方法是非常有必要和迫切的。

而随着数字信号处理技术的发展,可编程门阵列FPGA的应用迅速的普及起来,FPGA具有高逻辑密度,高可靠性,用户可编程以及可并行运算等特点,可缩短开发周期,降低成本,很好的同时满足通用性和实时性要求。

自1985年Xilinx公司推出的第一块现场可编程逻辑器件至今,以FPGA为代表的数位系统现场集成获得了惊人的发展,从最初1200个可编程逻辑门电路发展到到90年代的25万个逻辑门电路。

发展最早两大著名FPGA厂商即是以FPGA器件系列为代表的Xilinx公司和以CPLD器件系列为代表的Altera公司。

随着集成电路技术和数字信号处理技术的日新月异,FPGA技术以现场可编程、现场修改、现场验证、现场实现的应用优势,已经跃升为电子电路应用领域广受欢迎的实用技术。

2自适应算法研究及分析

2.1自适应滤波基本概念

自适应滤波器一般可分为两个部分,即滤波部分和自适应更新部分:

(l)其中滤波部分根据某结构常用的可有FIR和IIR两种滤波形式,IIR结构的自适应滤波器在运算的阶数上要比FIR结构的滤波器的阶数要少,因而比相同性能的FIR池波器所需要本文最后讨论的自适应算法应用是基于FIR滤波自适应信号处理算法一般用来获得有的运算里要少,但由于IIR结构的滤波器在有限精度的条件下容易产生振荡,具有不稳定的特性,而且通过增加阶数,AR模型能够对ARMA棋型进行近似的模拟,所以,关可调参数。

使这些参数为变盈的目标函数在一定的约束条件下达到最优。

最常用的方法是基于估计误差的平方值。

然而在不同情况下它具有不尽相通的定义,从其准则上进行区分,自适应处理方法可分为两类:

(a)随机统计法,在随机统计法中,准则包含了输入数据的统计特性,算法的推导以估计误差的平方的集平均或时平均(即均方误差,MSE)为基础,经典的算法是LMS算法。

(b)精确法,在精确法中,准则包含了已经得到的真实确切的数据。

满足此类准则所用的技术常称为递归最小平方(RLS)技术。

本章中将对其中的一些算法进行综述。

2.2变步长自适应滤波算法

所谓自适应滤波器,就是利用前一时刻己获得的滤波器参数等结果,自动调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。

由Widrow和HOFF提出的最小均方误差(LMS)算法,因其具有计算量小、易于实现等优点而在实践中被广泛采用。

根据自适应滤波器的原理,LMS算法迭代公式为:

y(n)=xT(n)w(n),e(n)=d(n)-y(n),W(n+1)=w(n)+2µ

e(n)X(n)

其中X(n)表示n时刻的输入信号矢量;

y(n)为自适应滤波器的输出信号;

d(n)定义了期望信号;

e(n)表示n时刻的误差;

W(n)表示n时刻的自适应滤波器的权值;

µ

是控制稳定性和收敛速度的参量,称之为步长。

LMS算法收敛的条件为:

0<

µ

<

1/λmax,λmax是输入信号自相关矩阵的最大特征值。

由于主输入端不可避免地存在干扰噪声,自适应滤波算法将产生参数失调噪声,减少步长因子µ

可减少自适应滤波算法的稳态失调,提高算法的收敛精度,然而步长因子的减少将降低算法的收敛速度和跟踪速度。

因此,固定步长的自适应滤波算法在收敛速度、时变系统跟踪速度与收敛精度方面对算法调整步长µ

的要求相互矛盾.为了克服这种矛盾,人们提出多种变步长自适应算法。

本文采用VSS-LMS的算法如下:

y(n)=xT(n)W(n),e(n)=d(n)-y(n),w(n+l)=W(n)+2µ

(n)e(n)x(n)

(n+l)=a(n)+ye2(n)

当µ

(n+l)<

Umin则µ

(n+1)=Umin,µ

(n+l)>

Umax则µ

(n+l)=Umax

Umax一般选择接近标准LMS不稳定的步长点,以提供最大的可能的收敛速度;

在稳定状况下,根据所预期的误调水平和所要求的算法的跟踪能力作出一个合适的选择。

其中,参数参数0<

a<

1,y>

0。

a:

为步长的遗传因子,主要决定算法的收敛时的步长值,,y主要控制算法的跟踪速度。

在实际中a,y取值范围分别为(0.95,0.99)和(0,0.001)。

2.3仿射投影算法

在有些情况下,可以重复利用过去的数据信号,以便提高自适应滤波算法的收敛速度。

数据重用算法的代价就是增加了算法的失调,并且和通常情况下一样,通过引入步长来实现最终的失调和收敛速度的之间的平衡,但是我们也可以通过仿射投影算法来达到目的。

仿射投影算法最早由K.Ozeki和T.Umeda提出,它是归一化最小均方误差(NLMS)算法的推广。

仿射投影算法的性能介于LMS算法和RLS算法之间,其计算复杂度比RLs算法低。

归一化最小均方误差(NLMS)算法是LMS算法的一种改进算法,它可以看作是一种变步长因子的LMS算法,其收敛性能对输入信号的能量变化不敏感。

而仿射投影算法的计算复杂度比NLMS算法高很多,提出的快速仿射投影算法大大降低了仿射投影算法的计算复杂度。

在快速仿射投影算法中,采用滑动窗快速横向滤波器算法计算预滤波向量,避免了矩阵求逆运算。

快速仿射投影算法的计算复杂度虽然降低了,但其内嵌的滑动窗快速横向滤波器算法的实现相对复杂,并且存在数值稳定性问题。

为解决快速仿射投影算法的数值稳定性问题,Douglas等提出了正交变换的快速仿射投影算法的近似算法,避免了采用复杂的滑动窗快速横向滤波器算法,改善了快速仿射投影算法在有限精度运算时的数值稳定性。

2.4RLS自适应滤波算法

RLS算法采用了在每个时刻对所有己输入信号重估的平方误差之和最小这样的准则,它是对输入信号的自相关矩阵Rxx(n)逆进行递推估计更新,收敛速度快,其收敛性能与输入信号的频谱特性无关。

但是,RLS算法的计算复杂度很高,所需的存储量极大,不利于实时实现;

倘若被估计的自相关矩阵Rxx(n)的逆失去了正定特性,还将引起算法的发散。

2.5LMS算法及其推广

LMS算法最早由Widrow和Hoff提出,是最简单也是应用最广泛的一种自适应算法。

本章将介绍LMS算法的一些重要特性,以及在实际系统设计中所采用的LMS算法推广形式。

LMS算法介绍

代价函数和误差性能曲面

自适应算法的工作是依据某种误差最小准则通过迭代来调整权重矢量。

这里说的误差是指滤波输出和期望信号在某种意义下的距离。

定义估计误差e(n)为滤波器输出和期望信号的差值,即

e(n)=d(n)-y(n)=d(n)-XT(n)W(n)

则最典型的情况就是依据均方误差(MeanSquareError,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)XT(n)}

P表示输入信号和期望信号的互相关向量

P=E{X(n)d(n)}

W(n)表示权矢量,d(n)表示期望信号。

LMS算法原理和性能分析

LMS算法使用随机梯度下降的方法实现代价函数最小化,具体地说,每次迭代时权矢量沿着误差性能曲面的梯度估值的负方向按一定比例对步长进行更新。

由式可得代价函数的梯度为

▽ξ(n)=а(n)=-2P+2RW(n)

аW(n)

式中用到了自相关矩阵R和互相关向量P,而实际上这两个参量只有对输入信号和期望响应的统计特性进行估计才能获得。

为了减小计算复杂度,用瞬时均方误差的梯度▽e2(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算法,参数μ决定了算法的收敛速度以及稳态误差。

一个较大的μ可以产生很快的收敛速度,但在收敛到Wopt附近后将在一个较大范围内抖动而无法进一步收敛,即稳态误差较大;

选择较小的步长可以获得较小的稳态误差,但同时收敛速度也较慢。

事实上,步长μ的取值并不是任意的,其大小必须处于某一特定范围,LMS算法才能收敛,即当且仅当步长μ满足

0<

<

1/λmax

Lim{W(n)}=Wopt

上式为LMS算法的收敛条件。

以下是LMS算法的稳态特性分析:

Widrow引入失调系数

来描述算法的稳态均方误差对维纳误差的相对误差,其中ξmin=E2{|eopt(n)|2}为维纳误差。

对于LMS算法来说,其失调系数可以表示为如下两种形式

δ=µ

Tr(R)=µ

∑λi

δ=µ

MPin

式中的Pin表示输入信号功率。

也就是说,滤波器阶数越高,步长因子μ和信号功率越大,就使得失调系数越大。

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)的,为确保收敛,收敛因子应满足o<

2/λmax、(λmax、是E[x(n)*XT(n)]的最大特征值)。

由于LMS算法易于实现,同时,算法对有限寄存器长度造成的实现误差不敏感,因此LMS算法对于实际应用来说具有相当的吸引力。

然而LMS算法的收敛速率依赖于E[x(n)*XT(n)]特征值的发散程度。

在实际应用中,输入信号往往是语音,而语音的特征值分布相对分散,因此LMS的收敛速度较慢,于是又出现了很多改进算法,比如滑动窗LMS算法,时域去相关LMS算法(DLMS),NLMS算法,符号误差算法,变步长算法等等。

这些算法比基本的LMS算法在精度和收敛速度上有明显的改进,计算量和基本LMS算法相当。

2.6小结

本章主要对自适应算法做了一些介绍以及性能分析。

着重分析了常用的LMS算法和变步长滤波算法,在自适应算法中,LMS算法较为突出,通过介绍分析,为后文滤波器设计提供一定的理论基础,

3滤波器原理介绍

3.1自适应滤波器原理

滤波器是电子设备的一个常用的基本部件,人们对其已经进行了广泛的研究。

滤波器研究的一个基本问题就是:

如何设计和建立最佳或最优的滤波器。

所谓最佳滤波器是指能够根据某一最佳准则进行设计的滤波器。

20世纪40年代,维纳奠定了关于最佳滤波器研究的基础。

假定线性滤波器的输入为有用信号和噪声信号之和,两者均为广义平稳过程且已知它们的二阶统计特性,根据最小均方误差准则,得了最佳线性滤波器的参数波器获得了极其广泛的应用。

这种滤波器被称为维纳滤波器。

维纳滤波器

在维纳研究的基础上,人们还研究了根据最大输出信噪比准则、统计检测准则以及其他最佳准则求得的最佳线性滤波器。

但人们发现,在一定条件下,这些最佳滤波器与维纳滤波器是等价的。

因而,讨论最优线性滤波器时,一般均以维纳滤波器作为参考。

要实现维纳滤波,就要求:

(l)输入信号是广义平稳的;

〔2)输入信号的统计特征是已知的。

根据其他最佳准则的滤波器亦有同样要求。

然而,由于输入过程取决于外界的信号、干扰环境,这种统计特性常常是未知的、变化的,因而不能满足上述两个要求。

在这种情况下,促使人们研究自适应滤波器。

滤波器研究的一个基本问题是:

如何建立最佳或最优的滤波器。

根据最小均方误差准则,20世纪40年代维纳求得了最佳线性滤波器的参数,这种滤波器称为维纳滤波器。

然而,只有对信号和噪声的统计特性先验已知的情况下,维纳滤波器才能获得最优滤波。

遗憾的是在实际应用中,常常无法得到这些统计特性的先验知识;

或者,统计特性是随时间变化的。

因此用维纳滤波器实现不了最优滤波。

在这种情况下,自适应滤波能够提供卓越的滤波性能。

所谓自适应滤波器,就是利用前一时刻己获得的滤波器参数的结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。

自适应滤波器具有“自我调节”和“跟踪”能力。

自适应滤波器可以分为线性自适应滤波器和非线性自适应滤波器。

非线性自适应滤波器包括Vofterra滤波器和基于神经网络的自适应滤波器。

非线性自适应滤波器具有更强的信号处理能力。

但是,由于非线性自适应滤波器的计算较复杂,实际用得最多的仍然是线性自适应滤波器如图3.1所示。

图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算法使滤波器的输出信号与期望输出信号之间的均方误差E[e2(n)]最小。

基于最小二乘准则,RLS算法决定自适应滤波器的权系数向量w(n)使估计误差的加权平方和最小。

其中λ为遗忘因子,且0<

λ<

1.由此两准则衍生出许多不同的自适应滤波算法。

自适应滤波算法广泛应用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域中。

3.2本文滤波器的工作原理

图3.2自适应滤波器电路结构图

如图3.2,移位寄存器A1和寄存器A2用于存放输入数据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)、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。

滤波器中的其他寄存器此时都不发生动作。

(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);

进入T1状态以后,A1与A2的片选信号CS1继续有效;

数据选择器C1的控制信号SEL变为高电平,C1选择的是A1最右端送过来的数据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)+2μx(n-8)e(n-1),T2上升沿将其送入移位寄存器B,完成w(n,7)的更新。

(3)T2、T8状态。

这七个状态滤波器的运行状况与T1状态完全一致,不同的是个寄存器存放的数据。

滤波器的运算情况这里不在复述。

(4)T9状态。

在一个运算周期的前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信号的上升沿到来才使它重新启动工作。

4基于FPGA的自适应滤波器的设计

现场可编程门阵列(FPGA,FieldProgrammableGateArray)的出现是超大规模集成电路(VLSI)技术和计算机辅助设计(CAD)技术发展的结果。

FPGA器件集成度高、体积小、具有通过用户编程实现专门应用的功能。

它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直至达到预期的结果。

使用FPGA器件可以大大缩短系统的研制周期,减少资金的投入。

更吸引人的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。

FPGA器件成为研制开发的理想器件,特别适用于产品的样机开发和小批量的生产,因此有人也把FPGA称为可编程的ASIC。

如今,FPGA器件广泛应用于通信、自动控制、信息处理等诸多领域,越来越多的电子设计人员在使用FPGA,熟练掌握FPGA设计技术已经是对电子设计工程师的基本要求。

4.1基本设计方法

传统的系统硬件电路设计方法

在EDA出现以前,人们采用传统的硬件电路设计方法来设计系统。

传统的硬件电路采用自下而上(BottomUp)的设计方法。

其主要步骤是:

根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图:

然后根据技术规格书和系统控制流图,对系统的功能进行分化,合理地划分功能模块,并画出系统功能框图;

接着就是进行各功能的细化和电路设计;

各功能模块电路设计调试完毕以后,将各功能模块的硬件电路连接起来,再进行系统的调试;

最后完成整个系统的硬件电路设计。

从上述过程可以看到,系统硬件的设计是从选择具体逻辑元器件开始的,并用这些元器件进行逻辑电路设计,完成系统各独立功能模块设计,然后再将各功能模块连接起来,完成整个系统的硬件设计。

上述过程从最底层设计开始,到最高层设计完毕,故将这种设计方法称为“自下而上”的设计方法。

传统的自下而上的硬件电路设计方法主要特征如下:

1)采用通用的逻辑元器件;

2)在系统硬件设计的后期进行仿真和调试;

3)主要设计文件是电原理图;

2.新兴的EDA硬件电路设计方法

随着大规模专用集成电路的开发和研制,为了提高开发的效率和增加已有开发成果的可继承性,以及缩短开发时间,各种新兴的EDA工具开始出现,特别是硬件描述语言HDL(HardwareDescriptionLanguage)的出现,使得传统的硬件电路设计方法发生了巨大变革,新兴的EDA设计方法采用了自上而下(TopDown)的设计方法。

所谓自上而下的设计方法,就是从系统要求出发,自上而下的逐步将设计内容细化,最后完成系统的整体设计。

各公司的EDA工具基本上都支

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

当前位置:首页 > 初中教育

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

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