Académique Documents
Professionnel Documents
Culture Documents
Marco terico
Una variable aleatoria Rayleigh, tiene una funcin distribucin de probabilidad continua,
este tipo de variable aleatoria se presenta cuando un vector bidimensional tiene sus
componentes [x, y], ortogonales, independientes y sigue una distribucin Gaussiana [2].
Su funcin distribucin de probabilidad est dada por:
2
22
(|) =
2
- Canal AWGN
Es un modelo de ruido bsico utilizado para imitar el efecto de muchos procesos
aleatorios que ocurren en la naturaleza [3]. este tipo de canal tiene una distribucin
Gaussiana en el dominio del tiempo con un valor promedio de dominio de tiempo cero
[3].
La tasa de erro de bits, en un sistema de comunicacin con canal AWGN est dado por:
= ( 2 )
Donde
, es la potencia de la seal del transmisor
2 = 2
, es la potencia del ruido
Simulacin
% BER AWGN
%SNR = Eb/sigma^2 LINEAL
SNRdB= 0:1:10;
SNRlineal = 10.^(SNRdB/10);
BERTeorico=qfunc(sqrt(SNRlineal));
% GENERAR EL BER para AWGN
N=10^4;
for i=1:1:N
for SNRi = 1:length(SNRdB)
% MODULACION
b= (randn(1,1) > .5); % bits generados
x= 2*b-1; % simbolo BPSK
%ruido
SNRlineal = 10^(SNRdB(SNRi)/10);
sigma2 = 1/SNRlineal;
sigma_i = sqrt(sigma2);
n = sigma_i*(randn(1,1) + 1i*randn(1,1));
% RECEPCION
y=x + n; %seal recibida
% DEMODULACION
x_estimada = sign(real(y));
% CONTEO DE ERRORES
[~, errores] = find (x~=x_estimada);
ErroresAcumulados(SNRi,i) = sum(errores);
end
end
SumaErrores=sum(ErroresAcumulados,2);
BER= SumaErrores./N;
semilogy(SNRdB,BERTeorico,SNRdB,BER,'-*'),grid
title('BER vs SNR,Canal AWGN, Modulacion BPSK')
xlabel('SNR [dB]')
ylabel('BER')
legend('BER Teorico', 'BER Simulado')
o Con modulacin QPSK
SNRdB = 0:1:10;
SNRlineal = 10.^(SNRdB/10);
N=10^4;
for i=1:1:N
for SNRi=1:length(SNRdB)
%Modulacion
cadena_bits=randn(1,2)>=0; %Genera una cadena de bits
fase = cadena_bits(1:2:end);
cuadra = cadena_bits(2:2:end);
x = sqrt(1/2)*(1i*(2*fase-1)+(2*cuadra-1)); %simbolos QPSK
M=4; %Numero de simbolos
bits=log2(M);
%Ruido
SNRlineal = 10^(SNRdB(SNRi)/10);
sigma2 = 1/(2*bits*SNRlineal);
sigma_i = sqrt(sigma2);
n = sigma_i*(randn(1,length(x)) + 1i*randn(1,length(x)));
y = x + n;
%Demodulacion
cuadratura_estimado = real(y)>=0;
fase_estimado = imag(y)>=0;
x_estimado=reshape([fase_estimado ; cuadratura_estimado],1,[]);
%calculo de Errores
errores_acumulados(SNRi,i) =
sum(xor(cadena_bits,x_estimado))/bits;
end
end
Sum_errores=sum(errores_acumulados,2);
BER=Sum_errores./N;
BER_teorico =0.5*erfc(sqrt(10.^(SNRdB/10)));
semilogy(SNRdB,BER_teorico,'r--');
hold on;
semilogy(SNRdB,BER,'b*-');
title('BER vs SNR,Canal AWGN, Modulacion QPSK');
xlabel('SNR [dB]');
ylabel('BER [dB]');
grid on;
hold on;
legend('Teorica','Simulada');
grid on;
- Simular un sistema de comunicacin con canal Rayleigh:
o Con modulacin BPSK
ErroresAcumulados=zeros(1,1);
% v.a. gausiana
% n = m + sigma*randn(1) UNA VARIABLE
n = randn(1);
%rayleigh
varianza = 1/2; m=0;
desviacion= sqrt(varianza) ;
p= desviacion*randn(1,1)+m ;
q= desviacion*randn(1,1)+m ;
h=p+1j*q;
% BER AWGN
%SNR = Eb/sigma^2 LINEAL
SNRdB= 0:1:10;
SNRlineal = 10.^(SNRdB/10);
BERTeorico=qfunc(sqrt(SNRlineal));
% GENERAR EL BER para AWGN
N=10^4;
for i=1:1:N
for SNRi = 1:length(SNRdB)
% MODULACION (TRANSMISION)
b= (randn(1,1) > .5); % bits generados
x= 2*b-1 ; % simbolo BPSK
%ruido
SNRlineal = 10^(SNRdB(SNRi)/10);
sigma2 = 1/SNRlineal;
sigma_i = sqrt(sigma2);
n = sigma_i*(randn(1,1) + 1i*randn(1,1));
% RECEPCION
y=h*x + n; %seal recibida
% PROCESAMIENDO con la seal recibida
z=y./h; %ecualizacion ZERO-FORCING z=x + n/h
% DEMODULACION
x_estimada = sign(real(z));
% CONTEO DE ERRORES
[~, errores] = find (x~=x_estimada);
ErroresAcumulados(SNRi,i) = sum(errores);
end
end
SumaErrores=sum(ErroresAcumulados,2);
BER= SumaErrores./N;
semilogy(SNRdB,BERTeorico,SNRdB,BER,'-*'),grid
title('BER vs SNR,Canal Rayleigth, Modulacion BPSK')
xlabel('SNR [dB]')
ylabel('BER')
legend('BER Teorico', 'BER Simulado')
o Con modulacin QPSK
clear all
close all
clc
%Errores_acumulados=zeros(1,1);
varianza = 1/2; m=0;
desviacion= sqrt(varianza) ;
p= desviacion*randn(1,1)+m ;
q= desviacion*randn(1,1)+m ;
h=p+1j*q;
SNRdB = 0:1:10;
SNRlineal = 10.^(SNRdB/10)
N=10^4;
for i=1:1:N
for SNRi=1:length(SNRdB)
%Modulacion
cadena_bits=randn(1,2)>=0; %Genera una cadena de bits
fase = cadena_bits(1:2:end);
cuadra = cadena_bits(2:2:end);
x = sqrt(1/2)*(1i*(2*fase-1)+(2*cuadra-1)); %simbolos QPSK
M=4; %Numero de simbolos
bits=log2(M);
%Ruido
SNRlineal = 10^(SNRdB(SNRi)/10);
sigma2 = 1/(2*bits*SNRlineal);
sigma_i = sqrt(sigma2);
n = sigma_i*(randn(1,length(x)) + 1i*randn(1,length(x)));
y = h*x + n;
z=(1/h)*y;
%Demodulacion
cuadra_estimado = real(z)>=0;
fase_estimado = imag(z)>=0;
x_estimado=reshape([fase_estimado ;cuadra_estimado],1,[]);
%calculo de Errores
errores_acumulados(SNRi,i) = sum(xor(cadena_bits,x_estimado))/bits;
end
end
Sum_errores=sum(errores_acumulados,2);
BER=Sum_errores./N;
BER_teorico =0.5*erfc(sqrt(10.^(SNRdB/10)));
semilogy(SNRdB,BER_teorico,'r--');
hold on;
semilogy(SNRdB,BER,'b*-');
title('BER vs SNR,Canal Rayleigh, Modulacion QPSK');
xlabel('SNR [dB]');
ylabel('BER [dB]');
grid on;
hold on;
legend('Teorica','Simulada');
grid on;
Resultados
- BER vs SNR del sistema de comunicacin con canal AWGN, modulacin BPSK
0
BER vs SNR,Canal AWGN, Modulacion BPSK
10
BER Teorico
BER Simulado
-1
10
BER
-2
10
-3
10
-4
10
0 1 2 3 4 5 6 7 8 9 10
SNR [dB]
- BER vs SNR del sistema de comunicacin con canal AWGN, modulacin QPSK
-1
BER vs SNR,Canal AWGN, Modulacion QPSK
10
Teorica
Simulada
-2
10
-3
10
BER [dB]
-4
10
-5
10
-6
10
0 1 2 3 4 5 6 7 8 9 10
SNR [dB]
- BER vs SNR del sistema de comunicacin con canal Rayleigh, modulacin BPSK
0
BER vs SNR,Canal Rayleigth, Modulacion BPSK
10
BER Teorico
BER Simulado
-1
10
BER
-2
10
-3
10
-4
10
0 1 2 3 4 5 6 7 8 9 10
SNR [dB]
- BER vs SNR del sistema de comunicacin con canal Rayleigh, modulacin QPSK
0
BER vs SNR,Canal Rayleigh, Modulacion QPSK
10
Teorica
Simulada
-1
10
-2
10
BER [dB]
-3
10
-4
10
-5
10
-6
10
0 1 2 3 4 5 6 7 8 9 10
SNR [dB]
Conclusiones
Bibliografa