Upload
andresrojas
View
213
Download
0
Embed Size (px)
DESCRIPTION
comunicaciones
Citation preview
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS TALLER II
Ejercicio 1-1
¿Es una secuencia pseudoaleatoria?
Rta: Si. La secuencia rand de MatLab consiste en generar números aparentemente aleatorios pero que cumplen con unos algoritmos lógicos .Este algoritmo es siempre el mismo por lo tanto al iniciar Matlab la secuencia generada es la misma.
¿Periodo?
Rta: Si, Siendo n=numero de bits su periodo es 2n−1 ciclos de reloj
Secuencia de 1000 bits con función rand
% Ejercicio 1.1% Secuencia aleatoria binaria con la función randk=100;h=10;r=rand(k,h);s=rand(k,h);for i=1:k for j=1:h if r(i,j)>=0.5 s(i,j)=1; else s(i,j)=0; end endendrs
SECUENCIA BINARIA DE n DATOS
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
¿cada vez que se llama a rand comienza la secuencia?
Rta: Cuando se llama la función rand en MatLab genera una determinada secuencia, cuando se vuelve a llamar genera una diferente
-¿y cada vez que se arranca Matlab?
Rta: Se genera la misma secuencia cada vez que se abre una y otra vez
A continuación se presenta un ejemplo en el que se muestra a diferente hora la misma secuencia generada (para cada caso se cerro MatLab).
Hora: 3:18 pm
Hora: 3:21pm
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Hora: 3:24 pm
¿Qué pasa si quiero simular 100.000.000 de bits y hago 5.000.000 cada día?
Rta: Serán los mismos datos ya que cada ves que se cierra MatLab y se abre genera las misma secuencia
- ¿son los mismos bits cada día?
Rta: Si
-¿cómo resolverlo?
Para resolverlo la mejor solución es implantando un valor semilla que sea aleatorio, este valor es el número en el que inician las secuencias del algoritmo interno, y si este valor es diferente la serie de números generada será diferente:
Ejemplo:Rand (1,5)
ans = 0.8147 0.9058 0.1270 0.9134 0.6324 (primera secuencia )
Teniendo en cuenta que para la siguiente secuencia se cerró MatLab y se volvió abrir
Con valor semilla = 3:
i=3 rand('state',i) rand(1,5)ans = 0.5162 0.2252 0.1837 0.2163 0.4272 (secuencia diferente a la primera)
Ya que este valor semilla puede ser cualquiera con 48 números decimales la posibilidad de que se generen secuencias repetidas es casi nula.
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
¿Qué hace la función randint ?
Esta función genera números enteros entre 0 y 1 generalmente pero estos pueden ser modificados con parámetros:
randint(1,10)ans = 1 0 1 0 1 0 0 0 1 0
Para incrementar su valor se puede modificar la función así:randint(1,10,10,0)
ans = 9 2 6 4 8 7 4 0 8 4
Genera números enteros aleatorios entre 0 y 10 ya que los dos últimos parámetros son límite max y limite min.
-¿y randsrc?
Rta: Esta función genera un escalar aleatorio que es o bien 1 o -1, con igual probabilidad.
Ejemplo: randsrc(1,6)
ans = 1 -1 1 -1 -1 1
El resultado es una matriz con 3 valores de 1 y 3 valores de -1.
EJERCICIO 1_2
Generando ruido AWGN en MATLAB
Usando la función randn genere una secuencia AWGN de 1000 muestras con potencia N=1 y media nula.
Rta: con la siguiente instrucción se generaron 1000 muestras
x=randn (1000,1)
N=var (x) ----- N = 0.9979
Y la media esmean (x) media = -0.0326
Compruebe que la varianza de la secuencia es 1.
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS Rta: usando la instrucción
var (x) ans = 0.9979
A partir de la secuencia generada, escale la misma para que la potencia de ruido sea N=5 manteniendo la media nula.
Rta: usando la instrucción para escalar la secuencia
x=randn (1000,1)* sqrt (5)
Se comprueba que la varianza es 5 y la media es nula
Varianza = var(x)
varianza = 4.9860
mean(x) ans = 0.0825
Compruebe que la varianza de la secuencia es 5
Rta: varianza = var(x)
varianza = 4.9860
EJERCICIO 1_3
Generando ruido AWGN en MATLAB
Generar 1000 bits (0,1) de forma aleatoria1000 bits (0,1)
Rta: Con el siguiente programa se generan los 1000 bits
clear allclcx=1000000;m=1;r=rand(x,m);for i=1:x for j=1:m if r(i,j)<=0.5 a(i,j)=0; else a(i,j)=1; end endend
Calcule la potencia de la señal generada, S.
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Rta: Con el siguiente programa se hallo la potencia de la señal generada
clear allclcx=1000;m=1;r=rand(x,m);for i=1:x for j=1:m if r(i,j)<=0.5 a(i,j)=0; else a(i,j)=1; end endends=var(a)
s = 0.2502
Genere 1000 muestras de ruido con una potencia tal que se cumpla que la relación S/N es 10 dB
Rta: Conociendo del ejercicio anterior que la potencia de la señal generada es:
S=0.25 y que la relación señal a ruido que se busca es: S/N=10 DB
Con las ecuaciones
S(DB )−N (DB )=10 DB
SN
=10 (Lineal)
Se despeja N
0.2510
=N (Lineal) Siendo N=0.025
Para obtener una varianza de 0.025 es necesario escalar las muestras como se
muestra a continuación, (con sqrt (0.025) se cumple la condición)
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
x=randn (1000,1)*sqrt (0.025) ; SE GENERAN LAS MUESTRAS varianza = var(x)
varianza = 0.0244 N =0.0244 (lineal)
Así:
0.250.0244
=10.4 Lineal
Para corrobar se pasa S y N a DB
S=-6.02 DB
N=-16.12 DB
S-N= 10DB
-6.02-(-16.12)=10.1
Y de esta manera se cumple con la condición S/N =10.
EJERCICIO 1_4
Genere 10000 símbolos aleatorios (-1,1)-Compruebe que para esa secuencia, la potencia de señal es s= 1
Rta: Usando la función : BER_bpsk(Nbits,EbNodB)
Ejemplo: siendo Nbits=10^6 y EbNodB=6.98;
BER_bpsk(10^6,6.98);
potencia_s = 1.0000 % potencia de señal =1
………
%*******************FUNCION BER********************%*********INTEGRANTES:JUAN CARLOS VCARGAS Y FRANCY PINEDA %****HALLANDO BER AGRAGANDO RUIDOCON DOS CANALES Q Y I function BER_bpsk(Nbits,EbNodB)clcN = Nbits % numero de bits por simbolo
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS rand('state',100); % Ruido del canal Qrandn('state',200); % Ruido del canal I % Transmisor ip = rand(1,N)>0.5; % generando 0y 1 con igual probabilidad (umbral de 0)s = 2*ip-1 % modulacion BPSK 0 -> -1; 1 -> 1potencia_s =var(s)n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Ruido AWGNEb_N0_dB = EbNodB; % Multiples valores de Eb/N0 for ii = 1:length(Eb_N0_dB) % Adicionando RUIDO y = s + 10^(-Eb_N0_dB(ii)/20)*n; % AWGN % Receptor ipHat = real(y)>0; % Contando errores nErr(ii) = size(find([ip- ipHat]),2); end simBer = nErr/N; % simulando BER theoryBer = 0.5*erfc(sqrt(10^(Eb_N0_dB/10))); % BER teorico % Graficando close allfiguresemilogy(Eb_N0_dB,theoryBer,'b.-');hold onsemilogy(Eb_N0_dB,simBer,'mx-');axis([-3 10 10^-5 0.5])grid onlegend('Teorico', 'Simulacion');xlabel('Eb/No, dB');ylabel('Bit Error Rate');title('Probabilidad de error para la modulación BPSK');
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Fig1.BER obtenido para Eb/No =6.98 db
Para comprobar siendo Eb/No =6.98db= 5 Buscando en la tabla √5= 2.23
Se obtiene de la Tabla 1 el valor de BER =1∗10−3 que se aproxima al de la Observar Fig1.
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Tabla1. Función complementaria de error.
El canal consiste simplemente en la adición de ruido AWGN de media nula usando la función randn y escalando el resultado de forma adecuada para la relación Eb/No sea la deseada (tenga en cuenta la relación entre S/N y Eb/No para este caso).
Detecte según un umbral de 0
Rta: Un umbral de cero quiere decir que los datos generados tengan igual probabilidad y esto lo garantizamos con la siguiente instrucción.
ip = rand(1,N)>0.5; %0 y 1 con igual probabilidad(umbral de 0)s = 2*ip-1 % modulacion BPSK 0 -> -1; 1 -> 1
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS EJERCICIO 1_5
Objetivo: curva_BER_bpsk(Nbits);
-Calcule la BER para un rango de valores de Eb/No=0 a 10dB a partir de la función del ejercicio 1-4 y compare con la fórmula teórica:
Rta: Para obtener la curva de la BER se modifica el programa del punto 1.4 con el fin de hacer que este funcione en un rango de 0 a 10 db
Programa para generar BER respecto a Eb/No en dB
%*******************FUNCION BER********************%*********INTEGRANTES:JUAN CARLOS VCARGAS Y FRANCY PINEDA %****HALLANDO BER AGRAGANDO RUIDOCON DOS CANALES Q Y I function curva_BER_bpsk(Nbits)clcN = Nbits % numero de bits por simbolo rand('state',100); % Ruido del canal Qrandn('state',200); % Ruido del canal I % Transmisor ip = rand(1,N)>0.5; % generando 0 y 1 con igual probabilidad (umbral de 0)s = 2*ip-1 % modulacion BPSK 0 -> -1; 1 -> 1potencia_s =var(s)n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Ruido AWGNEb_N0_dB = [0:10]; % Multiples valores de Eb/N0 for ii = 1:length(Eb_N0_dB) % Adicionando RUIDO y = s + 10^(-Eb_N0_dB(ii)/20)*n; % AWGN % Receptor ipHat = real(y)>0; % Contando errores nErr(ii) = size(find([ip- ipHat]),2); end simBer = nErr/N; % simulando BER theoryBer = 0.5*erfc(sqrt(10.^(Eb_N0_dB/10))); % BER teorico % Graficando close allfiguresemilogy(Eb_N0_dB,theoryBer,'b.-');hold onsemilogy(Eb_N0_dB,simBer,'mx-');axis([0 10 10^-5 0.5])grid onlegend('Teorico', 'Simulacion');xlabel('Eb/No, dB');ylabel('Bit Error Rate');title('curva de probabilidad de error para la modulación BPSK');
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Fig2.Curva de probabilidad de error para la modulación BPSK
Compruebe que Nbits>10x+1 para una buena estimación de BER=10-x.
– Utilice la función semilogy para representar los resultados deBER respecto a Eb/No en dB
Rta: A continuación se mostraran las graficas de BER con respecto Eb/No, en la cual se varían los números de bits para saber cuantos se necesitan para una buena estimación.
Fig3.Curva de probabilidad de error para la modulación BPSK usando
101 bits
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Fig4.Curva de probabilidad de error para la modulación BPSK usando
102 bits
Fig5.Curva de probabilidad de error para la modulación BPSK usando
103 bits
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Fig6.Curva de probabilidad de error para la modulación BPSK usando
104 bits.
Fig7.Curva de probabilidad de error para la modulación BPSK usando
105 bits.
Ing. Herman Fernández
UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIAFACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERÍA ELECTRÓNICACOMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Fig8.Curva de probabilidad de error para la modulación BPSK usando
106 bits.
Fig9.Curva de probabilidad de error para la modulación BPSK usando
107 bits.
Conclusion
De las graficas anteriores se puede observar que para obtener un valor confiable de la BER es necesario mas de 106 bits
Ing. Herman Fernández