function lcPrintSDSL(lc); %% =========================================================================== %lcPrintSDSL - Print the lincode description structure for SDSL % % Parameter: lc Line code structure to print % % Reference: % FTW's xDSLsimu manual %% =========================================================================== %% =========================================================================== % Copyright (C) 2000-2004 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % Project : FTW's xDSLsimu % Author(s) : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % %% =========================================================================== % Change History % 2000-06-27 (ToNo) Created % 2000-07-13 (GS) Extensions to cover also asymmetric SDSL % 2003-12-18 (ToNo) Tmp removal of filter printout (as it is not working) %% =========================================================================== fprintf('Line code name: %s\n',lc.name); fprintf('Required SNR = %gdB, coding gain=%gdB, loss=%gdB\n',... lc.param.reqSNR,... lc.param.codingGain,... lc.param.SNRloss); fprintf('xtalk_margin=%gdB, signal_margin=%gdB\n',... lc.param.xtalk_margin,... lc.param.signal_margin); fprintf('SNRmax=%gdB\n',... lc.param.SNRMax); if strcmp(lc.name,'SDSL-sym') index=find(lc.param.Px(1,:)<= lc.param.pam.brate.rate); fprintf('Maximum Power=%g dBm \n',lc.param.Px(2,index(end))); end if strcmp(lc.name,'SDSL-asym') index=find(lc.param.Px.up(1,:)<= lc.param.pam.brate.rate); fprintf('Maximum Power UP=%g dBm \n',lc.param.Px.up(2,index(end))); index=find(lc.param.Px.dn(1,:)<= lc.param.pam.brate.rate); fprintf('Maximum Power DN=%g dBm \n',lc.param.Px.dn(2,index(end))); end fprintf('BitRate=%gkbit, overhead=%gkbit, %d bits/symbol\n',... lc.param.pam.brate.rate/1e3,... lc.param.pam.brate.ohead/1e3,... lc.param.pam.bpsym); fprintf(' => fsym=%gkHz\n',... (lc.param.pam.brate.rate+lc.param.pam.brate.ohead)/lc.param.pam.bpsym/1e3); fprintf('Efficiency Loss = %2.2f%%\n',... lc.param.efficiencyLoss*100); if 0, % FIXME - Tmp remove as the printout of filterorder is not correct fprintf('Filter info Tx:\n'); fprintf(' order:%g, ratio=%g, lower cutoff frequency=%gkHz\n',... lc.param.pam.filterorder,... lc.param.pam.filterratio,... lc.param.pam.highpass3dBf/1e3); end; if strcmp(lc.name,'SDSL-sym') index=find(lc.param.pam.k(1,:)<= lc.param.pam.brate.rate); fprintf(' Ksdsl = %4g [%5g kbit/s - %5g kbit/s]\n', ... lc.param.pam.k(2,index(end)),... lc.param.pam.k(1,index(end))/1e3,lc.param.pam.k(1,index(end)+1)/1e3); end if strcmp(lc.name,'SDSL-asym') if lc.param.pam.brate.rate < 2048e3 index=find(lc.param.pam.k.up(1,:)<= lc.param.pam.brate.rate); fprintf(' Ksdsl-UP = %4g [%5g kbit/s - %5g kbit/s]\n', ... lc.param.pam.k.up(2,index(end)),... lc.param.pam.k.up(1,index(end))/1e3,lc.param.pam.k.up(1,index(end)+1)/1e3); index=find(lc.param.pam.k.dn(1,:)<= lc.param.pam.brate.rate); fprintf(' Ksdsl-DN = %4g [%5g kbit/s - %5g kbit/s]\n', ... lc.param.pam.k.dn(2,index(end)),... lc.param.pam.k.dn(1,index(end))/1e3,lc.param.pam.k.dn(1,index(end)+1)/1e3); else index=find(lc.param.pam.k.up(1,:)<= lc.param.pam.brate.rate); fprintf(' Ksdsl-UP = %4g [%5g kbit/s]\n', ... lc.param.pam.k.up(2,index(end)),... lc.param.pam.k.up(1,index(end))/1e3); index=find(lc.param.pam.k.dn(1,:)<= lc.param.pam.brate.rate); fprintf(' Ksdsl-DN = %4g [%5g kbit/s]\n', ... lc.param.pam.k.dn(2,index(end)),... lc.param.pam.k.dn(1,index(end))/1e3); end end