%% =========================================================================== % Copyright (C) 1998,99 by Telia Research AB, Lulea, Sweden; All rights reserved. % % Description : Example of a PBO experiment as suggested by Mathias % Friese at VDSL workshop, Oct 6-8 1998, Boston, USA % % File : ExPBO.m % Project : FSAN simulation tool % Author(s) : Tomas Nordstrom (Tomas.B.Nordstrom@Telia.se) % % CVS: $Id: ExPBO.m,v 1.8 1999/03/31 13:15:24 tono Exp $ %% =========================================================================== %% =========================================================================== % Change History % 1999-01-19 (ToNo) Created % 1999-02-09 (ToNo) Updated for parameter changes in ex struct % 1999-02-25 (ToNo) Generlized list (tfplist) handling %% =========================================================================== global ex; global res; scenario = 'FSAN PBO scenario'; % Scenario to run vdslDuplex = 'VDSL-PBO'; % Duplex method for VDSL % Set up the experiment structures ex.param = setupParam(vdslDuplex); ex.ttlist = setupTTstructure; ex.tt = getList(ex.ttlist, scenario); ex.tfplist = setupTFplan; PBOvalues = [0 1e6 2e6 2.5e6 3e6 4e6]; ex.param.FSANNoiseModel = 'Calculate'; %PBOvalues = [0 2401000]; %ex.param.FSANNoiseModel = 'FSAN-FTTEx'; % VDSL PBO tmp_tfplan=getList(ex.tfplist,ex.param.HambandName); % initiate tmp_tfplan with something tmp_tfplan.name=vdslDuplex; tmp_tfplan.downstream ='calcPSD([0.3e6 -160 0.3e6 -60 10e6 -60 10e6 -160],''Linear'')'; tmp_tfplan.upstream=tmp_tfplan.downstream; tmp_tfplan.timeDivision.up =0.5; tmp_tfplan.timeDivision.down =0.5; tmp_tfplan.PBOmethod ='RefFreq'; tmp_tfplan.PBOparam =1e6; tmp_tfplan.efficiencyLoss =0.0; tmp_tfplan.active.upstream =[0.3e6 10e6]; tmp_tfplan.active.downstream =[0.3e6 10e6]; ex.tfplist=insertList(ex.tfplist,tmp_tfplan); % Global defines ex.param.SNRMax = 59.9544; % Maximum SNR available (dB) ex.param.shannonGap = 14.8; % Shannon gap + Noise margin - Coding gain (dB) ex.param.efficiencyLoss = 0; % Efficiency loss (0-1) % Test VDSL without HAMBAND ex.param.modemlist=['VDSL']; ex.param.HAM = 0; % Fast frequency axis control ex.param.fastRecalc = 1; ex.param.minfrequency = 300e3; % Min frequency (Hz) to use ex.param.maxfrequency = 10e6; % Max frequency (Hz) to use ex.param.defaultMaxf = 10e6; % Default Max frequency (Hz) to use ex.param.granularity = 1000; % Granularity (Hz) in the frequency domain % div ex.param.PBOmaxlen=1500; for i=1:length(PBOvalues), % Show progress fprintf('PBO value = %g MHz\n',PBOvalues(i)); % Set PBO value tmp_tfplan.PBOparam=PBOvalues(i); if(tmp_tfplan.PBOparam==0), tmp_tfplan.PBOmethod='None' ; else tmp_tfplan.PBOmethod='RefFreq'; end; ex.tfplist=setList(ex.tfplist,vdslDuplex,tmp_tfplan); % Evaluate this experiment result = evalExperiment; % Get bitrates [bitrate_LT, bitrate_NT ,dum1 , dum2]=calcFSANresult(ex,result); bitrate_LTv(i,:)=2.*bitrate_LT; % Compensate for .5 TDD bitrate_NTv(i,:)=2.*bitrate_NT; end; % Plot the different PBO curves (as done by Mathias Friese) figure; title('Constant PBO method'); ylabel('Bitrate in Mbit/s'); xlabel('Index of node (distance=index*150m)'); g=1:length(bitrate_LTv(1,:)); plot(g, bitrate_LTv(1,:),':', g,bitrate_NTv(1,:),'--'); % without PBO is first tmpstr=sprintf('%.1fMHz',PBOvalues(i)/1e6); text(7.1,bitrate_NTv(1,7),'Downstream'); text(7.1,bitrate_LTv(1,7),'Upstream without PBO'); hold on; grid on; plot(g, bitrate_LTv(2:length(PBOvalues),:)); % with PBO is the rest for i=2:length(PBOvalues), % add PBO frequency to plot tmpstr=sprintf('%.1fMHz',PBOvalues(i)/1e6); text(1.1,bitrate_LTv(i,1),tmpstr); end hold off;