function lc = lcDefADSLDMT;
%% ===========================================================================
%lcDefDMT - Sets up the lincode description structure for DMT
% Returns:      lc	The linecode structure
%
% Example(s):
%
% Algorithmic details:
%   Fill in the modemdef structure according to default parameters and input
%   parameters.
%
% Reference:
%    FTW's xDSLsimu manual
%% ===========================================================================

%% ===========================================================================
% Copyright (C):                                        
%       1999-2000 by Telia Research AB, Lulea, Sweden;                
%       2001-2003 by Forschungszentrum Telekommunikation Wien, Austria;
%                                                         All rights reserved.
% Project       : FTW's xDSLsimu
% Author(s)     : Tomas Nordstrom (Tomas.Nordstrom@FTW.at)
%               : Daniel Bengtsson (Daniel.J.Bengtsson@Telia.se)
%		: Petr Kadlec (kadlec@ftw.at)
%
% CVS:       $Id: lcDefADSLDMT.m,v 3.3 2003/12/23 10:35:07 tono Exp $
%% ===========================================================================
% Change History
%      1999-10-11 (ToNo) Created
%      2000-01-12 (Dab)  lc function changed
%      2000-04-04 (Dab)  added signal margin
%      2001-07-03 (ToNo) Added active tones
%      2001-09-12 (ToNo) Add support for "Maximum aggregate transmit power"
%      2003-12-16 (ToNo) Split background noise into bgNoise and modemNoise
%      2003-12-16 (ToNo) We now use data symbol rate calculations so that
%                        efficiencyLoss should defaults to 0
%      2003-12-18 (DrSt) Split "Param digital" in downstream and
%                        upstream parameters
%% ===========================================================================

lc.name           	= 'ADSL-DMT';

% Default Parameter values

% get the margin
lc.param.signal_margin  = 0;
lc.param.xtalk_margin   = 6;
lc.param.refSNR         = 9.8;
lc.param.codingGain     = 3.5;
lc.param.SNRloss        = 0;
lc.param.Px             = 20.4;
lc.param.PxUp           = 12.5;
lc.param.PxDown         = 20.4;

%% ===========================================================================
% Parameter that are DMT specific
lc.param.dmt.df		   = 4.3125e3;      % Carrier spacing 

%%% Downstream parameters
lc.param.dmt.ds.carriers   = 256;           % Number of carriers used
lc.param.dmt.ds.fs         = lc.param.dmt.df*lc.param.dmt.ds.carriers*2; % Sampling frequency
lc.param.dmt.ds.cp         = 32+8;          % Cyclic prefix value
% The 8 comes from the sync frames (spread over all useful frames)
lc.param.dmt.ds.cs         = 0;             % Cyclic suffix value
lc.param.dmt.ds.my         = 0;             % Sampels used for windowing
lc.param.dmt.ds.beta       = 0;             % Sampels used for pulse shaping

%%% Upstream parameters
lc.param.dmt.us.carriers   = 64;            % Number of carriers used
lc.param.dmt.us.fs         = lc.param.dmt.df*lc.param.dmt.us.carriers*2; % Sampling frequency
lc.param.dmt.us.cp         = 4+1;           % Cyclic prefix value
% The 1 comes from the sync frames (spread over all useful frames)
lc.param.dmt.us.cs         = 0;             % Cyclic suffix value
lc.param.dmt.us.my         = 0;             % Sampels used for windowing
lc.param.dmt.us.beta       = 0;             % Sampels used for pulse shaping

% Set up active tones (default is set to FDD ADSL over POTS)
lc.param.dmt.us.tones      = [7:30];        % Upstream active tones
lc.param.dmt.ds.tones      = [38:63,65:255]; % Downstream active tones
lc.param.dmt.srate         = 4e3;           % DMT data symbol rate

lc.param.constellation     = (2:15);        % Bit constellation supported

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

lc.param.SNRMax            = 58;

%lc.param.efficiencyLoss = 1-2*lc.param.dmt.carriers./ ...
%    (lc.param.dmt.cp+lc.param.dmt.cs+lc.param.dmt.my+...
%     lc.param.dmt.beta+lc.param.dmt.carriers*2);
lc.param.efficiencyLoss = 0;
lc.param.alpha          = 0;

lc.param.modemNoise.LT  = '-160'; % Modem noise at LT (dBm/Hz)
lc.param.modemNoise.NT  = '-160'; % Modem noise at NT (dBm/Hz)

lc.calcRate 		= 'calcResultDMT';
lc.lcPrint 		= 'lcPrintDMT';