📄 tcmupathtmud.m
字号:
function [LDM]=TCMuPathTMUD(a,S,FB,G,MPI,MPO,SP,SM,PS,NS,OP,PO,PI,A,psd,Gain,R,No)
s=size(a);
K=s(2);
M1=s(1);
for k=1:K
[v0,v1]=RSC(Interleaver(MPI,a(:,k)),FB,G);
[v0,v2]=RSC(Interleaver(MPI,a(:,k)),FB,G);
j=1;
for i=1:M1
b(j,k)=a(i,k);
b(j+1,k)=v1(i);
b(j+2,k)=v2(i);
j=j+3;
end
end
M=3*M1;
for k=1:K
c(:,k)=Interleaver(MPO,b(:,k))';
end
c=Polar(c);
%[LDM]=TCTurboMUD(SP,SM,PS,NS,OP,PO,PI,r,S,A,psd,MPI,MPO,G,R,No)
w=3; % Number of code bits per data bit.
J=2;
s=size(S);
N=s(1);
La1=zeros(K,M);
LEI=zeros(M/w,J);
for j=1:PO
[LE]=MuPathSISOMUD(La1,A,S,c,psd,Gain,R,No);
for k=1:K
DilrLE(k,:)=Deinter(MPO,LE(k,:));
end
for k=1:K
LaUsers(k,:,:)=Row2mtrx(DilrLE(k,:),w);
end
for k=1:K
LM=TD2mtrx(LaUsers,k,(M/w),w);
for x=1:PI
[LEO1,LD1]=MoMAPDecoder([LM(:,1) LM(:,2)],LEI(:,2),SP,SM,PS,NS,OP,MPI);
[LEO2,LD2]=MoMAPDecoder([LM(:,1) LM(:,3)],LEI(:,1),SP,SM,PS,NS,OP,MPI);
LEI=[LEO1(:,1) LEO2(:,1)];
end
LETC=[LEO1(:,1)+LEO2(:,1) LEO1(:,2) LEO2(:,2)];
LD=(LD1+LD2)*0.5;
LaUsers(k,:,:)=LETC;
LDM(k,:)=LD;
end
for k=1:K
DilrLE(k,:)=Mtrx2row(TD2mtrx(LaUsers,k,(M/w),w));
end
for k=1:K
La1(k,:)=Interleaver(MPO,DilrLE(k,:));
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -