Table of Contents
Ottimizzazione dei disegni dei filtri IIR per una complessità computazionale ridotta in dispositivi indossabili
I filtri IIRhead Response (IIR) sono un cavalletto di lavoro in queste applicazioni, grazie alla loro capacità di realizzare filtri a risposta più nitida, con una serie di strumenti di monitoraggio medico e smartwatch.
Comprendere i filtri IIR in oggetti indossabili
I filtri IIR sono filtri digitali definiti da una funzione di trasferimento che include sia i coefficienti di feedforward che quelli di feedback.
b) = b0·x[n] + b1·x[n-1] + ... + bM·x[n-M] - a1·y[n-1] - ... - aN·y[n-N]
Poiché l'output dipende da uscite precedenti (feedback), i filtri IIR possono ottenere una data risposta di frequenza con un ordine inferiore rispetto ad un filtro equivalente di risposta (FIR) Finite Impulse Response. Per i dispositivi indossabili, questo significa meno operazioni di moltiplicazione-accumulate (MAC) per campione, memoria ridotta per lo stoccaggio dei coefficienti e latenza inferiore.
Nonostante la loro efficienza, i filtri IIR presentano sfide in wearables: possono diventare instabili a causa della quantizzazione del coefficiente, soffrono di oscillazioni del ciclo limitato e richiedono un'attenta scaling per evitare il sovraflusso di aritmetica a punto fisso. Inoltre, i calcoli ricorrenti impediscono una facile parallelizzazione, rendendo ogni campione una dipendenza seriale.
Strategie chiave per la riduzione della complessità computazionale IIR
1. Riduzione dell'ordine del filtro
Il modo più diretto per ridurre i costi computazionali è quello di ridurre l'ordine del filtro. I coefficienti inferiori significano meno operazioni MAC per campione. Tuttavia, semplicemente abbassando l'ordine senza considerare la specifica spesso degrada le prestazioni. Fortunatamente, diverse tecniche possono aiutare a raggiungere la risposta richiesta con un ordine minimo:
- Ottimizzazione posizionamento del polo-zero: Posizionando con attenzione i poli e gli zeri nel piano z, i progettisti possono soddisfare i vincoli di banda passante e di stopband con un filtro di ordine inferiore rispetto a un design standard Butterworth o Chebyshev. Ad esempio, utilizzando un filtro ellittico con un piccolo ripple di banda ferma consentita spesso produce l'ordine più basso per una data larghezza di transizione.
- Trasformazione di Matched-z:[] Quando si convertono i prototipi analogici, la trasformazione bilineare è standard, ma la trasformazione di abbinamento-z può talvolta preservare la risposta di frequenza con un ordine digitale inferiore se il filtro analogico è semplice.
- Riduzione dell'ordine iterativo:[] Inizia con un design di alto ordine, quindi applica tecniche di riduzione del modello come la tronca bilanciata o la norma Hankel approssimazione per produrre un filtro IIR stabile e ridotto che si adatta strettamente alla risposta di frequenza originale.
In pratica, un filtro IIR di terzo ordine può spesso sostituire un design di quinto ordine con perdita di prestazioni trascurabile per attività di filtraggio bioseminale come EMG o ECG di rimozione della linea di base.
2. Riduzione della quantizzazione e della dimensione delle parole
I microcontrollori indossabili funzionano tipicamente con aritmetica a 16 bit o a 24 bit. Utilizzando il punto galleggiante a doppia precisione è sia forza-ungitura che non necessaria. Ridurre la lunghezza della parola del coefficiente da 32-bit variabile-point a, diciamo, 16-bit taglio fisso-punto di memoria di utilizzo di metà e accelera le operazioni aritmetiche (soprattutto se il processore ha dedicato istruzioni moltiplica-accumulate).
- Cuocare il giusto schema di quantizzazione:[] Usare il Q-format (ad esempio, Q15 per il frazionario firmato a 16 bit) per rappresentare i coefficienti. L'arrotondamento al valore rappresentabile più vicino può causare instabilità; considerando che la sensibilità dei poli aiuta a destinare più bit ai coefficienti sensibili.
- Ottimizzare la quantizzazione utilizzando metodi statistici:[ Applicare algoritmi di ricottura simulati o genetici per trovare un insieme di coefficienti quantizzati che soddisfano ancora le specifiche del filtro.
- Utilizza i poteri di due coefficienti:[] Se i coefficienti possono essere approssimati da somme di poteri di due, la moltiplicazione può essere sostituita da pochi turni e aggiunge, riducendo drasticamente la complessità computazionale.
Ad esempio, un filtro di notch IIR di secondo ordine con coefficienti quantizzati a potenze di due può essere implementato utilizzando solo quattro operazioni di turni e tre aggiunte per campione, perfetto per un nucleo di ARM Cortex-M0 a bassa potenza.
3. Cascade vs. Strutture formali dirette
La struttura in cui viene implementato un filtro IIR influisce notevolmente sul carico computazionale, sulla stabilità e sulla sensibilità alla quantizzazione. Le forme più comuni sono la forma I e II diretta e le loro varianti trasposte.Per i disegni di alto ordine, è generalmente preferibile una cascata di sezioni di secondo ordine (SOS):
- Sezioni di secondo ordine (biquads): Ogni sezione implementa un filtro IIR di secondo ordine. La struttura del cascata riduce la sensibilità del coefficiente, facilitando la stabilità con lunghezze di parola corte. Computazione per scale del campione linearmente con ordine: un filtro di sesto ordine richiede tre biquad, ogni bisogno di 5 MAC, totale 15 MAC per campione.
- Forma di pallel:[] Decomporre la funzione di trasferimento in una somma di sottosezioni di primo e secondo ordine.
- Struttura reticolare/ladder:[ Mentre più computazioni-pesante in generale, le strutture reticolari offrono eccellenti proprietà di stabilità e sono meno sensibili alla quantizzazione. Possono essere attraenti quando l'ordine è basso (ad esempio, filtri adattativi).
Per gli indossabili, l'implementazione biquad in cascata è spesso il bilanciamento ottimale dei costi computazionali, della stabilità e dell'utilizzo della memoria. I produttori come Analog Devices e STMicroelectronics forniscono implementazioni di riferimento ottimizzate per i loro MCU a bassa potenza.
4. Attuazione di frequenza-dominio utilizzando FFT
Quando l'attività di filtraggio comporta segnali di lunga durata o canali multipli, il filtraggio IIR a dominio temporale può essere sostituito da un metodo a sovrapposizione o a sovrapposizione con il Fast Fourier Transform (FFT). Mentre questo appare controintuitivo (IIR è già efficiente nel dominio del tempo), per filtri IIR di ordine molto alto (ordine > 50) o quando si elaborano più canali contemporaneamente, la convoluzione basata su FFT può diventare più efficiente.
- Convoluzione: Per applicazioni in tempo reale, la risposta all'impulso del filtro IIR (che è infinito) deve essere troncata. Un approccio pratico è quello di approssimare il filtro IIR con un filtro FIR lungo (se la risposta all'impulso si deteriora rapidamente) e quindi utilizzare la convoluzione basata su FFT.
- Filtro a banda larga:[] Alcuni indossabili utilizzano le banchine filtranti (ad esempio, per l'analisi spettrale); in tali casi, può essere utile implementare l'intera banca nel dominio di frequenza, combinando FFT e FFT inverso per frame.
I metodi di frequenza-dominio sono più adatti per i wearables con un'ampia RAM e un acceleratore FFT hardware (comune in molti moderni Bluetooth Audio SoC).
5. Filtro approssimativo e Arithmetic a precisione ridotta
Non tutte le applicazioni indossabili richiedono la massima precisione di un filtro IIR di libri di testo. Le tecniche di calcolo approssimative possono scambiare una piccola quantità di precisione per un notevole risparmio computazionale:
- Moltiplicatori a troncati:[] Utilizzare circuiti aritmetici inesatti che calcolano il risultato di moltiplicazione con meno bit. Un moltiplicatore a 10 bit invece di 16 bit può tagliare la potenza del 30-40% nell'hardware personalizzato.
- Computazione istocastica:[ Per i progetti a bassa potenza, le rappresentazioni stocastiche (bit di 1s e 0s) possono implementare la moltiplicazione con un singolo cancello, ma questo spesso richiede la correzione di errore e di ridimensionamento.
- Downsampling e upsampling:[ Se la larghezza di banda del segnale è più ampia del necessario, decimate il segnale prima di filtrare. IIR filtraggio ad una velocità inferiore salva MACs per-sample, e il filtro di decimazione può essere un altro disegno a basso costo.
- Modifica dell'ordine adattivo:[] Utilizzare un filtro a ordine variabile che inizia con un alto ordine durante la calibrazione e riduce l'ordine (spingendo le sezioni biquad) quando il segnale è fermo. Questa scalatura di complessità dinamica può essere controllata da un semplice rilevatore di attività.
Esempio: Un sistema di rilevamento accelerometro basato sul polso potrebbe utilizzare un filtro IIR di secondo ordine invece di un quarto ordine quando l'utente è fermo, riducendo il consumo di energia del 20%.
6. Progettazione hardware-software per la potenza ultra-bassa
Molti dispositivi indossabili incorporano un processore digitale dedicato del segnale (DSP) o un microcontroller con un'unità MAC hardware.
- Indirizzo del buffer circolare:[] Utilizzare il buffer circolare dell'hardware per lo storage a variabili di stato nelle strutture biquad. La maggior parte dei DSP supporta questo senza sovraccarico di calcolo dell'indirizzo aggiuntivo.
- SIMD (Istruzione del segnale, Dati multipli):[ Alcuni core ARM Cortex-M4/7 supportano le istruzioni SIMD che elaborano simultaneamente due MAC a 16 bit. Se i coefficienti del filtro sono quantizzati a 16 bit, due sezioni biquad possono essere calcolate in un unico ciclo MAC.
- Cloccare modalità di gating e sonno:[] Implementare il filtro in un'attività che viene eseguita solo quando i dati del sensore sono disponibili. Utilizzare modalità di sonno a bassa potenza del MCU tra campioni. Molti microcontrollori hanno periferiche di filtro hardware (ad esempio, CORDIC, coprocessore digitale del filtro) che possono funzionare indipendentemente.
- Cuscite aero-overhead:[] loop Unroll per filtri di ordine fisso per eliminare le sanzioni di ramo. Un filtro IIR di terzo ordine implementato come codice in linea funziona fino al 30% più velocemente di un'implementazione basata su loop.
Studio pratico: filtro segnale ECG in un Smartwatch
Per illustrare queste strategie, consideri un indossabile che acquisisce un ECG mono-perdita a 250 Hz. Il segnale grezzo contiene la linea di base vagare (0.5 Hz e sotto), l'interferenza della linea di potenza (50/60 Hz), e il rumore muscolare ad alta frequenza.
Un approccio convenzionale utilizza un filtro IIR di fascia Butterworth di quarto ordine (cascata di due biquad). In punto variabile su un Cortex-M4, questo richiede circa 10 operazioni MAC per campione. Il consumo totale di energia per filtrare da solo è di circa 0,5 mW.
Inoltre, utilizzando un coefficiente di potenza di due per il filtro da 50 Hz notch (implementato come biquad separato), il filtro notch richiede solo 3 operazioni a turni invece di 3 MAC. La catena di filtro generale consuma appena 0,2 mW—una riduzione del 60% dal design originale— mantenendo le metriche di qualità del segnale (SNR entro 1 dB dell'originale).
Questa ottimizzazione ha permesso all'usura di eseguire l'acquisizione ECG e filtrare continuamente per 24 ore su una batteria di 150 mAh, rispetto a 16 ore con l'implementazione originale.
Sfide e trade-off
Ogni ottimizzazione porta potenziali insidie. La riduzione dell'ordine può aumentare il ritardo del gruppo di passi o degradare, che può essere problematico per le applicazioni che richiedono l'allineamento di fase (ad esempio, EEG multicanale). La quantizzazione coefficiente può spingere i poli vicino al cerchio dell'unità, causando instabilità. Per mitigare questo, eseguire sempre analisi dei poli-zero con coefficienti quantizzati.
I coefficienti di utilizzo in flash vs. SRAM influiscono sulla potenza dinamica; l'utilizzo dei trasferimenti DMA per i coefficienti può ridurre i cicli della CPU. Quando si implementano metodi di frequenza-dominio, la stessa FFT consuma energia, solo se l'ordine del filtro è abbastanza alto per rendere il punto di crossover economico (tipicamente ordine > 50).
Infine, il test con segnali sensori reali à ̈ essenziale: gli artefatti di quantizzazione potrebbero essere impercettibili nei test di onde sinusoidale ma diventano evidenti nelle forme d'onda ECG o PPG reali.
Risorse esterne e lettura
- Analog Devices: Digital Signal Processing Education Library – Copre la progettazione dei filtri IIR e l'implementazione a punto fisso.
- IEEE Paper: Filtri digitali ottimizzati per dispositivi indossabili[] – Discute partizionamento hardware-software.
- Mouser Electronics: Filtro a bassa potenza in Wearables[ – Guida pratica alla selezione dei componenti.
- DSPRelated: Free IIR Filter Design Book[[] – Trattamento matematico approfondito della quantizzazione dei coefficienti.
Conclusioni
I filtri IIR rimangono un punto di riferimento per l'elaborazione dei segnali in dispositivi indossabili. La loro struttura ricorsiva offre implementazioni intrinsecamente di basso ordine, ma i progettisti devono navigare vincoli di lunghezza, memoria ed energia limitata. Applicando una combinazione di riduzione dell'ordine, la quantizzazione del coefficiente intelligente, le strutture biquad del cascata, il calcolo approssimativo e l'utilizzo hardware a bassa potenza, gli sviluppatori possono ridurre la complessità computazionale del 50-80% monitorando le prestazioni essenziali.