Simulación de paquetes Matlab
Enviado por Rubén Martínez Olivares • 3 de Enero de 2021 • Trabajo • 3.922 Palabras (16 Páginas) • 109 Visitas
Universidad Politécnica de Cartagena[pic 1]
Escuela Técnica Superior de Ingeniería de Telecomunicación
PRÁCTICAS DE MODELADO Y SIMULACIÓN
BOLETÍN DE ENTREGA
TRABAJO SIMULACIÓN
INTEGRANTES DEL GRUPO:
NOMBRE Y APELLIDOS | CORREO ELECTRÓNICO |
Marina García Lorenzo | marinagarcia252@gmail.com |
Rubén Martínez Olivares | rubydelruben@gmail.com |
Información y metodología de evaluación:
Este trabajo tiene un peso total del 15% en la evaluación de la asignatura
- El boletín debe rellenarse y convertirse a formato PDF para su envío a través de aula virtual, en las fechas dispuestas en el calendario
- La evaluación se basará en las respuestas del boletín y también se contempla la posibilidad de realizar entrevistas online individuales para verificar la autoría de las mismas.
- Proporcione el modelo completo de simulación: estado, eventos, pseudocódigos, etc. (5 puntos)
En el instante "t_simulacion" igual a 0 se genera un paquete que llegará a TX en un tiempo aleatorio "retardo" dado por un modelo previamente escogido, encolándose en la lista de eventos con los datos: "listaEV" (lista donde se encolará), "t_simulacion + retardo" (el tiempo actual más el tiempo calculado), "TX" (al ser el primer evento debe ser de transmisión), "t_simulacion" (tiempo de generación del evento) y "npaquete" (el número del paquete del evento).
En el momento del evento se recogen las variables de "tiempo" (tiempo actual que es la suma de las variables "t_simulacion + retardo"), "tipo" (si es TX o RX), "llegada" (momento de generación del evento) y "npaquete" (número del paquete) del mismo.
Dependiendo de la variable "tipo", irá al caso de transmisión (TX) o recepción (RX) del paquete.
En el caso TX, se guarda el momento en el que llega el paquete en un vector. Luego se calcula el tiempo que tardará en llegar a RX, sin embargo, este tiempo no puede superar al tiempo dado por la variable "Tmax". Si lo superase, se calcula nuevamente el tiempo de envío, además de aumentar en 1 la variable "ret". Esta variable cuenta cada vez que debe ser retransmitido el paquete.
Una vez que se consigue un tiempo igual o menor a "Tmax", se encola el evento de recepción del paquete que deberá llegar "Tmax" veces las ocasiones en las que se ha calculado el tiempo de envío, más el tiempo de envío final. El tiempo de llegada a RX quedaría de esta manera: t_simulacion + (Tmax * ret) + retardo. Luego, se aumenta "npaquete" en 1, indicando que es el siguiente paquete, y se prepara su evento de transmisión.
Cuando un paquete llega a recepción, RX, se guarda su número en el vector correspondiente de recepción. Además, se recoge el índice del paquete que acaba de llegar para usarlo más adelante.
Primero, se comprueba si el paquete que llegó es el primero, en tal caso se entrega colocando su número en la variable "paqueteOK" y se elimina del vector de recepción.
Si no es el primero, se debe comprobar si el paquete anterior ha sido entregado a recepción mirando en "paqueteOK". Si llegó, este también puede entregarse, sustituyéndolo en la variable anterior y borrándose del vector de recepción.
En ambos casos, la variable "err" se pone a 0, indicando que todo va bien, lo que lleva al siguiente condicional. Si la variable "err" es 0, se calculará el retardo del paquete y se añadirá a la variable "summuestrasaux", además, se comprobará si los paquetes posteriores al que acaba de ser entregado han llegado a recepción y están esperando. Se comprueba el vector "vectorN_rx" en busca de estos paquetes y al encontrar uno, coge su índice y lo borra del vector, además de marcarlo como entregado y calcular su retardo. Se aumenta el contador "i" y vuelve al bucle hasta que no hay más posteriores a este en espera.
Tanto si "err" vale 1 (no se entregó el paquete) como si sale del bucle, pasará al cálculo de la calidad (siempre que el número de pasos supere "H" y hayan pasado "D" muestras).
- Proporcione el código MATLAB del simulador (3 puntos)
esqueletoSIM.m:
%% ESQUELETO DE SIMULACION
tic
listaEV = [];
t_simulacion = 0.0;
pasos = 0;
% ACCIONES DE INCIO: p.ej. definir estado, generar primeros eventos
% Se proporciona ejemplo del caso cola de trabajos
% TIPOS DE EVENTOS, CADA UNO UN NUMERO DIFERENTE
TX = 0;
RX = 1;
% ESTADOS
Z = 1;
i = 1;
err = 0;
% VARIABLES
paqueteOK = 0;
% VECTORES
vectorT_tx = [];
vectorN_rx = [];
% PARAMETROS DE SIMULACION
% Tiempo entre mensajes
tipoX = 2;
param1X = 1;
param2X = 0;
% Tiempo de transito por red
tipoE = 2;
param1E = 0.5;
param2E = 0;
% Tiempo de transito maximo
Tmax = 1.5;
% Configuracion filtrado muestras
H = 50000;
D = 10;
TEST = 100;
calidadobjetivo = 0.95;
tolrelativa = 0.01;
% VARIABLES PARA EL CALCULO DE LA CALIDAD
nb = 0;
nummuestras = 0;
summuestras = 0;
sumcuadrado = 0;
nummuestrasaux = 0;
summuestrasaux = 0;
...