function lclist = etsi_lcdefsSDSL_SpecificRates(lclist)
%% ===========================================================================
% etsi_lcdefsSDSL_SecificRates(lclist) - Sets up the tfplan for ETSI SDLS
%                                        tfplans with specific
%                                        rates, used e.g. in SpM studies
%
% Parameter:    lclist	 Structure describing line code dependent stuff
% Returns:      lclist   Structure describing line code dependent stuff
%
% Example(s):
%   ex.lclist = etsi_lcdefsSDSL_SpecificRates(ex.lclist);
%   lc = getList(ex.lclist,'ETSI-SDSL-sym-1024');
%
%% ===========================================================================

%% ===========================================================================
% Copyright (C): 
%           2003-2009 by Forschungszentrum Telekommunikation Wien, Austria;
%                                                      All rights reserved.
% Project       : FTW's xDSLsimu
% Author(s)     : Tomas Nordstrom (Tomas.Nordstrom@FTW.at)
% 
% CVS:       $Id: etsi_lcdefsSDSL_SecificRates.m,v 1.3 2005/01/04 10:32:28 tono Exp $
%% ===========================================================================
% Change History
%      2003-11-27 (ToNo) Created
%      2003-12-02 (ToNo) Added support for lc dependent modem noise
%      2004-01-13 (ToNo) Changed coding gain at 256 kbits/s (and below)
%      2008-08-28 (ToNo) Introduced consistent naming (pam -> mod)
%% ===========================================================================

% ETSI SpM Part-2 updated "Symmetrical" SDSL params
basic_lc       = lcDefSDSL_sym;

% Change SNR gap parameters:
basic_lc.param.refSNR         = 9.75;
basic_lc.param.SNRloss        = 1.6;
basic_lc.param.codingGain     = 5.1; 
% Note that the new coding gain should be 4.4 dB at 256 kbit/s and below

% Calculate the required SNR
basic_lc.param.reqSNR           = 27.74 ...
    - basic_lc.param.codingGain + basic_lc.param.SNRloss;

%% ===========================================================================

lcname = 'ETSI-SDSL-sym-256';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(15:length(lcname)));
tmp_lc.param.codingGain     = 4.4;
tmp_lc.param.SNRloss        = 1.6;
tmp_lc.param.reqSNR         = 27.74 ...
                              - tmp_lc.param.codingGain + tmp_lc.param.SNRloss;
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

lcname = 'ETSI-SDSL-sym-512';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(15:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

lcname = 'ETSI-SDSL-sym-1024';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(15:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

lcname = 'ETSI-SDSL-sym-2048';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(15:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

lcname = 'ETSI-SDSL-sym-2304';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(15:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

%% ===========================================================================

% ETSI SpM Part-2 updated "Asymmetrical" SDSL params
basic_lc       = lcDefSDSL_asym;

% Change SNR gap parameters:
basic_lc.param.refSNR         = 9.75;
basic_lc.param.SNRloss        = 1.6;
basic_lc.param.codingGain     = 5.1; 

% Calculate the required SNR
basic_lc.param.reqSNR           = 27.74 ...
    - basic_lc.param.codingGain + basic_lc.param.SNRloss;

%% ===========================================================================

lcname = 'ETSI-SDSL-asym-2048';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(16:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

lcname = 'ETSI-SDSL-asym-2304';
tmp_lc=basic_lc;
tmp_lc.param.mod.brate.rate = 1e3*str2num(lcname(16:length(lcname)));
tmp_lc.name=lcname;
lclist=insertList(lclist,tmp_lc);

%% ===========================================================================