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

📄 bd.m

📁 闭环MIMO系统中的预编码技术块对角化程序
💻 M
字号:
% Simulation of BD precoding
clear all;
close all;
clc
% close all

M=2;
N=2;

E=1;
Mon=1000;

dl=100;  % syms_length;

 
SNR=[0:5:30];
snr=10.^(0.1*SNR);

er_svd=zeros(1,length(snr));

for i_M=1:Mon
    H=sqrt(0.5)*(randn(M,N)+j*randn(M,N));
    % 生成比特流
    tx_bit=rand(1,dl*2)>0;
    % 调制
    mod_type='QPSK';
    B=reshape(tx_bit,2,dl);
    table=exp(j*[-3/4*pi 3/4*pi 1/4*pi -1/4*pi]); %  Gray vector;
    table=table([0 1 3 2]+1);
    table_E=trace(table*table')/length(table);
    table=table/sqrt(table_E);
    mod_syms=table([2 1]*B+1);
   
    [U,S,V]=svd(H);
   
    for i_s=1:length(snr)
        noise=sqrt(E/snr(i_s))*sqrt(0.5)*(randn(M,dl)+j*randn(M,dl));
        W=U'*H*V*mod_syms;  
        Y=W+noise;
        % 判决
        B_svd=vec_th(Y,cons);
        % 解调
        rx_bit=zeros(2*size(B_svd,1) , size(B_svd,2));
        bit0=real(B_svd);
        bit1=imag(B_svd);
        rx_bit(1:2:size(rx_bit,1))=bit0>0;
        rx_bit(2:2:size(rx_bit,1))=bit1>0;
        % 错误个数
        er_svd(i_s)=er_svd(i_s)+sum(sum(rx_bit~=tx_bit));
    end
    if mod(i_M,100)==0
        disp(i_M);
    end
end

%figure
semilogy(SNR,er_svd/Mon/(dl*2)/N,'b-o');

legend('(2,2),L=1,SVD');
xlabel('SNR(in dB)');
ylabel('BER');
grid on;
title(['M=',num2str(M),',N=',num2str(N),',QPSK'])

⌨️ 快捷键说明

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