Você está na página 1de 16

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

Fig1.BER 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');

Fig2.Curva 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.

Fig3.Curva 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

Fig4.Curva de probabilidad de error para la modulacin BPSK usando


102 bits

Fig5.Curva 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

Fig6.Curva de probabilidad de error para la modulacin BPSK usando


4
10 bits.

Fig7.Curva 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

Fig8.Curva de probabilidad de error para la modulacin BPSK usando


106 bits.

Fig9.Curva 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

Você também pode gostar