FSAN xDSL simulation tool

Background

At the Boston meeting (October 7 - 8, 1998), FSAN discussed producing and providing a simulation tool for evaluating different network topologies, duplexing strategies, spectrum plans, noise models, etc. It was agreed that Telia would take the responsibility of the implementation of the simulation tool in close cooperation with the other members of the FSAN group. This package is the result of this effort.

Objectives

The evaluation of VDSL capacity is a complicated and lengthy task. This is especially true for scenarios where the SNR is different at both ends of the lines and in topologies where power boost and power back-off are to be applied. When so many parameters can be varied, it is important to have a common understanding of the simulation environment. FSAN has discussed creating and using a common simulation tool that would include noise models, the FSAN noise combination method, power back-off methods, power boost, etc. The performance of VDSL as well as its impact on existing services (in particular ADSL, which is FEXT limited) should be evaluated.

Many of the above-mentioned features of the simulation tool have already been developed. FSAN has done ground-breaking work in defining noise models describing both FTTCab and FTTEx scenarios with various disturbers, a noise combination method, and network topologies describing potential real-world cases. These are all straightforward to use in simulations.

The objective of the simulation tool is to concentrate the FSAN results into one simulation package to facilitate evaluation of VDSL proposals and scenarios.

Description of the simulation tool

The simulation software is written in Matlab (version 5 or later without any extra toolboxes). This is the most commonly used tool among companies for simulations of this type.

This is the first public release of the simulation tool. Still, we think the tool could be useful as is and hope to get a lot of useful comments from you who are using this tool.

Installing the tool

Just by unpacking this tool you should be set. All the matlab code is in the src directory.

Running the tool

To run this tool on unix:

Change the directory to the src directory and start Matlab
        cd fsansimu/src
        matlab

To run on PC:

Start matlab
Select menu File->Set path and set it to the src directory
Type/run "startup" (or uiMain,Main,ExMain)

Using the tool

The input to the simulation is either a text-file with straight forward matlab code. For most FSAN simulations a graphical user interface have been developed. A large number of input parameters is easily changeable to allow many variations of the FSAN scenarios to be simulated. These parameters include network topology, spectrum allocation plan, and transmit PSD. The next section contains a description of the input parameters. Following that is a description on the output of the simulations. Typical results include: capacity, resulting ratio, and impact on ADSL. One assumption is that all line-codes transport the same number of bits per Hz for a given SNR.

The simulation is outlined as

There are three different main routines which run a full simulation: By default (as startup.m) is uiMain called, that is, when matlab is started in the src directory one directly gets into the tools graphical user interface.

Input parameters

The basic set of input parameters can best be described by looking at the GUI setup window

With a menu selection one can select a scenario among a set of FSAN predefined scenarios. The topology and traffic setup for this scenario is shown as a sub-figure below the setup section. Secondly it is possible to select if a pre defined FSAN noise model should be used or if it should be calculated from the scenario itself.  The third menu makes the selection of VDSL modem/duplex method. The PSD mask for this modem is shown in a sub-figure below the setup section.

Connected the the VDSL duplex is the power back off (PBO) method. Currently there is four methods defined: reference length (RefLen), reference FEXT (RefFEXT), reference Noise (RefNoise) and reference frequency (RefFreq). If no PBO is wanted a "None" is selected in the PBO method menu. The PBO parameter is either a length (for RefLen or RefFEXT) or a frequency (for RefFreq). For the RefFreq method a maximum length can be given. Also connected with a duplex method is an efficiency loss  figure where efficiency losses due to cyclic prefix/suffix, guard bands etc. can be stated.

For time division duplex methods a time division can be given for up respectively down stream (for frequency division methods this is given as 1 and 1).

There is three flags that can be set.

Among the global parameters one can enter new values for


With the button "GO" the experiment is evaluated and a result window will appear. With "Close all" all windows will be closed (including the setup window).
 

Advanced Input Parameters

Param

Using the text based parameter setup we can access all the parameters in the simulation. The global parameters is found in the structure ex.param and corresponds to the parameters in the previous section. A default setup is done in setupParam.m by making a call like
ex.param = setupParam('VDSL-FDD');

