最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于FPGA的Kalman滤波器的设计

来源:动视网 责编:小OO 时间:2025-09-28 12:36:42
文档

基于FPGA的Kalman滤波器的设计

电子・电路2010年第23卷第2期ElectronicSci1&Tech1/Feb115,2010收稿日期:2009208212作者简介:米月琴(1982-),女,硕士。研究方向:伺服系统设计。黄军荣(1983-),男,硕士,工程师。研究方向:高校教育管理。基于FPGA的Kalman滤波器的设计米月琴1,黄军荣2(11航天恒星空间技术应用有限公司卫星通信事业部,陕西西安710077;21西安电子科技大学经济管理学院,陕西西安710071)摘要针对电路设计中经常碰到数据的噪声干扰现象,提出了一种
推荐度:
导读电子・电路2010年第23卷第2期ElectronicSci1&Tech1/Feb115,2010收稿日期:2009208212作者简介:米月琴(1982-),女,硕士。研究方向:伺服系统设计。黄军荣(1983-),男,硕士,工程师。研究方向:高校教育管理。基于FPGA的Kalman滤波器的设计米月琴1,黄军荣2(11航天恒星空间技术应用有限公司卫星通信事业部,陕西西安710077;21西安电子科技大学经济管理学院,陕西西安710071)摘要针对电路设计中经常碰到数据的噪声干扰现象,提出了一种
电子・

电路

2010年第23卷第2期

Electr onic Sci 1&Tech 1/Feb 115,2010

收稿日期:2009208212

作者简介:米月琴(1982-),女,硕士。研究方向:伺服系统设计。黄军荣(1983-),男,硕士,工程师。研究方向:高校教育管理。

基于FPG A 的Kalman 滤波器的设计

米月琴1

,黄军荣

2

(11航天恒星空间技术应用有限公司卫星通信事业部,陕西西安 710077;

21西安电子科技大学经济管理学院,陕西西安 710071)

  摘 要 针对电路设计中经常碰到数据的噪声干扰现象,提出了一种Kal m an 滤波的FPG A 实现方法。该方法采用

了TI 公司的高精度模数转换器ADS1251以及A ltera 公司的EP1C12,首先用卡尔曼滤波算法设计了一个滤波器,然后将该滤波器分解成简单的加、减、乘、除运算。通过基于FPG A 平台的硬件与软件的合理设计,成功地实现了数据噪声的滤除设计,并通过实践仿真计算,验证了所实现滤波的有效性。

关键词 卡尔曼;FPG A;最小方差估计

中图分类号 TP274  文献标识码 A   文章编号 1007-7820(2010)02-052-04

D esi gn of the FPGA 2ba sed Ka l m an F ilter

M i Yueqin 1

,Huang Junr ong

2

(11Depart ment of Satellite Communications Services,Space Star Aer os pace

Technol ogy App licati ons Co 1L td .,Xi πan 710077,China;

21School of Econom ics and Management,Xidian University,Xi πan 710071,China )

Abstract  In circuit design,we often encounter input data noise .A Kal man filter based on the FPG A i mp le 2mentati on is p r oposed t o achieve the de 2noising .Kal man filter is a common filtering method,which uses TI πs high 2p recisi on ADS1251ADC and EP1C12of A ltera Cor poration .A Kal man filter is designed and then deco mposed int o si m p le computations such as additi on,subtraction,multip lication,and division .A data noise filter is successfully realized based on the hardware and s oft w are of FPG A p latfor m.Si m ulation results verify its validity .

Keywords  Kal man;FPG A;least equation esti mate

  卡尔曼滤波是一个“Op ti m al Recursive Data Pr ocessing A lgorith m (最优化自回归数据处理算法)”,对于解决很大部分的问题,是最优化的,效率最高甚至是最有用的。传统的卡尔曼滤波是在DSP 上实现的。但是DSP 成本相对较高,而且指令是串行执行的,不能满足有些要求较高的场合。而FPG A 由于其硬件结构决定了它的并行处理方式,无论在速度还是实时性都更胜一筹。文中以基于FPG A 器件和A /D 转换器的数据采集系统为硬件平台,进行了卡尔曼滤波算法设计,详述了基于FPG A 的卡尔曼滤波器的设计实现。

1 卡尔曼滤波算法

