Scilab simulation Script
fr - eng


Gaussian modulated fractional frequency synthesizer


Contents

Module

Scicos diagram(s)

\epsfig{file=synthe_sd_quick_sim.eps,width=400pt}
synthe_sd_quick_sim.cos

Context file(s)


scs_m.props.context=[
'lines(-1);'
'F_cpf = 20e6;'
'T_cpf = 1/F_cpf;'
'sig_ref=T_cpf*0.02/100'
'Fo = 2.045e9;'
'To = 1 / Fo;'
'wo=2*%pi * Fo;'
'kv = 100.5e6;'
'alpha=6.91e9;'
'beta2=0.15;'
'j_vco=0.0e6;'
'Fd=2.5e9;'
'N=int(Fd/F_cpf)'
'Nsampl = 4;'
'Tsampl = 1/(Fd*Nsampl);'
'Fsampl = 1 / Tsampl;'
'Icp = 5e-3;'
'Ileak=0.05e-6;'
'fn=F_cpf/280;'
'phi=%pi/4;'
'Ts=3/fn'
'Nech=12'
'BT=0.7'
'nb_coef=85'
'Te=Ts/Nech'
'Nbit=3'
'M=32'
'order_sd=3'
'[tau1,tau,tau2]=calcul_3eme_ordre(fn,phi,kv*2*%pi,Icp,N);'
's=poly(0,''s'');'
'num=1+tau1*s;'
'den=tau*s*(1+tau2*s);'
'Tacqui=20e-5'
'Nsav=2^21'
'Tfin=Tacqui+Nsav*Tsampl'
];
synthe_sd_quick_sim_ctxt.sce

Used blocks

Simulation script(s)


//stacksize(1.8e8);
sim_name='synthe_sd_quick_sim';
sim_path='synthe_sd_quick_sim';
load(MODNUMCOS+'/examples/simu/'+sim_path+'/'+sim_name+'.cos');

exec(MODNUMCOS+'/examples/simu/'+sim_path+'/'+sim_name+'_ctxt.sce');
context=scs_m.props("context");execstr(context);
scs_m.props.tf=Tfin;

Info=list();
%scicos_context=struct();

Info=scicos_simulate(scs_m,Info,%scicos_context,"nw");
myvar=return_state_block(Info,"z_buf");
clear Info;
timer();
fc=2.49e9-2.5e6/2;
//step=plot_spectre2(myvar(1),Tsampl,Tacqui,fc,0.015e6,10,0);
step=1/(Nsav*Tsampl);
DSP=10*log10((1/(Nsav)*abs(fftshift(fft(myvar(1)(1:Nsav),-1))))^2);
lwin=0.45e6;
clf(10);
scf(10);
//plot2d((((Fd/step)-lwin):((Fd/step)+lwin))*step,DSP(Nsav/2+((Fd/step)-lwin:((Fd/step)+lwin))),rect=[((Fd/step)-lwin)*step,min(DSP),((Fd/step)+lwin)*step,max(DSP)]);
nNsav=2^17;
sm=pspect(nNsav/16,nNsav,'re',myvar(1)(1:Nsav)');
smsize=maxi(size(sm))/2;fr=(1:smsize)/(2*smsize);
nstep=1/(2*Tsampl*smsize);
Fc=Fd+F_cpf/2; Fdecal=50e6; Fmin=Fd-Fdecal; Fmax=Fd+F_cpf+Fdecal;
vec=int(Fmin/nstep:Fmax/nstep);

plot2d(vec*nstep,10*log10(1/(Nsav)*sm(vec))); xgrid();

t_cpu=timer();
Nbsym=int(Tfin/Ts);
var_tt="Center Freq.=%e, Sampling Freq.=%e\nNumb. of Sample=%d, Freq. step=%e\n";
printf(var_tt,fc,Fsampl,Nsav,step);
printf("t_cpu=%f, Numb. of simulated symbol=%d, symb/s=%f\n",t_cpu,Nbsym,Nbsym/t_cpu);
//plot_spectre2(myvar,Tsampl,Tacqui,N*F_cpf,0.5e6,11,1);
synthe_sd_quick_sim.sce

Scope results

\begin{figure}\begin{center}
\epsfig{file=synthe_sd_quick_sim_scope_1.eps,width=300.00pt}
\end{center}\end{figure}
Figure : Output spectra

Authors

A. Layec