DSP System Toolbox

 

DSP System Toolbox

Diseñe y simule sistemas de procesamiento de señales en streaming

Más información:

Bloques de álgebra lineal y de procesamiento de señales para Simulink

En Simulink, DSP System Toolbox ofrece una librería de bloques de algoritmos de procesamiento de señales para filtros, transformadas y álgebra lineal. Estos bloques procesan las señales de entrada de streaming como muestras individuales o como conjuntos de muestras llamados tramas. El procesamiento basado en muestras permite procesos y aplicaciones de baja latencia que requieren un procesamiento escalar. El procesamiento basado en tramas permite un mayor rendimiento a cambio de latencia. Esta toolbox soporta ambos modos de procesamiento, el basado en muestras y el basado en tramas.

Los programas de MATLAB que utilizan System objects pueden incorporarse en modelos de Simulink a través del bloque MATLAB Function o del bloque MATLAB System. La mayoría de los System objects tienen sus correspondientes bloques de Simulink con las mismas funcionalidades.

Procesamiento basado en tramas en sistemas embebidos

Funcionamiento basado en tramas, que adquiere una trama de 16 muestras entre cada rutina de servicio de interrupción (ISR), mostrando que la tasa de rendimiento basada en tramas es mayor que la basada en muestras.

Bloques de procesamiento de señales para el diseño, la implementación y la validación de sistemas DSP

Los bloques de Simulink para el procesamiento de señales soportan tipos de datos en punto flotante de precisión doble y de precisión simple, así como tipos de datos enteros. También soportan tipos de datos en punto fijo cuando se utilizan con Fixed-Point Designer.

Los bloques de procesamiento de señales de DSP System Toolbox incluyen:

  • Transformadas de señal, tales como la transformada rápida de Fourier (FFT), la transformada de coseno discreta (DCT), la transformada de Fourier de tiempo corto (STFT) y la transformada wavelet discreta (DWT)
  • Diseño de filtros e implementación de filtros FIR, IIR y analógicos
  • Filtros multitasa y multietapa para la conversión de velocidad de muestreo, tales como CIC, de banda media, polifase y Farrow
  • Técnicas de procesamiento de señales estadísticas y adaptativas para estimación espectral, ecualización y supresión de ruido
  • Operaciones y medición de señales , tales como convolución, creación de ventanas, relleno, retardos, hallazgo de picos y cruce por cero
  • Visualización de señales de streaming y medición con Time Scope, Spectrum Analyzer, etc.
  • Métodos de administración de señales, tales como almacenamiento en memoria externa, indexación, cambio, apilamiento y cola
  • Sumideros y fuentes tales como generadores de ruido coloreado y chirp, NCO, receptor y transmisor de UDP, etc.
  • Rutinas de álgebra lineal numérica, incluidos solvers de sistemas lineales, factorizaciones de matriz e inversiones de matrices
Librerías de bloques de procesamiento de señales para Simulink

Librería de bloques de DSP System Toolbox para el procesamiento de señales disponible en Simulink (arriba), junto con vistas ampliadas de solvers de sistemas lineales (abajo a la izquierda) y transformadas (abajo a la derecha).

Modelado de sistemas multitasa

En MATLAB, DSP System Toolbox admite el procesamiento multitasa para la conversión de la tasa de muestreo y el modelado de sistemas en los que se debe establecer una interfaz para diferentes velocidades de reloj o muestreo. La funcionalidad multitasa incluye filtros multietapa y multitasa tales como FIR e IIR de media banda, filtros polifase, filtros CICfiltros Farrow. También incluye operaciones de señales, tales como interpolación, diezmado y conversión arbitraria de tasa de muestreo.

Diezmador multietapa para ADC sigma-delta

Modelo de Simulink de un filtro de diezmado multietapa para un conversor analógico a digital sigma-delta

Procesamiento de señales de streaming en MATLAB

DSP System Toolbox proporciona un marco para el procesamiento de señales de streaming en MATLAB. La toolbox incluye una librería de algoritmos de procesamiento de señales optimizados para procesar señales de streaming, tales como filtros monotasa y multitasa, filtrado adaptativo y FFT. Esta toolbox resulta ideal para diseñar, simular y desplegar soluciones de procesamiento de señales para aplicaciones biomédicas, sísmicas, de audio, de voz, de comunicaciones, de control y de sensores, entre otras.

Las técnicas de procesamiento de señales de streaming permiten el procesamiento de flujos de datos continuos, lo que a menudo puede acelerar las simulaciones dividiendo los datos de entrada en tramas y procesando cada trama a medida que se adquiere. Por ejemplo, el procesamiento de señales de streaming en MATLAB permite el procesamiento de audio multicanal en tiempo real.

