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.

Diseño del sistema en MATLAB utilizando objetos de sistema

Diseño y simulación de sistemas en MATLAB

Los objetos del sistema permiten diseñar y simular el sistema.MATLAB® Los objetos de sistema se utilizan como se muestra en este diagrama.MATLAB

  1. : Permite crear los objetos del sistema que se utilizarán en el sistema. .Crear componentes individualesCrear componentes individuales Además de los objetos System provistos con las cajas de herramientas del sistema, también puede crear sus propios objetos de sistema. Ver.Crear System objects

  2. — Si es necesario, cambie los valores de propiedad de los objetos para modelar su sistema en particular.Configurar componentes Todas las propiedades tienen valores predeterminados que es posible que pueda utilizar sin cambiarlos.System object™ Ver.Configurar componentes

  3. — Escribir un programa que incluya los objetos del sistema, conectándolos utilizando variables como entradas y salidas para simular el sistema.Ensamblar componentes en sistemaMATLABMATLAB Ver.Conexión de objetos del sistema

  4. — Ejecute el programa.Ejecute su sistema Puede cambiar las propiedades ajustables mientras el sistema se está ejecutando. Mira y.Ejecute su sistemaReconfigurando objetos

Crear componentes individuales

El ejemplo de esta sección muestra cómo utilizar los objetos del sistema que están predefinidos en el software. Si utiliza una función para crear y utilizar a, especifique la creación del objeto mediante código condicional.System object La condialización de la creación evita errores si se llama a esa función dentro de un bucle. También puede crear sus propios objetos de sistema, consulte.Crear System objects

En esta sección se muestra cómo configurar el sistema utilizando componentes predefinidos de y:DSP System Toolbox™Audio Toolbox™

  • — Leer el archivo de datos de audiodsp.AudioFileReader

  • : Filtre los datos de audiodsp.FIRFilter

  • — Reproduzca los datos de audio filtradosaudioDeviceWriter

En primer lugar, cree los objetos de componente, utilizando la configuración de propiedad predeterminada.

audioIn = dsp.AudioFileReader; filtLP = dsp.FIRFilter; audioOut = audioDeviceWriter; 

Configurar componentes

Cuándo configurar componentes

Si no ha establecido las propiedades de un objeto cuando lo creó y no desea utilizar valores predeterminados, debe establecer explícitamente esas propiedades. Algunas propiedades le permiten cambiar sus valores mientras el sistema se está ejecutando. Consulte para obtener información.Reconfigurando objetos

La mayoría de las propiedades son independientes entre sí. Sin embargo, algunas propiedades habilitan o deshabilitan otra propiedad o limitan los valores de otra propiedad.System object Para evitar errores o advertencias, debe establecer la propiedad de control antes de establecer la propiedad dependiente.

Mostrar valores de propiedad de componente

Para mostrar los valores de propiedad actuales de un objeto, escriba el nombre del identificador de ese objeto en la línea de comandos (por ejemplo).audioIn Para mostrar el valor de una propiedad específica, escriba (por ejemplo).objecthandle.propertynameaudioIn.FileName

Configurar valores de propiedad de componente

En esta sección se muestra cómo configurar los componentes para el sistema estableciendo las propiedades de los objetos componentes.

Utilice este procedimiento si ha creado los componentes por separado para configurarlos. También puede crear y configurar los componentes al mismo tiempo, como se describe en un ejemplo posterior.

Para el objeto de lector de archivos, especifique el archivo que desea leer y establezca el tipo de datos de salida.

Para el objeto de filtro, especifique los coeficientes del numerador de filtro utilizando la función FIR1, que especifica el orden de filtro de paso bajo y la frecuencia de corte.

Para el objeto de escritor de dispositivo de audio, especifique la frecuencia de muestreo. En este caso, utilice la misma frecuencia de muestreo que los datos de entrada.

audioIn.Filename = "speech_dft_8kHz.wav"; audioIn.OutputDataType = "single"; filtLP.Numerator = fir1(160,.15); audioOut.SampleRate = audioIn.SampleRate;

Cree y configure componentes al mismo tiempo

En este ejemplo se muestra cómo crear los componentes y configurar las propiedades deseadas al mismo tiempo.System object Especifique cada propiedad con un par de argumentos "Name", Value.

Cree el objeto de lector de archivos, especifique el archivo que desea leer y establezca el tipo de datos de salida.

audioIn = dsp.AudioFileReader("speech_dft_8kHz.wav",...                               'OutputDataType',"single"); 

