Tuesday 24 October 2017

Movimiento Medio Scilab


Necesito calcular una media móvil sobre una serie de datos, dentro de un bucle for. Tengo que obtener el promedio móvil en N9 días. El array Im computing in es 4 series de 365 valores (M), los cuales son valores medios de otro conjunto de datos. Quiero trazar los valores medios de mis datos con el promedio móvil en una parcela. Busqué un poco sobre los promedios móviles y el comando conv y encontré algo que intenté implementar en mi código. Así que, básicamente, calculo mi media y lo trace con una media móvil (errónea). Escogí el valor de wts justo en el sitio de mathworks, por lo que es incorrecto. (Fuente: mathworks. nl/help/econ/moving-average-trend-estimation. html) Mi problema, sin embargo, es que no entiendo lo que este wts es. ¿Podría alguien explicar Si tiene algo que ver con los pesos de los valores: que no es válido en este caso. Todos los valores se ponderan igual. Y si estoy haciendo esto totalmente mal, podría obtener alguna ayuda con ella Mis más sinceras gracias. El uso de conv es una excelente manera de implementar un promedio móvil. En el código que está usando, wts es cuánto está pesando cada valor (como usted adivinó). La suma de ese vector siempre debe ser igual a uno. Si desea ponderar cada valor uniformemente y hacer un filtro N de tamaño N, entonces lo haría. Usar el argumento válido en conv resultará en tener menos valores en Ms que en M. Utilice lo mismo si no le importan los efectos de Relleno cero. Si tiene la caja de herramientas de procesamiento de señales, puede usar cconv si desea probar una media móvil circular. Algo así como usted debe leer la documentación conv y cconv para obtener más información si ya no lo ha hecho. Puede utilizar filtro para encontrar un promedio de ejecución sin utilizar un bucle for. Este ejemplo encuentra el promedio de ejecución de un vector de 16 elementos, usando un tamaño de ventana de 5. 2) suave como parte de la caja de herramientas de ajuste de curvas (que está disponible en la mayoría de los casos) yy suave (y) suaviza los datos en el vector de columna Y utilizando un filtro de media móvil. Los resultados se devuelven en el vector de columna yy. El valor predeterminado para la media móvil es 5.Master Scilab Contenido: 1 ¿Qué es Scilab 2 Acerca de este documento 3 Descarga e instalación de Scilab 4 El entorno de Scilab 5 Scilab Help 6 Scripts 7 Operaciones de matriz 8 Trazado 9 Funciones de dinámica y control 9.1 Simulación de Funciones de transferencia en tiempo continuo 9.2 Respuesta de frecuencia de las funciones de transferencia en tiempo continuo 9.3 Simulación de funciones de transferencia de tiempo discreto 9.4 Respuesta de frecuencia de funciones de transferencia de tiempo discreto 9.5 Simulación de modelos de espacio de estado de tiempo continuo 9.6 Discretización de sistemas de tiempo continuo 9.7 Derivación de transferencia 9.8 Análisis de respuesta de frecuencia y simulación de sistemas de retroalimentación (control) 9.10 Controlador óptimo LQ (lineal cuadrático) 9.11 Ganancias del filtro de Kalman 1 ¿Qué es Scilab? Citado en la página principal de Scilab En scilab. org: Scilab es un paquete de software científico gratuito para cálculos numéricos que proporciona un potente entorno de computación abierta para aplicaciones de ingeniería y científicas. Scilab es un software de código abierto. Desde 1994 se ha distribuido libremente junto con el código fuente a través de Internet. Actualmente se utiliza en entornos educativos e industriales en todo el mundo. Scilab incluye cientos de funciones matemáticas con la posibilidad de agregar interactivamente programas de varios idiomas (C, C, Fortran). Cuenta con sofisticadas estructuras de datos (incluyendo listas, polinomios, funciones racionales, sistemas lineales), un intérprete y un lenguaje de programación de alto nivel. Scilab es muy similar a Matlab, y el rango de funciones son comparables. El mayor beneficio de Scilab es por supuesto que es gratis :-). Además, Scilab es fácil y rápido de instalar (y no tienes que reiniciar tu PC antes de empezar a usarlo). Scilab también es similar a Octave, que también es libre Octave es más similar a Matlab que a Scilab. Un problema con Octave ha sido que el trazado de datos es más engorroso en Octave que en Scilab. (Puedes instalar tanto Scilab como Octave :-) Lo bueno de Scilab es que Scicos se instala automáticamente al instalar Scilab. Scicos es una herramienta de simulación basada en diagramas de bloques similar a Simulink y LabVIEW Simulation Module. 2 Acerca de este documento Este tutorial le guía a través de los pasos hacia el dominio de Scilab. He escrito este documento porque no he encontrado un tutorial adecuado en la página principal de Scilab. Asumo que haces todas las actividades en las casillas azules, como aquí: Las actividades se muestran en cuadros azules como éste. Por favor, envíe comentarios o sugerencias para mejorar este tutorial vía e-mail a finn. haugenhit. no. 3 Descarga e instalación de Scilab El archivo de instalación, que es un archivo. exe, se puede descargar en scilab. org. Una vez que haya descargado este archivo exe, abra (ejecute) y siga las instrucciones en la pantalla. (No debería ser necesario reiniciar su PC antes de iniciar Scilab después de la instalación.) Tenga en cuenta que al instalar Scilab, también obtiene Scicos instalado. 4 El entorno de Scilab Para iniciar Scilab: Haga doble clic en el icono de Scilab en el escritorio del PC o en Ir a Inicio / Todos los programas / Scilab / scilab (no seleccione la consola de scilab). Iniciando Scilab abre la ventana de comandos de Scilab, vea la siguiente figura. La ventana de comandos de Scilab Los comandos de Scilab se ejecutan en la línea de comandos introduciendo el comando y luego haciendo clic en el botón Entrar en el teclado. Ejecutar 11 (tipo 11 en la línea de comandos, y terminar con el botón Enter). El resultado se muestra en la ventana de comandos (consulte la figura anterior). 5 Ayuda de Scilab Para abrir la ayuda de Scilab, haga clic en el botón Ayuda de la barra de herramientas (el botón con el signo de interrogación). A continuación se muestra la ventana de Ayuda. Ventana de ayuda de Scilab Como se ve en la ventana Ayuda, los comandos y las funciones se organizan en una serie de categorías. Por ejemplo, haga clic en la categoría Funciones elementales para ver las funciones de esa categoría. Las funciones son como se muestra en la figura anterior. Para obtener un texto de ayuda detallado sobre una función específica, haga clic en esa función. Haga clic en la función abs (en la categoría Funciones elementales). El texto de ayuda detallado para la función abs se muestra en la siguiente figura. El texto de ayuda detallado para la función abs También puede buscar una función haciendo clic primero en el botón Buscar en la ventana Ayuda (el botón de lupa). Buscar seno. El resultado de la búsqueda es una lista de funciones relevantes, vea la siguiente figura. El resultado de la búsqueda de sine 5 Operaciones básicas de Scilab Normalmente se utilizan variables en los cálculos. Para crear la variable a y asignarle el resultado de 11: En adelante, (Enter) no se mostrará, pero se supone que haga clic en el botón Enter. La respuesta se muestra en la ventana de comandos (pero se muestra aquí). Ahora, intente (recuerde escribir el punto y coma): La respuesta no se muestra en la ventana de comandos. El comando se ejecutó realmente, pero debido al punto y coma la respuesta no se mostró. Para verificar que la variable b realmente existe: Como se ve desde la respuesta (no mostrada aquí), d existe, mientras que D no existe (ya que no hemos creado D). Las variables de Scilab existen en el espacio de trabajo. Hay dos formas de ver el contenido de un espacio de trabajo: Ejecutar el comando que en la línea de comandos, que sólo muestra las variables en la ventana de comandos. Aplicaciones del menú / Variables del navegador. Que abre la ventana Variables del navegador. Ejecute el comando who. La respuesta debe ser similar a lo que se muestra en la siguiente figura. (Las variables definidas por el usuario se muestran entre muchas otras variables.) La respuesta del comando who Seleccione el menú Aplicaciones / Variables del navegador. Esto abre la ventana Variables del navegador, vea la siguiente figura. Ventana Variables del navegador La ventana Variables del navegador contiene en la parte inferior un número de botones de utilidad (no se describe en detalle aquí). Tenga en cuenta que si sale de Scilab, las variables que creó en el área de trabajo se eliminarán. Puede guardar variables en un archivo mediante la función de guardar. Sin embargo, si realmente necesita guardar variables que son el resultado de algunas expresiones de Scilab, debería considerar escribir estas expresiones en un script de Scilab. Más sobre scripts pronto. Hay varias formas de introducir números (el pi es una constante incorporada). Aquí hay algunos ejemplos ilustrativos (supongo que usted ve los principios de estos ejemplos): 0.1, 1e-1, 23, exp (1), pi La respuesta se muestra en la figura de abajo. Varias formas de introducir números Puede determinar cómo se muestran los números en la ventana de comandos con la función de formato, pero la representación interna del número en Scilab es independiente si el formato de visualización. No vamos a ver los detalles. Si necesita cambiar el formato de visualización, consulte la Ayuda de Scilab. Las funciones de Scilab son vectorizadas, es decir, las funciones pueden ser llamadas con argumentos vectoriales. (Un vector es simplemente una matriz unidimensional. Volveremos a las operaciones vectoriales y matriciales en una sección posterior.) En el siguiente ejemplo, primero se crea un vector de nombre t, entonces este vector se usa como argumento en el Seno (la función seno supone que el argumento es un ángulo en radianes). La respuesta se muestra en la siguiente figura. El resultado de la función vectorizada sin (0.1t) donde t es un vector 6 Scripts Un script Scilab es un archivo de texto de nombre. sce que contiene comandos de Scilab. Puede editar el script utilizando el editor incorporado de Scipad. (Los scripts también pueden tener nombres. sci. El nombre predeterminado al guardar un fle en Scipad es. sce.) Deberías usar scripts incluso para pequeñas tareas porque de esta manera tienes todos tus quotprojectsquot guardados en archivos que es bueno para la documentación y también Muy conveniente cuando desea ejecutar todos sus comandos después de algunos cambios. Ahora crearemos un script sencillo y lo ejecutaremos. Ejecutar un script es el mismo que ejecutar todos los comandos (de arriba a abajo en el script) en la línea de comandos uno por uno. Inicie el editor Scipad seleccionando el menú Editor (o ejecutando el comando scipad). A continuación, introduzca los comandos que se muestran en la figura siguiente. El editor Scipad se muestra en la siguiente figura. Tenga en cuenta que las barras dobles (//) se utilizan para iniciar los comentarios en el script. Script Scilab del nombre script1.sce abierto en el editor Scipad Tenga en cuenta que puede abrir varios scripts en la misma ventana de Scipad con el menú Archivo / Nuevo. Guarde el script con el nombre script1.sce (por supuesto algún otro nombre se puede utilizar) en el directorio (carpeta) C: temp o en cualquier otro directorio que usted prefiera. Hay dos maneras de ejecutar el script script1.sce: Con el menú Ejecutar / Cargar en Scilab en Scipad Ejecutando el comando exec script1.sce en la línea de comandos Vamos a intentar el menú Ejecutar primero: Seleccione el menú Ejecutar / Cargar en Scilab En Scipad. El resultado se muestra en la ventana de comandos. Scf (1) // Abre la nueva figura con ID 1. (scf set current fig) traza (y) // Traza y contra y-índices (números enteros a lo largo del eje x) A continuación se muestra la figura de Scilab con la gráfica. A lo largo del eje x están los índices del vector y. Los índices son números enteros de 1 a 101. Antes de continuar con más comandos de trazado, echemos un vistazo a algunos botones y menús en la ventana Gráficos. Haga clic en el botón GED en la ventana de la figura. Esto abre el botón Haga clic en el botón GED para abrir el Editor de gráficos, consulte la figura siguiente. El editor de gráficos Con el editor gráfico puede cambiar los colores de las líneas, el estilo de línea, agregar etiquetas al eje, añadir cuadrícula, etc. Las distintas opciones no se describirán aquí porque es bastante fácil investigar las posibilidades por sí mismo. Muchas de las opciones del Editor de Gráficos se pueden establecer alternativamente con opciones para el comando de trazado. Esto se mostrará en ejemplos subsiguientes. Puede producir varios archivos gráficos de la trama: Seleccione el menú Archivo / Exportar en la ventana de la figura. Esto abre la ventana de diálogo Exportar que se muestra a continuación. El cuadro de diálogo Exportar en la ventana de la figura Si desea crear un archivo graphis para ponerlo en un procesador de documentos, como MS Word o Scientific Workplace, debe seleccionar Enhanced Meta File (EMF), que es un formato de gráficos vectorizados que significa que la imagen Puede ser ampliado y todavía mirada aguda. Sin embargo, los archivos EMF no se pueden utilizar en documentos web nativos, p. En archivos HTML que se mostrarán en un navegador web. En este caso debe seleccionar el formato GIF (este formato no le da gráficos vectorizados). Seguimos con la mirada en más opciones al comando del diagrama. Supongamos que trazaremos y contra t en la figura 1, que es la misma figura que usamos anteriormente. Esto se hace con el gráfico de órdenes (t, y) donde se supone, por supuesto, que los vectores tey tienen la misma longitud (el mismo número de elementos). Si acaba de usar el comando plot, la nueva trama se agrega al gráfico anterior, mostrando dos (o más curvas). Normalmente, esto no es lo que quieres. Para borrar la trama anterior, usamos el comando clf (clear figure) antes de usar el comando plot. // Elimina un gráfico y traza en la misma figura: scf (1) // Fija la figura 1 para convertirse en la figura actual clf // borra el gráfico de la figura (t, y) // Tramas en la figura 1 El resultado se muestra en la figura la siguiente figura. Observe que el eje x contiene ahora los valores de t. Figura 1: scf (2) // Establece la figura 2 para convertirla en gráfica de la figura actual (t, y) // Tramas en la figura 1 Filtro promedio de movimiento (MA) Filtro) Carga. El filtro de media móvil es un simple filtro FIR de paso bajo (respuesta de impulso finito) comúnmente utilizado para suavizar una matriz de datos / señal muestreados. Se toman M muestras de entrada a la vez y tomar el promedio de esas M-muestras y produce un solo punto de salida. Se trata de una simple LPF (Low Pass Filter) estructura que viene práctico para los científicos y los ingenieros para filtrar el componente ruidoso no deseado de los datos previstos. A medida que aumenta la longitud del filtro (el parámetro M) aumenta la suavidad de la salida, mientras que las transiciones bruscas en los datos se hacen cada vez más contundentes. Esto implica que este filtro tiene excelente respuesta en el dominio del tiempo pero una respuesta de frecuencia pobre. El filtro MA realiza tres funciones importantes: 1) toma M puntos de entrada, calcula el promedio de esos puntos M y produce un único punto de salida. 2) Debido al cálculo / cálculos involucrados. El filtro introduce una cantidad definida de retardo 3) El filtro actúa como un filtro de paso bajo (con una respuesta de dominio de frecuencia pobre y una buena respuesta de dominio de tiempo). Código Matlab: El siguiente código matlab simula la respuesta en el dominio del tiempo de un filtro M-point Moving Average y también traza la respuesta de frecuencia para varias longitudes de filtro. Respuesta de Dominio de Tiempo: En la primera trama, tenemos la entrada que va en el filtro de media móvil. La entrada es ruidosa y nuestro objetivo es reducir el ruido. La siguiente figura es la respuesta de salida de un filtro de media móvil de 3 puntos. Puede deducirse de la figura que el filtro de media móvil de 3 puntos no ha hecho mucho en filtrar el ruido. Aumentamos los grifos de filtro a 51 puntos y podemos ver que el ruido en la salida se ha reducido mucho, que se representa en la siguiente figura. Aumentamos los grifos más allá de 101 y 501 y podemos observar que aunque el ruido sea casi cero, las transiciones se atenuan drásticamente (observe la pendiente en cada lado de la señal y compárelas con la transición ideal de pared de ladrillo en Nuestra entrada). Respuesta de Frecuencia: A partir de la respuesta de frecuencia se puede afirmar que el roll-off es muy lento y la atenuación de banda de parada no es buena. Dada esta atenuación de banda de parada, claramente, el filtro de media móvil no puede separar una banda de frecuencias de otra. Como sabemos que un buen rendimiento en el dominio del tiempo da como resultado un rendimiento pobre en el dominio de la frecuencia, y viceversa. En resumen, el promedio móvil es un filtro de suavizado excepcionalmente bueno (la acción en el dominio del tiempo), pero un filtro de paso bajo excepcionalmente malo (la acción en el dominio de la frecuencia) Enlaces externos: Libros recomendados:

No comments:

Post a Comment