DSP System Toolbox

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

 

DSP System Toolbox™ proporciona algoritmos, apps y visores para diseñar, simular y analizar sistemas de procesamiento de señales en MATLAB® y Simulink®. Es posible modelar sistemas DSP en tiempo real para comunicaciones, radar, audio, dispositivos médicos, IoT y otras aplicaciones.

Con DSP System Toolbox, es posible diseñar y analizar filtros FIR, IIR, multitasa, multietapa y adaptativos. Puede transmitir señales desde variables, archivos de datos y dispositivos de red para desarrollar y verificar sistemas. Las herramientas Time Scope, Spectrum Analyzer y Logic Analyzer permiten visualizar y medir señales de streaming de forma dinámica. Para el prototipado y el despliegue de escritorio en procesadores embebidos, incluidas las arquitecturas ARM® Cortex®, esta toolbox soporta la generación de código C/C++. También soporta el modelado en punto fijo con precisión de bits y la generación de código HDL a partir de filtros, FFT, IFFT y otros algoritmos.

Los algoritmos están disponibles como funciones de MATLAB, System objects™ y bloques de Simulink.

Cómo empezar:

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.

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í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.

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.

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:

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.

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:

Diseño y análisis de un filtro de paso bajo multietapa y monotasa utilizando la app Filter Builder y la app Filter Visualizer

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.

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.

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

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.

Resultados de la simulación de un modelo de un filtro FIR programable con precisión de hardware en Logic Analyzer.

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.

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.

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. Este soporte incluye algoritmos optimizados para recursos y rendimiento, tales como filtros, FFTIFFT y NCO.

Detalle de implementación de una de las arquitecturas de hardware admitidas (sistólica parcialmente en serie) para un bloque de filtro FIR optimizado para HDL

Funcionalidades más recientes

Código SIMD para bloques de filtro

Acelere el código generado para los bloques FIR Decimation, FIR Interpolation y LMS Filter usando Intel AVX2.

Nuevo filtro SOS bicuadrático

Implemente filtros de sección de segundo orden en MATLAB utilizando coeficientes ajustables con las mismas representaciones devueltas por las funciones de diseño.

Procesamiento multitasa en el bloque FIR Rate Conversion

Simule filtros de conversión de frecuencia FIR en Simulink y permita diferentes tasas de actualización para las señales de entrada y salida.

Canalizadores con salidas no diezmadas de forma máxima

Diseñe e implemente canalizadores con salidas sobremuestreadas (es decir, no diezmadas de forma crítica).

NCO de gigamuestra por segundo (GSPS)

Genere la salida de tramas a partir de un NCO optimizado para HDL para aplicaciones de alta velocidad (requiere HDL Coder para la generación de código).

Factor de diezmado CIC variable

Especifique el factor de diezmado como una entrada del bloque CIC Decimator HDL Optimized (requiere HDL Coder para la generación de código).

Consulte las notas de la versión para obtener detalles sobre estas funcionalidades y las funciones correspondientes.