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

📄 misosimu.m

📁 misosimu simulates the ser for different miso systemms 2*1,3*1 4*1 and 8*1
💻 M
字号:

    clear 
    clc
% declaration 
    numOfBlk = 1000;     
    qamOrder = 2;     
    Eb_N0_dB = [0:25]; 
    errRate = zeros(size(Eb_N0_dB));


%% AlamoutiSpace Time Code  2*1
for i = 1 : length(Eb_N0_dB)
    
% Main Program
    
    txData = randint(numOfBlk*2,1,qamOrder);
    
    
    temp = reshape(txData,numOfBlk,2);

   
    temp = qammod(temp,qamOrder);
   %channel definition
    H  = 1/sqrt(2) * (randn(numOfBlk,2) + sqrt(-1)*randn(numOfBlk,2));
    
   % transmission 
    
    txMod(:,1) =  H(:,1).* 1/sqrt(2).*temp(:,1)     + H(:,2).* 1/sqrt(2).*temp(:,2)     ;
    txMod(:,2) = -H(:,1).*(1/sqrt(2).*temp(:,2)').' + H(:,2).*(1/sqrt(2).*temp(:,1)').' ;
    % addition du bruit 
    txMod = awgn(txMod,Eb_N0_dB(i),'measured');
 
    temp(:,1) = sqrt(2)*(H(:,1)'.' .* txMod(:,1) + H(:,2) .* txMod(:,2)'.')./(abs(H(:,1)).^2 + abs(H(:,2)).^2);
    temp(:,2) = sqrt(2)*(H(:,2)'.' .* txMod(:,1) - H(:,1) .* txMod(:,2)'.')./(abs(H(:,1)).^2 + abs(H(:,2)).^2);
    
    rxData(:,1) = qamdemod(temp(:,1),qamOrder);
    rxData(:,2) = qamdemod(temp(:,2),qamOrder);
    
    [numErr errRate(i)] = symerr(rxData,reshape(txData,numOfBlk,2));
end

% observations graphiques
    f1 = figure(1);
    semilogy(Eb_N0_dB,errRate,['k',':','o']);
    xlabel('Eb/No en dB');
    ylabel('BER');

%% Space Time Code 2*2

for i = 1:length(Eb_N0_dB)    

    txData = randint(numOfBlk*2,1,qamOrder);
    
    
   
    temp = reshape(txData,numOfBlk,2);

    
    temp = qammod(temp,qamOrder);
    
    
    H11  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H12  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H21  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H22  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
  
  
    r1(:,1) =  H11.* 1/sqrt(2).*temp(:,1)     + H21.* 1/sqrt(2).*temp(:,2)     ;
    r1(:,2) = -H11.*(1/sqrt(2).*temp(:,2)').' + H21.*(1/sqrt(2).*temp(:,1)').' ;
    r2(:,1) =  H12.* 1/sqrt(2).*temp(:,1)     + H22.* 1/sqrt(2).*temp(:,2)     ;
    r2(:,2) = -H12.*(1/sqrt(2).*temp(:,2)').' + H22.*(1/sqrt(2).*temp(:,1)').' ;
     
    r1 = awgn(r1,Eb_N0_dB(i),'measured');
    r2 = awgn(r2,Eb_N0_dB(i),'measured');
   
    %reception 
    %1st  antenna  
    s1=r1(:,1).*conj(H11)+conj(r1(:,2)).*H21;
    s2=r1(:,1).*conj(H21)-conj(r1(:,2)).*H11;
    
    %2nd antenna
    S1=r2(:,1).*conj(H12)+conj(r2(:,2)).*H22;
    S2=r2(:,1).*conj(H22)-conj(r2(:,2)).*H12;
    
    sv1=s1./((abs(H11)).^2+(abs(H21)).^2);
    sv2=s2./((abs(H11)).^2+(abs(H21)).^2);
    
    Sv1=S1./((abs(H12)).^2+(abs(H22)).^2);
    Sv2=S2./((abs(H12)).^2+(abs(H22)).^2);
    
    s11=real(sv1);
     s12=real(sv2);
      s21=real(Sv1);
       s22=real(Sv2);
       s111=(s11+s21)/2;
       s222=(s12+s22)/2;

     rxData(:,1) = qamdemod(s111,qamOrder);
    rxData(:,2) = qamdemod(s222,qamOrder);
    [numErr errRate(i)] = symerr(rxData,reshape(txData,numOfBlk,2));
end

% observations 
    f1 = figure(1);
    hold on
    semilogy(Eb_N0_dB,errRate,['b','-','o']);
    xlabel('Eb/No en dB');
    ylabel('BER');
  
    
    
    
    %% AlamoutiSpace Time Code3*2
    
    for i = 1:length(Eb_N0_dB)
        
% Main Program
    % genration des donn閑s
    txData = randint(numOfBlk*3,1,qamOrder);
    temp3 = reshape(txData,numOfBlk,3);

    %  Modulation QAMm des donn閑s transmises
    temp3 = qammod(temp3,qamOrder);
     %   definition du canal
    
    H11  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H12  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H13  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H21  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H22  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    H23  = 1/sqrt(2) * (randn(numOfBlk,1) + sqrt(-1)*randn(numOfBlk,1));
    
    
    
   % transmission des donn閑s 

⌨️ 快捷键说明

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