📄 layereddecoding.m
字号:
function vHat = LayeredDecoding(rx, H, iteration)
[M N] = size(H);
Qv = -rx;
Rcv = zeros(M,N);
tempcv = zeros(1,N);
factor = 0.75;
for n = 1:iteration
%fprintf('Iteration: %d\n',n);
for i = 1:M
col = find(H(i,:));
for k = 1:length(col)
tempcv(1,col(k)) = Qv(col(k)) - Rcv(i,col(k));
end
alpha = sign(tempcv);
beta = abs(tempcv);
signS = 1;min1 = 100000;min2 = 100000;index = 10000;
for k = 1:length(col)
signS = alpha(col(k)) * signS;
if beta(col(k)) < min1
min2 = min1;
min1 = beta(col(k));
index = col(k);end
if ((beta(col(k)) > min1) & (beta(col(k)) < min2)) min2 = beta(col(k));end
end
for k = 1:length(col)
if col(k) == index Rcv(i,col(k)) = factor*signS*alpha(col(k))*min2;
else Rcv(i,col(k)) = factor*signS*alpha(col(k))*min1;end
Qv(col(k)) = tempcv(1,col(k)) + Rcv(i,col(k));
end
for k = 1:N
if Qv(k) < 0
vHat(k) = 1;
else
vHat(k) = 0;end
end
end
end
fprintf('LayeredDecoding is done...\n');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -