91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 測試測量

基于TMS320C54X的RS+變織+卷積的級聯糾錯碼

發布時間:2008/5/26 0:00:00 訪問次數:830

來源:單片機與嵌入式系統應用 作者:解放軍理工大學 羅愛國

摘要:糾錯編碼被廣泛應用在各種數字通訊、數字廣播和數據存儲系統中。隨著單片機、dsp和fpga等器件的發展,越來越容易在各種通用硬件平臺上實現糾錯編碼。本文基于ti的54系列dsp,實現由常用rs碼、卷積編碼、viterbi解碼、交織技術構成的級聯碼,并提供編碼原理和實現方案。

關鍵詞:rs碼 viterbi解碼 級聯糾錯碼隨著越來越多的系統采用數字技術來實現,糾錯編碼技術也得到了越來越廣泛的應用。如gsm標準中,對語音的信道編碼采用卷積糾錯、分組碼檢錯。美國的蜂窩數字分組數據系統(cdpd)中采用了m=6的(63,47)rs(reed solomon)碼。cdma標準中,主要包括卷積編碼(turbo碼等)、交織編碼、幀循環校驗等。dvd采用rs糾錯編碼。近些年來,隨著軟件無線電技術的發展,糾錯編碼一般都在通用的硬件平臺上實現,這樣有利于保證靈活性和通用性。通常采用基于fpga的vhdl編碼硬件實現,或者在dsp、單片機上用c和匯編編程軟件實現。本文基于tms320c54x的dsp,實現一種rs+交織+卷積的級聯糾錯碼。

1 級聯糾錯編碼原理

糾錯編碼技術是通過引入可控制的冗余來提高系統的可靠性。它的理論基石是1948年shannon在《通信的數字理論》中提出的著名的有擾信道編碼定理。糾錯碼按照不同的分類標準,有著不同的分類。我們常用的是按照對信息元處理的不同方法來分類的,分為分組碼和卷積碼。分組碼是把信源輸出的信息序列,以k個碼元劃分為一段,通過編碼器把這段的k個信息元,按一定規則產生r個校驗(監督)元,輸出長為n=k+r的一個碼組。比較常用的有bch碼、rs碼、hamming碼等。卷積碼是把輸出信源輸出的信息序列,以k0個(k0通常小于k)碼元分為段,通過編碼器輸出長為n0(≥通常小于k)碼元分為一段,通過編碼器輸出長為n0(≥通常小于k)碼元分為一段,通過編碼器輸出為n0(≥k0)的一的碼以。但是該碼段的n0-k0個校驗元不僅與本組的信息有關,而且也與其前m段信息元有關,稱m為編碼存儲。因此卷積碼用(n0,k0,k)表示。

由信道編碼理論可知,隨著碼長n的增加,解碼錯誤概率以指數方式趨近于零。因此,為提高糾錯碼的有效性,就必須使用長碼。但碼長增加,碼率會相應下降,解碼設備的復雜性與計算量也相應增加,級聯碼有針對性的解決這了一矛盾。它將編碼過程分為前后串行的幾級完成,可以滿足信道糾錯對編碼長度的要求,得到與長碼相同的糾錯能力和高編碼增益;而且增加的編/解碼復雜度不是很大。其原理示意框圖如圖1所示。

級聯碼有內碼和外碼兩級,內碼是gf(2)上的一個[n,k]碼,外碼是gf(2k)上的[n,k]壽終正寢,編碼規則如下。

①先將k×k個二進制信息元劃分成k段,每段有k個信息元。

②每段的k個信息元可看成是gf(2k)上的一個符號。將k個符號按外碼的編碼規則編成一個外碼,碼長為n,有k個信息符號,n-k個校驗符號,最小碼距為do,碼率ro=k/n。

③外碼的每一個符號,看成是k個二進制碼元的碼組,輸入內碼編碼器,得到一個內存,碼長n,有n-k個校驗元,最小碼距為di,碼率ri=k/n,由此得到n個[n,k]內碼的碼字序徇。兩級編碼總共得到n×n個二進制碼元,k×k個信息元,組成[k×n,k×k,do×di]級聯碼的碼。

