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

📄 vblast_test.m

📁 基于MIMO通信系统中的各种空时编译码算法
💻 M
字号:
clear all;clc;%% initializationNt=2;Nr=2;M=4;tx_bits=randint(15000,1);%% modulationlayered_bits=reshape(tx_bits,Nt,[]);layered_sym=zeros(Nt,length(layered_bits)/log2(M));for n=1:Nt    temp=bi2de(reshape(layered_bits(n,:),log2(M),[]).','left-msb');    layered_sym(n,:)=qammod(temp,M).';endsym_length=length(layered_sym);P_mean=mean(abs(qammod((0:M-1),M)).^2);%% transmitH=(randn(Nr,Nt,sym_length)+j*randn(Nr,Nt,sym_length))/sqrt(2);EbNo=0:10:30;ber=zeros(size(EbNo));rec_sig=zeros(Nr,sym_length);for n=1:sym_length    rec_sig(:,n)=H(:,:,n)*layered_sym(:,n);endSNR=EbNo+10*log10(log2(M));%% AWGNfor rr=1:length(SNR)sigma=sqrt(0.5*P_mean/(Nt*10^(SNR(rr)/10)));awgn_sig=rec_sig+sigma*(randn(size(rec_sig))+j*randn(size(rec_sig)));decoded_sym=zeros(size(layered_sym));%% Successive Interference Cancellationfor n=1:sym_length    H_save=reshape(H(:,:,n),Nr,Nt);    H_temp=H_save;    r=awgn_sig(:,n);    G=pinv(H_save);    [g0 k]=min(sum(abs(G).^2,2));    for ii=1:Nt  % k must be stored!!!        kk(ii)=k;        w=G(k,:);        y=w*r;        decoded_sym(k,n)=y;        r=r-y*H_save(:,k);        H_temp(:,k)=zeros(Nr,1);        G=pinv(H_temp);        for ki=1:ii           G(kk(ki),:)=inf;        end        [g0 k]=min(sum(abs(G).^2,2));    endend%% de-qammodrec_layered_num=qamdemod(decoded_sym,M);rec_layered_bits=zeros(size(layered_bits));for n=1:Nt    rec_layered_bits(n,:)=reshape(de2bi(rec_layered_num(n,:).',log2(M),'left-msb').',1,[]).';endrx_bits=reshape(rec_layered_bits,1,[]).';[num_err ber(rr)]=biterr(rx_bits,tx_bits);end%% plotsemilogy(EbNo,ber,'r-o');xlabel('Eb/No');ylabel('Bit Error Rate');title('VBLAST');grid on;hold on;

⌨️ 快捷键说明

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