• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-07
  • 语言: Matlab
  • 标签: matlab  

资源简介

MIMO系统功率分配注水算法Matlab代码

资源截图

代码片段和文件信息

% Alamouti Code to achieve diversity without channel knowledg at the
% transmitter
% It is assumed that system contains 2 transmit antennas and one receive
% antenna. At the transmitter the data of a two consecutive slots will be
% considered. At the odd time slots the first antenna transmit
% symbol 1 (s1) and the second ones will transmit symbol 2 (s2)
% simoltaneously. At the even time slots the -s2* and s1* will be transmited
% from the first and second antenna respectively. Study “WIRELESS
% COMMUNICATIONS“ by Goldsmith for further information.

% By Hamid Ramezani 01-Apr-2008

% Initialization
    clear 
    clc
    
% Setting parameters
    numOfBlk = 1e6;     % number of blocks of data to be transmitted
    qamOrder = 16;      % the QAM modulation order 41664
    SNRdB    = 6:1:30;

    linColor = ‘b‘; % graph color   ‘b‘‘r‘‘k‘... see the help of plot function
    linSym   = ‘o‘; % graph Symbol  ‘o‘‘>‘‘<‘... see the help of plotf unction
    
% Memory allocation
errRate = zeros(size(SNRdB));

%% AlamoutiSpace Time Code
for i = 1 : length(SNRdB)
% Main Program
    % generating the data
    txData = randint(numOfBlk*21qamOrder);
    
    % splitting the data into two vectors (first transmition second
    % transmition in time);
    temp = reshape(txDatanumOfBlk2);

    % QAM Modulation of transmite data
    temp = qammod(tempqamOrder);
        
    % 2 transmite antenna and 1 receive antena channel gain the channel
    % varinance is set to unity and a rayleigh flat fading channel in each
    % path is assumed
    H  = 1/sqrt(2) * (randn(numOfBlk2) + sqrt(-1)*randn(numOfBlk2));
    
    % transmitted data through channel
    % in each transmite antenna half of the power will be sent
    % 1/sqrt(2) is to represent the half of the power on each antenna
    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)‘).‘ ;
    
    % adding noise 
    txMod = awgn(txModSNRdB(i)‘measured‘);
    
    % receiving the data
    % sqrt(2) is used for normalization
    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(rxDatareshape(txDatanumOfBlk2));
end

% graphical observation
    f1 = figure(1);
    semilogy(SNRdBerrRate[linColor‘-‘linSym]);
    xlabel(‘SNR in dB‘);
    ylabel(‘Symbol Error Rate‘);
    
%% No space time coding
for i = 1 : length(SNRdB)
    % txData is set in the Alamouti Code
    temp = qammod(txDataqamOrder);
    
    % Channel Definition
    H  = 1/sqrt(2) * (randn(numOfBlk*21) + sqrt(-1)*randn(numOfBlk*21));
  

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

     文件       3616  2009-04-06 19:50  mimo\21alamouti.m

     文件       1661  2006-10-03 09:17  mimo\MIMO_System.m

     文件        779  2006-10-02 20:37  mimo\WaterFilling_alg.m

     目录          0  2009-04-06 19:51  mimo

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

                 6056                    4


评论

共有 条评论