Welcome to

the xDSL simulator homepage!

About

Welcome to the (emergency) pages of the xDSL simulation tool. Since beginning of year 2000 FTW (Forschungszentrum Telekommunikation Wien) in Austria had supported this simulation tool and its development. However, after the closure of FTW by the end of 2015, the xDSLsimu have had no home. As the main developer of the simulator I decided to put up the latest version of the simulator onto my private webpage as a service to all users out there.

But a word of warning, unless I get payed for updating the simulater, I will unfortunately not have time to fix bugs or updating it to the latest standards.

The evaluation of technologies like ADSL, SDSL, and VDSL 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 with different cable models including bridge taps, and 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. With the xDSL simulation tool we hope that you will be able to simulate different xDSL technologies in relatively complex setup but still with relative ease.

News/History

2016-05-22 The xDSLsimu gets a permanent home at my private site. I have to start from an 2010 backup of the site, so there will be some missing information

2016-01-01 FTW closes its operation and there is no loger access to xdsl.ftw.at website or the xdslsimu internal svn repository.

2012-04-10 An internal version of the simulator was released: Version 3.2b2,

2008-03-10 After having a new version of the simulator in private beta for years I just decided to make it available to everyone: Version 3.1.

Now I hope I can work on the needed updates for the latest standards of ADSL2/2+ and VDSL2, and be able to release within months and not years. /Tomas Nordström

2003-12-23 A public beta version of the simulator: Version 3.0b1.

Older News...

To the simulator

Simulator documentation
Download Version 3.2b2
Old Versions

What is new in xDSLsimu version 3.2?

Improved support for VDSL2

However, with so many possible VDSL2 PSD templates it is not possible to add all directly into ex.tfplist with one command, instead one needs to add the templates one by one:

    % To load an ETSI VDSL2 template for '997-M2x-A (B7-5)/12a'
    maskdef.name = '997-M2x-A'; maskdef.profile = '12a';
    [tfplan,lcdef] = itu_tfplcVDSL2_AnnexB(maskdef);
    % Chance to modify the definitions before storing into the ex struct
    ex.tfplist = insertList(ex.tfplist,tfplan); 
    ex.lclist  = insertList(ex.lclist,lcdef);

To help using these new VDSL2 definitions we have added usage examples: examples/VDSL2

References:

Updates according to ETSI TR 101 830-2 V1.2.1

Addition of PSD mask definitions and reciever models according to Draft ETSI TR 101 830-2 V1.2.1 (2008-xx); pds:m06p06a02_SpM2_DR

Misc updates

Added support for return of actual true Tx PSD's from calcXDSLresult.m This is especially useful for evaluation of DMT systems and establishing what actual output PSD will result after water-filling or bitloading.

    [rateLT, rateNT, mLT, mNT, PSD_LT, PSD_NT]=calcXDSLresult(ex,result);
    Px_TUp=10*log10(trapz(f,PSD_LT.val))
    Px_TDown=10*log10(trapz(f,PSD_NT.val))
    plot(f,10*log10(result{1}.LT.Tx_signal),'r'); % PSD template
    hold on;
    plot(f,10*log10(PSD_LT.val),'b'); % PSD after bit-loading

Octave

The support for octave has been improved but version 3 of octave and octave-forge should be used. We have use octave-3.0.2 and octave-forge-20080831 for our testing.

What is new in xDSLsimu version 3.1?

As octave now support cell arrays we switched back to use 2D cell arrays in the definition of traffic and topologies.

We have moved around some files to make definitions appear in the xdsldefs directory instead of the xdslcomm directory.

Now you will find the following in xDSLsimu/src/xdsldefs:

Many new and updated definitions have appeared as we try to track ETSI spectrum management Part 2 document.

To support the ESP/2004 simulations we now also support definitions for Enhanced SDSL (G.SHDSL), ADSL2, and ADSL2plus. At this time we also have tried to indicate the standardization body in the PSD name as they tend to differ between standards.

However, updates for the latest ADSL2+ and VDSL2 masks and templates are still pending.

New xdslcomm routines:

New xdsldefs routines:

To prepare for usage of both upstream and downstream power back-off, places where PBO was used now uses UPBO.

getPBOmethods.m => getUPBOmethods.m

A new example has appeared which shows how the simulator can be used in spectrum management (SpM) work. This is code that was used for ETSI ESP/2004 work.

getTwoPortModel now returns R0 to support generation of time domain impulse responses for a simulated topology. Added support for f==0 in getABCD.m

Bug fixes

KNOWN ISSUES

In matlab version 7.0 (but not 6.5) the example GUI_VDSL have problems in that it is looping around updating some menu fields and uses 100% of the cpu.

