function tfplist = etsi_tfplansVDSLDMT(tfplist) %% =========================================================================== % etsi_tfplansVDSLDMT(tfplist) - Sets up tfplans for ETSI VDSL DMT % used in ETSI SpM % % Parameter: tfplist Structure describing the time and freq plan % Returns: tfplist Structure describing the time and freq plan % % Example(s): % ex.tfplist = etsi_tfplansVDSLDMT(ex.tfplist); Add to existing tfplist % tfplan=getList(ex.tfplist,'ETSI-VDSL-E1-Pex-P2-M2'); % % References: % ETSI TM6 034w08 % ETSI TM6 m01p20a5 and m01p21a7 spm2_LL % ETSI STC TM6 TM6(98)10 rev. 5 % % ETSI TR 101 830-2, Spectral management on metallic access % networks; Part 2: Technical methods and performance % evaluations, m01p20a5 %% =========================================================================== %% =========================================================================== % Copyright (C): % 2003-2009 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : FTW's xDSLsimu % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % % CVS: $Id: etsi_tfplansVDSLDMTDMT.m,v 1.2 2005/01/04 10:25:12 tono Exp $ %% =========================================================================== % Change History % 2003-11-28 (ToNo) Created % 2005-03-29 (ToNo) Updated UPBO band representation % 2008-11-03 (ToNo) Allow etsi_masksVDSL NOT be defined in tfplist %% =========================================================================== target.ds=6.4; target.us=6.4; %% =========================================================================== % Use a template, as order is important! def_tfplan = templateTFP; def_tfplan.PSD.active.upstream = [138e3 12e6]; def_tfplan.PSD.active.downstream = [138e3 12e6]; % select upstream power back-off method def_tfplan.PSD.UPBO.method = 'RefRef'; % 'None' def_tfplan.PSD.UPBO.param.refa = [-47.3 -54]; % RefRef noise E def_tfplan.PSD.UPBO.param.refb = [-27.27 -18.1]; def_tfplan.PSD.HAM.active = 0; def_tfplan.timeDivision.up = 1; def_tfplan.timeDivision.down = 1; def_tfplan.timeDivision.sync = 1; def_tfplan.fixBitrate.name = 'WF'; def_tfplan.fixBitrate.active = 0; def_tfplan.fixBitrate.param.target_us = target.us; def_tfplan.fixBitrate.param.target_ds = target.ds; def_tfplan.lcname = 'ETSI-VDSL-DMT'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Need the templates in etsi_masksVDSL.m tname = 'ETSI-VDSL-Template-E1-Pex-P2-M2'; mix = searchList(tfplist,tname); if length(mix) == 0, % Didn't call etsi_masksVDSL before, get it now tmp_tfplist = etsi_masksVDSL([]); else tmp_tfplist = tfplist; end; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E1-Pex-P2-M2'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E1-Pex-P2-M2'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3000 5100; 7050 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E1'; tfplist=insertList(tfplist,tmp_tfplan); % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E2-Pex-P1-M1'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E2-Pex-P1-M1'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3750 5200; 8500 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E2'; tfplist=insertList(tfplist,tmp_tfplan); % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E2-Pex-P2-M2'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E2-Pex-P2-M2'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3750 5200; 8500 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E2'; tfplist=insertList(tfplist,tmp_tfplan); % -------------- % With US0 % Note that no UPBO is done in the first (US0) upstream band % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E1U0-Pex-P2-M1'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E1U0-Pex-P2-M1'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3000 5100; 7050 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E1U0'; tfplist=insertList(tfplist,tmp_tfplan); % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E1U0-Pex-P2-M2'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E1U0-Pex-P2-M2'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3000 5100; 7050 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E1U0'; tfplist=insertList(tfplist,tmp_tfplan); % With Noise D tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E1U0-Pex-P2-M2-D'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E1U0-Pex-P2-M2'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.param.refa = [-47.3 -54]; % RefRef noise D tmp_tfplan.PSD.UPBO.param.refb = [-26.21 -17.36]; tmp_tfplan.PSD.UPBO.band = [3000 5100; 7050 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E1U0'; tfplist=insertList(tfplist,tmp_tfplan); % tmp_tfplan=def_tfplan; tmp_tfplan.name='ETSI-VDSL-E2U0-Pex-P2-M2'; masktf = getList(tmp_tfplist,'ETSI-VDSL-Template-E2-Pex-P2-M2'); tmp_tfplan.PSD.downstream = masktf.PSD.downstream; tmp_tfplan.PSD.upstream = masktf.PSD.upstream; tmp_tfplan.PSD.UPBO.band = [3750 5200; 8500 12000]*1e3; tmp_tfplan.lcname='ETSI-VDSL-DMT-E2U0'; tfplist=insertList(tfplist,tmp_tfplan);