Accelerating the pace of engineering and science

DSP System Toolbox

Características principales

  • Procesamiento de señales de streaming en MATLAB®
  • Bloques de álgebra lineal y procesamiento de señales para Simulink®
  • Diseño de filtros monofrecuencia, multifrecuencia, FIR, IIR y adaptativos
  • Time Scope, Spectrum Analyzer y Logic Analyzer para visualizar y medir señales de streaming
  • Modelizado y simulación en punto fijo de algoritmos de procesamiento de señales
  • Soporte para la generación de código C y C++
  • Soporte para generación de código HDL

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 System Toolbox incluye una librería de algoritmos de procesamiento de señales optimizados para el procesamiento de señales de streaming, como filtros monofrecuencia y multifrecuencia, filtrado adaptativo y FFT. La System Toolbox resulta ideal para el diseño, la simulación y el despliegue de 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 al dividir los datos de entrada en tramas y procesar cada trama a medida que se adquiere. Por ejemplo, el procesamiento de señales de streaming en MATLAB permite el procesamiento en tiempo real de audio multicanal.

El procesamiento de señales de streaming es posible gracias a la utilización de una librería de componentes algorítmicos de DSP llamada System objects™ para representar algoritmos basados en datos, fuentes y sumideros. System objects permite la creación de aplicaciones de streaming gracias a la automatización de tareas tales como la indexación de datos, el almacenamiento en bufferes y la gestión de estados de algoritmos. Puede combinar objetos de sistema MATLAB con funciones y operadores estándar MATLAB.

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

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

Streaming signal processing technique in MATLAB.
Código MATLAB que 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, implementación y realización de pruebas de sistemas DSP

DSP System Toolbox proporciona más de 350 algoritmos optimizados para el diseño, implementación y validación de 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 la System Toolbox incluyen:

Partial list of System objects available in 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 visibles mediante el rellenado de pestañas.

Sistemas multifrecuencia

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

Efficient sample-rate conversion between arbitrary factors.
Conversión eficiente de velocidad de muestreo entre factores arbitrarios. Entre los ejemplos hay código MATLAB que muestra varias estructuras de implementación y sus análisis de costes, incluidas las estructuras de Farrow, las cuales pueden ser una implementación eficiente de la conversión de velocidad de muestreo (izquierda); respuestas de magnitud que muestran una comparación entre la implementación de filtros polifase y filtros Farrow de conversión de velocidad de muestreo (arriba derecha); solución híbrida para la conversión de velocidad de muestreo mediante estructuras de Farrow y FIR Polifase en cascada (centro derecha); y Spectrum Analyzer con una comparación de visualizaciones de streaming de respuestas de frecuencia para una combinación de filtros FIR y Farrow de una sola etapa y multietapa (abajo derecha).

Bloques de álgebra lineal y 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. La System Toolbox soporta ambos modos de procesamiento, el basado en muestras y el basado en tramas.

Los programas MATLAB que utilizan objetos de sistema pueden incorporarse en modelos de Simulink a través del bloque de función de MATLAB o del bloque de sistema de MATLAB. La mayoría de los objetos de sistema tienen sus correspondientes bloques de Simulink con las mismas capacidades.

Frame-based operation showing frame-based throughput rate vs. sample-based alternative.
El 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 alternativa 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:

  • Las transformadas de señal 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 multifrecuencia y multietapa para 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 la estimación espectral, la ecualización y la supresión de ruido
  • Operaciones y medición de señales como convolución, creación de ventanas, amortiguación, retardos, hallazgo de picos y cruce por cero
  • Visualización de señales en tiempo de ejecución con Time Scope, Spectrum Analyzer y más
  • Métodos de administración de señales, como almacenamiento en bufferes, 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 solucionadores de sistema lineal, factorizaciones de matriz e inversiones de matrices
DSP System Toolbox blocks library for signal processing available in 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 multifrecuencia

En Simulink, DSP System Toolbox soporta el procesamiento multifrecuencia para conversión de velocidad de muestreo y el modelado de sistemas en los que se debe establecer una interfaz para diferentes velocidades de reloj o muestreo. Los bloques de filtros multifrecuencia incluyen bloques de filtros multietapa y multifrecuencia como CIC, conversión de velocidad de FIR, interpolador y diezmador FIR y banco de filtros de análisis diádico.

Sigma-delta A/D converter model in Simulink showing signals operating at multiple sample rates.
Modelo convertidor A/D sigma-delta en Simulink que muestra señales de funcionamiento a velocidades de muestreo múltiples (izquierda). La simulación del comportamiento de un único convertidor reductor digital (DDC) para una conversión de banda base en un sistema de comunicación incluye un NCO, un diezmador CIC, un compensador CIC, un diezmador de banda media y un convertidor de velocidad de muestreo para los ajustes de velocidad finales (derecha).

Diseño de filtro FIR e IIR monofrecuencia y multifrecuencia y filtros adaptativos

