Red de conocimiento informático - Material del sitio web - Código de programa de rendimiento e implementación de comunicaciones de espectro ensanchado con salto de frecuencia basado en Matlab

Código de programa de rendimiento e implementación de comunicaciones de espectro ensanchado con salto de frecuencia basado en Matlab

rho_b1=0:5:35;

rho_b2=0:0.1:35;

para i=1:longitud(rho_b1)

smlid_err_prb(i) =ssfh_Pe(rho_b1(i));

end;

para i=1:longitud(rho_b2)

temp=10^(rho_b2(i) /10);

if (tempgt; 2)

theo_err_rate(i)=1/(exp(1)*temp);

else p>

theo_err_rate(i)=(1/2)*exp(-temp/2

fin

fin; >semilogy (rho_b1, smlid_err_prb, 'k*', rho_b2, theo_err_rate, 'k-);

El proceso de llamada a la subfunción ssfh_Pe en el programa es el siguiente:

función [p]=ssfh_Pe( tho_in_dB)

rho=10^(rho_in_dB/10);

Eb=rho;

if(rhogt;2) alpa = 2/rho;

else alpa=1;

fin;

agma=sqrt(1/(2*alpha));

N=10000 ;

para i=1:N

temp=rand

if(templt.0.5) data(i)=1 ;

else datos(i)=0

fin;

fin

para i=1: N

if( datos(i)==0)

rlc(i)=sqrt(Eb); rls(i)=0; 0;

más

rlc(i)=0; r2c(i)=sqrt(Eb); p>

fin ;

if(randlt;alpha)

rlc(i)=rlc(i) gngauss(sgma);

rls( i)=rls(i ) gngauss(sgma);

r2c(i)=r2c(i) gngauss(sgma);

r2s(i)=r2s(i) gngauss); (sgma);

p>

fin

fin

num_of_err=0; N

r1=rlc (i)^2 rls(i)^2;

r2=r2c(i)^2 r2s(i)^2;

if(r1gt;r2) decis=0 ;<

else decis=1;

fin

if(decis~=data(i) )

num_off_eff=num_of_err 1;

fin

fin

p=num_of_err/N; >La función de variable aleatoria de distribución gaussiana gngauss

La programación es la siguiente

función[gsrv1, gsrv2]=gngauss(n, sgma)

if nargin==0,

m=0; =1 ;

elseif nargin ==1,

sgma=m;

end; ;

z=sgma*(sqrt(2*log(1/(1-u))));

u=rand;

gsrv1= m z* cos(2*pi*u);

gsrv2=m z*sin(2*pi*u);