我們選用的外碼為rs(31,15)碼,生成多項式為g(x)=1+x2+x3,內碼用卷積碼(2,1,7),其生成多項式g0=171,g1=131(都是八進制)。rs碼是gf(q)(q!=2)上,碼長n=q-1的本原bch碼,具有很強的糾錯能力,其最大可能的最小距離是校驗元的個數加1,因而rs碼是一種極大最小距離可分碼(mds),是一種最佳的線性循環碼。本例中使用的rs(31,15)碼的漢明距為17,可以糾8個錯誤。交織技術是抗突發干擾的重要手段,它是采用一個交織矩陣,存儲方向與發送時的方向不一樣,從而將突發錯誤離散化,提高抗突發干擾的能力。本方案中rs編碼按行存儲,發送時按列,并且對每列都進行卷積編碼,可以抵抗8×列長的突發干擾。卷積編碼viterbi軟判決解碼,可以充分的利用各個碼組之間的相關性,提高很高的編碼增益。各個組成碼和級聯后的糾錯性能仿真圖如圖2所示。

2 級聯碼的dsp編程實現由于rs碼和卷積碼的viterbi解碼運算量都很大,所以需要大量的存儲空間。本方案中實現在100kbps的信道上,rs碼的解碼運算量為8mips,viterbi解碼需要14mips。整個編解碼程序需要24mips,因而選用在tms320c54x芯片上實現。使用ti公司推出有xxa進行編程開發,考慮到編程的可移植性、可讀性和效率,采用c語言與dsp匯編語言混合編程實現。viterbi解碼的算法由于程序運算量很大,采用dsp匯編語言來實現,蓁部分結構如圖3所示。下面我們分別對整個系統中的關鍵部分r

來源:單片機與嵌入式系統應用 作者:解放軍理工大學 羅愛國

摘要:糾錯編碼被廣泛應用在各種數字通訊、數字廣播和數據存儲系統中。隨著單片機、dsp和fpga等器件的發展,越來越容易在各種通用硬件平臺上實現糾錯編碼。本文基于ti的54系列dsp,實現由常用rs碼、卷積編碼、viterbi解碼、交織技術構成的級聯碼,并提供編碼原理和實現方案。

關鍵詞:rs碼 viterbi解碼 級聯糾錯碼隨著越來越多的系統采用數字技術來實現,糾錯編碼技術也得到了越來越廣泛的應用。如gsm標準中,對語音的信道編碼采用卷積糾錯、分組碼檢錯。美國的蜂窩數字分組數據系統(cdpd)中采用了m=6的(63,47)rs(reed solomon)碼。cdma標準中,主要包括卷積編碼(turbo碼等)、交織編碼、幀循環校驗等。dvd采用rs糾錯編碼。近些年來,隨著軟件無線電技術的發展,糾錯編碼一般都在通用的硬件平臺上實現,這樣有利于保證靈活性和通用性。通常采用基于fpga的vhdl編碼硬件實現,或者在dsp、單片機上用c和匯編編程軟件實現。本文基于tms320c54x的dsp,實現一種rs+交織+卷積的級聯糾錯碼。

1 級聯糾錯編碼原理

糾錯編碼技術是通過引入可控制的冗余來提高系統的可靠性。它的理論基石是1948年shannon在《通信的數字理論》中提出的著名的有擾信道編碼定理。糾錯碼按照不同的分類標準,有著不同的分類。我們常用的是按照對信息元處理的不同方法來分類的,分為分組碼和卷積碼。分組碼是把信源輸出的信息序列,以k個碼元劃分為一段,通過編碼器把這段的k個信息元,按一定規則產生r個校驗(監督)元,輸出長為n=k+r的一個碼組。比較常用的有bch碼、rs碼、hamming碼等。卷積碼是把輸出信源輸出的信息序列,以k0個(k0通常小于k)碼元分為段,通過編碼器輸出長為n0(≥通常小于k)碼元分為一段,通過編碼器輸出長為n0(≥通常小于k)碼元分為一段,通過編碼器輸出為n0(≥k0)的一的碼以。但是該碼段的n0-k0個校驗元不僅與本組的信息有關,而且也與其前m段信息元有關,稱m為編碼存儲。因此卷積碼用(n0,k0,k)表示。