El procesamiento de señales de streaming es posible mediante una librería de componentes algorítmicos de DSP llamados System objects™ para representar algoritmos basados en datos, fuentes y sumideros. System objects permiten crear aplicaciones de streaming mediante la automatización de tareas, tales como la indexación de datos, el almacenamiento en memoria externa y la gestión de estados de algoritmos. Puede combinar System objects de MATLAB con funciones y operadores estándar de MATLAB.

Es posible utilizar Time Scope y Spectrum Analyzer para visualizar y medir las señales de streaming.

Puede aplicar filtros adaptativos, monotasa y multitasa a los datos de streaming mediante algoritmos optimizados para los datos y las señales de streaming.

Procesamiento de señales de streaming en MATLAB

Código de MATLAB implementa un bucle de streaming básico (izquierda). Time Scope (arriba derecha) y Spectrum Analyzer (abajo derecha) permiten visualizar y medir las señales en directo a medida que se generan y se procesan.

Librería de algoritmos para el diseño, la implementación y la realización de pruebas de sistemas DSP

DSP System Toolbox proporciona más de 350 algoritmos optimizados para diseñar, implementar y validar sistemas de streaming, ya sea implementados como funciones de MATLAB o como System objects de MATLAB. Los algoritmos admiten tipos de datos en punto flotante de precisión doble y de precisión simple. La mayoría de los algoritmos admite también tipos de datos enteros, además de tipos de datos en punto fijo, que requieren Fixed-Point Designer.

En MATLAB, las categorías de algoritmos de esta toolbox incluyen:

Librerías para el procesamiento de señales de streaming en MATLAB

Listas parciales de algoritmos de procesamiento de señales disponibles en MATLAB, tal y como las muestra la ayuda de línea de comandos o se ven mediante el rellenado de pestañas.

Sistemas multitasa

En MATLAB, DSP System Toolbox admite el procesamiento multitasa para la conversión de la tasa de muestreo y el modelado de sistemas en los que se debe establecer una interfaz para diferentes velocidades de reloj o muestreo. La funcionalidad multitasa incluye filtros multietapa y multitasa  tales como FIR e IIR de media banda, filtros polifase, filtros CICfiltros Farrow. También incluye operaciones de señales, tales como interpolación, diezmado y conversión arbitraria de tasa de muestreo.

Análisis de un diseño de DDC de tres etapas

Respuesta en frecuencia de las etapas individuales de un conversor descendente digital de varias etapas

Diseño de filtros FIR e IIR monotasa y multitasa, y filtros adaptativos

DSP System Toolbox proporciona completos algoritmos de diseño e implementación de filtros para FIR, IIR, multietapa, multitasa y filtros adaptativos. Puede diseñar filtros con paso bajo, paso alto, paso banda, banda eliminada y otros tipos de respuesta. Para crearlos, se pueden usar estructuras de filtro tales como FIR de forma directa, FIR de superposición-adición, IIR con secciones de segundo orden (bicuadráticas), paso todo en cascada y estructuras reticuladas.

Puede diseñar filtros mediante la app Filterbuilder, código de MATLAB o bloques de Simulink. Además, puede analizar los efectos de la cuantización para filtros FIR e IIR y determinar la longitud de palabras óptima para los coeficientes de filtro.

También puede diseñar filtros ajustables en los que se pueden ajustar parámetros clave de filtrado en tiempo de ejecución, tales como el ancho de banda y la ganancia.

Los filtros digitales diseñados con DSP System Toolbox en MATLAB pueden utilizarse también en modelos en el nivel de sistema en Simulink. Existe una librería de bloques de filtros lista para usar en la toolbox, para diseñar, simular e implementar filtros de paso bajopaso alto y otros filtros directamente en Simulink.

Además de los algoritmos de diseño de filtros FIR e IIR convencionales, DSP System Toolbox admite métodos de diseño y filtros especializados, tales como:

Filtros adaptativos

DSP System Toolbox proporciona varias técnicas para el filtrado adaptativo en MATLAB y Simulink. Estas técnicas se utilizan ampliamente para aplicaciones tales como identificación de sistemas, estimación espectral, ecualización y supresión de ruido. Entre los filtros adaptativos se incluyen: basados en LMSbasados en RLSproyección afíntransversal rápidodominio de frecuenciabasados en estructuras reticuladas y de Kalman. Esta toolbox incluye algoritmos para el análisis de estos filtros adaptativos, incluidos el seguimiento de coeficientes, las curvas de aprendizaje y la convergencia.

