bch编码c语言有库么,BCH码的译码方法与流程
本發明涉及譯碼技術領域,尤其涉及一種BCH碼的譯碼方法。
背景技術:
目前,北斗衛星導航系統能夠持續地為中國及其周邊國家提供定位、導航和授時服務。對于衛星導航接收機來說,導航電文的準確性是非常重要的,它直接決定了接收機的定位精度,為了降低北斗衛星導航系統的誤碼率,導航電文采取了BCH編碼作為前向誤差修正編碼。
就目前而言,北斗衛星導航系統的BCH編碼的解碼方法分為兩類:硬判決譯碼和軟判決譯碼。硬判決譯碼雖然簡單易于設計實現,但是其性能非常差,只能實現對1個錯誤比特進行糾錯,當接收碼字的錯誤比特超過2個時,其解碼結果會產生更多的錯誤,可見,硬判決譯碼的編碼增益相對較小,只適用于信道噪聲相對較低的場合。軟判決譯碼作為北斗導航系統的BCH碼的譯碼方式被廣泛地研究,相比于硬判決譯碼有很高的編碼增益,但是軟判決譯碼的實現復雜度高、硬件實現成本較大。
技術實現要素:
本發明提供的BCH碼的譯碼方法,其具有較高的編碼增益、實現復雜度低以及易于硬件實現等特點,特別適合于低成本的北斗導航接收機使用。
第一方面,本發明提供一種BCH碼的譯碼方法,包括:
1)評估硬判決向量V中各位置元素的可靠性概率;
2)從所述硬判決向量V中選取L(L≥2)個可靠性概率低的待擦除位置;
3)對所述L個待擦除位置進行隨機成對組合,得到N個待擦除硬判決向量V1、V2、…、VN,其中,N=L(L-1)/2;
4)將第k個待擦除硬判決向量Vk中的兩個待擦除位置的值設為0以得到譯碼向量Vk0,并對所述譯碼向量Vk0進行硬判決譯碼以得到碼字Ck0,其中,k=1,2,…,N;
5)比較所述譯碼向量Vk0中的非擦除位置的值與所述碼字Ck0中對應位置的值是否均相同,如果是,則終止譯碼流程并將所述碼字Ck0作為最終譯碼結果,否則執行步驟6);
6)將第k個待擦除硬判決向量Vk中的兩個待擦除位置的值設為1以得到譯碼向量Vk1,并對所述譯碼向量Vk1進行硬判決譯碼以得到碼字Ck1;
7)比較所述譯碼向量Vk1中的非擦除位置的值與所述碼字Ck1中對應位置的值是否均相同,如果是,則終止譯碼流程并將所述碼字Ck1作為最終譯碼結果,否則執行步驟8);
8)判斷當前待擦除硬判決向量Vk是否為第N個待擦除硬判決向量,如果是,則結束譯碼流程并從已得到的2N個碼字選擇一致性最好的碼字作為最終譯碼結果,所述2N個碼字包括Ck0和Ck1,否則返回步驟4)對下一個待擦除硬判決向量進行譯碼。
可選地,所述評估硬判決向量V中各位置元素的可靠性概率包括:
對接收到的信息進行多比特量化;
將各個量化值與硬判決門限進行比較,以得到硬判決向量V;
將所述各個量化值與可靠性概率判決門限進行比較,以評估所述硬判決向量V中各個位置元素的可靠性概率。
本發明實施例提供的BCH碼的譯碼方法,與現有技術相比,本發明利用構建的譯碼向量與對所述譯碼向量進行硬判決譯碼所獲得的碼字在非擦除位置的一致性判定來決定是否終止譯碼流程,從而使得在不影響譯碼性能的基礎上,減少了平均待譯碼向量的個數,很好地實現了譯碼性能與實現復雜度之間的權衡。具體來說:一方面,本發明能夠糾正2個錯誤比特,從而具有較高的編碼增益,可見本發明克服了硬判決譯碼的編碼增益較低,只能糾正1個錯誤比特的缺陷;另一方面,本發明的譯碼方案具有平均譯碼向量個數少的特點,從而使得譯碼所需的計算量大大降低,可見本發明克服了軟判決譯碼的計算復雜度大導致的硬件實現復雜度和硬件實現成本較大的缺陷。
附圖說明
圖1為本發明一實施例BCH碼的譯碼方法的流程圖;
圖2為本發明上述實施例中評估硬判決向量V中各位置元素的可靠性概率的流程圖;
圖3為以BCH(15,11)譯碼為例,說明本發明譯碼方案中待擦除位置的選取與組合的示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明提供一種BCH碼的譯碼方法,如圖1所示,所述方法包括:
S11、評估硬判決向量V中各位置元素的可靠性概率。
S12、從所述硬判決向量V中選取L(L≥2)個可靠性概率低的待擦除位置。
S13、對所述L個待擦除位置進行隨機成對組合,得到N個待擦除硬判決向量V1、V2、…、VN,其中,N=L(L-1)/2。
例如,以BCH(15,11)譯碼為例,其中,BCH(15,11)表示硬判決向量V碼長為15,信息位長為11,校驗信息位長為4,來說明待擦除位置的選取與組合,如圖3所示:從所述硬判決向量V中選取4個可靠性概率低的待擦除位置,其中,硬判決向量V中第3、6、10、13位被選取為待擦除位置;對上述4個待擦除位置進行隨機成對組合,得到6個待擦除硬判決向量。
S14、將第k個待擦除硬判決向量Vk中的兩個待擦除位置的值設為0以得到譯碼向量Vk0,并對所述譯碼向量Vk0進行硬判決譯碼以得到碼字Ck0,其中,k=1,2,…,N。
S15、比較所述譯碼向量Vk0中的非擦除位置的值與所述碼字Ck0中對應位置的值是否均相同,如果是,則執行步驟S16,否則執行步驟S17。
S16、終止譯碼流程并將所述碼字Ck0作為最終譯碼結果。
S17、將第k個待擦除硬判決向量Vk中的兩個待擦除位置的值設為1以得到譯碼向量Vk1,并對所述譯碼向量Vk1進行硬判決譯碼以得到碼字Ck1。
S18、比較所述譯碼向量Vk1中的非擦除位置的值與所述碼字Ck1中對應位置的值是否均相同,如果是,則執行步驟S19,否則執行步驟S20。
S19、終止譯碼流程并將所述碼字Ck1作為最終譯碼結果。
S20、判斷當前待擦除硬判決向量Vk是否為第N個待擦除硬判決向量,如果是,則執行步驟S21,否則返回步驟S14對下一個待擦除硬判決向量進行譯碼。
S21、結束譯碼流程并從已得到的2N個碼字選擇一致性最好的碼字作為最終譯碼結果,所述2N個碼字包括Ck0和Ck1。
其中,所述一致性最好的含義為:
雖然譯碼向量中非擦除位置的值與硬判決譯碼得到的碼字中對應位置的值不是均相同,但是位置值相同的數目最多。
本發明實施例提供的BCH碼的譯碼方法,與現有技術相比,本發明利用構建的譯碼向量與對所述譯碼向量進行硬判決譯碼所獲得的碼字在非擦除位置的一致性判定來決定是否終止譯碼流程,從而使得在不影響譯碼性能的基礎上,減少了平均待譯碼向量的個數,很好地實現了譯碼性能與實現復雜度之間的權衡。具體來說:一方面,本發明能夠糾正2個錯誤比特,從而具有較高的編碼增益,可見本發明克服了硬判決譯碼的編碼增益較低,只能糾正1個錯誤比特的缺陷;另一方面,本發明的譯碼方案具有平均譯碼向量個數少的特點,從而使得譯碼所需的計算量大大降低,可見本發明克服了軟判決譯碼的計算復雜度大導致的硬件實現復雜度和硬件實現成本較大的缺陷。
下面以BCH(15,11)譯碼為例,其中,BCH(15,11)表示硬判決向量V碼長為15,信息位長為11,校驗信息位長為4,對本發明的譯碼方案進行詳細闡述,具體為:
1)評估硬判決向量V中15個位置元素的可靠性概率;
2)從所述硬判決向量V中選取4個可靠性概率低的待擦除位置,如圖3所示,硬判決向量V中第3、6、10、13位被選取為待擦除位置;
3)對上述4個待擦除位置進行隨機成對組合,得到6個待擦除硬判決向量V1、V2、…、V6。
可選地,如圖2所示,所述步驟S11包括:
S11-1、對接收到的信息進行多比特量化;
S11-2、將各個量化值與硬判決門限進行比較,以獲得硬判決向量V;
S11-3、將所述各個量化值與可靠性概率判決門限進行比較,以評估所述硬判決向量V中各位置元素的可靠性概率。
下面以BCH(15,11)譯碼為例,其中,BCH(15,11)表示硬判決向量碼長為15,信息位長為11,校驗信息位長為4,對本發明的譯碼方案中評估硬判決向量中各個位置元素的可靠性概率的過程進行詳細闡述,具體為:
1)對接收到的信息進行6比特量化;
2)將各個量化值與硬判決門限0進行比較,其中,量化值大于等于0時判決為1,量化值小于0時判決為0,從而獲得硬判決向量V;
3)將所述各個量化值與可靠性概率判決門限±15進行比較,如果量化值處于±15范圍內,則表示該位置元素的硬判決結果的可靠性低,其中,可靠性使用概率來表示,可靠性概率低表示硬判決解決的可靠性低;如果量化值處于±15范圍之外,則表示該位置元素的硬判決結果的可靠性高,其中,可靠性使用概率來表示,可靠性概率高表示硬判決解決的可靠性高。
本領域普通技術人員可以理解實現上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(Read-OnlyMemory,ROM)或隨機存儲記憶體(RandomAccessMemory,RAM)等。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求的保護范圍為準。
總結
以上是生活随笔為你收集整理的bch编码c语言有库么,BCH码的译码方法与流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Egg中使用DiyUpload实现图片批
- 下一篇: matlab改进中值滤波,求助中值滤波和