资源简介
MATLAB实现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 = (-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 -----
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 ------
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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2568 2007-05-04 15:09 01吞吐量—不同码长-可变码率LDPC\decodeLogDomain.m
文件 2096 2008-12-10 10:15 01吞吐量—不同码长-可变码率LDPC\decodeLogDomainSimple.m
文件 6550 2008-07-23 10:08 01吞吐量—不同码长-可变码率LDPC\genP.m
文件 5724 2008-12-10 10:20 01吞吐量—不同码长-可变码率LDPC\ldpcBER.m
文件 3426 2008-12-10 10:14 01吞吐量—不同码长-可变码率LDPC\makeLdpc.m
文件 3849 2008-11-18 10:23 01吞吐量—不同码长-可变码率LDPC\makeParityChk.m
目录 0 2013-05-17 20:32 01吞吐量—不同码长-可变码率LDPC
----------- --------- ---------- ----- ----
24213 7
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论