Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

¿Qué son los objetos del sistema?

Un System object™ es un objeto MATLAB® especializado. Las cajas de herramientas del sistema incluyen objetos del sistema y la mayoría de las cajas de herramientas del sistema también tienen funciones MATLAB y bloques Simulink®. Los objetos del sistema están diseñados específicamente para implementar y simular sistemas dinámicos con entradas que cambian con el tiempo. Muchos sistemas de procesamiento de señales, comunicaciones y controles son dinámicos. En un sistema dinámico, los valores de las señales de salida dependen tanto de los valores instantáneos de las señales de entrada como del comportamiento pasado del sistema. Los objetos del sistema utilizan Estados internos para almacenar ese comportamiento anterior, que se utiliza en el siguiente paso computacional. Como resultado, los objetos del sistema se optimizan para cálculos iterativos que procesan grandes flujos de datos en segmentos, como sistemas de procesamiento de audio y vídeo. Esta capacidad de procesar datos de streaming proporciona la ventaja de no tener que contener grandes cantidades de datos en la memoria. El uso de los datos de streaming también le permite utilizar programas simplificados que utilizan bucles de manera eficiente.

Por ejemplo, puede utilizar objetos del sistema en un sistema que lea datos de un archivo, filtre esos datos y, a continuación, escriba el resultado filtrado en otro archivo. Normalmente, se pasa una cantidad especificada de datos al filtro en cada iteración de bucle. El objeto del lector de archivos utiliza un estado para realizar un seguimiento de dónde en el archivo para comenzar los siguientes datos leídos. Del mismo modo, el objeto Writer tracks donde escribió los datos por última vez en el archivo de salida para que los datos no se sobreescriban. El objeto Filter mantiene sus propios Estados internos para asegurarse de que el filtrado se realiza correctamente. Este diagrama representa un solo bucle del sistema.

Estas ventajas hacen que los objetos del sistema sean adecuados para procesar datos de streaming.

Muchos objetos de sistema soportan:

  • Aritmética de punto fijo (requiere una licencia de Fixed-Point Designer™)

  • C generación de código (requiere un MATLAB Coder™ o Simulink Coder licencia

  • Generación de código de HDL (requiere una licencia HDL Coder™)

  • Archivos ejecutables o generación de bibliotecas compartidas (requiere un MATLAB Compiler™ licencia

Nota

Compruebe la documentación del producto para confirmar el punto fijo, la generación de código y MATLAB Compiler soporte para los objetos de sistema específicos que desee utilizar.

Los objetos del sistema utilizan un mínimo de dos comandos para procesar los datos:

  • Creación del objeto (por ejemplo, fft256 = dsp.FFT)

  • Ejecución de datos a través del objeto (como, fft256(x))

Esta separación de la creación de la ejecución le permite crear múltiples, persistentes, objetos reutilizables, cada uno con diferentes configuraciones. El uso de este enfoque evita la validación y verificación de entrada repetida, permite un uso fácil dentro de un bucle de programación y mejora el rendimiento general. Por el contrario, las funciones MATLAB deben validar los parámetros cada vez que se llama a la función.

Además de los objetos del sistema que se proporcionan con los cuadros de herramientas del sistema, puede crear sus propios objetos del sistema. Véase Create System Objects.

Ejecución de un objeto de sistema

Para ejecutar un System object y realizar la operación definida por su algoritmo, se llama al objeto como si fuera una función. Por ejemplo, para crear un objeto FFT que utilice dsp.FFT System object, especifique una longitud de 1024 y los nombres dft, utilice:

dft = dsp.FFT('FFTLengthSource','Property','FFTLength',1024); 
para ejecutar este objeto con el x de entrada, utilice:
dft(x);
si ejecuta un System object sin argumentos de entrada, debe incluir paréntesis vacíos. Por ejemplo, asysobj().

Al ejecutar un System object, también realiza otras tareas importantes relacionadas con el procesamiento de datos, como los Estados de inicialización y administración de objetos.

Nota

Una forma alternativa de ejecutar un System object es utilizar la función step. Por ejemplo, para un objeto creado con dft = dsp.FFT, puede ejecutarlo mediante step(dft,x).

Funciones de objeto de sistema

Después de crear un System object, se utilizan varias funciones de objeto para procesar datos o obtener información de o sobre el objeto. La sintaxis para usar funciones es <object function name>(<system object name>), además de posibles argumentos de entrada extra. Por ejemplo, para txfourier = dsp.FFT, donde txfourier es un nombre que se asigna, se llama a la función reset mediante reset(txfourier).

Funciones de objeto comunes

Todos los objetos de sistema admiten las siguientes funciones de objeto. En los casos en que una función no es aplicable a un objeto determinado, llamar a esa función no tiene ningún efecto sobre el objeto.

FunciónDescripción
Ejecute la función Object o
step

Ejecuta el objeto para procesar datos mediante el algoritmo definido por ese objeto.

Ejemplo: Para el objeto dft = dsp.FFT;, ejecute el objeto mediante:

  • y = dft(x)

  • y = step(dft,x)

Como parte de este procesamiento, el objeto inicializa los recursos, devuelve los resultados y actualiza los Estados del objeto según sea necesario. Durante la ejecución, sólo puede cambiar las propiedades ajustables. Ambas formas de ejecutar un System object devuelven variables MATLAB regulares.

release

Liberar recursos y permitir cambios en los valores de propiedad de objetos del sistema y características adicionales que se limitan mientras el objeto del sistema está en uso.

resetRestablece el System object a los valores iniciales de ese objeto.
narginDevuelve el número de entradas aceptadas por la definición del algoritmo de objeto del sistema. Si el número de entradas puede cambiar (la definición del algoritmo incluye varargin), la salida nargin es negativa.
nargoutDevuelve el número de salidas aceptadas por la definición del algoritmo de objeto del sistema. Si el número de salidas puede cambiar (la definición del algoritmo incluye varargout), la salida nargout es negativa.
getDiscreteStateDevuelve una estructura de los Estados discretos del objeto. Si el objeto no tiene Estados discretos, getDiscreteState devuelve una estructura vacía.
cloneCrea otro objeto del mismo tipo con los mismos valores de propiedad
isLockedDevuelve un valor lógico que indica si se ha llamado al objeto y aún no se ha llamado a release en el objeto.
isDoneSe aplica sólo a los objetos de origen que heredan de matlab.system.mixin.FiniteSource. Devuelve un valor lógico que indica si se ha alcanzado el final del archivo de datos. Si un objeto determinado no tiene la capacidad de fin de datos, este valor de función siempre devuelve false.
infoDevuelve una estructura que contiene información característica sobre el objeto. Los campos de esta estructura varían en función del objeto. Si un objeto concreto no tiene información característica, la estructura está vacía.

Consulte también

Temas relacionados