Dominio del Filtrado Digital en Microcontroladores Embebidos: Motor Dual Bicuad IIR de PowerQuad en el LPC55S69
Explore las técnicas más comunes para filtrar datos en dominio temporal, y examine cómo el motor Dual Bicuad IIR de PowerQuad del LPC55S69 acelera tareas DSP.
Al trabajar con datos recolectados en el tiempo, el primer paso suele ser aplicar un filtro digital. Entender las diversas estrategias de filtrado no solo mejora la calidad de la señal sino que también libera la CPU para otras tareas críticas —una consideración esencial para microcontroladores embebidos.
Este artículo cubre los métodos de filtrado en dominio temporal más ampliamente usados y profundiza en el motor Dual Bicuad IIR de la unidad PowerQuad en el MCU LPC55S69, un potente bloque de construcción DSP que puede aprovecharse en una variedad de escenarios de filtrado.
Filtros Comunes para Datos Muestreados Continuamente
En un sistema de adquisición en dominio temporal, las muestras llegan a una tasa fija y conocida. Los filtros en dominio temporal procesan estas muestras y producen una nueva señal que puede ser procesada adicionalmente o enviada a un conversor digital‑a‑analógico (DAC). El núcleo de cualquier filtro es su respuesta a ondas seno —alterando amplitud y fase a través de frecuencias. El comportamiento colectivo sobre un espectro de frecuencia se conoce como la respuesta en frecuencia del filtro.
Los filtros de Respuesta de Impulso Finito (FIR) son un enfoque estándar. Generan cada muestra de salida combinando el dato más reciente con un historial de muestras previas.

Figura 1. Procesamiento de filtro muestra‑por‑muestra usando un historial de la entrada.
Una implementación directa almacena muestras previas en un array y aplica la siguiente ecuación:
x[n] // La entrada más reciente
x[n-1], x[n-2] // Las dos muestras de entrada previas
y[n] // La próxima muestra de salida
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2]
Esta simple operación de multiplicación‑y‑acumulación usa coeficientes constantes y una longitud de historial definida para dar forma a la respuesta en frecuencia del filtro. Ajustando los coeficientes, el filtro puede actuar como paso‑bajo, paso‑alto o paso‑banda.
Aunque conceptualmente simples, los filtros FIR a menudo requieren muchas muestras pasadas para lograr control preciso, lo que puede ser computacionalmente costoso en una CPU convencional —especialmente cuando el historial crece.
Para reducir el historial requerido, muchos diseños incorporan retroalimentación, formando la base de filtros de Respuesta de Impulso Infinito (IIR):
// Este ejemplo sigue las convenciones de nomenclatura usadas anteriormente
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]
El ejemplo anterior ilustra un filtro bicuad, un bloque constructivo IIR común que puede cascadearse para respuestas de orden superior. Se necesitan menos coeficientes comparado con un filtro FIR, pero la selección cuidadosa de coeficientes es esencial para evitar inestabilidad y oscilación.
Numerosas herramientas existen para generar coeficientes óptimos para diseños de filtro estándar. Estos "libros de recetas" proporcionan un camino rápido a filtros de alta calidad.

Figura 2. Una de las muchas herramientas que generan coeficientes automáticamente.
Uso de los Motores Bicuad IIR de PowerQuad
La unidad PowerQuad del LPC55S69 ofrece hardware dedicado para ejecutar filtros bicuad IIR. Descargar la carga de trabajo de filtrado a este co‑procesador libera los núcleos Cortex‑M33 para enfocarse en lógica de aplicación.
Aunque los algoritmos de filtro en sí son directos, pueden consumir ciclos significativos de CPU. El hardware de PowerQuad está específicamente optimizado para filtrado y otras operaciones matemáticas complejas. Se conecta al sistema vía bus AHB y la interfaz de coprocesador Arm® Cortex®‑M33.
Los desarrolladores típicamente usan el IDE MCUXpresso basado en Eclipse gratuito y el SDK LPC55S69, que incluye varias aplicaciones de ejemplo PowerQuad.

