资源简介

在Matlab的平台上,应用QPSK调制,以及3种不同的探测方法,实现并模拟了2x2的MIMO功能.

资源截图

代码片段和文件信息

%% SOURCE CODE FOR MIMO ML WITH QPSK MODULATION %%
% ----------------------------------------------------------------------------------------------------------------
N = 10^4; % number of bits or symbols
Eb_N0_dB = [0:30]; % multiple Eb/N0 values
nTx = 2;
nRx = 2;
for ii = 1:length(Eb_N0_dB)

    % Transmitter
    ip = rand(1N)>0.5; % generating 01 with equal probability
    iq = randn(1N)>0.5;
    s = 2*ip-1; % QPSK modulation
    sq = -2*iq+1;
    s = s-1i*sq; 

    sMod = kron(sones(nRx1)); % 
    sMod = reshape(sMod[nRxnTxN/nTx]); % grouping in [nRxnTxN/NTx ] matrix

    h = 1/sqrt(2)*[randn(nRxnTxN/nTx) + 1i*randn(nRxnTxN/nTx)]; % Rayleigh channel
    n = 1/sqrt(2)*[randn(nRxN/nTx) + 1i*randn(nRxN/nTx)]; % white gaussian noise

    % Channel and noise Noise addition
    y = squeeze(sum(h.*sMod2)) + 10^(-Eb_N0_dB(ii)/20)*n;

    % Maximum Likelihood Receiver
    % ----------------------------
    % if [s1 s2 ] = [-1-1 -1-1]
    sHat1 = [-1-1i -1-1i];
    sHat1 = repmat(sHat1[1 N/2]);
    sHat1Mod = kron(sHat1ones(nRx1));
    sHat1Mod = reshape(sHat1Mod[nRxnTxN/nTx]);
    zHat1 = squeeze(sum(h.*sHat1Mod2)) ;
    J1 = sum(abs(y - zHat1)1);
    
      % if [s1 s2 ] = [-1 -1 -1 1]
    sHat2 = [-1-1i -1+1i];
    sHat2 = repmat(sHat2[1 N/2]);
    sHat2Mod = kron(sHat2ones(nRx1));
    sHat2Mod = reshape(sHat2Mod[nRxnTxN/nTx]);
    zHat2 = squeeze(sum(h.*sHat2Mod2)) ;
    J2 = sum(abs(y - zHat2)1);
    
     % if [s1 s2 ] = [-1 -1 1 -1]
    sHat3 = [-1-1i 1-1i];
    sHat3 = repmat(sHat3[1 N/2]);
    sHat3Mod = kron(sHat3ones(nRx1));
    sHat3Mod = reshape(sHat3Mod[nRxnTxN/nTx]);
    zHat3 = squeeze(sum(h.*sHat3Mod2)) ;
    J3 = sum(abs(y - zHat3)1);
    
     % if [s1 s2] = [-1 -1 1 1]
    sHat4 = [-1-1i 1+1i];
    sHat4 = repmat(sHat4[1 N/2]);
    sHat4Mod = kron(sHat4ones(nRx1));
    sHat4Mod = reshape(sHat4Mod[nRxnTxN/nTx]);
    zHat4 = squeeze(sum(h.*sHat4Mod2)) ;
    J4 = sum(abs(y - zHat4)1);
    
    % if [s1 s2 ] = [-1 1 -1 -1]
    sHat5 = [-1+1i -1-1i];
    sHat5 = repmat(sHat5[1 N/2]);
    sHat5Mod = kron(sHat5ones(nRx1));
    sHat5Mod = reshape(sHat5Mod[nRxnTxN/nTx]);
    zHat5 = squeeze(sum(h.*sHat5Mod2)) ;
    J5 = sum(abs(y - zHat5)1);
    
     % if [s1 s2] = [-1 1 -1 1]
    sHat6 = [-1+1i -1+1i];
    sHat6 = repmat(sHat6[1 N/2]);
    sHat6Mod = kron(sHat6ones(nRx1));
    sHat6Mod = reshape(sHat6Mod[nRxnTxN/nTx]);
    zHat6 = squeeze(sum(h.*sHat6Mod2)) ;
    J6 = sum(abs(y - zHat6)1);
    
     % if [s1 s2 ] = [-1 1 1 -1]
    sHat7 = [-1+1i 1-1i];
    sHat7 = repmat(sHat7[1 N/2]);
    sHat7Mod = kron(sHat7ones(nRx1));
    sHat7Mod = reshape(sHat7Mod[nRxnTxN/nTx]);
    zHat7 = squeeze(sum(h.*sHat7Mod2)) ;
    J7 = sum(abs(y - zHat7)1);
    
    % if [s1 s2] = [-1 1 1 1]
    sHat8 = [-1+1i 1+1i];
    sHat8 = repmat(sHat8[1 N/2]);
    sHat8Mod = kron(sHat

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      12277  2013-04-15 04:51  Project_2\Comparison_cZF_ZF_BER.fig

     文件       6945  2013-04-15 04:43  Project_2\ML_BER.fig

     文件       6579  2013-04-15 04:30  Project_2\ML_QPSK_MIMO.m

     文件       6988  2013-04-15 04:44  Project_2\MMSE_BER.fig

     文件       2656  2013-04-15 04:34  Project_2\MMSE_QPSK_MIMO.m

     文件       7041  2013-04-15 04:53  Project_2\ZF_Coded_BER.fig

     文件       4795  2013-04-15 04:39  Project_2\ZF_Coded_QPSK_MIMO.m

     文件       2602  2013-04-15 04:52  Project_2\ZF_QPSK_MIMO.m

     文件       7001  2013-04-15 04:43  Project_2\ZF_Uncoded_BER.fig

     目录          0  2013-04-15 04:53  Project_2

----------- ---------  ---------- -----  ----

                56884                    10


评论

共有 条评论