工程中,为了了解工程对象(滤波中称为系统)

的各个物理量(滤波中称为状态)的确切数值,或为了达到对工程对象进行控制的目的,必须利用测量手段对系统的各个状态进行测量。但是,量测值可能仅是系统的部分状态或是部分状态的线性组合,且量测值中有随机误差(常称为量测噪声)。最优估计就是针对上述问题的一种解决方法。它能将仅与部分状态有关的测量进行处理,得出从统计意义上讲误差最小的更多状态的估值。误差最小的标准常称为估计准则,根据不同的估计准则和估计计算方法,有各种不同的最优估计,卡尔曼滤波是一种递推线性最小方差估计的最优估计

[1]

系统的状态方程可设定为

X k +1/k =AX k +BW k

(1)

式中

X k =

x k x k -1(2)

W k =w k w k -1

(3)

2

5

米月琴,等:基于FPG A 的Kal m an 滤波器的设计

电子・电路

式(3)为系统噪声。设设备的量测噪声为V k ,系

统得量测方程为

Y k +1=CX k +1/k +V k ,k =1,2,3,…,n

(4)式中,C =10

,Y k +1为设备的量测值[2]

噪声序列W k ,V k 满足统计特性:E (W k )=E (V k )=0;cov (W k )=Q,cov (V k )=R,cov (W k ,V k )=0,构造如下的滤波器

X k +1/k =A X k

(5)P k +1/k =A P k A T

+B Q B

T (6)K k +1=P k +1/k C T

×(C P k +1/k ×C T

+R )

-1

(7)X k +1/k =X k +1/k +K k +1[Y k +1-C X k +1/k ]

(8)P k +1=(I -K k +1C )P k +1/k

(9)

式中,X k +1/k 是利用当前状态预测的结果,X k 是当前状态最优的结果,P k +1/k 是X k +1/k 对应的covariance ,

P k 是X k 对应的covariance ,A T

表示A 的转置矩阵,Q

是系统过程的covariance 。

式(1),式(2)就是卡尔曼滤波器5个公式中的前两个,也就是对系统的预测。可以得到将来状态k +1的最优化估算值X k +1。

式(9)中I 为单位矩阵,对于单模型单测量,I =1。当系统进入k +2状态时,P k +1就是式(2)的P k 。这样,算法就可以自回归的运算下去。

R 为测量数据的方差;Q 为系统过程噪声的方

差,取值为

δ2a

0δ2

a

,根据经验可设置为测量数据方

差的1/10;P 的初值可选为单位阵,I 为单位阵,X

的处置可选为(0,0)T

。算法示意图,如图1所示。

图1 算法示意图

将算法矩阵展开并写成乘加形式,令

A =

112312-012312

10(10)B =

1-01396

00

(11)δa =0100719;R =010224

(12)A 1=a 1×a 1

(13)P 11=A 1×P 00+a 1×a 2×a 3×P 02+A 2×P 03+δa

(14)

P 12=a 1×a 3×P 00+a 2×a 3×P 02

(15)

P 21=a 1×a 3×P 00+a 2×a 3×P 01

(16)P 22=A 3×P 00(17)W =1/(P 11+R )(18)P 0=P 11-P 11×W ×P 11(19)P 1=P 12-P 11×W ×P 12(20)P 2=P 21-P 11×W ×P 21(21)P 3=P 22-P 12×W ×P 21

(22)I 2=X 01,

I 1=X 00

(23)X 1=a 1×I 2+a 2×I 1+P 11×

W ×(Y -I 2)

(24)X 0=a 3×I 2+P 21×W ×(Y -I 2)

(25)Y S =X 1

(26)

这些公式包含了一些加、减、乘、除的数算,

用FPG A 实现卡尔曼滤波就是用FPG A 实现这些运算。

2 硬件设计

211 A /D 选择

ADS1251是TI 公司生产的一种高精度、宽动态

范围的24位△~

∑乏结构的模数转换器。采样保

持器的输入形式采用差分模拟输入方式,设计了一个

简单的电平转换电路使得端和端之间的电压波动范围为士215V 。ADS1251的时钟频率由8MHz 的外部晶振提供,系统时钟由FPG A 给出。ADS1251的内部结构图,如图2所示

[3]

图2 ADS1251的内部结构图

输出有3种模式:同步、异步及掉电模式,异步