由信道編碼理論可知,隨著碼長n的增加,解碼錯誤概率以指數方式趨近于零。因此,為提高糾錯碼的有效性,就必須使用長碼。但碼長增加,碼率會相應下降,解碼設備的復雜性與計算量也相應增加,級聯碼有針對性的解決這了一矛盾。它將編碼過程分為前后串行的幾級完成,可以滿足信道糾錯對編碼長度的要求,得到與長碼相同的糾錯能力和高編碼增益;而且增加的編/解碼復雜度不是很大。其原理示意框圖如圖1所示。

級聯碼有內碼和外碼兩級,內碼是gf(2)上的一個[n,k]碼,外碼是gf(2k)上的[n,k]壽終正寢,編碼規則如下。

①先將k×k個二進制信息元劃分成k段,每段有k個信息元。

②每段的k個信息元可看成是gf(2k)上的一個符號。將k個符號按外碼的編碼規則編成一個外碼,碼長為n,有k個信息符號,n-k個校驗符號,最小碼距為do,碼率ro=k/n。

③外碼的每一個符號,看成是k個二進制碼元的碼組,輸入內碼編碼器,得到一個內存,碼長n,有n-k個校驗元,最小碼距為di,碼率ri=k/n,由此得到n個[n,k]內碼的碼字序徇。兩級編碼總共得到n×n個二進制碼元,k×k個信息元,組成[k×n,k×k,do×di]級聯碼的碼。

我們選用的外碼為rs(31,15)碼,生成多項式為g(x)=1+x2+x3,內碼用卷積碼(2,1,7),其生成多項式g0=171,g1=131(都是八進制)。rs碼是gf(q)(q!=2)上,碼長n=q-1的本原bch碼,具有很強的糾錯能力,其最大可能的最小距離是校驗元的個數加1,因而rs碼是一種極大最小距離可分碼(mds),是一種最佳的線性循環碼。本例中使用的rs(31,15)碼的漢明距為17,可以糾8個錯誤。交織技術是抗突發干擾的重要手段,它是采用一個交織矩陣,存儲方向與發送時的方向不一樣,從而將突發錯誤離散化,提高抗突發干擾的能力。本方案中rs編碼按行存儲,發送時按列,并且對每列都進行卷積編碼,可以抵抗8×列長的突發干擾。卷積編碼viterbi軟判決解碼,可以充分的利用各個碼組之間的相關性,提高很高的編碼增益。各個組成碼和級聯后的糾錯性能仿真圖如圖2所示。

2 級聯碼的dsp編程實現由于rs碼和卷積碼的viterbi解碼運算量都很大,所以需要大量的存儲空間。本方案中實現在100kbps的信道上,rs碼的解碼運算量為8mips,viterbi解碼需要14mips。整個編解碼程序需要24mips,因而選用在tms320c54x芯片上實現。使用ti公司推出有xxa進行編程開發,考慮到編程的可移植性、可讀性和效率,采用c語言與dsp匯編語言混合編程實現。viterbi解碼的算法由于程序運算量很大,采用dsp匯編語言來實現,蓁部分結構如圖3所示。下面我們分別對整個系統中的關鍵部分r

相關IC型號

熱門點擊

 

推薦技術資料

音頻變壓器DIY
    筆者在本刊今年第六期上著重介紹了“四夾三”音頻變壓器的... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
乌兰浩特市| 潜山县| 定襄县| 天门市| 固始县| 葫芦岛市| 固阳县| 岑巩县| 福安市| 合肥市| 仁布县| 阿拉善右旗| 吉木乃县| 旺苍县| 巴里| 清远市| 积石山| 宁蒗| 元氏县| 泗阳县| 六安市| 扶绥县| 邵阳县| 洞口县| 连平县| 儋州市| 霍邱县| 苏尼特左旗| 同江市| 本溪市| 措美县| 浏阳市| 泗阳县| 博野县| 阳新县| 黎川县| 阜平县| 博爱县| 五峰| 连云港市| 永善县|