UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES 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 nmeros
aparentemente aleatorios pero que cumplen con unos algoritmos lgicos .Este
algoritmo es siempre el mismo por lo tanto al iniciar Matlab la secuencia
generada es la misma.
Periodo?
n
Rta: Si, Siendo n=numero de bits su periodo es 2 1 ciclos de reloj
Secuencia de 1000 bits con funcin rand
% Ejercicio 1.1
% Secuencia aleatoria binaria con la funcin rand
k=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
end
end
r
s
SECUENCIA BINARIA DE n DATOS
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
cada vez que se llama a rand comienza la secuencia?
Rta: Cuando se llama la funcin 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 continuacin 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 Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES 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 da?
Rta: Sern los mismos datos ya que cada ves que se cierra MatLab y se abre
genera las misma secuencia
- son los mismos bits cada da?
Rta: Si
-cmo resolverlo?
Para resolverlo la mejor solucin es implantando un valor semilla que sea aleatorio, este
valor es el nmero en el que inician las secuencias del algoritmo interno, y si este valor
es diferente la serie de nmeros generada ser diferente:
Ejemplo:
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
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 nmeros decimales la posibilidad
de que se generen secuencias repetidas es casi nula.
Qu hace la funcin randint ?
Esta funcin genera nmeros enteros entre 0 y 1 generalmente pero estos pueden
ser modificados con parmetros:
randint(1,10)
ans = 1 0
Para incrementar su valor se puede modificar la funcin as:
randint(1,10,10,0)
ans =
Genera nmeros enteros aleatorios entre 0 y 10 ya que los dos ltimos
parmetros son lmite max y limite min.
-y randsrc?
Rta: Esta funcin genera un escalar aleatorio que es o bien 1 o -1, con igual
probabilidad.
Ejemplo: randsrc(1,6)
ans =
-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
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Usando la funcin randn genere una secuencia AWGN de 1000 muestras con
potencia N=1 y media nula.
Rta: con la siguiente instruccin se generaron 1000 muestras
x=randn (1000,1)
N=var (x)
-----
N=
0.9979
Y la media es
mean (x)
media = -0.0326
Compruebe que la varianza de la secuencia es 1.
Rta: usando la instruccin
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 instruccin 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 all
clc
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
x=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
end
end
Calcule la potencia de la seal generada, S.
Rta: Con el siguiente programa se hallo la potencia de la seal generada
clear all
clc
x=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
end
end
s=var(a)
s = 0.2502
Genere 1000 muestras de ruido con una potencia tal que se cumpla que la
relacin S/N es 10 dB
Rta: Conociendo del ejercicio anterior que la potencia de la seal generada es:
S=0.25 y que la relacin seal a ruido que se busca es: S/N=10 DB
Con las ecuaciones
S ( DB)N (DB)=10 DB
S
=10
N
(Lineal)
Se despeja N
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
0.25
=N
10
(Lineal)
Siendo N=0.025
Para obtener una varianza de 0.025 es necesario escalar las muestras como se
muestra a continuacin, (con sqrt (0.025) se cumple la condicin)
x=randn (1000,1)*sqrt (0.025)
varianza = var(x)
varianza = 0.0244
As:
0.25
=10.4
0.0244
; SE GENERAN LAS MUESTRAS
N =0.0244 (lineal)
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 condicin S/N =10.
EJERCICIO 1_4
Genere 10000 smbolos aleatorios (-1,1)
-Compruebe que para esa secuencia, la potencia de seal es s= 1
Rta: Usando la funcin : 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 seal =1
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
%*******************FUNCION BER********************
%*********INTEGRANTES:JUAN CARLOS VCARGAS Y FRANCY PINEDA
%****HALLANDO BER AGRAGANDO RUIDOCON DOS CANALES Q Y I
function BER_bpsk(Nbits,EbNodB)
clc
N = Nbits
% numero de bits por simbolo
rand('state',100);
% Ruido del canal Q
randn('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 -> 1
potencia_s =var(s)
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Ruido AWGN
Eb_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 all
figure
semilogy(Eb_N0_dB,theoryBer,'b.-');
hold on
semilogy(Eb_N0_dB,simBer,'mx-');
axis([-3 10 10^-5 0.5])
grid on
legend('Teorico', 'Simulacion');
xlabel('Eb/No, dB');
ylabel('Bit Error Rate');
title('Probabilidad de error para la modulacin BPSK');
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
[Link] obtenido para Eb/No =6.98 db
Para comprobar siendo Eb/No =6.98db= 5
Buscando en la tabla 5 = 2.23
3
Se obtiene de la Tabla 1 el valor de BER = 110
Observar Fig1.
Ing. Herman Fernndez
que se aproxima al de la
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
Tabla1. Funcin complementaria de error.
El canal consiste simplemente en la adicin de ruido AWGN de
media nula usando la funcin randn y escalando el resultado de
forma adecuada para la relacin Eb/No sea la deseada (tenga en
cuenta la relacin entre S/N y Eb/No para este caso).
Detecte segn 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
instruccin.
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 Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES 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
funcin del ejercicio 1-4 y compare con la frmula terica:
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)
clc
N = Nbits
% numero de bits por simbolo
rand('state',100);
% Ruido del canal Q
randn('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 -> 1
potencia_s =var(s)
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)]; % Ruido AWGN
Eb_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 all
figure
semilogy(Eb_N0_dB,theoryBer,'b.-');
hold on
semilogy(Eb_N0_dB,simBer,'mx-');
axis([0 10 10^-5 0.5])
grid on
legend('Teorico', 'Simulacion');
xlabel('Eb/No, dB');
ylabel('Bit Error Rate');
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
title('curva de probabilidad de error para la modulacin BPSK');
[Link] de probabilidad de error para la modulacin BPSK
Compruebe que Nbits>10x+1 para una buena estimacin de BER=10-x.
Utilice la funcin semilogy para representar los resultados de
BER respecto a Eb/No en dB
Rta: A continuacin se mostraran las graficas de BER con respecto Eb/No, en la cual se varan los
nmeros de bits para saber cuantos se necesitan para una buena estimacin.
[Link] de probabilidad de error para la modulacin BPSK usando
101 bits
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
[Link] de probabilidad de error para la modulacin BPSK usando
102 bits
[Link] de probabilidad de error para la modulacin BPSK usando
3
10 bits
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
[Link] de probabilidad de error para la modulacin BPSK usando
4
10 bits.
[Link] de probabilidad de error para la modulacin BPSK usando
105 bits.
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
[Link] de probabilidad de error para la modulacin BPSK usando
106 bits.
[Link] de probabilidad de error para la modulacin BPSK usando
7
10 bits.
Conclusion
Ing. Herman Fernndez
UNIVERSIDAD PEDAGGICA Y TECNOLGICA DE COLOMBIA
FACULTAD SEDE SECCIONAL SOGAMOSO
ESCUELA DE INGENIERA ELECTRNICA
COMUNICACIONES II TALLER II
FRANCY PINEDA Y JUAN CARLOS VARGAS
De las graficas anteriores se puede observar que para obtener un valor
6
confiable de la BER es necesario mas de 10 bits
Ing. Herman Fernndez