模式与Kal m an 滤波器数据输入接口连接比较方便。其时序如图3所示。212 FPG A 设计

FPG A 的特点在于灵活,通用。如果资源够用,可以实现各种数字组合,包括CP U 。本系统采用的FPG A 是A ltera 公司低价位的EP1C12,该芯片内含有两个P LL s,12060LEs 及239616T otal RAMbits [4]

。在本系统的设计中,FPG A 内主要实现以下几个功能:Kal m an 状态控制信号、Kal m an 滤波运算、A /D 控制

模块、时钟及波特率设置等[5,6]

。卡尔曼滤波器的系统结构图,如图4所示。

3

5

电子・电路

米月琴,等:基于FPG A 的Kal m an

滤波器的设计

图3 

异步模式时序图

图4 系统结构框图

通过A /D 转换芯片采集转换数据后,进入FPG A

的A /D 控制模块,在Kal m an 状态控制信号的作用下,进行滤波运算,然后通过控制接口将滤波数据输出[7]

。由此可见,卡尔曼滤波的实现包括两部分:Kal m an 状态控制信号和Kal m an 滤波运算。

3 Kal m an 滤波器的设计

在FPG A 中实现Kal m an 滤波器,重点在于平衡资源利用率和处理速度、数据运算精度之间的矛盾,难点在于浮点加、减、乘、除的硬逻辑及卡尔曼滤波流

程控制的实现[8]

。一般地,实际应用中,数字采样重复频率是待采样信号最高频率成分的5倍以上能保证较好恢复原信号,本设计中出于后期升级的考虑,将

采样率设置在800次/s,是输出信号带宽的20倍[9]

通过第2节中的分解,Kal m an 滤波器由16次加法、20次乘法、1次除法以及必要的输入、输出及循环控制组成,共45步。状态控制器(Kal m an 状态控制信号)实际是一个有限状态机,分别控制滤波器中的45步运算,决定其执行顺序,每一步利用计数器为其提供必要的时钟周期。

Kal m an 滤波运算主要是浮点计算,浮点表示常用的标准是I EEE 754,I EEE 二进制浮点数算术标准(I EEE 754)是最广泛使用的浮点数运算标准,为许多CP U 与浮点运算器所采用。I EEE 754规定了4种表示

浮点数值的方式:单精确度(32位元)、双精确度(

位元)、延伸单精确度(43位元以上,较少使用)与延伸双精确度(79位元以上,通常以80位元实做)。

二进制浮点数是以符号数值表示法格式储存,将最高效位元指定为符号位元(Sign B it );“指数部分”,即次高效的e 位元,为浮点数中经指数偏差(Expo 2nent B ias )处理过后的指数;“小数部分”,即剩下的f

位元,为有效位数(Significand )减掉有效位数本身的最高效位元,如图5所示

图5 I EEE 754浮点格式

文中采用的单精度二进制小数,使用32个位元存储,如图6所示

图6 I EEE 754单精度二进制小数格式

其中,31位是符号位;0表示正;1表示负;30~23位为阶数;22~0表示数值的有效位。偏正值为+127。其表示的具体值可用式(27)表示

V =(-1)s ×(1/f )×2e

-127

(27)指数部分采用一个无符号的正数值存储。单精度的指数部分是-126~+127加上127,指数值的大小为1~254(0和255是特殊值)。浮点小数计算时,指数值减去偏正值将是实际的指数大小。

由于资源的,滤波中的运算过程只能以有限的精度进行,但过低的精度容易引起滤波发散,同时为了兼顾A /D 高达24bit 的分辨率精度,在I EEE 754单精度浮点数格式的基础上按照浮点表示的原则做了改造,将指数部分减少到6位,尾数增加到25位,25位尾数可以完全表示A /D 输出的24位采样

4

5

米月琴,等:基于FPG A 的Kal m an 滤波器的设计

电子・电路

值,并削弱舍入误差的影响,其格式如图7所示

图7 自定义浮点格式

本系统对处理速度的要求并不高,运算部件的设计并不考虑速度优化。

加法器按以下通用的规则设计[10]

:

(1)阶码相减:两个操作数阶码相减,求得阶差

d =E a -E b ;

(2)尾数对齐:阶码小的操作数的尾数右移

d 位;

