• 沒有找到結果。

用於無線通訊渦輪解碼之適應性運算量控制

N/A
N/A
Protected

Academic year: 2021

Share "用於無線通訊渦輪解碼之適應性運算量控制"

Copied!
97
0
0

加載中.... (立即查看全文)

全文

(1)

國立交通大學

國立交通大學

國立交通大學

國立交通大學

電機與控制工程學系

電機與控制工程學系

電機與控制工程學系

電機與控制工程學系

用於無線通訊渦輪解碼之適應性運算量控制

Adaptive Iteration Control of Turbo Decoding for WiMAX

Applications

研 究 生:謝博仁

指導教授:董蘭榮 博士

(2)

用於無線通訊渦輪解碼之適應性運算量控制

Adaptive Iteration Control of Turbo Decoding for WiMAX

Applications

研 究 生:謝博仁 Student:Po-Jen Hsieh

指導教授:董蘭榮 博士 Advisor:Lan-Rong Dung

國 立 交 通 大 學

電 機 與 控 制 工 程 學 系

碩 士 論 文

A Thesis

Submitted to Department of Electrical and Control Engineering

College of Electrical Engineering and Computer Science

National Chaio-Tung University

in Partial Fulfillment of the Requirements

for the Degree of Master

in

Eletrical and Control Engineering

October 2008

Hsinchu, Taiwan, Republic of China

(3)

用於無線通訊渦輪解碼之適應性運算量控制

研 究 生:謝博仁

指導教授:董蘭榮 博士

國立交通大學電機與控制工程學系

摘要

摘要

摘要

摘要

渦輪解碼是一種利用遞迴的方式來完成解碼的動作,而解碼次數與通道的傳 輸品質有相當大的關係,當通道品質相當好時,渦輪解碼可以很快的解碼出正確 的資料,然而通道環境惡劣時,渦輪解碼幾乎都得解到所預設的最大解碼次數才 會停止。而與其最後才發現解碼是失敗的,到不如及早停止解碼。因此我們提出 一個能夠估測封包解碼失敗的方法,並且在盡可能不影響錯誤率的前提下,盡快 停止無意義的遞迴動作,以節省不必要的功率消耗,並能縮短解碼時間,提早重 傳。其中我們利用一個簡單的方法觀察解碼資料事後機率,來做為判斷是否要放 棄解碼的機制,我們稱此機制為預棄技術(Early Give-up)。 另外,基於重傳的封包資料相同的情況下,我們可以利用上一筆解碼失敗所 留下來的資訊,做為新的解碼開始的初始值,使得整體平均的解碼遞迴次數能夠 再下降,根據模擬結果,結合以上兩種方法,在吵雜的通道環境下我們可以省下 最多約80%的遞迴次數。

(4)

Adaptive Iteration Control of Turbo Decoding for WiMAX

Applications

Student:Po-Jen Hsieh Advisor:Lan-Rong Dung

Institute of Electrical and Control Engineering National

Chiao-Tung University

Abstract

Turbo Decoding is a kind of iterative decoding process.The number of iterations required to correctly decode the packet depend on the channel condition.Turbo Decoding can obtain correct information quickly when the channel condition is good enough.When the channel is noisy, turbo decoding always needs a lot of the number of iterations which is close to the preset maximum iterations.So we propose a method which can predict that the packet will not be decoded correctly,giving up the decoding process earlier and request data to be re-transmitted immediately. We judge whether the packet is a failed pattern based on observations from the average absolute value of a posteriori probability of turbo decoding. The techbique called “Early Give-up”.

Besides, we can reuse the prior MAP information of the failed process based on the assumption of correlation between same packets transmitted at different times. Simulation results shows that the average iterations required to decode a packet can be reduced up to 80% under bad channel conditions.

(5)

誌謝

誌謝

誌謝

誌謝

本篇論文得以順利完成,首先要感謝的是我的指導教授──董蘭

榮教授,太老實且領悟力又很差的我,總是讓老師很頭痛,但老師還

是不厭其煩的指導我,教我做事的方法與態度,如何冷靜有邏輯的思

考問題,讓我學到了很多書上學不到的事。

同時,我要感謝我的爸媽,沒有你們辛辛苦苦的栽培,不會有今

天的我,我能夠受到這麼好的教育,完完全全都要感謝你們。還有要

感謝我的哥哥,大姊以及二姊,有你們的陪伴與支持,是我努力做好

我自己的動力。

另外,也感謝實驗室的學長們──穎毅、騰轟、學之、文豪、俊

衛、峻轍、志惟、仕捷、信承,你們予我分享了許多經驗還有幫助,

也給了我很多快樂的回憶。還有感謝陪伴兩年的同學們──詠麟、仁

德斯、小康、Kong,在課業與生活上的互相扶持、分擔紓解彼此的

壓力,我覺得很幸運能夠認識你們。當然也要感謝實驗室的學弟妹們

和兩位助理──邱哥、罩哥、智聖、小嘉鴻、貞如、乃禎、惟茵,因

為有了你們使得枯燥煩悶的實驗室快樂許多。

謹將此論文獻給所有關心我的人,在此致上最深的謝意。

(6)

章節目錄

章節目錄

章節目錄

章節目錄

中文摘要 i 英文摘要 ii 誌謝 iii 章節目錄 iv 圖目錄 vi 第一章 第一章 第一章 第一章 緒論緒論緒論緒論... - 1 - 1-1 研究動機...2 1-2 章節規劃...2 第二章 第二章 第二章 第二章 渦輪解碼技術渦輪解碼技術渦輪解碼技術渦輪解碼技術...3 2-1 渦輪碼的編碼架構...3 2-2 渦輪碼的解碼架構...4 2-3 最大事後機率演算法(MAP Algorithm)...6 2-4 LOG-MAP 演算法...13 2-4-1 渦輪解碼的終止技術(Termination Techniques)...17 2-5 渦輪碼在 IEEE 802.16 上的應用...19

2-5-1 混合式自動重傳請求(Hybrid Automatic Repeat Request)...19

2-5-2 IEEE 802.16 中渦輪編碼的規格...21 第三章 第三章 第三章 第三章 渦輪解碼中的預棄與狀態再利用技術渦輪解碼中的預棄與狀態再利用技術渦輪解碼中的預棄與狀態再利用技術渦輪解碼中的預棄與狀態再利用技術 ...26 3-1 研究動機...26 3-2 預棄技術的概念與模擬結果...27 3-2-1 編碼資料區塊大小的影響...29 3-2-2 如何降低預棄技術的誤判率...39 3-3 狀態再利用技術(State Reuse)...55

(7)

第四章 第四章 第四章 第四章 模擬結果比較模擬結果比較模擬結果比較模擬結果比較...67 第五章 第五章 第五章 第五章 結論與未來展望結論與未來展望結論與未來展望結論與未來展望...83 參考文獻 參考文獻 參考文獻 參考文獻...84

(8)

圖目錄

圖 1 渦輪編碼器之架構圖 ...3 圖 2 渦輪解碼器之架構圖...4 圖 3 [1]中所預期的渦輪解碼的位元錯誤率效能 ...5 圖 4 在 MAP 演算法中各個路徑值的相關性(參考自[3]) ...6 圖 5 MAP 演算法的運算流程圖...13 圖 6 max(x,y)與 max*(x,y)間的誤差...16 圖 7 線性趨近方法與忽略ln(1+e− −|x y|)的方法的誤差比較...17 圖 9 Turbo-CRC 解碼器...19 圖 10 迴旋渦輪編碼器(參考至[15]) ...21 圖 11 循環狀態查找表(參考至[15]) ...22 圖 12 產生子封包的流程圖(參考至[15]) ...23 圖 13 通道交錯器的架構圖(參考至[15]) ...24 圖 14 訊雜比與渦輪解碼遞迴次數的關係(參考至[21]) ...26 圖 15 每次遞迴後所剩下的錯誤位元數(參考自[12]) ...28 圖 16 每次遞迴後 LLR 的絕對值的平均值(參考自[12]) ...28 圖 17 位元錯誤率...30 圖 18 位元錯誤率...31 圖 19 位元錯誤率...31 圖 20 位元錯誤率...32 圖 21 位元錯誤率...32 圖 22 位元錯誤率...33 圖 23 平均遞迴次數 ...33 圖 24 平均遞迴次數...34

(9)

圖 25 平均遞迴次數...34 圖 26 平均遞迴次數...35 圖 27 平均遞迴次數...35 圖 28 平均遞迴次數...36 圖 29 以非單調遞增為預棄條件的解碼流程圖 ...38 圖 30 以不同的下降次數為預棄條件的解碼流程圖 ...40 圖 31 位元錯誤率 ...41 圖 32 位元錯誤率 ...41 圖 33 位元錯誤率 ...42 圖 34 位元錯誤率 ...42 圖 35 位元錯誤率 ...43 圖 36 平均遞迴次數 ...44 圖 37 平均遞迴次數...44 圖 38 平均遞迴次數...45 圖 39 平均遞迴次數...45 圖 41 LLR 絕對值的平均值的趨勢...47 圖 42 以非單調遞增以及臨界值為預棄條件的解碼流程圖 ...48 圖 43 以非單調遞增與臨界值判斷為預棄條件的效能比較...49 圖 44 以非單調遞增與臨界值判斷為預棄條件的效能比較...49 圖 45 不同的臨界值在位元錯誤率上的差異...50 圖 46 不同的臨界值在平均遞迴次數上的差異...51 圖 47 最佳臨界值的位元錯誤率 ...52 圖 48 最佳臨界值的效能 ...53 圖 49 最佳臨界值的效能...54 圖 50 最佳臨界值的效能...54 圖 51 渦輪解碼架構圖 ...55