DSP System Toolbox proporciona completos algoritmos de diseño e implementación de filtros para FIR, IIR, multietapa, multifrecuencia y filtros adaptativos. Puede diseñar filtros paso bajo, paso alto, paso banda, banda eliminada y otros tipos de respuesta. Puede realizarlos usando estructuras de filtro como FIR en forma directa, FIR de superposición-adición, IIR con secciones de segundo orden (Biquad), paso todo en cascada y estructuras reticuladas.

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

También puede diseñar filtros ajustables donde puede ajustar parámetros de filtro clave, como el ancho de banda y la ganancia, en tiempo de ejecución.

Filterbuilder app for interactive filter design.
Aplicación Filterbuilder para el diseño interactivo de un filtro paso bajo (izquierda), manipulación de la implementación de especificación de filtro de IU (centro) y visualización de la magnitud de respuesta LPF (derecha).

Los filtros digitales que diseñe con DSP System Toolbox en MATLAB pueden utilizarse también en modelos de nivel de sistema en Simulink. Existe una librería lista para usar de bloques de filtros en la System Toolbox para el diseño, la simulación y la implementación de filtros paso bajo, paso 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 como:

Specialized filter designs in MATLAB.
Ejemplos de diseños de filtros en MATLAB. En el sentido de las agujas del reloj desde arriba a la izquierda: respuesta de magnitud arbitraria, comparación de diseños de FIR de paso bajo, comparación de diseños de IIR de paso de banda, análisis de secciones acumulativo de un filtro biquad, análisis de respuesta de un convertidor reductor digital de factor 256 en punto fijo y FIR de paso de banda complejo multietapa.

Filtros adaptativos

DSP System Toolbox proporciona varias técnicas para el filtrado adaptativo en MATLAB y Simulink. Estas técnicas son ampliamente utilizadas para aplicaciones como identificación de sistemas, estimación espectral, ecualización y supresión de ruido. Entre tales filtros se incluyen el basado en LMS, el basado en RLS, el de proyección afín, el transversal rápido, el de dominio de frecuencia, el basado en estructuras reticuladas, y el de Kalman. La System Toolbox incluye algoritmos para el análisis de estos filtros adaptativos, incluidos el seguimiento de coeficientes, las curvas de aprendizaje y la convergencia.

System identification using RLS adaptive filtering showing how to tune parameters at run time using the UI.
Identificación de sistemas mediante filtrado adaptativo RLS mostrando cómo ajustar parámetros en tiempo de ejecución mediante la IU. Esta ilustración incluye código MATLAB que llama al algoritmo RLS (arriba izquierda), la IU para el ajuste de la frecuencia de centro y el factor de olvido RLS (arriba derecha), un trazado de la curva de aprendizaje del filtro RLS (centro derecha), un trazado de la función de transferencia deseada y estimada (abajo derecha) y la versión del modelo de Simulink (abajo izquierda).

Filtrado y análisis multifrecuencia y multietapa

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

Responses of equiripple design and corresponding multirate and multistage design.
Respuestas de diseño de igual rizado y su correspondiente diseño multifrecuencia y multietapa mediante fvtool (izquierda), y rendimiento del trazado de diseño multifrecuencia y multietapa de densidades espectrales de potencia de entrada y varias salidas (derecha).
Audio sample-rate conversion of streaming audio signal.
Conversión de velocidad de muestreo de audio de la señal de audio de streaming desde 44,1 kHz a 96 kHz. Esta ilustración muestra código MATLAB (izquierda) y la respuesta de magnitud de filtros multifrecuencia utilizados en las dos etapas de la conversión de la velocidad de muestreo, donde el filtro 1 es un convertidor de velocidad FIR con un factor de interpolación de 160 y un factor de diezmado de 147, y el filtro 2 es un filtro de interpolador FIR con un factor de interpolación de 2 (derecha).

Scopes de señal, analizadores y mediciones

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

La System Toolbox proporciona también la herramienta Logic Analyzer para la visualización de las transiciones en señales del dominio del tiempo, lo cual resulta útil en modelos de depuración destinados a la implementación de HDL.

También puede crear un trazado arbitrario para la visualización de vectores de datos, como la evolución de coeficientes de filtro a lo largo del tiempo.

Time Scope for visualization and measurement in time domain of multichannel signals.
Time Scope para la visualización y la medición en el dominio del tiempo de señales multicanal. La ilustración incluye desencadenantes y mediciones de cursor (arriba izquierda), el panel de mediciones de doble nivel y el panel de sobremodulaciones e impulsos breves (arriba derecha), medición de localización de picos (abajo derecha) y mediciones de cursor (abajo izquierda).

Time Scope muestra señales en el dominio del 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 le permite mostrar varias señales, bien en el mismo eje donde cada señal de entrada tiene distintas dimensiones, velocidades de muestreo y tipos de datos, o bien en varios canales de datos en distintas visualizaciones en la ventana de scope. Time Scope realiza análisis, mediciones y estadísticas que incluyen la media cuadrática (RMS), pico a pico, media y mediana.

