• 
    

    
    

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

      ?

      多碼率國標發(fā)射機信道編碼器的設(shè)計與實現(xiàn)*

      2010-06-25 09:38:34黨宏社
      電視技術(shù) 2010年4期
      關(guān)鍵詞:信道編碼碼率編碼器

      黨宏社,方 鑫

      (陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)

      1 引言

      中國地面數(shù)字電視廣播傳輸標準GB20600-2006(以下簡稱“國標”)適用于地面?zhèn)鬏數(shù)臄?shù)字多路電視/高清晰度電視固定和移動廣播業(yè)務(wù)的幀結(jié)構(gòu)、信道編碼和調(diào)制系統(tǒng)。國標中的信道編碼部分采用了BCH(外碼)+QC-LDPC(內(nèi)碼)的級聯(lián)糾錯編碼技術(shù),使誤碼糾錯能力和信號調(diào)制性能更高,系統(tǒng)抗干擾能力更強[1]。其內(nèi)碼采用了非規(guī)則的QC-LDPC碼,性能更加接近隨機非規(guī)則的LDPC碼。

      信道編碼器作為發(fā)射機的重要組成部分,設(shè)計十分關(guān)鍵。而信道編碼器中的LDPC編碼器必須能夠進行3種碼率的編碼工作,F(xiàn)PGA實現(xiàn)占用資源較多,對系統(tǒng)的成本和復(fù)雜度有重要影響,設(shè)計難度較高。因此設(shè)計的重點與難點就是要在滿足系統(tǒng)要求的基礎(chǔ)上,盡可能地降低資源的消耗,達到資源消耗與系統(tǒng)性能的平衡。

      2 系統(tǒng)級設(shè)計

      BCH+QC-LDPC級連糾錯原理如圖1所示,TS碼流輸入分組模塊后,由模塊分組并產(chǎn)生每組的數(shù)據(jù)使能信號后輸入下一級。根據(jù)國標要求,信道編碼器分為外碼編碼器BCH與內(nèi)碼編碼器LDPC兩部分,兩級編碼器中還添加了一個刪除前261 bit的0并按照碼率組織數(shù)據(jù)的結(jié)構(gòu),其作用是用于編碼數(shù)據(jù)長度切換,以便達到更好的編碼效率。編碼器模塊工作時鐘為50 MHz,由一個板載50 MHz晶振產(chǎn)生。

      圖1 BCH+QC-LDPC級連糾錯原理圖

      3 模塊級設(shè)計

      3.1 BCH編碼器結(jié)構(gòu)設(shè)計

      根據(jù)國標,BCH(762,752)碼由 BCH(1023,1013)系統(tǒng)碼縮短而成,該BCH碼生成多項式為GBCH(x)=1+x3+x10,可知編碼器共需10個移位寄存器。BCH編碼器結(jié)構(gòu)如圖2所示。

      圖2 BCH編碼器結(jié)構(gòu)圖

      開關(guān)A:前752個時鐘周期閉合,使數(shù)據(jù)輸入編碼器,進行BCH編碼;后10個時鐘周期斷開,輸出10 bit校驗位。開關(guān)B:前752個時鐘周期向下,輸入數(shù)據(jù)輸出;后10個時鐘周期向上,輸出10 bit校驗位。

      每個周期BCH編碼器完成一次長度為1023的編碼運算,然后接受下一次數(shù)據(jù)輸入,進行下次編碼。

      3.2 LDPC編碼器結(jié)構(gòu)設(shè)計

      LDPC碼的生成矩陣Gqc的結(jié)構(gòu)為[1]

      式中:I是 b×b 階單位矩陣;O 是 b×b 階零陣;Gi,j是 b×b階循環(huán)矩陣,取 0≤i≤k-1,0≤j≤c-1。

      LDPC 碼由循環(huán)矩陣Gi,j生成。

      LDPC編碼器是整個信道編碼器的核心[2-3],設(shè)計規(guī)模大,因此采用了自頂向下的設(shè)計方法,將這個編碼器劃分為6個子模塊:計數(shù)器控制器,數(shù)據(jù)輸入控制器,ROM總線控制器,運算器陣列,F(xiàn)IFO控制器和輸出控制器。LDPC編碼器的整體結(jié)構(gòu)圖如圖3所示。

      圖3 LDPC編碼器結(jié)構(gòu)圖

      LDPC編碼器各個部分及其功能如下:

      1)計數(shù)器控制器

      計數(shù)器控制器控制整個編碼器內(nèi)部的工作時序。該子模塊包含3個計數(shù)器:count_127運算計數(shù)器、count_row行列計數(shù)器和count_output輸出計數(shù)器。運算計數(shù)器對運算器每次載入新Gi,j首行數(shù)據(jù)后的運算次數(shù)進行計數(shù),每溢出一次代表完成了一次行運算;行列計數(shù)器對行運算的次數(shù)進行計數(shù),每溢出一次代表完成了一次編碼;輸出計數(shù)器對輸出字進行計數(shù),每溢出一次代表完成了一次編碼結(jié)果輸出。

      2)數(shù)據(jù)輸入控制器

      該子模塊完成對運算器陣列的輸入數(shù)據(jù)的時序控制,同時產(chǎn)生ROM地址數(shù)據(jù)并對其進行約束。

      在仿真測試中發(fā)現(xiàn)了兩個問題:

      (1)ROM地址數(shù)據(jù)不能與輸入數(shù)據(jù)同步,必須比輸入數(shù)據(jù)提前2個時鐘周期出現(xiàn)在總線上,否則會造成數(shù)據(jù)錯位。原因在于ROM從讀取地址到輸出數(shù)據(jù)需要2個時鐘周期。由于ROM地址數(shù)據(jù)無法提前,因此設(shè)計時將輸入數(shù)據(jù)進行了2個時鐘周期的延時,達到了相同的設(shè)計效果。

      (2)ROM必須使用CLK全局時鐘的下降沿工作,否則會造成ROM讀取地址數(shù)據(jù)時,恰好是地址正在變化的不穩(wěn)定時刻,造成數(shù)據(jù)讀取錯誤。解決辦法是對CLK時鐘進行反向后提供給ROM,這樣讓ROM讀取地址的時刻延遲了半個時鐘周期,解決了數(shù)據(jù)讀取錯誤問題。

      3)ROM總線控制器

      該子模塊只需按照輸入的碼率設(shè)定值將對應(yīng)碼率的ROM數(shù)據(jù)讀入數(shù)據(jù)總線即可。

      4)運算器陣列

      運算器陣列由35個運算器串聯(lián)組成,使用時根據(jù)不同的碼率選擇不同數(shù)目的運算器組成陣列進行運算。每1個運算器在使用過輸入數(shù)據(jù)后,將輸入數(shù)據(jù)保持后從數(shù)據(jù)輸出口向后一級運算器輸出。每個運算器可通過1個移位寄存器累加(SRAA)電路構(gòu)成,采用反饋移位寄存器與邏輯門設(shè)計編碼器電路實現(xiàn)。0.4碼率LDPC需要 35個 SRAA,0.6碼率 LDPC需要 23個 SRAA,0.8碼率LDPC需要11個SRRA,但不同碼率不會同時出現(xiàn),所以只需設(shè)計35個SRAA即可。SRAA編碼電路如圖4所示。

      圖4 SRAA編碼電路

      設(shè)計中發(fā)現(xiàn),雖然每個SRAA中均設(shè)計有與門,但是由于是輸入數(shù)據(jù)與127 bit矩陣數(shù)據(jù)做與運算,結(jié)果不是127 bit的0,就是原矩陣數(shù)據(jù)。因此設(shè)計時不用刻意設(shè)計出與門,只需要利用Verilog語言的 If…else語句的特點,不加入else語句就會默認保持結(jié)果,即可完成設(shè)計。

      每個單個的運算器完成以下功能:(1)獲取輸入待編碼數(shù)據(jù)比特和ROM數(shù)據(jù);(2)若輸入待編碼數(shù)據(jù)為1,則將ROM數(shù)據(jù)與結(jié)果寄存器中的數(shù)據(jù)按位異或后存入結(jié)果寄存器;若輸入為0,則什么也不做;(3)將ROM數(shù)據(jù)循環(huán)右移1位,同時將本次運算的輸入待編碼數(shù)據(jù)輸出給下一個運算器。運算器只需不停地實現(xiàn)以上3個功能,即可完成運算任務(wù)。外部數(shù)據(jù)輸入控制由數(shù)據(jù)輸入控制器完成。

      下面以碼率為 0.4的 LDPC(7493,3048)碼為例,詳細說明運算過程。矩陣Gi,j如圖5所示。

      圖5 SRAA陣列運算示意圖

      第1個時鐘到來時:第1個比特進入運算器1,與進入鎖存器中的ROM首行127 bit數(shù)據(jù)(即G[0][0])做與運算,結(jié)果放入data_out臨時寄存器中,鎖存器中數(shù)據(jù)右移1位,同時將第1個比特輸出至運算器2的bit_in數(shù)據(jù)輸入線上。

      第2個時鐘到來時:第2個比特進入運算器1,與已移位的鎖存器中數(shù)據(jù)(即國標文件中的G[0][1])做與運算,再與data_out中的數(shù)據(jù)做異或運算,并放入data_out中,鎖存器中的數(shù)據(jù)右移1位;同時運算器2完成上一步運算后,把第1個比特輸出至運算器3;運算器1把第2個比特輸出至運算器2中。

      第3~35個時鐘完成如前兩步所示。

      第36~127個時鐘到來時:ROM數(shù)據(jù)停止輸入,運算器繼續(xù)完成與鎖存器中移位數(shù)據(jù)的運算過程。

      第128個時鐘到來時:ROM被輸入新數(shù)據(jù)(G[1][0]),完成一個小陣(127×127)的運算。

      當運算器運算結(jié)束時,讀出運算結(jié)果,同時ROM地址復(fù)位,給運算器重新賦入數(shù)據(jù)(即G[0][0])。

      得到的127×35=4445個數(shù)據(jù)為校驗位,輸出到127×24=3048 個原始數(shù)據(jù)前,組成 LDPC(7493,3048)碼。

      5)FIFO控制器

      該子模塊的任務(wù)是將最后一個運算器輸出的輸入數(shù)據(jù)按127 bit組合為一組,存入FIFO中,待校驗碼輸出完畢后輸出。

      6)輸出控制器

      在輸出控制器中,若輸出使能位被計數(shù)器控制器置1,則與輸出計數(shù)器同步運行,將每個運算器輸出的運算結(jié)果輸出至輸出口上。設(shè)計時僅需注意在輸出第一個127 bit校驗位時需要將indication輸出線輸出高電平,以便后級處理時使用。

      4 系統(tǒng)仿真與測試驗證

      4.1 系統(tǒng)仿真

      編譯結(jié)果表明,整個信道編碼器占用了Altera的EP1S30B956C5芯片的12874個 (40%)邏輯單元與287060 bit(9%)存儲器。

      在經(jīng)過時序仿真后,圖6的BCH編碼器輸出結(jié)果示意圖表明了輸出BCH編碼器運轉(zhuǎn)正常,按照程序設(shè)計的方式工作并輸出了正確的結(jié)果。

      圖6 BCH編碼器輸出結(jié)果示意圖

      LDPC輸出示意圖如圖7所示。address地址信號在使能信號輸入前2個時鐘周期將數(shù)據(jù)送入了ROM,完成了各個模塊的時鐘同步。每個時鐘周期下的數(shù)據(jù)準確無誤;各個約束條件都發(fā)生了作用,在合適的時刻控制地址線,完成了地址的輸入切換。所有的輸出結(jié)果都準確,時序正確;在編碼輸出的同時,與新一次的編碼運算銜接得很好。

      4.2 測試驗證

      測試與驗證主要是檢驗設(shè)計的信道編碼器能否準確、穩(wěn)定、快速地對每個輸入比特完成編碼。

      圖7 LDPC輸出示意圖

      將編譯通過的編碼器在Quartus II中加入邏輯分析儀后再編譯下載至芯片,連接測試數(shù)據(jù)輸入模塊,將編碼器的所有控制與數(shù)據(jù)信號加入邏輯分析儀中[4],然后將預(yù)設(shè)的數(shù)據(jù)輸入,檢查各個信號線的輸出是否正確;若各個信號無誤,則將芯片的工作頻率逐漸上調(diào),直到數(shù)據(jù)出現(xiàn)錯誤停止,測試最高工作頻率。

      在測試過程中,每一步均采集了大量數(shù)據(jù),并與Matlab仿真的數(shù)據(jù)進行比較,并未發(fā)現(xiàn)誤碼,說明上述設(shè)計的信道編碼器能夠準確、穩(wěn)定、快速地對每個輸入比特完成編碼。工作頻率測試發(fā)現(xiàn)上述設(shè)計的信道編碼器的最高工作頻率為60 MHz,為了保證運算的準確性與穩(wěn)定性,正常使用時采用50 MHz時鐘工作,而實際需要的最高時鐘頻率為6×7.56 MHz=45.36 MHz,這說明所設(shè)計的編碼器完全滿足系統(tǒng)需要。

      4 小結(jié)

      筆者提出了一種三碼率、低復(fù)雜度、可擴展的國標數(shù)字電視信道編碼器的結(jié)構(gòu),該編碼器可根據(jù)設(shè)定的編碼碼率,自動進行對應(yīng)碼率的數(shù)字電視發(fā)射機前端編碼工作。該結(jié)構(gòu)資源消耗低,配置簡單靈活,吞吐率大。

      [1]GB 20600-2006,數(shù)字電視地面廣播傳輸系統(tǒng)幀結(jié)構(gòu),信道編碼和調(diào)制[S].北京:中國標準出版社,2006.

      [2]楊抒文,彭克武,潘長勇.DTMB發(fā)射機LDPC編碼器的設(shè)計與優(yōu)化[J].電視技術(shù),2008,32(7):4-5.

      [3]王文君,朱曉暄,康桂霞,等.結(jié)構(gòu)化LDPC碼的高速編譯碼器FPGA 實現(xiàn)[J].數(shù)據(jù)采集與處理,2008(23):113-118.

      [4]齊志強,葛建華,尚文靜.地面數(shù)字電視國標編碼器設(shè)計與實現(xiàn)[J].電視技術(shù),2007,31(10): 35-36.

      猜你喜歡
      信道編碼碼率編碼器
      如何提升計算機在信道編碼的處理應(yīng)用效率
      5G信道編碼技術(shù)相關(guān)分析
      華為:頒獎Polar碼之父
      基于FPGA的同步機軸角編碼器
      基于狀態(tài)機的視頻碼率自適應(yīng)算法
      基于PRBS檢測的8B/IOB編碼器設(shè)計
      衛(wèi)星數(shù)字電視信號部分信道編碼的軟件實現(xiàn)
      JESD204B接口協(xié)議中的8B10B編碼器設(shè)計
      電子器件(2015年5期)2015-12-29 08:42:24
      基于場景突變的碼率控制算法
      X264多線程下碼率控制算法的優(yōu)化
      計算機工程(2015年8期)2015-07-03 12:19:56
      兰西县| 罗定市| 新蔡县| 吉安市| 罗江县| 广河县| 庄浪县| 赤城县| 香格里拉县| 梅州市| 临朐县| 鸡西市| 永顺县| 临沂市| 仁寿县| 象山县| 孝义市| 博爱县| 札达县| 武山县| 九江县| 广德县| 榆林市| 泰顺县| 武川县| 达孜县| 兴城市| 延庆县| 灯塔市| 进贤县| 仲巴县| 昂仁县| 吉隆县| 仪陇县| 云霄县| 唐山市| 木里| 石城县| 东乡族自治县| 庄浪县| 万安县|