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

📄 llrnlayer1.m

📁 是一个四发四收的球型译码程序
💻 M
字号:
function [output] = LLRnLayer1(Input)


RxSig=Input(1:4).';
chan_Hv=Input(5:20);
Chan=reshape(chan_Hv,4,4);
%SNRdB=input('please enter SNR:')
SNRdB=60;
[Mrx,Mtx]=size(Chan); %8*8
M=16;
SNR=10^((SNRdB)/10);
sigma_n2=sqrt(Mtx)/sqrt(SNR);
S=[-3-3j,-3-j,-3+j,-3+3j,...
   -1-3j,-1-j,-1+j,-1+3j,...
   1-3j, 1-j, 1+j, 1+3j,...
   3-3j, 3-j, 3+j, 3+3j]/sqrt(10);
Symb2Bits=[1 1 1 1; 1 1 1 0; 1 0 1 0; 1 0 1 1;...
           1 1 0 1; 1 1 0 0; 1 0 0 0; 1 0 0 1;...
           0 1 0 1; 0 1 0 0; 0 0 0 0; 0 0 0 1;...
           0 1 1 1; 0 1 1 0; 0 0 1 0; 0 0 1 1];

% zero forcing 选择最先检查的行向量
VarInterf=zeros(1,Mtx); %1X8
PartMean=zeros(1,Mtx);
InvCh=inv(Chan'*Chan)*Chan'; %MxN
DetSig=InvCh*RxSig;        
for m=1:Mtx
    ChanNorm(m)=norm(InvCh(m,:),'fro')^2; %w11^2+...+w1N^2; .....; wM1^20+...+wMN^2
    VarInterf(m)=sigma_n2^2*ChanNorm(m);%%
    PartMean(m)=1;
end            
[B,IX]=sort(ChanNorm,'descend'); %对wi模平方,倒序排列


% calculatethe bit likelihood information

Blr=zeros(1,1*log2(M));%0     0     0     0
for i=1:log2(M)
    for n=1:M
        if Symb2Bits(n,i)==0         
           ZeroPrb=abs(DetSig(IX(1))-PartMean(IX(1))*S(n))^2;
        else
           OnePrb=abs(DetSig(IX(1))-PartMean(IX(1))*S(n))^2;
        end
    end
    Blr((i-1)+1)=(ZeroPrb-OnePrb)/VarInterf(IX(1));
end

% output the bit likelihood information

DetSig1=reshape(DetSig,1,4);
output=horzcat(DetSig1,Blr,IX);

⌨️ 快捷键说明

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