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

📄 mimo_awgn.m

📁 用Matlab仿真turbocode的算法
💻 M
字号:
function BER_total_AWGN=mimo_AWGN(name)N_channel=3;n=5000;SNR=[0:10];blocks_min=1000;blocks_max=2000;BER_total_AWGN=[];g_rsc1=[1 1 1;1 0 1];g_rsc2=[1 1 1;1 0 1];g_rsc3=[1 1 1;1 0 1];[st_t1_1,out_t1_1,ST1_1]=rsc_table(g_rsc1); [st_t1_2,out_t1_2,ST1_2]=rsc_table(g_rsc2); [st_t1_3,out_t1_3,ST1_3]=rsc_table(g_rsc3); mem1=size(g_rsc1,2)-1;m1=size(st_t1_1,1);[interleaving,dummy]=make_interleaver(2*(n+mem1),'ttcmrandom');for ind=1:length(SNR)        EbN0=SNR(ind);    EsN0=EbN0+10*log10(1/2);        errors_1_AWGN=0;    errors_2_AWGN=0;    errors_3_AWGN=0;    errors_total_AWGN=0;        again=0;            while(again<blocks_min)|((min(errors_total_AWGN)<10000)&(again<blocks_max))        again=again+1;        info=round(rand(N_channel,n));        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        %outer encoding        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        output1_bin=zeros(N_channel,2*(n+mem1));        [output1_bin(1,:),state1_int_1]=rsc_encoding(g_rsc1,st_t1_1,out_t1_1,info(1,:));        [output1_bin(2,:),state1_int_2]=rsc_encoding(g_rsc2,st_t1_2,out_t1_2,info(2,:));        [output1_bin(3,:),state1_int_3]=rsc_encoding(g_rsc3,st_t1_3,out_t1_3,info(3,:));                %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        %interleaving        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        output1_bin=output1_bin(:,interleaving);                     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        % to generate received signals         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        sigmaq=1/(2*10^(EsN0/10));        sigma=sqrt(sigmaq);        Noise=sigma*randn(N_channel,size(output1_bin,2));                        output_1_AWGN=AWGN_decoding(output1_bin(1,:),Noise(1,:),interleaving,sigmaq,st_t1_1,mem1,ST1_1);        errors_1_AWGN=errors_1_AWGN+length(find(output_1_AWGN~=info(1,:)));        output_2_AWGN=AWGN_decoding(output1_bin(2,:),Noise(2,:),interleaving,sigmaq,st_t1_2,mem1,ST1_2);        errors_2_AWGN=errors_2_AWGN+length(find(output_2_AWGN~=info(2,:)));        output_3_AWGN=AWGN_decoding(output1_bin(3,:),Noise(3,:),interleaving,sigmaq,st_t1_3,mem1,ST1_3);        errors_3_AWGN=errors_3_AWGN+length(find(output_3_AWGN~=info(3,:)));        errors_total_AWGN=errors_1_AWGN+errors_2_AWGN+errors_3_AWGN;        fprintf('Eb/N0: %f dB \t    errors_total_AWGN: %d  \t        block #: %d \t  \n',EbN0,errors_total_AWGN,again);    end%end of blocks        BER_total_AWGN=[BER_total_AWGN,[EbN0;errors_total_AWGN/(N_channel*n*again)]];    save (name,'BER_total_AWGN');end%end of SNRs

⌨️ 快捷键说明

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