//## LO F_cpf = 20e6 T_cpf = 1/F_cpf sig_ref = 0.5*%pi //## VCO Fo = 2.045e9 To = 1 / Fo wo = 2*%pi * Fo kv = 133e6 alpha = 6.91e9 beta2 = 0.15 j_vco = 75e3 closed = 1 //## DIVIDER Fd = 2.50e9; N = int(Fd/F_cpf) //## DSM DSM = 1 DZDSM = 1 nbit = 16 M = 2^nbit K = 3013 dither = 1 DZ = 2*%pi*0.01/100 typ = 3 //int32 //## PFD & CP Icp = 5e-3 Iup = Icp Idown = Icp+100e-6 Ileak = 10e-6 Ileak_sig = 0*2/100 Th = 1e-9 //## LOOP FILTER fn = F_cpf/290 phi = %pi/4 kv = kv*2*%pi [tau1,tau,tau2] = calcul_3eme_ordre(fn,phi,kv,Icp,N) s = poly(0,'s') num = 1+tau1*s den = tau*s*(1+tau2*s) //## Custom components C1=820e-12 C2=150e-12 R1=1500 Rvco=5e+3 Cvco=25e-12 //tau1=C2*R1 //tau=C2+C1 //tau2=R1*C1*C2/(C2+C1) //tauvco=Rvco*Cvco //## LINEAR MODEL H = num/den //## loop filter G = kv*Icp/(2*%pi)*num/(s*den) //## GH = kv*Icp/(2*%pi)*num/(N*s*den) //## kv = kv/(2*%pi) //affiche_bode(1006,1e3,100e6,G,1+GH) //## cont_frm f11=cont_frm(num,den) s11=syslin('c',f11.A,f11.B,f11.C) //## tf2ss f22=tf2ss(num/den,%eps) s22=syslin('c',f22.A,f22.B,f22.C) //## SPECTRUM ANALYSIS winfft = 211 Tsampl = 1/100e6 nfft = 2048*512*4 nfft = 2048*256 onfft = nfft/4 aver = 64 //## SIMULATION EVENTS Tacqui = 1e-5 Tfin = Tacqui + (nfft+aver*onfft)*Tsampl