Sunteți pe pagina 1din 36

Generacin de variable s aleatorias

20 de Febrero de 2007 1

NDICE
Definicin de simulacin. Generacin de variables aleatorias: Generacin de nmero aleatorios Mtodo de la funcin inversa Otros mtodos: Composicin Convolucin Transformaciones conocidas Generacin de secuencias Comprobacin de resultados Bibliografa

20 de Febrero de 2007 2

DEFINICIN DE SIMULACIN
SIMULACIN: "Experimentar con modelos matemticos en un computador". Esquema general de la simulacin: Experimentacin/Medida Anlisis de Sistema resultados Generacin de Modelo matemtico seales de entrada del sistema Simulacin Anlisis de resultados

En este curso cubriremos los tres aspectos Notar que, al trabajar en computador, siempre trabajaremos con secuencias discretas (muestras, en todo caso, de seales contin uas)
20 de Febrero de 2007 3

GENERACIN DE VARIABLES ALEATORIAS


Muchos modelos de sistemas reales contienen elementos que precisan o admiten un modelado estadstico: Sistemas de comunicaciones: ruido, desvanecimiento, ... Sistemas de conmutacin: llegadas de usuarios al sistema, duracin de servicios, ...

Sistemas sensores: proceso de deteccin, proceso de medida, ... ... Modelado toma forma definiendo: Variables aleatorias que rigen ciertos comportamientos del sistema Procesos estocsticos para modelar variacin de entradas en el tiempo. Se deben definir mtodos para generar muestras de variables aleatorias y muestras de procesos estocsticos.
20 de Febrero de 2007 4

GENERACIN DE VARIABLES ALEATORIAS (II)

Esquema general de generacin de variables aleatorias y muestr as de procesos estocsticos: Generacin de {Ui} Transformacin {xi} nmeros X=f(U) pseudoaleatorios {Ui}: Conjunto de nmeros generados en el computador, que siguen una distribucin uniforme entre 0 y 1, independientes. {xi}: Conjunto de nmeros que pueden verse como: Muestras de una determinada variable aleatoria Muestras de un proceso estocstico en distintos instantes de tiempo
20 de Febrero de 2007 5

GENERACIN DE NUMEROS ALEATORIOS

Nmeros aleatorios: los que generan variables aleatorias con distribucin uniforme entre 0 y 1. Importante: Poder reproducir exactamente el mismo experiment o: Detectar casos singulares Comparar sistemas similares bajo condiciones idnticas. Objetivo: U(0,1)

Secuencia de nmeros independientes linealmente: Incorrelados Secuencia reproducible a partir de pocos datos Coste computacional reducido

20 de Febrero de 2007 6

GENERACIN DE NUMEROS ALEATORIOS (II)


Existen varias familias de mtodos de generacin de nmeros aleatorios. Aqu explicaremos el funcionamiento de los ms usuales: tipo congruencial lineal. Frmula: Genera una secuencia dezenteros {zi}m zi=(a i1 + c) mod como: m es el mdulo a es el multiplicador c es el incremento m>0 , m>a , m>c El nmero aleatorio entre 0 y 1 se obtiene com o: Ui=zi/m

20 de Febrero de 2007 7

GENERACIN DE NUMEROS ALEATORIOS (III)


Propiedades: Ecuacin recursiva: con un valor inicial (z ) se define la
o

secuencia completa. A este valor se el denomina semilla aleatoria. Como mximo se pueden conseguir m nmeros aleatorios distintos. Tiene comportamiento cclico. Longitud del ciclo como mximo m, depende de z0. Que pasa si z =0? Seleccin de z puede ser importante.
00

No puede salir cualquier nmero, solo los de la forma z/m. Dependencia fuertemente no lineal Ejemplo: funcin rand de MATLAB 4:

zi=(77 zi1) mod(2311)


20 de Febrero de 2007 8

GENERACIN DE NUMEROS ALEATORIOS (IV)

Otros mtodos, con carcter general, mantienen misma estructu ra: Ecuacin recursivas, reproducibles a partir de valor inicial seleccionable.

Dependencias no lineales => lineales implican correlacin entre muestras. Tienen comportamiento cclico.