(10)

圖 52 使用前一筆封包的 Le2 做為 La1 的效能圖...56 圖 53 使用前一筆封包的 Le2 做為 La1 的效能圖...56 圖 54 使用前一筆封包的 Le2 做為 La1 的效能圖 ...57 圖 55 使用前一筆封包的 Le2 做為 La1 的效能圖...57 圖 56 使用前一筆封包的 Le2 做為 La1 的效能圖...58 圖 57 使用前一筆封包的 Le2 做為 La1 的效能圖...58 圖 58 使用不同的 La1 起始值的效能比較 ...61 圖 59 使用不同的 La1 起始值的效能比較 ...61 圖 60 使用不同的 La1 起始值的效能比較 ...62 圖 61 使用不同的 La1 起始值的效能比較 ...62 圖 62 解碼失敗時 E|LLR2 |的趨勢 ...64 圖 63 解碼失敗時 E|LLR2 |的趨勢...64 圖 64 只有在 E|LLR2 |小於預棄條件的臨界值時才使用狀態再利用機制 ...65 圖 65 只有在 E|LLR2 |小於預棄條件的臨界值時才使用狀態再利用機制 ...65 圖 66 只有在 E|LLR2 |小於預棄條件的臨界值時才使用狀態再利用機制 ...66 圖 67 只有在 E|LLR2 |小於預棄條件的臨界值時才使用狀態再利用機制 ...66 圖 68 位元錯誤率...69 圖 69 平均遞迴次數...69 圖 70 效能比較圖...71 圖 71 效能比較圖...71 圖 72 效能比較圖...72 圖 73 效能比較圖...72 圖 74 效能比較圖...74 圖 75 效能比較圖...74 圖 76 效能比較圖...75 圖 77 效能比較圖...75

(11)

圖 78 效能比較圖...77 圖 79 效能比較圖...77 圖 80 效能比較圖...78 圖 81 效能比較圖...78 圖 82 效能比較圖...79 圖 83 效能比較圖...79 圖 84 效能比較圖...81 圖 85 效能比較圖...81 圖 86 效能比較圖...82 圖 87 效能比較圖...82

(12)

第一章

第一章

第一章

第一章

緒論

渦輪解碼(Turbo Decoding)自 1993 年被提出後[1],由於其有著接近於通道 容量的仙儂極限(Shannon limit)的優異錯誤更正能力,在通道編碼的領域中, 一直是個很熱門的研究主題,同時也被廣泛的應用在各個標準協定中,如 3GPP、 DVB-RCS、IEEE 802.16 等等。 然而渦輪解碼耗費龐大的運算量,並且需要大量的記憶體,導致功率上的消 耗相對的也不小,而這缺點對於可攜式的行動設備內有限的電池電量造成很大的 負擔。除此之外,渦輪解碼需要較長的解碼時間,如何增加整體解碼的吞吐量也 是門重要的課題。由於渦輪解碼是種以遞迴的方式來做解碼的方法,所以若能夠 省下無意義的遞迴次數,相對的就省下更多的功率消耗,不僅如此,也能夠增加 整體的吞吐量(thoughput)。 對於傳統的作法而言,遞迴次數是固定成某個數值,然而這種作法並不能適 性通道品質的變化,在大部分的情形下,這都不是很實際的作法,而在如何省下 遞迴次數方面,已經有大量的參考文獻研究著這方面的問題[7][24],這些方法 被稱為early-termination,而這些方法的精髓普遍在於如何去判斷所解碼的資 料已經正確被解出,以便停止多餘的遞迴。這些方法在資料的訊雜比較大時,解 碼的資料能夠很快的被判斷出已經收斂且解碼成功,便可以省下很多的遞迴次 數,然而在通道狀態相當吵雜時,這些方法所提出的收斂條件便無法達到,以致 於所需要的遞迴次數便幾乎等於所預設的最大的遞迴次數,但最後解碼可能一樣 是失敗的。因此我們對此提出一個能夠估測封包解碼失敗的方法,且在儘量不影 響錯誤率的前提下,盡快停止無意義的遞迴動作,以節省不必要的功率消耗。

(13)

另外基於重傳的封包資料相同的情況下,我們還能夠使用上一筆解碼失敗所 留下來的資訊做為新的一筆資料解碼的初始值[22],使得整體平均的解碼遞迴次 數能夠再下降。

1-1 研究動機

對於行動式的裝置來說,由於有限的電池容量,所以功率消耗的議題非常的 重要,對於渦輪解碼這種解碼方式來說,省下遞迴次數便等於省下功率消耗,而 我們希望能夠適應通道的狀態有效率的做解碼,並且在盡量不損失錯誤率效能 的前提下盡可能地減少功率的消耗。

1-2 章節規劃

本篇論文的章節架構如下: 第一章:序論 第二章:渦輪解碼技術 在此第二章中,我們簡單的介紹渦輪解碼中所使用的 MAP 演算法,以及 log-MAP 演算法如何對 MAP 演算法做複雜度上的改善,還有渦輪編碼器 以及解碼器的架構與概念做說明,而最後我們會再介紹渦輪碼應用在 IEEE 802.16 上的規格。 第三章:渦輪解碼中的預棄與狀態再利用技術 此章節是我論文的主體,我將會就這兩種技術的概念與想法以及一些問 題如何去克服做討論。 第四章:模擬結果比較 本章中總結綜合第三章的分析,歸納出一個最有效的方法,並對各種案 例作模擬。 第五章:總結與未來展望

(14)

RSC RSC11 RSC RSC22 Interleaver Interleaver Input bits

Interleaved parity bits uninterleaved parity bits

Puncturing

Puncturing

Output bits Xks

systematic parity bits XkP1 XkP2

第二章

第二章

第二章

第二章

渦輪解碼技術

渦輪解碼技術

渦輪解碼技術

渦輪解碼技術

渦輪碼最早於 1993 年由 Berrou, Glavieux 以及 Thitimajshima 所提出 [1],是通道編碼領域中的非常重大的突破,它有著非常優異的錯誤更正能力, 相當接近於通訊理論上薛儂極限值(Shannon limit),而理論上在白色高斯雜訊 (AWGN)的通道下,當訊雜比(Eb/No)為 0.7dB 時,此系統的錯誤更正能力能夠使 得位元錯誤率(Bit Error Rate)達到 10-5

。渦輪碼在近年來被廣泛應用在無線通 訊領域上,包含數位影像廣播(DVB-RCS)、第三代行動電話(3GPP),以及 WiMAX 等等之應用,而本論文是利用 IEEE 802.16 中所制訂的 Convolutional Turbo Code 的規格作為研究的平台。

2-1 渦輪碼的編碼架構

圖 1 渦輪編碼器之架構圖 渦輪碼的編碼器如圖 1 所示主要由兩個相同的 RSC(Recursive Systematic Convolutional)編碼器,以及一個交錯器(interleaver)所組成。欲編碼的資料 流(input bits)會經由第一個 RSC 編碼器做編碼,而得到一組平等位元資料 (uninterleaved parity bits),另一方面,資料流同時會經過交錯器,得到一

(15)

SISO

SISO11 SISOSISO22

de de--puncturingpuncturing Ys Yp1 Le1 Interleaver Interleaver Yp2 Interleaver Interleaver de de--interleaverinterleaver Le2 La2 La1 Ys 組相對於原始的資料流有著相當低的關連性的資料,再經過相同的 RSC 編碼器做 編碼,得到第二組平等位元資料(interleaved parity bits),所以基本上渦輪 碼的原始碼率(Coding Rate)為 1/3,而最後全部的三組資料會再經由 Puncturer 根據所需要的較高的碼率,利用特定的 puncturing table 去選擇特定所要傳輸 的位元。

2-2 渦輪碼的解碼架構

圖 2 渦輪解碼器之架構圖 渦輪解碼器如圖 2 所示主要由兩個 SISO(Soft-Input Soft-Output)解碼器, 以及兩個交錯器和反交錯器(de-interleaver)所組成。De-puncturing 的作用在 於將被 puncture 掉的位元填回來,以便得到一個完整的 codeword。 渦輪解碼的概念如下,首先 SISO 解碼器會利用從通道中收到的 systematic bits 所對應的值 Ys

,以及 uninterleaved parity bits 所對應的值 Yp1

,以及一 組事前資訊(a priori information)La1

,來計算每個位元為 1 或 0 的機率的比 值,之後便產生了一組外部資訊(extrinsic information),再經過了交錯器之

(16)

後,便成為第二組 SISO 解碼器所需要的事前資訊 La2

,接著第二組 SISO2解碼器

便利用 La2

