本發(fā)明屬于數(shù)字通信差錯(cuò)控制編碼領(lǐng)域,具體涉及一種采用LDPC碼編碼的通信系統(tǒng)的錯(cuò)誤概率估計(jì)方法。
背景技術(shù):
在數(shù)字通信系統(tǒng)中,衡量糾錯(cuò)碼性能的指標(biāo)是比特或碼字的錯(cuò)誤概率,比特或碼字的錯(cuò)誤概率反映了系統(tǒng)的可靠性。目前,獲取編碼通信系統(tǒng)錯(cuò)誤概率的方法有三大類:解析法,計(jì)算機(jī)仿真方法及基于硬件平臺(tái)的仿真方法。針對(duì)碼長(zhǎng)為有限長(zhǎng)的LDPC碼的性能估計(jì),現(xiàn)有的解析法應(yīng)用起來(lái)非常困難;并且基于硬件平臺(tái)的仿真方法的開發(fā)周期長(zhǎng)、成本高、可移植性差,因此仿真方法的應(yīng)用獲得了極大的推廣。
目前,蒙特卡羅(Monte Carlo,MC)法是糾錯(cuò)碼性能估計(jì)中最常用的仿真方法。它被廣泛應(yīng)用于估計(jì)通信系統(tǒng)的各個(gè)參量,其中最常見的,是估計(jì)通信系統(tǒng)的錯(cuò)誤概率。但是,LDPC碼在高信噪比下的錯(cuò)誤概率很低,運(yùn)用MC法估計(jì)該類碼的性能時(shí),估計(jì)器方差的收斂速度緩慢,需要耗費(fèi)大量的仿真時(shí)間。
針對(duì)該問(wèn)題,為減小仿真時(shí)間,研究者們提出了重點(diǎn)采樣(Importance Sampling,IS)法,該方法是一種能降低估計(jì)器方差的仿真方法,一定程度上解決了MC法在估計(jì)低錯(cuò)誤概率時(shí)遇到的問(wèn)題,已在LDPC碼的性能仿真中獲得了廣泛應(yīng)用,縮短了仿真時(shí)間。這種方法的關(guān)鍵在于選取一個(gè)合適的偏置分布,使導(dǎo)致譯碼錯(cuò)誤的樣本點(diǎn)數(shù)在仿真總樣本數(shù)中所占的比例升高,從而降低錯(cuò)誤概率估計(jì)器的方差,縮短仿真時(shí)間。最早應(yīng)用于LDPC碼性能仿真中的IS法是經(jīng)典IS法,在該方法中,偏置分布的獲取依賴于分析碼字結(jié)構(gòu)及錯(cuò)誤區(qū)域特性,當(dāng)碼字結(jié)構(gòu)是非規(guī)則結(jié)構(gòu),且仿真中采用迭代譯碼時(shí),上述分析變得十分困難,使得經(jīng)典的IS法不能估計(jì)非規(guī)則結(jié)構(gòu)的LDPC碼的性能。
自適應(yīng)重點(diǎn)采樣(Adaptive Importance Sampling,AIS)方法是上述經(jīng)典IS方法的一種改進(jìn)方法,它無(wú)需分析LDPC碼的碼字結(jié)構(gòu)或搜索陷阱集,能夠在有限次的迭代過(guò)程中自適應(yīng)地獲得趨近于最優(yōu)的偏置分布,因而能靈活應(yīng)用于各種類型的LDPC碼中。雙自適應(yīng)重點(diǎn)采樣(Dual Adaptive Importance Sampling,DAIS)法和快速平坦直方圖(Fast Flat Histogram,F(xiàn)FH)法是AIS法在糾錯(cuò)碼性能估計(jì)領(lǐng)域中的發(fā)展和應(yīng)用。該類方法利用一個(gè)預(yù)先定義的變量來(lái)控制偏置分布的更新,使偏置分布逐漸趨近于最優(yōu)。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下缺點(diǎn)和不足:
AIS方法和DAIS方法的收斂速度較慢,導(dǎo)致所需的樣本數(shù)較多。
為解決上述問(wèn)題,本發(fā)明提供了一種快速收斂的錯(cuò)誤概率估計(jì)方法。該方法引入一個(gè)輔助函數(shù),在DAIS法偏置分布的基礎(chǔ)上乘以該輔助函數(shù),人為地提高了仿真預(yù)設(shè)區(qū)域Ω內(nèi)的噪聲被抽取的概率,使得每次迭代過(guò)程中從原偏置分布中抽取的噪聲僅落入Ω內(nèi),最后引入權(quán)重以消除兩次偏置的影響。當(dāng)仿真收斂時(shí),得到該區(qū)域內(nèi)概率質(zhì)量函數(shù)的估計(jì)值,進(jìn)一步獲得LDPC碼的錯(cuò)誤概率。該方法與DAIS方法相比,能夠加快仿真的收斂速度,減少仿真所需的樣本數(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種快速收斂的估計(jì)LDPC碼錯(cuò)誤概率的方法,能加快傳統(tǒng)的雙自適應(yīng)重點(diǎn)采樣仿真的收斂速度,減少所需的仿真樣本數(shù),并且能夠精確地估計(jì)采用LDPC碼編碼的通信系統(tǒng)在高信噪比下的錯(cuò)誤概率,詳見下文描述。
一種快速收斂的估計(jì)LDPC碼錯(cuò)誤概率的方法。所述方法包括以下步驟:
(1)利用蒙特卡羅仿真方法確定參考信噪比SNRref;
(2)輸入待仿真的信噪比SNRobj,判斷輸入信噪比SNRobj是否小于SNRref,當(dāng)SNRobj≤SNRref時(shí),采用蒙特卡羅法估計(jì)系統(tǒng)的錯(cuò)誤概率,流程結(jié)束;當(dāng)SNRobj>SNRref時(shí),執(zhí)行步驟(3);
(3)定義控制變量V,將V的范圍劃分為若干個(gè)子區(qū)間,確定可信區(qū)間;定義輔助函數(shù),確定仿真預(yù)設(shè)區(qū)域Ω;
(4)估計(jì)在SNRobj下噪聲落入V的第k個(gè)子區(qū)間且導(dǎo)致譯碼錯(cuò)誤的概率Perr,k,obj;
(5)估計(jì)在SNRobj下導(dǎo)致譯碼錯(cuò)誤的所有噪聲中,落入V的第k個(gè)子區(qū)間的噪聲占總數(shù)的條件概率Pk|err,obj;
(6)計(jì)算在SNRobj下的錯(cuò)誤概率Perr,obj。
所述利用蒙特卡羅仿真方法確定參考信噪比SNRref的步驟具體為:
(1.1)初始化SNRref為一合適值;
(1.2)采用蒙特卡羅仿真方法估計(jì)SNRref下系統(tǒng)的錯(cuò)誤概率;
(1.3)判斷所得錯(cuò)誤概率是否在區(qū)間[10-4,10-3]之內(nèi),當(dāng)錯(cuò)誤概率落在區(qū)間[10-4,10-3]之內(nèi)時(shí),得到SNRref;當(dāng)錯(cuò)誤概率小于10-4時(shí),SNRref減小一個(gè)步長(zhǎng)ΔSNR,執(zhí)行步驟(1.2)~(1.3)直至滿足判斷條件,得到SNRref;當(dāng)錯(cuò)誤概率大于10-3時(shí),SNRref增加一個(gè)步長(zhǎng)ΔSNR,執(zhí)行步驟(1.2)~(1.3)直至滿足判斷條件,得到SNRref。
所述定義控制變量V,將V的范圍劃分為若干個(gè)子區(qū)間,確定可信區(qū)間;定義輔助函數(shù),確定仿真預(yù)設(shè)區(qū)間Ω具體為:
(3.1)控制變量其中n為L(zhǎng)DPC碼的碼長(zhǎng),zl是噪聲z的第l個(gè)分量,當(dāng)zl與調(diào)制后的信號(hào)符號(hào)相反時(shí),H(qlzl)=1,當(dāng)zl與調(diào)制后的信號(hào)符號(hào)相同時(shí),H(qlzl)=0;
(3.2)將V的取值范圍劃分為若干個(gè)子區(qū)間,SNRref下的劃分步驟具體為,
(3.2.1)將SNRref下的控制變量范圍[Vmin,ref,Vmax,ref]和子區(qū)間數(shù)目Lref暫設(shè)定為[0,1]和1000,子區(qū)間的長(zhǎng)度ΔV=(Vmax,ref-Vmin,ref)/Lref;
(3.2.2)運(yùn)行不包含譯碼的無(wú)約束仿真,獲得仿真樣本;
(3.2.3)當(dāng)仿真樣本數(shù)超過(guò)107時(shí),選取第一個(gè)噪聲數(shù)不為零的子區(qū)間k對(duì)應(yīng)的V值為Vmin,ref,選取最后一個(gè)噪聲數(shù)不為零的子區(qū)間k對(duì)應(yīng)的V值為Vmax,ref;
(3.2.4)將[Vmin,ref,Vmax,ref]劃分為L(zhǎng)ref=L0個(gè)子區(qū)間,L0可根據(jù)不同的LDPC碼的參數(shù)設(shè)定,并計(jì)算ΔV0=(Vmax,ref-Vmin,ref)/L0;
(3.3)確定可信區(qū)間具體為,
(3.3.1)采用包含譯碼的無(wú)約束仿真估計(jì)在SNRref下噪聲落入V的第k個(gè)子區(qū)間,且導(dǎo)致譯碼錯(cuò)誤的聯(lián)合概率Perr,k,ref;采用約束仿真估計(jì)SNRref下在導(dǎo)致譯碼錯(cuò)誤的所有噪聲中,落入V的第k個(gè)子區(qū)間的噪聲占總數(shù)的條件概率Pk|err,ref;
(3.3.2)選取聯(lián)合概率Perr,k,ref不為零的一段連續(xù)區(qū)域;
(3.3.3)在Perr,k,ref不為零的連續(xù)區(qū)域內(nèi),從最左端開始,選取子區(qū)間數(shù)為δ的區(qū)域并暫定為[V*,V**];
(3.3.4)在子區(qū)間數(shù)為δ的區(qū)域內(nèi)計(jì)算錯(cuò)誤概率Perr,ref=Perr,k,ref/Pk|err,ref,與MC的仿真結(jié)果進(jìn)行對(duì)比,當(dāng)錯(cuò)誤概率Perr,ref與MC的仿真結(jié)果之間的相對(duì)誤差小于等于10%時(shí),得到可信區(qū)間[V*,V**],當(dāng)相對(duì)誤差大于10%時(shí),保持區(qū)域內(nèi)的子區(qū)間數(shù)為δ,增大區(qū)間左右端點(diǎn)的值,重復(fù)步驟(3.3.4)以修正可信區(qū)間[V*,V**];
(3.4)輔助函數(shù)其中β>1,γ=2;Ω為[kmin,L]。
所述估計(jì)在SNRobj下噪聲落入V的第k個(gè)子區(qū)間且導(dǎo)致譯碼錯(cuò)誤的概率Perr,k,obj具體為:
(4.1)初始化不包含譯碼的無(wú)約束仿真中的控制變量范圍[Vmin,obj,Vmax,obj],子區(qū)間長(zhǎng)度ΔV及子區(qū)間的數(shù)目Lobj,具體為,
(4.1.1)將SNRobj下的控制變量范圍[Vmin,obj,Vmax,obj]和子區(qū)間數(shù)目Lobj暫設(shè)定為[0,V**]和1000,子區(qū)間的長(zhǎng)度ΔV=(Vmax,obj-Vmin,obj)/Lobj;
(4.1.2)運(yùn)行不包含譯碼的無(wú)約束仿真,獲得仿真樣本;
(4.1.3)選取噪聲數(shù)不為零且序號(hào)k最小的子區(qū)間對(duì)應(yīng)的V值為Vmin,obj,Vmax,obj=V**;
(4.1.4)將[Vmin,obj,Vmax,obj]劃分為L(zhǎng)obj個(gè)子區(qū)間,Lobj=(Vmax,obj-Vmin,obj)/ΔV0;
(4.2)運(yùn)行包含譯碼的無(wú)約束仿真,估計(jì)Perr,k,obj。
所述估計(jì)在SNRobj下導(dǎo)致譯碼錯(cuò)誤的所有噪聲中,落入V的第k個(gè)子區(qū)間的噪聲占總數(shù)的條件概率Pk|err,obj具體為:
(5.1)初始化約束仿真中的控制變量范圍[V′min,obj,V′max,obj],子區(qū)間長(zhǎng)度ΔV及子區(qū)間的數(shù)目L'obj;具體為,
(5.1.1)將[V′min,obj,V′max,obj]暫設(shè)定為[0,Vmax,obj],即[0,V**],子區(qū)間長(zhǎng)度ΔV=ΔV0,運(yùn)行包含譯碼的約束仿真,獲得仿真樣本;
(5.1.2)選取第一個(gè)噪聲數(shù)目不等于零的子區(qū)間對(duì)應(yīng)的V值為V′min,obj,則控制變量范圍為[V′min,obj,V**];
(5.1.3)計(jì)算L'obj=(V′max,obj-V′min,obj)/ΔV=(V**-V′min,obj)/ΔV0;
(5.2)運(yùn)行約束仿真,估計(jì)Pk|err,obj。
所述計(jì)算在SNRobj下的錯(cuò)誤概率Perr,obj具體為:
在可信區(qū)間內(nèi)計(jì)算平均值
所述步驟(3.2.2)、(4.1.2)中的不包含譯碼的無(wú)約束仿真具體為:
1)設(shè)定噪聲個(gè)數(shù)i=0,迭代次數(shù)j=1,第一次迭代過(guò)程中需要的總噪聲數(shù)目為N1,噪聲落入控制變量第k個(gè)子區(qū)間的概率其中1≤k≤L;
2)選取一個(gè)導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤的噪聲z0,i增1;
3)采用Metropolis算法生成一個(gè)新的噪聲,i增1;
4)計(jì)算新的噪聲落入的控制變量子區(qū)間k,k內(nèi)的噪聲數(shù)增1;
5)若i<N1,重復(fù)步驟3)~5);否則,執(zhí)行步驟6);
6)采用Berg遞歸公式計(jì)算
7)若輸出否則,i=0,j增1,下一次迭代過(guò)程中的總樣本數(shù)等于本次迭代中總樣本數(shù)的1.3倍,重復(fù)步驟2)至7),直至輸出
所述步驟(4.2)中包含譯碼的無(wú)約束仿真具體為:
1)設(shè)定噪聲個(gè)數(shù)i=0,迭代次數(shù)j=1,迭代過(guò)程中需要的總噪聲數(shù)目為N1,N1',第一次迭代中
2)選取一個(gè)導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤的噪聲z0,i增1;
3)采用Metropolis算法生成一個(gè)新的噪聲,i增1;
4)計(jì)算新的噪聲落入控制變量的子區(qū)間號(hào)k,k內(nèi)的噪聲數(shù)增1;
5)將新的噪聲加在全零碼字上,送入LDPC譯碼器;若譯碼器輸出端的錯(cuò)誤碼字?jǐn)?shù)為1,第k個(gè)子區(qū)間內(nèi)的錯(cuò)誤幀數(shù)增1;若譯碼器輸出端的錯(cuò)誤碼字?jǐn)?shù)為0,第k個(gè)子區(qū)間內(nèi)的錯(cuò)誤幀數(shù)不變;
6)若i<N1,重復(fù)步驟3)~6)直至不滿足判斷條件;否則,執(zhí)行步驟7);
7)采用Berg遞歸公式計(jì)算
8)若計(jì)算Ω區(qū)域內(nèi)的概率和j增1,執(zhí)行步驟9);否則,i=0,j增1,重復(fù)步驟2)~8),直至執(zhí)行步驟9);
9)采用Metropolis算法從引入了輔助函數(shù)之后的偏置分布中抽取一個(gè)新的噪聲,i增1;計(jì)算新的噪聲落入的控制變量的區(qū)間號(hào)k,k內(nèi)的噪聲數(shù)增1;
10)將新的噪聲加在全零的LDPC碼字上,送入譯碼器進(jìn)行判決;若新的噪聲導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤,k內(nèi)的錯(cuò)誤幀數(shù)增1;若未導(dǎo)致錯(cuò)誤,k內(nèi)的錯(cuò)誤幀數(shù)不變;
11)若i<N1',重復(fù)步驟9)~11),直至判斷條件成立,執(zhí)行步驟12);否則,執(zhí)行步驟12);
12)采用Berg遞歸公式計(jì)算進(jìn)一步計(jì)算
13)若輸出并計(jì)算Perr|k;否則,i=0,j增1,重復(fù)步驟9)~13),直到Ω區(qū)域內(nèi)的Pk估計(jì)值收斂,輸出并計(jì)算Perr|k;
14)計(jì)算Perr,k=PkPerr|k。
所述步驟(3.3.1)、(5.1)、(5.2)中約束仿真具體為:
1)設(shè)定噪聲個(gè)數(shù)i=0,迭代次數(shù)j=1,迭代過(guò)程中需要的總噪聲數(shù)目為N2,N'2,第一次迭代中
2)選取一個(gè)導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤的噪聲z0,i增1;
3)采用修改后的Metropolis算法生成一個(gè)新的噪聲,i增1;
4)計(jì)算新的噪聲落入控制變量的子區(qū)間號(hào)k,k內(nèi)的噪聲數(shù)增1;
5)若i<N2,重復(fù)步驟3)~5)直至判斷條件不成立;否則,執(zhí)行步驟6);若判斷條件成立;
6)采用Berg遞歸公式計(jì)算
7)若計(jì)算Ω區(qū)域內(nèi)的概率和j增1,執(zhí)行步驟8);否則,i=0,j增1,重復(fù)步驟2)~7),直至滿足執(zhí)行步驟8);
8)采用修改后的Metropolis算法從引入了輔助函數(shù)之后的偏置分布中抽取一個(gè)新的噪聲,i增1;計(jì)算新的噪聲落入的控制變量的區(qū)間號(hào)k,k內(nèi)的噪聲數(shù)增1;
9)若i<N'2,重復(fù)步驟8)~9),直至i=N'2,執(zhí)行步驟10);否則,執(zhí)行步驟10);
10)采用Berg遞歸公式計(jì)算進(jìn)一步計(jì)算
11)若輸出并計(jì)算Pk|err;否則,i=0,j增1,重復(fù)步驟8)~11),直到Ω區(qū)域內(nèi)的Pk|err估計(jì)值收斂,輸出并計(jì)算Pk|err。
所述的無(wú)約束仿真的步驟3)修改后的Metropolis算法具體為:
1)提取噪聲個(gè)數(shù)i,迭代次數(shù)j,噪聲z*,(i),表示噪聲維數(shù)的l=1;
2)令噪聲的第l維分量的下一個(gè)可能狀態(tài)其中,ε2為最大步長(zhǎng)因子,調(diào)整ε2使得每一次迭代過(guò)程中被接受的狀態(tài)數(shù)目除以總的狀態(tài)數(shù)目接近0.234,Δz~N(0,σ2);
3)產(chǎn)生兩個(gè)服從U(0,1)均勻分布的隨機(jī)數(shù)α1與α2,判斷
4)若l等于碼長(zhǎng)n,得到下一個(gè)可能的狀態(tài)執(zhí)行步驟5);否則,l增1,重復(fù)步驟2)~4),直至滿足條件l=n,執(zhí)行步驟5);
5)計(jì)算與
6)判斷E表示能夠?qū)е伦g碼器出現(xiàn)判決錯(cuò)誤的噪聲的集合;
7)輸出z*,(i+1)。
本發(fā)明引入一個(gè)輔助函數(shù),使得噪聲幾乎全部落入V值較大的區(qū)域,加快了該區(qū)域內(nèi)記錄噪聲數(shù)目的直方圖趨于平坦的速度,進(jìn)而加快了仿真的收斂速度,獲得了精確的LDPC碼的錯(cuò)誤概率。
附圖說(shuō)明
圖1是本發(fā)明的快速收斂的估計(jì)LDPC碼錯(cuò)誤概率方法的流程圖;
圖2是估計(jì)Perr,k,obj的流程圖;
圖3是圖2中的Metropolis算法的流程圖;
圖4是估計(jì)Pk|err,obj的流程圖;
圖5是圖4中的修改后的Metropolis算法的流程圖;
圖6是本發(fā)明的方法和DAIS方法的直方圖在Ω區(qū)域內(nèi)的收斂速度的對(duì)比示意圖;
圖7是MacKay(96,48)LDPC碼的仿真結(jié)果圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的快速收斂的估計(jì)LDPC碼錯(cuò)誤概率的方法做詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明包括以下六個(gè)步驟,
(1)利用蒙特卡羅仿真方法確定參考信噪比SNRref;
(2)輸入待仿真的信噪比SNRobj,判斷輸入信噪比SNRobj是否小于SNRref,當(dāng)SNRobj≤SNRref時(shí),采用蒙特卡羅法估計(jì)系統(tǒng)的錯(cuò)誤概率,流程結(jié)束;當(dāng)SNRobj>SNRref時(shí),執(zhí)行步驟(3);
(3)定義控制變量V,將V的范圍劃分為若干個(gè)子區(qū)間;定義輔助函數(shù),確定仿真預(yù)設(shè)區(qū)域Ω;
(4)估計(jì)在SNRobj下噪聲落入V的第k個(gè)子區(qū)間且導(dǎo)致譯碼錯(cuò)誤的概率Perr,k,obj;
(5)估計(jì)在SNRobj下導(dǎo)致譯碼錯(cuò)誤的所有噪聲中,落入V的第k個(gè)子區(qū)間的噪聲占總數(shù)的條件概率Pk|err,obj;
(6)計(jì)算在SNRobj下的錯(cuò)誤概率Perr,obj。
以下分別介紹上述六個(gè)步驟的具體實(shí)施步驟。
所述的步驟(1)具體為
(1.1)初始化SNRref為一合適值;
(1.2)采用蒙特卡羅仿真方法估計(jì)SNRref下系統(tǒng)的錯(cuò)誤概率;
(1.3)判斷所得錯(cuò)誤概率是否在區(qū)間[10-4,10-3]之內(nèi),當(dāng)錯(cuò)誤概率落在區(qū)間[10-4,10-3]之內(nèi)時(shí),得到SNRref;當(dāng)錯(cuò)誤概率小于10-4時(shí),SNRref減小一個(gè)步長(zhǎng)ΔSNR,執(zhí)行步驟(1.2)~(1.3)直至滿足判斷條件,得到SNRref;當(dāng)錯(cuò)誤概率大于10-3時(shí),SNRref增加一個(gè)步長(zhǎng)ΔSNR,執(zhí)行步驟(1.2)~(1.3)直至滿足判斷條件,得到SNRref。
所述的步驟(3)具體為:
(3.1)控制變量其中n為L(zhǎng)DPC碼的碼長(zhǎng),zl是噪聲z的第l個(gè)分量,當(dāng)zl與調(diào)制后的信號(hào)符號(hào)相反時(shí),H(qlzl)=1,當(dāng)zl與調(diào)制后的信號(hào)符號(hào)相同時(shí),H(qlzl)=0;
(3.2)將V的取值范圍劃分為若干個(gè)子區(qū)間,SNRref下的劃分步驟具體為,
(3.2.1)將SNRref下的控制變量范圍[Vmin,ref,Vmax,ref]和子區(qū)間數(shù)目Lref暫設(shè)定為[0,1]和1000,子區(qū)間的長(zhǎng)度ΔV=(Vmax,ref-Vmin,ref)/Lref;
(3.2.2)運(yùn)行不包含譯碼的無(wú)約束仿真,獲得仿真樣本;
(3.2.3)選取第一個(gè)噪聲數(shù)不為零的子區(qū)間k對(duì)應(yīng)的V值為Vmin,ref,選取最后一個(gè)噪聲數(shù)不為零的子區(qū)間k對(duì)應(yīng)的V值為Vmax,ref;
(3.2.4)將[Vmin,ref,Vmax,ref]劃分為L(zhǎng)ref=L0個(gè)子區(qū)間,L0可根據(jù)不同的LDPC碼的參數(shù)設(shè)定,并計(jì)算ΔV0=(Vmax,ref-Vmin,ref)/L0;
(3.3)確定可信區(qū)間具體為,
(3.3.1)采用包含譯碼的無(wú)約束仿真估計(jì)在SNRref下噪聲落入V的第k個(gè)子區(qū)間,且導(dǎo)致譯碼錯(cuò)誤的聯(lián)合概率Perr,k,ref;采用約束仿真估計(jì)SNRref下在導(dǎo)致譯碼錯(cuò)誤的所有噪聲中,落入V的第k個(gè)子區(qū)間的噪聲占總數(shù)的條件概率Pk|err,ref;
(3.3.2)選取聯(lián)合概率Perr,k,ref不為零的一段連續(xù)區(qū)域;
(3.3.3)在Perr,k,ref不為零的連續(xù)區(qū)域內(nèi),從最左端開始,選取子區(qū)間數(shù)為δ的區(qū)域并暫定為[V*,V**];
(3.3.4)在子區(qū)間數(shù)為δ的區(qū)域內(nèi)計(jì)算錯(cuò)誤概率Perr,ref=Perr,k,ref/Pk|err,ref,與MC的仿真結(jié)果進(jìn)行對(duì)比,當(dāng)錯(cuò)誤概率Perr,ref與MC的仿真結(jié)果之間的相對(duì)誤差小于等于10%時(shí),得到區(qū)間[V*,V**],當(dāng)相對(duì)誤差大于10%時(shí),保持區(qū)域內(nèi)的子區(qū)間數(shù)為δ,增大區(qū)間左右端點(diǎn)的值,重復(fù)步驟(3.3.4)以修正區(qū)間[V*,V**];
(3.4)輔助函數(shù)其中β>1,γ=2;Ω為[kmin,L]。
所述的步驟(4)具體為:
(4.1)初始化不包含譯碼的無(wú)約束仿真中的控制變量范圍[Vmin,obj,Vmax,obj],子區(qū)間長(zhǎng)度ΔV及子區(qū)間的數(shù)目Lobj,具體為,
(4.1.1)將SNRobj下的控制變量范圍[Vmin,obj,Vmax,obj]和子區(qū)間數(shù)目Lobj暫設(shè)定為[0,V**]和1000,子區(qū)間的長(zhǎng)度ΔV=(Vmax,obj-Vmin,obj)/Lobj;
(4.1.2)運(yùn)行不包含譯碼的無(wú)約束仿真,獲得仿真樣本;
(4.1.3)選取噪聲數(shù)不為零且序號(hào)k最小的子區(qū)間對(duì)應(yīng)的V值為Vmin,obj,Vmax,obj=V**;
(4.1.4)將[Vmin,obj,Vmax,obj]劃分為L(zhǎng)obj個(gè)子區(qū)間,Lobj=(Vmax,obj-Vmin,obj)/ΔV0;
(4.2)如圖2所示,運(yùn)行包含譯碼的無(wú)約束仿真,估計(jì)Perr,k,obj,具體為,
(4.2.1)設(shè)定噪聲個(gè)數(shù)i=0,迭代次數(shù)j=1,迭代過(guò)程中需要的噪聲數(shù)目為N1和N1',第一次迭代中
(4.2.2)從原始高斯分布中抽取一個(gè)噪聲z0,若z0能夠?qū)е伦g碼器出現(xiàn)判決錯(cuò)誤,令初始噪聲等于z0,i增1;否則,重復(fù)步驟(4.2.2),直至z0導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤,令初始噪聲等于z0,i增1;
(4.2.3)采用Metropolis算法生成一個(gè)新的噪聲z*,(i)=(z1,…,zn),其中n為碼長(zhǎng),i增1;
(4.2.4)計(jì)算新的噪聲z*,(i)落入的控制變量的子區(qū)間號(hào)k=(V(z*,(i))-Vmin,obj)/ΔV;第k個(gè)所述子區(qū)間內(nèi)的噪聲數(shù)目增1;
(4.2.5)將新的噪聲加在全零碼字上,送入LDPC譯碼器;若譯碼器輸出端的錯(cuò)誤碼字?jǐn)?shù)為1,第k個(gè)子區(qū)間內(nèi)的錯(cuò)誤幀數(shù)加1;若譯碼器輸出端的錯(cuò)誤碼字?jǐn)?shù)為0,第k個(gè)子區(qū)間內(nèi)的錯(cuò)誤幀數(shù)不變;
(4.2.6)若i<N1,重復(fù)步驟(4.2.3)~(4.2.6)直至不滿足判斷條件;否則,執(zhí)行步驟(4.2.7);
(4.2.7)采用如下Berg遞歸公式計(jì)算第j+1次迭代中(1≤k≤L)
其中
(4.2.8)若計(jì)算Ω區(qū)域內(nèi)的概率和j增1,執(zhí)行步驟(4.2.9);否則,i=0,j增1,重復(fù)所述步驟(4.2.2)~(4.2.8),直至滿足收斂條件,計(jì)算執(zhí)行步驟(4.2.9);
(4.2.9)采用Metropolis算法從引入了輔助函數(shù)之后的偏置分布中抽取一個(gè)新的噪聲z*,(i)=(z1,…,zn),i增1;計(jì)算新的噪聲落入的控制變量的區(qū)間號(hào)k=(V(z*,(i))-Vmin,obj)/ΔV,k內(nèi)的噪聲數(shù)增1;
(4.2.10)將噪聲z*,(i)加在全零的LDPC碼字上,送入所述譯碼器進(jìn)行判決,若新的噪聲導(dǎo)致譯碼器出現(xiàn)判決錯(cuò)誤,增1;否則,不變;
(4.2.11)若i≤N1',重復(fù)所述步驟(4.2.9)~(4.2.11),直至i=N1',執(zhí)行步驟(4.2.12);否則,執(zhí)行步驟(4.2.12);
(4.2.12)采用Berg遞歸公式計(jì)算第j+1次迭代中(1≤k≤L)
其中
進(jìn)一步,
(4.2.13)若輸出并計(jì)算執(zhí)行步驟(4.2.14);否則,i=0,j增1,重復(fù)步驟(4.2.9)~(4.2.13),直到Ω區(qū)域內(nèi)的Pk,obj估計(jì)值收斂,輸出并計(jì)算Perr|k,obj,執(zhí)行步驟(4.2.14)。
(4.2.14)計(jì)算Perr,k,obj=Pk,objPerr|k,obj。
如圖3所示,步驟(4.2.3)中所述Metropolis算法具體為:
1)提取噪聲個(gè)數(shù)i,迭代次數(shù)j,噪聲z*,(i),表示噪聲維數(shù)的l=1;
2)令噪聲的第l維分量的下一個(gè)可能狀態(tài)其中,ε1為最大步長(zhǎng)因子,調(diào)整ε1使得每一次迭代過(guò)程中被接受的狀態(tài)數(shù)目除以總的狀態(tài)數(shù)目接近0.234,Δz~N(0,σ2);
3)產(chǎn)生兩個(gè)服從U(0,1)均勻分布的隨機(jī)數(shù)α1與α2,判斷
4)若l等于碼長(zhǎng)n,得到下一個(gè)可能的狀態(tài)執(zhí)行步驟5);否則,l增1,重復(fù)步驟2)~4),直至滿足條件l=n,執(zhí)行步驟5);
5)計(jì)算與
6)判斷
7)輸出z*,(i+1)。
所述的步驟(5)具體為:
(5.1)初始化約束仿真中的控制變量范圍[V′min,obj,V′max,obj],子區(qū)間長(zhǎng)度ΔV及子區(qū)間的數(shù)目L'obj;具體為,
(5.1.1)將[V′min,obj,V′max,obj]暫設(shè)定為[0,Vmax,obj]即[0,V**],子區(qū)間長(zhǎng)度ΔV=ΔV0,運(yùn)行包含譯碼的約束仿真,獲得仿真樣本;
(5.1.2)選取第一個(gè)噪聲數(shù)目不等于零的子區(qū)間對(duì)應(yīng)的V值為V′min,obj,則控制變量范圍為[V′min,obj,V**];
(5.1.3)計(jì)算L'obj=(V′max,obj-V′min,obj)/ΔV=(V**-V′min,obj)/ΔV0;
(5.2)如圖4所示,運(yùn)行約束仿真,估計(jì)Pk|err,obj,具體為:
(5.2.1)設(shè)定噪聲個(gè)數(shù)i=0,迭代次數(shù)j=1,迭代過(guò)程中需要的總噪聲數(shù)目為N2和N'2,第一次迭代中
(5.2.2)初始噪聲等于z0,i加1;
(5.2.3)采用修改后的Metropolis算法生成一個(gè)新的噪聲z*,(i)=(z1,…,zn),其中n為碼長(zhǎng),i加1;
(5.2.4)計(jì)算新的噪聲z*,(i)落入的所述控制變量的子區(qū)間號(hào)k=(V(z*,(i))-V′min,obj)/ΔV,第k個(gè)所述子區(qū)間內(nèi)的噪聲數(shù)目增1;
(5.2.5)若i<N2,重復(fù)所述步驟(5.2.3)~(5.2.5),直至不滿足判斷條件,執(zhí)行步驟(5.2.6);否則,執(zhí)行步驟(5.2.6);
(5.2.6)采用Berg遞歸公式計(jì)算第j+1次迭代中(1≤k≤L'obj)
其中
(5.2.7)若計(jì)算Ω區(qū)域內(nèi)的概率和j增1,執(zhí)行步驟(5.2.8);否則,i=0,j增1,下一次迭代過(guò)程中總的仿真樣本數(shù)N2=1.3×N2,重復(fù)所述步驟(5.2.2)~(5.2.7),直至滿足計(jì)算PΩ,執(zhí)行步驟(5.2.8);
(5.2.8)采用修改后的Metropolis算法,從引入了輔助函數(shù)之后的偏置分布中抽取一個(gè)新的噪聲z*,(i)=(z1,…,zn),i增1;計(jì)算噪聲z*,(i)落入的所述控制變量的子區(qū)間號(hào)k,第k個(gè)所述子區(qū)間內(nèi)的噪聲數(shù)目增1;
(5.2.9)若i<N'2,重復(fù)所述步驟(5.2.8)~(5.2.9),直至不滿足所述判斷條件,執(zhí)行步驟(5.2.10);否則,執(zhí)行步驟(5.2.10);
(5.2.10)采用Berg遞歸公式計(jì)算第j+1次迭代中的(1≤k≤L'obj)
其中
進(jìn)一步,
(5.2.11)若輸出否則,i=0,j增1,重復(fù)步驟(5.2.8)~(5.2.11),直到Ω區(qū)域內(nèi)的Pk|err,obj估計(jì)值收斂,輸出
如圖5所示,所述的步驟(5.2.3)中修改后的Metropolis算法具體為:
1)提取噪聲個(gè)數(shù)i,迭代次數(shù)j,噪聲z*,(i),表示噪聲維數(shù)的l=1;
2)令噪聲的第l維分量的下一個(gè)可能狀態(tài)其中,ε2為最大步長(zhǎng)因子,調(diào)整ε2使得每一次迭代過(guò)程中被接受的狀態(tài)數(shù)目除以總的狀態(tài)數(shù)目接近0.234,Δz~N(0,σ2);
3)產(chǎn)生兩個(gè)服從U(0,1)均勻分布的隨機(jī)數(shù)α1與α2,判斷
4)若l等于碼長(zhǎng)n,得到下一個(gè)可能的狀態(tài)執(zhí)行步驟5);否則,l增1,重復(fù)步驟2)~4),直至滿足條件l=n,執(zhí)行步驟5);
5)計(jì)算與
6)判斷E表示能夠?qū)е伦g碼器出現(xiàn)判決錯(cuò)誤的噪聲的集合;
7)輸出z*,(i+1)。
所述的步驟(6)具體為:
在可信區(qū)間內(nèi)計(jì)算平均值
具體實(shí)施例
本發(fā)明以碼長(zhǎng)為96,碼率為1/2的MacKay(96,48)LDPC碼為一個(gè)特例,介紹本發(fā)明的一種快速收斂的估計(jì)LDPC碼錯(cuò)誤概率的方法。
仿真中,發(fā)送信號(hào)為全零碼字,調(diào)制方式為二進(jìn)制相移鍵控調(diào)制,已調(diào)信號(hào)為{+1,…,+1}。LDPC碼的譯碼器采用置信度傳播譯碼算法,迭代次數(shù)為5次。步驟(1)中SNRref為4dB,SNRobj為大于4dB的實(shí)數(shù),Perr指的是誤幀率(FER),也可指誤比特率(BER)。
步驟(1.1)中SNRref=1dB,步驟(1.3)中ΔSNR=1dB。步驟(3.3)中的區(qū)間[V*,V**]=[0.5,0.55],δ=30。步驟(4.1.1)中α=0.1240。步驟(4.2.1)中,第一次迭代中應(yīng)產(chǎn)生的總的噪聲數(shù)目N1=5000,N1'=10000,圖3中的最大步長(zhǎng)因子ε1=1.5。步驟(5.2.1)中,第一次迭代中應(yīng)產(chǎn)生的總噪聲數(shù)目N2=10000,N'2=100000,圖5中的最大步長(zhǎng)因子ε2=0.5。
如圖6所示,圖(a)是本發(fā)明提供的仿真方法的每個(gè)子區(qū)間內(nèi)的噪聲數(shù)目在Ω區(qū)域內(nèi)趨于平坦的速度,圖(b)是DAIS法的在Ω區(qū)域內(nèi)趨于平坦的速度。由于仿真所需的樣本數(shù)與Ω區(qū)域內(nèi)Pk及Pk|err估計(jì)值的收斂速度成正比,收斂速度越快,仿真所需的樣本數(shù)越少;并且,直方圖趨于平坦的速度越快,估計(jì)值收斂于真實(shí)值的速度越快。從圖中可以看出,在Ω區(qū)域內(nèi),本發(fā)明設(shè)計(jì)的方法的直方圖趨于平坦的速度較快,因此估計(jì)值收斂于真實(shí)值的速度較快,所需的仿真樣本數(shù)較少。
仿真結(jié)果顯示,在低信噪比區(qū)域,本發(fā)明提供的方法得到的FER及BER估計(jì)值與MC法的一致;在高信噪比區(qū)域,該方法能獲得LDPC碼的低FER及BER估計(jì)值,如圖7所示。
表1給出了MC法、DAIS法及快速收斂的錯(cuò)誤概率估計(jì)法這三種仿真方法所需譯碼的樣本數(shù)及仿真增益,仿真增益G1等于MC法所需譯碼的樣本數(shù)與其它兩種方法所需譯碼的樣本數(shù)之比,仿真增益G2等于DAIS法所需譯碼的樣本數(shù)與其它兩種方法所需譯碼的樣本數(shù)之比。其中,MC仿真所需的譯碼樣本數(shù)是在保證估計(jì)值精確度為10%的條件下,由N≥100/FER估計(jì)得到。仿真結(jié)果表明,本發(fā)明的快速收斂的估計(jì)LDPC碼的錯(cuò)誤概率方法所需的仿真樣本數(shù)少。
表1MC法、DAIS法及快速收斂的錯(cuò)誤概率估計(jì)法所需譯碼的樣本數(shù)及仿真增益