function [Rate_LT, Rate_NT, Margin_LT, Margin_NT]=calcXDSLresult(ex,result); %% =========================================================================== %calcXDSLresult - Calculate all disturbed modem bitrates % % Parameter: ex The experiment parameters % Parameter: result The experiment result structure % % Returns: Rate_LT Resulting bitrates at LT side (in Mbit) % Returns: Rate_NT Resulting bitrates at NT side (in Mbit) % Returns: Margin_LT Resulting margin SNR at LT side (in dB) % Returns: Margin_NT Resulting margin SNR at NT side (in dB) % % % Example(s): % result = evalExperiment; % [bitrate_LT, bitrate_NT, Margin_LT, Margin_NT]=calcXDSLresult(ex,result); % % Algorithmic details: % % Reference: %% =========================================================================== %% =========================================================================== % Copyright (C): % 1998-2000 by Telia Research AB, Lulea, Sweden; % 2000-2003 by Forschungszentrum Telekommunikation Wien, Austria; % All rights reserved. % % Project : FTW's xDSLsimu % Author(s) : Daniel Bengtsson (Daniel.J.Bengtsson@Telia.se) % : Tomas Nordstrom (Tomas.Nordstrom@FTW.at) % : Bo Engstrom (bosse@upzide.com) % : Petr Kadlec (kadlec@ftw.at) % % CVS: $Id: calcXDSLresult.m,v 3.3 2003/11/03 12:33:22 tono Exp $ %% =========================================================================== % Change History % 1998-11-09 (DaB) Created % 1998-12-15 (ToNo) Added header and comments % 1998-12-17 (ToNo) Split out plotting % 1999-01-07 (DaB) Added rate without xtalk-noise % 1999-02-25 (ToNo) Generlized list (tfplist) handling % 1999-03-01 (DaB) Upadated to correct addition bug % 1999-03-03 (DaB) Renamed bg to Alien % 1999-03-11 (DaB) Added background noise to Alien noise % 1999-03-15 (DaB) Renamed Alien back to bg % 1999-08-12 (DaB) new efficiencyLoss structure to allow % different for ADSL % 1999-08-19 (DaB) Updated for new tfplan struct % 1999-08-19 (DaB) New output structure % 1999-09-30 (DaB) Rewritten for new ex struct % 2000-04-06 (UvAn) Rewritten according to new parameters % for calcResultXXX % 2001-06-20 (Bosse) Octave port % 2002-07-02 (Peka) Octave to Matlab port % 2003-11-03 (ToNo) Lists now use cell arrays for both Octave and Matlab %% =========================================================================== % NEEDS EDITING if nargin<2, error('Not enough input arguments.'); end % Get hold of some global parameters f=ex.param.frequency.f; delta_f=diff(f);%f(2)-f(1); delta_f=[delta_f delta_f(length(delta_f))]; % Loop over all xDSL cases and collect bit rates n=length(result); dm=getDM(ex.tt.traffic,ex.param.modemlist); tt=setTT(ex.tt,ex.param.xDSLlist); Rate_LT=zeros(1,n); Rate_NT=zeros(1,n); Margin_LT=zeros(1,n); Margin_NT=zeros(1,n); for k=1:n, tmp=tt.traffic{dm(k)}; modem=tmp{3}; tfplan=getList(ex.tfplist,modem); lc=getList(ex.lclist,tfplan.lcname); [LT, NT, LT_margin, NT_margin] = ... feval(lc.calcRate,tfplan,result{k},lc,ex.param.frequency.f); Rate_LT(k)=LT; Rate_NT(k)=NT; Margin_LT(k)=LT_margin; Margin_NT(k)=NT_margin; end;