以及 systematic bits 經過交錯器所得到的值,和 interleaved parity bits 所對應的 Yp2 來計算每個位元為 1 或 0 的機率的比值,一樣地,SISO2解碼完 後,會產生一組外部資訊供 SISO1在下一次的解碼用。而在做完一次 SISO1以及 SISO2的解碼,這樣便算是完成了一次的渦輪解碼的遞迴,而渦輪解碼便是利用 這樣的遞迴關係反覆的解碼,越多次的遞迴能夠得到越高的錯誤更正能力。另外 值得一提的是,在第一次遞迴的開始,La1 並還沒有辦法從 SISO2解碼器那獲得外 部資訊,所以基本上,第一次解碼的開始 La1 會被設成零。 圖 3 [1]中所預期的渦輪解碼的位元錯誤率效能 從圖 3 中可看到渦輪碼的錯誤更正能力與解碼所使用的遞迴次數有很大的正比 關係,當所使用的遞迴次數等於 18 次時,在 Eb/No 約等於 0.7dB 時,錯誤率便 可達到 10-5 。 對於渦輪解 碼的 SISO 解碼器, 能夠使 用最大事後 機率 MAP(Maximum a posteriori)解碼器或是 SOVA(Soft-output Viterbi algorithm)解碼器來完成, 而在此篇論文中,所選擇的是以 MAP 解碼器來實現。

(17)

m=0 m=1 m=2 m=3 … R1 Rk-1 Rk Rk+1 RN Sk-1 Sk γ γ γ γk(m) R1k Rk+1N α α α αk(m) ββββk(m)

2-3 最大事後機率演算法(MAP Algorithm)

MAP 演算法在 1974 年由 Bahl, Cocke, Jelinek 以及 Raviv 所提出,所以亦 稱為 BCJR 演算法,它是種軟式輸入軟式輸出(Soft Input Soft Output)的解碼 方式。MAP 演算法的精神在於利用所有從通道所接收到對應於每個位元的軟性值 (soft value) N R1 , 去 估 算 每 個 位 元d 為 1 和 0 的 事 後 機 率 的 比 值 , 即k LLR(log-likelihood ratio),若 LLR 的值大於零便解碼為 1,反之便解碼為 0。 } R {d } R {d ) LLR(d N k N k k 1 1 | 0 Pr | 1 Pr ln = = = (1) 圖 4 在 MAP 演算法中各個路徑值的相關性(參考自[3]) 而如何計算(1)式中所示的LLR(dk),MAP 演算法其實利用到了格子狀態圖

(trellis state diagram)來做為整個機率推導的基礎,如圖 4 所示。 我們觀察到(1)式中的Pr{dk =i|R1N}可利用格子狀態圖表示成

(18)

= =

∑∑

= = = m m N k k k N k i R } d i S m S m R {d ' 1 1 1 Pr{ , , '| } | Pr (2) 其中(2)式中的 m 與 m’所指的是當dk =i時,所有可能會從狀態 m’跳到狀態 m 的集合。而(2)式可以分解如下

∑∑

∑∑

∑∑

∑∑

− − − − + + − − − − = = = = = = = = = = = = = = = = m m N k k k k N k k k k m m N N k k k k k k m m N N k k k m m N k k k R R m S R m S R R m S i d R R R R m S m S i d R R m S m S i d R m S m S i d ' 1 1 1 1 1 1 1 1 ' 1 1 1 1 1 ' 1 1 1 ' 1 1 } Pr{ } , ' Pr{ } , ' | , , , Pr{ } Pr{ } , , , ' , , Pr{ } Pr{ } , ' , , Pr{ } | ' , , Pr{ (3) 其中(3)式的最後由於當狀態到達Sk1後,後面的所有狀態與編碼的輸出值都已 和 1 1 − k R 沒有關係,所以 } ' Pr{ } ' , , , , Pr{ } ' | , , , Pr{ } , ' | , , , Pr{ 1 1 1 1 1 1 1 1 1 m S m S m S R R i d m S R R m S i d R m S R R m S i d k k k N k k k k N k k k k k k N k k k k = = = = = = = = = = = = − − + − + − − + (4) 其中Pr{dk =i,Rk,RkN+1,Sk =m,Sk1=m'}可以拆解如下 } ' , , , Pr{ } ' , , , | Pr{ } ' , , , , Pr{ 1 1 1 1 1 m S m S R i d m S m S R i d R m S m S R R i d k k k k k k k k N k k k N k k k = = = = = = = = = = − − + − + (5) 一樣地,當狀態Sk到達 m 後,之後的狀態轉移與輸出皆與dk =i,Rk,Sk1=m'這三 項沒有關係,所以Pr{RkN+1|dk =i,Rk,Sk =m,Sk1 =m'}=Pr{RkN+1|Sk =m} (6) (5)式中的Pr{dk =i,Rk,Sk =m,Sk1 =m'}可做類似的拆解如下 } ' Pr{ } ' | , , Pr{ } ' , , , Pr{dk =i Rk Sk =m Sk1 =m = dk =i Rk Sk =m Sk1 =m Sk1=m (7)

(19)

所以綜合(2)~(7)式,我們可以得到

∑∑

