% =========================================================================== % Copyright (C): % 2003-2009 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Description : ETSI SpM performance simulations % % Project : BANG, FTW % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % % Reference: % % CVS: $Id: SpM.m,v 1.2 2005/01/04 10:25:12 tono Exp $ %% =========================================================================== %% =========================================================================== % Change History % 2003-11-11 (ToNo) Created % 2004-01-14 (ToNo) Simulation of reference scenarios completed % 2005-01-12 (ToNo) Updated for inclusion in main simulator % 2005-01-14 (ToNo) Split up into smaller parts % 2005-04-19 (ToNo) Continued cleaning up %% =========================================================================== global ex; global result; %% =========================================================================== % Simulation control dologging = 1; % Set to 1 for logging progressbar = 1; % Set to 1 if progress indicators should be printed plotit = 1; % Set to 1 for some plots dosingle = 1; % Set to 1 if we want a single/smaller set of tests usepreref = 0; % Use predefined reference values doevaluation = 0; % Do evaluation of estb. scenario (often = usepreref) donsreach = 0; % Set to 1 if we want to get reaches for % the new systems %% =========================================================================== % Set up logging if dologging % Get current date dvec = datevec(now); isodate = sprintf('%4d%02d%02d',dvec(1),dvec(2),dvec(3)); % Start logging savefile = sprintf('matlabSpM%s_perf',isodate); logfile = sprintf('diarySpM%s_perf', isodate); noruns = noFiles([logfile '*']); % Find a unique name for logs logfile = sprintf('%s_r%d',logfile,noruns+1); diary(logfile); end; %% =========================================================================== % Setup of (espcially ETSI) default values setup_SpM; %% ======================================================================== % Set up experiment parameters and loops noiters=0; totalcnt=0; nonoreach=0; % Start timer tic; %% ======================================================================== % Scenario setup if dosingle Scenarios = {'MPM'}; else Scenarios = {'HPM','HPR_VCC','MPP_VCC', 'MPP','MPI','MPM'}; end; %% ======================================================================== % Set up what new systems to simulate if donsreach % esysix = searchList(ex.tfplist,'ESDSL'); bratesE16 = [2320 2688 3072 3456 3840]; bratesE32 = [768 1152 1536 1920 2304 ... 2680 2688 3072 3456 3840 4224 4608 4992 5696]; NewSystems = {}; else bratesE16 = [2320 3840]; bratesE32 = [768 2680 2688 5696]; NewSystems = {'ITU-ADSL-G.992.3-AnnexJ-NoO64'}; end; for eix = 1:length(bratesE16) NewSystems = {NewSystems{:} sprintf('ETSI-ESDSL-sym16-%d',bratesE16(eix))}; end; for eix = 1:length(bratesE32) NewSystems = {NewSystems{:} sprintf('ETSI-ESDSL-sym32-%d',bratesE32(eix))}; end; % Skip the above setting and just set a smaller set of New Systems NewSystems = {'ETSI-ESDSL-sym16-3840', 'ETSI-ESDSL-sym32-3840', ... 'ETSI-ESDSL-sym32-5696', 'ETSI-SDSL-sym-2304', ... 'ETSI-ADSL-FDDoverPOTS', 'ITU-ADSL-G.992.3-AnnexJ-NoO64'}; NewSystems = {'ITU-ADSL-G.992.3-AnnexJ-NoO64'}; tmp_xDSL.name='NewSys'; tmp_xDSL.used=NewSystems{1}; ex.param.xDSLlist{1}=tmp_xDSL; %% ======================================================================== % for scix = 1:length(Scenarios) Scenario = Scenarios{scix}; scen=getScenario_SpM(Scenario); ntt = scen.ntt; nosystems = scen.nosystems; refsys = scen.refsys; avsys = scen.avsys; vcc= scen.vcc; vccno = scen.vccno; orgrefsys = refsys; % Assume last refsys points to VDSL vdslix = refsys(end); if ntt{vdslix}{1}(1:6) == 'ETSI-V' % Check for ETSI-VDSL refsys=refsys(1:end-1); ntt{vdslix}{3}=1500; % Stop VDSL at 1500m end; lcvt=getList(ex.lclist,'ETSI-VDSL-theo'); lcvt.param.PxDown = 14.60; % Fix power problems with US0 ex.lclist = setList(ex.lclist,lcvt.name,lcvt); if usepreref eval (['defreflen = defreflen_' Scenario ';']); for rix = 1:length(refsys) ntt{refsys(rix)}{3}=defreflen(rix); end; refsys=[]; end; %% ==================================================================== fprintf('Running scenario %s\n',Scenario); if length(vcc)>0 fprintf('With VCC\n'); end; searchReaches_SpM; fprintf('%12s = [ ', ['FTW_' Scenario]); for nix = 1:length(orgrefsys) fprintf(' %.0f ',reflen(orgrefsys(nix))); end; fprintf('];\n'); if doevaluation evaluation_SpM end; end; % for scenarios %% =========================================================================== if dologging % Print elapsed time usedtime=toc; fprintf('\n'); fprintf('Used time = %.2fs, for %d experiments\n',usedtime, totalcnt); if noiters > 0 fprintf('(%.2fs per reach',usedtime/noiters); fprintf(', in avg. %.1f experiments per nonzero reach.)',... totalcnt/(noiters-nonoreach)); end; fprintf('\n'); % Save and stop logging % eval(['save ' savefile ' FTW*']); diary off; end;