function tfplist = etsi_tfplansADSL2_v121(tfplist) %% =========================================================================== %etsi_tfplansADSL2(tfplist) - Sets up tfplans for some standard % ADSL2 annexes in SpM Part 2 Version 1.2.1 % % Parameter: tfplist Structure describing the time and freq plan % Returns: tfplist Structure describing the time and freq plan % % Example(s): % ex.tfplist = etsi_tfplansADSL2_v121(ex.tfplist); Add to existing tfplist % tfplan=getList(ex.tfplist,'ETSI-ADSL2-AnnexJ-N63'); % % References: % Draft ETSI TR 101 830-2 V1.2.1 (2008-xx); pds:m06p06a02_SpM2_DR % ITU G.992.3 (07/2002 prepublish) and G.992.5 (05/2003 prepublish) % ITU Draft Amendment 1 (new Annexes J and M) to Recommendation G.992.5 %% =========================================================================== %% =========================================================================== % Copyright (C): % 2004-2009 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : FTW's xDSLsimu % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % % CVS: $Id: etsi_tfplansADSL2_SpM.m,v 1.2 2005/01/04 10:25:12 tono Exp $ %% =========================================================================== % Change History % 2008-03-18 (ToNo) Created from itu_tfplansADSL2.m %% =========================================================================== df = 4.3125e3; % delta f (carrier BW) for ADSL; %% =========================================================================== % Use a template, as order is important! def_tfplan = templateTFP; % Select Bit-loading method: def_tfplan.fixBitrate.name = 'RBL'; % Rounded Bit-Loading (RBL) % Levin-Campello RA implemenation of Gain Adjusted Bit-Loading(GABL) % def_tfplan.fixBitrate.name = 'GABL_RA'; % Levin-Campello MA implemenation of Gain Adjusted Bit-Loading(GABL) % def_tfplan.fixBitrate.name = 'GABL_MA'; %% =========================================================================== % ADSL2 (G.992.3) Annex J - EC/FDD ADL namelist = [32:4:60 63]; Table16 = [153.38 157.50 192.45 -38.0 -55.0 -60.0 ;... 171.39 176.46 208.13 -38.5 -55.5 -60.5 ;... 189.31 195.55 224.87 -39.0 -56.0 -61.0 ;... 207.16 214.87 242.51 -39.4 -56.4 -61.4 ;... 224.96 234.56 260.90 -39.8 -56.8 -61.8 ;... 242.70 254.84 280.25 -40.1 -57.1 -62.1 ;... 260.40 276.14 300.85 -40.4 -57.4 -62.4 ;... 278.05 299.30 323.55 -40.7 -57.7 -62.7 ;... 291.09 321.28 345.04 -41.0 -58.0 -63.0 ]; variants = namelist; % [32 48 63]; for variant = variants vix = find(variant==namelist); f1 = variant*df; f2 = Table16(vix,1)*1e3; f3 = Table16(vix,2)*1e3; f4 = Table16(vix,3)*1e3; psd1 = Table16(vix,4); psd2 = Table16(vix,5); psd3 = Table16(vix,6); tmp_tfplan=def_tfplan; tmp_tfplan.name=sprintf('ETSI-ADSL2-AnnexJ-N%d',variant); k1=1; k2=variant; k3=64; k4=255; tableUS = [ [ 1 -50]; [ 1.5e3 -50]; [ 3e3 psd1 ]; [ f1 psd1 ]; [ f2 psd2 ]; [ f3 psd3 ]; [ f4 -97.8 ]; [ 686e3 -100 ]; [ 1411e3 -100 ]; [ 1630e3 -110 ]; [ 5275e3 -112 ]; [ 30e6 -112 ]; ]; tableDS = [ [ 1 -90]; [ 53.5*df -90]; [ 63.0*df -52]; [ 63.5*df -40 ]; [ 256*df -40 ]; [ 1.25e6 -45 ]; [ 1.5e6 -70]; [ 2.1e6 -90]; [ 3093e3 -90 ]; [ 4545e3 -112 ]; [ 30e6 -112 ]; ]; tabstr=num2str(reshape([tableUS(:,1),tableUS(:,2)]',1,numel(tableUS))); tmp_tfplan.PSD.upstream =sprintf('calcPSD([%s ],''Log-Linear'',ex.param.frequency.f)',tabstr); tabstr=num2str(reshape([tableDS(:,1),tableDS(:,2)]',1,numel(tableDS))); tmp_tfplan.PSD.downstream =sprintf('calcPSD([%s ],''Log-Linear'',ex.param.frequency.f)',tabstr); tmp_tfplan.lcname=tmp_tfplan.name; tmp_tfplan.PSD.active.upstream =[(k1-0.5)*df (k2+0.5)*df]; tmp_tfplan.PSD.active.downstream=[(k3-0.5)*df (k4+0.5)*df]; tfplist=insertList(tfplist,tmp_tfplan); end % variants %% =========================================================================== % ADSL2 (G.992.3) Annex M - FDD "ADL over POTS" namelist = [32:4:60 63]; Table18 = [153.38 157.50 192.45 -38.0 -55.0 -60.0 ;... 171.39 176.46 208.13 -38.5 -55.5 -60.5 ;... 189.31 195.55 224.87 -39.0 -56.0 -61.0 ;... 207.16 214.87 242.51 -39.4 -56.4 -61.4 ;... 224.96 234.56 260.90 -39.8 -56.8 -61.8 ;... 242.70 254.84 280.25 -40.1 -57.1 -62.1 ;... 260.40 276.14 300.85 -40.4 -57.4 -62.4 ;... 278.05 299.30 323.55 -40.7 -57.7 -62.7 ;... 291.09 321.28 345.04 -41.0 -58.0 -63.0 ]; variants = namelist; % [32 48 63]; for variant = variants vix = find(variant==namelist); f1 = variant*df; f2 = Table16(vix,1)*1e3; f3 = Table16(vix,2)*1e3; f4 = Table16(vix,3)*1e3; psd1 = Table16(vix,4); psd2 = Table16(vix,5); psd3 = Table16(vix,6); tmp_tfplan=def_tfplan; tmp_tfplan.name=sprintf('ETSI-ADSL2-AnnexM-N%d',variant); k1=7; k2=variant; k3=64; k4=255; tableUS = [ [ 1 -101]; [ 3990 -101]; [ 4e3 -96]; [ 6.5*df psd1 ]; [ f1 psd1 ]; [ f2 psd2 ]; [ f3 psd3 ]; [ f4 -97.8 ]; [ 686e3 -100 ]; [ 1411e3 -100 ]; [ 1630e3 -110 ]; [ 5275e3 -112 ]; [ 30e6 -112 ]; ]; tableDS = [ [ 1 -90]; [ 53.5*df -90]; [ 63.0*df -52]; [ 63.5*df -40 ]; [ 256*df -40 ]; [ 1.25e6 -45 ]; [ 1.5e6 -70]; [ 2.1e6 -90]; [ 3093e3 -90 ]; [ 4545e3 -112 ]; [ 30e6 -112 ]; ]; tabstr=num2str(reshape([tableUS(:,1),tableUS(:,2)]',1,numel(tableUS))); tmp_tfplan.PSD.upstream =sprintf('calcPSD([%s ],''Log-Linear'',ex.param.frequency.f)',tabstr); tabstr=num2str(reshape([tableDS(:,1),tableDS(:,2)]',1,numel(tableDS))); tmp_tfplan.PSD.downstream =sprintf('calcPSD([%s ],''Log-Linear'',ex.param.frequency.f)',tabstr); tmp_tfplan.lcname=tmp_tfplan.name; tmp_tfplan.PSD.active.upstream =[(k1-0.5)*df (k2+0.5)*df]; tmp_tfplan.PSD.active.downstream=[(k3-0.5)*df (k4+0.5)*df]; tfplist=insertList(tfplist,tmp_tfplan); end % variants