TFPlist

A list of all time and frequency plans must be set up. This is simplest done in setupTFplan.m by making a call as
ex.tfplist = setupTFplan;
Each entry in this list is tfplan containing the following fields:
name
The modem name
(VDSL modem must start with VDSL and ADSL modem with ADSL)
downstream
upstream
PSD mask definition string, that is, any function/vector is possible.
active.upstream
active.downstream
Vector containing min and max active frequencies
timeDivision.up
timeDivision.down
Time used in up resp. down link
PBOmethod
Power back-off method (rl=reference length, rf=reference frequency, -=none)
PBOparam
PBO parameter {length(m) or frequency(Hz)}
efficiencyLoss
Efficiency loss due to cyclic prefix/suffix, guard bands etc.


Thus, to add our own VDSL modem (cf. userDefinitionsExample1.m) we do something like:

% Add our own VDSL definition
tmp_tfplan=getList(ex.tfplist,ex.param.HambandName); % initiate tmp_tfplan
tmp_tfplan.name='VDSL-XXX';
% PSD masks
tmp_tfplan.downstream ='calcPSD([.3e6 -160 .3e6 -60 3.5e6 -60 3.5e6 -160],''Linear'')';
tmp_tfplan.upstream   ='calcPSD([3.5e6 -160 3.5e6 -60 10e6 -60 10e6 -160],''Linear'')';
tmp_tfplan.timeDivision.up=1;           % Time used in up resp. down link
tmp_tfplan.timeDivision.down=1;
tmp_tfplan.PBOmethod='RefFreq';         % Power back-off method
tmp_tfplan.PBOparam=2e6;                % PBO parameter {length(m) or frequency(Hz)}
tmp_tfplan.efficiencyLoss=0;
tmp_tfplan.active.upstream=[0.3e6 10e6];
tmp_tfplan.active.downstream=[0.3e6 10e6];
ex.tfplist=insertList(ex.tfplist,tmp_tfplan);

TT/Scenario

The scenario is described in the structure tt (topology and traffic). Available scenarions are stored in ttlist and default ones are defined in setupTTstructure.m and are set up by:
ex.ttlist = setupTTstructure;
The tt structure consist of four fields:
name
The name of the scenario.
topology
A vector of cell arrays where each cell array defines
{distance (meters), cable name, node name, line name or comment}
dm
A list of disturbed modems to evaluate.
This field is set in evalExperiment depending on
ex.param.testVDSL and ex.param.testADSL
traffic
A vector of cell arrays where each cell array defines
{from node (refering to topology), to noderefering to topology), tfplan, no modems}
Thus, to use our own scenario we write, for example (cf. userDefinitionsExample1.m)
% Use our own scenario
tt.name=scenario;
tt.topology=[
    {0  '' 'CO' ''};
    {500  'DTAG04' 'N1' ''};            % Distance, Cable, Node name, Line name
    {500  'DTAG04' 'N2' ''};
    {500  'DTAG04' 'N3' ''};
    {1500 'DTAG04' 'C'  ''};
    {500  'DTAG04' 'N4' ''};
    ];
tt.dm=[1 2 3 4];                        % Distrubed modems
tt.traffic=[
    {1 2 'VDSL' 3};                     % From node, to node, tfplan, no modems
    {1 2 'ADSL' 4};
    {1 3 'VDSL' 4};
    {1 4 'ISDN-2B1Q' 3};
    {1 4 'ADSL' 1};
    {1 5 'HDSL-1' 3};
    {5 6 'VDSL' 3};
    {5 6 'ADSL' 4};
    ];
ex.ttlist=insertList(ex.ttlist,tt);     % Insert into list (used for GUI)
ex.tt=tt;                               % Define the experiment tt structure

User definitions

To be able to use new tt scenarios and new tf plans in the grapical user interface the user should make any additions in the file userDefinitions.m which is evaluated before the uiSetup is run.

To exemplify what can be made look at the following examples:

Output

The basic result from evalExperiment.m is a result structure consisting of an array with a set of vectors:
 
