function ttlist = etsi_loopsADSL(ttlist,len,selfdisturbers,namestr); %% =========================================================================== % etsi_loopsADSL - Define the ETSI ADSL testloops % % Parameter: ttlist List to insert the testloops % len Length for loop 1 to 8 % selfdisturbers Number of self disturbers in the loop % namestr Name string extension % Returns: ttlist List with inserted the testloops % % Example(s): % % Algorithmic details: % % Reference: % ETSI STC TM6 Draft TS 101 388 v1.2.1 (ADSL), 980p12a8, 2001-03 % ETSI STC TM6 Draft RTS/TM-06006 rev 10a (ADSL), 2001-05 %% =========================================================================== %% =========================================================================== % Copyright (C): % 2001-2002 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : B1, FTW, ADSL simulations % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % % CVS: $Id: etsi_loopsADSL.m,v 1.2 2002/01/25 12:16:17 tono Exp $ %% =========================================================================== % Change History % 2001-07-03 (ToNo) Created % 2001-07-05 (ToNo) Added support for same pair ISDN % 2002-01-11 (ToNo) Moved support for same pair ISDN to another place % 2002-01-11 (ToNo) Now uses parametric models for the cables %% =========================================================================== if nargin<2, len=1000; end if nargin<3, % For ADSL the self disturbers are included in the noise masks! selfdisturbers = 0; end nomodems = selfdisturbers+1; if nargin<4, namestr=''; end if length(len) == 1 len=len.*ones(1,8); end % The lengths predifined in the loop defs offsetlen=[0 0 1500 2200 1750 1750 4200 1100]; len=len-offsetlen; len(find(len<0))=0; %% =========================================================================== % Loop #0 connects the transceivers back-to-back. This loop mainly % stresses the analogue front end (AFE) and the dynamic range of % the digital processing. tt.name= sprintf('ETSI-ADSL-Loop0%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {2 'ETSI-ADSL-PE04m' 'NT' '0km'}; ]; tt.traffic=[ {1 2 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #1 is a single straight 0.4 wire that represents typical %deployment scenarios. When the length of the loop is set to %maximum reach this loops stresses the ADSL equipment similar to %typical deployment. tt.name= sprintf('ETSI-ADSL-Loop1%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {len(1) 'ETSI-ADSL-PE04m' 'NT' sprintf('%.0fm ->',len(1))}; ]; tt.traffic=[ {1 2 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #2 is a single straight 0.5 wire that represents typical %deployment scenarios. When the length of the loop is set to %maximum reach this loops stresses the ADSL equipment similar to %typical deployment. tt.name= sprintf('ETSI-ADSL-Loop2%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {len(2) 'ETSI-ADSL-PE05m' 'NT' sprintf('%.0fm ->',len(2))}; ]; tt.traffic=[ {1 2 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #3 consists of two segments of wires with different %diameter that represents typical deployment scenarios. %When the length of the loop is set to maximum reach (-1.5km) %this loops stresses the ADSL equipment similar to %typical deployment. seglens=[len(3) 1500]; tt.name= sprintf('ETSI-ADSL-Loop3%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {seglens(1) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(1))}; {seglens(2) 'ETSI-ADSL-PE05m' 'NT' sprintf('%.0fm ->',seglens(2))}; ]; tt.traffic=[ {1 3 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #4 consists of four segments of wires with different diameter. seglens=[200 len(4) 1500 500]; tt.name= sprintf('ETSI-ADSL-Loop4%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {seglens(1) 'ETSI-ADSL-PE032m' '' sprintf('%.0fm ->',seglens(1))}; {seglens(2) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(2))}; {seglens(3) 'ETSI-ADSL-PE05m' '' sprintf('%.0fm ->',seglens(3))}; {seglens(4) 'ETSI-ADSL-PE063m' 'NT' sprintf('%.0fm ->',seglens(4))}; ]; tt.traffic=[ {1 5 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #5 consist of four segments of wires with different diameter. seglens=[len(5) 750 500 500]; tt.name= sprintf('ETSI-ADSL-Loop5%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {seglens(1) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(1))}; {seglens(2) 'ETSI-ADSL-PE05m' '' sprintf('%.0fm ->',seglens(2))}; {seglens(3) 'ETSI-ADSL-PE063m' '' sprintf('%.0fm ->',seglens(3))}; {seglens(4) 'ETSI-ADSL-PE09m' 'NT' sprintf('%.0fm ->',seglens(4))}; ]; tt.traffic=[ {1 5 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #6 consist of three segments with different diameter. seglens=[len(6) 1250 500]; tt.name= sprintf('ETSI-ADSL-Loop6%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {seglens(1) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(1))}; {seglens(2) 'ETSI-ADSL-PE05m' '' sprintf('%.0fm ->',seglens(2))}; {seglens(3) 'ETSI-ADSL-PE063m' 'NT' sprintf('%.0fm ->',seglens(3))}; ]; tt.traffic=[ {1 4 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #7 consist of three segments with different diameter. seglens=[200 len(7) 4000]; tt.name= sprintf('ETSI-ADSL-Loop7%s',namestr); tt.topology=[ {0 '' 'CO' ''}; {seglens(1) 'ETSI-ADSL-PE032m' '' sprintf('%.0fm ->',seglens(1))}; {seglens(2) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(2))}; {seglens(3) 'ETSI-ADSL-PE09m' 'NT' sprintf('%.0fm ->',seglens(3))}; ]; tt.traffic=[ {1 4 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #8 is the only test loop with bridge taps. The bridge taps %put spectral nulls in the insertion loss and ripples in the line %impedance. The impedance at the LT side is very low while the %impedance at the NT side is close to 135Ohm. Testing with the line %in the upstream direction will stress equipment more than testing %in the downstream direction. seglens=[len(8) 1100]; tt.name= sprintf('ETSI-ADSL-Loop8%s',namestr); tt.topology=[ {0 '' 'CO' '' ... 0 '' '' ''}; {seglens(1) 'ETSI-ADSL-PE04m' '' sprintf('%.0fm ->',seglens(1))... 500 'ETSI-ADSL-PE04m' 'BT' '500m (ETSI-ADSL-PE04m)'}; {seglens(2) 'ETSI-ADSL-PE04m' 'NT' sprintf('%.0fm ->',seglens(2))... 500 'ETSI-ADSL-PE04m' 'BT' '500m (ETSI-ADSL-PE04m)'}; ]; tt.traffic=[ {1 3 'ADSL' nomodems}; ]; ttlist=insertList(ttlist,tt);