20 de Febrero de 2007 9

GENERACIN DE VARIABLES ALEATORIAS


Sabemos generar U(0,1). Aqu generalizaremos para conseguir muestras que: Sigan una distribucin deseada (funcin de distribucin F (x) o
X

densidad de probabilidad fX(x)). Sean independientes (linealmente). Generacin de {Ui} nmeros pseudoaleatorios Transformacin X=f(U) {xi}

Como debe ser f(U) para conseguir la distribucin desea da

20 de Febrero de 2007 10

MTODO DE LA FUNCIN INVERSA


Mtodo para funciones continuas: f(U)=FX1(U) Demostracin de su validez: Definimos Y=f(U) Queremos calcular F (y)=P(Yy)
Y

F (.) es montona creciente => P(Yy)=P(F (Y)F (y))


XXX

F (y)=P(F (f(U))F (y))


YXX 1

F (y)=P(F (F(U))FX(y))YXX F (y)=P(UF (y))


YX

Como U es una variable aleatoria uniforme, si 0<p<1 P(Up)=p. Por tanto F (y)=F (y)
YX

20 de Febrero de 2007 11

MTODO DE LA FUNCIN INVERSA (II)

U 1 fU(U)

FX(X)

0 fX(X) X
20 de Febrero de 2007 12

MTODO DE LA FUNCIN INVERSA (III)

Generacin completa de una muestra de una variable aleatoria: Se genera un numero aleatorio u con un generador de nmeros
i

aleatorios. Se transforma utilizando x =F(ui) iX Propiedades del mtodo: Si podemos asumir que los nmeros aleatorios son independientes, las muestras de las variables aleatorias transformadas tambin sern independientes General, vale para cualquier distribucin. 1 Problema: Generar F(U)
1 X

20 de Febrero de 2007 13

MTODO DE LA FUNCIN INVERSA (IV)

Extensin a variables aleatorias discretas: Solo los puntos x tienen una cierta probabilidad de aparecer
k

(p(xk)).

F X x=P X x= p x x fin y al cabo, son distribuciones como cualquier otr xi Al


i

a Veamos grficamente

20 de Febrero de 2007 14

MTODO DE LA FUNCIN INVERSA (V)

U 1 fU(U)

FX(X)

0 fX(X) X
20 de Febrero de 2007 15

MTODO DE LA FUNCIN INVERSA (VI)

Lo que cambia es el mtodo de generacin: Generacin completa de una muestra de una variable aleatoria discreta: Se genera un numero aleatorio u con un generador de nmeros
i

aleatorios. Se transforma seleccionando el menor x tal que u <F(x ).


kik

Implementacin prctica: Ordenar xk, ir recorriendo hasta que se cumpla la anterior condicin, devolver xi=xk. Generalizacin a distribuciones mixtas es inmediata.
20 de Febrero de 2007 16

EJEMPLOS
Generacin de muestras que siguen una distribucin exponencial: f (x)=1/c exp(x/c) para valores positivos de x.
X

F (x)=1exp(x/c)
X 1

f(u)=F(u)= c ln(1u)
X

MATLAB: >>x=c*log(1rand(1,1)); Generacin de muestras que siguen una distribucin discreta: p(1)=1/3, p(2)=1/2, p(4)=1/6 MATLAB: >>u=rand(1,1) >>if(u<1/3) x=1; >>else if(u<5/3) x=2; >>else x=4;

20 de Febrero de 2007 17

OTROS MTODOS

Problema del mtodo anterior es sintetizar FX1(U). En ocasiones, mas sencillo emplear propiedades de distribucione s. Ejemplos: Composicin Convolucin Transformaciones conocidas

20 de Febrero de 2007 18

COMPOSICIN

Mtodo tpico para generar distribuciones multimodales: fX(X)=p1fX1(X)+p2fX2(X)+p3fX3(X)+ ...+pNfXN(X) Si una distribucin es mezcla estadstica de otras, por que no: Generar una variable aleatoria discreta coherente con la probabilidad de cada modo Seleccionar el modo resultante Generar la variable aleatoria con la distribucin asociada al modo.

20 de Febrero de 2007 19

