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

📄 vblast4.m

📁 V-BLAST实现无线网络多输入多输出传输
💻 M
字号:
close all;
clear
echo off
Tx_n = 4;
Rx_n = 4;
index = 2;
frame_length=120;
SNRindB=0:2:20;
for i=1:length (SNRindB),
    SNR(i)=10^(SNRindB(i)/10);
    a=rand(1,frame_length);
    for L=1:frame_length
        if a(L)>.5
            a(L)=1;
        else  a(L)=0;
        end
    end

    a1=modulation(a,index);
    a2=reshape(a1,Tx_n,frame_length/index/Tx_n);
    sigma = 1/sqrt(2*Rx_n*SNR(i));
    AWGN_noise = sigma*(randn(Rx_n,frame_length/index/Tx_n)+j*randn(Rx_n,frame_length/index/Tx_n));
    dec4 = zeros(frame_length/index , index);
    for col_idx = 1:frame_length/index/Tx_n

        H=(randn(Rx_n,Tx_n)+j*randn(Rx_n,Tx_n))/sqrt(2);

        r=H*a2(:,col_idx)+AWGN_noise(:,col_idx);
       
        G1=inv(H'*H+sigma.^2*eye(Tx_n))*H';
        [gk1 p0]=min(sum(abs(G1).^2,2));
       
        r_ic = r;
       
         %SIC2
           for n=1:Tx_n
            p1(n)=p0;
            y1=G1(p1(n),:)*r;
            dec4((col_idx-1)*Tx_n+p1(n),:) = demodulation(y1,index);
            b1=modulation(dec4((col_idx-1)*Tx_n+p1(n),:),index);
            r = r - b1*H(:, p1(n));
            H(:, p1(n))=zeros(Rx_n,1);
            G1=inv(H'*H+sigma.^2*eye(Tx_n))*H';
            temp1 = sum(abs(G1).^2,2);
            temp1(p1(1:n)) = 1e10;
            [gk1 p0]=min(temp1);
           end; %m
    end % col_idx
    
    
    NumErr4= sum(abs(reshape(dec4.',1,frame_length)~=a))
   
    Ber4(i) = NumErr4/frame_length;
end; % Eb/N0
semilogy (SNRindB,Ber4,'-.')


grid on;
xlabel('Eb/No in dB');
ylabel('error probability');

  

⌨️ 快捷键说明

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