Dans le monde en évolution rapide des appareils Internet des objets (IoT), un traitement efficace des signaux est vital. Les filtres Infinite Impulse Response (IIR) de faible ordre sont des choix populaires en raison de leur simplicité et de leur efficacité informatique. Cet article fournit un guide complet pour concevoir ces filtres, couvrant la théorie, l'implémentation pratique, et les meilleures pratiques pour améliorer la performance des appareils IoT.

Comprendre les filtres à faible ordre IIR

Les filtres IIR sont des filtres numériques caractérisés par des retours, ce qui signifie que leur sortie dépend à la fois des entrées actuelles et passées ainsi que des sorties passées. Le terme « faible ordre » désigne généralement les filtres à un ou deux pôles et un ou deux zéros — filtres de premier ordre ou de deuxième ordre. Ces filtres conviennent particulièrement aux dispositifs IoT à ressources limitées parce qu'ils nécessitent moins d'opérations multi-accumulation et moins de mémoire que les équivalents d'ordre supérieur ou les filtres de réponse à impulsions Finite (FIR) de performances similaires.

Un filtre IIR de premier ordre a une fonction de transfert du formulaire:

Un filtre IIR de deuxième ordre (souvent appelé un biquad) a la forme:

Les coefficients b0, b1, b2 (pour le second ordre) déterminent les zéros (feedforward), tandis que a1, a2 déterminent les pôles (feedback). La stabilité exige que tous les pôles se trouvent à l'intérieur du cercle de l'unité dans le plan z, ce qui est une considération critique dans les implémentations à points fixes.

Les filtres IIR à faible ordre excellent dans des tâches telles que la réduction du bruit, le lissage des signaux et la sélection des fréquences. Par exemple, un filtre passe-bas peut éliminer le bruit à haute fréquence d'un capteur de température, tandis qu'un filtre passe-haut peut éliminer la dérive DC dans un signal accéléromètre.

Principes de conception

Sélection du type de filtre