COMPOSICIN (II)

Ejemplo: distribucin de Laplace fX(X)=1/(2c) exp(|x|/c) Puede verse como composicin de dos exponenciales, una positiva y otra negativa Generando dos nmeros aleatorios u y u se puede calcular
12

decidiendo con el primero el signo (equiprobable) y con el segundo el mdulo (exponencial). MATLAB: if rand(1,1)<0.5 x=c*log(1rand(1,1)); else x=c*log(1rand(1,1));

20 de Febrero de 2007 20

CONVOLUCIN

En otras ocasiones, se sabe que una variable aleatoria es resulta do de la suma de varias otras variables. Si dos variables aleatorias (X e Y) son independientes, la funcin densidad de probabilidad se la suma Z=X+Y puede demostrarse (ISA) que es: fZ(z)=fX(z)*fY(z) => de hay el nombre del mtodo. Si sabemos que Z cumple esta propiedad, por que no: Generar muestras (en el ejemplo xe yi) de las variables i aleatorias originales (X e Y en el ejemplo) utilizando el mtodo que sea preciso. Sumarlas (en el ejemplo, z =x +y )
iii

20 de Febrero de 2007 21

CONVOLUCIN (II)

Ejemplo 1: mErlang que es la suma de m exponenciale s. MATLAB: x=0; for i=1:m x=xc/m *log(1rand(1,1)); end

20 de Febrero de 2007 22

CONVOLUCIN (III)
Ejemplo 2: Sntesis de gaussianas como suma de uniformes Teorema de lmite central. Sumando suficientes uniformes, tenderemos a una gaussiana. Mtodo clsico usa 12 => resultado: N(6,1)

20 de Febrero de 2007 23

TRANSFORMACIONES CONOCIDAS

En ocasiones, se conocen relaciones entre variables aleatorias q ue permiten transformar unas en otras. Ejemplo clsico: Generacin de variables aleatorias gaussianas Propiedad conocida: Si tenemos dos variables aleatorias gaussianas X e Y (media nula y varianza igual): Cual es la distribucin de |X+jY|? La de M=|X+jY|2 ? Y la de F=arg(X+jY)? Hay dependencia entre M y F? Generar variables aleatorias exponencial y uniforme no es complicado => ya hemos visto como

20 de Febrero de 2007 24

TRANSFORMACIONES CONOCIDAS (II)


A partir de dos variables aleatorias, una exponencial (M) y la otr a uniforme entre 0 y 1 (F), se pueden generar dos gaussianas independientes X = M cos2 F utilizando las siguientes transformaciones:
Y = M sen 2 F El mtodo completo quedar: Generar dos variables aleatorias uniformes (u y u ).
12

Utilizar la siguiente transformacin:


x=

2 lnu 1 cos2 u2

Y = 2 ln u 1 sen 2 u2 Resultado: pareja de dos muestras de una gaussiana (N(0,1))), independientes entre si
20 de Febrero de 2007 25

TRANSFORMACIONES CONOCIDAS (III)


Ejemplo 2: Como modificar media y varianza de una variable aleatoria? Traslacin de la media: Y=X+m => aplicar sobre muestras generadas de X (comprobar que E{Y}=E{X}+m): yi=xi+m Modificacin de la varianza: Recordar que Y= a X implica que Var(Y)=a2 Var(X). Aplicar de forma equivalente a las muestras generadas de X: yi=a xi Traslacin de la media y modificacin de la varianza conjuntas: Que pasa con media y varianza si Y=a X+m? Pensar antes de ir a la prctica.

20 de Febrero de 2007 26

GENERACIN DE SECUENCIAS

De entre todos los procesos aleatorios, nos vamos a quedar con los estacionarios. Existen mtodos para otras familias, pero no son de inters en este curso. OBJETIVO: Generar un proceso estocstico (discreto) con funcin densidad de probabilidad ( o distribucin) y correlacin ( o espectro) arbitrarias. Problema sin solucin general.

En general, incluso cuando es posible, sintetizar adecuadamente el proceso es difcil Vamos a exponer un mtodo de generacin lo ms genrico posible
20 de Febrero de 2007 27

