资源简介
有完整的主程序和子程序,每个程序有详细的代码注释,可以仿真出来802.16e标准不同码长的LDPC编码实现方式,有借鉴意义。

代码片段和文件信息
function vHat = decodeLogDomain(rx H N0 iteration)
% Log-domain sum product algorithm LDPC decoder
%
% rx : Received signal vector (column vector)
% H : LDPC matrix
% N0 : Noise variance
% iteration : Number of iteration
%
% vHat : Decoded vector (0/1)
%
%
% Copyright Bagawan S. Nugroho 2007
% http://bsnugroho.googlepages.com
[M N] = size(H);
% Prior log-likelihood. Minus sign is used for 0/1 to -1/+1 mapping
% Lci = p0/p1
Lci = (-4*rx./N0)‘;
% Initialization
Lrji = zeros(M N);
Pibetaij = zeros(M N);
% Asscociate the L(ci) matrix with non-zero elements of H
Lqij = H.*repmat(Lci M 1);
% Get non-zero elements
[r c] = find(H);
% Iteration
for n = 1:iteration
fprintf(‘Iteration : %d\n‘ n);
% Get the sign and magnitude of L(qij)
alphaij = sign(Lqij);
betaij = abs(Lqij);
for l = 1:length(r)
Pibetaij(r(l) c(l)) = log((exp(betaij(r(l) c(l))) + 1)/...
(exp(betaij(r(l) c(l))) - 1));
end
% ----- Horizontal step -----rji for j
for i = 1:M
% Find non-zeros in the column
c1 = find(H(i :));
% Get the summation of Pi(betaij))
for k = 1:length(c1)
sumOfPibetaij = 0;
prodOfalphaij = 1;
% Summation of Pi(betaij)\c1(k)
sumOfPibetaij = sum(Pibetaij(i c1)) - Pibetaij(i c1(k));
% Avoid division by zero/very small number get Pi(sum(Pi(betaij)))
if sumOfPibetaij < 1e-20
sumOfPibetaij = 1e-10;
end
PiSumOfPibetaij = log((exp(sumOfPibetaij) + 1)/(exp(sumOfPibetaij) - 1));
% Multiplication of alphaij\c1(k) (use ‘*‘ since alphaij are -1/1s)
prodOfalphaij = prod(alphaij(i c1))*alphaij(i c1(k));
% Update L(rji)
Lrji(i c1(k)) = prodOfalphaij*PiSumOfPibetaij;
end % for k
end % for i
% ------ Vertical step ------qji for i
for j = 1:N
% Find non-zero in the row
r1 = find(H(: j));
for k = 1:length(r1)
% Update L(qij) by summation of L(rij)\r1(k)
Lqij(r1(k) j) = Lci(j) + sum(Lrji(r1 j)) - Lrji(r1(k) j);
end % for k
% Get L(Qi)
LQi = Lci(j) + sum(Lrji(r1 j));
% Decode L(Qi)
if LQi < 0
vHat(j) = 1;
else
vHat(j) = 0;
end
end % for j
end % for n
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-03-31 19:59 LDPC_802.16e仿真代码\
文件 2604 2016-04-27 14:24 LDPC_802.16e仿真代码\decodeLogDomain.m
文件 2039 2016-06-17 16:26 LDPC_802.16e仿真代码\decodeLogDomainSimple.m
文件 2465 2016-06-16 20:21 LDPC_802.16e仿真代码\decodeProbDomain.m
文件 1877 2016-06-07 21:53 LDPC_802.16e仿真代码\FPGA_data_test.m
文件 1846 2016-06-24 15:27 LDPC_802.16e仿真代码\fpga_test.m
文件 533 2016-06-12 15:12 LDPC_802.16e仿真代码\huizong.m
文件 2160 2016-06-17 15:27 LDPC_802.16e仿真代码\IEEE_encode.m
文件 3133 2016-06-17 15:16 LDPC_802.16e仿真代码\IEEE_ldpc.m
文件 2099 2016-03-23 16:26 LDPC_802.16e仿真代码\ldpc_decode.m
文件 2084 2016-06-12 08:18 LDPC_802.16e仿真代码\Ldpc_Prob.m
文件 2077 2016-06-16 21:03 LDPC_802.16e仿真代码\LDPC_Sum_Product.m
文件 1460 2016-05-13 08:23 LDPC_802.16e仿真代码\lianghua.m
文件 391 2016-06-17 15:26 LDPC_802.16e仿真代码\matrix_permutation_sparse.m
文件 1739 2016-05-23 13:38 LDPC_802.16e仿真代码\minmum.m
文件 1561 2016-04-28 15:27 LDPC_802.16e仿真代码\m_xulie.m
- 上一篇:CppUnit CookBook 中文版
- 下一篇:SVM多分类代码
相关资源
- 编程实现二维DCT变换
- 图像二值化
- 用FFT对信号进行频谱分析
- Tone-Reservation
- QGA 量子遗传算法
- 差分形式的阻滞增长模型
- 遗传算法的M文件
- 简单二阶互联系统的非线性动力学分
- 手写数字识别-模板匹配法
- Stock_Watson_动态因子分析模型
- 果蝇优化算法优化支持向量回归程序
- 自己做的一个简单GUI扑克纸牌识别-
- multi output SVR
- AR过程的线性建模过程与各种功率谱估
- PCNN TOOLBOX
- plstoolbox.zip
- 中国国家基础地理信息系统GIS数据
- 粒子群微电网优化调度
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- 压缩感知TwIST
- 基于最小错误率的贝叶斯手写数字分
- 最全系统辨识源代码,包括多种最小
- 导弹制导实验
- 画跟踪精确度图的程序.zip
- 重力场大地水准面及重力异常阶次误
- prtools5.2.3工具包
- 脉冲耦合神经网络工具箱PCNN-toolbox
- SVM算法-回归拟合程序.zip
- Kriging代理模型EGO算法.zip
- LDPC码原理与应用.pdf
评论
共有 条评论