Spectrum Analyzer for frequency-domain visualization and measurements of various multichannel signals.
Spectrum Analyzer para la visualización de dominio de frecuencia y las mediciones de señales multicanal. Las ilustraciones muestran mediciones de distorsión armónica tales como THD, SNR, SINAD y SFDR (arriba izquierda); mediciones de relación de potencia de canal adyacente (ACPR) (arriba derecha); espectrograma para espectros variables en el tiempo (abajo izquierda); y localización de picos y mediciones de distorsión de intermodulación de tercer orden (TOI) (abajo derecha).

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 como las 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 pueden mostrar una vista en 3D de sus datos o señales de streaming para que pueda analizar estos a lo largo del tiempo hasta que la simulación se detenga.

View of LMS adaptive filter weights on the array plot.
Vista de pesos de filtros adaptativos LMS en el trazado de array. Cuando ejecute este ejemplo, podrá observar cómo cambian los pesos de filtros a medida que se adaptan para filtrar una señal de entrada ruidosa (superior izquierda). Logic Analyzer muestra las transiciones en señales de dominio de tiempo (superior derecha). El bloque Vector Scope muestra el número de la trama actual en la secuencia de entrada de datos definidos por el usuario a lo largo del tiempo, incrementa automáticamente el recuento a medida que recibe cada nueva entrada y sigue hasta que la simulación se detiene (inferior derecha). El bloque Waterfall Scope muestra varios vectores de datos de una vez, representando los datos de salida en un tiempo de muestreo consecutivo de una cancelación de ruido acústico (inferior izquierda).

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 cuantificación en el comportamiento y el rendimiento del sistema. También puede generar código C en punto fijo a partir de su código MATLAB o de su modelo de Simulink.

Puede configurar System objects de MATLAB y bloques de Simulink en la System Toolbox para modos de funcionamiento en punto fijo, lo cual permite llevar a cabo análisis de compromiso y optimización de diseños mediante la ejecución de simulaciones con diferentes longitudes de palabras, escalas, gestión de desbordamientos y opciones de método de redondeo antes de aplicarlos en el hardware.

Se soportan 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 objetos de sistema para el funcionamiento en punto fijo.

FFT MATLAB System object and FFT Simulink block provisions.
El objeto de sistema 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 de bloque de FFT de Simulink contiene 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 aplicación 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 cuantificación.

Fixed-point filter design analysis of quantization noise.
Análisis del diseño de filtros en punto fijo del ruido de cuantificació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 la palabra de 8 bits (izquierda). La experimentación con distintas longitudes de palabra de coeficientes y utilizando 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 sus algoritmos de procesamiento de señales y modelos de sistema en MATLAB y Simulink, respectivamente.

El código generado se puede utilizar para la aceleración, la creación rápida de prototipos, la implementación y la distribución o bien para la integración de su sistema durante el proceso de desarrollo de productos.

Aceleración de escritorio

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

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

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 MATLAB o modelo de Simulink para el despliegue y el prototipado en el escritorio generando un ejecutable independiente de su algoritmo. Este ejecutable independiente puede seguir ajustándose directamente desde dentro de MATLAB o Simulink en tiempo real utilizando los componentes UDP. Dado que este ejecutable independiente se ejecuta en un thread distinto que el código 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ñal puede integrarse como un componente de librería compilada en otro software, como un simulador personalizado, o software de modelado estándar como SystemC.

How to generate an MEX function tuned for performance from MATLAB.
Cómo generar una función MEX ajustada para el rendimiento desde MATLAB a fin de acelerar su simulación en el escritorio. Se muestra un ejemplo de código MATLAB para la función de ecualizador paramétrico de audio de tres bandas (izquierda) y el archivo MEX equivalente para el principal algoritmo de procesamiento (derecha).

Generación de código C optimizado para los 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 biquad. 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 código C estándar. También puede llevar a cabo la verificación de código y la creación de perfiles mediante pruebas PIL (processor-in-the-loop).

Generación de código HDL para el desarrollo de FPGAs y ASICs

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 su implementación en FPGAs o ASICs. También puede crear de forma automática test benches de VHDL y Verilog para simular, probar y verificar rápidamente 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, como filtros, FFT, IFFT y NCO.

Generate HDL code for programmable FIR filter model.
Generación de código HDL para un modelo de filtro FR programable. Estas ilustraciones muestran un modelo de filtro FIR programable en Simulink para la implementación de HDL (arriba izquierda); FIR programable a través de subsistema de registros (arriba derecha); visualización de scope de entrada de filtro y señales de referencia (centro derecha); visualización de Logic Analyzer de coeficientes, dirección y activación de escritura, entrada de filtro y señales de referencia (abajo derecha); y código HDL generado automáticamente a partir del modelo de Simulink (abajo izquierda).

Aprendizaje Automático para Análisis de Datos de Sensores

Ver seminario virtual