Table of Contents
Optimisation des conceptions de filtres IIR pour une complexité calculatrice réduite dans les appareils portables
Des appareils portables tels que les montres intelligentes, les dispositifs de suivi de la condition physique et les dispositifs médicaux de surveillance reposent sur l'acquisition continue de données de capteur et le traitement en temps réel. De l'élimination des artefacts de mouvement des signaux électrocardiogrammes (ECG) au nettoyage des données d'accéléromètre pour le comptage en échelon, le filtrage numérique joue un rôle central. Parmi les nombreux types de filtres, les filtres Infinite Impulse Response (IIR) sont un cheval de bataille dans ces applications en raison de leur capacité à obtenir des réponses de fréquence aiguës avec relativement peu de coefficients.
Comprendre les filtres IIR dans les articles à porter
Les filtres IIR sont des filtres numériques définis par une fonction de transfert qui comprend à la fois les coefficients de flux et de rétroaction.
y[n] = b0·x[n] + b1·x[n-1] + ... + bM·x[n-M] - a1·y[n-1] - ... - aN·y[n-N]
Comme la sortie dépend des sorties précédentes (feedback), les filtres IIR peuvent obtenir une réponse de fréquence donnée avec un ordre inférieur à un filtre équivalent Finite Impulse Response (FIR). Pour les appareils portables, cela signifie moins d'opérations multi-accumulation (MAC) par échantillon, une mémoire réduite pour le stockage des coefficients et une latence inférieure.
Malgré leur efficacité, les filtres IIR présentent des défis dans les appareils portables : ils peuvent devenir instables en raison de la quantification des coefficients, souffrir d'oscillations de cycle limite et nécessiter une échelle minutieuse pour éviter le débordement en arithmétique fixe. De plus, les calculs récursifs empêchent une parallélisation facile, rendant chaque échantillon une dépendance série.
Stratégies clés pour réduire la complexité informatique de l'IRI
1. Réduction de l'ordre des filtres
La façon la plus directe de réduire le coût de calcul est de réduire l'ordre des filtres. Moins de coefficients signifient moins d'opérations MAC par échantillon. Cependant, il suffit de réduire l'ordre sans tenir compte de la spécification dégrade souvent les performances. Heureusement, plusieurs techniques peuvent aider à obtenir la réponse requise avec un ordre minimal:
- En positionnant soigneusement les pôles et les zéros dans le plan z, les concepteurs peuvent rencontrer les contraintes de bande passante et de bande stop avec un filtre de moindre ordre qu'un modèle Butterworth ou Chebyshev standard. Par exemple, l'utilisation d'un filtre elliptique avec un petit bouchon admissible donne souvent l'ordre le plus bas pour une largeur de transition donnée.
- La transformation en phase de z :[ Lors de la conversion de prototypes analogiques, la transformation bilinéaire est standard, mais la transformation en phase de z peut parfois préserver la réponse de fréquence avec un ordre numérique inférieur si le filtre analogique est simple.
- Réduction de l'ordre itératif: Commencez par un design à ordre élevé, puis appliquez des techniques de réduction du modèle comme la troncation équilibrée ou l'approximation de la norme Hankel pour produire un filtre IIR stable et à ordre réduit qui correspond étroitement à la réponse de fréquence originale.
En pratique, un filtre IIR de troisième ordre peut souvent remplacer un design de cinquième ordre par une perte de performance négligeable pour les tâches de filtrage biosignal comme l'élimination par errage EMG ou ECG.
2. Quantification Coefficient et réduction de la longueur des mots
Les microcontrôleurs portables fonctionnent généralement avec un arithmétique à 16 bits ou 24 bits. L'utilisation d'un point flottant à double précision est à la fois apaisante et inutile. La réduction du coefficient de longueur de mot de 32 bits à, par exemple, 16 bits coupe l'utilisation de la mémoire par moitié et accélère les opérations arithmétiques (surtout si le processeur a dédié des instructions de multiplication-accumulation entière).
- Choisir le bon schéma de quantification:[ Utilisez le format Q (p. ex. Q15 pour les fractions signées 16 bits) pour représenter les coefficients. L'arrondi à la valeur représentative la plus proche peut causer l'instabilité; la sensibilité des pôles permet d'attribuer plus de bits aux coefficients sensibles.
- Optimiser la quantification en utilisant des méthodes statistiques:[ Appliquer des algorithmes simulés de recuit ou de génétique pour trouver un ensemble de coefficients quantifiés qui répondent encore aux spécifications du filtre. Cela peut permettre une réduction de 2-4 bits par rapport à un arrondi naïf.
- Utiliser les coefficients de deux :[ Si les coefficients peuvent être rapprochés par des sommes de puissances de deux, la multiplication peut être remplacée par quelques changements et ajoute, réduisant considérablement la complexité computationnelle. Ceci est particulièrement efficace pour les filtres à coefficient fixe de RII utilisés dans la surveillance sonore ou cardiaque.
Par exemple, un filtre de deuxième ordre à encoche IIR avec des coefficients quantifiés en puissances de deux peut être mis en œuvre en utilisant seulement quatre opérations de quart et trois ajouts par échantillon, parfait pour un noyau ARM Cortex-M0 de faible puissance.
3. Structures de la structure de la structure de la structure de cascade par rapport à celle de la structure de forme directe
La structure dans laquelle un filtre IIR est mis en œuvre affecte grandement la charge, la stabilité et la sensibilité à la quantification. Les formes les plus courantes sont les formes directes I et II, et leurs variantes transposées. Pour les conceptions à haut niveau, une cascade de sections de second ordre (SOS) est généralement préférée:
- Sections de deuxième ordre (biquads):[Chaque section met en œuvre un filtre IIR de deuxième ordre. La structure en cascade réduit la sensibilité des coefficients, ce qui facilite le maintien de la stabilité avec des longueurs de mots courtes. Calcul par échelle d'échantillon linéairement avec ordre: un filtre de sixième ordre nécessite trois biquads, chacun nécessitant 5 MAC, total 15 MAC par échantillon.
- Forme parallèle: Décomposer la fonction de transfert en une somme de première et deuxième sous-sections de commande. Cela peut parfois réduire le nombre total de MAC si le filtre d'origine a des pôles répétés.
- Structure de latte/d'échelle:[ Bien que plus de calcul-lourd en général, les structures de réseau offrent d'excellentes propriétés de stabilité et sont moins sensibles à la quantification.
Pour les articles à porter, l'implémentation en cascade biquad est souvent l'équilibre optimal entre le coût de calcul, la stabilité et l'utilisation de la mémoire.
4. Mise en œuvre de la fréquence-domaine en utilisant la FFT
Lorsque la tâche de filtrage implique des signaux de longue durée ou plusieurs canaux, le filtrage IIR du domaine temporel peut être remplacé par une méthode de chevauchement-ajout ou d'enregistrement de chevauchement à l'aide de la transformation de Fourier rapide (FFT). Bien que cela semble contre-intuitif (IIR est déjà efficace dans le domaine du temps), pour les filtres IIR de très haut niveau (commande > 50) ou lorsque le traitement simultané de plusieurs canaux, la convolution basée sur FFT peut devenir plus efficace.
- Convolution partagée: Pour les applications en temps réel, la réponse d'impulsion du filtre IIR (qui est infini) doit être tronquée. Une approche pratique consiste à rapprocher le filtre IIR avec un long filtre FIR (si la réponse d'impulsion se décroît rapidement) et à utiliser la convolution basée sur FFT. Ceci est courant dans l'annulation du bruit sonore.
- Filtrage de sous-bandes:[ Certains appareils portables utilisent des banques de filtres (p. ex. pour l'analyse spectrale). Dans de tels cas, il peut être utile de mettre en œuvre la banque entière dans le domaine de fréquence, combinant FFT et FFT inverse par cadre.
Les méthodes de domaine de fréquence sont les plus adaptées aux portables avec une RAM ample et un accélérateur FFT matériel (commun dans de nombreux SoC audio Bluetooth modernes).
5. Filtrage approximatif et précision réduite Arithmétique
Toutes les applications portables ne nécessitent pas la précision complète d'un filtre IIR manuel. Des techniques informatiques approximatives peuvent échanger une petite quantité de précision pour des économies de calcul importantes:
- Producteurs tronqués:[ Utilisez des circuits arithmétiques inexacts qui calculent le résultat de multiplication avec moins de bits. Un multiplicateur 10 bits au lieu de 16 bits peut couper la puissance de 30 à 40 % dans le matériel personnalisé.
- Computation stochastique: Pour les conceptions de très faible puissance, les représentations stochastiques (bits de 1 et 0s) peuvent implémenter la multiplication avec une seule porte, mais cela nécessite souvent une correction de re-timing et d'erreur.
- Échantillonnage et mise à jour en continu: Si la bande passante du signal est plus large que nécessaire, décimer le signal avant de le filtrer. Le filtrage IIR à un taux inférieur permet d'économiser des MAC par échantillon, et le filtre de décimation peut être un autre modèle à faible coût.
- Modification de l'ordre d'adaptation:[ Utiliser un filtre à ordre variable qui commence par un ordre élevé pendant l'étalonnage et réduit l'ordre (en éteignant les sections biquad) lorsque le signal est stationnaire. Cette échelle de complexité dynamique peut être contrôlée par un simple détecteur d'activité.
Exemple : Un système de détection de chute à accéléromètre à poignets peut utiliser un filtre passe-haut IIR de deuxième ordre au lieu d'un quatrième lorsque l'utilisateur est stationnaire, réduisant ainsi sa consommation de 20 %.
6. Co-conception hardware-logiciel pour une puissance ultra-faible
De nombreux appareils portables intègrent un processeur de signal numérique dédié (DSP) ou un microcontrôleur avec un appareil MAC matériel. Optimiser les filtres IIR pour l'ensemble d'instructions et l'architecture de mémoire est essentiel:
- Responsable circulaire :[ Utilisez le tampon circulaire matériel pour le stockage variable de l'état dans les structures biquad. La plupart des DSP supportent cela sans frais généraux supplémentaires de calcul de l'adresse.
- SIMD (Instruction unique, données multiples):[ Certains cœurs ARM Cortex-M4/7 prennent en charge les instructions SIMD qui traitent deux MAC de 16 bits simultanément. Si les coefficients de filtre sont quantifiés à 16 bits, deux sections biquad peuvent être calculées dans un cycle MAC unique.
- Modes de gage et de sommeil de verrouillage:[ Implémenter le filtre dans une tâche qui ne fonctionne que lorsque les données du capteur sont disponibles. Utiliser des modes de sommeil de faible puissance du MCU entre les échantillons.
- Loops Zero-overhead:[ Déroulez les boucles pour les filtres à ordre fixe afin d'éliminer les pénalités de branche. Un filtre IIR de troisième ordre mis en place comme code en ligne fonctionne jusqu'à 30% plus vite qu'une implémentation en boucle.
Étude de cas pratique : Filtre de signal ECG dans une Smartwatch
Pour illustrer ces stratégies, considérez un usure qui acquiert un ECG à 250 Hz. Le signal brut contient une déviation de base (0,5 Hz et moins), une interférence de la ligne de puissance (50/60 Hz) et un bruit musculaire à haute fréquence. Le but de la conception est de rejeter ces artefacts avec une bande passante de 0,5 à 40 Hz et une atténuation de la bande arrêt de 20 dB à 50 Hz.
Une approche conventionnelle utilise un filtre IIR Butterworth bandpass de quatrième ordre (cascade de deux biquads). En point flottant sur un Cortex-M4 de faible puissance, cela nécessite environ 10 opérations MAC par échantillon. La consommation totale de puissance pour le filtrage seul est d'environ 0,5 mW. En passant à un design elliptique de troisième ordre (réduction de commande) qui répond toujours à l'exigence de 20 dB, le nombre MAC tombe à 7,5 par échantillon. De plus, les coefficients quantifiants au point fixe Q15 réduisent la mémoire et permettent l'utilisation de MAC SIMD 16 bits : la cascade biquad peut maintenant être calculée en 4 instructions par section, totalisant 8 instructions par échantillon. La consommation de puissance tombe à 0,3 mW.
De plus, en utilisant un coefficient de puissance de deux pour le filtre à encoches de 50 Hz (mise en œuvre en tant que biquad séparé), le filtre à encoches ne nécessite que 3 opérations d'ajout de décalages au lieu de 3 MAC. La chaîne de filtres globale ne consomme que 0,2 mW, soit une réduction de 60 % par rapport à la conception originale, tout en maintenant les paramètres de qualité du signal (SNR dans un délai de 1 dB de l'original).
Cette optimisation a permis à l'utilisateur de faire fonctionner l'acquisition et le filtrage ECG en continu pendant 24 heures sur une batterie de 150 mAh, contre 16 heures avec l'implémentation originale.
Défis et compromis
Chaque optimisation apporte des pièges potentiels. La réduction de l'ordre peut augmenter le délai de l'onduleur ou du groupe de dégradation, ce qui peut être problématique pour les applications nécessitant un alignement de phase (p. ex. EEG multicanaux). La quantification coefficient peut pousser des pôles près du cercle de l'unité, provoquant l'instabilité. Pour atténuer cela, toujours effectuer une analyse pole-zéro avec des coefficients quantifiés.
Les développeurs devraient également considérer le transfert de puissance à partir de l'accès à la mémoire. Les coefficients de stockage dans flash contre SRAM affectent la puissance dynamique; l'utilisation de transferts DMA pour les coefficients peut réduire les cycles CPU. Lors de la mise en œuvre des méthodes de domaine de fréquence, le FFT lui-même consomme de la puissance – seulement si l'ordre du filtre est assez élevé pour rendre le point de croisement économique (généralement ordre > 50).
Enfin, les tests avec des signaux de capteur du monde réel sont essentiels. Les artefacts de quantification peuvent être imperceptibles dans les tests sinusoïdaux mais devenir visibles dans les formes d'onde ECG ou PPG réelles.
Ressources externes et lectures complémentaires
- Appareils analogiques : Bibliothèque d'éducation au traitement numérique des signaux – Couvre la conception du filtre IIR et l'implémentation en point fixe.
- Papier IEEE : Filtres numériques optimisés pour les appareils portables – Discute de la partition hardware-software.
- Mouser Electronics: Filtrage à faible puissance dans les usure – Guide pratique pour la sélection des composants.
- DSPRelated: Livre de conception de filtre IIR gratuit – Traitement mathématique approfondi de la quantification des coefficients.
Conclusion
Les filtres IIR restent la pierre angulaire du traitement des signaux dans les appareils portables. Leur structure récursive offre des implémentations intrinsèquement de faible ordre, mais les concepteurs doivent naviguer sur les contraintes de longueur limitée de mots, de mémoire et d'énergie. En appliquant une combinaison de réduction d'ordre, de quantification des coefficients habiles, de structures en cascade biquad, d'informatique approximative et d'utilisation de matériel de faible puissance, les développeurs peuvent réduire la complexité computationnelle de 50 à 80 % sans sacrifier les performances essentielles.