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

📄 parallelturbo.m

📁 turbo 码matlab编译码程序
💻 M
字号:
clc
clear
% This is the whole coding and decoding processing
rate=1/3;
K=1021;
m=3;
I=Sinterleaver(K+m);
Iteration=6;
Frame=2;


for SNR=0:0.1:0.2;
    
    SNR_lin=10^(SNR/10);
    sgma=1/sqrt(2*SNR_lin*rate);
    CONS=-1/(2*(sgma^2)); 
    
    
    fprintf('\n****************** SNR=%4.2f **********************\n',SNR);
    for frame=1:Frame
        %fprintf('\n****************** the frame=%d **********************\n',frame);
        
        X_information=generaterandomdata(K);
        [X_parity_1,X_parity_2,X_information]=encode1513(X_information,I);

        C_information=X_information;
        C_parity_1=X_parity_1;
        C_parity_2=X_parity_2;
        
        % BPSK
        X_information=bpsk(X_information);
        X_parity_1=bpsk(X_parity_1);
        X_parity_2=bpsk(X_parity_2);
        % add noise
        for i=1:K+m
            [gsrv1,gsrv2]=gngauss(0,sgma);
            Y_system(i)=X_information(i)+gsrv1;
            Y_parity_1(i)=X_parity_1(i)+gsrv2;
            [gsrv1,gsrv2]=gngauss(0,sgma);
            Y_parity_2(i)=X_parity_2(i)+gsrv1;
        end
        for i=1:K+m
            Y_system_inter(i)=Y_system(I(i));
        end
        
        prior_information=zeros(1,K+m);
        % iteration decoding
        for Inter=1:Iteration
            input_1=Y_system;
            input_2=Y_parity_1;
            [decision_c,extrin_information]=map_decoder_1(input_1,input_2,CONS,prior_information);
            %[decision_c,extrin_information]=SISO_MAP_decoder(input_1,input_2,CONS,prior_information);
           
                prior_information=extrin_information(I);
           
            input_1=Y_system_inter;
            input_2=Y_parity_2;
            [decision_c,extrin_information]=map_decoder_2(input_1,input_2,CONS,prior_information);
            %[decision_c,extrin_information]=SISO_MAP_decoder(input_1,input_2,CONS,prior_information);
            decision_c(I)=decision_c;
            bit_error(frame,Inter)=0;
            for t=1:K
                if decision_c(t)~=C_information(t)
                    bit_error(frame,Inter)=bit_error(frame,Inter)+1;
                end
            end
            for i=1:K
                prior_information(I(i))=extrin_information(i);
            end
        end
    end
    bit_error
end
        
        

⌨️ 快捷键说明

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