Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducción a Simulación
Dr. Marvin Sánchez Garache
Ph.D. in Radio Communication Systems
Programa de Investigacion TIC
Facultad de Electrotecnia y Computación
Universidad Nacional de Ingeniería
E-mail: msgarache@Hotmail.com
http://mgticm2017.uni.edu.ni/
© Dr. M . S. Garache
Contenido del curso
1. Introducción
2. Números Aleatorios y Simulación Monte Carlo
3. Generación de Variables Aleatorias Discretas
4. Generación de Variables aleatorias continuas
5. Simulación a través de eventos discretos
6. Análisis de resultados de la simulación
7. Técnicas de validación (Prueba de hipótesis)
8. Cadenas de Markov y Simulated Annealing
© Dr. M . S. Garache, 2
Tópicos en este capítulo
• Generalidades
• Terminología
• Ventajas y desventajas de simulación
• Tipos de simulación
• Opciones de software
• ¿Cómo y cuando utilizar simulación?
© Dr. M . S. Garache, 3
The Engineer: A Problem
Solver
Reality
Tools Simplification
• Mathematics • Model
• Physics
• Probability theory
© Dr. M . S. Garache, 4
Model: Abstraction of
Reality
The Resistor
R = V/I
Measurement number
© Dr. M . S. Garache, 5
Models
Deterministic models
• R = V/I
• R = V/I + f(T)
• R = V/I + f(T) + g(production)
• …
• Increasing complexity to describe behavior
© Dr. M . S. Garache, 7
Que es Simulación?
Frontera del sistema
observador
© Dr. M . S. Garache, 8
¿Porqué y cuando usar Simulación?
© Dr. M . S. Garache, 11
Ventajas/Desventajas de Simulación
• Desventajas/peligros:
– Comportamiento simulado puede diferir del real
(particularmente si se tienen errores de simulación)
– No es posible reproducir exactamente el “mundo real” (e.g.,
presunciones de linealidad y estacionalidad)
– Simulaciones altamente detallada no es escalable
(impráctico tiempo de simulación)
– Arte: determinar el nivel correcto de complejidad
requerida
– Precaución: Refleja el modelo adecuadamente la realidad?
– Confiabilidad estadística de los resultados requiere
adecuada verificación.
© Dr. M . S. Garache, 12
Del Sistema Real al modelo
• Simplificación
Sistema Real • Abstracción Modelo
• Presunción
AP1 Internet AP2
Modelo de
Ecuaciones Simulación
Modelo
Hardware Analítico
Dispositivo
Real Incremento de nivel
de Abstracción
© M . S. Garache , 2004
15
Áreas necesarias para simulación de
Sistemas de Comunicaciones
Procesamiento Teoría de
Dig. De Señales Probabilidades
Com.
Digitales Procesos
Simulación de Estocásticos
Sistemas de
Comunicación
Teoría de Sist.
Lineales Programación
Análisis
Teoría de
Numérico
Números
Generación de
números aleatorios
© Dr. M . S. Garache, 16
Efectos de la Complejidad del Modelo
Tiempo de Simulación
Región de operación
práctica
Corto
Bajo
Baja Alta
Complejidad del Modelo
© Dr. M . S. Garache, 17
Modelos Analíticos
• Analíticos: Presunciones y simplificaciones pueden
permitir uso de análisis matemático para resultados
aproximados que pueden resolverse usando e.g.
– Teoría de colas
– Ecuaciones diferenciales
– Programación lineal
• Problemas:
• Presunciones y simplificaciones en sistemas complejos pueden
resultar en errónea estimación de desempeño del sistema
real.
© Dr. M . S. Garache, 18
Tipos de Simulación
• Determinística: La entrada y reglas que gobiernan
comportamiento del sistema son deterministas. La
misma respuesta se obtiene cada vez que se ejecuta
la simulación (e.g PSPICE).
– Usada para ahorrar tiempo y evitar errores matemáticos
resultado de cálculo tedioso.
© Dr. M . S. Garache, 19
Etapas del Proceso de Simulación
© M . S. Garache , 2004
20
Ex: Señal determinista
Empleando Simulink queremos verificar el espectro de
magnitude de la suma de dos señales senoidales:
+ Spectrum
Analyzer
Fourier Transform
© Dr. M . S. Garache ,
21
Create a new Simulink design file.
• Start Matlab
• Run Simulink:
– >> Simulink
• To create a new Simulink
file press “Ctrl+N” or
select “New model” in the
menu bar of the Simulink
Library Browser
© Dr. M . S. Garache ,
22
Adding blocks to the Simulink
design window.
• you can import and add
various functional blocks
from the Simulink library
• The left side of Simulink
Library browser window
provides a list of the
function blocks, e.g.
Simulink /Sources
• We can drag and drop
functional blocks to our
design windows
© Dr. M . S. Garache ,
23
Adding the two signals
• Browse the categories: Source, sink and Math operations
• Create the system model show in the Fig. below
• Double click on the bloc in order to change the default
parameters.
Scope inputs:
• double-clicking the Scope block.
• click the icon Configuration
Properties:
(a) The parameter Number of ports (or
Number of axes) determines the
number of input ports of the Scope
block. Set it to 3
(b) Click the Logging (or History) tab
and unselect the check box Limit data
points to last.
© Dr. M . S. Garache ,
24
Sample Time parameter
• Sample time parameter sets the sample time
interval of the signal generated by the block.
– Typically, Sample time should be set much
smaller than the inverse of the Nyquist rate.
• make the sampled signal look like a
continuous signal when plotted.
• too small a value for Sample time will
increase simulation time
• For blocks with input port(s), Sample time of -1
simply copies (inherits) the Sample time of the
input signal(s).
© Dr. M . S. Garache ,
25
A simple adder model
• See the parameter of:
Sine Wave = 2 sin(4𝜋t) and
Sine Wave1 = sin(5.2𝜋t)
The sample time << 1/(2fs)=1/(5.2)
© Dr. M . S. Garache ,
26
Simulation Time
• The input in the menu bar of the design window is the
• Simulation stop time.
– Determines the execution time of the simulation, that is, the time up to
which point the signal is generated and processed, not the actual time
required for running the
• We want to see 20 cycles of the output waveform of the
Sine Wave, sin(4𝜋t).
Simulation stop time = 20 × (2𝜋∕4𝜋) = 10 seconds.
Then, Type in 10 in that input field.
© Dr. M . S. Garache ,
27
Simulation results & Scope
• You can change the viewing
ranges of the x axis (time axis)
and y axis in the Scope using
the zoom icons in the menu bar.
• icons for Zoom (to zoom in on
data in both the x and y
directions),
• ‘Zoom X-axis’, ‘Zoom Y-axis’,
and Autoscale. Autoscale
displays the whole graph.
© Dr. M . S. Garache ,
28
Ex 2: Real – no deterministic signal
1. Create the following Simulink model
© Dr. M . S. Garache ,
29
Ex2: Creating Subsystem Block
3. Select the blocks that
will be part of the
subsystem (from file and
Analog Filter)
4. Right-click one of the
selected blocks to activate a
pop-up menu and select
‘Create Subsystem from
Selection’, or simply press
‘Ctrl+G’.
5. Change the default subsystem
name, Subsystem, into Sound
Source.
6. Save the current design as
Sound_Source.slx in the
working directory
© Dr. M . S. Garache ,
30
Ex2: Spectrum analyzer & Speaker
• From Simulink/Signal Attribute add the block
“signal specification”,
• from DSP System toolbox/sink add the spectrum
analyzer
© Dr. M . S. Garache ,
31
Ex2: Results
© Dr. M . S. Garache ,
32
EX3: Que método usar para resolver el
siguiente problema? (E.6.5.1 P & S, p.292)
Asuma que la señal de información X(t) es una fuente Gausiana
estacionaria con media cero y densidad espectral de potencia:
2, f 100 Hz
Sx ( f ) =
0 , en otra parte
xˆ6 = 30
xˆ5 = 10
a1 a2 a3 a5 a6 a7
−60 −40 −20 20 40 60
xˆ4 = −10 x
Umbral de cuantificación xˆ3 = −30
xˆ2 = −50
xˆ1 = −70
© Dr. M . S. Garache, 34
Distorsión de Error
Cuadrático Medio
D = E[d ( X , Xˆ )] = E[( X − Q( X )) 2 ]
D= − 2
( x Q ( x )) f x ( x)dx
−
• Métodos: a1
ai
N −1
= ( x − xˆ1 ) 2 f x ( x)dx + ( x − xˆi ) 2 f x ( x)dx + ( x − xˆ
– Analítico
− – Numérico: i = posible
2
ai−1 resolver aN −1
numéricamente empleando la pdf de la
señal de entrada, la función Q(x)
– Simulación, podemos generar entradas
aleatorias x, a partir de la pdf y
comdeterminar el error entre la entrada
y la salida © Dr. M . S. Garache, 35
Distorsión
D = E[d ( X , Xˆ )] = E[( X − Q( X )) 2 ]
Q( x) = xˆi x Ri
D= − 2
( x Q ( x )) f x ( x)dx
−
a1 N −1 ai
= ( x − xˆ1 ) 2 f x ( x)dx + ( x − xˆi ) 2 f x ( x)dx + ( x − xˆ N ) 2 f x ( x)dx
− i =2
ai−1 aN −1 © Dr. M . S. Garache, 36
¿Qué necesitamos saber?
a1 N −1 ai
D = ( x − xˆ1 )2 f x ( x)dx + ( x − xˆi ) 2 f x ( x)dx + ( x − xˆ N ) 2 f x ( x)dx
− i =2
ai −1 aN −1
© Dr. M . S. Garache, 37
La distribución Gaussiana esta dada por:
( x−m)
1 −
f X ( x) = e 2 2
, 2 = var ianza, m = media
2
• Si el proceso es estacionario
100
2 = R( ) =0 = S ( f )df =
−
x
−100
2df = 400 (56dBm)
x2
1 −
f X ( x) = e 800
2 400
Para encontrar D podemos emplear más de
un métodos:
© M . S. Garache , 2004
40
Simulación: Usando MATLAB
% Encontrar la distorsión resultante
% Solución por simulación de ejemplo 6.5.1 de Proakis D=mean((x-xs).^2);
% Método: % Encontrar intervalo de confianza
% 1. Generamos la variable de entrada aleatoria normal con var_D=var((x-xs).^2); % Varianza de D
% potencia media 400. % Desviación a partir de este valor con 95% de
% 2. Cuantificamos esta variable seguridad
% 3. encontramos la distorsión de error cuadrático medio con 95% Error_D=1.96.*sqrt(var_D)./sqrt(n_x); % Este es el
intervalo de confianza. error a partir de la media
% Generación de variable aleatoria normal
% Graficar valores de salida, solo en un rango
n_x=3E7; % Numero de valores de entrada (salidas del muestreador)
Px=400; % Potencia media del proceso (Valor cuadrático medio)
x=sqrt(Px).*randn(1,n_x); if n_x>100
stairs(xs(1:100));
% Realizar proceso de cuantificación hold on;
xq=linspace(-70,70,8); % Valores de cuantificación plot(x(1:100),'*r');
axis([1 100 -80 80]);
% cuantificar, como las regiones son uniformes, es simplemente el else
% valor mas cercano el tomado. stairs(xs);
% Podemos usar la distancia euclidiana entre el valor de entrada y los
hold on;
cuantos.
xs=zeros(1,n_x); % Valores de salida del cuantificador plot(x,'*r');
for ni=1:n_x axis([0 n_x -80 80]);
dist=abs(x(ni).*ones(1,8)-xq); % las matrices deben tener igual end
dimension grid on
% encontrar la minima distancia legend('Valor cuantificado', 'Valor de entrada')
index_min_dist=find(dist==min(dist)); title(['Resultado de simulacion con ', num2str(n_x),'
% asignar valor cuantificado, tomar el primero en caso de igualdad (ai- muestras. D = ', num2str(D),' \pm ',
1, ai] num2str(Error_D), ')'])
xs(ni)=xq(index_min_dist(1)); xlabel('n');
end
ylabel('Amplitud')
Analítico: Podemos calcular la distorsión causada en cada
región (6/9)
−60 x2 −60 x2
1 − 1 −
D1 = ( x + 70) 2 e 800 dx = ( x 2 + 140 x + 4900) e 800 dx
− 20 2 − 20 2
−60 x2 −60 x2 −60 x2
1 − 140 x − 4900 1 −
=
−
x2
20 2
e 800
dx +
20 − 2
e 800
dx +
20 − 2
e 800
dx
a1
1 t = 2cx 1
2 ca1
1 −
t2
1
1. e− cx dx = = dt = ( 2ca1 ) =(20)(0.00135) (1)
2
2
e
− 2 dt = 2cdx 2c − 2 2c
− ca12
a1
x t = −cx 2 1 1
2. e− cx dx = =− et dt = − e− ca1 =-1.77274 (2)
2 2
− 2 dt = −2cxdx 2c 2 − 2c 2
x − cx2
f ( x ) = e , g ( x ) = x a1
2
a1 a
1 − cx2 x 1 1 1 − cx2
3. x 2 e dx = = blim − − cx
+
2
e e dx
2 F ( x) = − 1 →−
2c 2 2c − 2
e − cx , g '( x) = 1
2
− b
2c 2
1 1 a1 − ca12
= −
2c 2c
( 2 ca ) e =117.16436 (3)
2
1
© Dr. M . S. Garache, 42
Podemos calcular la distorsión causada en cada región (7/9)
−60 x2 −60 x2
1 − 1 −
D1 =
−
( x + 70) 2
20 2
e 800
dx =
−
( x 2 + 140 x + 4900)
20 2
e 800
dx
−60 x 2
x −60 x 2
−60 2
1 − 140 x − 4900 1 −
= x 2
e 800 dx + e 800 dx + e 800 dx
− 20 2 20 − 2 20 − 2
1 1 1 a1 − ca12 140 − ca12
D1 = − − + 1
20 2c 2c
( 2ca ) e e 4900 2c ( 2ca )
2 2
1
1 60 −4.5 140 −4.5 4900
= 400 20 ( −3) + e − e + ( −3) =
20 2 2 20
80 −4.5 1600 −4.5
= 20 265 (−3) − e = 5300 1 − (3) − e /* (− x) = 1 − ( x) * /
2 2
D1 = D8 = 5300(0.00135) − 7.09096=0.06404
Tener cuidado con número de dígitos significativos, en este problema el uso de 4 dígitos
significativos produce valor negativo para D1.
© Dr. M . S. Garache, 43
Para cualquier región intermedia Ri+1, i=1,...,N-1 (8/9)
ai 2 a 2
x i x
1 − 1 −
Di = ( x − xˆi ) 2
e 800 dx = ( x − 2 xˆi x + xˆi )
2 2
e 800 dx
ai−1 20 2 ai−1 20 2
ai x2 ai x2 a 2
1 1 − 2 xˆi x − xˆi2 i 1 − 800
x
= dx − dx +
2 800 800
x e e e dx
20 ai−1 2 20 ai−1 2 20 ai−1 2
ai
1 − cx t = 2cx 1
2 cai
1 −
1 t2
1. dx = = e dt = ( 2cai ) − ( 2cai −1 ) (1)
2
2
e
ai −1 2 dt = 2cdx 2c 2 cai−1 2 2c
− cai2
ai
x − cx2 t = −cx 2
1 1 − cai2−1 − cai2
2. e dx = = − et dt = e −e (2)
2 = − 2c 2 2c 2
ai −1 dt 2cxdx − cai2−1
x − cx2
f ( x ) = e , g ( x ) = x ai
2
ai ai
1 − cx2 x 1 1 − cx2
3. x 2 e dx = =− e − cx +
2
e dx
2 F ( x) = − 1 2c
e − cx , g '( x) = 1
ai −1
2 2 c 2 ai −1 ai −1 2
2c 2
1 − cai2 1
= ai −1e − cai2−1
− ai e + ( 2cai ) − ( 2cai −1 ) (3)
2c 2 2c 2c © Dr. M . S. Garache, 44
Para cualquier región intermedia Ri+1, i=1,...,N-1 (9/9)
ai +1 x2 ai +1 x2 2 ai +1 x2
1 1 − 2 xˆi +1 x − xˆ 1 −
Di +1 =
20
ai
x2
2
e 800
dx −
20
ai 2
e 800
dx + i +1
20
ai 2
e 800
dx
20 − i −1
2 2
2 ai ai −1
a a
( i )
− i
= i i
(2 ˆ
x − a ) e 800
− (2 ˆ
x − ai −1 ) e 800
+ 400 + ˆ
x −
2
i
20 20
Así encontramos:
D1 = 0.0635 = D8
D2 = 0.8170 = D7
D3 = 4.6965 = D6,
D4 = 11.0955 = D5
© Dr. M . S. Garache, 45
HW1: Sim. De señales senoidales
1.1 Empleando Simulink: a) grafique el espectro de magnitude de
la suma de dos señales senoidales ortogonales deterministas
empleadas en telecomunicaciones ilustradas en la figura con
f1=f2=20KHz:
+ Spectrum
Analyzer
What if?
b) Cambie f2=10KHz. Cuantes impulsos oberva en el espectro.
Cual seria el ancho de banda requerido por un filtro pasabanda
para permitir el paso de las dos señales.
Se require mas o menos ancho de banda que en a)? © Dr. M . S. Garache ,
47
HW 2: What if
2.1 Modifique la simulación en Matlab del
cuantificador para mostrar el resultado de
convergencia de múltiples realizaciones en función
del número de muestras como se ilustra en la fig.
¿Qué puede concluir de este resultado?
© Dr. M . S. Garache, 48
HW2:
2.2 Modifique la simulación en Matlab para
determinar la distorsión resultante si se
utiliza cuantificación NO UNIFORME con
los valores y regiones de cuantificación
siguientes:
xˆ = -41.02, -29.3, -17.58, -5.86, 5.86, 17.58, 29.30, 41.02
a = -35.16, -23.44, -11.72, 0, 11.72, 23.44, 35.16