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

📄 berparam95.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ----------------------------------------------------------------------------
%  $RCSfile: BERparam95.m.rca $
%  $Revision: 1.1 $
%  $Date: Mon Jan 22 14:24:02 2007 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% BER parameters for QPSK CTC 1/2  
% Same as BERparam91.m except CTC instead of CC



%Subframe Descriptor    
SubframeD = ...
  struct( 'NFFT',                1024,... %FFT size (128, 512, 1024 or 2048)
          'SubframeOff',          27,... %offset from frame boundary (in OFDMA symbols)
          'NumSym',               60,... %number of OFDMA symbols in subframe 
          'SegMap',         [63 0 0],... %usage of groups in segments
                                     ... %(here all groups are used by segment 0)
          'NumZones',              1 ... %number of zones in subframe (1,2,...) 
        );

%zone configuration for UL-PUSC FFT-1024 (static)
ZoneConfig = ...
  struct( 'NFFT',                1024,...
          'NFFTUsed',            841,...
          'DCIndex',             512,...
          'MaxSubch',             35,...
          'TilesPerSubch',         6,...
          'LGuard',               92,...
          'RGuard',               91,...
          'Nsubcarriers',         48,...
          'SymPerSlot',            3 ...
        ); 

    
%asynchronous PHY control structure
AsyncPhyCtrl = ...
  struct( 'UlPermBase',            2,...
          'IDCell',               21,...
          'PilotAmpl',          5381,... %0dB (compared to data)
...%          'PilotAmpl',          7177,... %+2.5dB (compared to data)
          'FrameNr',               0,...
          'SegmentNr',             0 ...
        );

%Zone Descriptor    
ZoneD = ...
  struct( 'Type'   ,         3,... %zone type: DLFUSC=1, DLPUSC=2, ULPUSC=3
          'SymOff' ,         0,... %offset from subframe boundary (in OFDMA symbols)
          'NumSym' ,       21,... %number of OFDMA symbols in zone (1,2,...) 
          'NumBursts',       1,... %number of bursts in zone
       ...%the following parameters are fix or can be derived from other
       ...%parameters of the subframe or zone descriptor
          'NumSubch' ,      35,... %number of subchannels (1,2,...)
          'Resolution',     15 ... %bit resolution of FP-Tx and TP-Tx
        );

slots=ZoneD.NumSubch*ZoneD.NumSym/ZoneD.Type;

%Burst Descriptors (take care of the burst order!)   
BurstD=[];

BurstD = [BurstD , ... 
  struct( 'Name'     ,'Data Burst #1',...
          'Size'     ,  slots*6,... %burst size (payload) in bytes
          'IUC'      ,        0,... %DIUC/UIUC (0..15)
          'SymOff'   ,        0,... %OFDMA symbol offset from zone boundary
          'SubchOff' ,        0,... %subchannel offset
          'NumSym'   ,       -1,... %number of OFDM symbols per burst
          'NumSubch' ,       -1,... %number of subchannel per burst
          'Duration' ,    slots,... %number of allocated slots 
          'Type'     ,        0,... %FEC coding and modulation type (0..6)
          'Boosting' ,        0,... %boosting parameter
          'R'        ,        1,... %repetition factor (1,2,4,6)
       ...%the following parameters are derived from the parameters above
          'Slots'    ,       -1,... %number of slots per burst (before repetition)
          'FECType'  ,       -1,... %CC=0, CTC=1, BTC=2, ZTCC=3
          'ModMode'  ,       -1,... %QPSK=2, 16QAM=4, 64QAM=6
          'PunctMode',       -1,... %puncturing rate 1/1, 4/3, 3/2 (0,1,2)
          'J'        ,       -1,... %maximum number of slots per code block
          'B'        ,       -1,... %payload bytes per slot   
          'Distance' ,       -1 ... %distance for Demodulation Mapper   
        )];

%FEC coding and modulation type (11.4.2)
%  0 = CC 1/2 rate, QPSK        
%  1 = CC 3/4 rate, QPSK        
%  2 = CC 1/2 rate, 16QAM        
%  3 = CC 3/4 rate, 16QAM        
%  4 = CC 1/2 rate, 64QAM        
%  5 = CC 2/3 rate, 64QAM        
%  6 = CC 3/4 rate, 64QAM        
% 7-21 = reserved            
% 22 = ZTCC 1/2 rate, QPSK        
% 23 = ZTCC 3/4 rate, QPSK        
% 24 = ZTCC 1/2 rate, 16QAM        
% 25 = ZTCC 3/4 rate, 16QAM        
% 26 = ZTCC 1/2 rate, 64QAM        
% 27 = ZTCC 2/3 rate, 64QAM        
% 28 = ZTCC 3/4 rate, 64QAM        
%29-31 = reserved            

