Descargar

Matlab

Enviado por felcos


    1.- INTRODUCCION AL MATLAB 1.2.- INICIACIÓN AL MATLAB 1.3- CARACTERÍSTICAS DEL ENTORNO 1.4.- SALIDAS O PRESENTACIONES 1.5.- FUNCIONES DE MATLAB 1.6- EL MATLAB Y LA ESTADÍSTICA 2.- LIBRERIAS 3.- VENTANAS 3.1.- OPERACIONES CON VECTORES Y MATRICES 3.2.- GRAFICAS 3.3.- ANÁLISIS DE VOZ 4.- FUNCIONES ESPECIALES REFERENCIAS BIBLIOGRAFICAS

    Una herramienta poderosa para la investigación.

    El presente documento es una recopilación de información que puede ser útil para aquellos estudiantes interesados en conocer esta poderosa herramienta de calculo, simulación y modelado matemático que por demás está el mencionar en esta introducción todos los elogios de que es merecedor este singular programa de calculo matemático por su amplia área de aplicación en el estudio científico.

    1.- INTRODUCCION AL MATLAB.

    MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos matemáticos y la visualización gráfica de los mismos. MATLAB integra análisis numérico, cálculo matricial, proceso de señal y visualización gráfica en un entorno completo donde los problemas y sus soluciones son expresados del mismo modo en que se escribirian radicionalmente, sin necesidad de hacer uso de la programación tradicional.

    MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo especializados, denominados Toolboxes, que extienden significativamente el número de funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación, destacando entre ellos el 'toolbox' de proceso de imágenes, señal, control robusto, estadística, análisis financiero, matemáticas simbólicas, redes neurales, lógica difusa, identificación de sistemas, simulación de sistemas dinámicos, etc. es un entorno de cálculo técnico, que se ha convertido en estándar de la industria, con capacidades no superadas en computación y visualización numérica.

    De forma coherente y sin ningún tipo de fisuras, integra los requisitos claves de un sistema de computación técnico: cálculo numérico, gráficos, herramientas para aplicaciones especificas y capacidad de ejecución en múltiples plataformas. Esta familia de productos proporciona al estudiante un medio de carácter único, para resolver los problemas más complejos y difíciles.

    1.1.- ORIGEN

    MATLAB nace como una solución a la necesidad de mejores y mas poderosas herramientas de calculo para resolver problemas de calculo complejos en los que es necesario aprovechas las amplias capacidades de proceso de datos de grandes computadores.

    El nombre MATLAB viene de "matrix laboratory" (laboratorio matricial). MATLAB fue originalmente escrito para proveer acceso fácil al software matricial desarrollado por los proyectos LINPACK y EISPACK, que juntos  representan el estado del arte e software para computación matricial. Hoy MATLAB es usado en una variedad de áreas de aplicación incluyendo procesamiento de señales e imágenes, diseño de sistemas de control, ingeniería financiera e investigación médica. La arquitectura abierta facilita usar MATLAB y los productos que lo acompañan para explorar datos y crear herramientas personalizadas que proveen visiones profundas tempranas y ventajas competitivas.

    1.2.- INICIACIÓN AL MATLAB

    El Lenguaje de Computación Técnica MATLAB es un ambiente de computación técnica integrada que combina computación numérica,  gráficos y visualización avanzada y un lenguaje de programación de alto nivel.

    Sea cual fuere el objetivo, un algoritmo, análisis, gráficos, informes o simulación, MATLAB lo lleva allí. El lenguaje flexible e interactivo de MATLAB permite a ingenieros y científicos expresar sus ideas técnicas con simplicidad. Los poderosos y amplios métodos de cómputo numérico y graficación permiten la prueba y exploración de ideas alternativas con facilidad, mientras que el ambiente de desarrollo integrado facilita producir resultados prácticos fácilmente.

    MATLAB es la fundación numérica y gráfica para todos los productos de The MathWorks. MATLAB combina computación numérica, gráficos 2D y 3D y capacidades de lenguaje en un único ambiente fácil de usar.

    Con su amplio rango de herramientas para modelar sistemas de control, análisis, simulación y procesamiento de prototipos, MATLAB es el sistema ideal para desarrollar sistemas avanzados de control. Usted puede modelar su sistema de control usando las cajas de herramientas para el diseño de controles avanzados de MATLAB – Control System, Robust Control, µ-Analysis and Synthesis, Model Predictive Control, QTF Control Design y LMI control. Posteriores análisis y refinamientos pueden ser efectuados estableciendo una simulación interactiva en Simulink, y luego sintonizar automáticamente los parámetros usando el Nonlinear Control Design Blockset. Finalmente, usted puede generar código C para correr en controladores incrustados con Real Time Workshop.

    Combinando MATLAB con Signal Processing Toolbox, Wavelet Toolbox y un conjunto de herramientas complementarias – tales como Image Processing, Neural Network, Fuzzy Logic, Statistics y otras – usted puede crear un ambiente de análisis personalizado de señales y desarrollo de algoritmos DSP. Para simulación y desarrollo de prototipos usted puede agregar Simulink y el DSP Blockset para modelar y simular sus sistemas DSP, y luego usar Real-Time Workshop para generar código C para su hardware designado.

    1.3- CARACTERÍSTICAS DEL ENTORNO

    Características de MATLAB :

    • Cálculos intensivos desde un punto de vista numérico.
    • Gráficos y visualización avanzada.
    • Lenguaje de alto nivel basado en vectores, arrays y matrices.
    • Colección muy útil de funciones de aplicación.

    Las poderosas capacidades de cálculo técnico de MATLAB se ponen a la disposición de los estudiantes, aunque limita el tamaño de las matrices a 8192 elementos, la edición de estudiante mantiene toda la potencia de la versión profesional de MATLAB 4.0, en una forma diseñada para que los estudiantes puedan ejecutarlo en sus propios ordenadores personales bajo Windows.

    Toolbox especiales :

    Se incluyen el Toolbox de señales y Sistemas ( un conjunto de herramientas para el procesamiento de señal y para el análisis de sistemas de cuadro ) y el Toolbox Symbolyc Math ( herramienta de cálculo simbólico basada en Maple V ).

    A continuación presentamos la interfase de usuario de MATLAB 4.0 con el despliegue de una aplicación con grafica en 3D correspondiente al modelo Z=x^y-y^x su tabla de calculo y el análisis de la función.

    1.4.- SALIDAS O PRESENTACIONES

    MATLAB provee acceso inmediato a las características gráficas especializadas requeridas en ingeniería y ciencias. Potente graficación orientada a objetos  gráficos le permite graficar los resultados de su análisis, incorporar gráficos en sus modelos de sistemas, rápidamente presentar complejos 3-D objetos, y crear resultados de presentación, entre lo cual se destaca:

    • Representaciones 2-D y 3-D, incluyendo datos triangulados y reticulados
    • Representaciones 3-D quiver, ribbon, y stem
    • Control de fuentes, letras Griegas, símbolos, subíndices y superíndices
    • Selección expandida de símbolos marcadores de curvas
    • Gráficos de torta, de barras 3-D y gráficos de barras horizontales
    • Gráficos 3-D y sólido modelado
    • Representación de imágenes y archivos  I/O
    • Gráficos comentados
    • Leer/Escribir archivos de datos  Hierarchical Data Format (HDF)
    • Presentación de OpenGL software y hardware
    • Animación
    • Display de buffer x rápido y exacto
    • Soporte de colores verdaderos (24-bit RGB)
    • Fuentes múltiples de luz para superficies coloreadas
    • Vista basada en cámara y control de perspectiva
    • Iluminación Plana, Gouraud y Phong
    • Soporte eficiente de imagen de datos de 8-bit
    • Control  de eje y cámara
    • Propiedades de superficie y patch
    • Modelos de iluminación
    • Control gráfico de objetos
    • Impresión y representación de copias
    • Formatos gráficos exportables
    • Soporte de publicación de escritorio

    1.5.- FUNCIONES DE MATLAB

    Manipulación  y Reducción de Datos MATLAB tiene un rango completo de funciones para preprocesar datos para análisis, incluyendo:

    • y decimando • secciones de datos • y promediando • y procesando umbrales • y filtrando

    Numerosas operaciones para manipular arreglos multidimensionales, incluyendo reticulación e interpolación de datos, están también disponibles.

    Descriptivos Gráficos Para Explorar y Presentar Sus Datos Gráficos de propósitos generales y de aplicación específica le permiten visualizar al instante señales, superficies paramétricas, imágenes y más. Todos los atributos de los gráficos de MATLAB son personalizables, desde los rótulos de ejes al ángulo de la fuente de luz en las superficies 3-D . Los gráficos están integrados con las capacidades de análisis, de modo que usted puede mostrar gráficamente cualquier conjunto de datos sin editar, ecuación o resultado funcional.

    I/O Directo de Datos Usted puede ingresar y sacar datos de f MATLAB rápidamente. Las funciones están disponibles para leer y escribir archivos de datos formateados en  MATLAB, llamados archivos MAT. Funciones adicionales ejecutan programas ASCII e I/O binario de bajo nivel desde los archivos de programas M, C, y Fortran, permitiéndole trabajar con todos los formatos de datos. MATLAB también incluye soporte incorporado para formatos populares de archivos estándar.

    Computación Simbólica Integrada Integrando el motor simbólico Maple V® con MATLAB, los Symbolic Math Toolboxes le permiten mezclar libremente computación simbólica y numérica una sintaxis simple e intuitiva.

    Análisis de Datos Confiable, Rápido y Exacto  Los métodos usados comúnmente para análisis de datos multidimensional generalizados 1-D, 2-D están incorporados en MATLAB. Interfaces gráficas fáciles de usar, específicas para aplicaciones, la línea de comando interactiva y herramientas de programación estructuradas le permiten elegir el mejor camino para sus tareas de análisis.

    Análisis de Datos para DSP MATLAB ofrece muchas herramientas para realizar la funcionalidad indispensable en procesamiento de señales, tales como Transformadas Rápidas Fourier y Transformadas Rápidas Inversas de Fourier. La visualización de datos de procesamiento de señales está soportada por funciones tales como gráficos stem  y periodogramas. El lenguaje de MATLAB, inherentemente orientado a matrices hace que la expresión de coeficientes de filtros y demoras de buffers sean muy simples de expresar y comprender.

    Análisis de Datos en Aplicaciones de Imágenes MATLAB y la Image Processing Toolbox ofrece un amplio conjunto de herramientas que le permite fácilmente manipular, procesar y analizar datos de imágenes, interactivamente mostrar pantallas de imágenes 2-D o 3-D, visualizar datos temporarios cuando es necesario, y comentar sus resultados para publicaciones técnicas. La orientación basada en matrices del lenguaje de  MATLAB le permite expresar en forma compacta operaciones matemáticas de forma similar a cómo las expresaría sobre papel. Como resultado, es fácil e intuitivo efectuar procesamiento de imágenes  y operaciones de análisis tales como FFTs, filtrado 2-D, morfología binaria, manipulación geométrica, conversión de espacios de colores, compresión, análisis de componentes conectados y más.

    Algorithm Development (Desarrollo de Algoritmos) Sea que usted esté usando los algoritmos del sistema o esté inventando los suyos propios, MATLAB le provee un ambiente en el que usted puede experimentar. A diferencia de C y C++, MATLAB le permite desarrollar  algoritmos desde cero o trabajar con interfaces complicadas a bibliotecas externas. Las poderosa fundación de computación, el lenguaje técnico, y cientos de funciones en cajas de herramientas (toolboxes) convierten a MATLAB en lo más adecuado para aplicaciones matemáticamente intensivas que requieran análisis de datos, procesamiento de señales e imágenes, modelado de sistemas o técnicas numéricas avanzadas.

     1.6- EL MATLAB Y LA ESTADÍSTICA

    Statistics Toolbox

    Combina poderosos algoritmos estadísticos con interfaces gráficas interactivas

    Las Statistics Toolbox le da un rango ancho de herramientas para realizar cálculos estadísticos. Proporciona una única mezcla de facilidad gráfica de uso y programabilidad. Los despliegues gráficos interactivos le permitieron aplicar métodos estadísticos fácilmente y de forma consistente, mientras el lenguaje de MATLAB le permite fácilmente crear los acostumbrados métodos estadísticos y de análisis. Esta combinación le da la libertad para acceder las funciones bajo-niveladas directamente como funciones de probabilidad y ANOVA de la línea del orden, o para usar las interfaces interactivas para aprender y experimentar con el toolbox construir-en visualización y herramientas del análisis.

    Rasgos

    Análisis de los componentes principal

    ANOVA

    Bootstrapping

    Comprobación de la hipótesis

    Creación de superficies y modelado

    Curva que encaja (con intervalos)

    Distribuciones de probabilidad

    Estadísticas descriptivas

    Estimación del parámetro y encajando

    Interfaces gráficas de usuario

    Modelade de Nonlinear

    Parcelas estadísticas

    Plan de experimentos

    Proceso estadístico de control

    Regresión del stepwise interactiva

    Regresión múltiple

    Simulación de Carlo Monte

    El toolbox es el ambiente ideal no rutina para el montaje ejemplar. Las capacidades primarias incluyen: el análisis de la regresión y diagnóstica con selección inconstante, modelado no lineal, probabilidad y estimación de parámetros, análisis de sensibilidad que usa los generadores de número de azar, control del proceso estadístico, y plan de experimentos.

    Distribuciones de probabilidad. La Caja de Herramientas Estadísticas ( Statistics TollBox ) apoya una colección de 20 distribuciones de probabilidad diferentes, incluso T, F, y distribuciones del Chi-cuadrado, despliegues gráficos de ataques, y se mantienen formas de calcular ataques mejores todos los tipos de la distribución.

    Herramientas de GUI que mantienen Muchas herramientas interactivas para la visualización dinámica y el análisis de datos. Las interfaces especializadas tienen incluido planificación para los resultados, visualización de la distribución, generación de número de azar, y area del contorno.

    Parcelas estadísticas los órdenes trazando Estadísticos como weibplot y randplot le permiten realizar análisis de fiabilidad o montaje distributional.

    Desarrollo del algoritmos de junto con el MATLAB, el toolbox le da todo lo que usted necesita para desarrollar nuevos algoritmos para el análisis estadístico. Usted puede usar las funciones de trazando de Statistics Toolbox, o crea su propio trazo usando los rasgos de Gráficos de MATLAB.

    En la grafica, el orden del histfit se sobrepone a una curva de densidad normal en un histograma. El número predefinido de cajas se pone a la raíz cuadrada del número de elementos en los datos.

    Explorando y Aprendiendo Statistics Toolbox GUIs

    La Statistics Toolbox incluye varios elementos de fácil uso para despliegues que proporcionan vistas gráficas de sus datos y lecturas numéricas precisas del valor de la función actual y estadística descriptiva relacionada. Controles de interface de usuario, como botones, los deslizadores, y los datos dinámicos, donde usted controla sobre el despliegue de los datos.

    Estos despliegues interactivos le permiten explorar sus datos, experimentar con cambios a las entradas, y ver los resultados de cambios hipotéticos – todos en una sola pantalla. Este acercamiento a las estadísticas le ayuda a aprender sobre un proceso mientras le da una percepción intuitiva para la conducta de las funciones estadísticas subyacentes.

    Los despliegues de la entrada múltiples le permiten hacer análisis de relación de multidimensional. Cada sección representa una entrada. Las barras cruzadas punteadas pueden moverse con el ratón para cambiar un valor del parámetro que causa todos los otros parámetros (entradas) para poner al día simultáneamente.

    Statistics Toolbox ofrece despliegues interactivos que le permiten experimentar y aprender sobre toolbox contiene una interfase de visualización y herramientas del análisis. La herramienta interactiva se muestra sobre el modelo obtenido el comando rsmdemo, se muestran conceptos en plan de experimentos y planificación de regresión.

    2.- LIBRERIAS

    Librería de Aplicaciones de MATLAB

    Signal Processing Toolbox

    MATLAB tiene una gran colección de funciones para el procesamiento de señal en el Signal Processing Toolbox. Este incluye funciones para:

    • Análisis de filtros digitales incluyendo respuesta en frecuencia, retardo de grupo, retardo de fase.
    • Implementación de filtros, tanto directo como usando técnicas en el dominio de la frecuencia basadas en la FFT.
    • Diseño de filtros IIR, incluyendo Butterworth, Chebyschev tipo I, Chebyshebv tipo II y elíptico.
    • Diseño de filtros FIR mediante el algorítmo óptimo de Parks-McClellan.
    • Procesamiento de la transformada rápida de Fourier FFT, incluyendo la transformación para potencias de dos y su inversa, y transformada para no potencias de dos.

    The MATLAB C Math Library

    La MATLAB C Math Library proporciona al usuario la capacidad computacional de MATLAB en una libreria en formato objeto enlazable. El objetivo principal de la C Math Library es soportar el desarrollo de aplicaciones 'stand alone' utilizando MATLAB y su compilador. Puede ser utilizada independientemente de MATLAB por programadores avezados en lenguaje C que necesiten prestaciones computacionales robustas y de alto rendimiento.

    Junto con el compilador de MATLAB , la C Math Library permitirá a los programadores de aplicaciones utilizar MATLAB para la creación de aplicaciones 'stand alone'. Para los usuarios clásicos de MATLAB , se elimina así cualquier necesidad de volver a reescribir algoritmos en lenguaje C para ser utilizada por programas externos. Para aquellos usuarios que sean nuevos en la tecnología MATLAB , esta tecnología ofrece una nueva vía para la reducción del tiempo de desarrollo y puesta a punto de aplicaciones.

    La MATLAB C Math Library proporciona una amplia gama de funciones clásicas del programa MATLAB , proporcionadas como librerias objeto, incluyendo básicamente las siguientes categorías de funciones presentes en MATLAB y archivos M compilados:

    • Algebra lineal.
    • Funciones matemáticas elementales y especializadas.
    • Operadores lógicos y aritméticos.
    • Matrices elementales y manipulación de vectores.
    • Matrices especiales.
    • Estadística básica y análisis de datos.
    • Polinomios e interpolación.
    • Gestión de cadenas de caracteres.
    • Entradas y Salidas.
    • Gestión de memoria y errores.

    (Nota: Las funciones del tipo Handle Graphics no estan incluidas en la C Math Library).

    Desarrollo de aplicaciones utilizando la MATLAB C Math Library

    La construcción y desarrollo de aplicaciones utlizando esta libreria es un proceso de amplias perspectivas una vez se tiene un dominio adecuado de su operativa. El producto está dividido en dos categorias (como librerias objeto): la libreria (built-in library) contiene versiones de las funciones de MATLAB en lenguaje C del tipo numérico, lógico y utilidades. Por otra parte la libreria de toolboxes (toolbox library) contiene versiones compiladas de la mayoria de archivos M de MATLAB para cálculo numérico, análisis de datos y funciones de acceso a archivos y matrices. En equipos UNIX estas librerias pueden ser igualmente obtenidas como librerias de tipo estático (static libraries) o bien como librerias compartidas (shared libraries). Respecto al mundo PC, estas librerias pueden obtenerse como DLL's en el entorno Microsoft Windows o como librerias compartidas en equipos Apple MacIntosh.

    Utilización de MATLAB y de su compilador

    Para construir una aplicación del tipo 'stand alone' que incorpore código originalmente desarrollado como archivos M de MATLAB , deberan de seguirse los pasos siguientes:

    • Utilizar el compilador de MATLAB para convertir archivos M en C mediante la utilización de la instrucción mcc -e (la cual es externa a MATLAB).
    • Compilar el código C fuente en código objeto utilizando un compilador ANSI C.
    • Enlazar el código resultante con la MATLAB C Math Library y con cualquier tipo de archivos y programas específicos que hayan sido previamente definidos por el usuario.

    Velocidad y Precisión

    Los algoritmos utilizados en la MATLAB C Math Library han sido desarrollados por un grupo de renombrados expertos en programación algorítmica de funciones de tipo matemático (algebra lineal y cálculo numérico). Las funciones de álgebra lineal han sido obtenidas de las librerias mundialmente reconocidas LINPACK y EISPACK. La MATLAB C Math Library contiene más de 300 funciones numéricas, lógicas y de utilidad. Todas estas funciones le permitiran operar en datos de tipo escalar, vectorial o matricial con la misma facilidad sintáctica.

    Requerimientos

    La libreria MATLAB C Math Library cumple con la normativa estándar ANSI para compiladores C. Finalmente, la librería trabajará con aquellos enlazadores que vienen suministrad os con la mayoría de compiladores ANSI C.

    THE MATLAB COMPILER TOOLBOX

    "OBTENGA UNA VELOCIDAD DE EJECUCION HASTA 200 VECES SUPERIOR CON EL NUEVO COMPILADOR DE MATLAB"

    El nuevo compilador de MATLAB -The MATLAB Compiler- permite crear código C optimizado procedente de archivos M -M files- de MATLAB . Este compilador puede ser utilizado de dos modos:

    • Como un generador MEX automático. Pueden convertirse archivos M en funciones C ejecutables que se ejecutaran desde dentro de MATLAB. Como un generador de código C fuente.
    • Pueden construirse aplicaciones que se ejecutaran independientemente de MATLAB . Estas aplicaciones externas requieren de la MATLAB C Math Library , que está disponible separadamente.

    Mediante la conversión automática de archivos M en código C fuente, el compilador MATLAB elimina consumo de tiempo y la conversión manual de código. Todo el proceso de conversión, compilación y enlazado se inicia a través de una simple instrucción de MATLAB.

    Generación Automática de archivos MEX.

    El compilador de MATLAB automatiza la creación de archivos MEX de C (MATLAB Ejecutables). Los archivos MEX contienen código objeto que es dinámicamente enlazado como 'runtime' en el entorno MATLAB por el intérprete del programa.

    El proceso en cuestión se realiza en tres pasos:

    • El compilador de MATLAB traduce las funciones MATLAB en sus funciones equivalente en lenguaje C.
    • La instrucci¢n MATLAB cmex llama al compilador y al enlazador del sistema para construir un fichero MEX objeto.
    • El intérprete de MATLAB enlaza automáticamente la función de MATLAB como 'runtime'.

    Mientras se efectua una conversión de los archivos M en archivos MEX, el compilador realiza llamadas a las rutinas de la libreria C para muchas de las instrucciones contenidas en el propio núcleo de MATLAB . Existen algunas funciones, incluyendo las rutinas 'Handle Graphics', para las cuales se generan de nuevo llamadas 'callbacks' a MATLAB. Pueden convertirse convenientemente archivos M en código fuente C para incorporarlos posteriormente en los archivos externos desarrollados en lenguaje C, si ese es el caso. Esta opción es ideal para usuarios que quieren sacar la máxima ventaja de MATLAB desde cualquier otra aplicación o producir código C eficiente a partir de los algoritmos desarrollados con MATLAB . Los desarrollos del tipo 'stand-alone' requieren para ello de la MATLAB C Math Library . Obsérvese que las funciones gráficas de MATLAB no estan incluidas.

    Para construir aplicaciones 'stand-alone' se debería seguir los siguientes pasos:

    • Utilizar el compilador de MATLAB para convertir archivos M en C con la instrucción externa mcc -e.
    • Compilar el código C fuente en código objeto utilizando un compilador C.
    • Enlazar el código resultante con las librerias matemáticas C de MATLAB y los archivos específicos de que dispongamos.

    Rendimiento del compilador

    Mediante la compilación de los archivos M podemos obtener un rendimiento significativo. La velocidad de mejora de este rendimiento, depende fuertemente de cada aplicación. En algunos casos el rendimiento puede mejorar hasta en 200 veces la ejecución si la comparamos con el modo de trabajo interpretado del programa. Las operaciones matriciales y vectoriales ejecutadas desde MATLAB ya estan fuertemente optimizadas en su diseño. Sin embargo, mediante la utilización del compilador se obtendran significativas mejoras.

    Opciones de ajuste del rendimiento

    El compilador de MATLAB ofrece varias opciones que permiten generar el programa final de la manera más eficiente. Por ejemplo, Ud. puede directamente:

    • Tratar todas las variables en archivos como datos enteros y/o reales.
    • Utilizar una variable concreta como variable escalar, vectorial, entera, real o una combinación de estas.
    • Desactivar el control de parámetros de entrada y el redimensionamiento dinámico de vectores.

    Requerimientos del sistema

    Para utilizar el compilador de MATLAB para crear archivos MEX se necesita la versión de MATLAB 4.2c y tener instalado uno de los siguientes compiladores de lenguaje C:

    • PC/Microsoft Windows
      • Metaware High C/C++ V.3.0 o superior.
      • Watcom C V.10.0 o superior
    • Power MacIntosh
      • MetroWerks CodeWarrior C V.7
      • MPW MrC V.1.0b2 o PPCC version 1.0.5
    • 680×0 MacIntosh
    • MPW C Versi¢n 3.4
    • UNIX y VMS
    • Cualquier compilador ANSI C (Nota: El compilador de SunOS 4.1.X no es un compilador ANSI C).
    • Cualquiera que sea el equipo informático que vaya a utilizarse para desarrollar aplicaciones 'stand alone' se requiere, además del compilador de MATLAB, que se tengan las MATLAB C Math Library y un compilador ANSI C.

    Limitaciones del código compilado

    Ciertas instrucciones, como load y eval, no estan soportadas por el compilador de MATLAB . Este no puede generar código de los diagramas de bloques de SIMULINK. Los toolboxes de MATLAB pueden incluir archivos MEX y otros componentes que no son compilables.

    SYMBOLIC MATH TOOLBOX

    El Toolbox de Matemática Simbólica, añade a MATLAB la capacidad de realizar cálculos simbólicos basados en MAPLE V © soportando además (The Extended Symbolic Math Toolbox) las librerías especializadas, y los programas realizados para este último. Entre otros, los principales tipos de operaciones soportados son los siguientes:

    • Algebra simbólica: Derivación, integración y simplificación de expresiones matemáticas.
    • Algebra lineal exacta: Inversas, determinantes, autovalores y formas canónicas de matrices simbólicas.
    • Aritmética de precisión variable: Evaluación de expresiones matemáticas con diversos grados de precisión.
    • Resolución de ecuaciones: Resolución numérica y simbólica de ecuaciones algebraicas y diferenciales.
    • Funciones matemáticas especiales: Evaluación de la mayoría de las funciones utilizadas en matemáticas aplicadas.

    Existen dos versiones del mismo Toolbox. The Basic Symbolic Math Toolbox es una colección de más de 50 funciones MATLAB las cuales permiten acceder al kernel de MAPLE utilizando la sintaxis y el estilo del lenguaje MATLAB. The Extended Symbolic Math Toolbox aumenta esta funcionalidad incluyendo todas las características de programación de MAPLE, y el acceso a los paquetes de funciones de más de veinte campos de las matemáticas especiales aplicadas.

    Es posible utilizar este Toolbox sin conocimiento previos de MAPLE, ya que los archivos contenidos en él son totalmente autónomos. Sin embargo, si lo que se desea es obtener toda la potencia de cálculo del entorno, será necesario un amplio conocimiento del manejo y la programación de MAPLE

    Optimization Toolbox

    El toolbox de optimización consta de un conjunto de funciones que resuelven problemas de extremos, con o sin condiciones, de funciones reales las cuales son generalmente multivariables y no lineales. Asimismo, posee funciones para la resolución de algunos tipos de problemas matriciales en extremos. Resulta conveniente para una comprensión y mejor manejo de la toolbox poseer conocimientos básicos previos de análisis de funciones reales, matrices y teoría de extremos.

    Algunas de las áreas básicas que cubre este toolbox para MATLAB son las siguientes:

    • Cálculo de un extremo local (máximo o mínimo) de una función real f(x), en general multivariable y no lineal, sin imponer ninguna restricción o condición a la solución. Como caso particular, se incluye una rutina especial para problemas de mínimos cuadrados no lineales.
    • Cálculo de un extremo local (máximo o mínimo) de una función real f(x), en general multivariable y no lineal, condicionado a que la solución satisfaga ciertas condiciones de desigualdad (g(x)<=0) y/o igualdad (g(x)=0).
    • Problemas de aproximación a un conjunto de objetivos.
    • Cálculo de soluciones de un sistema de ecuaciones continuas y, en general, no lineales.
    • Solución de problemas minimax.
    • Programación lineal.
    • Programación cuadrática.
    • Problemas de mínimos cuadrados no negativos.

    Image Processing Toolbox

    Este Toolbox proporciona a MATLAB de un conjunto de funciones que amplia las capacidades del producto para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y análisis de imagenes. El entorno matemático y de creación de MATLAB es ideal para el procesado de imágenes, ya que estas imágenes son, al fin y al cabo, matrices. Este toolbox incorpora funciones para:

    • Diseño de filtros.
    • Mejora y retocado de imágenes.
    • Análisis y estadística de imágenes.
    • Operaciones morfológicas, geométricas y de color.
    • Transformaciones 2D.

    El proceso de imágenes es un campo de trabajo absolutamente crucial para aquellos colectivos e industrias que esten trabajando en áreas como diagnóstico médico, astronomia, geofísica, ciencias medioambientales, análisis de datos en laboratorios, inspección industrial, etc. Los programas actuales de procesado y análisis de imágenes se clasifican actualmente en dos categorias: librerias de bajo nivel para programadores profesionales y paquetes de aplicación con capacidades limitadas de personalización. Ambos tipos de aplicaciones están, generalmente, pensados para tareas básicas de visualización de datos y 'rendering'. Sin embargo, muchos de ellos adolecen de la posibilidad de efectuar análisis numéricos de los mismos. El Image Processing Toolbox entra dentro de la categoria de familias de funciones que, desde el entorno de trabajo de MATLAB , permitirá al profesional efectuar una exploración exhaustiva y desde un punto de vista matemático de las imágenes y gráficos que se deseen tratar o analizar.

    Algunas de las funciones más importantes incluidas dentro de este toolbox son las siguientes:

    • Análisis de imágenes y estadística.
    • Diseño de filtros y recuperación de imágenes.
    • Mejora de imágenes.
    • Operaciones morfológicas.
    • Definición de mapas de colores y modificación gráfica.
    • Operaciones geométricas.
    • Transformación de imágenes.
    • Proceso de bloques

    Neural Network Toolbox

    Este toolbox proporciona funciones para el diseño, inicialización, simulación y entrenamiento de los modelos neuronales de uso más extendido en la actualidad: Perceptrón, redes lineales, redes de retropropagación, redes de base radial, aprendizaje asociativo y competitivo, aplicaciones autoorganizativas, aprendizaje de cuantización vectorial, redes de Elman y redes de Hopfield.

    Mediante la inclusión de un amplio abanico de funciones y procedimientos escritos para MATLAB, el usuario puede mediante el Neural Network Toolbox efectuar el diseño de arquitecturas complejas, combinando los modelos que ya estan proporcionados por defecto en el toolbox. Asimismo, el usuario puede definir sus propias funciones de transferencia e inicialización, reglas de aprendizaje, funciones de entrenamiento y estimación de error para usarlas posteriormente con las funciones básicas.

    El toolbox, aporta las facilidades y prestaciones gráficas de MATLAB para el estudio del comportamiento de las redes: visualización gráfica de la matriz de pesos y vector de desplazamiento mediante diagramas de Hinton, representación de errores a lo largo del entrenamiento, mapas de superficie de error en función de pesos y vector de desplazamiento, etc. Estos gráficos resultan muy útiles en el estudio de la convergencia y estabilidad de los algoritmos de aprendizaje. Este toolbox incluye un manual de introducción al campo de las redes neuronales junto con una colección de demostraciones y aplicaciones muy didácticas, útiles para el estudio y la profundización en las cuestiones fundamentales de los paradigmas de redes neuronales básicos. Asimismo, se proporcionan las referencias bibliográficas más significativas referidas a los distintos modelos que aparecen en la aplicación.

    A pesar de que el estudio de las redes neuronales se inició ya hace algunas decadas, las primeras aplicaciones sólidas dentro de este campo no han tenido lugar hasta hace unos doce años y aun ahora constituyen un área de investigación en rápido desarrollo. Este toolbox tiene por tanto una orientación diferente a aquellos destinados a campos como el de sistemas de control u optimización donde la terminología, fundamentos matemáticos y procedimientos de diseño estan ya firmemente establecidos y se han aplicado durante años. Este toolbox pretende que sea utilizado para la valoración y diseño de diseños neuronales en la industria y sobre todo en educación e investigación.

    Esta herramienta tiene el soporte de MATLAB 4.2c y SIMULINK. La librería de SIMULINK contiene modelos de capas de redes neuronales de cada tipo de neurona implementada en el toolbox de redes neuronales. Es posible por tanto diseñar sistemas SIMULINK para simular redes neuronales creadas usando esta herramienta. Simplemente, las capas se conectan de acuerdo con la arquitectura de la red y se proporcionan como entrada a la caja de diálogo de cada capa la matriz de pesos apropiada y el vector de desplazamiento. Usando el generador de código C de SIMULINK es posible generar automáticamente el código correspondiente a un diseño neuronal.

    Dentro de las aplicaciones básicas de este toolbox, cabe destacar aquellas que estan orientadas a aquellas que se enmarcan dentro del campo de la industria aeroespacial y automoción (simulación, sistemas de control, autopilotaje), banca, defensa (reconocimiento de patrones, procesamiento de señales, identificación de imágenes, extracción de características, compresión de datos), electrónica (control de procesos, análisis de errores, modelado no lineal, síntesis de voz, visión por ordenador), economía (análisis financiero, análisis predictivo), industria (control de procesos, identificación en tiempo real, sistemas de inspección), medicina, robótica (control de trayectorias, sistemas de visión), reconocimiento y síntesis del habla, telecomunicaciones (control de datos e imágenes, servicios de información automatizada, traducción del lenguaje hablado en tiempo real, diagnosis, sistemas de enrutamiento), etc. El toolbox contiene muchos ejemplos de algunas de estas aplicaciones.

    NON LINEAR CONTROL DESIGN TOOLBOX

    Se trata del primer producto comercialmente disponible en la actualidad para el diseño de controladores automáticos en entornos de sistemas no lineales. Este nuevo toolbox está pensado para ser utilizado exhaustivamente por ingenieros que diseñan controladores para industrias avanzadas, destacando el sector del automóvil, ingenieria aeroespacial, control de procesos y empresas petroquímicas. Según indica Jim Tung, Vicepresidente del área de desarrollo de The MathWorks Group, Inc. "El proceso de aproximación tradicional en el diseño de controladores en sistemas no lineales ha sido hasta la fecha linealizarlos de algún modo para aplicar posteriomente un método de diseño lineal que requiere de importantes ajustes manuales. El toolbox NCD permite por primera vez a los ingenieros de control diseñar directamente sus controladores en un ambiente no lineal, obviando la aproximación lineal y otros procedimientos auxiliares que antes se necesitaban de modo imperativo. Los resultados ahora son de elevada calidad, controladores más robustos y un ciclo de diseño mucho más rápido."

    El toolbox NCD extiende, además, las prestaciones que incorpora SIMULINK, el entorno de desarrollo de diagramas de bloques para la modelación y análisis de sistemas dinámicos de The MathWorks, Inc. El usuario puede incluir uno o más bloques NCD en el sistema y describir posteriormente de modo totalmente gráfico las restricciones, tolerancias y límites de permisividad de cada uno de estos bloques. Los métodos avanzados de optimización y la simulación del proceso son posteriormente analizados y ajustados mediante la inclusión de unas ciertas variables de contorno para poder obtener los tiempos de respuesta deseados. Este toolbox puede ser utilizado para ajustar una amplia variedad de controladores que se utilizen en un sistema, destacando los controladores PID, LQR, LQG y estructuras H infinito. El diseñador de sistemas puede utilizar el método de Montecarlo para el diseño y análisis de controladores robustos, siempre que se detecten determinadas variaciones en los componentes del sistema.

    El toolbox NCD es un componente avanzado del entorno integrado de desarrollo que ofrecen a los especialistas los programas MATLAB y SIMULINK. Por ello, los diseñadores podrán beneficiarse de muchos de los toolboxes desarrollados para este entorno en materia de diseño de sistemas lineales. Por ejemplo, podrán utilizarse toolboxes para el análisis de sistemas lineales para el diseño inicial; posteriormente, podrán utilizarse modelos no lineales más sofisticados utilizando SIMULINK. Además, puede invocarse NCD para un mejor ajuste paramétrico y para la optimización de los controladores. Este toolbox se encuentra actualmente disponible para una amplia variedad de plataformas informáticas, destacando ordenadores personales tipo PC o Apple MacIntosh, numerosas estaciones UNIX y ordenadores Digital VAX VMS.

    NAG FOUNDATION TOOLBOX

    Este toolbox proporciona un acceso interactivo, desde dentro de MATLAB, a un amplio conjunto de funciones matemáticas y estadísticas contenidas en las clásicas NAG Fortran Libraries de la empresa The Numerical Algorithms Group Incorpora más de 200 archivos M, los cuales cubren un amplio espectro de áreas de interés, entre las que cabe destacar optimización, ecuaciones diferenciales ordinarias y en derivadas parciales, cuadratura, estadística, etc. La NAG Foundation Toolbox añade también rutinas concretas para campos específicos tales como la resolución de problemas con condiciones de contorno, problemas de cuadratura adaptativa multidimensional, ajuste de curvas y superficies y el acceso a los algoritmos LAPACK para la resolución de ecuaciones lineales. Los nombre de las funciones han sido directamente tomados de las especificaciones de función clásica que añade The Numerical Algorithms Group para sus librerias. Como resultado de esto, aquellos usuarios de las librerías Fortran de NAG que a la vez sean usuarios de MATLAB, encontraran bastante cómodo acceder a las rutinas NAG utilizando la nomenclatura original.

    La NAG Foundation Toolbox es resultado de la colaboración corporativa que actualmente están llevando a cabo The MathWorks Group y The Numerical Algoriths Group para proporcionar un rápido acceso desde MATLAB a un importante de rutinas matemáticas contenidas en la NAG Foundation Library. Actualmente, este toolbox incorpora 250 rutinas matemáticas.

    Algunas de las áreas de cobertura de la NAG Foundation Toolbox son las siguientes:

    • Ceros de polinomios
    • Raíces de una o más ecuaciones de tipo trascendental.
    • Suma de series.
    • Cuadraturas.
    • Ecuaciones diferenciales ordinarias.
    • Ecuaciones diferenciales en derivadas parciales.
    • Estadística no paramétrica.
    • Análisis de series temporales.
    • Rutinas de clasificación.
    • Aproximación de funciones especiales.
    • Aproximación de curvas y superficies.
    • Maximización y minimización de funciones.
    • Factorización de matrices.
    • Valores y vectores propios.
    • Resolución de ecuaciones lineales simultáneas.
    • Ecuaciones lineales (LAPACK).
    • Estadística básica.
    • Análisis de correlación y regresiones.
    • Métodos multivariantes.
    • Generación de números aleatorios.

    3.- VENTANAS

    Como vemos la interfase de usuario de MATLAB no es muy distinta a la de otras aplicaciones a las cuales estamos acostumbrados, pero la verdadera diferencia consiste en la utilidad que presta como aplicación para la investigación y el desarrollo de modelos matemáticos y estadísticos los cuales son tratados de forma interactiva, y con superposición de ventanas en un entorno de fácil comprensión e interpretación de los datos arrojados como resultados de los distintos rangos de calculo que se pueden proporcionar a cada modelo de tal forma que podemos hacer estudios de comportamiento y tratar de determinar como se comportará una determinada variable a través de una serie de experimentación en tiempo real.

    Las ventanas de despliegue grafico son muy similares, en las cuales el énfasis de la presentación se pone en la grafica generada y no en el entorno de trabajo, es por esta razón que puede parecer que el diseño de esta aplicación es escueto, pero debemos recordar que como todo este tipo de aplicaciones su desarrollo está orientado al logro de un objetivo especifico como es el resolver modelos matemáticos.

    3.1.- OPERACIONES CON VECTORES Y MATRICES

    Definiendo Matrices y Vectores

    El entorno de desarrollo nos permite resolver problemas de calculo complejo y es asi como en el calculo matricial y vectorial se puede hacer buen uso de MATLAB, a continuación se ejemplifica el uso del mismo, tengamos en cuenta que una matriz es un arreglo vectorial, por lo tanto el uso de las formas matriciales son aplicables a las formas vectoriales. Si queremos definir la siguiente matriz en MATLAB:

    entonces escribimos:

    »A=[1 2 3 4;5 6 7 8;9 10 11 12;13,14,15,16];

    (El simbolo "»" denota el prompt de MATLAB y no se escribe al entrar instrucciones). El ";" al final de la instrucción omite el "eco" o salida a la pantalla. La instrucción

    »x=4:-1:1

    general el vector fila x=[4,3,2,1]. La instrucción

    »C=A(3:4,1:3);

    se refiere a la submatriz

    de A. También D=A([1,3],3:4) genera

    Matrices Especiales

    En MATLAB podemos generar matrices especiales con las siguientes instrucciones:

    rand(n,m) – matriz nm de entradas aleatorias entre 0 y uno. eye(n) – matriz identidad nn. zeros(n,m) – matriz cero de tamaño nm. ones(n,m) – matriz nm con todas las entradas uno.

    Combinando estas instrucciones podemos generar matrices bastante complicadas. Por ejemplo, la instrucción

    »E=[eye(2),ones(2,3);zeros(2),[1:3;3:-1:1]]

    genera la matriz

    La instrucción round(x) redondea "x" al entero más cercano a "x". Podemos combinar funciones en MATLAB. Por ejemplo, round(10*rand(4)) genera una matriz con entradas aleatorias entre 0 y 10.

    Aritmética de Matrices

    Considere las siguientes matrices:

    Entonces las operaciones A*B (producto matricial de A con B), A+B (suma de A mas B), 3*A (multiplicación escalar de 3 por A) tienen los siguientes resultados:

    »A*B

    ans =

    16 19 13 10 11 7

    »A+B

    ??? Error using ==> + Matrix dimensions must agree.

    »3*A

    ans =

    12 15   6   9

    Note que MATLAB "anuncia" que A+B no se puede calcular. Las operaciones A' (transpuesto de A), inv(A) (inversa de A), y A^3 (esto es A*A*A) tienen como resultados:

    »A'

    ans =

    4 2 5 3

    »inv(A)

    ans =

    1.5000 -2.5000 -1.0000 2.0000

    »A^3

    ans =

    174 235   94 127

    Si precedemos las operaciones matriciales "*", "^" con el punto ".", entonces estas se hacen termino a termino. Por ejemplo A.*C y A.^2 generan:

    » A.*C

    ans =

    -4 10  4 12

    » A.^2

    ans =

    16 25   4   9

    Solución de Sistemas Lineales

    Considere le sistema lineal

    Definimos la matriz de coeficientes y el lado derecho por las instrucciones:

    »A=[1 -2 3;4 1 -2;2 -1 4]; »b=[1 -1 2]';

    Note el transpuesto en b para hacerlo un vector columna. Vamos a resolver este sistema por tres métodos:

    • eliminación Gaussiana
    • forma echelon reducida o método de Gauss-Jordan
    • método de la inversa

    En el método de Gauss-Jordan, luego de obtener la forma echelon de la matriz de coeficientes aumentada, eliminamos también la parte de arriba de la matriz hasta producir una matriz donde las columnas con unos, solo tienen un uno. Esto se conoce como la forma echelon reducida (ver texto). Para comparar los tres métodos utilizamos la instrucción flops de MATLAB que estima el número de operaciones de punto flotante entre dos llamadas sucesivas a flops. Una llamada de la forma flops(0) inicializa el contador de operaciones a cero. La sucesión de instrucciones:

    » flops(0) » x=Ab

    x =

    -0.0417  0.4167  0.6250

    » flops

    lleva a cabo eliminación Gaussiana en el sistema de arriba y produce como resultado:

    ans =

    73

    esto es, se necesitaron aproximadamente 73 operaciones de punto flotante (sumas, restas, multiplicaciones ó divisiones) para resolver el sistema con eliminación Gaussiana. Para el método de Gauss-Jordan tenemos:

    » flops(0) » rref([A b])

    ans =

    1.0000  0  0 -0.0417 0 1.0000 0 0.4167 0 0 1.0000 0.6250

    » flops

    ans =

    483

    el cual requiere 483 operaciones de punto flotante. Finalmente el método de la inversa se realiza con la siguiente sequencia de instrucciones:

    » flops(0) » x=inv(A)*b

    x =

    -0.0417  0.4167  0.6250

    » flops

    ans =

    108

    el cual toma 108 operaciones. Vemos pues que eliminación Gaussiana es el mejor de los tres métodos lo cual es cierto en general.

    Usando MATLAB podemos estudiar la relación entre la solubilidad del sistema Ax=b y la nosingularidad de la matriz de coeficientes A. En clase vimos que el sistema Ax=b tiene solución única para cualquier lado derecho b si y solo si la matriz A es nosingular. ¿Qué sucede si A es singular? ¿Entonces Ax=b no tiene solución? Si A es singular el sistema Ax=b puede tener solución para algunos b's pero de seguro hay al menos un b* para el cual Ax=b* no tiene solución. Vamos a genera una matriz singular con MATLAB:

    » A=round(10*rand(6)); » A(:,3)=A(:,1:2)*[4 3]'

    A =

    2 5 23 9 7 3 0 8 24 8 9 6 7 0 28 5 8 8 7 1 31 1 3 10 9 5 51 7 0 4 4 7 37 4 7 2

    (Como usamos la instrucción rand, el resultado de esta y cualquier secuencia de instrucciones que use esta función de MATLAB, no siempre será el mismo). La primera instrucción genera una matriz aleatoria con entradas enteras entre 0 y 10, y con la segunda instrucción remplazamos la tercera columna de A con cuatro veces la primera columna mas tres veces la segunda columna. ¡La matriz resultante es singular! (Explique esto sin calcular el determinante). Generamos ahora un lado derecho arbitrario mediante la instrucción:

    » b=round(20*(rand(6,1)-0.5))

    b =

    10 4 5 3 -9 3

    Esto genera una matriz 61 aleatoria con entradas enteras entre -10 y 10. Resolvemos el sistema Ax=b calculando la forma echelon reducida de la matriz de coeficientes aumentada [A b]:

    » rref([A b])

    ans =

    1 0 4 0 0 0 0 0 1 3 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1

    Como la última fila es de la forma el sistema es inconsistente, i.e., no tiene solución. ¡Recuerde que A es singular! Esto no quiere decir que Ax=b nunca tenga solución. Si definimos c=A*b, con el b de arriba digamos, el sistema Ax=c tiene solución x=b (¿por qué?). De hecho si calculamos la forma echelon reducida de [A c] tenemos:

    » c=A*b; » rref([A c])

    ans =

    1 0 4 0 0 0 30 0 1 3 0 0 0 19 0 0 0 1 0 0 3 0 0 0 0 1 0 -9 0 0 0 0 0 1 3 0 0 0 0 0 0 0

    el cual denota un sistema consistente dependiente con soluciones:

    donde x3 es arbitrario.

    Funciones de Matrices

    MATLAB posee una gran cantidad de funciones matriciales. De las más comunes tenenmos:

    • min(A), max(A) – dan el mínimo y máximo respectivamente por columnas de A
    • sum(A), prod(A) – producen la suma y producto respectivamente por columnas de A
    • norm(A,p) – norma p de la matriz A donde p=1,2, ó inf
    • eig(A) – vector cuyos componentes son los valores propios de A
    • det(A) – el determinante de A
    • inv(A) – la matriz inversa de A

    3.2.- GRAFICAS

    MATLAB provee excelentes funciones para gráficas en dos, tres y cuatro dimensiones. Veamos un par de ejemplos sencillos. Suponga que queremos trazar la gráfica de la función

    Esto lo podemos lograr con las instrucciones:

    » x=-5:.1:5; » y=x.^2.*exp(-x.^2); » plot(x,y)

    La primera instrucción divide el intervalo [-5,5] en subintervalos de largo 0.1, la segunda instrucción evalúa la función en los puntos de la partición, y finalmente graficamos los resultados con plot. La instrucción plot tiene opciones para cambiar patrones del trazado, poner titulos, etc.

    Supongamos ahora que queremos dibujar la superficie:

    Esto lo hacemos con la secuencia de instrucciones:

    » x=-5:.4:5; » y=x; » [X,Y]=meshgrid(x,y); » Z=X.^2.*exp(-Y.^2); » surf(X,Y,Z)

    (Para ver el gráfico faltante haga lick en el menú superior "Bajar Trabajo")

    Las primeras dos instrucciones dividen los ejes de "x" y "y" en subintervalos de largo 0.4; la tercera instrucción genera una rejilla en el conjunto [-5,5][-5,5] con cuadraditos de lados 0.4 como se ilustra en la siguiente figura:

    La cuarta instrucción evalua la función en los puntos de la rejilla, y finalmente trazamos la superficie con surf.

    3.3.- ANÁLISIS DE VOZ

    El análisis de voz propiamente no es funcional pues el modelo que corresponde a la modulación interactiva y las distintas frecuencias que aunque estan sometias a un rango especifico varian en un numero infinito, por esta razón el estudio se refiera a la acustica en si como un modo de generar modelos simples los cuales se van acoplando a las necesidades de la investigación en la cual es requerido, y es así como muchas de estas investigaciones han aportado soluciones efectivas para el desarrollo de mejores programas de reconocimiento de voz.

    Introducción a modelos físicos

    ¿Cuál es la causa de que la presión de aire fluyendo a través de un tubo hueco produzca ondas de presión en el aire del exterior que conocemos como notas? Con modelos físicos se intenta describir matemáticamente la acústica de los instrumentos tradicionales y implementar digitalmente los algoritmos para poder reproducir estos fenómenos.

    En la actualidad se ha desarrollado suficientamente la tecnología para que se puedan manipular estos modelos al mismo nivel que los originales acústicos en tiempo real, y por eso han sido objeto de mucho interés comercial. Pero, por supuesto, la imitación nunca puede ser mejor que el original, así que todavía la intención principal es descubrir la naturaleza de los instrumentos.

    Al contrario de la síntesis tradicional de muestras, se gobierna un modelo físico por la interfaz entre el ejecutante y el instrumento.Variables como la presión de aire y la embocadura para instrumentos de viento y la presión del arco y posición del dedo para los de cuerdas fijan qué oscilaciones afectan al medio resonante, que como consecuencia emite ondas sonoras a su entorno. Con ello se ha perdido la generalidad de la síntesis muestreada y la posibilidad de influir la señal directamente, a cambio de un control del modelo más amigable al usuario, intuitivo y tradicional.

    Los modelos físicos requieren menos capacidad de datos que la síntesis muestreada si hay algoritmos efectivos, pero los gastos elevados se encuentran al desarrollar estos algoritmos que es necesario adaptar a medida para cada tipo de instrumento que tiene distintos fenómenos acústicos.

    Así como la síntesis de muestras ha contribuído a clasificar los distintos instrumentos por su timbre, los modelos físicos han contribuido a refinar la clasificación por sus cualidades físicas. Los dos grupos principales son instrumentos de cuerdas e instrumentos de viento, ambos subdivididos en varios grupos.

    Para modelar un instrumento se divide en dos partes funcionales: el excitador y el resonador. El excitador se puede simular como una señal entrada no lineal para el resonador, el cuál se puede modelar como una función transferencia lineal que produce la señal salida audible. Los dos se unen con realimentación.

    La teoría más aplicada para el resonador de modelos físicos es la denominada ³teoría de guía de ondas². Se basa en la solución analítica de la ecuación de la propagación de ondas en el material. La ecuación es adecuada para cualquier guía de ondas unidimensional, tanto cuerdas como tubos huecos:

    Ky² = Eÿ

    Para cuerdas: K = tensión de la cuerda E = densidad de masa lineal y = desplazamiento de la cuerda ÿ = aceleración de la cuerda y² = curvatura de la cuerda

    Además hay que modelar las pérdidas de energía debido a la resistencia del aire, la rigidez, la fricción interno etc., que hace apagarse al sonido. Se puede implementar todo eso muy efectivamente mediante componentes digitales como líneas de retardo, unidades de acoplo y filtros.

    El excitador al ser no lineal es más dificil de modelar que el resonador. Además existen diferentes tipos que implican diferentes conjuntos de ecuaciones, pero hay buenos modelos para estos también. Para mantener una nota constante el excitador tiene que proprocionar exactamente la misma energía que desaparece en el resonador; un cambio en la energía proporcionada da un cambio correspondiente en la potencia sonora. Cada resonador tiene límites superior e inferior que determinan qué suministro de energía resulta en un sonido conteniendo la frecuencia fundamental de la nota deseada.

    Diferentes opciones para desarrollos posteriores

    En principio esta línea de investigación no tenía un fin comercial, sino que era un intento de entender la acústica de los instrumentos acústicos. Hoy día los algoritmos resultantes son tan efectivos, la capacidad de cálculo tan elevada y la interfaz al ejercitante tan buena que también es un método de producir instrumentos musicales comerciales. En esta tarea, hay ángulos diferentes de acometer los problemas. En un extremo está el físico que analiza los mecanismos de generación, en el otro está el diseñador de instrumentos que desea buenos resultados en la calidad del sonido.

    Uno de los problemas básicos y hasta ahora no resueltos es el de los pequeños márgenes, que son tan importantes. Un cambio minúsculo de p.ej. la presión de arco o la embocadura produce cambios bastante audibles, y aún es un misterio qué separa un violín bueno y uno excelente. Hay que bajar a un nivel muy detallado que en cualquier otro contexto electroacústico se podría pasar por alto, lo cual es un gran desafío para el futuro.

    Lo más importante será siempre centrarse en los aspectos musicales aunque las matemáticas sean bastante interesantes de por sí.

    ¿Por qué?

    La ventaja de la acústica musical es la posibilidad de utilizar el excelente oído humano como mecanismo de control para las teorías deducidas, que también son aplicables para objetivos no musicales. Por eso los modelos físicos pueden utilizar la realidad como su hipótesis verificativa.

    La finalidad será llegar un día a conocer los fenómenos acústicos de los instrumentos tan bien que se logre mejorar y/o construir nuevos instrumentos acústicos, y poder modelar instrumentos ficticios inspirados en los tradicionales pero que no necesariamente se puedan construir en la realidad.

    También hay un gran interés comercial por estos modelos, ya que son buenas copias de los instrumentos tradicionales, pero mucho más flexibles. Se pueden presentar facilidades como auriculares, MIDI, salida de jack, secuenciador, varios instrumentos parecidos en el mismo modelo, y formatos pequeños y ligeros.

    4.- FUNCIONES ESPECIALES

    LISTA PARCIAL DE FUNCIONES

    Funciones matemáticas

    Funcionales especiales y elementales

    • Funciones gamma, beta y elípticas.
    • Transformación de sistemas de coordenadas.
    • Matriz identidad y otras matrices elementales.
    • Matrices de Hilbert, Toeplitz, Vandermonde, Hadamard, etc.
    • Partes reales, imaginarias y complejas conjugadas.
    • Funciones trigonométricas y de potencias.

    Algebra lineal numérica

    • Valores propios y descomposición de matrices.
    • Funciones generales de evaluación de matrices.
    • Determinantes, normas, rangos, etc.
    • Matrices inversas y factorización de matrices.
    • Matriz exponencial, logarítmica y raíces cuadradas.

    Polinomios e interpolación

    • Interpolación 1-D y 2-D.
    • Construcción polinomial.
    • Interpolación por splines cúbicos.
    • Diferenciación de polinomios.
    • Evaluación de polinomios.
    • Multiplicación y división de polinomios.
    • Residuos de polinomios y residuos.

    Métodos numéricos no lineales

    • Búsqueda de ceros en funciones de una única variable.
    • Minimización de funciones de una o más variables.
    • Resolución numérica de integrales.
    • Solución numérica de ecuaciones diferenciales ordinarias.

    Estadística y análisis de Fourier

    • Convolución 1-D y 2-D.
    • Filtros digitales 1-D y 2-D.
    • Transformadas de Fourier 1-D y 2-D y su inversa.
    • Coeficientes de correlación y matrices de covarianza.
    • Deconvolución.
    • Magnitudes y ángulos de fase.
    • Funciones max, min, sum, mean y otras funciones de estadística básica.

    Operaciones algebráicas y lógicas

    • Suma, resta, multiplicación, división y potencias de matrices.
    • Matrix traspuesta.
    • Operadores lógicos AND, OR, NOT y XOR.

    Utilidades

    • Gestión y mantenimiento de errores.
    • Conversión de tipos de datos Fortran.
    • Funciones de fecha y hora.
    • Clasificación de matrices.
    • Conversión de números a cadenas y viceversa.

    REFERENCIAS BIBLIOGRAFICAS

    1. MATLAB User's Guide, The MathWorks, Inc., Massachusetts, 1995.
    2. The MATLAB Handbook, E. Part-Enander, A. Sjoberg, B. Melin, and P. Isaksson, Addison-Wesley, New York, 1996.

     

     

    Autor:

    Felipe felcos[arroba]www.cantv.net