+ = = = − = − = − = = m m N k k k k k k k N k N k R R m S m S m S R i d m S R } R i {d ' 1 1 1 1 1 1 1 } Pr{ } , ' Pr{ } ' | , , Pr{ } | Pr{ | Pr (8) 再將(8)套入(1)中得到

∑∑

∑∑

∑∑

∑∑

= = = = = = = = = = = = = = = = = = = = = = + − − − + − − − − − − + − − − + m m k N k k k k k k k m m k N k k k k k k k m m k k k k k k k N k m m k k k k k k k N k k m S R m S m S R d R m S m S R m S m S R d R m S R m S m S m S R d m S R R m S m S m S R d m S R ) LLR(d ' 1 1 1 1 1 ' 1 1 1 1 1 ' 1 1 1 1 1 ' 1 1 1 1 1 } | Pr{ } ' | , , 0 Pr{ } , ' Pr{ } | Pr{ } ' | , , 1 Pr{ } , ' Pr{ ln } , ' Pr{ } ' | , , 0 Pr{ } | Pr{ } , ' Pr{ } ' | , , 1 Pr{ } | Pr{ ln (9) 其中我們再定義 } , ' Pr{ ) ' ( 1 1 1 1 − − − = k = k k m S m R α (10) } ' | , , Pr{ ) , ' (m m dk i Rk Sk m Sk1 m i k = = = − = γ (11) } | Pr{ ) (m RN1 Sk m k k = + = β (12) 將(10)~(12)式代入(9)式中,最後得到 MAP 演算法實際上所計算的式子

∑∑

∑∑

− − = m m k k k m m k k k k m m m m m m m m ) LLR(d ' 0 1 ' 1 1 ) ( ) ' , ( ) ' ( ) ( ) ' , ( ) ' ( ln β γ α β γ α (13) 如圖 4 所示,αk(m)實際上利用到第 1 個到第 k 個時間點從通道中所收到的 ) ,..., , ( 1 2 1 k k R R R R = 值,以及狀態Sk的機率去計算,而以下將會推導αk(m)實際上 可由前一個時間點的所有αk −1(m')來遞迴算出,所以αk(m)稱為前向路徑狀態值

(20)

) , ' ( ) ' ( } ' | , Pr{ } , ' Pr{ } , ' Pr{ } ' | , Pr{ } , ' Pr{ } , ' | , Pr{ } , , , ' Pr{ } , , , ' Pr{ } , , ' Pr{ } , , ' Pr{ } , Pr{ ) ( 1 0 ' 1 1 0 ' 1 1 1 1 1 1 1 1 0 ' 1 1 1 1 1 0 ' 1 1 1 1 0 ' 1 1 1 1 0 ' 1 1 1 1 0 ' 1 1 1 0 ' 1 1 1 m m m m S R m S R m S R m S m S R m S R m S R m S R m S R R m S m S R R m S m S R m S m S R m S m S R m S m k M m k M m k k k k k k k M m k k k k k M m k k k k M m k k k k M m k k k k M m k k k M m k k k k k k γ α α

− = − − = − − − − − − = − − − − = − − − = − − − = − − − = − − = − = = = = = = = = = = = = = = = = = = = = = = = = = = = (14) 另外,如圖 4 所示,βk(m)實際上利用到第 k+1 個到第 N 個時間點從通道中所收 到的RkN+1(=Rk+1,Rk+2,...,RN)值,以及狀態Sk的機率去計算,而以下將會推導 ) (m k β 實際上可由後一個時間點的所有βk +1(m')來遞迴算出,所以βk(m)稱為後

向路徑狀態值(Backward State Metrics)。

) ' , ( ) ' ( } | , ' Pr{ } ' | Pr{ } Pr{ } | , ' Pr{ } Pr{ } , , ' | Pr{ } , , ' Pr{ } Pr{ } , ' | Pr{ } Pr{ } , , ' Pr{ } Pr{ } , ' Pr{ } | ' Pr{ } | Pr{ ) ( 1 1 0 ' 1 1 1 1 0 ' 1 2 1 1 1 0 ' 1 1 2 1 1 1 0 ' 1 1 2 1 0 ' 2 1 1 1 0 ' 1 1 1 0 ' 1 1 1 m m m m S R m S m S R m S m S R m S m S m S R m S R m S R m S m S m S R m S R m S m S R R m S m S m S R m S m S R m S m S R m k M m k k k k M m k N k k k k k M m k k k k N k k k k M m k k k k N k M m k k N k k k M m k k N k k M m k N k k k N k k + − = + + + − = + + + + − = + + + + + − = + + + − = + + + − = + + − = + + +

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = γ β β (15)

(21)

而在(14)以及(15)式中,有個很重要的事情如何決定α 與β 的初始值(即 ) ( 0 m α 及βN(m)),對於一般的渦輪編碼的系統而言,兩個 RSC 編碼器的起始狀 態皆為零狀態,所以對於此種系統而言,前向狀態路徑值的初始值的設定如下    ≠ = = 0 , 0 0 , 1 ) ( 0 m m m α (16) 而 RSC 編碼器的最終狀態,對於一般的系統而言,在編碼時會多送一筆額外 的資料,稱為 Termination bits,這些位元的目的在於將編碼的最終狀態設成 零狀態,以便能夠讓後向狀態路徑值有明確的初始值如下    ≠ = = 0 , 0 0 , 1 ) ( m m m N β (17) 現在問題剩下如何去計算(11)式中的γki(m',m),觀察此式我們可以看出這個 值與Sk1=m'狀態轉換到Sk =m狀態,以及發生此狀態轉變時,所相對應的輸入 位元dk,還有所收到的Rk有關,所以由於這個值與發生在格子狀態圖上的每條 分支有關,γki(m',m)稱為分支路徑值(Branch Metrics)。 而(11)式中,R =k (yks,ysp), s k y 所代表的是對應於系統位元(systematic bits) 從通道中所收到的值,而 s p y 所代表的是對應於平等位元(parity bits)從通道中 所收到的值,所以γki(m',m)可以再拆解如下 } ' , Pr{ } ' , | Pr{ } ' Pr{ } ' , , | Pr{ } ' , , Pr{ } ' Pr{ } ' , , | Pr{ } ' Pr{ } ' , , , Pr{ } ' | , , Pr{ ) , ' ( 1 1 1 1 1 1 1 1 1 1 m S m S m S m S i d m S m S m S i d R m S m S i d m S m S m S i d R m S m S m S R i d m S m S R i d m m k k k k k k k k k k k k k k k k k k k k k k k k k k k i k = = = = = = = = = = = = = = = = = = = = = = = = = = = − − − − − − − − − − γ

(22)

} ' | Pr{ } ' , | Pr{ } ' , , | Pr{Rk dk =i Sk =m Sk 1=m dk =i Sk =m Sk 1=m Sk =m Sk 1=m = − − − (18) 其中Pr{dk =i|Sk =m,Sk1 =m'},若由Sk1=m'狀態轉變成Sk =m狀態時輸 入的位元dk =i,此條分支存在於格子點狀態圖上,則Pr{dk =i|Sk =m,Sk1=m'}= 1,若不存在,則Pr{dk =i|Sk =m,Sk1 =m'}= 0。 所以,對於Pr{dk =i|Sk =m,Sk1 =m'}= 1 的分支,即 } ' | Pr{ } ' , , | Pr{ } ' , , | Pr{ } ' | Pr{ } ' , , | Pr{ ) , ' ( 1 1 1 1 1 m S m S m S m S i d y m S m S i d y m S m S m S m S i d R m m k k k k k p k k k k s k k k k k k k i k = = = = = = = = = = = = = = = − − − − − γ (19) 其中因為dk所編碼出的系統位元只和dk本身有關,而與第 k 個時間點的狀態如 何轉移無關,所以 Pr{yks|dk =i,Sk =m,Sk1=m'}=Pr{yks |dk =i} (20) 而(19)式變成 ) , ' , ( } | Pr{ } ' | Pr{ } ' , , | Pr{ } | Pr{ ) , ' ( 1 1 m m y i d y m S m S m S m S i d y i d y m m p k i k k s k k k k k k p k k s k i k γ γ = ≡ = = = = = = = (21)

其中Pr{Sk =m|Sk1=m'}對應到前面所提到的事前資訊(a priori information) ,而在解碼的開始,此項機率並沒有額外的資訊來做參考,所以 5 . 0 } 0 Pr{ } 1 Pr{dk = = dk = = 。 所以綜合以上的推導,(13)式又進一步的變成

∑∑

∑∑

= = = − − m m k p k k k s k k m m k p k k k s k k k m m m y d y m m m m y d y m ) LLR(d ' 0 1 ' 1 1 ) ( ) , ' , ( } 0 | Pr{ ) ' ( ) ( ) , ' , ( } 1 | Pr{ ) ' ( ln β γ α β γ α

(23)

∑∑

∑∑

− − + = = = m m k p k k k m m k p k k k k s k k s k m m m y m m m m y m d y d y ' 0 1 ' 1 1 ) ( ) , ' , ( ) ' ( ) ( ) , ' , ( ) ' ( ln } 0 | Pr{ } 1 | Pr{ ln β γ α β γ α (22) (22)式中有個很重要的觀念,我們可以把LLR(dk)分成三項 LLR 值的相加,即 ) ( ) ( ) ( k apriori k extrinsic k systematic k) L d L d L d LLR(d = + + (23)

(a)Lsystematic(dk):系統資訊(systematic information),其代表的是根據每個 時間點所收到的系統位元它是傳送 1 或 0 的機率比值, 即 } 0 | Pr{ } 1 | Pr{ ln = = k s k k s k d y d y

(b)Lapriori(dk):事前資訊(a priori information),其代表即Pr{Sk =m|Sk1=m'}

的機率,而此項值會代入另一個 MAP 解碼器所算出的

) ( k

extrinsic d

L ,一般來說,在解碼的開始,此項值被設定為零。

(c)Lextrinsic(dk):外部資訊(extrinsic information),此項 LLR 值被用來當作另 一個 MAP 解碼器的事前資訊。 最後,簡述一下 MAP 解碼器整個解碼的流程 STEP 1:根據(16),(17)式初始化前向狀態路徑值以及後向狀態路徑值。 STEP 2:在每個時間點,對於所收到的Rk,利用(21)算出分支路徑值,並利用 (14)的遞迴關係式去計算前向狀態路徑值。 STEP 3:當所有的Rk已經都收到,便可利用(15)的遞迴關係式計算出後向狀態 路徑值,並且可以根據(13)或(22)式去決定出每個位元的 LLR 值, STEP 4:對於渦輪解碼而言,利用(23)式計算出Lextrinsic(dk)後,即 ) ( ) ( ) ( k k systematic k apriori k extrinsic d LLR(d ) L d L d L = − − (25)

(24)

Channel values Channel values R RNN a priori information a priori information L Laprioriapriori

Branch metrics calculation

Branch metrics calculation

γ γ γ γ γ γ γ γkk

Forward metrics calculation

Forward metrics calculation

α α α α α αα αkk--11

Backward metrics calculation

Backward metrics calculation

β β β β β β β βkk LLR calculation LLR calculation LLR(d LLR(dkk)) 再把這項 LLR 值送進另一個 MAP 解碼器中作為Lapriori(dk),另一個解碼 器會再根據經過交錯器所得到的Rk,利用 STEP1~STEP4,反覆地解碼。 STEP 5:在每次 MAP 解碼器解碼後,都可以得到對應於每個位元的 LLR 值,而此 時我們可以對任意一組 MAP 解碼器所解出來的 LLR 值去根據(24)式做 Hard Decision,算出dk的值。    < > = 0 , 0 0 , 1 ) LLR(d ) LLR(d d k k k (24) 最後再將以上整個 MAP 演算法的運算與相關性畫成流程圖,如圖 5 所示。 圖 5 MAP 演算法的運算流程圖

2-4 LOG-MAP 演算法

儘管 MAP 演算法有相當優異的且接近薛儂極限的錯誤更正能力,但是 MAP 的 原始演算法需要使用到大量的指數,乘法,加法等運算,這對於硬體實現而言複 雜度太高,所以有學者便試想是否能將原本使用乘法的 MAP 演算法,實現在對數

(25)

領域上,想辦法讓乘法運算轉換成加法運算,而在 1995 年由 Robertson, Villebrun,以及 Hoehes 提出了 Log-MAP 演算法[4]。

Log-MAP 演算法是對原始的 MAP 演算法做複雜度的改善,而理論上計算的結果是 一樣的。Log-MAP 主要精隨是先將前向狀態路徑值,後向狀態路徑值,以及分支 路徑值都取對數運算,如下 } ' | Pr{ ln } ' , , | Pr{ ln } | Pr{ ln ) , ' ( ln ) , ' ( ' 1 1 m S m S m S m S i d y i d y m m m m k k k k k p k k s k i k i k = = + = = = + = = = − − γ γ (25) } )) , ' ( ' ) ' ( ' exp( ln{ ))} , ' ( ' exp( )) ' ( ' exp( ln{ )} , ' ( ) ' ( ln{ ) ( ln ) ( ' 1 0 ' 1 1 0 ' 1 1 0 ' 1

− = − − = − − = − + = = = = M m k k k M m k k M m k k k m m m m m m m m m m m γ α γ α γ α α α (26) 而αk' m( )的初始值設定如下,    ≠ ∞ − = = 0 , 0 , 0 ) ( ' 0 m m m α (27) ))} ' , ( ' ) ' ( ' exp( ln{ )} ' , ( ) ' ( ln{ ) ( ln ) ( ' 1 1 0 ' 1 1 1 0 ' 1 m m m m m m m m k M m k k M m k k k + − = + + − = +

+ = = = γ β γ β β β (28) 而β' mk( )的初始值設定如下,    ≠ ∞ − = = 0 , 0 , 0 ) ( ' m m m N β (29) 將(25),(26),(28)式代入(13)式中得到

(26)

1 1 ' 0 1 ' 1 0 1 1 ' ' 1 0 1 1 ' ( ') ( , ') ( ) ln ( ') ( , ') ( ) ln{ ( ') ( , ') ( )} ln{ ( ') ( , ') ( )} ln{ exp( ' ( ') ' ( , ') ' ( ))} ln{ exp( ' ( ') ' ( , ') k k k m m k k k k m m k k k k k k m m m m k k k k k m m m m m m LLR(d ) m m m m m m m m m m m m m m m m m m m α γ β α γ β α γ β α γ β α γ β α γ β − − − − − − = = − = + + − + +

∑∑

∑∑

∑∑

∑∑

∑∑

' ' ( ))}k m m m

∑∑

(30) 從(30)式中,我們發現雖然原本(13)式中的乘法變成了加法運算,但是卻也多出 了一項非線性的指數運算,所以到此為止,複雜度其實並沒有減少。然而,我們 可以利用到一個關係式 | | max* ( , )x y =ln(ex +ey)=max( , )x y +ln(1+e− −x y) (31) 且此關係式可以擴展成 3 個以上的變數,只要將兩兩變數做計算,如下所示

max* ( , , )x y z =ln(ex +ey +ez)=max* (max* ( , ), )x y z (32)

將 max*函數代入(26)和(28)中可以得到 1 1 ' 0 1 m' '( ) ln{ exp( ' ( ') ' ( ', ))} = max*( ' ( ') ' ( ', )) M k k k m k k m m m m m m m α α γ α γ − − = − = + +

(33) 1 1 1 ' 0 1 1 ' ' ( ) ln{ exp( ' ( ') ' ( , '))} = max*( ' ( ') ' ( , ')) M k k k m k k m m m m m m m m β β γ β γ − + + = + + = + +

(34) 再將 max*函數代入(30)得到 1 1 , ' 0 1 , ' max*( ' ( ') ' ( , ') ' ( )) max*( ' ( ') ' ( , ') ' ( )) k k k k m m k k k m m LLR(d ) m m m m m m m m α γ β α γ β − − = + + − + + (35)

(27)

從(33)~(35)可以看到,log-MAP 演算法所計算的前向狀態路徑值,後向狀態路 徑值,以及 LLR(dk)的運算已經變成了加法運算,以及兩個變數輸入的 max 函數 的運算,和 | | ln(1+e− −x y)的計算,而最後這項函數可使用查表法或是線性趨近的 方法來計算,而此函數在|x-y|大於某個值時, | | ln(1+e− −x y)便變得很小,所以也 有種 MAP 演算法的變型稱為 log-max MAP 演算法,即是將ln(1+e− −|x y|)直接忽略 掉,而 max*函數也就直接用 max 函數來取代,當然相對的必須付出約 0.3dB 的 效能上的降低[4]。 圖 6 max(x,y)與 max*(x,y)間的誤差 觀察圖 6 可以發現,在大於約 2.5 之後,誤差的值其實已經小於 0.05,而之後 的誤差也是以指數的方式下降,而我們可以在誤差較大的部分,利用一條直線去 趨近它,在這篇論文中,我便是以線性趨近的方法去計算 max*(x,y),詳細方法 以及其所造成的誤差如下所示 其中 TJIAN = 2.50681740420944 AJIAN = -0.2490416319543

(28)

x , (x-y) > TJIAN x + AJIAN (x-y-TJIAN) , 0<(x-y)<TJIAN max_linear(x,y) =

y - AJIAN (x-y+TJIAN) , -TJIAN<(x-y)<0 y , (x-y) < -TJIAN   ×   ×   (36) 圖 7 線性趨近方法與忽略 | | ln(1+e− −x y)的方法的誤差比較 圖 7 裡面表示我們利用線性趨近的方式可以使得原本直接忽略所造成的最大等 於 0.7 的誤差降低至不管在任何情況下都可以小於 0.05。

2-4-1 渦輪解碼的終止技術(Termination Techniques)

在前面的章節已經討論過渦輪解碼的遞迴次數與錯誤率有相當大的關係,而 如何去決定該用多少次的遞迴去解碼,對於傳統的作法而言,它會預設一個最大 的遞迴次數,而不管解碼是否已經成功,一樣都得等到預設的遞迴次數達到了, 才會停止解碼,這顯然是個很不實際的方法,因為在訊雜比較高時,實際上渦輪

(29)

RSC1 RSC2 Interleaver Puncturing Output bits CRC Encoder Turbo Encoder 解碼能夠很快地就解出正確的資料,於是多餘的遞迴次數只是多付出了額外的功 率消耗。於是有大量的文獻研究如何去判斷渦輪解碼已經解出正確的資料,以便 盡快的停止解碼,這些方法稱為終止技術(termination techniques)。 終止技術又分為兩大類,一類的方法試著利用渦輪解碼中能夠觀察到的資訊 去判斷解碼的收斂性[5],[6],[7]。另一類方法在渦輪編碼之前加入額外的錯 誤控制碼(error control coding),例如循環冗餘校驗碼(Cyclic redundancy check),並利用這些編碼去判斷每次遞迴後解碼結果的正確性。而在此篇論文 中,即是利用後者的方法做為判斷解碼正確性的方法。而加入循環冗餘校驗碼的 渦輪編碼器的架構圖如圖 8 所示 圖 8 Turbo-CRC 編碼器 而圖 9 是加入循環冗餘校驗碼渦輪解碼器的架構圖,主要差別在於多了”CRC Decoder”這塊硬體,它會在每次遞迴之後,先針對 SISO2每個位元的 LLR 輸出做

hard decision(也可使用 SISO1的 LLR 輸出,而在此篇論文中,選擇的是 SISO2

的輸出),之後對於所加入的循環冗餘校驗碼做解碼,若通過了錯誤偵測,則停 止解碼,並將 hard decision 的結果輸出。而實際上,循環冗餘校驗碼會有一定 的機率會將錯誤的資料誤判成正確的資料[8],只要當所加上去雜訊的位元剛好 能夠整除循環冗餘校驗碼的生成多項式(generator polynomial)時,便會造成循 環冗餘校驗碼解碼的錯誤,然而越長的循環冗餘校驗碼發生偵測失敗的機率就越 低[20]。

(30)

SISO1 SISO2 de-puncturing Ys Yp1 Le1 Interleaver Yp2 Interleaver de-interleaver Le2 La2 La1 Ys hard decision CRC Decoder LLR2 D e c o d e r o u tp u t 圖 9 Turbo-CRC 解碼器

2-5 渦輪碼在 IEEE 802.16 上的應用

在本小節中,我們將描述制訂在 IEEE 802.16 中的迴旋渦輪碼(Convolutional Turbo Code)的規格,以及如何產生子封包(subpacket),而在此篇論文中,所選 用來研究的渦輪碼系統即是 IEEE 802.16 中所制訂的規格,而此種規格可以被用 來支援 HARQ(Hybrid Automatic Repeat Request)傳輸,而在這裡我們先就 HARQ 做個簡單的介紹。

2-5-1 混合式自動重傳請求(Hybrid Automatic Repeat Request)

HARQ 是種結合自動重傳請求(Automatic Repeat-reQuest,ARQ)以及前向錯 誤更正碼(Forward error correction,FEC)的通訊機制[9],在只有 ARQ 的系統 中,我們只要對傳送的資料加入錯誤偵測碼,接收端靠著這些碼偵測是否有錯誤 而決定重新傳送與否,其中錯誤偵測碼通常都不長,碼率(coding rate)能夠維

(31)

持的很高,所以此系統在訊雜比很高的通道下,能有很高的吞吐量(thoughput), 然而在通道很吵雜的情況下,當資料發生錯誤時只能要求重送,造成吞吐量大大 的降低。在另一方面,只有 FEC 的系統中,當訊雜比較低時,錯誤更正碼能夠盡 可能的更正錯誤,讓整體的錯誤率降低,然而在訊雜比較高時,資料可能只有少 部分發生錯誤甚至沒有錯誤,而在這樣的情況下,加入太長的錯誤更正碼很明顯 的是對頻寬的浪費,所以 HARQ 便是希望能夠適當的結合這種系統的優點的一種 機制,除此之外,在 HARQ 系統中,我們會希望解碼失敗的資料並不直接或完全 被丟棄,而是能夠結合重傳之後的封包,讓錯誤率降低或是吞吐量增加,而 HARQ 到目前為止大致上分成三大類:

TYPE I HARQ:只是單純地結合 FEC 與 ARQ 兩種機制,在每次的重送中,都 同時送出了錯誤偵測碼和全部的錯誤更正碼,而對於各次重傳所 收到的封包,能夠使用一些封包結合(packet combining)的方 法,例如 Chase 所提出的 Code Combining[10],它能夠非常有效 的提升效能。

TYPE II HARQ:對於 FEC 的部分,並不在一開始就送出所有的錯誤更正碼, 而是隨著重傳的次數而慢慢的釋出更多的冗餘(redundancy)位 元,讓錯誤更正能力慢慢提升,如此一來便能適應通道狀態的變 化,此種方法稱為 Incremental redundancy [11][12][13],而 IEEE 802.16 迴旋渦輪碼所支援的 HARQ 傳輸便是屬於這種形式。 TYPE III HARQ:一般來說,TYPE II HARQ 每次所傳送的子封包,單獨是無 法解碼的,必須要結合其他筆資料才有辦法解碼,而對於 TYPE III HARQ 而言,主要特點便是其所傳送的每一筆子封包都有能 夠個別解碼的能力,也就增加了解碼成功的機會[14]。

(32)

2-5-2 IEEE 802.16 中渦輪編碼的規格

在 IEEE 802.16 的迴旋渦輪編碼器中,使用雙二位元循環遞迴系統迴旋碼 (duo binary Circular Recursive Systematic Convolutional code)作為其組 成碼(constituent code),如圖 10 所示,其中 A,B 代表資料輸入的位元向量,

而輸入編碼器的資料區塊假設為 k 個位元也就是 N 對位元,則8≤N / 4≤1024 ,而以下的式子定義此編碼器的電路連結(使用十六進位表示法及多項式表示) 迴授連結: 0xB , 3 1+D+D 平等位元 Y 輸出: 0xD , 2 3 1+D +D 平等位元 W 輸出: 0x9 , 3 1+D 圖 10 迴旋渦輪編碼器(參考至[15]) 在此渦輪編碼器中,使用 Tail-Biting 的技術[16][17][18],其與傳統的渦 輪編碼器將編碼的初始狀態與終止狀態設定為零狀態有所不同,在傳統的作法 中,由於必須讓編碼的終止狀態回到零狀態,所以還必須送出一段稱為終結位元 (termination bits)的多餘資料,而我們試著想省掉這些位元所造成在碼率上面

(33)

的損失,而 Tail-Biting 便是其中一種方法,在這種編碼器中,我們設定編碼的 初始狀態與終止狀態為同樣的狀態,稱之為循環狀態(circulation states),而 如何決定此狀態必須根據所要編碼的資料而有所改變,在 IEEE 802.16 中,它提 供了一種查表的方法讓我們決定編碼的初始狀態,步驟如下 STEP 1: 將編碼器初始狀態設定為零狀態,開始輸入欲編碼的資料編碼,假設最 後的終止狀態為 S0N-1,利用圖 11 的查找表(lookup table)找出所對應的 初始狀態。(對於兩個組成編碼器皆須做以上的步驟,因為經過交錯器後 的資料在編碼過程中的狀態轉變是和原本是完全不一樣的。) STEP 2:將編碼器初始狀態設定為 STEP 1 中所查到的狀態後,再將資料重新編 碼一次,而最後的終止狀態便會和初始狀態相同。 圖 11 循環狀態查找表(參考至[15]) 以下討論子封包的產生(subpacket generation)的相關技術,在資料經過碼 率=1/3 的迴旋渦輪編碼後,之後會經過通道交錯器(channel interleaver)將資 料打亂,最後在依照所需要的碼率做 puncturing 的動作,而這些一系列的動作

(34)

symbol separation

Channel Interleaver subblock interleaving

symbol grouping 1/ 3 CTC Encoder

symbol selection Puncturer

的流程圖如圖 12 所示,其中通道交錯器的動作又細分為三個步驟 symbol separation,subblock interleaving,以及 symbol grouping,而 puncturing 的動作在這裡又稱為 symbol selection。最後會產生一個或數個子封包,而這 裡所產生的子封包可以使用在 HARQ 傳輸中,下面針對各個功能做介紹。

圖 12 產生子封包的流程圖(參考至[15])

通道交錯器(Channel Interleaver)的各個步驟的動作:

(a) Symbol separation:這步驟將碼率為 1/3 的迴旋渦輪編碼器的所有輸出分 成六個子區塊 A,B,Y1,Y2,W1,W2 。

(b) Subblock interleaving:在各個子區塊中,各自做內部的交錯排列。 (c) Symbol grouping:最後再將所有區塊經過交錯器打亂後的資料收集起來,

其中 Y1,Y2與 W1,W2 會再經過交替的排列,整個通道交錯

(35)

圖 13 通道交錯器的架構圖(參考至[15])

最後,執行 symbol selection 以產生所需要的子封包,symbol selection 可以從通道交錯器所產生的序列中任意的地方開始選取一段連續的位元,而對於 第一次傳輸,必須從第一個位元開始選取,也就是必須包含系統位元(systematic bits)的部分,而當沒有使用 HARQ 傳輸時,第一次傳輸所產生的子封包就是輸出 的 codeword。而子封包的長度決定於所需要的碼率,而碼率的選擇又決定於通 道的狀態,下面將說明子封包的位元是如何被選擇的,我們先定義幾個參數: k:子封包的索引。第一次傳輸時,k=0,每下一個子封包,k 的值會被加一。而 當沒有使用 HARQ 傳輸時,k=0。 NEP:進入迴旋渦輪編碼器的資料區塊的位元數。 NSCH:子通道(subchannel)的個數。 mk:第 k 個子封包傳輸時所使用的調變的階數。 (當使用 QPSK 時,mk=2。當使用 16-QAM 時,mk=4。當使用 64-QAM 時,mk=6)

(36)

我們將通道編碼器輸出的所有位元從第一個到最後一個編號為 0~(N-1)號,而第 k 個子封包的第 i 個位元的編號可由下面的的公式得到: , ( ) mod(3 ) k i k EP S = F + i ×N (37) 其中 i=0,1,...,LK −1 48 K SCHk k L = ⋅N ⋅m ( ) mod(3 ) k k k EP F = SPID ⋅L ⋅N 第一次傳輸的子封包包含系統位元的部分,因此當不使用 HARQ 傳輸時,這個子 封包便可作為傳輸的 codeword。到此為止,子封包已經完整的被產生出來。在 這篇論文中,我們並未使用 HARQ 傳輸方式去討論研究的主題,然而 HARQ 傳輸所 能夠提供的優異的性能是非常值得探討的。

(37)

第三

三章

渦輪解碼中的預棄與狀態再利用技術

渦輪解碼中的預棄與狀態再利用技術

渦輪解碼中的預棄與狀態再利用技術

渦輪解碼中的預棄與狀態再利用技術

3-1 研究動機

根據[21][22][23]等相關文獻的模擬,渦輪解碼解出正確的資料所需要的遞 迴次數會隨著通道的訊雜比的減少而增加,而在非常吵雜的通道下,所須的遞迴 次數幾乎等於所預設的最大遞迴次數,但在此情況下(如圖 14 中 Eb/No 在 0~0.6dB 時,解碼次數幾乎等於 10 次),大部分的封包最後解碼的結果卻是失敗的。這個 方法很顯然並不實際,所以針對這點讓我們有了個想法,既然最後解碼的結果是 失敗的,那何不即早放棄解碼,以節省無意義的解碼遞迴次數。而在[25]的論文 中他提到了一種預先放棄解碼的方法簡稱為預棄技術(Early Give-up technique),然而在模擬分析之後發現,這方法在資料區塊較短時,錯誤率會漸 漸上升,而在此篇論文中,主要便是探討如何不增加太多的遞迴次數的前提下, 能夠降低預棄技術的錯誤率。 圖 14 訊雜比與渦輪解碼遞迴次數的關係(參考至[21]) 預棄技術的觀念是基於觀察渦輪解碼中的資訊,當觀察到解碼似乎有解碼失 敗的趨勢時,便立即停止解碼,如此一來,所省下的遞迴次數等效的能夠節省多

(38)

餘的功率消耗,更可以縮短整體解碼的時間延遲,而能提早要求傳送端重傳一筆 新的封包,提升通訊服務的品質(Quality of Service,QoS)。

預棄技術能夠省下可能會解碼失敗的封包所浪費掉的遞迴次數,而另一方 面,當在收到一筆重傳的相同封包時,其實我們可以利用上一筆解碼失敗的資料 解碼後所留下來的資訊做為新的一筆封包渦輪解碼時的初始值[22],而這個方法 我們稱之為狀態再利用技術(State Reuse technique),而在結合[22]中的方法 至預棄技術的過程中,需要做一些小小的修正,以讓錯誤率方面有更好的效能, 而模擬證明,這方法能讓渦輪解碼遞迴次數有效的減少,甚至能讓錯誤率也有所 改善。

3-2 預棄技術的概念與模擬結果

前面有提到預棄技術是基於觀察封包是否有解碼失敗的趨勢,決定是否要放 棄解碼,而根據[12]中的論述,我們發現對於大部分解碼能夠成功的封包而言, 其在渦輪解碼時,隨著每次遞迴次數的增加,LLR 值的期望值會單調地遞增,而 從此觀點出發,我們似乎可以將”LLR 值的期望值是否單調遞增”做為判斷封包 能否成功解碼的條件。圖 15 與圖 16 是在[12]中,它分析大量的封包解碼的情形 後,根據各個封包在每次遞迴後所剩下來的錯誤位元數以及解碼的情形分成五大 類:

(a) F1:error-free,fast convergence

解碼成功,且在解碼時很快就更正了所有的錯誤。 (b) F2:error-free,slow convergence

(39)

(c) F3:few errors 解碼失敗,最後留下了少數的錯誤位元數。 (d) F4:many errors 解碼失敗,最後還存在著許多錯誤位元數。 (d) F5:oscillating errors 錯誤位元數在每次遞迴中不停的震盪。 圖 15 每次遞迴後所剩下的錯誤位元數(參考自[12]) 圖 16 每次遞迴後 LLR 的絕對值的平均值(參考自[12])

(40)

由圖 16 中看到對於最後解碼失敗且錯誤數目很多的這種封包(F4),LLR 的絕對 值的平均值是在每次的遞迴間是不停的來回震盪的,也就是說無法單調遞增, 所以我們以及[25]的預棄技術便以此做為放棄解碼的指標的基礎。然而若單純以 此準則來做判斷條件,可能將部分沒有單調遞增但最後能夠解碼成功的封包誤 判,造成錯誤率的上升,而這些現象我們會在後面慢慢作分析以及改善。 而根據[12]這篇論文中,它有提到一些理論觀點來證明為什麼 LLR 的絕對值的平 均值會有這樣的趨勢。假設所要傳送的資料x∈ − +{ 1, 1}的可能性相同的(equally likely),另外假設介於渦輪編碼器,實體通道,渦輪解碼器間的 metachannel 的通道模型為加成性白色高斯雜訊(AWGN)的通道,且其期望值為零(zero mean ),變異數為 2 m σ ,接收到的值為z。 2 Pr{ 1 | } ( | 1) 2 ( ) ln ln Pr{ 1 | } ( | 1) m x z f z x LLR x z x z f z x σ = + = + = = = = − = − (38)

其中, f( | )⋅ ⋅ 表示條件機率密度函數(conditional probability density function)。對(38)式的左右各取絕對值與期望值的計算變成, 2 2 [ ( ) ] [ ] m E LLR x E z σ = (39) 而透過遞迴次數增加,渦輪解碼器會試圖減少 2 m σ ,所以當 2 m σ ↓則 [E LLR x( ) ]↑ 。

3-2-1 編碼資料區塊大小的影響

由上一小節所得到的想法,[25]便是將停止解碼的條件設定為”若 LLR 的絕 對值的平均值未單調遞增則停止解碼”,換句話說,我們會在每次解碼的遞迴 後,便去計算 LLR 的絕對值的平均值,即 1 1 [ ( ) ] ( ) N i E LLR x LLR x N = =

(40)

(41)

若發現這次遞迴後的E LLR x[ ( ) ]小於上次遞迴的值,那便立即停止解碼。而 以下是不同的資料區塊大小以及不同的碼率所得的錯誤率及平均每一筆封包解 碼出正確的資料時所需遞迴次數。而以下模擬圖中,Magic Genie 的方法[7]指 的是在每次遞迴後所解出來的資料,在模擬階段,我們可以和真的所送出的資料 作比較,若已經相同,則馬上停止解碼,而在解碼失敗時,遞迴次數便等於最大 的解碼遞迴次數,所以這方法所得到的遞迴次數等於是解出正確的一筆資料所需 要的最小遞迴次數。 在圖 17~28 中,不論是位元錯誤率或是平均遞迴次數的模擬圖裡,我將資料 區塊大小(Block size)標示於圖形的上方,碼率(Code rate)也標示在圖形的上 方。 0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

(42)

0 0.5 1 1.5 2 2.5 3 3.5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 144 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

圖 18 位元錯誤率 0 0.5 1 1.5 2 2.5 3 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 240 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

(43)

0 0.5 1 1.5 2 2.5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 384 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

圖 20 位元錯誤率 0 1 2 3 4 5 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 144 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once

(44)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 216 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once

圖 22 位元錯誤率 0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

(45)

0 0.5 1 1.5 2 2.5 3 3.5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 144 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

圖 24 平均遞迴次數 0 0.5 1 1.5 2 2.5 3 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 240 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

(46)

0 0.5 1 1.5 2 2.5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 384 bits , Code rate = 1/2 Magic Genie

Give-up when fall Once

圖 26 平均遞迴次數 0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 144 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once

(47)

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 216 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once

圖 28 平均遞迴次數

由圖 23~26(碼率皆是 0.5)的平均遞迴次數的模擬圖來看,使用預棄的方法在 約 Eb/No 等於 0~1dB 時,相較於 magic genie 的方法約可省下 60%左右的遞迴次 數,而在 Eb/No 等於 1.5dB 時,隨著資料區塊大小升高,解碼的能力也上升,解 碼會失敗的封包便越來越少,所以在這個訊雜比下,圖 23(區塊大小=48 bits), 還可以省下 57%左右,而圖 24(區塊大小=144 bits)剩下 33%左右,而圖 25(區塊 大小=240 bits)只剩下 16%左右,圖 26(區塊大小=384 bits)只剩下不過 5%。 而當區塊大小變大,解碼能力上升,所以會在 Eb/No 越小的值時,magic genie 和預棄的遞迴次數就貼在一起了,因為已經沒有會失敗的封包可以被放棄,例如 圖 23 在 3dB 之後預棄技術沒辦法省下什麼遞迴次數,圖 24,圖 25 則是在 2dB 之後,圖 26 則比 2dB 還小一點。而錯誤率方面,圖 17(區塊大小=48 bits)在 BER=10-5 的情況下,和 magic genie 的差異約 0.5dB,而隨著區塊大小的上升, 圖 18(區塊大小=144 bits)在 BER=10-5 下,差異約 0.4dB,圖 19(區塊大小=240 bits)

(48)

在 BER=10-5 下,差異約 0.25dB,圖 20(區塊大小=384 bits)在 BER=10-5 下,差異 約 0.2dB,也就是說,隨著區塊大小的增加,我們可以利用這個機制來估算封包 會解碼失敗的準確度越來越高,所以和 magic genie 間的差距也就越來越小,這 有可能是因為當計算 LLR x( )的平均值時所使用的樣本數越來越多,所得到的平 均值便能越接近理論上的期望值E LLR x[ ( ) ],所以我們推論在使用較長的資料區 塊大小的渦輪碼時,利用剛剛簡單的預棄判斷條件在錯誤率上面的效能損失會越 來越小,所以我們將研究重心放在資料區塊大小較小的部分。 對於圖 27~28(碼率皆等於 3/4)而言,圖 27(區塊大小=144 bits)的平均遞 迴次數在 0~3dB 間約可省下 65%~25%,圖 28(區塊大小=216 bits)的平均遞迴次 數在 0~3dB 間也約可省下 65%~25%。而錯誤率方面,圖 27 和圖 28 在 BER=10-4 的 情況下,錯誤率約比 magic genie 高了 0.2dB 左右。 所以使用以上的預棄技術的方法,在 BER=10-5 時,最多會有 0.5dB 的損失, 在高訊雜比時,不但遞迴次數沒有任何優勢,錯誤率甚至還升高了,所以現在必 須針對如何降低誤判的機率這點想辦法作改進。

(49)

圖 29 以非單調遞增為預棄條件的解碼流程圖

而我們將[25]的預棄技術的整個解碼過程化成流程圖來解釋,如圖 29 所 示,一開始我們接收到資料後,便開始使用 MAP 解碼器做解碼,在每次解碼遞迴

後,便將 SISO2所得到的 LLR 值做 Hard decision 以得到所有的二進位數值,而

再對這些位元裡面所加入的 CRC 碼做錯誤偵測檢查,若發現 CRC 已經正確,便視 為解碼已經成功,立即停止解碼。而若發現 CRC 解碼未正確,表示資料可能還有 錯誤,則再判斷 E|LLR|是否比上次遞迴的數值來的小,如果是則便猜測這是一 筆解碼無法成功的封包,便立即停止解碼。若 E|LLR|未減少,則繼續判斷是否 已經到達最大的解碼次數,若是則停止解碼,否則繼續回到 MAP 解碼器解碼。

(50)

3-2-2 如何降低預棄技術的誤判率

上一小節中,我們知道[25]將解碼過程中E LLR x[ ( ) ]未單調遞增的封包放棄 解碼,然而模擬結果發現,在資料區塊大小較小的封包在訊雜比較高的情況下, 容易發生誤判的事件,造成本來能夠解碼成功的封包卻在解碼成功前被強迫停 止,使得整體錯誤率的上升。 而要如何盡量避免誤判發生這種解碼情況的封包,於是我們有了個想法:若 能夠解碼成功的封包絕大部分會有單調遞增的情形,換句話說,這些封包的 [ ( ) ] E LLR x 應該會隨著遞迴次數的增加而朝向較高的值發展,而這種間若不小心 值減少了,我們是不是可以在給它機會做解碼,期望它能夠在未來的遞迴中能夠 解碼成功。所以我們將預棄的條件修改成以下的方法,首先我們會先定義一個最 大值的參數稱為 MAX_FALL,這個值代表的是在解碼的遞迴間,我們能容許 [ ( ) ] E LLR x 的值下降幾次,即E LLR x[ ( ) ]的值沒有大於前一次遞迴的值的次數, 當下降的次數已經等於 MAX_FALL 次,或是已經到達預先定義的最大解碼次數, 則便立即停止解碼,整體詳細的解碼流程圖繪製在圖 30 中。 在此說明一下在圖 29 及圖 30 裡,為何將 CRC 解碼以及判斷提早終結(Early Termination)的條件判斷放在預棄條件判斷的前面的是因為這能夠避免掉若這 筆資料其實已經沒有錯誤,但是卻湊巧在此次遞迴後,E LLR x[ ( ) ]剛好減少且滿 足了預棄的條件,而被誤判的機會,除非這筆資料的錯誤剛好是 CRC 解碼所無法 辨認的,但是這樣的機率相當小,所以這樣的解碼流程安排,理論上能比將預棄 條件判斷擺在提早終結條件判斷的前面有較低的錯誤率。

(51)

圖 30 以不同的下降次數為預棄條件的解碼流程圖

而底下我們對於不同的 MAX_FALL 設定做模擬,在此模擬三種不同的例子, MAX_FALL=1,2,3,而分別對應的模擬圖上的 Give-up when fall once,

Give-up when fall twice,以及 Give-up when three times。而當 MAX_FALL=1 時,便等效於圖 29 也就是[25]的方法。

(52)

0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

圖 31 位元錯誤率 0 0.5 1 1.5 2 2.5 3 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 144 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

(53)

0 0.5 1 1.5 2 2.5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 240 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

圖 33 位元錯誤率 0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 144 bits , Code rate = 3/4 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

(54)

0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 216 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once Give-up when fall twice Give-up when fall three times

圖 35 位元錯誤率 在錯誤率方面,圖 31~35 中,若是選用設定落下次數等於 3 次的部分,在 BER=10-5 , 的情況下,和 magic genie 大概最多只有 0.1dB 的差距,而且隨著區塊大小便大, 一樣有便準的趨勢,而對於設定落下 2 次的部分,在 BER=10-5 下,最多大約有 0.2dB 的差距,而對於落下次數等於 1 次的部分,便和圖 17~22 有完全一樣的結果。

(55)

0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

圖 36 平均遞迴次數 0 0.5 1 1.5 2 2.5 3 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 144 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

(56)

0 0.5 1 1.5 2 2.5 3 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 240 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

圖 38 平均遞迴次數 0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 144 bits , Code rate = 3/4 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when fall three times

(57)

0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 Eb/No (dB) A ve ra g e It er a ti o ns p er p ac ket

Block size = 216 bits , Code rate = 3/4 Magic Genie

Give-up when fall Once Give-up when fall twice Give-up when fall three times

圖 40 平均遞迴次數 而看看圖 36~40 的部分,使用較大的 MAX_FALL 值,也就是給予封包越多的 機會做解碼的確能讓錯誤率有效的降低,然而在平均遞迴次數的效能圖中又發 現,其在低訊雜比(0~0.5dB)的部分,MAX_FALL 每增加 1,整體平均的遞迴次數 也增加了約 1~1.5 次,這是因為我們讓真正能夠解碼成功的封包多一點的機會去 解碼,但相對的也浪費了遞迴次數給解不開的封包。另外,在 MAX_FALL=3 的情 形下,錯誤率在訊雜比較高的部分依然有一定的損失,這是因為我們只能保證在 [ ( ) ] E LLR x 減少了三次之內,封包能夠解碼成功,若為其他的情形下,此封包便 會被迫停止解碼,而如果我們將 MAX_FALL 設定成更大的數值,那基本上便沒有 辦法節省多少遞迴次數。 模擬發現,利用以上的這種修正方法避免不了遞迴次數與錯誤率之間的嚴重 拉扯,所以這讓我們又開始尋找在渦輪解碼中是不是有其他的更好的判斷方法能 夠去估測封包是會解碼失敗的。而讓我們再看看E LLR x[ ( ) ]的趨勢圖。

(58)

1 2 3 4 5 6 7 8 9 10 0 20 40 60 80 100 120 140 160 180

The Trends of E|LLR|

iterations M e a n o f |L L R | 圖 41 LLR 絕對值的平均值的趨勢 圖 41 的模擬圖是根據資料區塊大小為 48 bits,碼率為 1/2,訊雜比(Eb/No) 在 0dB 下所模擬的,而每一條線,所代表的便是一個封包它在 10 次的解碼遞迴 中 E|LLR|的值,而藍色的線代表的是這筆封包在 10 次遞迴裡面,解碼能夠成功 的封包,相反的,紅色的線代表的是在 10 次遞迴裡面這筆封包解碼失敗。 而可以看出來,對於解碼失敗的封包(紅色的部分)而言,它的E LLR x[ ( ) ]值 幾乎都是在很小的地方來回震盪,而根據模擬也發現其他的資料區塊大小或是碼 率的封包也有一樣的趨勢,所以我們猜想是否可以設定一個臨界值,而將預棄的 條件修正為當E LLR x[ ( ) ]值發生減少的情形時,我們去判斷E LLR x[ ( ) ]是否小於 這個臨界值,若是則我們判斷它應該是屬於圖 41 底部的那些解不開的封包,便 立即停止解碼,若否,則繼續解碼,整個流程圖如圖 42 所示,其中我們所改變 的是在於判斷完 E|LLR|是否降低之後,多加了判斷它是否小於我們所設定的臨 界值,而要注意的是,這邊用來判斷是否小於臨界值的 E|LLR|,我們是取上一

(59)

次遞迴的 E|LLR|previous

而這是因為模擬發現利用 E|LLR| previous 來判斷是否小於 臨界值的方法比用這次遞迴之後的 E|LLR|來做判斷能有較低的錯誤率,因為有 些其實能夠解碼成功的資料的 E|LLR|,可能會在某次遞迴後突然降低很多,甚 至降到了臨界值以下,所以我們可以用前一筆的值來做判斷以避免掉這方面的誤 判。 圖 42 以非單調遞增以及臨界值為預棄條件的解碼流程圖 而為了得知這個觀點應該是有用的,我以觀察類似圖 41 的模擬圖的方式,先 定義出一個粗糙的臨界值並代入模擬。

(60)

0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R a te

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when three times Give-up when fall and E|LLR|<5

0 1 2 3 4 5 1 2 3 4 5 6 7 8 9 Eb/No (dB) A ve ra g e I te ra ti o n s p e r p a c ke t

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall once Give-up when fall twice Give-up when three times Give-up when fall and E|LLR|<5

圖 43 以非單調遞增與臨界值判斷為預棄條件的效能比較

(61)

0 1 2 3 4 5 10-6 10-5 10-4 10-3 10-2 10-1 100 Eb/No (dB) B it E rr o r R at e

Block size = 48 bits , Code rate = 1/2 Magic Genie

Give-up when fall once

Give-up when fall and E|LLR|<3 Give-up when fall and E|LLR|<5 Give-up when fall and E|LLR|<7

在圖 43,圖 44 中,我們比較使用臨界值的方法和不同降低次數的方法作比 較,結果發現它在錯誤率的效能能夠很貼近 magic genie 的方法,甚至比下降三 次就放棄解碼的方法來的低(在圖 43 中的 BER=-5 的情形下,與 magic genie 的差 異剩下了約 0.05dB 左右),而遞迴次數方面卻只比下降一次就放棄解碼的方法多 付出了一些(從 Eb/No=0~3dB 間,最多多了 0.2 次遞迴),所以這方法不論在通道 訊雜比低或高的情形下,都能有很不錯的表現。而剩下的問題便是如何去決定此 臨界值,我們先看圖 45,其中我分別設定了三個不同的臨界值 3,5 與 7,而模 擬結果可以看到當臨界值訂的越高時,錯誤率和平均遞迴次數都會漸漸接近下降 一次就放棄解碼的效能,因為會有越多的封包在E LLR x[ ( ) ]發生下降時被直接放 棄掉,反之。若臨界值訂的越低,則錯誤率和平均遞迴次數便會漸漸接近 magic genie 的方法。在此篇論文中,我調整臨界值的準則是基於讓位元錯誤率在大於 等於 10-5 時和 magic genie 的方法在訊雜比上相差不超過 0.1dB 為原則,而盡可 能的降低平均遞迴的次數。 圖 45 不同的臨界值在位元錯誤率上的差異

參考文獻

相關文件

You are given the wavelength and total energy of a light pulse and asked to find the number of photons it

Directed numbers 2.1 understand the concept of directed numbers 9 Students are required to represent the directed numbers on the number line.. Students are required to

volume suppressed mass: (TeV) 2 /M P ∼ 10 −4 eV → mm range can be experimentally tested for any number of extra dimensions - Light U(1) gauge bosons: no derivative couplings. =&gt;

incapable to extract any quantities from QCD, nor to tackle the most interesting physics, namely, the spontaneously chiral symmetry breaking and the color confinement.. 

• Formation of massive primordial stars as origin of objects in the early universe. • Supernova explosions might be visible to the most

Miroslav Fiedler, Praha, Algebraic connectivity of graphs, Czechoslovak Mathematical Journal 23 (98) 1973,

2-1 註冊為會員後您便有了個別的”my iF”帳戶。完成註冊後請點選左方 Register entry (直接登入 my iF 則直接進入下方畫面),即可選擇目前開放可供參賽的獎項,找到iF STUDENT

(Another example of close harmony is the four-bar unaccompanied vocal introduction to “Paperback Writer”, a somewhat later Beatles song.) Overall, Lennon’s and McCartney’s