http://www.mathworks.com/support/solutions/data/1-PM5XJ.html?solution=1-PM5XJ (link seems broken)
    Some users also experience display problems such as intermittent
    flashing, blinking and/or freezing of the popupmenu.

    This problem also occurs on Unix/Linux while running MATLAB with no JVM.

    We have verified that there is a bug in MATLAB 7.0 (R14) running on
    Unix/Linux/MacOS in the way that it handles popupmenu uicontrols.

What is new in xDSLsimu version 3.0?

This is a major overhaul of the simulator, where we now can run the simulator on both Matlab and Octave.

This means that in places where we used two-dimensional cell arrays things will change. This change will be especially visible in the definitions of traffic and topologies.

To support both matlab and Octave we now have two directories with tool specific files: src/matlab respectivily src/octave.

We renamed a lot of files to clearify what they do:

Please note that the ETSI term SDSL is used for the ITU technology G.hdsl!

We have split some xDSL definition files into DSL technology specific files:

We have added a VDSL performance calculation example

This example generates the VDSL performance numbers for ETSI VDSL part 1

We also renamed a variable

Some other new files are:

Note that we now stopped using cubic splines as they do not give consistent result in different versions of matlab as well as octave (compare to the 'cubic' vs 'v5cubic' mess we have in matlab version 6). Instead we use linear interpolation when interpolation is needed.

Update of DMT bit-loading routines

The original DMT bit-loading (water-filling) routine used in the simulator (a Rate Adaptive one) was doing rounding to get to integer constellation sizes. This, however, can lead to a case when to much power is sent into the line (not very much, but for some cases not correct). We have therefore implemented a new bit-loading algorithm based on J. Campello's work. In addition to rate adaptive we also have implemented a margin adaptive version of the bit-loading.

Which method to be used is controlled by tfplan.fixBitrate.name ('RBL', 'GABL_RA', and 'GABL_MA'). For the margin adaptive bit-loading one need to set target rates as: tfplan.fixBitrate.param.target_us tfplan.fixBitrate.param.target_ds

Which method to be used is controlled by tfplan.fixBitrate.name ('RBL', 'GABL_RA', and 'GABL_MA'). For the margin adaptive water-filling one need to set target rates:

Some other new things:

If ex.param.frequency.set is set to one evalExperiment will not try to establish a new frequency axis. This can speed up things if one have a large set of experiments to run that should share the frequency axis.

evalExperiment will not any longer do a check of the ex structure (checkEx) every time it is run. It is now up to the user to call it if the user wants to check the ex structure. Please note that at the moment the checkEx is not a very thorough test.

We also removed the MixedServices example

It was a to complicated experiment and after all changes to UPBO and VDSL masks/templates it was not longer possible to maintain this example.

KNOWN ISSUES

The octave tool is in a constant flux (especially regarding cell arrays) and therefore we have had difficulties to achieve full compatibility. however, at the moment we seems to be compatible with octave 2.1.50 together with octave-forge 2003.06.02.

The new UPBO (RefRef) for VDSL is not implemented in the GUI_VDSL example at the moment. And octave can not run GUI_VDSL at all.

What is new in xDSLsimu version 2.3.2?

This is mostly a bugfix version but there are also some speed enhancements implemented.

The key enhancements are:

We have also found and removed some bugs:

What is new in xDSLsimu version 2.3?

Much of the enhancements in this update goes into better support for ADSL simulations.

The key enhancements are:

New files/directories:

What was new in xDSLsimu version 2.2?

The simulator now contains full support for SDSL simulations with extensive examples and documentation.

New SDSL related files:

We have rewritten and extended the documentation:

We have also found and removed some bugs:

Know bugs

NaN results in Matlab version 6.5

There is a bug in Matlab 6.5 that is verified for both Windows and Linux. In src/xdslcomm/getTowPortModel.m on the line

R=1./((1./sqrt(sqrt(r0c.^4+ac.*f2))) + (1./sqrt(sqrt(r0s.^4+ as.*f2))));  )

the JIT (just in time) compiler gets confused and returns a NaN. Matlab has been contacted but no solution has been given yet.

The current workaround is to turn of JIT by giving the command:

feature accel off

before running the simulator.

GUI problem in Matlab version 6.0

There seems to be a problem with matlab 6.0.0 on windows (it works in Matlab version 5.x and in Matlab 6.0.0 on Linux) that makes the GUI part of the simulator do "Segmentation violation" in file xDSLsimu2.2\src\examples\GUI_VDSL\uiSetup.m

on line 98 ==> uicontrol('style','popupmenu','string', gui.scen, 'value',tmpval,...

Mathworks has been contacted but there seems to be no solution at the moment. We think it is related to Matlab bug 24773.

Please note that any part of the simulator that do not use the uicontrol function (i.e., all but GUI_VDSL) still works as intended.


Last modified 2016-05-22 by