• 沒有找到結果。

迴旋編碼器與迴旋解碼器設計與實作

本章節迴旋編碼器與迴旋解碼器的設計與實作[14,15]以碼率為 1/2 的 迴旋碼為主,設計說明與實作描述以前面章節的(2,1,3)迴旋碼為例,其他 不同限制長度的迴旋編碼器(K=3~7),不同解碼深度的迴旋解碼器(h=2~8) 將會於附錄呈現。

4.1 迴旋編碼器程式設計與實作

迴旋編碼器程式設計與實作,如圖 4.1-1:

圖 4.1-1 迴旋編碼器程式設計與實作 如圖 4.1-1 編號所示說明:

1. information bits 以 stream array 的方式送入 convolutional encoder。(針 對 K=3 編碼器於資料最後多送入 K-1=2 個 0 資料,以清除暫存器裡的 值)

2. 以迴圈隔離暫存器來達到暫存器位移的效果。(針對 K=3 編碼器會有 K-1 個暫存器,稱為編碼器記憶量)

3. 依照上部與下部的連接方式分別連結於不同的模餘 2 加法器,再對所 連結暫存器裡的資料取樣然後輸出。(上部加法器產生 u1 - first bit,下 部加法器產生 u2 - second bit)

4. 將 u1 - first bit 與 u2 - second bit 交錯輸出,儲存成 encode bits stream array(也就是 Channel bits stream)。

4.2 硬式解碼決策與軟式解碼決策設計與實作

解碼決策程式設計與實作如圖 4.2-1,針對碼率=1/2 的迴旋碼系統,

硬式決策可以將每一組碼字的兩個位元描述於一個平面上,描述兩個位 元可能具有的四個硬式決策值。若是八位準的軟式決策,將每一組碼字 以八位準在平面上等距分佈,形成六十四組軟式決策值,此時解調器所 傳送的直接是經過量化的雜訊訊號。

將經過量化的雜訊訊號送入決策解碼器,當解碼器選擇硬式決策解碼 (雙位準)時,直接與具有四個硬式決策值作距離比較,取最短距離的值直 接將量化後的訊號映射到所對應的硬式決策值(漢明距離),輸出至斐特比 解碼演算法計算;若解碼器選擇軟式決策解碼(八位準)時,直接與具有六 十四個軟式決策值作距離比較,取最短距離的值直接將量化後的訊號映 射到所對應的軟式決策值(歐式距離),輸出至斐特比解碼演算法計算。

圖 4.2-1 決策解碼器程式設計與實作

4.3 迴旋解碼器-斐特比解碼演算法程式設計與實作

迴旋解碼器-斐特比解碼演算法程式設計與實作,如圖 4.3-1:

圖 4.3-1 迴旋解碼器-斐特比解碼演算法程式設計與實作 如圖 4.3-1 編號所示說明:

1. information bits 以 stream array 的 方 式 送 入 viterbi convolutional decoder。

2. 分支路徑產生單元(Branch Metric generation Unit, BMU),產生每一段 分支接收訊號與籬柵圖上訊號的距離,在硬式決策上即是計算漢明距 離,而軟式決策必頇計算歐式距離。

3. 相加比較選擇單元(Add-Compare-Select Unit, ACSU),將分支路徑產生 單元出來每一段分支距離相加,並比較進入相同狀態的兩個分支路徑 哪一個較佳,進而累積到下一個狀態上。

4. 存活記憶單元(Survivor Memory management Unit, SMU),透過相加比 較選擇單元所計算出來的最佳累積路徑也就是相似度最大的倖存路徑,

本論文存活記憶單元所使用的設計為暫存器交換,因此會根據路徑解 碼深度而有相對應的暫存器數量。

5. 將暫存器交換最後輸出的值取樣,輸出並儲存。

4.4 迴旋編碼與斐特比解碼驗證

迴旋編碼與斐特比解碼驗證程式設計與實作,如圖 4.4-1:

圖 4.4-1 迴旋編碼與斐特比解碼驗證程式設計與實作

為了確認在無錯誤通道的環境下需可以完全解碼,因此在驗證的架構下 並沒有設置調變器、AWGN 的模擬通道與解調變器。由上圖可以看到 Information source stream 產生的 bits stream 經過 Encoder 編碼,Encoder 編碼完之後產生的 Channel bits stream 直接送到 Soft decision 作八位準的 解碼決策,再進入 Decoder 進行斐特比解碼演算,解碼完的資料便儲存 Information sink stream。而將 Information source stream 與 Information sink

圖 4.4-2 迴旋編碼與婓特比解碼驗證程式-人機介面

由上圖可以看到 Information control 可以控制產生的位元數,Error bits number 可以看到 Information source stream 與 Information sink stream 比對 後,計算不同的數量,而 Error graph 可以清楚看到資料比對後的錯誤位 置,可以進行更進一步的程式 debug。

圖中的範例可以從 Information control 的 Random Array 看到我們亂數 產生 10,000,000 筆資料,經過編解碼後,Information source stream 與 Information sink stream 比對後完全無誤,故證明解碼程式沒有問題。

相關文件