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 + -
显示快捷键?