bit error rate para modulación qpsk, guillermo arb.pdf

6

Click here to load reader

Upload: guillermo-rgz-b

Post on 08-Aug-2015

143 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

Bit Error Rate para modulación QPSK, simulación en MatLab

Ing. Guillermo Adrián Rodríguez Barragán

[email protected]

Resumen

El presente reporte describe los

resultados obtenidos en una simulación

realizada en el software MatLab para

conocer la taza de error de bits en una

transmición QPSK sobre un canal en banda

base con la adición de ruido blanco

gaussiano en diferentes niveles de potencia

de transmisión.

Desarrollo

La modulación QPSK es una

combinación de dos modulaciones BPSK una

en cuadratura y otra en fase, por lo cual

gracias a este esquema de modulación es

posible transmitir dos bits por símbolo, las

distribución de estos bits se aprecia en la

siguiente figura:

Como se puede apreciar los bits

están distribuidos de forma tal que la

distancia mínima entre ellas sea máxima e

igual entre símbolos secuenciales, los

desplazamientos son de 90° y usualmente

encontramos cada símbolo a 45°,135°,225° y

315°. Así mismo se cuida que estén

distribuidos de forma tal que guarden una

codificación grey, es decir que entre

símbolos secuenciales el cambio de bits sea

solo de uno.

Es posible obtener la señal modulada

a partir de la siguiente ecuación:

De aquí podemos obtener las cuatro fases

necesarias en o su

representación en funciones base

Gracias a estas últimas funciones es

posible modular directamente con las

transmisiones de bits formados por unos y

ceros, haciendo corresponder un valor de 1

para los unos y -1 para los ceros.

𝜋4 , 3𝜋 4 , 5𝜋 4 , 7𝜋 4

𝜙 1 𝑡 =

2

𝑇𝑠cos 2𝜋 𝑓𝑐 𝑡

𝜙 2 𝑡 =

2

𝑇𝑠sen 2𝜋 𝑓𝑐 𝑡

𝑆𝑛 𝑡 = 2𝐸𝑠𝑇𝑠

cos 2𝜋 𝑓𝑐 𝑡 + 2𝑛 − 1 𝜋

4 ,

𝑛 = 1,2,3,4.

Page 2: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

Para efectos de simulación se tuvo

una transmisión de 10 000 frames por nivel

de Eb/No, cada frame formado por 100 bits

generados de manera aleatoria. A

continuación se explica cada transmisión por

nivel de Eb/No.

Se calcula la desviación estándar

para dicho nivel de Eb/No

Sigma_cuadrada=

1/(2*(10^(Eb_No(1,ii)/10)));

%Varianza Sigma=sqrt(Sigma_cuadrada);

Dado que este valor solo está en función del nivel de Eb/No no cambiara durante cada uno de las 10000 transmisiones de los frames. En cada envió de un frame se sigue el siguiente algoritmo: Se generan 100 bits aleatorios:

Bits=rand(1,100)>0.5;

Se hace la modulación de dichos bits tomando de dos en dos.

Simbolos=QPSK_Mod(Bits);

function

[Simbolos]=QPSK_Mod(Bits)

BitsImpares = Bits(1:2:end); BitsPares = Bits(2:2:end);

Simbolos=zeros(1,2*length(BitsPares))

Simbolos =

sqrt(1/2)*(1i*(2*BitsPares-

1)+(2*BitsImpares-1));

Ahora se genera el ruido blanco gaussiano con el nivel de desviación estándar antes obtenido y se suma a los símbolos modulados

Noise= (1/sqrt(2))* Sigma *

(randn(1,length(Simbolos))+1i*

randn(1,length(Simbolos))); y=Simbolos+Noise;

Para terminar el proceso de simulación se demodulan los símbolos y se contabiliza el número de errores por nivel de Eb/No.

BitsDem=QPSK_Dem(y/(1/sqrt(2)));

function

[Bits]=QPSK_Dem(Simbolos) Bits=zeros(1,2*length(Simbolos));

for kk=1:length(Simbolos) if( real(Simbolos(kk)) >=0 &&

imag(Simbolos(kk))>=0)%11 Bits(kk*2-1)=1; Bits(kk*2)=1; elseif(real(Simbolos(kk))<0

&& imag(Simbolos(kk))>=0)%01 Bits(kk*2-1)=0; Bits(kk*2)=1; elseif(real(Simbolos(kk))<0

&& imag(Simbolos(kk))<0)%00 Bits(kk*2-1)=0; Bits(kk*2)=0; elseif(real(Simbolos(kk))>=0

&& imag(Simbolos(kk))<0)%10 Bits(kk*2-1)=1; Bits(kk*2)=0; end end

BER(1,ii)=

Suma/(Realizaciones*Long_frame);

Los resultados obtenidos se grafican BER vs Eb/No para comparar resultados contra la curva de VER Teórica.

Page 3: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

Conclusiones En la siguiente figura se muestra la trasmicion de un frame con un nivel de Eb/No=1

Se puede apreciar que el efecto del

ruido en la transmisión es muy grande y los

50 símbolos generados se encuentran muy

