t_turbo.m
来自「B3g_phase2_C语言_Matlab程序及说明」· M 代码 · 共 36 行
M
36 行
%test for turbo code
clear;
msg_SlotL=1024;
MemLen=3;
msg_L=msg_SlotL-MemLen;
puncture = 1;
[int_table0] = interleave(msg_SlotL, floor(sqrt((msg_SlotL)/2)));
errors=0;
SNR1=1.6;SNR2=1.6;
for SNR=SNR1:SNR2
for k=1:5000
SNR
k
msg=randint(1,msg_L);
msg=[msg zeros(1,MemLen)];
code=turbo_encode(msg,puncture,msg_SlotL,int_table0);
x=(2*code(1:2:end)-1)+j*(2*code(2:2:end)-1);
r=awgn(x,SNR,'measured');
%x=2*code-1;
%r=awgn(x,SNR,'measured');
r=reshape([real(r);imag(r)],1,2*msg_SlotL);
r=2*(10^(SNR/10))*r;
[decod llrc]=logmapdec(r,puncture,msg_SlotL,8,int_table0);
%llr=llrc+r(1:2:end);
%decoded=(sign(llr)+1)/2;
errors=errors+sum(abs(decod(1:msg_L)-msg(1:msg_L)));
errors
if (errors>200 & k>10)
break;
end
ber=errors/k/msg_L
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?