作者Justinok (Sin)
看板comm_and_RF
標題Re: [問題] LDPC MSA解碼器實現問題
時間Thu Jan 31 10:05:23 2013
※ 引述《Justinok (Sin)》之銘言:
: 小弟最近在做LDPC中的最小和演算法(MSA),要計算錯誤率(BER),利用Richardson在2001
: 年所提出的類下三角LDPC論文中所
: 使用的權重(3, 6)範例矩陣去實現MSA解碼,在BPSK環境底下,疊代次數1次~10次去測試
: 一千萬點跑出來的Waterfall,結果都正
: 確。現在程式作法一樣,我利用IEEE 802.11n中的矩陣(z 為27bits,code rate為5/6, n
: 等648bits的檢查矩陣),我已經測試過單純
: AWGN環境下的Waterfall是沒有問題的,但開始做第一次疊代的時候會解碼失敗,目前,
: 解碼步驟我分為:
: 第一步將LLR = (2*經過雜訊後的接收訊號在除上變異數平方)
: 第二步SIGN(PRODUCT(範圍值))*MIN(ABS(範圍值))
: 第三步將對應的初始LLR加上第二步算出的對應Bit node,就可以完成第一次疊代
: 現在疊代出的LLR會受到SNR大小影響,以SNR為0為基準時,跑出的點會跟AWGN一樣,後來
: SNR越大錯誤率都會變很大,越
: 小時也會錯誤率誤判,我檢查發現,第三步中,原本正確值為正(負)的數字,會因為在第
: 二步計算出的負(正)號較多,所以在會
: 相加成錯誤值,我已經檢查過以下幾點:
: 1. 矩陣的正確度
: 2. 矩陣中1的位置
: 3. 第一次疊代中,每一個check node中的bit node是否擺錯
: 4. LLR公式是否錯誤
: 5. 使用的程式是excel ,所以有些重複格式是直接複製貼上的,
: 所以也檢查過是否因為格式錯誤
:
補上我解碼步驟再請各位先進一起幫我釐清我的問題點:
傳送 648 bits
1.原始訊息:0,1
2.經過二位元調變轉1, -1
3.加上雜訊
4.利用經過雜訊後算出 648 個bits,計算
出LLR
我的MSA解碼步驟:
第一步:利用公式將bit node代入相對應的LLR
第二步:例:利用Tanner graph把所有連接到檢查節點C1
的所有Bit node找出來,假設我要求C1中的Bi值
Sign(除了Bi以外,所有連接到C1的Bit node)
乘上MIN(除了Bi以外,所有連接到C1的Bit node)
第三步:將在第二步所有求出的Bi與LLR對應的Bi做相加
完成第一次疊代
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.170.40.186
1F:→ Justinok:我後來發現,因為我是直接將IEEE的矩陣直 1.170.40.186 01/31 11:47
2F:→ Justinok:接使用,可能我在參考文獻上沒注意到,這 1.170.40.186 01/31 11:48
3F:→ Justinok:個矩陣還需要經過編碼,利用編碼的碼字當 1.170.40.186 01/31 11:48
4F:→ Justinok:做我的DECODE的input 1.170.40.186 01/31 11:49
5F:→ Justinok:我還在編碼中,感謝各位 1.170.40.186 01/31 11:52
6F:→ Justinok:不曉得這個編碼矩陣是否還需要經過類下三 1.170.40.186 01/31 11:53
7F:→ Justinok:角轉換才可以做編碼呢? 1.170.40.186 01/31 11:53
8F:推 cmh317:啊?!你沒經過編碼?那整個codeword全是 61.62.6.229 02/01 00:17
9F:→ cmh317:亂數產生?難怪會全錯 61.62.6.229 02/01 00:17
10F:→ cmh317:11n的矩陣有特殊設計,雙對角線已方便編碼 61.62.6.229 02/01 00:19
11F:→ Justinok:已經產生好碼字了,也確認正確了 1.170.40.186 02/02 10:01
12F:→ Justinok:感謝各位先進 1.170.40.186 02/02 10:01