📄 adddlburst.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 + -