Cree el objeto de filtro y especifique el numerador de filtro mediante la función FIR1. Especifique el orden de filtro de paso bajo y la frecuencia de corte de la función FIR1.

filtLP = dsp.FIRFilter('Numerator',fir1(160,.15)); 

Cree el objeto de reproductor de audio y establezca la frecuencia de muestreo en la misma velocidad que los datos de entrada.

audioOut = audioDeviceWriter('SampleRate',audioIn.SampleRate); 

Ensamblar componentes en sistema

Conexión de objetos del sistema

Una vez que haya determinado los componentes que necesita y haya creado y configurado los objetos del sistema, ensamble el sistema. Utilice los objetos del sistema como otras variables e incluirlos en el código.MATLABMATLAB Puede pasar variables dentro y fuera de los objetos del sistema.MATLAB

La principal diferencia entre el uso de objetos del sistema y el uso de funciones es que los objetos del sistema utilizan un proceso de dos pasos. Primero se crea el objeto y se establecen sus parámetros y, a continuación, se ejecuta el objeto. La ejecución del objeto lo inicializa y controla el flujo de datos y la administración de estado del sistema. Normalmente se llama a un dentro de un bucle de código.System object

La salida de un objeto se utiliza como entrada para otro objeto. Para algunos objetos System, puede utilizar las propiedades de esos objetos para cambiar las entradas o salidas. Para comprobar que se está utilizando el número adecuado de entradas y salidas, puede utilizar y en cualquier.narginnargoutSystem object Para obtener información sobre todas las funciones disponibles, consulte.System objectFunciones de objeto de sistema

Conectar componentes en un sistema

Esta sección muestra cómo conectar los componentes juntos para leer, filtrar y reproducir un archivo de datos de audio. El bucle while utiliza la función para leer todo el archivo.isDone

while ~isDone(audioIn)     audio = audioIn();    % Read audio source file     y = filtLP(audio);        % Filter the data     audioOut(y);              % Play the filtered data end 

Ejecute su sistema

Ejecute el código escribiendo directamente en la línea de comandos o ejecutando un archivo que contenga el programa. Cuando se ejecuta el código para el sistema, los datos se procesan a través de los objetos.

Lo que no puede cambiar mientras el sistema se está ejecutando

La primera llamada a una inicializa y ejecuta el objeto.System object Cuando a ha comenzado a procesar datos, no puede cambiar las propiedades no ajustables.System object

Según el objeto System, también se pueden restringir las especificaciones adicionales:

  • Tamaño de entrada

  • La complejidad de entrada

  • Tipo de datos de entrada

  • Los tipos de datos de propiedad ajustables

  • Los tipos de datos de estado discretos

Si el autor del objeto System ha restringido estas especificaciones, obtendrá un error si intenta modificarlas mientras el objeto System está en uso.

Reconfigurando objetos

Cambiar propiedades

Cuando un ha comenzado a procesar datos, no puede cambiar las propiedades.System objectno sintonible Puede usar en cualquiera para comprobar si el objeto está procesando datos.isLockedSystem object Cuando se complete el procesamiento, puede usar la función para liberar recursos y permitir cambios en las propiedades no ajustables.release

Algunas propiedades de objeto son, lo que le permite cambiarlas incluso si el objeto está en uso.Armonioso La mayoría de las propiedades no son ajustables.System object Consulte la página de referencia del objeto para determinar si una propiedad individual es ajustable.

Cambiar complejidad de entrada, cotas o tipo de datos

Durante el uso del objeto, después de haber llamado al algoritmo, algunos objetos del sistema no permiten cambios en la complejidad, el tamaño o el tipo de datos de entrada. Si el objeto System restringe estas especificaciones, puede llamar para cambiar estas especificaciones.release La llamada también restablece otros aspectos del objeto System, como Estados y Estados discretos.release

Cambiar una propiedad Sintonible en el sistema

En este ejemplo se muestra cómo cambiar el tipo de filtro a un filtro de paso alto mientras se ejecuta el código modificando la propiedad del objeto de filtro.Numerator El cambio surte efecto la próxima vez que se llame al objeto.

reset(audioIn);% Reset audio file Wn = [0.05,0.1,0.15,0.2]; for x=1:4000     Wn_X = ceil(x/1000);     filtLP.Numerator = fir1(160,Wn(Wn_X),'high');     audio = audioIn();    % Read audio source file     y = filtLP(audio);    % Filter the data     audioOut(y);          % Play the filtered data end