Visualización de la respuesta dinámica de un filtro adaptativo LMS normalizado mientras se simula el modelo de un sistema de cancelación de ruido acústico

Filtrado y análisis multitasa y multietapa

DSP System Toolbox proporciona diseño e implementación de filtros multitasa, incluidos interpoladores polifase, diezmadores, conversores de tasa de muestreo, FIR de media banda e IIR de media banda, filtros Farrow y compensadores y filtros CIC, además de soporte para métodos de diseño multietapa. La toolbox también ofrece funciones de análisis especializadas para estimar la complejidad computacional de los filtros multitasa y multietapa.

Diseño de filtros de una etapa y multietapa

Respuestas de diseño de rizado constante y su correspondiente diseño multitasa y multietapa mediante fvtool (izquierda), y gráfica de rendimiento del diseño multitasa y multietapa de densidades espectrales de potencia de entrada y varias salidas (derecha).

Visores, analizadores y mediciones de señales

DSP System Toolbox proporciona visores y registro de datos para la visualización del dominio de tiempo o el dominio de frecuencia, mediciones y análisis de señales de streaming en MATLAB y Simulink. Los visores incluyen mediciones y estadísticas que resultan familiares a los usuarios de osciloscopios y analizadores de espectro estándar de la industria.

La toolbox proporciona también la herramienta Logic Analyzer para visualizar las transiciones en señales del dominio de tiempo, lo que resulta útil para depurar modelos destinados a la implementación de HDL.

También puede crear una gráfica arbitraria para visualizar vectores de datos, tales como la evolución de los coeficientes de filtro a lo largo del tiempo.

Time Scope muestra las señales en el dominio de tiempo y soporta distintas señales (continuas, discretas, de tamaño fijo, de tamaño variable, de datos en punto flotante, de datos en punto fijo y señales n-dimensionales para sistemas de E/S multicanal). Time Scope permite mostrar varias señales, bien en el mismo eje donde cada señal de entrada tiene distintas dimensiones, tasas de muestreo y tipos de datos, bien en varios canales de datos en distintas visualizaciones en la ventana del visualizador. Time Scope realiza análisis, mediciones y estadísticas que incluyen la media cuadrática (RMS), pico a pico, media y mediana.

Cursores de datos para mediciones de formas de onda en Time Scope

Uso de cursores de datos para medir las diferencias de tiempo y amplitud entre dos puntos de una forma de onda en Time Scope.

Spectrum Analyzer calcula el espectro de frecuencia de distintas señales de entrada y muestra su espectro de frecuencias en una escala lineal o logarítmica. Spectrum Analyzer realiza mediciones y análisis tales como mediciones de distorsión armónica (THD, SNR, SINAD, SFDR), mediciones de distorsión de intermodulación de tercer orden (TOI), mediciones de relación de potencia de canal adyacente (ACPR), función de distribución acumulativa complementaria (CCDF) y relación de potencia de pico a promedio (PAPR). La vista del modo de espectrograma de Spectrum Analyzer muestra cómo ver espectros variables en el tiempo y permite la detección de picos automática.

DSP System Toolbox proporciona una familia adicional de herramientas de visualización que se puede utilizar para mostrar y medir distintas señales o datos, incluidos datos de valor real o complejo, vectores, arrays y tramas de cualquier tipo de datos, incluidos datos en punto fijo, de doble precisión o secuencias de entradas de datos definidas por el usuario. Algunas de las herramientas de visualización permiten mostrar una vista 3D de los datos o las señales de streaming para poder analizarlos a lo largo del tiempo hasta que la simulación se detenga.

Mediciones de Spectrum Analyzer

Medición de la frecuencia y la potencia de picos espectrales generados aplicando un modelo de amplificador no lineal a una señal de chirp.

Modelado y simulación en punto fijo

Puede utilizar DSP System Toolbox con Fixed-Point Designer para modelar algoritmos de procesamiento de señales en punto fijo, así como para analizar los efectos de la cuantización en el comportamiento y el rendimiento del sistema. También puede generar código C en punto fijo a partir del código de MATLAB o del modelo de Simulink.

Puede configurar System objects de MATLAB y bloques de Simulink en la toolbox para modos de funcionamiento en punto fijo, lo que permite realizar análisis de tradeoff y optimización de diseños mediante la ejecución de simulaciones con diferentes longitudes de palabra, escalas, gestión de desbordamientos y opciones de métodos de redondeo antes de aplicarlos en el hardware.

Existe soporte de modos en punto fijo para muchos algoritmos DSP, incluidos FFT, filtros, estadísticas y álgebra lineal. DSP System Toolbox automatiza la configuración de bloques y System objects para el funcionamiento en punto fijo.

