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

📄 turbo_decode_float.m

📁 该文件夹中的SC_TurboIC_MIMO_0524.m是将我turbo的编译码模块替换原来B3G系统中的turbo编译码模块而重新得到的. 定点仿真得,在比特信噪比>=0.5db时,经过一次
💻 M
字号:
% FrameL=4096;

function [decodedbit, newllr, LLR_all] = turbo_decode_float(stream,oldllr, FrameL, Mem);

Lsys=zeros(1,FrameL);
Lpari1=zeros(1,FrameL);
Lpari2=zeros(1,FrameL);
% LexIn=zeros(1,FrameL);
decodedbit=zeros(1,FrameL);
leOut_s1=zeros(1,FrameL);
leOut_s2=zeros(1,FrameL);
leOut_s3=zeros(1,FrameL);
LeOut=zeros(1,FrameL);
llrp1Out=zeros(1,FrameL);
llrp2Out=zeros(1,FrameL);
LLRs=zeros(1,FrameL);

Mem=2;
wnum=64;
wl=64;

for i=1:FrameL
    Lsys(i)=stream(2*(i-1)+1);
    Lpari(i)=stream(2*(i-1)+2);
end


Lpari1=zeros(1,FrameL);
Lpari2=zeros(1,FrameL);

for i=1:FrameL-Mem-Mem
    if(mod(i,2))
        Lpari1(i)=Lpari(i);
        Lpari2(i)=0;
    else
        Lpari2(i)=Lpari(i);
        Lpari1(i)=0;
    end
end

for i=FrameL-Mem-Mem+1:FrameL-Mem
    Lpari1(i)=Lpari(i);
    Lpari2(i)=0;
end

for i=FrameL-Mem+1:FrameL
    Lpari2(i)=Lpari(i);
    Lpari1(i)=0;
end

leOut_s1=onestage(FrameL,wnum,wl,Lsys,Lpari1,Lpari2,oldllr);

leOut_s2=onestage(FrameL,wnum,wl,Lsys,Lpari1,Lpari2,leOut_s1);

leOut_s3=onestage(FrameL,wnum,wl,Lsys,Lpari1,Lpari2,leOut_s2);

[newllr, llrp1Out,llrp2Out,LLRs]=laststage(FrameL,wnum,wl,Lsys,Lpari1,Lpari2,leOut_s3);

for i=1:FrameL
    if(LLRs(i)>=0)
        decodedbit(i)=1;
    else
        decodedbit(i)=0;
    end
end

llrpOut=zeros(1,FrameL);

for i=1:FrameL
    if(mod(i,2))
    llrpOut(i)=llrp1Out(i);
    else
    llrpOut(i)=llrp2Out(i);
    end
end

LLR_all=zeros(1,FrameL*2);

for i=1:FrameL
    LLR_all(2*(i-1)+1)=LLRs(i);
    LLR_all(2*(i-1)+2)=llrpOut(i);
end

⌨️ 快捷键说明

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