result(i).Modem
result(i).NT.Rx_signal
result(i).NT.Tx_signal
result(i).NT.Tot_noise.up
result(i).NT.Tot_noise.down
result(i).NT.Alien_noise
result(i).LT.Rx_signal
result(i).LT.Tx_signal
result(i).LT.Tot_noise.up
result(i).LT.Tot_noise.down
result(i).LT.Alien_noise
for each modem i in the disturbed modem list (VDSL and or ADSL modems). There is 3 sub structs  Modem, NT and LT. For both the NT and the LT side there are 4 different sub structures Rx_signal, Tx_signal, Tot_noise, Alien_noise.         Note! there is no background noise in the Alien_noise


By calling calcFSANresult with this result structure we get the bit rates for each modem, e.g.,

[Rate_LT, Rate_NT, Rate_LT_bg, Rate_NT_bg]=calcFSANresult(ex,result);
Here the Rate_LT and Rate_NT is the rates at the LT respectively NT with VDSL, while Rate_LT_bg and Rate_NT_bg gives the rates without VDSL crosstalk, i.e., they can be used to calculate the influence on ADSL modems.

Graphical Output

If the graphical user interface is used one gets a result window (example) containing the rate information as well as figures showing the LT respectively NT side signals and noise curves. At this point we can change the following two parameters to get new bit-rate values (without doing the full simulation) The middle section of the result window contains bit rate information for each of the modems under test. For the down and up (stream) rates the figurs within parethesis are without VDSL disturbers, that is, one can see the VDSL influence on ADSL.

In the menu at the to left corner of the plots it is possible to select plots from any of the simulated modems. With the PlotIt button the plot is redrawn in a seperate window, thus allowing for further manupulation, e.g., zooming. A logarithmic frequency axis is possible by selecting 'Log' in the menu near f axis type.

For the plots in the result window:

Examples

We have made a full experiment on power back off available as ExPBO.m.

References

FSAN - Full Service Access Network Initiative web page, VDSL initiative

FSAN VDSL working group VDSL scenarios for vendor simulations, 1998

Heron et.al. Proposal for crosstalk combination method, T1E1.4/98-328 Plano TX, USA, 1998

Heron et.al. Generator-based noise models for VDSL, T1E1.4/99-122 Costa Mesa, CA. ,March 8-12, 1999

ITU Amateur and Amateur-satellite service Frequency Allocations Table - HF Bands

ETSI Technical Specification TS 101 270-1 V1.1.1 (1998-04), Transmission and Multiplexing (TM); Access transmission systems on metallic access cables; Very high speed Digital Subscriber Line (VDSL); Part 1: Functional requirements.

Very-high-speed Digital Subscriber Lines - System Requirements Draft Technical Document (T1E1.4/98-043R6)
 

Licence

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version.

When referring to this simulator (FSAN xDSL simulator) no modification of any matlab code besides userDefinitions and Main routines shall be done. That is, no routines in the xdslcomm directory should be changed. When referring to simulations done with this simulator the userDefinitions and Main files must be made available upon request to anyone asking for them. That is, anyone should be able replicate any simulations referring to this simulator by putting the userDefinitions and Main files into their simulator and redo the experiments for them-self.
 

Disclaimer

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details (in file COPYING, or http://www.opensource.org/gpl-license.html)

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

The numerical assumptions in this tool are based on assumptions in published ETSI and ANSI standards, and the few measurements that have been performed. Due to the random and large variations in behaviour of these networks, it can not be guaranteed that these assumptions are realistic for real access networks.
 

Contact

Telia will serve as support for the tool and will release bugfixes and minor revisions of the tool as FSAN and Telia finds it appropriate. However, major updates/revisions of the tool can not be guaranteed.

Comments can be sent to:
fsansimulator@lulea.trab.se

Happy simulation, wishes the main authors:
Tomas Nordstrom (Tomas.B.Nordstrom@Telia.se)
Daniel Bengtsson (Daniel.J.Bengtsson@Telia.se)
 

Telia Research AB
Aurorum 6
S-97775 Luleå
Sweden