(3)尾数相加:完成移位处理后的尾数相加运算;(4)转换:尾数相加的结果为负数时,转换为符

号尾数的表示方式;

(5)前导0/1的判定:判定由于减法结果产生的左移位数,对于加法判定是否右移一位或不移,对前导0/1判定的结果进行编码以驱动规格化移位;

(6)规格化:规格化有效位并且根据移位的方向和位数修改最终的阶码E f ;

(7)舍入:根据I EEE 标准判定最终结果的舍入,如果需要入,则最末有效位加1;如舍入引起溢出,则需要有效位右移1位,同时阶码E f 加1。乘法器的设计相对简单,与加法器一样采用简单的设计规则:

(1)指数相加:完成两个操作数的指数相加运算;

(2)尾数调整:将尾数f 调整为1/f 的补码格式;(3)尾数相乘:完成两个操作数的尾数相乘

运算;

(4)规格化:根据尾数运算结果调整指数位,对尾数进行舍入截位操作,规格化输出结果。

采用A ltera 提供的I P 核,除法器能完成I EEE 754单精度除法运算。数据进入该除法器前需要将自定义的浮点格式的阶码扩展为8位加上95,尾数右移两位,转换为标准单精度浮点,计算结果再由标准单精度浮点的按相反的方法转换为自定义浮点。

文中硬件编程语言是用Veril og 实现的。

4 实测结果分析与结论

从系统输出数据中随机抽取一段数据用Matlab 分析,其结果如图8所示。实线C 表示的是滤波前的噪声:虚线B 表示的是滤波后的噪声。很容易看出

经过滤波后噪声降低了很多。仿真与实测对比分析如

表1所示

图8 噪声数据分析表1 仿真与实测对比分析原始数据

M atlab 处理结果

本系统处理结果

均值130151613015161301516方差012981010778010927协方差

0108

010060

010099

5 结束语

卡尔曼滤波器在很多领域具有重要的作用,可以实现数字信号处理功能,并能满足实时性的要求。用FPG A 实现Kal m an 滤波过程,实现简便、成本较低、

滤波效果好,被广泛应用于图像视频、陀螺惯导去噪、电子罗盘、雷达接收机目标跟踪处理、目标预测等图像、数据采集与处理领域。参考文献

[1] 付梦印,邓志红,张继伟.Kal m an 滤波理论及其在导

航系统中的应用[M ].北京:科学出版社,2003.[2] 蒋志凯.数字滤波与卡尔曼滤波[M ].北京:中国科学

技术出版社,1993.[3] 周敏,叶敦范,梁庆九.ADS1251在高精度采集中的应

用[J ].世界电子元器件,2004(8):58-60.[4] 罗朝霞,高书莉.CP LD /FPG A 设计及应用[M ].北京:

人民邮电出版社,2007.[5] 刘波.精通Veril og HDL 语言编程[M ].北京:电子工

业出版社,2007.[6] 黄智伟,陈琼,潘礼,等.FPG A 系统设计与实现[M ].

北京:电子工业出版社,2005.[7] 陈刚,郭立,史洪生,等.最大平行结构的Kal m an 滤

波器的硬件电路设计[J ].微电子学与计算机,2006,23(6):34-37,41.[8] 李国欣,徐艳丽,蒋永洲.卡尔曼滤波器在倒立摆控制

系统中的应用[J ].长春大学学报,2009(6):12-14,34.[9] 韩梅,陈禾.卡尔曼滤波器的FPG A 实现[J ].电子工

程师,2006,32(7):38-40.

[10]Uwe Meyer Baese,刘凌,胡永生.数字信号处理的FP 2

G A 实现[M ].北京:清华大学出版社,2003.

5

5

文档

基于FPGA的Kalman滤波器的设计

电子・电路2010年第23卷第2期ElectronicSci1&Tech1/Feb115,2010收稿日期:2009208212作者简介:米月琴(1982-),女,硕士。研究方向:伺服系统设计。黄军荣(1983-),男,硕士,工程师。研究方向:高校教育管理。基于FPGA的Kalman滤波器的设计米月琴1,黄军荣2(11航天恒星空间技术应用有限公司卫星通信事业部,陕西西安710077;21西安电子科技大学经济管理学院,陕西西安710071)摘要针对电路设计中经常碰到数据的噪声干扰现象,提出了一种
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top