Figura 3. Selección del ejemplo de filtro digital PowerQuad.
El ejemplo "powerquad_filter" demuestra una gama de configuraciones de filtro. La lógica central reside en powerquad_filter.c, que muestra configuraciones básicas de filtro.
Mientras el artículo introdujo una implementación Forma Directa I, PowerQuad internamente reordena operaciones en una estructura Forma Directa II. Este arreglo elimina la necesidad de almacenar tanto historiales de entrada como de salida, manteniendo en su lugar un único vector de estado intermedio v[n].
Varios registros AHB mantienen el estado y coeficientes necesarios para configurar las operaciones de filtro IIR de PowerQuad. En los ejemplos del SDK, el estado se inicializa vía PQ_BiquadRestoreInternalState.
Una vez inicializado, el filtro procesa bloques de datos usando PQ_VectorBiquadDf2F32 en fsl_powerquad_filter.c:
/* Función procesa muestras de entrada en múltiplos de ocho. */

Figura 4. Implementación de Filtro IIR Vectorizado
Esta rutina transfiere datos de la CPU principal al co‑procesador PowerQuad vía la instrucción MCR. PowerQuad realiza las operaciones de multiplicación‑suma, entregando el resultado filtrado de vuelta a la CPU con otra transferencia MCR. Esta descarga reduce dramáticamente la carga de CPU comparado con ejecutar el mismo algoritmo en los núcleos Cortex‑M33.
El Motor Dual Bicuad IIR para Filtrado Digital
La unidad PowerQuad del LPC55S69 contiene dos motores bicuad independientes, permitiendo operaciones de filtrado en paralelo o en cascada. Registros de configuración en el bus AHB configuran las funciones IIR, e intercambio de datos ocurre sobre la interfaz de coprocesador.
El SDK MCUXpresso proporciona un punto de partida sólido, aunque el código suministrado prioriza claridad sobre rendimiento bruto. Los desarrolladores pueden optimizar aún más minimizando transferencias de datos entre la CPU y PowerQuad.
NXP ofrece una Herramienta de Diseño y Visualización de Filtros Bicuad IIR que asiste en la generación y visualización de coeficientes de filtro. La página de la comunidad NXP también ofrece documentación en profundidad sobre la unidad PowerQuad del LPC55S69 y sus capacidades.
Los Artículos de la Industria son una forma de contenido que permite a los socios industriales compartir noticias útiles, mensajes y tecnología con los lectores de All About Circuits de una manera que el contenido editorial no se adapta bien. Todos los Artículos de la Industria están sujetos a estrictas directrices editoriales con la intención de ofrecer a los lectores noticias útiles, experiencia técnica o historias. Los puntos de vista y opiniones expresados en los Artículos de la Industria son los del socio y no necesariamente los de All About Circuits o sus escritores.
Incrustado
- Transformando Equipos de Fabricación Digital con Insights de Datos en Tiempo Real
- GE Digital revela cómo datos y analíticas impulsan la excelencia operacional en fabricación
- Acelerando la transformación digital: Datos MES en tiempo real impulsan la eficiencia de fábrica
- Lógica Digital con Realimentación: De Compuertas Deterministas a Multivibradores
- Por Qué Importa la Memoria Digital
- Tecnología CI y Microcontroladores: La Piedra Angular de los Sistemas Embebidos Modernos
- Acelerando automatización industrial: Optimizando RS-485 fieldbus para velocidad, alcance y EMC
- Integración OT-IT sin fisuras: Software industrial moderno conecta sensores inteligentes a sistemas empresariales
- Aprovechar los datos en el Internet de la Fiabilidad: estrategias para una gestión efectiva
- Acelerando la Transformación Digital: La Plataforma IoT Edge-to-Cloud de Cisco e IBM
- Mantenimiento Predictivo: Aprovechar Industria 4.0 para Producción Ininterrumpida