• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      適用于衛(wèi)星通信的速率自適應(yīng)型LDPC譯碼器設(shè)計(jì)

      2019-05-29 07:26:10田瑞甫張朝路
      無(wú)線(xiàn)電工程 2019年6期
      關(guān)鍵詞:譯碼器譯碼校驗(yàn)

      田瑞甫,劉 聚,鐘 鳴,張朝路,侯 俊

      (上海航天電子技術(shù)研究所,上海 201109)

      0 引言

      衛(wèi)星通信信號(hào)在傳輸過(guò)程中受衰減和噪聲干擾的影響會(huì)出現(xiàn)差錯(cuò),信道編碼技術(shù)作為保證信息可靠傳輸?shù)挠行侄伪粡V泛應(yīng)用于衛(wèi)星通信系統(tǒng)[1-2]。LDPC最早由Gallager提出[3],經(jīng)Mackay等人進(jìn)一步研究表明[4],LDPC碼的性能在置信傳播(Belief Propagation,BP)譯碼算法下可以接近香農(nóng)極限,且具有較低的誤碼平臺(tái)[5]。準(zhǔn)循環(huán)LDPC(QC-LDPC)碼,因其校驗(yàn)矩陣具有準(zhǔn)循環(huán)性,可以采用簡(jiǎn)單的移位寄存器實(shí)現(xiàn)具有線(xiàn)性復(fù)雜度的編譯碼,硬件復(fù)雜度大大降低,是CCSDS推薦的衛(wèi)星通信糾錯(cuò)碼型之一[6]。

      BP算法涉及較大動(dòng)態(tài)范圍取值的非線(xiàn)性函數(shù)的計(jì)算,不易于硬件實(shí)現(xiàn)[7]。因此,實(shí)際應(yīng)用中通常對(duì)BP譯碼算法進(jìn)行簡(jiǎn)化,MMSA被認(rèn)為是在譯碼性能和實(shí)現(xiàn)復(fù)雜度間取得較好平衡的一種算法[8-9]。MMSA算法在譯碼處理過(guò)程中,所需主時(shí)鐘高于輸入數(shù)據(jù)伴隨時(shí)鐘,如果主時(shí)鐘由輸入數(shù)據(jù)伴隨時(shí)鐘倍頻后得到,需要通過(guò)硬件鎖相環(huán)實(shí)現(xiàn),對(duì)于不同輸入數(shù)據(jù)速率的譯碼運(yùn)算往往需要復(fù)雜硬件邏輯和時(shí)鐘切換邏輯[10-11]。

      根據(jù)型號(hào)任務(wù)需求,設(shè)計(jì)的LDPC譯碼器采用MMSA譯碼算法實(shí)現(xiàn)LDPC譯碼功能,并在此基礎(chǔ)上通過(guò)對(duì)輸入數(shù)據(jù)加填充幀和輸出數(shù)據(jù)伴隨有效性標(biāo)記位方式,實(shí)現(xiàn)了單一主時(shí)鐘處理多種速率數(shù)據(jù)的譯碼運(yùn)算。

      1 MMSA譯碼算法

      MMSA譯碼過(guò)程是不斷迭代的消息傳遞過(guò)程,一般包含4個(gè)步驟[12-13]:

      ① 初始化。設(shè)定最大迭代次數(shù),并對(duì)每個(gè)變量點(diǎn)賦予由信道得到的LLR,作為變量點(diǎn)的內(nèi)信息。

      (1)

      式中,Pn為第n個(gè)變量節(jié)點(diǎn)的信道先驗(yàn)信息。

      ② 第t次迭代,變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的傳遞信息。

      (2)

      ③ 第t次迭代,校驗(yàn)節(jié)點(diǎn)到變量節(jié)點(diǎn)的信息傳遞。

      (3)

      迭代若干次后,若滿(mǎn)足最大迭代次數(shù),計(jì)算后驗(yàn)概率并判決,否則重復(fù)步驟②和步驟③。

      ④ 計(jì)算變量節(jié)點(diǎn)的后驗(yàn)概率并判決輸出。

      每個(gè)變量節(jié)點(diǎn)輸出的后驗(yàn)概率為:

      (4)

      根據(jù)以下規(guī)則對(duì)每一個(gè)比特進(jìn)行判決:

      (5)

      式中,最大后驗(yàn)概率L(post)(un)為變量節(jié)點(diǎn)n的外信息與節(jié)點(diǎn)n的初始似然比信息之和。

      2 譯碼器結(jié)構(gòu)選擇

      QC-LDPC碼的譯碼器結(jié)構(gòu)主要有3種[14-15]:

      ① 串行譯碼:通過(guò)重復(fù)使用一個(gè)CFU和VFU運(yùn)算單元來(lái)完成所有行(列)運(yùn)算,占用資源最少,但需要很多個(gè)時(shí)鐘周期才能完成一次完整的行(列)更新。

      ② 全并行結(jié)構(gòu):通過(guò)為每一行(列)配置一個(gè)運(yùn)算單元,并使所有的運(yùn)算單元并行工作來(lái)提高運(yùn)算速度,最少只需要2個(gè)時(shí)鐘周期就可以完成一次迭代運(yùn)算,但是需要消耗很多硬件資源,芯片難以支持。

      ③ 半并行結(jié)構(gòu):利用QC-LDPC校驗(yàn)矩陣準(zhǔn)循環(huán)的特點(diǎn),可以使用半并行結(jié)構(gòu),將校驗(yàn)矩陣劃分成若干個(gè)子塊,每個(gè)子塊的節(jié)點(diǎn)映射成一個(gè)硬件處理單元,每次迭代過(guò)程中通過(guò)重復(fù)一個(gè)子塊的校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)運(yùn)算單元來(lái)計(jì)算該子塊校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)的外信息,所有節(jié)點(diǎn)的信息更新依次由這一個(gè)子塊節(jié)點(diǎn)處理單元來(lái)完成,這種結(jié)構(gòu)能夠獲得串行和并行的折中。

      本文設(shè)計(jì)基于CCSDS標(biāo)準(zhǔn)(8176,7154)的縮短LDPC碼譯碼器,采用部分并行譯碼結(jié)構(gòu),根據(jù)H矩陣特點(diǎn),使用2個(gè)校驗(yàn)節(jié)點(diǎn)運(yùn)算單元,16個(gè)變量節(jié)點(diǎn)運(yùn)算單元同時(shí)運(yùn)算,即行、列更新運(yùn)算的并行度分別是2,16,這樣的結(jié)構(gòu)需要511×2或者1 022個(gè)時(shí)鐘周期才能完成一次迭代運(yùn)算,數(shù)據(jù)吞吐量[13]為:

      (6)

      式中,dnum為信息比特?cái)?shù);fmax為譯碼器的工作時(shí)鐘頻率;nc為一次迭代所需周期數(shù);Niter為譯碼器的迭代次數(shù),如果時(shí)鐘工作頻率為100 MHz,則譯碼器的吞吐量等于70 Mbps。為簡(jiǎn)化時(shí)鐘處理邏輯,采用數(shù)據(jù)吞吐率為0.5,即100 MHz主時(shí)鐘處理數(shù)據(jù)速率50 Mbps。

      3 譯碼器設(shè)計(jì)

      譯碼器結(jié)構(gòu)如圖1所示。

      輸入數(shù)據(jù)處理模塊對(duì)接收各速率數(shù)據(jù)做幀同步檢測(cè)、跨時(shí)鐘域處理和填充空幀。由伴隨時(shí)鐘將數(shù)據(jù)送入FIFO,同時(shí)對(duì)輸入數(shù)據(jù)做幀格式檢測(cè),輸入數(shù)據(jù)格式錯(cuò)誤則對(duì)FIFO做復(fù)位處理,格式正確數(shù)據(jù)送入后續(xù)處理模塊。本地時(shí)鐘讀取FIFO數(shù)據(jù)時(shí)根據(jù)FIFO的空滿(mǎn)狀態(tài)添加空幀,以連續(xù)數(shù)據(jù)形式送入后續(xù)譯碼模塊,并將數(shù)據(jù)是否有效狀態(tài)量Flag送入輸出數(shù)據(jù)處理模塊。

      圖1 譯碼器結(jié)構(gòu)

      輸出數(shù)據(jù)處理模塊根據(jù)式(4)和式(5)對(duì)完成迭代譯碼后的數(shù)據(jù)硬判決后輸出,并根據(jù)接收接口處理模塊中FIFO讀取數(shù)據(jù)的有效性,對(duì)輸出數(shù)據(jù)有效性做標(biāo)定。

      3.1 填充幀處理單元設(shè)計(jì)

      輸入數(shù)據(jù)處理模塊填充幀處理單元狀態(tài)轉(zhuǎn)移如圖2所示,用于FIFO數(shù)據(jù)讀取狀態(tài)控制。

      圖2 填充幀處理單元狀態(tài)轉(zhuǎn)移示意

      根據(jù)型號(hào)任務(wù)需求,為適應(yīng)不同衛(wèi)星通信工作模式,需要同一譯碼器完成多種速率LDPC譯碼任務(wù)。為解決不同速率時(shí)復(fù)雜時(shí)鐘切換邏輯問(wèn)題,也為后續(xù)更多速率譯碼留有升級(jí)空間,采用了單一主時(shí)鐘加填充幀的處理模式。當(dāng)輸入數(shù)據(jù)速率低于處理主時(shí)鐘時(shí),添加空幀使核心譯碼模塊處于固定速率連續(xù)工作狀態(tài),不需要時(shí)鐘切換。

      輸入數(shù)據(jù)處理模塊FIFO的讀取時(shí)鐘固定為50 MHz,讀取端根據(jù)設(shè)置FIFO的滿(mǎn)/空標(biāo)記讀取或添加填充幀,共3個(gè)狀態(tài):初始狀態(tài)、讀FIFO數(shù)據(jù)和填充空數(shù)據(jù),狀態(tài)標(biāo)記由Sta表示(Sta=10表示FIFO的滿(mǎn)狀態(tài)標(biāo)記為“1”,空狀態(tài)標(biāo)記為“0”)。

      FIFO的讀取標(biāo)記經(jīng)延時(shí)后送至輸出數(shù)據(jù)處理模塊,作為數(shù)據(jù)有效性標(biāo)記位伴隨輸出(以高電平表示該幀數(shù)據(jù)有效,低電平表示該幀數(shù)據(jù)無(wú)效)。后續(xù)數(shù)據(jù)處理單機(jī)根據(jù)伴隨標(biāo)記位狀態(tài)讀取數(shù)據(jù)。

      3.2 變量節(jié)點(diǎn)單元設(shè)計(jì)

      迭代譯碼模塊中變量節(jié)點(diǎn)單元結(jié)構(gòu)如圖3所示[13],用于實(shí)現(xiàn)變量節(jié)點(diǎn)數(shù)據(jù)更新。

      變量節(jié)點(diǎn)更新過(guò)程又稱(chēng)為垂直運(yùn)算,主要實(shí)現(xiàn)式(2)內(nèi)容,作用包括2部分:一部分是更新變量節(jié)點(diǎn)消息,送至迭代信息存儲(chǔ)器用于給校驗(yàn)節(jié)點(diǎn)進(jìn)行下一次迭代;另一部分(vout)是更新后驗(yàn)概率消息,該消息主要用于硬判決。

      變量節(jié)點(diǎn)單元工作流程為:從每個(gè)信道初始信息存儲(chǔ)器中讀出一個(gè)信道似然比(LLR)信息。同時(shí),根據(jù)地址從4個(gè)迭代信息存儲(chǔ)器中讀出4個(gè)校驗(yàn)節(jié)點(diǎn)信息。變量節(jié)點(diǎn)單元通過(guò)對(duì)由迭代信息存儲(chǔ)器中讀出的校驗(yàn)節(jié)點(diǎn)信息和LLR信息進(jìn)行垂直運(yùn)算,得到新的變量節(jié)點(diǎn)信息。最后,將新的變量節(jié)點(diǎn)信息按讀地址寫(xiě)回到各迭代信息存儲(chǔ)器中,完成置信度信息更新。完成一次迭代的垂直運(yùn)算需要對(duì)這個(gè)過(guò)程重復(fù)10次。

      垂直運(yùn)算過(guò)程采用5級(jí)流水線(xiàn)方式,完成算法中變量節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的計(jì)算,其中式(2)的factor取0.75[8],只要進(jìn)行移位相加就能實(shí)現(xiàn)。

      圖3 變量節(jié)點(diǎn)單元結(jié)構(gòu)

      圖3中的in0,in1,in2,in3是在Tanner圖中與一個(gè)變量節(jié)點(diǎn)相連的4個(gè)校驗(yàn)節(jié)點(diǎn)更新后的信息。IntrinsicValue是變量節(jié)點(diǎn)的初始化信息。out0~out3是4個(gè)變量節(jié)點(diǎn)進(jìn)行更新之后的信息。vout是內(nèi)信息和4個(gè)輸入信息的和,通過(guò)檢查該信息的最高位來(lái)判決。

      3.3 校驗(yàn)節(jié)點(diǎn)單元設(shè)計(jì)

      迭代譯碼模塊中校驗(yàn)節(jié)點(diǎn)單元結(jié)構(gòu)如圖4所示[12],用于實(shí)現(xiàn)校驗(yàn)節(jié)點(diǎn)數(shù)據(jù)更新。

      圖4 校驗(yàn)節(jié)點(diǎn)單元結(jié)構(gòu)

      校驗(yàn)節(jié)點(diǎn)處理單元主要實(shí)現(xiàn)式(3),用來(lái)完成校驗(yàn)節(jié)點(diǎn)消息的更新,其更新過(guò)程稱(chēng)為水平運(yùn)算,是迭代過(guò)程的一部分,進(jìn)行的操作主要是使譯碼器對(duì)每個(gè)行塊的第i行做行置信度信息更新運(yùn)算。

      其工作流程為:每個(gè)校驗(yàn)節(jié)點(diǎn)從32個(gè)迭代信息存儲(chǔ)器中讀出32個(gè)變量節(jié)點(diǎn)消息。由于32個(gè)存儲(chǔ)器的讀地址均為i,因此這一步操作只需要計(jì)數(shù)器就能實(shí)現(xiàn)信息的讀取。然后,32個(gè)變量節(jié)點(diǎn)信息讀出后直接送給該校驗(yàn)節(jié)點(diǎn)單元進(jìn)行信息更新運(yùn)算,得到新的校驗(yàn)節(jié)點(diǎn)信息。最后,將新的校驗(yàn)節(jié)點(diǎn)信息按讀地址寫(xiě)回到各迭代信息存儲(chǔ)器中,完成校驗(yàn)節(jié)點(diǎn)信息更新。完成一次迭代的水平運(yùn)算,即校驗(yàn)節(jié)點(diǎn)信息更新運(yùn)算,需要對(duì)這個(gè)過(guò)程重復(fù)10次。

      在修正最小和算法中,校驗(yàn)節(jié)點(diǎn)處理模塊需要完成的工作是求出與一個(gè)校驗(yàn)節(jié)點(diǎn)相連接各變量節(jié)點(diǎn)數(shù)據(jù)(除自身外)絕對(duì)值的最小值。如果當(dāng)前節(jié)點(diǎn)的值為最小值,則輸出為其他所有值中的最小值,即次最小值。求各數(shù)據(jù)符號(hào)值的乘積,將所得最小值與符號(hào)值合并成新數(shù)據(jù)。

      圖4所示結(jié)構(gòu)圖主要實(shí)現(xiàn)功能:

      (7)

      各符號(hào)的乘積可以通過(guò)查找表的方式得到。

      3.4 控制單元設(shè)計(jì)

      迭代譯碼模塊中控制單元流程如圖5所示,用于各單元工作協(xié)調(diào)控制。

      圖5 控制單元流程

      迭代譯碼模塊的工作流程[16]如下:

      ① 總狀態(tài)機(jī)控制初始信息存儲(chǔ)單元的一組RAM,該組RAM寫(xiě)使能有效,接收來(lái)自信道的信息,當(dāng)一幀數(shù)據(jù)全部存儲(chǔ)后,切換到另一組RAM存儲(chǔ)下一幀數(shù)據(jù),同時(shí)返還給總控一個(gè)信號(hào)。

      ② 控制單元在一幀數(shù)據(jù)存儲(chǔ)結(jié)束后,使能VFU模塊,并使能初始化存儲(chǔ)單元讀取功能,進(jìn)行變量節(jié)點(diǎn)更新運(yùn)算,運(yùn)算結(jié)果寫(xiě)入外信息存儲(chǔ)模塊。

      ③ VFU運(yùn)算完成后,VFU單元給總控發(fā)送結(jié)束信號(hào),總控屏蔽VFU和初始化存儲(chǔ)單元,啟動(dòng)CFU的運(yùn)算。CFU從外信息存儲(chǔ)單元讀取信息,并將運(yùn)算結(jié)果寫(xiě)入、讀出地址相同位置中。

      ④ CFU運(yùn)算結(jié)束后,CFU單元給總控發(fā)送結(jié)束信號(hào),總控屏蔽CFU單元,啟動(dòng)VFU單元和初始化存儲(chǔ)單元,VFU單元和CFU單元交替運(yùn)算。

      ⑤ 經(jīng)過(guò)10次迭代運(yùn)算后,進(jìn)行硬判決,對(duì)判決數(shù)據(jù)做有效性標(biāo)記并輸出,開(kāi)始下一幀數(shù)據(jù)迭代譯碼。

      4 譯碼器實(shí)現(xiàn)

      基于前文設(shè)計(jì)思想,采用VHDL語(yǔ)言編寫(xiě),ISE14.7編譯環(huán)境,在Xilinx公司Virtex-4系列FPGA芯片XC4VSX55上實(shí)現(xiàn)了CCSDS規(guī)定的縮短(8176,7154)準(zhǔn)循環(huán)LDPC譯碼器。譯碼器的邏輯資源和存儲(chǔ)資源利用情況如表1所示。

      表1 譯碼器資源利用率

      資源類(lèi)別數(shù)目占總資源百分比/%Slice Flip-Flops14 25429Slice LUT15 47031Bonded IOBs112Block RAM/FIFO13140

      譯碼器設(shè)計(jì)實(shí)現(xiàn)后,需要對(duì)其進(jìn)行測(cè)試,以驗(yàn)證其糾錯(cuò)性能[17]。譯碼器測(cè)試原理如圖6所示。

      圖6 譯碼器測(cè)試原理

      測(cè)試步驟如下:

      ① 碼源產(chǎn)生PN15偽隨機(jī)數(shù)據(jù),按CCSDS標(biāo)準(zhǔn)組幀;

      ② 在數(shù)傳發(fā)射機(jī)內(nèi)進(jìn)行LDPC編碼和QPSK調(diào)制;

      ③ 射頻信號(hào)通過(guò)下變頻器到中頻信號(hào),并在中頻加噪聲;

      ④ 在接收機(jī)內(nèi)進(jìn)行QPSK解調(diào)[18],并標(biāo)定輸出Eb/N0值;

      ⑤ LDPC譯碼,分別比對(duì)譯碼前后對(duì)應(yīng)誤碼率。

      分別在50,30,20,10,2,1 Mbps速率下進(jìn)行了測(cè)試,不同速率下譯碼性能測(cè)試結(jié)果一致,如表2所示。

      表2 譯碼性能測(cè)試結(jié)果

      解調(diào)后(Eb/N0)/dB譯碼前BER/bit譯碼后BER/bit12.40011.91.56?10-70102.12?10-505.85.82?10-305.48.14?10-31.26?10-7

      測(cè)試結(jié)果顯示,設(shè)計(jì)的譯碼器在BER為1×10-7量級(jí)有6.5 dB增益。

      5 結(jié)束語(yǔ)

      以航天型號(hào)為基礎(chǔ),采用MMSA譯碼算法對(duì)CCSDS標(biāo)準(zhǔn)推薦的縮短LDPC碼實(shí)現(xiàn)譯碼功能的基礎(chǔ)上,通過(guò)對(duì)輸入數(shù)據(jù)加填充幀和輸出數(shù)據(jù)伴隨有效性標(biāo)記位的方式,實(shí)現(xiàn)單一主時(shí)鐘處理不同速率數(shù)據(jù)功能。通過(guò)對(duì)輸入數(shù)據(jù)格式判斷和復(fù)位處理相結(jié)合,使譯碼器具有接收錯(cuò)誤數(shù)據(jù)后自恢復(fù)功能。實(shí)驗(yàn)結(jié)果表明,譯碼器在BER為1×10-7量級(jí)有6.5 dB增益,且在不高于50 Mbps速率條件下可以速率自適應(yīng)。

      猜你喜歡
      譯碼器譯碼校驗(yàn)
      基于校正搜索寬度的極化碼譯碼算法研究
      糾錯(cuò)模式可配置的NAND Flash BCH譯碼器設(shè)計(jì)
      爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
      跟蹤導(dǎo)練(一)5
      從霍爾的編碼譯碼理論看彈幕的譯碼
      新聞傳播(2016年3期)2016-07-12 12:55:27
      LDPC 碼改進(jìn)高速譯碼算法
      大型電動(dòng)機(jī)高阻抗差動(dòng)保護(hù)穩(wěn)定校驗(yàn)研究
      基于加窗插值FFT的PMU校驗(yàn)方法
      鍋爐安全閥在線(xiàn)校驗(yàn)不確定度評(píng)定
      HINOC2.0系統(tǒng)中高速LDPC譯碼器結(jié)構(gòu)設(shè)計(jì)
      乐昌市| 新源县| 乌兰察布市| 兴化市| 宁乡县| 微山县| 台江县| 浑源县| 丰都县| 丁青县| 桂阳县| 恩平市| 隆林| 泰兴市| 饶阳县| 台东县| 新野县| 武功县| 枝江市| 台安县| 桦南县| 定陶县| 鹰潭市| 莎车县| 瑞丽市| 六枝特区| 江孜县| 张掖市| 南澳县| 襄樊市| 文水县| 怀柔区| 弥渡县| 论坛| 峡江县| 临泽县| 县级市| 林口县| 定结县| 宿州市| 潢川县|