function A = getCableModel(name,f); %getCableModel - get a parameter model for cable 'name' % % Parameter: name Name to search for % Parameter: f Frequency axis % Returns: A Attenuation [dB(f)/km] % % % Example(s): % A = getCableModel('DTAG04',f); % % Reference: % FSAN duplex simulation memo, Telia 1998 %% =========================================================================== %% =========================================================================== % Copyright (C) 1998 by Telia Research AB, Lulea, Sweden; All rights reserved. % Project : FSAN duplex model % Author(s) : Tomas Nordstrom (Tomas.B.Nordstrom@Telia.se) % : % % CVS: $Id: getCableModel.m,v 1.3 1999/06/18 13:31:47 tono Exp $ %% =========================================================================== % Change History % 1998-11-12 (ToNo) Created % 1998-12-30 (DaB) Rewritten with new structure % 1999-01-09 (DaB) Changed from DTAG05 to DTAG04 % 1999-01-11 (ToNo) Renamed standard cable def. file % 1999-02-05 (DaB) Added all cable models % 1999-06-18 (ToNo) Removed one of the operators cables %% =========================================================================== stdCables; % Load standard cable definitions d=1; switch name case 'FIN04' param=param(1,:); model='BT'; case 'FIN05' param=param(2,:); model='BT'; case 'BTdw1' param=param(9,:); model='BT'; case 'BTdw3' param=param(10,:); model='BT'; case 'BTdw5' param=param(11,:); model='BT'; case 'BTdw6' param=param(12,:); model='BT'; case 'BTdw8' param=param(13,:); model='BT'; case 'BTdw10' param=param(14,:); model='BT'; case 'BTdw12' param=param(15,:); model='BT'; case 'BTdwug' param=param(16,:); model='BT'; case 'TP1' param=param(17,:); model='BT'; case 'TP2' param=param(18,:); model='BT'; case 'TP3' param=param(19,:); model='BT'; case 'FP' param=param(20,:); model='BT'; case 'DTAG035' param=param_dtag(1,:); model='DTAG'; case 'DTAG04' param=param_dtag(2,:); model='DTAG'; case 'DTAG05' param=param_dtag(3,:); model='DTAG'; case 'DTAG06' param=param_dtag(4,:); model='DTAG'; case 'KPN_L1' param=param_kpn(1,:); model='KPN'; case 'KPN_L2' param=param_kpn(2,:); model='KPN'; case 'KPN_L3' param=param_kpn(3,:); model='KPN'; case 'KPN_L4' param=param_kpn(4,:); model='KPN'; case 'KPN_H1' param=param_kpn(5,:); model='KPN'; case 'KPN_KK' param=param_kpn(6,:); model='KPN'; case 'KPN_R2' param=param_kpn(7,:); model='KPN'; case 'ETSI' param=param(16,:); % BT_dwug model='BT'; case 'ANSI' param=param(17,:); % TP1 model='BT'; otherwise estr=sprintf('Unknown cable model %s', name); error(estr); end; switch model case 'DTAG' % ================= % = Function code = % ================= %[Ka1,Ka2,Ka3,Kb1,Kb2,Kz1,Kz2,Kz3,Kx1,Kx2,Kx3]=param; Ka1=param(1:3); Ka2=param(4:6); Ka3=param(7:9); Kb1=param(10); Kb2=param(11); Kz1=param(12); Kz2=param(13); Kz3=param(14); Kx1=param(15); Kx2=param(16); Kx3=param(17); freq=f; gamma=[]; start=1; stop=max(find(freq<0.5e6)); f=freq(start:stop)/1e6; K1=Ka1(1); K2=Ka2(1); K3=Ka3(1); gamma=(K1+K2.*(f.^K3))/20*log(10)+j*(Kb1.*f+Kb2.*sqrt(f)); start=stop+1; stop=max(find(freq<5e6)); f=freq(start:stop)/1e6; K1=Ka1(2); K2=Ka2(2); K3=Ka3(2); gamma=[gamma (K1+K2.*(f.^K3))/20*log(10)+j*(Kb1.*f+Kb2*sqrt(f))]; start=stop+1; stop=max(find(freq<=30e6)); f=freq(start:stop)/1e6; K1=Ka1(3); K2=Ka2(3); K3=Ka3(3); gamma=[gamma (K1+K2.*(f.^K3))/20*log(10)+j*(Kb1.*f+Kb2*sqrt(f))]; f=freq; Z0=(Kz1+Kz2./((f/1e6).^Kz3)).*exp(-j*Kx1./((Kx2+f/1e6).^Kx3)); H=exp(-gamma*d); A=20*log10(abs(H)); if size(Z0)==size(gamma), else fprintf('function not defined over 30MHz'); end; case 'BT' r0c=param(1); r0s=param(2); ac=param(3); as=param(4); l0=param(5); loo=param(6); b=param(7); fm=param(8); coo=param(9); c0=param(10); ce=param(11); g0=param(12); ge=param(13); R=1./( (1./sqrt(sqrt(r0c.^4+ac.*f.^2))) + (1./sqrt(sqrt(r0s.^4+as.*f.^2)))); L=(l0+loo*(f./fm).^b)./(1+(f./fm).^b); C=coo+c0.*f.^(-ce); G=g0.*f.^(ge); Z=R+j.*2*pi.*f.*L; Y=G+j*2*pi.*f.*C; gamma=sqrt(Z.*Y); Z0=sqrt(Z./Y); H=exp(-gamma*d); A=20*log10(abs(H)); case 'KPN' Z0oo=param(1); c=param(2); Rss00=param(3); tan_fi=param(4); Kf=param(5); K1=param(6); Kn=param(7); Kc=param(8); N=param(9); fc0=param(10); M=param(11); tji=(1+j).*sqrt(f.*4*pi*1e-7/Rss00/(Kn*Kf)); Z=Rss00.*(1+K1*Kf*(tji.*coth(4/3.*tji)-3/4))+j*2*pi.*f.*Z0oo./c; Y=j*2*pi.*f/Z0oo/c.*(1+(Kc-1)./(1+(f./fc0).^N))+tan_fi./(Z0oo.*c).*(f).^M; Z0=sqrt(Z./Y); gamma=sqrt(Z.*Y).*1e3; H=exp(-gamma*d); A=20*log10(abs(H)); end;