基于FPGA的Kalman濾波器的設(shè)計(jì)
輸出有3種模式:同步、異步及掉電模式,異步模式與Kalman濾波器數(shù)據(jù)輸入接口連接比較方便。其時(shí)序如圖3所示。本文引用地址:http://www.ex-cimer.com/article/191740.htm
2.2 FPGA設(shè)計(jì)
FPGA的特點(diǎn)在于靈活,通用。如果資源夠用,可以實(shí)現(xiàn)各種數(shù)字組合,包括CPU。本系統(tǒng)采用的:FPGA是Ahera公司低價(jià)位的EP1C12,該芯片內(nèi)含有兩個(gè)PLLs,12060LEs及239616 Total RAMbits。在本系統(tǒng)的設(shè)計(jì)中,F(xiàn)PGA內(nèi)主要實(shí)現(xiàn)以下幾個(gè)功能:Kalman狀態(tài)控制信號(hào)、Kalm-an濾波運(yùn)算、A/D控制模塊、時(shí)鐘及波特率設(shè)置等。卡爾曼濾波器的系統(tǒng)結(jié)構(gòu)圖,如圖4所示。
通過A/D轉(zhuǎn)換芯片采集轉(zhuǎn)換數(shù)據(jù)后,進(jìn)入FPGA的A/D控制模塊,在Kalman狀態(tài)控制信號(hào)的作用下,進(jìn)行濾波運(yùn)算,然后通過控制接口將濾波數(shù)據(jù)輸出。由此可見,卡爾曼濾波的實(shí)現(xiàn)包括兩部分:Kalman狀態(tài)控制信號(hào)和Kalman濾波運(yùn)算。
3 Kalmaft濾波器的設(shè)計(jì)
在FPGA中實(shí)現(xiàn)Kalman濾波器,重點(diǎn)在于平衡資源利用率和處理速度、數(shù)據(jù)運(yùn)算精度之間的矛盾,難點(diǎn)在于浮點(diǎn)加、減、乘、除的硬邏輯及卡爾曼濾波流程控制的實(shí)現(xiàn)。一般地,實(shí)際應(yīng)用中,數(shù)字采樣重復(fù)頻率是待采樣信號(hào)最高頻率成分的5倍以上能保證較好恢復(fù)原信號(hào),本設(shè)計(jì)中出于后期升級(jí)的考慮,將采樣率設(shè)置在800次/s,是輸出信號(hào)帶寬的20倍。
通過第2節(jié)中的分解,Kalman濾波器由16次加法、20次乘法、1次除法以及必要的輸入、輸出及循環(huán)控制組成,共45步。狀態(tài)控制器(Kal-man狀態(tài)控制信號(hào))實(shí)際是一個(gè)有限狀態(tài)機(jī),分別控制濾波器中的45步運(yùn)算,決定其執(zhí)行順序,每一步利用計(jì)數(shù)器為其提供必要的時(shí)鐘周期。
Kalman濾波運(yùn)算主要是浮點(diǎn)計(jì)算,浮點(diǎn)表示常用的標(biāo)準(zhǔn)是IEEE 754,IEEE二進(jìn)制浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE754)是最廣泛使用的浮點(diǎn)數(shù)運(yùn)算標(biāo)準(zhǔn),為許多CPU與浮點(diǎn)運(yùn)算器所采用。IEEE 754規(guī)定了4種表示浮點(diǎn)數(shù)值的方式:單精確度(32位元)、雙精確度(64位元)、延伸單精確度(43位元以上,較少使用)與延伸雙精確度(79位元以上,通常以80位元實(shí)做)。
二進(jìn)制浮點(diǎn)數(shù)是以符號(hào)數(shù)值表示法格式儲(chǔ)存,將最高效位元指定為符號(hào)位元(Sign Bit);“指數(shù)部分”,即次高效的e位元,為浮點(diǎn)數(shù)中經(jīng)指數(shù)偏差(Exponent Bias)處理過后的指數(shù);“小數(shù)部分”,即剩下的f位元,為有效位數(shù)(Significand)減掉有效位數(shù)本身的最高效位元,如圖5所示。
文中采用的單精度二進(jìn)制小數(shù),使用32個(gè)位元存儲(chǔ),如圖6所示。
其中,31位是符號(hào)位;0表示正;1表示負(fù);30~23位為階數(shù);22~0表示數(shù)值的有效位。偏正值為+127。其表示的具體值可用式(27)表示
指數(shù)部分采用一個(gè)無符號(hào)的正數(shù)值存儲(chǔ)。單精度的指數(shù)部分是-126~+127加上127,指數(shù)值的大小為1~254(0和255是特殊值)。浮點(diǎn)小數(shù)計(jì)算時(shí),指數(shù)值減去偏正值將是實(shí)際的指數(shù)大小。
評(píng)論