Le choix du prototype de filtre (analogique ou numérique) définit les compromis entre la planéité des bandes passantes, l'atténuation des bandes stop et la linéarité de phase.

  • Butterworth: Fournit un bandeau de passe maximal sans ondulation. Il offre un roll-off monotonique mais nécessite un ordre plus élevé pour obtenir une atténuation de bande d'arrêt donnée par rapport aux filtres Chebyshev. Souvent préféré pour le conditionnement du signal de capteur où la précision d'amplitude est critique.
  • Chebyshev: Permet l'ondulation dans la bande passante (Type I) ou la bande arrêtée (Type II). En échange d'une petite quantité d'ondulation de bande passante, les filtres Chebyshev fournissent une bande de transition plus nette pour un ordre de filtre donné. Utile lorsque l'exigence d'atténuation de la bande arrêt domine.
  • Bessel: Optimisé pour la réponse en phase linéaire (délai de groupe constant), préservant la forme du signal dans le domaine temporel. Cependant, les filtres Bessel ont un roll-off plus lent. Idéal pour les applications où le dépassement et l'anneauage doivent être minimisés, comme dans les boucles de contrôle ou les croisements audio.
  • Elliptique (Cauer)[: Fournit le roll-off le plus raide pour un ordre donné en permettant l'ondulation à la fois dans la bande de passe et le bouchon. Rarement utilisé pour les conceptions IoT à faible ordre parce que l'amélioration des performances nécessite souvent une précision de point flottant et une quantification des coefficients soigneuse.

Pour la plupart des applications IoT à faible ordre, les filtres Butterworth et Chebyshev de premier ordre offrent un bon équilibre. La conception du filtre est souvent réalisée dans le s-domain à temps continu en utilisant des tables prototypes normalisées, puis transformée en z-domain à temps discret par la transformation bilinéaire (avec pré-warping) ou la méthode d'invariance des impulsions.

Paramètres de conception des clés

  • Fréquence de coupure (fc): Fréquence à laquelle la réponse de magnitude du filtre diminue de 3 dB (pour le passage bas/passe haut). Doit être choisie par rapport à la fréquence d'échantillonnage (fs).
  • Ordre de filtres (N)[: Pour les filtres à faible ordre, N est 1 ou 2. Les ordres plus élevés peuvent être réalisés en cascade de multiples sections biquad, mais l'article se concentre sur les dessins à une seule section.
  • Atténuation du bandeau de passe et du bandeau de stop: Critique pour les filtres Chebyshev et Elliptique. Un pliage de passeband commun de 0,5 dB est acceptable dans de nombreuses applications de capteurs IoT. L'atténuation du bandeau de stop de 20 à 40 dB est souvent suffisante pour éliminer les sources sonores typiques.
  • Marges de stabilité[: Avec l'arithmétique à point fixe, l'arrondi des coefficients peut pousser des pôles à l'extérieur du cercle unitaire. Choisissez des représentations de coefficients avec suffisamment de bits (par exemple, format Q15 ou Q31) et vérifiez les emplacements des pôles après la quantification.

compromis dans le design à faible commande

La limite principale des filtres IIR à faible ordre est la bande de transition progressive (pente) et plus large que les filtres à haut ordre. Un filtre passe-bas de premier ordre n'atténue que 20 dB par décennie, tandis qu'un filtre de deuxième ordre fournit 40 dB par décennie. Pour de nombreuses applications IoT - comme le filtrage des conduites principales de 50/60 Hz à partir d'un signal de capteur à basse fréquence - un filtre de deuxième ordre répond souvent aux exigences sans surcharger le processeur.

Le processus de conception

La conception d'un filtre IIR à faible ordre pour un appareil IoT implique plusieurs étapes systématiques. Nous illustrons un flux de travail typique en utilisant comme exemple un filtre passe-bas de deuxième ordre.

Étape 1: Définir les spécifications

Déterminer la fréquence de bord de bande passante (fp), la fréquence de bord de bande arrêt (fs), l'onduleur de bande passante (Ap) et l'atténuation de bande arrêt (A). Par exemple, nous pouvons vouloir un filtre passe-bas avec une coupure 3-dB à 10 Hz, un bord de bande arrêt à 30 Hz avec une atténuation d'au moins 20 dB et un taux d'échantillonnage de 100 Hz. Les fréquences numériques normalisées sont : -p = 2π * (10/100) = 0,628 rad/échantillon, -s = 2π * (30/100) = 1,885 rad/échantillon.

Étape 2: Sélectionnez le prototype et l'ordre

Choisissez un type de filtre et trouvez l'ordre requis à l'aide de graphiques ou de formules. Pour un filtre Butterworth, l'ordre N satisfait:

Dans notre exemple, avec As=20 dB, Ap=3 dB (en fait la référence est souvent le point 3 dB), un Butterworth de premier ordre ne donne qu'environ 7 dB à 30 Hz (20 dB/decade pente, rapport 3:1 donne ~11 dB atténuation, pas assez). Second ordre Butterworth donne 40 dB/decade, donc à 30 Hz (3× coupure) nous obtenons environ 40*log10(3) ↓ 19 dB — presque réunion 20 dB. Ainsi, un filtre de deuxième ordre est approprié.

Étape 3: Déterminer les pôles et les zéros de prototype analogiques

Pour un passe-bas de deuxième ordre Butterworth, les pôles analogiques normalisés sont à s = -0,7071 ± j0,7071 (pour une coupure de 1 rad/s).Utilisez pré-warping si la conception par transformation bilinéaire : fréquence critique pré-warpée -a = (2/T) * tan(-d*T/2), où T = 1/fs.Pour fs=100 Hz, T=0,01 s. Pré-warped -a = (2/0,01*tan(1,885*0,01/2) -a 200*tan(0,009425) -a 200*0,00942 -a.

Étape 4: Transformer bilinéaire en numérique

Appliquer la substitution s = (2/T) * (z-1)/(z+1). Pour une fonction de transfert analogique de deuxième ordre, la manipulation algébrique donne les coefficients numériques. Sinon, utiliser des formules ou des tables de conception bien connues. Pour un biquad à passe bas Butterworth avec fréquence de coupure γc (numérique), les coefficients peuvent être calculés comme suit (formule standard):













Pour notre seuil de 10 Hz à 100 Hz, theta = 0,628, sin(theta)=0,588. Les nombres de prises donnent des coefficients qui assurent la stabilité. Des outils comme Analog Devices Filter Wizard[ ou TI FilterPro automatisent cette étape.

Étape 5: Quantifier les coefficients pour le point fixe

Les microcontrôleurs IoT manquent souvent d'unités flottantes matérielles. Convertir les coefficients de point flottant en représentation à point fixe, comme le format Q15 (16 bits signés avec 15 bits fractionnés). Quantification introduit une erreur d'arrondi; vérifier que les coefficients quantifiés ne causent pas d'instabilité. Pour un filtre de deuxième ordre, même la quantisation 16 bits est généralement suffisante si les emplacements des pôles ne sont pas très proches du cercle unitaire (c.-à-d., des facteurs Q bas).

Étape 6 : Mettre en oeuvre l'équation de différence

La structure transposée des formulaires I ou II est courante pour les RII à faible ordre. La transposition des formulaires II est recommandée pour la réduction du bruit de quantification et la prévention des débordements. L'équation de différence pour un filtre de deuxième ordre est:

Pour les points fixes, utilisez des accumulateurs arithmétiques de saturation ou des accumulateurs à double largeur s'ils sont disponibles (par exemple, accumulateur 32 bits pour les coefficients et données 16 bits). De nombreux fournisseurs de microcontrôleurs fournissent des bibliothèques DSP optimisées, comme ARM CMSIS-DSP, qui comprennent des fonctions de filtre biquad avec des coefficients correctement gradués.

Mise en œuvre dans les dispositifs IoT

La mise en place de filtres IIR à faible ordre sur les microcontrôleurs nécessite une attention particulière à la disposition de la mémoire, interrompre la latence et la consommation d'énergie.

Stratégies arithmétiques à point fixe

La plupart des microcontrôleurs ARM Cortex-M0/M4 supportent les opérations 32 bits. Une approche commune consiste à stocker les coefficients et les données sous forme d'entiers signés 16 bits au format Q15 (intervalle -1,0 à 0,9999). Les multiplications produisent des résultats 32 bits; pour un biquad, utilisez un double accumulateur puis décalez et saturez-les à 16 bits. Cela évite les survols flottants et réduit la consommation d'énergie.

Minimiser la mémoire et la taille du code

Un seul biquad nécessite de stocker 5 coefficients et 2 variables d'état (pour la forme directe transposable II). C'est environ 7-10 16 bits de mots — négligeables sur n'importe quel MCU moderne. La boucle de filtre peut être écrite en trois ou quatre lignes de code C. Pour plusieurs canaux (p. ex., stéréo audio ou multicapteur), partager les mêmes coefficients mais maintenir les états par canal. Cette approche s'écaille linéairement sans souffler de mémoire.

Opération en temps réel

Les appareils IoT échantillonnent souvent des capteurs à faible débit (1 Hz à 1 kHz). Un filtre biquad ne consomme que quelques microsecondes de temps CPU par échantillon, laissant amplement de temps pour d'autres tâches. Pour les flux de données continues, implémentez le filtre dans une routine de service d'interruption (ISR) ou via un tampon circulaire dédié DMA. Les coefficients de filtre peuvent être modifiés à la volée si l'appareil doit s'adapter à différentes conditions sonores, mais s'assurer que l'interrupteur est fait pendant que l'état du filtre est réinitialisé pour éviter les transitoires.

Optimisation de la puissance

La consommation d'énergie est une préoccupation principale pour les nœuds IoT alimentés par batterie. Le filtre lui-même contribue très peu à la puissance globale – souvent moins de 0,1 % de l'énergie MCU lorsque l'on tourne à basse vitesse d'horloge. Cependant, le filtre peut permettre au MCU d'utiliser des débits d'échantillonnage plus faibles ou de dormir plus longtemps entre les échantillons. En éliminant le bruit avant la détection du seuil, l'appareil peut déclencher moins fréquemment.

Avantages et compromis des filtres à faible teneur en RII

Avantages

  • Typiquement, 5 multiplies-additions par échantillon pour le second ordre, comparativement à des dizaines ou des centaines pour un filtre FIR.
  • Processus rapide: Convient pour les applications en temps réel avec des taux d'échantillonnage élevés (p. ex. audio jusqu'à 48 kHz).
  • Exigences en mémoire minimal: Seulement quelques variables et coefficients d'état, aucun tampon de tap n'est nécessaire.
  • Facile d'implémentation: Disponible facilement dans les bibliothèques DSP MCU; le code est court et facile à vérifier.
  • Bonne atténuation des bouchons par ordre: Un RII de deuxième ordre peut surperformer un RIP de haut niveau lorsque la phase linéaire n'est pas nécessaire.

compromis et limites

  • Réponse de phase non linéaire: Les filtres IIR ont un retard de groupe dépendant de la fréquence, qui peut déformer les formes du signal.
  • L'instabilité potentielle[: La quantification coefficiente, en particulier en point fixe, peut pousser des pôles en dehors du cercle de l'unité.
  • Tige de roulage limitée: Pour un ordre donné, la bande de transition est plus large qu'un FIR équivalent avec de nombreux robinets. Si vous avez besoin d'une coupure très nette, vous devez en cascader plusieurs biquads, augmentant la complexité.
  • Aucune phase linéaire: les filtres FIR peuvent atteindre la phase linéaire exactement, ce qui les rend préférables pour certaines communications de données et le traitement d'images.
  • Sensibilité aux coefficients arrondis[: Les filtres elliptiques et les modèles à haute Q souffrent de grands changements de coefficients dus à la quantification, nécessitant une précision plus élevée (p. ex., point fixe 32 bits ou point flottant).

Malgré ces compromis, la majorité des tâches de filtrage des capteurs IoT (température, humidité, pression, vibration, son simple) peuvent être correctement desservies par des filtres IIR à faible ordre bien conçus.

Applications pratiques et exemples

Réduction du bruit dans les capteurs de température

Un filtre IIR passe-bas de premier ordre avec une coupure de 0,1 Hz (si l'échantillonnage à 1 Hz) lisse la lecture sans ajouter de décalage significatif. Les coefficients d'un tel filtre sont extrêmement simples — souvent une seule constante alpha où y[n] = alpha * x[n] + (1-alpha) * y[n-1]. C'est la moyenne mobile exponentielle classique, qui est un IIR de premier ordre. Il peut être implémenté dans une ligne de code C sans multiplier si alpha est une puissance de deux (par exemple, 1/4 = 0,25).

Suppression de la commande DC dans les accéléromètres

Un filtre à passe-haut avec une coupure très basse (par exemple 0,5 Hz) peut supprimer ce décalage en passant des signaux dynamiques. Un biquad à passe-haut de deuxième ordre Butterworth permet un roll-off aigu pour se régler rapidement après l'initialisation. Les coefficients sont dérivés du prototype à passe-bas en remplaçant s par 1/s dans le domaine analogique.

Pré-traitement audio pour commandes vocales

Les appareils IoT avec microphones utilisent des filtres IIR à faible ordre dans le cadre d'une chaîne de détection d'activité vocale (VAD). Un filtre à bande passante (cascade de passe basse et de passe haute) centré sur la gamme de fréquences vocales (300–3400 Hz) réduit le bruit de fond avant de se nourrir dans un détecteur de mot de veille. Les filtres doivent être soigneusement conçus pour éviter toute distorsion de phase qui pourrait affecter la cohérence des fonctions audio.

Rejet du bruit de la ligne électrique

Pour les capteurs mesurant des signaux bas niveau près du secteur AC, un filtre à encoche (arrêt-bande) à 50/60 Hz est essentiel. Un filtre à encoche IIR de deuxième ordre peut être conçu avec un encoche très étroit. La fonction de transfert place des zéros sur le cercle de l'unité à la fréquence de l'entaille. Le filtre nécessite des coefficients de précision élevés car les zéros sont exactement sur le cercle de l'unité; la mise en œuvre à point fixe doit traiter cette tâche avec soin, souvent avec une arithmétique 32 bits.

Conclusion

La conception de filtres IIR à faible ordre pour les appareils IoT est un équilibre pratique entre la qualité du signal et la conservation des ressources. En sélectionnant le type de filtre approprié et en quantifiant soigneusement les coefficients, les développeurs peuvent obtenir un retrait du bruit et une sélection de fréquences efficace avec un minimum de CPU et d'empreinte mémoire. La simplicité des filtres de premier et deuxième ordre les rend idéales pour les capteurs alimentés par batterie, les moniteurs de santé portables et les appareils à domicile intelligents.