dispersos.

En cambio con un nivel de Eb/No =20

los símbolos se agrupan de manera uniforme

según la constelación QPSK, esto facilita la

demodulación y se ve reflejado en una

transmisión sin errores.

Finalmente tenemos la comparación entre

curvas de VER teórico y simulado.

Las simulaciones son una potente

herramienta para conocer el

comportamiento de un sistema conocido en

ciertos escenarios, para este caso lo que

probo es la efectividad de un esquema de

modulación QPSK frente a diversos niveles

de potencia de transmición.

Bibliografía Harada, H., & Prasad, R. (s.f.). Simulation and

software radio for mobile

communications. Artech House.

Meghdadi, V. (s.f.).

http://perso.ensil.unilim.fr/~meghda

di/notes/ber_awgn.pdf. Obtenido de

BER calculation.

Ilustración 2Distribucion de Símbolos generados con Eb/No=1

Ilustración 3Distribución de símbolos generados con un nivel de Eb/No =20

Ilustración 4Comparación entre BER Teórico y Simulado para trasmisión QPSK

Page 4: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

Programa de simulación

%Programa para simulacion de modulacion QPSK % %Consideraciones: %Se asume Es=1, y la variacion sera en el nivel de ruido % %(c) Guillermo Adrián Rodríguez Barragán %11/09/12

clc; clear;

% Inicializacion de variables Realizaciones=10000; % Por cada nivel de SNR o Eb/No Long_frame=100; % 100 simbolos QPSK por frame Eb_No= 0:1:20; %Niveles de Eb/No BER=zeros(1,21); %21 Pruebas de BER Bits=zeros(1,100); %Vector de Bits a enviar por realización

ContadorPB=0; %Contador para progres bar

for ii=1:length(Eb_No) %Diferentes niveles de Eb/No

Sigma_cuadrada= 1/(2*(10^(Eb_No(1,ii)/10))); %Varianza Sigma=sqrt(Sigma_cuadrada);

Suma=0; %Variable de suma de errores for jj=1:Realizaciones

%Generacion de bits Bits=rand(1,100)>0.5; %Generacion de 100 Bits

aleatorios

%Modulacion Simbolos=QPSK_Mod(Bits);%Generacion de simbolos en QPSK

%Ruido Complejo Noise= (1/sqrt(2))* Sigma * (randn(1,length(Simbolos))+1i*

randn(1,length(Simbolos))); %Adicion de Ruido Gausiano y=Simbolos+Noise; %Demodular BitsDem=QPSK_Dem(y/(1/sqrt(2))); %Obtencion de bits con

normalizacion de energia Es=1 %Deteccion de errores No_bits_erroneos=sum(abs(BitsDem-Bits)); Suma=Suma+No_bits_erroneos; %Acumulacion de errores de

transmición

ContadorPB=ContadorPB+1; progressbar(ContadorPB/(Realizaciones*length(Eb_No)),1); end %Grafico de constelacion por nivel de Eb/No figure(2);

Page 5: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

scatter(real(y),imag(y)) xlabel('Real'); ylabel('Imaginario'); BER(1,ii)=Suma/(Realizaciones*Long_frame); end

% Calculo del BER de manera teorica BER_Teorico=0.5*erfc(sqrt(10.^(Eb_No/10))); % Graficar el resultado, Eb/No vs BER figure(3); semilogy(Eb_No,BER,'r-d',Eb_No,BER_Teorico,'b--o'); axis([0 10 10^-5 0.5]); xlabel('Eb/No [dBs]'); ylabel('BER'); legend('BER Simulado','BER Teorico','Location', 'NorthWest');

Función para Modulación

function [Simbolos]=QPSK_Mod(Bits) %Funcion que recive un conjunto de bits y los modula en simbolos QPSK %(c) Guillermo Adrián Rodríguez Barragán

BitsImpares = Bits(1:2:end); BitsPares = Bits(2:2:end);

Simbolos=zeros(1,2*length(BitsPares));

Simbolos = sqrt(1/2)*(1i*(2*BitsPares-1)+(2*BitsImpares-1));

Page 6: Bit Error Rate para modulación QPSK, Guillermo ARB.pdf

Función para Demodulación

function [Bits]=QPSK_Dem(Simbolos) %Funcion que recive simbolos en QPSK y regresa un conjunto de bits %(c) Guillermo Adrián Rodríguez Barragán

Bits=zeros(1,2*length(Simbolos));

for kk=1:length(Simbolos)

if( real(Simbolos(kk)) >=0 && imag(Simbolos(kk))>=0)%11 Bits(kk*2-1)=1; Bits(kk*2)=1; elseif(real(Simbolos(kk))<0 && imag(Simbolos(kk))>=0)%01 Bits(kk*2-1)=0; Bits(kk*2)=1; elseif(real(Simbolos(kk))<0 && imag(Simbolos(kk))<0)%00 Bits(kk*2-1)=0; Bits(kk*2)=0; elseif(real(Simbolos(kk))>=0 && imag(Simbolos(kk))<0)%10 Bits(kk*2-1)=1; Bits(kk*2)=0; end

end