Implémentation de filtres d'air avec Arithmétique à point fixe dans les puces Dsp: Meilleures pratiques
Maîtriser les filtres IIR à point fixe sur les DSP embarqués
La mise en œuvre des filtres Infinite Impulse Response (IIR) sur les processeurs de signal numérique à point fixe (DSP) exige une analyse numérique rigoureuse et une compréhension approfondie du matériel cible. Bien que l'arithmétique à point flottant simplifie les mathématiques, le point fixe reste le choix dominant pour les systèmes embarqués à haut volume et à puissance réduite.
Fondations de l'arithmétique à point fixe dans les systèmes IIR
Pourquoi le point fixe domine le DSP intégré
Les processeurs à point fixe consomment beaucoup moins de silicium et de puissance que leurs homologues à point flottant. Une seule opération multiplie-accumulée (MAC) de 16 bits ne nécessite qu'une fraction des ressources logiques nécessaires pour une MAC à point flottante de précision unique. Pour les applications ciblant les appareils à batterie ou les systèmes à haut débit, cela réduit directement la facture de matériaux (BOM) et prolonge la durée de vie opérationnelle.
Format Q et représentation numérique
Dans les systèmes à points fixes, l'emplacement du point décimal est fixé. Le Q format[ spécifie le nombre de bits attribués aux parties entières et fractionnelles. Un nombre Q15 utilise 16 bits au total (1 bit de signe, 15 bits fractionnels), représentant des valeurs de -1,0 à 0,9999. Un nombre Q31 étend ce nombre à 32 bits pour une précision plus élevée. Cependant, les coefficients de filtre dépassent souvent la gamme entière des formats fractionnels standard. Par exemple, un coefficient biquad peut être égal à -1,885. Cette valeur nécessite un format avec des bits entiers, comme Q1.14 ou Q2.30.
Décisions architecturales critiques pour les filtres IIR à points fixes
Formulaire I direct contre formulaire II direct
La topologie de l'équation de différence de filtre est la décision la plus importante qui affecte la performance numérique. La structure de la forme directe II utilise moins de lignes de retard mais concentre le gain de filtre complet dans la section de rétroaction récursive.Cela crée un risque élevé de débordement interne si les états ne sont pas correctement gradués, car le noeud interne peut croître bien au-delà du signal d'entrée. Le formulaire direct I (DFI) sépare les sections de flux (zéro) et de rétroaction (pôles) en le rendant intrinsèquement plus résistant au débordement.
La norme de la biquad Cascaded
Aucune implémentation à point fixe ne devrait réaliser directement une fonction de transfert à ordre élevé (par exemple, 8ème ordre) en une seule section monolithique. La sensibilité des coefficients de filtre à la quantisation augmente de façon exponentielle avec l'ordre du filtre. En cassant la fonction de transfert en sections de deuxième ordre (SOS) ou en biquads , les pôles sont regroupés en paires conjuguées complexes, minimisant ainsi l'erreur numérique. La meilleure pratique veut que les secProcess {poles avec le facteur Q le plus élevé} soient placés tôt dans la chaîne de cascade et isolés des sections avec un gain élevé pour maximiser l'étendue dynamique.
Stratégies de mise en œuvre de base pour la quantification et l'expansion
Quantification Coefficient et Placement Polaire
Les coefficients de filtration conçus en double précision doivent être quantifiés à la longueur de mot fixe cible. Cette quantification déplace les emplacements de pôles idéaux. Un filtre parfaitement stable en point flottant peut devenir légèrement stable ou instable après la quantification des coefficients. Les ingénieurs doivent effectuer un contrôle de stabilité post-quantisation, en vérifiant que toutes les magnitudes de pôles quantifiés sont strictement inférieures à 1.0. Pré-chauffage du prototype analogique pour compenser le déformage de fréquence de la transformation bilinéaire est une étape nécessaire avant de quantifier les coefficients sur la grille de points fixes.
Gestion de la croissance et de l'expansion des signaux internes
La nature récursive des filtres IIR signifie que les valeurs internes des nœuds peuvent croître, même avec des entrées modestes. Par exemple, un résonateur à haute Q peut amplifier une petite entrée par un facteur de 100 ou plus dans sa boucle de rétroaction. Pour éviter le débordement, un facteur d'échelle d'entrée (souvent un changement logique à droite) doit être introduit.
Si le gain maximal de la fonction de transfert de à est G, le signal d'entrée doit être étalonné par (ou une puissance de 2 approximation) pour garantir un dépassement du chemin de rétroaction.
Tirer parti de l'accumulateur et de la saturation
La plupart des DSP à points fixes disposent d'un accumulateur 40 bits ou 56 bits. Ce grand registre accumule les résultats d'opérations de multiplication-ajout sans perdre de précision. Le défi se produit lorsque le résultat d'accumulateur 40 bits doit être stocké à un emplacement mémoire 16 bits ou 32 bits. Deux modes existent : l'enveloppage et la saturation. L'enroulement peut provoquer un signal positif important qui devient soudainement un signal négatif important, entraînant une distorsion catastrophique. La saturation ferme la sortie au maximum représente la valeur positive ou négative.
Pièges numériques avancés et mesures correctives
Cycles limites et zones mortes
Les filtres à point fixe peuvent présenter des oscillations auto-durcissantes appelées cycles limites même avec zéro entrée. Les cycles de limite granulaires sont causés par des erreurs d'arrondi dans la multiplication récursive. Lorsque le produit est arrondi pour correspondre à la longueur du mot, l'erreur d'arrondi peut s'accumuler. Une correction standard est de mettre en place une zone morte : lorsque les variables d'entrée et d'état sont en dessous d'un seuil défini, les variables d'état sont effacées ou forcées à zéro. Cela assure que le filtre se règle complètement.
Manipulation des filtres à haute qualité et à bande étroite
Les filtres RII à bande étroite à facteurs Q élevés sont exceptionnellement sensibles à la quantification des coefficients. Un petit changement des coefficients de dénominateur peut déplacer de façon significative la fréquence centrale ou la bande passante. Dans de tels cas, envisager d'utiliser des filtres à lattes[ ou des structures d'espaces d'état[, qui présentent une sensibilité aux coefficients plus faibles au détriment d'un calcul plus poussé.
Méthodes de vérification et de validation
Simulation et co-simulation des valeurs de l'ordre de deux chiffres
Il est risqué de faire confiance à une implémentation à point fixe sans simulation. Les ingénieurs doivent exécuter les coefficients quantifiés exacts et les opérations arithmétiques à point fixe à l'aide d'un modèle bit-true avant de se déployer sur le matériel. Des outils comme le concepteur de point fixe MATLAB ou des modèles C personnalisés avec saturation et arrondis intrinsèques permettent cette simulation.
Essai du matériel dans la boucle (HIL)
Une fois le filtre exécuté sur la DSP cible, la vérification se déplace vers le domaine matériel. L'injection de vecteurs de test connus – comme une impulsion unitaire, des ondes sinusoïdales à des fréquences critiques et des signaux multitones – permet à l'ingénieur de comparer la sortie DAC réelle à la sortie simulée. L'analyse spectrale de la sortie peut révéler une distorsion harmonique inattendue causée par la saturation interne ou les cycles limites.
Essais unitaires pour la robustesse
Le code de production devrait comprendre des essais unitaires pour les cas bordereaux:
- DC stability:[ Injecter une valeur continue de courant continu et vérifier que la sortie se règle à l'intérieur de limites définies.
- Onde sinusoïdale d'amplitude maximale: Appliquer une onde sinusoïdale à grande échelle au bord du bandeau de passage et vérifier qu'aucune saturation ne se produit.
- Recovery zero-input:[ Appliquer une entrée importante et ensuite le supprimer. Mesurer le temps de décantation et confirmer aucun cycle limite.
- Récupération de l'écoulement:[ Injecter un signal qui sature l'accumulateur et vérifier que la sortie se rétablit sans heurt lorsque le signal est enlevé.
Conclusion
La mise en œuvre de filtres IIR avec arithmétique fixe sur puces DSP reste une tâche exigeante mais nécessaire pour les ingénieurs de systèmes embarqués. Une mise en œuvre réussie nécessite une planification minutieuse dans trois domaines clés : architecture (choisissant des biquads en cascade sur des sections à haut ordre), échelle (gestion de la croissance du signal dans la longueur de mot finie) et vérification (utilisation de simulations bit-true et tests HIL rigoureux).