You are on page 1of 7

高等 編碼理論 Final Project 

 
(LDPC & Polar) 

劉力瑋 
 
 
 
 
 
 
 
 
 
 
 
 
Part 1 LDPC 
Overview: 
這次project 要我們去下載 Mackay 提供的 LDPC code 來跑模擬 
- Sum Product Algorithm (SP) 
- Min Sum Algorithm (MS) 
另外,還希望我們可以利用 EXIT Chart 的分析去 預估 decode threshold 
 

Water Fall of Sum Product & Min Sum 


照理來說 LDPC 的 min sum algorithm 由於是用 approximation 的方式來做 check node update 
,所以效果應該要比較差一些,所以通常會設定scaling factor 來補償,但是由下面water fall 可
以看到,當 min sum 的 scaling factor 設定為 0.65 時,SNR 超過 2.5 就已經贏 sum product 
algorithm 。 
另外再寫 Sum Product 必須要注意到 inf 的問題,因此建議使用 box prodcut 的方式去實現。 

 
 
 

EXIT Chart 

Check Node EXIT Chart 


基本上 extrinsic mutual informaiton 隨著A Prior mutual information 成長(單調函數) 
因為check node 所有的 input 都來自 假設獨立的 Variable Node 所提供的A Prior Information,
所以A Prior Mutual Information 越大,相對而言 Extrinsic Mutual Information 也越大。 
 

Variable Node EXIT Chart 


從上圖我可以看到,Extrisic Mutual Information 也是隨著 A Prior Mutual Information 而遞增, 
Extrinsic Information 的offset 代表 Channel Value 的影響。 
隨著A Prior 提供越多的 mutual information 反而會影響, 
因為 Variable Node 會收到 Channel Input (A Prior 越大(variance of A Prior),Channel Input 
(Variance of Channel) 卻不變),所以到後面 Channel Input 反而使 Exitrinsic Information 的成長
趨緩。 

LDPC EXIT Chart 


由於 LDPC 也是使用 iterative decoding method,所以 Check Node 的 extrinsic information 可
以作為 Variable Node 的 a prior ,而 Varialbe Node 的 extrinsic information 可以當做 Check 
Node 的 A Prior,因此通常會將兩張圖片的x y 軸互換。如同下方圖所示 

 
當兩條線重疊代表decode 最終無法完整decode, 
兩條線所包住的面積,其實也代表decode iteration 的次數多寡。 
面積越大,iteration 越少,面積越小 iteration 約多。 
因此當 snr 越大,Variale Node 的線會越往上跑。 
當兩條線相切的瞬間,代表在這個snr 之後 iterative decoding 的能力開始展現。 
通常對應到water fall 掉下來的 snr值。(如下圖所示,snr 為 1 ~ 1.25 dB 時 兩條線剛好相切) 

 
 

 
 
 
 
 
 
 
 

Part 2 Polar Code 


Overview: 
Polar Code 的 project 主要是要我們模擬 5G NR 的 spec ,rate=½, CRC Aided Polar 
主要實現以下兩種演算法 
- List Successive Decoding (L=8) 
- Belief Propagation  
另外,還希望我還實現了沒有 crc 版本的 successive decoding 
 
List Successive Decoding Belief Propagation 
 
 
 
 
 
 
 
 
 
 
 
 
Successive Decoding 
 
 
 
 
 
 
從上圖可以發現,LSC Decoding 在L=8 的 water fall performance 只有比 L=4 和 1 好一點(這
部份可能是我跑得Frame Error 太少(L=8 原始資料如下圖所示) 
另外,比較 Belief Propagation 與 LSC L=1 可以發現,Belief Propagation performance 比較差
,目前推測主要是因為Iteration 數目不夠造成。 
如果是沒有 CRC 的 successive decoding 的話,其實可以發現,由於 沒有 crc ,所以frozen set 
相對其他兩者,會來得更多。因此相對 L=1 的 List Successive Decoding 而言,BER 的表現會來
得更好。 
LSC8_Hybrid Max Frame: 10000 start at 23:18:46 25/06/2019 

SNR_dB ,Total FR ,frame_err ,fer ,total bit ,#BE ,BER ,log10(BER)   

1.000000 ,24 ,20 ,0.833333 ,12288 ,4365 ,0.355225 ,-0.449497   

1.250000 ,34 ,20 ,0.588235 ,17408 ,3729 ,0.214212 ,-0.669156   

1.500000 ,58 ,20 ,0.344828 ,29696 ,3808 ,0.128233 ,-0.892001   

1.750000 ,93 ,20 ,0.215054 ,47616 ,3512 ,0.073757 ,-1.132198   

2.000000 ,333 ,20 ,0.060060 ,170496 ,3038 ,0.017819 ,-1.749126   

2.250000 ,835 ,20 ,0.023952 ,427520 ,2548 ,0.005960 ,-2.224757   

2.500000 ,923 ,10 ,0.010834 ,472576 ,1072 ,0.002268 ,-2.644277   

2.750000 ,1995 ,10 ,0.005013 ,1021440 ,770 ,0.000754 ,-3.122722   

3.000000 ,4437 ,10 ,0.002254 ,2271744 ,834 ,0.000367 ,-3.435193   

3.250000 ,10001 ,6 ,0.000600 ,5120512 ,398 ,0.000078 ,-4.109430   

LSC4 Max Frame: 10000 start at 03:25:08 26/06/2019 

SNR_dB ,Total FR ,frame_err ,fer ,total bit ,#BE ,BER ,log10(BER)   

1.000000 ,3 ,3 ,1.000000 ,1536 ,689 ,0.448568 ,-0.348172   

1.250000 ,6 ,3 ,0.500000 ,3072 ,462 ,0.150391 ,-0.822779   

1.500000 ,10 ,3 ,0.300000 ,5120 ,544 ,0.106250 ,-0.973671   

1.750000 ,10 ,3 ,0.300000 ,5120 ,623 ,0.121680 ,-0.914782   

2.000000 ,13 ,3 ,0.230769 ,6656 ,430 ,0.064603 ,-1.189745   

2.250000 ,103 ,3 ,0.029126 ,52736 ,373 ,0.007073 ,-2.150398   

2.500000 ,76 ,3 ,0.039474 ,38912 ,410 ,0.010537 ,-1.977300   

2.750000 ,558 ,3 ,0.005376 ,285696 ,231 ,0.000809 ,-3.092292   

3.000000 ,1570 ,3 ,0.001911 ,803840 ,352 ,0.000438 ,-3.358627   

3.250000 ,3631 ,3 ,0.000826 ,1859072 ,315 ,0.000169 ,-3.770986   

   

You might also like