Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Hora: 3:21pm
Hora: 3:24 pm
Rand (1,5)
ans = 0.8147
0.9058
0.1270
0.9134
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
Ya que este valor semilla puede ser cualquiera con 48 nmeros decimales la posibilidad
de que se generen secuencias repetidas es casi nula.
-1
-1
-1
EJERCICIO 1_2
Generando ruido AWGN en MATLAB
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
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
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
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)
Lineal
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
%*******************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');
Observar Fig1.
que se aproxima al de la
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');