Ⅰ 資訊理論與編碼難不難
資訊理論與編碼難。根據查詢相關公開信息顯示,《資訊理論與編碼》編碼定理得看,糾錯編譯碼的概念看看就行,線性分組碼必會,循環碼,漢明碼,卷積碼應該不考。
Ⅱ 基於圖結構應用《編碼,解碼器》的設計與實現 這個畢業設計應該從什麼思路下手啊~~計算機專高手請指點
兄弟你這個論文有點難度了。不是隨便拉拉就行了。得找專業書籍慢慢找和高人指導了。
我查到點不指導有沒有用。
Turbo卷積碼(TCC)是3G無線系統中所採用的前向錯誤校正(FEC)機制的整體部分。然而,Turbo解碼器所帶來的計算負擔非常重,並不太適合採用傳統DSP或RISC處理器實現。由於現場可編程邏輯陣列(FPGA)內在的並行結構,FPGA為解決3G基站收發器中所需要的符號速率FEC和其它計算密集的任務提供了一個高性能信號處理平台基礎。
Turbo 編碼
級聯碼方案(Concatenated coding schemes)是為了通過結合兩個或更多相對簡單的分量或構造模塊碼來獲得較高的編碼增益。Turbo碼認為是對級聯碼結構的一種改進,其中採用迭代演算法對相關的碼序列進行解碼。Turbo碼是通過將兩個或更多分量碼應用到同一數據序列的不同交織版本上構成的。對於任何傳統單分量編碼,解碼器的最後一級生成的都是硬判決解碼數據位。為了使象Turbo碼這樣的級聯碼方案工作得更好,解碼演算法不應被限制為只能在解碼器間傳遞硬判決。為最好地利用每個解碼器獲得的信息,解碼演算法必須可以實現軟判決交換,而不是採用硬判決。對於採用兩個分量碼的系統,解碼的概念是指將來自一個解碼器的軟判決輸入到另一個解碼器的輸入,並將此過程重復幾次以獲得更好的判決,如圖1所示 。
3GPP Turbo 編碼器
圖2為3GPP編碼器。
輸入數據流輸入到RSC1,它為每個輸入比特生成一個對等比特(Parity Bit)。輸入數據還經過交織後由RSC2處理生成第二個對等比特流。
3GPP標準定義,輸入塊的長度在40至5114 位之間。編碼器生成一個速率為1/3的包括原始輸入位和兩個對等位的系統碼。通過打孔方法可以獲得1/2編碼速度的編碼。遞歸系統編碼器的實現比較直接,然而交織器則不那麼簡單,要比標準的卷積或塊交織器復雜。
一旦將輸入數據塊長度K 提供給編碼器以後,編碼器將計算交織矩陣行數R和列數 C,並創建相應的交織數據結構。R 和 C 是數據塊長度K的函數。在輸入符號被載入到交織矩陣以後,那麼將根據一定的順序進行行間交換和列間交換。交換模式是根據塊長度K選擇的(即依賴於K)。行和列交換完成後,通過逐列讀出交織矩陣數據就可以得到最終的交織序列。在數據讀出時需要進行刪減操作,以保證在輸出中只有正確的輸入符號,請注意,交織陣列包含的數據位通常比K個原始輸入符號要多 ,因為R C>K。然後,新的序列經過RSC2編碼生成第二個對等位流。
實現交織器的一種方法是在存儲器中存儲完整的交換序列。即,一旦K 給定,即調用一個初始化常式(運行在處理器上的軟體常式或利用FPGA中的功能單元)生成相應的交換序列,然後將這一信息存儲在存儲器中。然而,這一方法需要大量的存儲器。利用Virtex -E FPGA 技術提供的 4096位每塊的片上存儲器,將需要[5114 13/4096]=17個存儲器塊。
在我們的方法中,採用一個預處理引擎生成一個序列值(存儲),這一序列值被存儲起來,交織器地址發生器將使用這些序列值。這一硬體單元採用幾個小型數據結構(素數表)來計算所需要的序列。這一準備過程需要的時鍾周期數與信息塊的長度成比例。例如,對於K=40的塊需要280時鍾周期,而對於最大塊長度K=5114,則需要 5290個時鍾周期。該過程只需要在塊長度變化時進行。地址發生器利用這些更為緊湊的數據結構來實時生成交織地址。
3GPP Turbo 解碼器
解碼器包括兩個MAP(最大後驗概率)解碼器和幾個交織器。Turbo演算法的優良的性能源於可以在兩個MAP解碼器間共享可靠性信息(extrinsic data,外數據,或稱先驗數據)。
在我們的設計中,MAP解碼器採用的是Bahl, Cocke, Jelinek 和 Rajiv (BCJR) 演算法。BCJR演算法計算每個符號的最大後驗對數似然率,並且是一種真正的軟判決演算法。考慮到數據是以塊的形式傳輸的,因此可以在時間維中前向或反向搜索一個符號序列。對於任一序列,其出現概率都是單獨符號出現概率的乘積。由於問題是線性的,因此序列概述可以利用概率的對數和來代替。
為了與一般文獻中的習慣一致,我們將解碼迭代的前向和反向狀態概率分別利用 和 來表示。通常,BCJR演算法要求在接收到整個信息後才開始解碼。對於實時應用,這一限制可能太嚴格了。例如,3GPP Turbo解碼器將需要大量存儲器存儲一個5114符號信息塊的完全狀態結構(state trellis)。對於單片FPGA設計來說,這需要的存儲資源太多了。與維特比(Vitebi)演算法類似,我們可以先從全零向量 O和數據{yk}(k 從 n 到 n-L) 開始反向迭代。L次反向迭代可獲得非常好的 n-L近似值。只要L選擇合適,最終的狀態標志(state metric)就是正確的。可以利用這一性質在信息結束前就開始進行有效的位解碼。
L 被稱為收斂長度。其典型值大約是解碼器約束長度的數倍(通常為5至10倍),並隨著信噪比的降低而增加。
通常,Turbo解碼演算法將計算所有的 (對整塊信息),將這些數值存儲起來,然後在反向迭代中與反向狀態概率一起用來計算新的外信息(extrinsic information,或稱先驗信息)。我們的設計中採用了窗口化方法。
解碼過程以一個前向迭代開始,計算包含L 個接收符號的塊i的 值。同時,對未來(i+1)塊進行一個反向迭代(標號 )。對塊i+1的反向迭代結束時,就獲得了開始對塊i 進行反向迭代所需要的正確的 初始向量。 與此同時對數似然函數(Lall)也在進行。 每一 和 處理過程都需要8個max* 操作 - 每個針對狀態結構(tellis)中的8個結點之一。最終的對數似然計算需要14個並行max* 運算符。為了提供可接受的解碼速率,在設計中採用了38個max* 功能單元。
從 C描述到FPGA設計
FPGA Turbo 編碼解碼器設計是利用基於C的設計和驗證方法進行的,如圖3所示。
演算法開發階段採用具有定點C類型的Art Library 來對定點計算的位真(bit-true)效應進行准確建模。在這一階段考察了幾種可能演算法的定點性能。一旦選定正確的量化演算法,就可利用A|rtDesignerPro創建一個專用DSP架構。A|rtDesignerPro的一個最強大的功能之一是可以插入和利用專用的數據通道核心(稱為專用單元,ASU)。利用這些ASU加速器核心可以使我們處理Turbo解碼器演算法內在的計算復雜性。
A|rtDesignerPro可自動完成寄存器分配、調度和控制器生成。在Turbo編碼解碼器設計中, A|rtDesignerr的自動循環合並可獲得最佳的;任務調度,MAP解碼步驟的內部循環都只有一個周期長。
A|rtDesignerPro生成的最終結果是可綜合的寄存器級(RT-level) VHDL或Verilog 描述。基於C的工具流支持FPGA專用功能。例如,可利用BlockRAM自動構造RAM,而寄存器文件也可利用分布式存儲器而不是觸發器來實現 。
最後,邏輯綜合和Xilinx實施工具套件將RTL HDL 轉換為 FPGA 配置位流。
FPGA Turbo 編碼解碼器實現
A|rtDesigner創建的Turbo編碼器和解碼器核心硬體結構包含許多專用ASU加速器。其中最重要的一個加速器完成max* 操作。max* 運算符根據下式計算兩個冪值a 和 b:
max* (a,b)=ln(expc(a)+expc(b))。
如 圖4所示, max* 運算是通過選擇(a,b)最大值,並應用一個存儲在查找表(LUT)中的校正因子近似進行的。這一近似演算法非常適合利用Xilinx FPGA 實現,其中LUT是其最終基本構造單元。
結果
Turbo解碼演算法硬體字長的選擇極大地影響總體性能。利用C-to-FPGA設計流程,這一定點分析是完全在C環境中完成的。結果示於圖 5。
上圖顯示出了我們的浮點Turbo解碼器演算法和對應的定點演算法之間的性能差別。模擬是在5114塊長度、5次解碼迭代和AWGN信道模型情況下進行的。結果清晰明顯出性能的損失是非常小的。
我們的Turbo解碼器的定點性能做為解碼器迭代次數的函數 ,對於1.5 dB SNR,位錯率為10-6。
解碼器功能的實現非常具有挑戰性,我們同時針對Virtex-E和 Virtex-II 器件進行了適配。Virtex-II 器件實施是採用運行在1.85 speedfile資料庫上的Xilinx 4.1i 實施工具集完成的。利用XC2V1000BG575-5 FPGA實現的最終設計,達到了66 MHz 的時鍾性能,消耗了3,060個邏輯片 和 16個塊RAM。對於從40至 5114符號長度的塊,採用5次解碼迭代循環的情況下,解碼器達到了2 至6.5 百萬符號每秒(Msym/s)的吞吐量。編碼器佔用了903個邏輯片、3個塊RAM並支持83 MHz時鍾頻率。對於從40至5114位的塊長度,速率可達到9 至20 Msym/s。
能用上就好了,用不上別怪我。對不起哈~祝福你~
Ⅲ 什麼是卷積編碼
卷積碼是將k個信息比特編成n個比特,但k和n通常很小,特別適合以串列形式進行傳輸,時延小。
卷積碼定義:
若以(n,k,m)來描述卷積碼,其中k為每次輸入到卷積編碼器的bit數,n為每個k元組碼字對應的卷積碼輸出n元組碼字,m為編碼存儲度,也就是卷積編碼器的k元組的級數,稱m+1= K為編碼約束度m稱為約束長度。卷積碼將k元組輸入碼元編成n元組輸出碼元,但k和n通常很小,特別適合以串列形式進
卷積碼的編碼器
行 傳輸,時延小。與分組碼不同,卷積碼編碼生成的n元組元不僅與當前輸入的k元組有關,還與前面m-1個輸入的k元組有關,編碼過程中互相關聯的碼元個數為n*m。卷積碼的糾錯性能隨m的增加而增大,而差錯率隨N的增加而指數下降。在編碼器復雜性相同的情況下,卷積碼的性能優於分組碼。
編碼原理:
卷積碼編碼器
以二元碼為例,編碼器如圖。輸入信息序列為u=(u0,u1,…),其多項式表示為u(x)=u0+u1x+…+ulxl+…。編碼器的連接可用多項式表示為g(1,1)(x)=1+x+x2和g(1,2)(x)=1+x2,稱為碼 的子生成多項式。它們的系數矢量g(1,1)=(111)和g(1,2)=(101)稱作碼的子生成元。以子生成多項式為陣元構成的多項式矩陣G(x)=[g(1,1)(x),g(1,2)(x)],稱為碼的生成多項式矩陣。
Ⅳ (2,1,3)卷積碼的接收序列是什麼
(2,1,3)中上分支代表0輸入,下分支代表1輸入) 卷積碼的表示 網格圖 網格圖與狀態圖的對應 狀態圖對應網格圖中穩態中的一節 卷積碼的表示 網格圖 網格圖可以表徵編碼過程 根據輸入的碼序列確定了一條路徑,這條路徑上的所有輸出連接起來就是輸出的碼序列 網格圖在卷積碼的維特比解碼中具有非常重要的作用 輸入: 1100 輸出:卷積碼的表示 網格圖 由網格圖求解最小自由距 從全零出發回到全零的輸出序列的最少的1的個數 路徑abca,輸出碼序列111011,最小自由距5 卷積碼的表示 解析表示 編碼器的多項式表示 多項式系數的8進製表示 卷積碼的解碼 卷積碼的解碼方法 維特比解碼 基於最大似然解碼 性能接近最優 硬體實現復雜 序列解碼 基於最大似然解碼 性能接近維特比解碼時,解碼延時大 解碼延時小時,誤碼率增大 門限解碼 基於分組碼的解碼思想 性能最差 硬體最簡單 卷積碼的解碼 最大似然解碼 模型 數學描述 解碼器必須根據接收序列y來產生信息序列M的一個估計M』。如果二者不同,則表明解碼器出現差錯。 信息序列M經過編碼器輸出X,二者之間有一一對應的關系;解碼器產生的碼字是X的一個
Ⅳ 咬尾卷積碼的原理
1、咬尾卷積碼的原理是尾卷積碼保證格形起始和終止於某個相同的狀態.它具有不要求傳輸任何額外比特的優點。Viterbi解碼器受格形狀態概率和分支度量的約束。傳輸的數據通常由一串0比特結尾,以強制編碼器回到0狀態,這樣澤碼器能從已知的狀態開始解碼,但是信道必須傳輸額外的符號。
咬尾卷積碼的約束長度為7,編碼率為1/3。卷積碼的編碼器配置如圖l所示。編碼器的移位寄存器的初始值應當沒置為輸入流的最後6位信息比特,這樣移位寄存器的初始和最終狀態保持一致。若用S0,S1,S2,...,S5表示編碼器的6個移位寄存器,則移位寄存器的初始值應當設置為:Si=Ck(k一1一i),編碼輸出流d[0],d[1],d[2]分別對應於第l、第2和第3個比特 。
2、咬尾技術具有以下優點:
●不影響編碼率,總的傳輸比特為N/R;
●不影響卷積碼的錯誤校驗屬性。
這項技術也有以下缺點:
●澤碼延遲增加了,因為必須確定正確的起始
狀態和回溯的初始狀態;
●接收器復雜度略微增加。
Ⅵ 2:1卷積碼 c語言編解碼
charinput[10]={0,0,1,1,1,0,1,1,1,1};
charoutput[5]={0};
intr1=0,r2=0;
inti;
for(i=0;i<5;i++)
{
output[i]=(input[2*i]+r1+r2)&1;
r2=r1;
r1=output[i];
}
for(i=0;i<5;i++)
printf("%d",output[i]);
printf(" ");
Ⅶ 卷積碼的表示方法
描述卷積碼編碼器過程的方法有很多,如矩陣法、多項式、碼樹和網格圖等,這里我們主要介紹和卷積碼編碼器結構密切相關的多項式法,以及與卷積碼解碼密切相關的網格圖法。
結構圖多項式法就是由卷積碼的生成多項式直接得出其編碼器的結構圖。如前面例子中的(2,1,2)卷積碼的生成多項式矩陣為:G(D)=[1 ,1 ]
其中,D是延遲運算元,生成多項式的第一項為1 D ,表示輸出編碼的第一個碼元等於輸入碼元x(n)與前兩個時刻輸入的碼元x(n-1)、x(n-2)的模2和,同理第二項類似。 將編碼器寄存器中的內容組合(x(n-1)、x(n-2))定義為編碼器狀態。如仍以前面所舉的例子(2,1,2)為例,則該編碼器的狀態有四種:00,10,01和11,下面分別用a,b,c,d來代替。編碼器在每一個時鍾沿打入一個輸入信息x(n),因此圖示寄存器組合內容就變為(x(n),x(n-1))即狀態發生了轉移,並同時輸出G0(n)、G1(n)。由此我們可以將圖所示編碼過程用右圖所示的狀態圖表示。
編碼器
由圖所示,隨著信息序列不斷輸入,編碼器就不斷從一個狀態轉移到另一個狀態並同時輸出相應的碼序列,所以圖3所示狀態圖可以簡單直觀的描述編碼器的編碼過程。因此通過狀態圖 很容易給出輸入信息序列的編碼結果,假定輸入序列為110100,首先從零狀態開始即圖示a狀態,由於輸入信息為「1」,所以下一狀態為b並輸出「11」,繼續輸入信息「1」,由圖知下一狀態為d、輸出「01」……其它輸入信息依次類推,按照狀態轉移路徑a->b->d->c->b->c->a輸出其對應的編碼結果「110101001011」。
網格圖
狀態圖可以完整的描述編碼器的工作過程,但是其只能顯示狀態轉移的過程而不能顯示狀態轉移發生的時刻,由此引出用來表示卷積碼的另一種常用方法——網格圖。網格圖就是時 間與對應狀態的轉移圖(如圖),在網格圖中每一個點表示該時刻的狀態,狀態之間的連線表示狀態轉移。通過觀察網格圖可以發現在網格圖中輸入信息x(n)並沒有標出,但如觀察到轉移後的狀態表示(x(n),x(n-1))就可以發現輸入信息已經隱含在轉移後的狀態中。在圖中還可以發現兩個網格圖不同主要集中在轉移後狀態位置不同。重新排序結構(即所謂蝶型結構)是為了優化運算而設計的,因為其中蝶型與蝶型之間是相互獨立的。
Ⅷ 卷積碼的原理
DMT和卷積編碼調制在DSL中的應用
鍾曉建 潘貴敦 馬親民 梁小宇
�
(華中師范大學物理系武漢430079)
【摘要】討論了離散多音頻調制和網格編碼相結合的調制方式在DSL中的應用,離散多音頻調制DMT〔1〕是一種多載波調制技術,將傳輸數據根據各子帶信噪比按位分配到子帶上,使每個子帶碼元寬度大於多徑延遲。如果把調制和糾錯編碼結合起來,則可使誤碼率大大降低,是一種帶寬利用率較高的調制方式。
�關鍵詞:ADSL離散多音頻網格編碼〔2〕歐氏距離〔3〕離散傅立葉變換/逆變換
1引 言
� 隨著Internet技術的不斷發展,人們對傳輸數據的速度、質量要求越來越高,在當前為了有效地利用現有的資源——電話線,提出了DSL〔1〕(數字用戶線)的概念,使用話音頻率以上的頻帶(4 k~1.1 MHz)來調制高速數字信號,按照Δf=4.3125 kHz分割成一個個的子帶,由於Δf剛好是音頻的寬度,故命名為離散多音頻,DMT調制是基於離散傅立葉變換對並行數據進行調制解調的。隨著超大規模集成電路(VL SI)和數字信號處理(DSP)技術的不斷進步,用FFT實現實時DMT調制已付諸使用。但以往的調制解調系統,糾錯編碼與調制是各自獨立設計並實現的,解碼和解調也是如此,這樣解調器在接收信號是對信號作獨立硬判決,硬判決結果再送給解碼器解碼,這種硬判決會導致接收端信息的不可恢復的丟失,解決這個問題的方法是在接收端採用軟判決解碼。DSL技術中就是將DMT和網格編碼綜合設計,在白雜訊環境下比傳統技術的誤碼性能有了很大的提高。這種最佳的編碼調制系統是按照編碼序列的歐氏距離為設計的量度,這就要求將編碼器和調制器當作一個統一的整體進行綜合設計,使得編碼器和調制器級聯後產生的編碼信號序列具有最大的歐氏自由距離。從信號空間的角度看,這種最佳編碼調制的設計實際上是一種對信號空間的最佳分割。經過實驗分析,DMT和卷積編碼結合後的編碼增益比傳統編碼的編碼增益增加了8 dB。�
2xDSL接入設備體系結構
� 在ADSL的應用當中,其硬體體系結構大致是由線路介面、接收濾波、線路驅動、模擬前端以及DMT收發器這幾個模塊組成。其中DMT收發器在發端對數據進行復用、循環冗餘校驗、前向糾錯、子帶排序、卷積編碼、星座映射以及IFFT變換,送到模擬前端變換成模擬信號發送出去,而在收端是將模擬信號經過FFT變換、解映射、維特比解碼等一系列反變換,提交給上層。根據T1.413〔4〕標准,採用韋氏16狀態4維網格碼作為內碼,採用Reed�Solomon編碼作為前向糾錯碼,另外由於網格編碼對成塊的雜訊抵抗能力較差,因此在進行網格編碼之前將數據進行交織使雜訊分散。ADSL的DMT收發器框圖大致如圖1所示。
3DMT與卷積編碼調制原理
� 在ADSL的發送端,將數據分配到不同的子帶上,這種分配可以根據各個子帶的信噪比來確定分配的bit數。而ADSL系統為各個子帶建立並維持了一個比特數和增益大小的表,是在ATU-R一端計算出來並返回給局端。為保證後一子帶所帶的位數不小於前一子帶的位數,先對子帶進行排序,即子帶按信噪比大小從小到大進行排序。為了使編碼獲得的碼字有較大的歐氏自由距離,採用了四維TCM網格編碼,這樣位抽取是基於一對子帶的,因為一個子帶在空間上是二維的,一對相互正交的子帶在空間上則是四維的 ,相應的在解碼的時候也是一對一對的作維特比解碼。歐氏自由距離是在四維空間上計算出來的,這樣四維的陪集可以由兩個二維的陪集的聯合構成,即這樣四維TCM網格碼的歐氏自由距離可以由兩個二維星座圖的距離的平方和算出, 在解碼系統中,最可能發生錯誤的情況是在具有最小的平方歐氏距離的兩個序列�{an}和{bn}�之間,(前者是發送序列,後者是解碼序列),這一最小平方歐氏距離常又稱為平方自由距離,記做:
��編碼的目的是為了使這個平方自由距離最大。
�網格編碼調制的通過一種特殊的信號映射可變成卷積碼的形式。這種映射的原理是將調制信號集分
割成子集,是的子集內的信號間具有更大的空間距離,用編碼效率為k/(k 1)的卷積碼選擇子集,用其餘位選擇子集中的點。在DSL數字用戶環路中用16狀態的4維網格編碼的編碼器結構如圖2所示。
其中的卷積編碼部分如圖3所示。
圖2中每兩個子帶抽取的位數z′=x y-1(x為第一個子帶所帶的位數,y為第二個子帶所帶的位數)。{uz′-1,uz′-2,…u1}為原碼,輸出的是經過卷積以及異或以後的編碼,為兩個二進制碼字,即{vz-y�,vz′-y-1,…v1,v0}和{wy-1,wy-2,…w1,w0},這兩個二進制碼字將映射成兩個星座點。編碼演算法使星座點的兩個最低位決定星座點的二維陪集{v1,v0}和{w1,w0}實際上是這個上標的二進製表示。對於一幀中最後兩個碼字,為了使卷積編碼狀態{s3,s2,s1,s0}回到零狀態。讓編碼前的碼字的{u1,u2}={0,0},則最後兩對子帶抽取的位數z′=x y-3。
�
這樣編碼得出的信號有兩個基本特徵:
� (1)星座圖中所用的信號點數大於未編碼同種調制所需的點數(擴大了一倍),這些附加的信號點為糾錯編碼提供冗餘度。
�(2)採用卷積碼在相繼的信號點之間引入某種依賴性,因而只有某些信號點序列才是允許出現的,這些允許的信號序列可以模型化為網路結構。可用網格圖來表述。
� 在接收端對接收序列進行維特比解碼〔4〕,即最大似然解碼,可以用網格圖求最相似的路徑來描述這種演算法,它依賴於有限狀態的馬爾可夫系統的描述,包括狀態變遷以及狀態變遷的輸出碼字。在四維TCM�編碼的基礎上,解碼時要對一對一對的數據進行解碼,計算碼距時也是以四維空間的歐氏距離為標准,取最相似的一條路徑。對於長度為L m的網格路徑(L為信息序列的長度,m表示後綴為m個0向量)接收序列為所有的網格路徑在零時刻發散於同一個初始狀態、收斂於第j時刻(j=L m)的同一個最後一狀態。在理想狀況下,對於一個存儲量無限度的通道,可以將所有可能的路徑都記錄下來,然後選擇其中對數似然函數值最大的作為解碼結果。
對數似然函數是將接收序列判定為某條路徑的序列的條件概率的對數
��這里的對數似然函數取最大值,實際上是接收的碼序列與估計路徑的碼之間的距離取最小值,是基於歐氏空間距離來計算的。在這里維特比解碼演算法的核心是回退的觀點,採用動態規劃法存儲數據,如果對每條可能的路徑進行存儲的話,隨著解碼深度的增加,存儲量將成4的指數增長,這在現實條件下是不可能的。因為每個節點都有四個分支(二輸入十六狀態的網格圖),因此我們對於j時刻到達的某一狀態
δi(i=1,2…,S-1),進行加—比—選操作,即將所有可能前一時刻的狀態的最大似然函數∧j-1(δp)與當前接收的序列和前一狀態到當前狀態的估計碼的似然度相加,選擇其中最大的作為j時刻i狀
態的最大似然函數值,並在倖存序列j(δi)在原來的基礎上加上這條最優的路徑u〔δp→δi〕。這樣給出的演算法可以表述為:
� 變數/存儲:
� S—狀態數(DSL為16);
� T—每一狀態的分支數(4);
� j—時刻編號,即第j時刻
�對於用卷積編碼完畢的序列可以直接送到數字信號處理器中作IDFT〔5〕變換成串列數據了。每個子帶i的二進制碼字可以映射成星座圖上的復數點(Zi=ai jbi),為了使輸出信號為實信號,頻域上的子帶i的復數值(i≥N′,N′=N/2)為
��Zi=conj�(ZN-i),(i≥N′,N′=N/2)
即取共軛復數,這樣經過離散傅立葉逆變換,得到時域信號:
��此信號經過並/串變換,再通過A/D變換,變成模擬信號送到線路上進行傳輸。
4模擬結果
� 我們在應用Itex公司的ADSL解決方案中,用該公司提供的局端模擬工具IADT對ADSL鏈路性能進
行模擬,得到ADSL每個子帶(從0~255)的信噪比,再根據這個預測值來確定每個子帶的位數和增益值。
從而建立一個與子帶一一對應的表,其線路預測的信噪比曲線如圖4所示。
我們可以看到,測得的線路上行速率為544
kbps,網路速率(去掉ADSL鏈路開銷)為448 kbps,下行鏈路速率為8 160 kbps,網路速率為7 616 kbps。
5總 結
� 本文描述了在帶寬受限的信道採用DMT和卷積編碼相結合的技術,將調制與糾錯編碼結為一體,高效利用了現有的帶寬。隨著ADSL技術的逐漸成熟,該編碼技術也正在應用於其它領域,如無線通信,針對其信道的衰減特性可以獲得較高的帶寬利用率。在具體硬體實現上,由於超大規模集成電路的發展,硬體已不再是信號處理的瓶頸了,如以上分析的維特比解碼,其對硬體的需求是隨著N的增大而迅速增加,需要上十萬的門電路實現,現已有單片的維特比解碼器,或是在特殊的應用中集成在一塊數字晶元中,同時完成RS編碼、交織、FFT變換等等。
�參考文獻
�
1Asymmetrical Digital Subscriber Lines(ADSL)�ITU-T�Recommendation G.992,Geneva,June,1999
2曹志剛,錢亞生.現代通信原理.北京:清華大學出版社
3Stephen G Wilson.digital Molation and Coding,○C1996 byPrentice�Hall,Inc
4ANSI T1.413�1998,COMMITTEE T1—Telecommunications Working Group T1E1.4 T1E1.4/98�007R5,1998
5John G Proakis.Digital Communications,Third edition,McGraw�Hill 1998
Ⅸ 卷積碼的解碼方法
若信道干擾序列為,其中。接收序列為
其中和。這里「+」為模 2 運算(q=p元碼按模p運算)。解碼就是根據編碼規則和信道干擾的統計特性,對信息序列u(x)作出估值的方法。常用的有三類解碼方法,即代數解碼、維特比解碼和序貫解碼。
⒈代數
代數解碼是將卷積碼的一個編碼約束長度的碼段看作是[n0(m+1),k0(m+1)]線性分組碼,每次根據(m+1)分支長接收數字,對相應的最早的那個分支上的信息數字進行估計,然後向前推進一個分支。上例中信息序列 =(10111),相應的碼序列 c=(11100001100111)。若接收 序列R=(10100001110111),先根據R的前三個分支(101000)和碼樹中前三個分支長的所有可能的 8條路徑(000000…)、(000011…)、(001110…)、(001101…)、(111011…)、(111000…)、(110101…)和(110110…)進行比較,可知(111001)與接收序列(101000)的距離最小,於是判定第 0分支的信息數字為 0。然後以R的第 1~3分支數字(100001)按同樣方法判決,依此類推下去,最後得到信息序列的估值為=(10111),遂實現了糾錯。這種解碼法,解碼時採用的接收數字長度或解碼約束長度為(m+1)n0,所以只能糾正不多於(dmin-1)/2個錯誤(n長上的)。實用中多採用反饋擇多邏輯解碼法實現。
⒉維特比
維特比解碼過程
維特比解碼是根據接收序列在碼的格圖上找出一條與接收序列距離(或其他量度)為最小的一種演算法。它和運籌學中求最短路徑的演算法相類似。若接收序列為R=(10100101100111),解碼器從某個狀態,例如從狀態ɑ出發,每次向右延伸一個分支(對於l<L,從每個節點出發都有 2=2種可能的延伸,其中L是信息序列段數,對l≥L,只有一種可能),並與接收數字相應分支進行比較,計算它們之間的距離,然後將計算所得距離加到被延伸路徑的累積距離值中。對到達每個狀態的各條路徑(有2=2條)的距離累積值進行比較,保留距離值最小的一條路徑,稱為倖存路徑(當有兩條以上取最小值時,可任取其中之一),解碼過程如圖。圖中標出到達各級節點的倖存路徑的距離累積值。對給定 R的估值序列為=(10111)。這種演算法所保留的路徑與接收序列之間的似然概率為最大,所以又稱為最大似然解碼。這種解碼的解碼 約束長度常為編碼約束長度的數倍,因而可以糾正不多於(df/2)個錯誤。
維特比解碼器的復雜性隨m呈指數增大。實用中m不大於10。它在衛星和深空通信中有廣泛的應用。在解決碼間串擾和數據壓縮中也可應用。
⒊ 序貫解碼
序貫解碼是根據接收序列和編碼規則,在整個碼樹中搜索(既可以前進,也可以後退)出一條與接收序列距離(或其他量度)最小的一種演算法。由於它的解碼器的復雜性隨m值增大而線性增長,在實用中可以選用較大的m值(如20~40)以保證更高的可靠性。許多深空和海事通信系統都採用序貫解碼。