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

📄 adddlburst.m

📁 OFDMA 物理层开发的matlab 源码.飞思卡尔提供.对物理层开发的工程师有帮助!
💻 M
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Property of Freescale
%  Freescale Confidential Proprietary
%  Freescale Copyright (C) 2005 All rights reserved
%  ------------------------------------------------------------------------
%  $RCSfile: AddDLburst.m.rca $
%  $Revision: 1.4 $
%  $Date: Fri Dec 15 04:53:02 2006 $
%  Target: Matlab
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Adds a burst to the zone MAP figure. (OFDMA, WiMAX)
%
%     [H] = AddDLburst(MapStruct,BurstD,BurstNo,<BT>)
%
% The input MapStruct includes the following elements:
% MapStruct.H    : figure handle
% MapStruct.Off  : MAP anchor/origin [x,y]
% MapStruct.Unit : width of one unit [x,y]
% ZoneD  : zone descriptor
% BurstD : burst descriptor
% BurstNo: 1,2,3,... 
% BT     : burst text, e.g. 'User x' (optional)
%
% H = textbox handle
%
% See also: CreateZoneMap
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [H] = AddDLburst(MapStruct,ZoneD,BurstD,BurstNo,BT)

if ~exist('BT','var')
    BT = sprintf('Burst #%d',BurstNo);
end

%              r    g    b              
ColorCode = [ 1.0, 1.0, 0.0; ... %yellow
              0.0, 0.0, 1.0; ... %blue
              1.0, 0.0, 0.0; ... %red
              0.0, 1.0, 0.0; ... %green
              0.0, 1.0, 1.0; ... %cyan
              1.0, 0.0, 1.0; ... %magenta
              0.5, 0.5, 0.5; ... %grey
              0.6, 0.4, 0.2; ... %brown
              1.0, 1.0, 1.0; ... %white
              1.0, 1.0, 0.7; ... %yellow (light)
              0.7, 0.7, 1.0; ... %blue (light)
              1.0, 0.7, 0.7; ... %red (light)
              0.8, 1.0, 0.8; ... %green (light)
              0.8, 0.7, 0.4; ... %beige
              0.6, 0.0, 0.6; ... %violett
              0.8, 0.8, 0.8  ... %grey (light)
             ];
      
%place burst into zone MAP
if BurstD.IUC==254
  %MAP burst
  NumSlotVecs=ceil((BurstD.SubchOff+BurstD.Duration)/ZoneD.NumSubch);
  %first SlotVec
  OffSym = MapStruct.Off(1) + BurstD.SymOff*MapStruct.Unit(1); 
  NumSym = ZoneD.Type*MapStruct.Unit(1);
  if NumSlotVecs==1
     OffSubch = MapStruct.Off(2) - (BurstD.SubchOff+BurstD.Duration)*MapStruct.Unit(2); %reverse 
     NumSubch = BurstD.Duration*MapStruct.Unit(2);
     RemainingSlots=0;
  else
     OffSubch = MapStruct.Off(2) - (ZoneD.NumSubch)*MapStruct.Unit(2); %reverse 
     NumSubch = (ZoneD.NumSubch-BurstD.SubchOff)*MapStruct.Unit(2); 
     RemainingSlots=BurstD.Duration-ZoneD.NumSubch+BurstD.SubchOff;
     %next slot vectors (if required)
     for k=2:NumSlotVecs, 
       OffSym = [OffSym , OffSym(k-1)+2*MapStruct.Unit(1)]; 
       NumSym = [NumSym , 2*MapStruct.Unit(1)];
       if RemainingSlots>ZoneD.NumSubch
          OffSubch = [OffSubch , MapStruct.Off(2) - ZoneD.NumSubch*MapStruct.Unit(2)]; %reverse 
          NumSubch = [NumSubch , ZoneD.NumSubch*MapStruct.Unit(2)]; 
          RemainingSlots=RemainingSlots-ZoneD.NumSubch;
       else
          OffSubch = [OffSubch , MapStruct.Off(2)-RemainingSlots*MapStruct.Unit(2)]; %reverse 
          NumSubch = [NumSubch , RemainingSlots*MapStruct.Unit(2)]; 
          RemainingSlots=0;
       end
     end
  end
  %place MAP burst into figure
  for k=1:NumSlotVecs,
    H = annotation(MapStruct.H,'textbox',...
    'Position',[OffSym(k) OffSubch(k) NumSym(k) NumSubch(k)],...
    'BackgroundColor',ColorCode(mod(BurstNo,16),:),...
    'FitHeightToText','off',...
    'HorizontalAlignment','center',...
    'FontSize',8,...
    'String',BT,...
    'VerticalAlignment','middle');
  end
% else
%   %normal burst
%   OffSym = MapStruct.Off(1) + BurstD.SymOff*MapStruct.Unit(1); 
%   NumSym = BurstD.NumSym*MapStruct.Unit(1); 
%   OffSubch = MapStruct.Off(2) - (BurstD.SubchOff+BurstD.NumSubch)*MapStruct.Unit(2); %reverse 
%   NumSubch = BurstD.NumSubch*MapStruct.Unit(2); 
%   H = annotation(MapStruct.H,'textbox',...
%     'Position',[OffSym OffSubch NumSym NumSubch],...
%     'BackgroundColor',ColorCode(mod(BurstNo,16),:),...
%     'FitHeightToText','off',...
%     'HorizontalAlignment','center',...
%     'FontSize',8,...
%     'String',BT,...
%     'VerticalAlignment','middle');
% end
else
  %normal burst
  OffSym = MapStruct.Off(1) + BurstD.SymOff*MapStruct.Unit(1); 
  NumSym = BurstD.NumSym*MapStruct.Unit(1); 
  OffSubch = MapStruct.Off(2) - (BurstD.SubchOff+BurstD.NumSubch)*MapStruct.Unit(2); %reverse 
  NumSubch = BurstD.NumSubch*MapStruct.Unit(2); 
  BT=sprintf('Name: %s\n OFDMSymOffset=%d\n SubCHOffset=%d\n NumOFDMASym=%d\n NumSubCH=%d\n',...
      BT,BurstD.SymOff,BurstD.SubchOff,BurstD.NumSym,BurstD.NumSubch);
  H = annotation(MapStruct.H,'textbox',...
    'Position',[OffSym OffSubch NumSym NumSubch],...
    'BackgroundColor',ColorCode(mod(BurstNo,16),:),...
    'FitHeightToText','off',...
    'HorizontalAlignment','center',...
    'FontSize',8,...
    'String',BT,...
    'VerticalAlignment','middle');
end

⌨️ 快捷键说明

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