Simulación de BPSK en canales de desvanecimiento

2

Estoy intentando simular BPSK en un canal con desvanecimiento de Rayleigh y AWGN, luego obtener la probabilidad de error de bits (BEP). Mi programa está escrito en C.

Comparé mi gráfica BEP vs \ $ \ frac {E_b} {N_0} \ $ (SNR por bit) con una generada usando la fórmula BEP = \ $ \ frac {1} {2} (1- \ sqrt { \ frac {\ bar {\ gamma_b}} {1+ \ bar {\ gamma_b}}}) \ $. Parece que mi BEP simulada siempre es aproximadamente el doble que la BEP teórica.

Enmisimulación,elmodelodeseñalBPSKrecibidovienedadopor\$r(k)=\sqrt{E_s}\alphae^{j\phi(k)}+n(k)\$dondekeselpasodetiempo,alfaeslavariablealeatoriadistribuidaRayleighyn(k)eselruidodebidoaAWGN.

\$E[\alpha^2]=2\sigma^2\$,y\$\alpha\$segeneracomo\$\alpha=\sqrt{w_1^2+w_2^2}\$donde\$w_1,w_2\simN(0,\sigma^2)\$.Aquí,\$\sigma^2=0.25\$.

Asíescomoseimplementamiprograma.

1)Establezcalafasedelmensajeen2D(msg_phase[0]=0.0,msg_phase[1]=\$\pi\$)

2)ParadiferentesvaloresdeSNR,hagalosiguiente:

2a)Calcular\$E_s=E_b=10^\frac{SNR}{10}*N_0\$

2b)Seleccionaaleatoriamentelaseñalparatransmitir,concadaseñalconlamismaprobabilidaddeserenviada.

2c)Genere\$\alpha\$generandoprimerounpardevariablesaleatoriasgaussianasdemediaceroindependientesconunavarianzaiguala0.25,luegoconfigurando\$\alpha\$segúnlaecuacióndearriba.

2d)GeneraotropardevariablesaleatoriasgaussianasestándarindependientescomoAWGN.

2e)Establezcalaseñalrecibidaen(\$\alpha\$*transmission_signal+AWGNnoise)

2f)Calculelamagnitudyfasedelaseñalrecibidadelasiguientemanera:

\$\text{Magnitud}=\sqrt{\text{Rx}_0^2+\text{Rx}_1^2}\$

\$\text{fase}=\text{tan}^{-1}\frac{\text{Rx}_1}{\text{Rx}_0}\$

Seutilizanenladecisióndemireceptor.

2g)Decisióndelreceptor.Paraunadecisiónincorrecta,cuenteelnúmerodebitsdeerror.

Repitalospasos2ba2ghastaobtener500bitsdeerror,luegocalculeBEP.

SeutilizóelmismocódigoparasimularelBPSKdiferencialylosresultadoscoincidieronconlafórmulaparaBDPSK.Elmodelodeseñalrecibidoparalassimulacionesdiferencialeses\$r(k)=\sqrt{E_s}\alphae^{j(\phi(k)+\theta)}+n(k)\$,porloquebásicamenteusamoselmismocódigoperocon\$\theta=0\$ylageneraciónde\$\alpha\$.

NoséporquémiBEPeseldobledelBEPobtenidodelafórmula.

HevistoalgunassimulacionesdeMatlabquehacenalgollamado"ecualización" para eliminar el efecto de desvanecimiento en el receptor, antes de calcular la métrica de decisión.

Por ejemplo,

for ii = 1:length(Eb_N0_dB)

n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % white gaussian noise, 0dB variance 
h = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Rayleigh channel

% Channel and noise Noise addition
y = h.*s + 10^(-Eb_N0_dB(ii)/20)*n; 

% equalization
yHat = y./h;

% receiver - hard decision decoding
ipHat = real(yHat)>0;

% counting the errors
nErr(ii) = size(find([ip- ipHat]),2);

No hago eso, pero ¿es necesario? Como las simulaciones de Matlab se implementan de manera muy diferente a mi programa, no estoy seguro de cómo funcionaría la "igualación" en mi caso.

    
pregunta Rayne

1 respuesta

1

Parece que la SNR de tu simulación es 3 dB demasiado baja. Ya que está trabajando en MATLAB, es fácil de verificar. Mire los valores de h, s, n y Eb_N0_db y asegúrese de haberlos escalado todos correctamente.

    
respondido por el Chris Hansen

Lea otras preguntas en las etiquetas