⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mupathsisomud.m

📁 safsdrghfydjg kukugilihg b nmvhjtdyewrtwert
💻 M
字号:
function [LE]=MuPathSISOMUD(La,A,S,c,psd,G,R,No)

% La : K*M = A Priori LLR's of code bits of all users.
% K = Number of users ; M = Number of symbols.
% LE : K*M = Extrinsic LLR's of code bits of all users.
% r : N*M = Received matrix. 1 column vector corresponding to a symbol
% contains 'N' chips.
% SE : K*M = Soft estimate matrix of code bits.
% G : M*KL*K = Multipath channel gain matrix for all users(K) and for all
% symbols (M) and for all paths(L).
% R : M*(2De+1)*KL*KL : Corelation matrices for all symbols(M) and for all
% MULTIPATH DELAYS.In this case,De has been set to 1.
% No : KL*1 : Noise components of all 'KL' RAKE Finger's outputs.
% H : M*K*3K : 'H'(Refer to book) matrices for all the symbols (M).
% D : M*3K*3K : '1 - soft estimate' matrices for all the symbols (M).

s=size(La);
K=s(1);
M=s(2);

s=size(G);
KL=s(2);

for k=1:K
    for i=1:M
        SE(k,i)=tanh(0.5*La(k,i));
    end
end

for i=1:M
    if(i~=1)
        t1 = TD2mtrx(G,i,KL,K)' * FD2mtrx(R,i,3,KL)*TD2mtrx(G,i-1,KL,K);
    else
        t1 = (TD2mtrx(G,i,KL,K)' * FD2mtrx(R,i,1,KL)*TD2mtrx(G,i+1,KL,K))';
    end
    t2 = TD2mtrx(G,i,KL,K)' * FD2mtrx(R,i,2,KL)*TD2mtrx(G,i,KL,K);
    H(i,:,:)=[t1 t2 t1'];
end

for i=1:M
    for k=1:K
        if(i==1)
            D(i,k,k)=1;
        else
            D(i,k,k)=1-(SE(k,i-1)^2);
        end
        D(i,K+k,K+k)=1-(SE(k,i)^2);
        if(i==M)
            D(i,2*K+k,2*K+k)=1;
        else
            D(i,2*K+k,2*K+k)=1-(SE(k,i+1)^2);
        end
    end
end

for i=1:M
    TH=TD2mtrx(H,i,K,3*K);
    ts1=TH*TD2mtrx(D,i,3*K,3*K)*TH';
    ts2=psd*STD2mtrx(H,i,K,K,0,K);
    ts=inv(ts1+ts2);
    for k=1:K
        tsi1=ts-((ts*TH(:,K+k))*(ts*TH(:,K+k))')/((SE(k,i)^-2) + TH(:,K+k)'*ts*TH(:,K+k));
        Mean(k,i)=TH(:,K+k)'*tsi1*TH(:,K+k);
    end
end

for i=1:M
    TH=TD2mtrx(H,i,K,3*K);
    ts1=TH*EnAmp(A)*TD2mtrx(D,i,3*K,3*K)*EnAmp(A)*TH';
    ts2=psd*STD2mtrx(H,i,K,K,0,K);
    ts=inv(ts1+ts2);
    noise=TD2mtrx(G,i,KL,K)'*No;
    for k=1:K
        b=Datamat(c,i);
        be=Sofestivec(SE,k,i);
        yk = TD2mtrx(H,i,K,3*K)*EnAmp(A)*(b-be) + noise;
        tsi2=ts-((ts*TH(:,K+k))*(ts*TH(:,K+k))')/(((SE(k,i)*A(k,k))^-2) + TH(:,K+k)'*ts*TH(:,K+k));
        wk=A(k,k)*tsi2*TH(:,K+k);
        z(k,i)=wk'*yk;
    end
end

for k=1:K
    for i=1:M
        LE(k,i)=real(4*z(k,i))/(1-Mean(k,i));
    end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -