function ttlist = etsi_loopsSDSL(ttlist,len,selfdisturbers,namestr) %% =========================================================================== % etsi_loopsSDSL - Define the ETSI SDSL 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 Permanent document TM6(98)10 (DTS/TM-06018), 980p10a3 % ETSI STC TM6 Helsinki 2000, WD22R3 & WD19R3, 002t22a0 %% =========================================================================== %% =========================================================================== % Copyright (C): % 2000-2009 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : FTW's xDSLsimu % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % Driton Statovci % : Petr Kadlec (kadlec@ftw.at) % % CVS: $Id: etsi_loopsSDSL.m 752 2009-01-02 13:03:52Z tono $ %% =========================================================================== % Change History % 2000-06-19 (ToNo) Created % 2000-07-17 (ToNo) Added header, ETSI TM6 002t22a comments % 2000-10-25 (GS) Made it usable for scalar len input argument % 2000-11-08 (ToNo) Changed format for distances % 2001-05-05 (DS) Swapped CO/NT side as now defined in the standard % 2001-10-18 (ToNo) Ported to Octave % 2002-03-18 (ToNo) Renamed the SDSL cables % 2003-11-03 (ToNo) Lists now use cell arrays for both Octave and Matlab %% =========================================================================== if nargin<3, selfdisturbers = 49; % 89 for noise A, 49 for D, and 15 for B and C end nomodems = selfdisturbers+1; if nargin<4, namestr=''; end if length(len) == 7, len(8) = len(4); end; if length(len) == 1 len=len.*ones(1,8); end %% =========================================================================== % Loop #1 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('SDSL-Loop1%s',namestr); tt.topology={... {0, '', 'CO', ''}, ... {len(1), 'ETSI-SDSL-PE04', 'NT', sprintf('%.0fm ->',len(1))}... }; tt.traffic={... {1, 2, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #2 is a single straight wire that represents typical %deployment scenarios. When the length of the loop is set to %maximum reach this loops stresses the SDSL equipment similar to %typical deployment. tt.name= sprintf('SDSL-Loop2%s',namestr); tt.topology={... {0, '', 'CO', ''},... {len(2), 'ETSI-SDSL-PE04', 'NT', sprintf('%.0fm ->',len(2))}... }; tt.traffic={... {1, 2, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #3 consists of four segments of wires of different %diameter. As a result the loop has ripples in its input impedance %and mainly stresses the echo canceller (EC). This loop has similar %impedance characteristics in both upstream and downstream %directions. seglens=[.1834 .3466 .2866 .1834].*len(3); tt.name= sprintf('SDSL-Loop3%s',namestr); tt.topology={... {0, '', 'CO', ''},... {seglens(1), 'ETSI-SDSL-PE04', '', sprintf('%.0fm ->',seglens(1))},... {seglens(2), 'ETSI-SDSL-PE05', '', sprintf('%.0fm ->',seglens(2))},... {seglens(3), 'ETSI-SDSL-PE06', '', sprintf('%.0fm ->',seglens(3))},... {seglens(4), 'ETSI-SDSL-PE04', 'NT', sprintf('%.0fm ->',seglens(4))}... }; tt.traffic={... {1, 5, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #4 consists of three segments of wires with different %diameter. Note that it is the same loop as Loop #8, but reversed in %transmission direction. At the NT end of this loop the impedance %is above 150Ohm so the NT end of this loop stresses the behaviour %of transceivers with high impedance loops. The loop impedance on %the LT side of Loop #4 is not as interesting and theoretically the %transfer function is the same in both directions. It is, therefore, more %interesting to test this in the downstream direction (receiver %under test connected to the NT end), that is, Loop #8. seglens=[.3466 .3668 .2866].*len(4); tt.name= sprintf('SDSL-Loop4%s',namestr); tt.topology={... {0, '', 'CO', ''},... {seglens(1), 'ETSI-SDSL-PE05', '', sprintf('%.0fm ->',seglens(1))},... {seglens(2), 'ETSI-SDSL-PE04', '', sprintf('%.0fm ->',seglens(2))},... {seglens(3), 'ETSI-SDSL-PE06', 'NT', sprintf('%.0fm ->',seglens(3))}... }; tt.traffic={... {1, 4, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #5 consist of three wire segments where the middle segment %has different characteristics from the end segments. This loop has %low input impedance and mainly stresses the AFE and the EC. This %loop stresses SDSL equipment in similar ways to Loop #7. seglens=[100 len(5)-200 100]; tt.name= sprintf('SDSL-Loop5%s',namestr); tt.topology={... {0, '', 'CO', ''},... {seglens(1), 'ETSI-SDSL-PVC04', '', sprintf('%.0fm ->',seglens(1))},... {seglens(2), 'ETSI-SDSL-PE08', '', sprintf('%.0fm ->',seglens(2))},... {seglens(3), 'ETSI-SDSL-PVC04', 'NT', sprintf('%.0fm ->',seglens(3))}... }; tt.traffic={... {1, 4, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #6 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=[.7143 .2857].*len(6); tt.name= sprintf('SDSL-Loop6%s',namestr); tt.topology={... {0, '', 'CO', '', ... 0, '', '', ''},... {seglens(1), 'ETSI-SDSL-PE04', '', sprintf('%.0fm ->',seglens(1)),... 500, 'ETSI-SDSL-PE04', 'BT', '500m (PE04)'},... {seglens(2), 'ETSI-SDSL-PE04', 'NT', sprintf('%.0fm ->',seglens(2)),... 500, 'ETSI-SDSL-PE04', 'BT', '500m (PE04)'}... }; tt.traffic={... {1, 3, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #7 consists of three wire segments of different diameter. The %line has low input impedance and on the LT side the impedance has %much more ripples than the NT side, so the LT side is more likely %to stress the EC. seglens=[50 .6135*(len(7)-350) .3865*(len(7)-350) 300]; tt.name= sprintf('SDSL-Loop7%s',namestr); tt.topology={... {0, '', 'CO', ''},... {seglens(1), 'ETSI-SDSL-PVC032', '', sprintf('%.0fm ->',seglens(1))},... {seglens(2), 'ETSI-SDSL-PE04', '', sprintf('%.0fm ->',seglens(2))},... {seglens(3), 'ETSI-SDSL-PE05', '', sprintf('%.0fm ->',seglens(3))},... {seglens(4), 'ETSI-SDSL-PVC062', 'NT', sprintf('%.0fm ->',seglens(4))}... }; tt.traffic={... {1, 5, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt); %% =========================================================================== %Loop #8 consists of three segments of wires with different %diameter. It is the same loop as Loop #4, but reversed in %transmission direction. %At the LT end of this loop the impedance is above 150Ohm %so the LT end of this loop stresses the behaviour of transceivers %with high impedance loops. The loop impedance on the NT side of %Loop #8 is not as interesting and theoretically the transfer %function is the same in both directions. It is, therefore, more %interesting to test this loop than Loop #4. seglens=[.2866 .3668 .3466 ].*len(8); tt.name= sprintf('SDSL-Loop8%s',namestr); tt.topology={... {0, '', 'CO', ''},... {seglens(1), 'ETSI-SDSL-PE06', '', sprintf('%.0fm ->',seglens(1))},... {seglens(2), 'ETSI-SDSL-PE04', '', sprintf('%.0fm ->',seglens(2))},... {seglens(3), 'ETSI-SDSL-PE05', 'NT', sprintf('%.0fm ->',seglens(3))}... }; tt.traffic={... {1, 4, 'SDSL', nomodems}... }; ttlist=insertList(ttlist,tt);