• 沒有找到結果。

第四章 改良式消去迴圈演算法

4.2 模擬結果與分析

以下將以非正規矩陣(irregular matrix)做模擬與分析,在[29]、[30]提 出設計良好的非規則矩陣解碼效能比規則矩陣好,而規則矩陣的好處為簡化設計 硬體的複雜度,不過隨著超大型積體電路的進步,現在的應用大多採用非規則矩 陣以達到更好的效能。

模擬矩陣的參數性質列於表 4-2,採用[24]文獻中的方法建構而成的基本矩 陣,此矩陣與表 3-1 所做分析模擬之矩陣相同,因此稍後有兩種演算法模擬的數 據比較。

Cycle_Information Delete_Information

滿足即打斷 Cycle

不滿足即回復 Cycle 未被打斷的 Cycle

資訊及數量

已被打斷的 Cycle 資訊及數量

Code Rate 1/2 Variable node degree 2,3,7

Check node degree 5,6 Base matrix size 18x36 表 4-2 非正規基本矩陣各種參數

圖 4-8 為 code rate=1/2 之非規則矩陣,大小為 18x36,位元節點的權重分 別為{ 2,2,…,2,3,…,3,7,…,7 },矩陣中共有 117 個 1,可觀察出矩陣的右半 段 1 的分佈較為密集,表示這些點含有大量的迴圈,由程式分析顯示每一個元素 1 含有 cycle-4、6、8 平均值達到 1268。當基本矩陣能擴展的倍數越大,即代表 有更多的位移值選擇而打斷更多的迴圈,模擬顯示擴展倍數 L 需要 235 方能打斷 所有迴圈。

圖 4-8 Code Rate=1/2 Irregular Matrix

迴圈類型 Cycle-4 Cycle-6 Cycle-8

總數 324 5,544 142,488

每元素平均值 2.77 47.38 1217.84 表 4-3 Code Rate=1/2 矩陣中各種迴圈總數與平均

為什麼優先權的機制能更有效率打斷迴圈?因為當一個元素為 1 的點具有 最高迴圈數量時,代表能一次打斷迴圈的數量越多,迴圈的總數是固定的,如果 能在每次位移動作時能打斷最多的迴圈,不僅加快迴圈消去的速度,也能減少執 行元素位移動作的次數。圖 4-9 為每次執行完該元素位移動作後,所有元素之最 大迴圈值的數據,開始執行 10 次之內的最大迴圈值有明顯減少,故每次動作都 能打斷最多的迴圈數量,即可看出採用權重優先打斷迴圈的方法收到良好的成 效,而超過 20 次後因為最大迴圈值變低而打斷的迴圈數量有限,因此曲線較為 平緩,總共花費 53 次執行遞迴次數將所有 Cycle-4、6、8 消除。

0 500 1000 1500 2000 2500 3000 3500

1 6 11 16 21 26 31 36 41 46 51 元素執行位移動作之次數

所有元素之最大迴圈值

圖 4-9 每次執行位移動作後所有元素最大迴圈值之長條圖

圖 4-10 為每次執行位移動作後每個元素的迴圈平均值,在前十次元素位移 消去的動作時,所有剩下迴圈的平均值已從 1268 降至 361,下降的幅度達 71.5%,

再次證明以優先權打斷的機制獲得了成效,除此之外執行元素位移的次數減少 後,運算量相對減低許多,在表 3-1 已討論過相同矩陣利用傳統迴圈消去演算法 所花費的運算量,而這邊也將確切的運算量列於表 4-4,由於表 3-1 是以

constraint 的數量做為基準,而搜尋迴圈的方法差不多,故這邊也是以 constraint 的數量當作比較的單位。

原作者的演算法每遇到迴圈就搜尋此迴圈中所有的 1 並檢查 constraint 以 減低快速增加的位移量,但帶來了大量的運算量,而以權重優先的方式先找出最 大迴圈值的元素動作,僅動用了 53 個元素還不到總個數的一半就可打斷所有的 迴圈,相對減低檢查 constraint 的數量達到 72%,若再乘上每個 constraint 的 加法數及乘法數將會更可觀,結果列於表 4-5。

另外也將電腦模擬時間列於表 4-4,程式由 Matlab 撰寫實現,電腦主機為 Intel Core2-Quad Q6600,擴展的倍數為 235 倍。

0 200 400 600 800 1000 1200 1400

1 6 11 16 21 26 31 36 41 46 51 元素執行位移動作之次數

所有剩餘迴圈之平均值

總 constraint 運算量 實際運算時間

傳統式 76,050,105 5575 秒

改良式 21,328,164 404 秒

改進比例(%) 72% 92%

表 4-4 兩種演算法之比較列表

每條 constraint 傳統式 改良式

加法數 532,068,806 149,297,148 乘法數 684,164,027 191,953,476

表 4-5 兩種演算法之乘法數與加法數

前文提到本矩陣靠近右側具有較密集的 1,因此右側將會產生大量的迴圈,

如果當基本矩陣的擴展值有一定的限制時,以原作者的演算法一定從最左側的行 開始消去,消去到一半時可能將所有擴展值的選擇用完,反而最需要打斷的右側 卻無法進行打斷迴圈的動作,所以原作者的演算法遇到右側有密集的 1 且擴展範 圍有限時會遇到這方面的問題。反觀以迴圈的總數排定優先次序,對於越密集的 1 所形成的迴圈優先打斷,整體效果會更好。表 4-6 為隨機取右側 9 個元素在不 同擴展倍數剩餘的迴圈數與原始未被打斷的數據比較,證明能有效打斷這些迴 圈,因此本演算法適用於低擴展倍數,也就是編碼長度短的應用,將在下一節說 明與分析。

坐標/擴展倍數 未擴展 50 倍 100 倍 150 倍

(2,32) 2,482 18 4 1

(2,33) 2,114 18 4 2

(4,33) 1,564 14 3 0

(6,33) 1,627 15 1 0

(10,32) 1,840 14 0 0

(11,32) 1,783 15 0 0

(11,33) 1,587 10 1 0

(5,12) 2,817 24 6 0

(12,33) 2,450 23 3 1

表 4-6 本演算法在 1 分佈密集區域執行後剩餘的迴圈數量

相關文件