Propiedades de FFT para tipos de datos en punto fijo

El System object FFT de MATLAB, que proporciona propiedades para configurar la especificación del tipo de datos en punto fijo correspondiente al acumulador, el producto y los datos de salida (izquierda). El cuadro de diálogo del bloque FFT de Simulink proporciona opciones para la especificación del tipo de datos en punto fijo correspondiente a las señales del acumulador, el producto y la salida (requiere Fixed-Point Designer) (derecha).

Diseño de filtros en punto fijo

En DSP System Toolbox, las funciones de diseño de filtros y la app Filterbuilder permiten diseñar filtros en punto flotante que se pueden convertir en tipos de datos en punto fijo con Fixed-Point Designer. Este flujo de diseño simplifica el diseño y la optimización de filtros en punto fijo y permite analizar los efectos de la cuantización.

Diseño y análisis de filtros en punto fijo

Análisis del diseño de filtros en punto fijo del ruido de cuantización cuando no se cumplen las limitaciones de diseño de filtros y la atenuación de la banda eliminada es insuficiente debido a la longitud de palabra de 8 bits (izquierda). La experimentación con distintas longitudes de palabra de coeficientes y el uso de una longitud de palabra de 12 bits es suficiente, y se cumplen las limitaciones de diseño de filtros (derecha).

Generación de código C y C++ para flujos de trabajo embebidos y de escritorio

Utilizando DSP System Toolbox con MATLAB Coder y Simulink Coder, puede generar código fuente C y C++ o una función MEX ajustada para el rendimiento de los algoritmos de procesamiento de señales y los modelos de sistema en MATLAB y Simulink, respectivamente.

El código generado se puede utilizar para la aceleración, el prototipado rápido, la implementación y el despliegue, o bien para la integración del sistema durante el proceso de desarrollo de productos.

Aceleración de escritorio

Puede generar código ejecutable compacto y eficiente, una función MEX, ajustado para el rendimiento para acelerar algoritmos de cálculo intensivo en su simulación. Puede acelerar sus algoritmos en punto fijo y en punto flotante, incluidos filtros, FFT, estadísticasálgebra lineal en MATLAB y Simulink.

Para acelerar simulaciones de streaming basadas en tramas, dspunfold utiliza el desdoble de DSP para distribuir la carga computacional en la función MEX generada entre diversos subprocesos.

Ejecución independiente e integración con otros entornos

Con DSP System Toolbox, puede utilizar también el código C generado a partir de su código de MATLAB o modelo de Simulink para el despliegue y el prototipado de escritorio generando un ejecutable independiente de su algoritmo. Este ejecutable independiente se puede seguir ajustando directamente desde MATLAB o Simulink en tiempo real utilizando los componentes UDP. Dado que este ejecutable independiente se ejecuta en un subproceso distinto que el código de MATLAB o el modelo de Simulink, mejora el rendimiento en tiempo real de su algoritmo.

El código C generado de sus algoritmos de procesamiento de señales se puede integrar como un componente de librería compilada en otro software, como un simulador personalizado, o bien en software de modelado estándar, como SystemC.

Generación de código C optimizado para procesadores ARM Cortex

Utilizando DSP System Toolbox con el complemento de soporte de hardware para ARM Cortex-A o ARM Cortex-M y Embedded Coder, puede generar código C optimizado desde System objects de MATLAB o bloques de Simulink para los algoritmos DSP clave, como FFT, FIR y filtros bicuadráticos. El código generado proporciona llamadas a rutinas optimizadas para la librería ARM Cortex-A Ne10 o la librería ARM Cortex-M CMSIS. Una ventaja clave es un aumento inmediato en el rendimiento en comparación con el código C estándar. También puede llevar a cabo la verificación de código y crear perfiles mediante pruebas PIL (processor-in-the-loop).

Generación de código HDL para el desarrollo de FPGA y ASIC

Utilizando DSP System Toolbox con Filter Design HDL Coder en MATLAB, puede diseñar filtros digitales y generar código VHDL® y Verilog® eficiente, sintetizable y portátil para la implementación en FPGA o ASIC. También puede crear de forma automática bancos de pruebas de VHDL y Verilog para simular, probar y verificar el código generado.

El uso de DSP System Toolbox con HDL Coder proporciona generación de código VHDL y Verilog sintetizable y legible para el diseño de su sistema. Para optimizar el uso y el rendimiento de recursos de FPGA/ASIC, considere utilizar bloques de DSP HDL Toolbox.

Estructura de filtro FIR sistólica parcialmente en serie

Logic Analyzer utilizado para verificar un modelo de hardware de un filtro FIR programable.