資源簡介
無線網絡中的信道譯碼算法,用LDPC編碼的BP譯碼算法,程序相當精煉,迭代次數很少就能夠譯碼
代碼片段和文件信息
function?[x_hat?success?k]?=?ldpc_decode(f0f1H)
%?decoding?of?binary?LDPC?as?in?Elec.?Letters?by?MacKay&Neal?13March1997
%?For?notations?see?the?same?reference.
%?function?[x_hat?success?k]?=?ldpc_decode(yf0f1H)
%?outputs?the?estimate?x_hat?of?the?ENCODED?sequence?for
%?the?received?vector?y?with?channel?likelihoods?of?‘0‘?and?‘1‘s
%?in?f0?and?f1?and?parity?check?matrix?H.?Success==1?signals
%?successful?decoding.?Maximum?number?of?iterations(重復迭代)?is?set?to?100.
%?k?returns?number?of?iterations?until?convergence(收斂).
%
%?Example:
%?We?assume?G?is?systematic?G=[A|I]?and?obviously?mod(G*H‘2)=0
%?????????sigma?=?1;??????????????????????????%?AWGN?noise?deviation
%?????????x?=?(sign(randn(1size(G1)))+1)/2;?%?random?bits
%?????????y?=?mod(x*G2);?????????????????????%?coding?
%?????????z?=?2*y-1;??????????????????????????%?BPSK?modulation
%?????????z=z?+?sigma*randn(1size(G2));?????%?AWGN?transmission
%
%?????????f1=1./(1+exp(-2*z/sigma^2));????????%?likelihoods?
%?????????by蘭朋朋?./矩陣元素右除?A./B表示A(ij)/B(ij)
%?????????f0=1-f1;
%?????????[z_hat?success?k]?=?ldpc_decode(zf0f1H);
%?????????x_hat?=?z_hat(size(G2)+1-size(G1):size(G2));
%?????????x_hat?=?x_hat‘;?
%???Copyright?(c)?1999?by?Igor?Kozintsev?igor@ifp.uiuc.edu
%???$Revision:?1.1?$??$Date:?1999/07/11?$
%???fixed?high-SNR?decoding
[mn]?=?size(H);
if?m>n?
????H=H‘;?
????[mn]?=?size(H);?
end
if?~issparse(H)?%?make?H?sparse?if?it?is?not?sparse?yet,%by蘭朋朋?函數的功能是如果該函數不是稀疏矩陣,就把它轉化為稀疏矩陣
%by蘭朋朋?在MATLAB中,issparse函數用于判斷一個稀疏矩陣存儲方式是否是sparse?storage?organization
%by蘭朋朋?如果稀疏矩陣的存儲方式是sparse?storage?organization,則返回邏輯1;否則返回邏輯0。
???[iijjsH]?=?find(H);
%by蘭朋朋?返回矩陣H中的非零元素所在的行ii和所在的列jj和矩陣的非零元素sH
???H?=?sparse(iijjsHmn);
%by蘭朋朋?[ijs]?=?find(S);
%by蘭朋朋?[mn]?=?size(S);
%by蘭朋朋?S?=?sparse(ijsmn);???
end
%by蘭朋朋?BP譯碼算法
%initialization(沒看懂)
[iijj]?=?find(H);?????????????%?subscript?index?to?nonzero?eleme
- 上一篇:matlab分段灰度線性變換代碼
- 下一篇:4dpsk調制解調的Matlab代碼
評論
共有 條評論