%constants (-1 = not implemented)
J = [ 6, 4, 3, 2, 2, 1, 1,-1,-1,-1,...
     -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,...
     -1,-1, 6, 4, 3, 2, 2, 1, 1,-1,...
     -1,-1]; %maximum number of slots per code block
B = [ 6, 9,12,18,18,24,27,-1,-1,-1,...
     -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,...
     -1,-1, 6, 9,12,18,18,24,27,-1,...
     -1,-1]; %payload per slot (in bytes)
ModMode = [ 2, 2, 4, 4, 6, 6, 6,-1,-1,-1,...
           -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,...
           -1,-1, 2, 2, 4, 4, 6, 6, 6,-1,...
           -1,-1]; %modulation mode
PunctMode = [ 0, 2, 0, 2, 0, 1, 2,-1,-1,-1,...
             -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,...
             -1,-1, 0, 2, 0, 2, 0, 1, 2,-1,...
             -1,-1]; %puncturing mode
         
FECType = [ 1, 1, 1, 1, 1, 1, 1,-1,-1,-1,...
           -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,...
           -1,-1, 3, 3, 3, 3, 3, 3, 3,-1,...
           -1,-1]; %FEC type (CC=0, ... )
       
Distance = [-1, 2*3805, -1, 2*1702, -1, 2*830];

for b=1:ZoneD.NumBursts,
  %derive additional burst parameters from burst coding and modulation type
  t=BurstD(b).Type+1;
  BurstD(b).FECType = FECType(t); 
  BurstD(b).ModMode = ModMode(t); 
  BurstD(b).PunctMode = PunctMode(t); 
  BurstD(b).J = J(t); 
  BurstD(b).B = B(t);
  %number of slots per burst (before repetition)
  BurstD(b).Slots = BurstD(b).Duration/BurstD(b).R;
  BurstD(b).Distance = Distance(BurstD(b).ModMode);
end
%clear local variables
clear J B ModMode PunctMode FECType Distance b t 


%parameters for time domain processing
TPparam = ...
  struct( 'SizeFFT'   ,     1024,... %128,256,512,1024,2048
          'SizeCP'   ,       128,... %
         ... %'Fofdm'   ,   5.6e6,... %OFDM sampling frequency
          'Fofdm'   ,   11.2e6,... %OFDM sampling frequency
          'Comp_a_tx' ,       0,... %quadrature compensation coefficient
          'Comp_b_tx' ,       1,... %gain unbalance compensation coefficient
          'Comp_c_tx' ,       0,... %carrier residual compensation coefficient(real)
          'Comp_d_tx' ,       0,... %carrier residual compensation coefficient(imaginary)
          'Comp_a_rx' ,       0,... %quadrature compensation coefficient
          'Comp_b_rx' ,       1,... %gain unbalance compensation coefficient
          'Comp_c_rx' ,       0,... %carrier residual compensation coefficient(real)
          'Comp_d_rx' ,       0,... %carrier residual compensation coefficient(imaginary)
          'FilterCoeff_set' , 1,... %set of filter coefficients (to load the selected one)
          'shift_ss' ,        2,... %shift value used in spectr. shaper filter
          'shift_ip1' ,       2,... %shift value used in first interp. filter
          'shift_ip2' ,       2,... %shift value used in second interp. filter
          'shift_comp_tx' ,   0,... %shift value used in Tx error compensation
          'shift_comp_rx' ,   0,... %shift value used in Rx error compensation
          'shift_dec1' ,      0,... %shift value used in first dec. filter
          'shift_dec2' ,      0,... %shift value used in second dec. filter
          'shift_cs' ,        0,... % shift value used in chann. sep. filter
          'Delay' ,       29+22,... %overall delay (Tx + Rx) associated with the filter set
...%      'Delay' ,       29+20,... %overall delay (Tx + Rx) associated with the filter set
          'SubDelay' ,        3,... %sub-sample delay (to avoid equalization)
          'NumSym'    ,       1 ... %number of OFDM symbols per burst
        );

⌨️ 快捷键说明

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