一種基于gpu架構(gòu)的改進(jìn)的粒子濾波方法
【專利摘要】本發(fā)明屬于粒子濾波【技術(shù)領(lǐng)域】,特別涉及一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法。該基于GPU架構(gòu)的改進(jìn)的粒子濾波方法包括以下步驟:S1:在CPU端設(shè)定粒子個數(shù)和觀測時刻k;在GPU端初始化粒子;S2:將觀測向量傳輸至GPU顯存;當(dāng)k=1時,執(zhí)行步驟S3;S3:在GPU端進(jìn)行重要性采樣;S4:在GPU端進(jìn)行二次采樣,得到k時刻的最大似然采樣粒子;S5:利用GPU得出k時刻每個最大似然采樣粒子的接受概率;S6:在GPU端計算k時刻估計值。S7:在CPU端計算k時刻每個最大似然采樣粒子的重采樣索引;在GPU端根據(jù)重采樣索引得出k時刻的重采樣粒子,作為下一時刻的初始粒子;S8:將步驟S3至步驟S7重復(fù)執(zhí)行M次,得出M個時刻的估計值。
【專利說明】一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于粒子濾波【技術(shù)領(lǐng)域】,特別涉及一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法。
【背景技術(shù)】
[0002]非線性濾波問題廣泛存在于信號處理、數(shù)據(jù)通信、雷達(dá)探測、目標(biāo)跟蹤、衛(wèi)星導(dǎo)航等諸多領(lǐng)域,這類問題可歸納為存在觀測噪聲時,非線性系統(tǒng)的狀態(tài)估計問題。粒子濾波方法是一種較為通用的濾波方法,其采用一系列帶有權(quán)值的樣本點(diǎn)對狀態(tài)的后驗概率分布進(jìn)行近似,這種方法實(shí)質(zhì)上基于狀態(tài)搜索進(jìn)行的。由于在狀態(tài)逼近的過程中使用了大量的粒子,因此該方法的計算復(fù)雜度很高。而且在粒子濾波中存在著兩個主要的問題:第一,當(dāng)粒子采樣不準(zhǔn)確時,如采樣得到的粒子位于實(shí)際后驗分布的拖尾區(qū)域,經(jīng)過狀態(tài)搜索后,絕大部分的粒子權(quán)值都會趨于O。這會為后驗分布的近似帶來很大的誤差,甚至有可能引起濾波發(fā)散。第二,在對狀態(tài)進(jìn)行迭代估計的過程中,會出現(xiàn)粒子退化以及粒子貧化的現(xiàn)象,降低了狀態(tài)估計可用粒子的數(shù)量和種類,增大了狀態(tài)估計誤差。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的在于提出一種基于GPU (圖形處理器)架構(gòu)的改進(jìn)的粒子濾波方法。本發(fā)明,對粒子的重采樣進(jìn)行了改進(jìn),提出一種基于二次采樣的粒子濾波方法,改善了狀態(tài)估計的精度。同時,針對粒子濾波方法計算復(fù)雜度高的問題,提出了一種基于GPU架構(gòu)的實(shí)現(xiàn)方法,使得運(yùn)算時間大大降低,提高了算法處理的實(shí)時性,可以滿足實(shí)時處理的需要。
[0004]本發(fā)明的技術(shù)思路是:在標(biāo)準(zhǔn)粒子濾波基礎(chǔ)上,通過最大化似然函數(shù)引入當(dāng)前時刻的觀測信息,進(jìn)行二次采樣,并使用似然函數(shù)計算新粒子的權(quán)值,最后通過粒子加權(quán)對當(dāng)前的狀態(tài)進(jìn)行估計。并且將計算復(fù)雜度高的部分在GPU架構(gòu)上進(jìn)行實(shí)現(xiàn),提高了算法的實(shí)時性。
[0005]為實(shí)現(xiàn)上述技術(shù)目的,本發(fā)明采用如下技術(shù)方案予以實(shí)現(xiàn)。
[0006]一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法包括以下步驟:
[0007]S1:利用CPU將粒子個數(shù)設(shè)定為N,利用CPU設(shè)定M個觀測時刻,N和M均為大于I的自然數(shù),所述M個觀測時刻依次表示為I時刻至M時刻;利用GPU生成N個I時刻初始粒子;設(shè)置觀測時刻參數(shù)k,k = 1,2,3,...M ;
[0008]S2:利用CPU加載每個觀測時刻非線性系統(tǒng)的觀測向量,CPU將每個觀測時刻非線性系統(tǒng)的觀測向量傳輸至GPU顯存;當(dāng)k = I時,執(zhí)行步驟S3 ;
[0009]S3:在GPU中,根據(jù)重要性密度函數(shù)對k時刻的每個初始粒子進(jìn)行重要性采樣,得出k時刻的多個重要性采樣粒子;
[0010]S4 =^GPU中,根據(jù)非線性系統(tǒng)的觀測模型,建立似然函數(shù);然后,通過最大化似然函數(shù),對k時刻的每個重要性采樣粒子進(jìn)行二次采樣,產(chǎn)生k時刻的多個最大似然采樣粒子;[0011]S5:利用GPU得出k時刻每個最大似然采樣粒子的接受概率;
[0012]S6:在GPU中,根據(jù)k時刻每個最大似然采樣粒子,得出k時刻非線性系統(tǒng)的狀態(tài)向量的估計值;
[0013]S7:GPU將k時刻每個最大似然采樣粒子的接受概率傳輸至CPU ;在CPU中,根據(jù)所述k時刻每個最大似然采樣粒子的接受概率,得出k時刻每個最大似然采樣粒子的重采樣索引;然后,CPU將k時刻每個最大似然采樣粒子的重采樣索引傳輸至GPU ;在GPU中,根據(jù)k時刻每個最大似然采樣粒子的重采樣索引,對k時刻每個最大似然采樣粒子進(jìn)行重采樣,得出k+Ι時刻的多個初始粒子;$k值自增1,然后返回至步驟S3 ;
[0014]S8:將步驟S3至步驟S7重復(fù)執(zhí)行M次,得出M個觀測時刻的非線性系統(tǒng)的狀態(tài)向量的估計值。
[0015]本發(fā)明的特點(diǎn)和進(jìn)一步改進(jìn)在于:
[0016]在步驟SI中,建立非線性系統(tǒng)的狀態(tài)模型和觀測模型,非線性系統(tǒng)的狀態(tài)模型和觀測模型表示如下:
【權(quán)利要求】
1.一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,包括以下步驟: 51:利用CPU將粒子個數(shù)設(shè)定為N,利用CPU設(shè)定M個觀測時刻,N和M均為大于I的自然數(shù),所述M個觀測時刻依次表示為I時刻至M時刻;利用GPU生成N個I時刻初始粒子;設(shè)置觀測時刻參數(shù)k,k = 1,2,3,...M ; 52:利用CPU加載每個觀測時刻非線性系統(tǒng)的觀測向量,CPU將每個觀測時刻非線性系統(tǒng)的觀測向量傳輸至GPU顯存;當(dāng)k = I時,執(zhí)行步驟S3 ; 53:在GPU中,根據(jù)重要性密度函數(shù)對k時刻的每個初始粒子進(jìn)行重要性采樣,得出k時刻的多個重要性采樣粒子; 54=^GPU中,根據(jù)非線性系統(tǒng)的觀測模型,建立似然函數(shù);然后,通過最大化似然函數(shù),對k時刻的每個重要性采樣粒子進(jìn)行二次采樣,產(chǎn)生k時刻的多個最大似然采樣粒子; 55:利用GPU得出k時刻每個最大似然采樣粒子的接受概率; 56:在GPU中,根據(jù)k時刻每個最大似然采樣粒子,得出k時刻非線性系統(tǒng)的狀態(tài)向量的估計值; 57=GPU將k時刻每個最大似然采樣粒子的接受概率傳輸至CPU ;在CPU中,根據(jù)所述k時刻每個最大似然采樣粒子的接受概率,得出k時刻每個最大似然采樣粒子的重采樣索引;然后,CPU將k時刻每個最大似然采樣粒子的重采樣索引傳輸至GPU ;在GPU中,根據(jù)k時刻每個最大似然采樣粒子的重采樣索引,對k時刻每個最大似然采樣粒子進(jìn)行重采樣,得出k+Ι時刻的多個初 始粒子;$k值自增1,然后返回至步驟S3 ; 58:將步驟S3至步驟S7重復(fù)執(zhí)行M次,得出M個觀測時刻的非線性系統(tǒng)的狀態(tài)向量的估計值。
2.如權(quán)利要求1所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟SI中,建立非線性系統(tǒng)的狀態(tài)模型和觀測模型,非線性系統(tǒng)的狀態(tài)模型和觀測模型表示如下:
<
yk = h(xk) + vk 其中,xk表示k時刻非線性系統(tǒng)的m維狀態(tài)向量,yk表示k時刻非線性系統(tǒng)的η維觀測向量,m和η均為大于O的自然數(shù);f (.)為描述非線性系統(tǒng)狀態(tài)模型的非線性函數(shù),h (.)描述非線性系統(tǒng)的觀測模型的非線性函數(shù);uk為設(shè)定的服從高斯分布的k時刻狀態(tài)噪聲,當(dāng)m = I時,Uk服從均值為O方差為Q的高斯分布,當(dāng)m>l時,uk的均值為m維零向量,協(xié)方差矩陣為Q ;vk為設(shè)定的服從高斯分布的k時刻觀測噪聲,當(dāng)n = I時,Vk服從均值為O方差為R的高斯分布,當(dāng)η>1時,vk的均值為η維零向量,協(xié)方差矩陣為R ; 在步驟SI中,根據(jù)所述非線性系統(tǒng)的狀態(tài)模型和觀測模型,利用GPU生成I時刻至M時刻的狀態(tài)噪聲;在步驟SI中,I時刻第i個初始粒子值為#,i取I至N。
3.如權(quán)利要求2所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟S2中,k時刻非線性系統(tǒng)的觀測向量為yk ; 在步驟S3中,根據(jù)所述非線性系統(tǒng)的狀態(tài)模型,得出初始粒子的狀態(tài)轉(zhuǎn)移密度函數(shù)P (Xk I Xk-:),選取狀態(tài)轉(zhuǎn)移密度函數(shù)為重要性密度函數(shù)q (xk I Xk-!, Yk) = P (xk I XkJ,得出k時刻第i個初始粒子的重要性密度函數(shù)切X.1,q{x\ I d) = ρ{χ\ I X1k^l);根據(jù)k時刻第i個初始粒子的重要性密度函數(shù)對k時刻的每個初始粒子進(jìn)行重要性采樣,得出k時刻的多個重要性采樣粒子,k時刻的第i個重要性采樣粒子值為。
4.如權(quán)利要求2所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟S3中,得出的k時刻的第i個重要性采樣粒子值為.; 在步驟S4中,根據(jù)以下公式得出k時刻第i個最大似然采樣粒子值;
5.如權(quán)利要求2所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟S5中,根據(jù)所述非線性系統(tǒng)的觀測模型,得出似然函數(shù)P (yk I xk);確定k時刻第i個最大似然采樣粒子的重要性權(quán)值,當(dāng)k = I時,4=1 / M:當(dāng)k>l時,w^p(^yk I Xk)^^ ;根據(jù)k時刻第i個最大似然采樣粒子的重要性權(quán)值<,得出k時刻第i個最大似然采樣粒子的接受概率:,
6.如權(quán)利要求5所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟SI中,利用GPU生成NXM個在O到I之間均勻分布的隨機(jī)數(shù),在NXM個在O到I之間均勻分布的隨機(jī)數(shù)中,與k時刻第i個初始粒子對應(yīng)的隨機(jī)數(shù)表示為<,其中,k取I至M,i取I至N; 在步驟S7中,在GPU端,計算出與k時刻第i個初始粒子對應(yīng)的過渡取值Λ
7.如權(quán)利要求4所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟S4之后,在得出k時刻第i個最大似然采樣粒子值之后,將步驟S4重復(fù)執(zhí)行K次,在每次重復(fù)執(zhí)行步驟S4之前,將上次執(zhí)行步驟S4得出的k時刻第i個最大似然采樣粒子值賦值給.4|卜I,K為大于O的自然數(shù)。
8.如權(quán)利要求1所述的一種基于GPU架構(gòu)的改進(jìn)的粒子濾波方法,其特征在于,在步驟SI中,利用CPU分配CPU內(nèi)存空間和GPU顯存空間; 在步驟S8之后,利用CPU將已分配的CPU內(nèi)存空間和GPU顯存空間銷毀。
【文檔編號】H03H17/02GK104022756SQ201410241879
【公開日】2014年9月3日 申請日期:2014年6月3日 優(yōu)先權(quán)日:2014年6月3日
【發(fā)明者】王俊, 張培川, 武勇, 喬家輝 申請人:西安電子科技大學(xué)