?? turbo_decode_float.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 + -