function Pout=modelPSD_HDSL2B1Q(f,pairs) %% =========================================================================== % modelPSD_HDSL2B1Q - PSD mask for HDSL 2B1Q % % Parameter: f Frequency axis % Parameter: pairs No of pairs % Returns: Pout PSD mask (in mW) % % Example(s): % % Algorithmic details: % % Reference: % ETSI TM6 SpM part 2 LL %% =========================================================================== %% =========================================================================== % 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: modelPSD_HDSL2B1Q.m,v 1.2 2005/01/04 10:25:12 tono Exp $ %% =========================================================================== % Change History % 2003-11-24 (ToNo) Created %% =========================================================================== if nargin<2, pairs = 2; end switch pairs case 1 pvec = [1160e3, 3e3, 0.42*1160e3, 3, Inf, 1, 1.4662, 14, -121.5]; case 2 pvec = [584e3, 3e3, 0.50*584e3, 3, Inf, 1, 1.3501, 14, -133 ]; case 3 pvec = [392e3, 3e3, 0.50*392e3, 3, Inf, 1, 1.3642, 14, -117.5]; case -2 pvec = [584e3, 3e3, 0.68*584e3, 4, 1.5*584e3, 2, 1.1965, 14, -133 ]; otherwise error('The number of pairs in modelPSD_HDSL2B1Q should be in the range 1-3') end fx = pvec(1); fl = pvec(2); fh1 = pvec(3); Nh1 = pvec(4); fh2 = pvec(5); Nh2 = pvec(6); qN = pvec(7); Ptot = 10^(pvec(8)/10); Pfloor = 10^(pvec(9)/10); P1 = Ptot * ( 2 * qN /fx ) * sinc(f/fx).^2 .* (1 ./ (1+(fl./f).^2)) ... .* (1 ./ (1+(f./fh1).^(2*Nh1))) .* (1 ./ (1+(f./fh2).^(2*Nh2))); Pout = max(P1,Pfloor);