rand_gen.m

来自「a method of ofdm simulation using matlab」· M 代码 · 共 44 行

M
44
字号
function Data = rand_gen(NumCarr,MQAM,NumSymb,State)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%   rand_gen_mul Generates random data symbol to be transmitted                             %
%	Primitive:      Data = rand_gen(NumCarr,MQAM,NumSymb,State)                             %
%   Argument:       NumCarr-----Number of Carriers;                                         %
%                   MQAM--------Wordsize of I,Q subchannel;                                 %
%                   NumSymb-----Number of symbols to be generated                           %
%                   State-------Random generator state para,so as to generate the same data %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	    
switch nargin
    case 1
        MQAM = 4;
        NumSymb = 1;
    case 2
        NumSymb = 1;    
    case 3
        
    case 4
        PrevState = rand('state');
        rand('state',State);
    otherwise
        errordlg('Invalid arguments','Error');
end
    
switch MQAM
    case 4
        Range = [0,1];
    case 16
        Range = [-1,2];    
    case 64
        Range = [-3,4];
    otherwise
        errordlg('Input M-QAM invalid','Input Error');
end
    
    DataI = 2*randint(NumSymb,NumCarr,Range)-1;
    DataQ = 2*randint(NumSymb,NumCarr,Range)-1;
    Data = DataI+i*DataQ;

if  nargin ==4   
    rand('state',PrevState)
end	

⌨️ 快捷键说明

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