📄 set_sim_consts.m
字号:
function sim_consts = set_sim_consts
% set the parameters used in the simulation. to know detail, run the
% function 'set_sim_consts'.
% this function will save all the parameters in a global variable 'sim_consts'
global sim_consts;
% downlink's parameters;
% for simulation control
sim_consts.ferrlim = 10 ; % the max error frame number
sim_consts.nframeAll = 10 ; % the max number of frame
sim_consts.errAll = 500; % the max error bit number
sim_consts.EbN0 = [ 13 ] ; % Signal Noise Ratio
% for channel and JD
sim_consts.channel = 'case2'; % channel type 'case1','case2','case3'
sim_consts.fc = 2000 ; % MHz
sim_consts.chipRate = 1.28; % MChips
% for interleave
sim_consts.sortT = 8; % sort matrix's row , see Page.58 in Dr. Xie' book for detail
% for downlink type 12.2 64 144 384
sim_consts.linkRate = '12.2'; % downlink type '12.2','64','144','384'
sim_consts.cDisturb = 1; % wheather to add disturb. set 1 to add, 0 not.
sim_consts.cAvailable = 10; % total code channel number can be used in a time slot. should be large than 10
% any processing
switch sim_consts.channel
case 'case1'
sim_consts.v = 3 ; % km/h
sim_consts.nsdelay = [0,2928]; % ns delay of each rayleigh path
sim_consts.averagePower = [0,-10] ; % averagePower of each rayleigh path
case 'case2'
sim_consts.v = 3 ; % km/h
sim_consts.nsdelay = [0,2928,12000]; % ns delay of each rayleigh path
sim_consts.averagePower = [0,0,0] ; % averagePower of each rayleigh path
case 'case3'
sim_consts.v = 120 ; % km/h
sim_consts.nsdelay = [0,781,1563,2344]; % ns delay of each rayleigh path
sim_consts.averagePower = [0,-3,-6,-9]; % averagePower of each rayleigh path
end
switch sim_consts.linkRate
case '12.2'
sim_consts.tsNumber = 1; % used time slot
sim_consts.cNumber = 2; % used code channel
sim_consts.Lo = 13; % number of outer encoders
sim_consts.Li = 9; % number of inner encoders
sim_consts.L_o = 9 ; % input Length of out encoder
case '64'
sim_consts.tsNumber = 1; % used time slot
sim_consts.cNumber = 8; % used code channel
sim_consts.Lo = 13; % number of outer encoders
sim_consts.Li = 9; % number of inner encoders
sim_consts.L_o = 36 ; % input Length of out encoder
case '144'
sim_consts.tsNumber = 2; % used time slot
sim_consts.cNumber = 8; % used code channel
sim_consts.Lo = 13; % number of outer encoders
sim_consts.Li = 9; % number of inner encoders
sim_consts.L_o = 72 ; % input Length of out encoder
case '384'
sim_consts.tsNumber = 4; % used time slot
sim_consts.cNumber = 10; % used code channel
sim_consts.Lo = 13; % number of outer encoders
sim_consts.Li = 9; % number of inner encoders
sim_consts.L_o = 180; % input Length of out encoder
end
sim_consts.subFrames = 4 ; % set the number of subframes that a info block will be transmited by
sim_consts.startT = 0; % simu start time (s)
sim_consts.endT = 0.000675*sim_consts.tsNumber; % simu end time (s). for example :0.000675 means a time slot' time
sim_consts.deltaT = 0.00000078125; % each chip's time. for example 1/1.28e006 means under TD-SCDMA
sim_consts.W = ... % max chipdelay
round(max(sim_consts.nsdelay)*10^-9/sim_consts.deltaT)+1 ;
sim_consts.ka = 8 ; % number of antennas
sim_consts.hsig = zeros(sim_consts.ka,864*sim_consts.tsNumber); % init 8 antennas's h
sim_consts.gu = zeros(sim_consts.ka,sim_consts.W); % init 8 antennas's estimated h
% woven code's parameters
sim_consts.a = 1 ;
% woven codec's design
sim_consts.niter = 8 ; % interative times
sim_consts.win = 15 ; % back length
% out codec's --with 2/3 convolutional code
sim_consts.Go = [11 0 13; 0 11 15]; % Generator of outer encoder
sim_consts.BGo = [11; 11]; % Generator of outer encoder
sim_consts.Ko = [4 4] ; % Restrain length of outer encoder
sim_consts.mo = 3 ;
sim_consts.to = poly2trellis(sim_consts.Ko, sim_consts.Go, sim_consts.BGo) ;
sim_consts.enco = trellis2enc(sim_consts.to) ; % encoder parameters
sim_consts.Ro = sim_consts.enco.k/sim_consts.enco.n ;
% inner codec's --with 1/2 convolutional code
% sim_consts.Gi = [15 17]; % Generator of inner encoder
sim_consts.Gi = [10 13];
% sim_consts.BGi = [15]; % Generator of outer encoder
sim_consts.Ki = 4 ; % Restrain length of inner encoder
sim_consts.mi = 3 ;
% sim_consts.ti = poly2trellis(sim_consts.Ki, sim_consts.Gi, sim_consts.BGi) ;
sim_consts.ti = poly2trellis(sim_consts.Ki, sim_consts.Gi) ;
sim_consts.enci = trellis2enc(sim_consts.ti) ; % encoder parameters
sim_consts.Ri = sim_consts.enci.k/sim_consts.enci.n ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -