5G/NR - Pre Trial - Frame Structure - Matlab Code
NOTE : This note is about a tempary 5G specification that was implemented and tried before 5G specification is finalized. I keep this note for study purpose.
Frame Structure - Matlab Code
Disclaimer : The code is ONLY for visualzing the resource element mapping for various physical channels defined in Pretrial specification. The resoure location would be accurate but the data assigned in the resource elements is just a dummy (meaningless) value. Also, there might be some errors in the code (or my mis-interpretation of the specification). Don't blame on me if there is any errors :). Play with the code and have fun.
i) Create a folder where you want to store files (m files)
ii) Create the files listed under Common Library Section store them in the folder created at step i).
iii) Create other files as you like and store them in the folder created at step i).
|
Filename : TestFrame.m Last Update : Dec 7, 2016 |
|
radioframe = []; for i = 0:49 radioframe = [radioframe CreateSubFrame(0,0,0)]; end;
% Add PSS, SSS, ESS sf = radioframe(1); sf = SubFrame_AddPss(sf); sf = SubFrame_AddSss(sf); sf = SubFrame_AddEss(sf);
radioframe(1) = sf;
sf = radioframe(26); sf = SubFrame_AddPss(sf); sf = SubFrame_AddSss(sf); sf = SubFrame_AddEss(sf); radioframe(26) = sf;
% Add xPBCH sf = radioframe(1); xPBCH.N_DL_RB = 100; xPBCH.N_RB_SC = 12;
xPBCH.Subblock = 'Even'; xPBCH.DummyValue = 0.7; sf = SubFrame_Add_xPBCH_Subblock(sf,xPBCH);
xPBCH.Subblock = 'Odd'; xPBCH.DummyValue = 0.7; sf = SubFrame_Add_xPBCH_Subblock(sf,xPBCH);
sf = radioframe(26); xPBCH.N_DL_RB = 100; xPBCH.N_RB_SC = 12;
xPBCH.Subblock = 'Even'; xPBCH.DummyValue = 0.7; sf = SubFrame_Add_xPBCH_Subblock(sf,xPBCH);
xPBCH.Subblock = 'Odd'; xPBCH.DummyValue = 0.7; sf = SubFrame_Add_xPBCH_Subblock(sf,xPBCH); radioframe(1) = sf; radioframe(26) = sf;
% Add BRS sf = radioframe(1); BRS.N_DL_RB = 100; BRS.DummyValue = 0.2; sf = SubFrame_AddBrs(sf,BRS); radioframe(1) = sf;
sf = radioframe(26); BRS.N_DL_RB = 100; BRS.DummyValue = 0.2; sf = SubFrame_AddBrs(sf,BRS); radioframe(26) = sf;
% Add ePBCH sf = radioframe(50);
ePBCH.N_DL_RB = 100;
ePBCH.DummyValue = 0.5; sf = SubFrame_Add_ePBCH(sf,ePBCH);
ePBCH.AntennaPort = 500; ePBCH.DummyValue = 0.3; sf = SubFrame_Add_ePBCH_DMRS_Port(sf,ePBCH);
radioframe(50) = sf;
% Add BRRS sf = radioframe(27); BRRS.AntennaPort = 600; BRRS.N_DL_RB = 100; BRRS.N_RB_SC = 12; BRRS.SymbolIndex = 12;
BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 601; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 602; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 603; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 604; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 605; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 606; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
BRRS.AntennaPort = 607; BRRS.DummyValue = 0.8; sf = SubFrame_AddBrrs_Port(sf, BRRS);
radioframe(27) = sf;
%Add xREG and xPDCCH DMRS for i = [2:25 27:49] sf = radioframe(i); xREG.N_RB_SC = 12;
xREG.DummyValue1 = 0.2; xREG.DummyValue2 = 0.5; xREG.Symbol = 0; sf = SubFrame_Add_xREG_Symbol(sf,xREG);
xREG.DummyValue1 = 0.5; xREG.DummyValue2 = 0.2; xREG.Symbol = 1; sf = SubFrame_Add_xREG_Symbol(sf,xREG);
xPDCCH.N_RB_SC = 12;
xPDCCH.DummyValue = 0.7; xPDCCH.Symbol = 0; xPDCCH.n_xREG = 0; sf = SubFrame_Add_xPDCCH_DMRS_UE(sf,xPDCCH);
radioframe(i) = sf; end;
% Add PDSCH PNRS for i = [2:25 27:49] sf = radioframe(i); xPDSCH.N_RB_SC = 12; xPDSCH.n_PRB_xPDSCH = 0; xPDSCH.N_PRB_xPDSCH = 4*25; xPDSCH.lp_first_xPDSCH = 3; xPDSCH.lp_last_xPDSCH = 13;
xPDSCH.AntennaPort = 60; xPDSCH.DummyValue = 0.4; sf = SubFrame_Add_xPDSCH_PNRS_Port(sf,xPDSCH);
xPDSCH.AntennaPort = 61; xPDSCH.DummyValue = 0.6; sf = SubFrame_Add_xPDSCH_PNRS_Port(sf,xPDSCH); radioframe(i) = sf; end;
figure(1); Option = 0; PlotFrame(radioframe,Option)
figure(2); sf = radioframe(1); PlotSubFrame(sf,0,14,450,750);
|
PSS (Primary Synchronization Signal)
|
Filename : SubFrame_AddPss.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.8.1.2 function sf = SubFrame_AddPss(subFrame)
p = 300;
N_DL_RB = 100; N_RB_SC = 12;
d = 0 .* [0:61] + 1;
sList = []; for n = 0:61 for l = 0:13 k = n - 31 + (N_DL_RB*N_RB_SC/2); sList = [sList ; [l k d(n+1)]]; end end
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestPSS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
subframe = SubFrame_AddPss(subframe);
PlotSubFrame(subframe,0,14,450,750); |
SSS (Secondary Synchronization Signal)
|
Filename : SubFrame_AddSss.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.8.2.2 function sf = SubFrame_AddSss(subFrame)
p = 300;
N_DL_RB = 100; N_RB_SC = 12;
d = 0 .* [0:61] + 0.7;
sList = []; for n = 0:61 for l = 0:13 k = n + 41 + (N_DL_RB*N_RB_SC/2); sList = [sList ; [l k d(n+1)]]; end end
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestSSS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
subframe = SubFrame_AddSss(subframe);
PlotSubFrame(subframe,0,14,450,750); |
ESS (Extended Synchronization Signal)
|
Filename : SubFrame_AddEss.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.8.3.2 function sf = SubFrame_AddEss(subFrame)
p = 300;
N_DL_RB = 100; N_RB_SC = 12;
d = 0 .* [0:62] + 0.5;
sList = []; for n = 0:62 for l = 0:13 k = n - 104 + (N_DL_RB*N_RB_SC/2); sList = [sList ; [l k d(n+1)]]; end end
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestESS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
subframe = SubFrame_AddEss(subframe);
PlotSubFrame(subframe,0,14,450,750); |
|
Filename : SubFrame_Add_xPBCH_Subblock.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.5.4 function sf = SubFrame_Add_xPBCH_Subblock(subFrame,xPBCH)
Subblock = upper(xPBCH.Subblock);
N_DL_RB = xPBCH.N_DL_RB; N_RB_SC = xPBCH.N_RB_SC;
d = xPBCH.DummyValue;
sList = [];
if strcmp(Subblock,'EVEN') == 1 for l = 0:13 for kp = floor((N_DL_RB+18)/2):(N_DL_RB - 1) for kpp = 0:3 k = kp * N_RB_SC + kpp; sList = [sList ; [l k d]]; end; %end of for kpp = 0:3 end; %end of for kp = floor((N_DL_RB+18)/2):(N_DL_RB - 1) end; %end of for l = 0:13 elseif strcmp(Subblock,'ODD') == 1 for l = 0:13 for kp = floor((N_DL_RB-18)/2)-1:-1:0 for kpp = 3:-1:0 k = kp * N_RB_SC + kpp; sList = [sList ; [l k d]]; end; %end of for kpp = 0:3 end; %end of for kp = floor((N_DL_RB+18)/2):(N_DL_RB - 1) end; %end of for l = 0:13 end;
subFrame = SubFrame_SetSymbolAt(subFrame,sList); sf = subFrame;
end |
|
Filename : Test_xPBCH.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
xPBCH.N_DL_RB = 100; xPBCH.N_RB_SC = 12;
xPBCH.Subblock = 'Even'; xPBCH.DummyValue = 0.2; subframe = SubFrame_Add_xPBCH_Subblock(subframe,xPBCH);
xPBCH.Subblock = 'Odd'; xPBCH.DummyValue = 0.5; subframe = SubFrame_Add_xPBCH_Subblock(subframe,xPBCH);
PlotSubFrame(subframe,0,14,0,47); |
BRS (Beam measurement Reference Signal)
|
Filename : SubFrame_AddBrs.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.7.4.2 function sf = SubFrame_AddBrs(subFrame,BRS)
N_DL_RB = BRS.N_DL_RB; N_RB_SC = 12;
d = BRS.DummyValue; kpList = [0:(floor(1/2*(N_DL_RB-18))-1) floor(1/2*(N_DL_RB+18)):(N_DL_RB-1)] ;
sList = []; for l = 0:13 for kp = kpList for kpp = 4:11 k = kp * N_RB_SC + kpp; sList = [sList ; [l k d]]; end end end
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestBRS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
BRS.N_DL_RB = 100; BRS.DummyValue = 0.5; subframe = SubFrame_AddBrs(subframe,BRS);
PlotSubFrame(subframe,0,14,0,48); |
BRRS (Beam Refinement Reference Signal)
|
Filename : SubFrame_AddBrrs_Port.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.7.5.2 function sf = SubFrame_AddBrrs_Port(subFrame,BRRS)
p = BRRS.AntennaPort;
N_RB_SC = BRRS.N_RB_SC; N_DL_RB = BRRS.N_DL_RB; l = BRRS.SymbolIndex; d = BRRS.DummyValue;
sList = []; for m = 0:floor(3*N_DL_RB/8)-1 kp = p + 8*m - 600; if 4*kp < floor(N_RB_SC*N_DL_RB/2) k0 = 0; else k0 = 3; end;
k = 4*kp+k0; sList = [sList ; [l k d]]; end;
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestBRRS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
BRRS.AntennaPort = 600; BRRS.N_DL_RB = 100; BRRS.N_RB_SC = 12; BRRS.SymbolIndex = 12; BRRS.DummyValue = 0.2; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 601; BRRS.DummyValue = 0.3; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 602; BRRS.DummyValue = 0.4; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 603; BRRS.DummyValue = 0.5; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 604; BRRS.DummyValue = 0.5; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 605; BRRS.DummyValue = 0.6; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 606; BRRS.DummyValue = 0.7; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
BRRS.AntennaPort = 607; BRRS.DummyValue = 0.8; subframe = SubFrame_AddBrrs_Port(subframe, BRRS);
PlotSubFrame(subframe,0,14,0,48);
|
|
Filename : SubFrame_Add_ePBCH.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.5A.4 function sf = SubFrame_Add_ePBCH(subFrame,ePBCH)
N_DL_RB = ePBCH.N_DL_RB; d = ePBCH.DummyValue;
sList = [];
for l = 0:13 for kp = 0:(2 * N_DL_RB - 1 ) for kpp = [0 1 3 4 5] k = 6 * kp + kpp; sList = [sList ; [l k d]]; end; %end of kpp = [0 1 3 4 5] end; %end of for m = 0:(2 * N_DL_RB - 1 ) end; %end of for l = 0:13
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : Test_ePBCH.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
ePBCH.N_DL_RB = 100;
ePBCH.DummyValue = 0.5; subframe = SubFrame_Add_ePBCH(subframe,ePBCH);
PlotSubFrame(subframe,0,14,0,47); |
|
Filename : SubFrame_Add_ePBCH_DMRS_Port.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.7.7.2 function sf = SubFrame_Add_ePBCH_DMRS_Port(subFrame,ePBCH)
p = ePBCH.AntennaPort;
N_DL_RB = ePBCH.N_DL_RB; d = ePBCH.DummyValue;
sList = [];
for l = 0:13 for m = 0:(2 * N_DL_RB - 1 )
k = 6 * m + 2; sList = [sList ; [l k d]];
end; %end of for m = 0:(2 * N_DL_RB - 1 ) end; %end of for l = 0:13
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : Test_ePBCH_and_DMRS.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
ePBCH.N_DL_RB = 100;
ePBCH.DummyValue = 0.5; subframe = SubFrame_Add_ePBCH(subframe,ePBCH);
ePBCH.AntennaPort = 500; ePBCH.DummyValue = 0.3; subframe = SubFrame_Add_ePBCH_DMRS_Port(subframe,ePBCH);
% ePBCH.AntennaPort = 501; % ePBCH.DummyValue = 0.6; % subframe = SubFrame_Add_ePBCH_DMRS_Port(subframe,ePBCH);
PlotSubFrame(subframe,0,14,0,47); |
|
Filename : SubFrame_Add_xREG_Symbol.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.2.4 function sf = SubFrame_Add_xREG_Symbol(subFrame,xREG)
N_RB_SC = xREG.N_RB_SC; d1 = xREG.DummyValue1; d2 = xREG.DummyValue2; l = xREG.Symbol;
sList = [];
for n_xREG = 0:15 for m = 0:11 for k1 = [0 1 4 5] k0 = 6 * n_xREG * N_RB_SC; k = k0 + k1 + 6 * m; if mod(n_xREG,2) == 0 sList = [sList ; [l k d1]]; else sList = [sList ; [l k d2]]; end; end; %end of for k1 = [0 1 4 5] end; %end of for m = 0:(2 * N_DL_RB - 1 ) end; %end of for n_xREG = 0:15
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : Test_xREG.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
xREG.N_RB_SC = 12;
xREG.DummyValue1 = 0.2; xREG.DummyValue2 = 0.5; xREG.Symbol = 0; subframe = SubFrame_Add_xREG_Symbol(subframe,xREG);
xREG.DummyValue1 = 0.5; xREG.DummyValue2 = 0.2; xREG.Symbol = 1; subframe = SubFrame_Add_xREG_Symbol(subframe,xREG);
PlotSubFrame(subframe,0,14,0,144); |
|
Filename : SubFrame_Add_xPDCCH_DMRS_UE.m Last Update : Dec 7, 2016 |
|
%V5G.211 - 6.7.2.2 function sf = SubFrame_Add_xPDCCH_DMRS_UE(subFrame,xPDCCH)
N_RB_SC = xPDCCH.N_RB_SC; d = xPDCCH.DummyValue; n_xREG = xPDCCH.n_xREG; l = xPDCCH.Symbol;
sList = [];
for mp = 0:23 k0 = 6 * n_xREG * N_RB_SC; k = k0 + 2 + mod(mp,2) + 6 * floor(mp / 2); sList = [sList ; [l k d]]; end; %end of for mp = 0:23
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : Test_xPDCCH_DMRS_UE.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
xPDCCH.N_RB_SC = 12;
for j = 0:1 for i = 0:15 xPDCCH.DummyValue = 0.7; xPDCCH.Symbol = j; xPDCCH.n_xREG = i; subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); end end
% xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 0; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); % % xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 5; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); % % xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 15; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH);
PlotSubFrame(subframe,0,14,0,144);
|
|
Filename : Test_xREG_and_xPDCCH_DMRS_UE.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
xREG.N_RB_SC = 12;
xREG.DummyValue1 = 0.2; xREG.DummyValue2 = 0.5; xREG.Symbol = 0; subframe = SubFrame_Add_xREG_Symbol(subframe,xREG);
xREG.DummyValue1 = 0.5; xREG.DummyValue2 = 0.2; xREG.Symbol = 1; subframe = SubFrame_Add_xREG_Symbol(subframe,xREG);
xPDCCH.N_RB_SC = 12;
for j = 0:1 for i = 0:15 xPDCCH.DummyValue = 0.7; xPDCCH.Symbol = j; xPDCCH.n_xREG = i; subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); end end
% xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 0; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); % % xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 5; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH); % % xPDCCH.DummyValue = 0.7; % xPDCCH.Symbol = 0; % xPDCCH.n_xREG = 15; % subframe = SubFrame_Add_xPDCCH_DMRS_UE(subframe,xPDCCH);
PlotSubFrame(subframe,0,14,0,144); |
|
Filename : SubFrame_Add_xPDSCH_PNRS_Port.m Last Update : Dec 7, 2016 |
|
% V5G.211 - 6.7.6.2 function sf = SubFrame_Add_xPDSCH_PNRS_Port(subFrame,xPDSCH)
p = xPDSCH.AntennaPort;
N_RB_SC = xPDSCH.N_RB_SC; n_PRB_xPDSCH = xPDSCH.n_PRB_xPDSCH; N_PRB_xPDSCH = xPDSCH.N_PRB_xPDSCH; lp_first_xPDSCH = xPDSCH.lp_first_xPDSCH; lp_last_xPDSCH = xPDSCH.lp_last_xPDSCH;
d = xPDSCH.DummyValue;
if (p == 60) kp = 24; elseif (p == 61) kp = 23; end;
sList = [];
for l = lp_first_xPDSCH:lp_last_xPDSCH for mp = 0:(N_PRB_xPDSCH-1)
kpp = floor(mp/4); k = N_RB_SC * (n_PRB_xPDSCH + kpp * 4) + kp;
sList = [sList ; [l k d]];
end; %end of for mp = 0:(N_PRB_xPDSCH-1) end; %end of l = lp_first_xPDSCH:lp_last_xPDSCH
subFrame = SubFrame_SetSymbolAt(subFrame,sList);
sf = subFrame;
end |
|
Filename : TestPNRS_xPDSCH.m Last Update : Dec 7, 2016 |
|
subframe = CreateSubFrame(0,0,0);
xPDSCH.N_RB_SC = 12; xPDSCH.n_PRB_xPDSCH = 0; xPDSCH.N_PRB_xPDSCH = 4*25; xPDSCH.lp_first_xPDSCH = 3; xPDSCH.lp_last_xPDSCH = 13;
xPDSCH.AntennaPort = 60; xPDSCH.DummyValue = 0.4; subframe = SubFrame_Add_xPDSCH_PNRS_Port(subframe,xPDSCH);
xPDSCH.AntennaPort = 61; xPDSCH.DummyValue = 0.6; subframe = SubFrame_Add_xPDSCH_PNRS_Port(subframe,xPDSCH);
PlotSubFrame(subframe,0,14,0,47); |
|
Filename : SubFrame_SetSymbolAt.m Last Update : Dec 7, 2016 |
|
function sf = SubFrame_SetSymbolAt(subFrame,sList)
NoOfElement = size(sList,1);
for i = 1:NoOfElement sItem = sList(i,:); s = sItem(1)+1; % symbol Index sc = sItem(2)+1; % subcarrier Index sVal = sItem(3); subFrame.Grid(s,sc) = sVal; end
sf = subFrame;
end |
|
Filename : SubFrame_SetSymbolAtFrequency.m Last Update : Dec 7, 2016 |
|
function sf = SubFrame_SetSymbolAtFrequency(subFrame,scIndex,sStart,sEnd,sVec) subFrame.Grid(sStart+1:sEnd+1,scIndex+1) = sVec'; sf = subFrame; end |
|
Filename : SubFrame_SetSymbolAtTime.m Last Update : Dec 7, 2016 |
|
function sf = SubFrame_SetSymbolAtTime(subFrame,sIndex,scStart,scEnd,sVec) subFrame.Grid(sIndex+1,scStart+1:scEnd+1) = sVec; sf = subFrame; end |
|
Filename : CreateFrame.m Last Update : Dec 7, 2016 |
|
function frm = CreateFrame()
t = 0:14 * 10 * 5; f = 0:100; [gx,gy] = meshgrid(t,f); gz = (0 .* gx) + (0 .* gy); frm = [gx, gy, gz];
end |
|
Filename : CreateSubFrame.m Last Update : Dec 7, 2016 |
|
function sf = CreateSubFrame(hfn,sfn,subframe) sf.HyperFrameNumber = hfn; sf.SystemFrameNumber = sfn; sf.SubframeNumber = subframe; sf.Grid = 0 .* ones(15,100*12+1); end |
|
Filename : PlotSubframe.m Last Update : Dec 7, 2016 |
|
function h=PlotSubframe(subFrame,sStart,sEnd,scStart,scEnd)
m = subFrame.Grid;
xStep = 0:size(m,1)-1; yStep = 0:size(m,2)-1; [X,Y] = meshgrid(xStep,yStep); Z = m'; %0 .* X + 0 .* Y; %Z(601,1:14) = 0 .* [1:14] + 1;
subplot(1,2,1); surface(X,Y,Z,'EdgeColor','none'); tMax = size(m,1); fMax = size(m,2); axis([0 (tMax-1) 0 fMax 0 1]); view([0,90]);
xMin = sStart; xMax = sEnd; yMin = scStart; yMax = scEnd;
subplot(1,2,2); surface(X,Y,Z); axis([xMin xMax yMin yMax 0 1]); view([0,90]); end |
|
Filename : PlotFrame.m Last Update : Dec 7, 2016 |
|
function h=PlotFrame(radioFrame,Option)
rf = radioFrame;
for i = 0:49 sf = rf(i+1); m = sf.Grid;
xStep = 0:size(m,1)-1; yStep = 0:size(m,2)-1; [X,Y] = meshgrid(xStep,yStep); Z = m'; %0 .* X + 0 .* Y; %Z(601,1:14) = 0 .* [1:14] + 1;
subplot(1,50,i+1); surface(X,Y,Z,'EdgeColor','none'); set(gca,'xticklabel',[]); set(gca,'yticklabel',[]); set(gca,'xtick',[]); set(gca,'ytick',[]); set(gca,'fontsize',6) title(num2str(i)); % pos = [(i/50.0) 0.01 (1.0/50.0) 0.98]; % set(gca,'Position',pos) view([0,90]); end;
end |