GENERACIN DE SECUENCIAS (II)


Como generar procesos gaussianos con una cierta correlaci n? Recordar de ISA: Si tenemos un ruido blanco gaussiano Pasamos por un filtro con respuesta en frecuencia H(f) Espectro del ruido coloreado: |H(f)|2 Distribucin sigue siendo gaussiana. Este es el fundamento de la generacin de secuencias correla das: Generacin de x[n] y[n] H(f) gaussianas SY(f)=|H(f)|2 RY[n]=1{|H(f)|2}
20 de Febrero de 2007 28

GENERACIN DE SECUENCIAS (III)

Tratemos de generalizar ahora a otras distribucion es: Que pasa si: x[n] Generacin de variables aleatorias ?

H(f)

y[n]

Espectro: |H(f)|2 Pero distribucin se modifica: cada salida es resultado de suma s ponderadas de entradas Efecto sumamente difcil de controlar
20 de Febrero de 2007 29

GENERACIN DE SECUENCIAS (IV)


Cambiemos ahora el mtodo: Que pasa si : Generacin de x[n] gaussianas ?

H(f)

y[n]

f(Y)

z[n]=f(y[n])

Z=f(Y): No linealidad sin memoria. Distribucin es una gaussiana tras pasar por la transformacin f(Y) => predecible => controlando f(Y) podemos generar la distribucin deseada. Espectro, al pasar por no linealidad, se distorsiona (y por tanto correlacin). Tambin es predecible esta distorsin => controlando H(f), para una f(Y) dada, se puede controlar 20 de Febrero de 2007 30 espectro de la salida.

GENERACIN DE SECUENCIAS (V)

Como calcular f(Y)?: Puede hacerse en dos etapas: 1 Convertir gaussiana en uniforme: al igual que F(.) sirve para
X

transformar una uniforme en una distribucin, FX(.) sirve para transformar esa distribucin en uniforme. Convertir uniforme en la distribucin deseada (mtodo de la funcin inversa): 1 f(Y)=F(FY(Y))Z

20 de Febrero de 2007 31

GENERACIN DE SECUENCIAS (VI)


Como calcular H(f)?: Autocorrelacin antes de pasar por no linealidad: R'(n)

Funcin densidad de probabilidad conjunta de dos muestras (u y v) de la variable aleatoria y[n] separadas n muestras:
11 2 2 g u , v , R ' n=exp u v 2R ' n uv

Autocorrelacin a la salida22 1R ' n (z[n]):


R n =

A partir de autocorrelacin =>|H(f)|2={R'[n]}. Usar mtodos de diseo de filtros digitales.


20 de Febrero de 2007 32

f u f v g u , v , R ' n dudv

GENERACIN DE SECUENCIAS (V)

Relacin R'(n)=funcin(R(n)) complicada de resolver en general. En introduccin terica a la prctica se da resuelta para algunos casos de distribuciones. En introduccin terica tambin se propone un mtodo de sntes is de filtros a partir de R(n) (usando la DFT).

20 de Febrero de 2007 33

COMPROBACIN DE RESULTADOS

En la prctica se van a generar un conjunto de muestras de variables aleatorias y de procesos estocsticos. Hay que validar los resultados. Para ello utilizaremos un conjunto de funciones de MATLAB, aplicndolas sobre los resultados obtenidos para estimar parmetros de las variable aleatorias y procesos estocsticos generados. En prcticas posteriores veremos que es lo que hacen intername nte estas funciones.
20 de Febrero de 2007 34

COMPROBACIN DE RESULTADOS (II)

Habr que utilizar las siguientes funciones de MATLAB: mean: media std: desviacin tpica (raiz cuadrada de la varianza) xcorr: correlacin cruzada (como la usara para calcular autocorrelacin?) psd: densidad espectral de potencia de una seal hist: Histograma (recordar de LSCM)

20 de Febrero de 2007 35

RESUMEN

Generacin de {Ui} Transformaciones nmeros X=f(U) pseudoaleatorios

Anlisis de {xi} resultados

Requisitos: Distribucin Espectro/Autocorrelacin

20 de Febrero de 2007 36

S-ar putea să vă placă și