Posts

Bien que la conception de filtres RIF à phase linéaire soit une tâche facile, ce n’est certainement pas le cas pour les filtres RII qui ont généralement une réponse en phase hautement non linéaire, en particulier autour des fréquences de coupure du filtre. Cet article traite des caractéristiques nécessaires pour qu’un filtre numérique ait une phase linéaire, et de la façon dont la phase de la bande passante d’un filtre RII peut être modifiée afin d’obtenir une phase linéaire en utilisant des filtres d’égalisation passe-tout.

Pourquoi avons-nous besoin de filtres à phase linéaire ?

Les filtres numériques à phase linéaire ont l’avantage de retarder toutes les composantes de fréquence de la même quantité, c’est-à-dire qu’ils préservent les relations de phase du signal d’entrée. Cette préservation de la phase signifie que le signal filtré conserve la forme du signal d’entrée original. Cette caractéristique est essentielle pour les applications audio, car la forme du signal est primordiale pour maintenir une haute fidélité dans le son filtré. L’analyse biomédicale des formes d’onde ECG est un autre domaine d’application qui requiert cette caractéristique, car tout artefact introduit par le filtre peut être interprété à tort comme une anomalie cardiaque.

Le graphique suivant montre les performances de filtrage d’un filtre passe-bas RII de type I de Chebyshev sur des données ECG – la forme d’onde d’entrée (représentée en bleu) est décalée de 10 échantillons (\(\small \Delta=10\)) pour compenser approximativement le retard de groupe du filtre. Remarquez que le signal filtré (représenté en rouge) a atténué, élargi et ajouté des oscillations autour du pic ECG, ce qui n’est pas souhaitable.

Figure 1 : Résultat du filtrage passe-bas RII avec distorsion de phase

Pour qu’un filtre numérique ait une phase linéaire, sa réponse impulsionnelle doit présenter une symétrie conjuguée-paire ou conjuguée-impaire autour de son point central. Ceci est facilement visible pour un filtre RIF,

\(\displaystyle H(z)=\sum\limits_{k=0}^{L-1} b_k z^{-k}\tag{1} \)

Avec la contrainte suivante sur ses coefficients ,

\(\displaystyle b_k=\pm\, b^{\ast}_{L-1-k}\tag{2} \)

ce qui conduit à ,

\(\displaystyle z^{L-1}H(z) = \pm\, H^\ast (1/z^\ast)\tag{3} \)

En analysant l’équation 3, nous voyons que les racines (zéros) de \(\small H(z)\) doivent aussi être les zéros de \(\small H^\ast (1/z^\ast)\). Cela signifie que les racines de H(z) doivent apparaître par paires réciproques conjuguées, c’est-à-dire que si \(\small z_k\) est un zéro de \(\small H(z)\), alors \(\small H^\ast (1/z^\ast)\) doit aussi être un zéro.

Pourquoi les filtres RII n’ont pas une phase linéaire

Un filtre numérique est dit stable à Entrée Bornée, Sortie Bornée, ou stable EBSB (stable BIBO), si chaque entrée bornée donne lieu à une sortie bornée. Tous les filtres RII ont soit des pôles, soit à la fois des pôles et des zéros, et doivent être stables EBSB, c’est-à-dire que

\(\displaystyle \sum_{k=0}^{\infty}\left|h(k)\right|<\infty \tag{4}\)

Où, \(\small h(k)\) est la réponse impulsionnelle du filtre. En analysant l’équation 4, il devrait être clair que le critère de stabilité EBSB ne sera satisfait que si les pôles du système se trouvent à l’intérieur du cercle unitaire, puisque la ROC (région de convergence) du système doit inclure le cercle unitaire. Par conséquent, il suffit de dire qu’un signal d’entrée borné produira toujours un signal de sortie borné si tous les pôles se trouvent à l’intérieur du cercle unitaire.

Les zéros, par contre, ne sont pas contraints par cette exigence et, par conséquent, peuvent se trouver n’importe où sur le plan z, puisqu’ils n’affectent pas directement la stabilité du système. Par conséquent, une analyse de la stabilité du système peut être entreprise en calculant d’abord les racines de la fonction de transfert (c’est-à-dire les racines des polynômes du numérateur et du dénominateur), puis en traçant les pôles et les zéros correspondants sur le plan z.

En appliquant la logique développée aux pôles d’un filtre RII, nous arrivons maintenant à une conclusion très importante sur la raison pour laquelle les filtres RII ne peuvent pas avoir une phase linéaire.

Un filtre stable EBSB doit avoir ses pôles à l’intérieur du cercle unitaire. Pour obtenir une phase linéaire, un filtre RII devrait avoir des pôles réciproques conjugués à l’extérieur du cercle unitaire, ce qui le rendrait instable EBSB.

Sur la base de cette affirmation, il semblerait qu’il ne soit pas possible de concevoir un RII pour avoir une phase linéaire. Cependant, comme nous le verrons plus loin, des filtres d’égalisation de phase peuvent être utilisés pour linéariser la réponse en phase de la bande passante.

Linéarisation de phase avec des filtres passe-tout

Les filtres passe-tout (equalisers) de linéarisation de phase (égaliseurs) sont une méthode bien établie pour modifier la réponse en phase d’un filtre sans affecter sa réponse en amplitude. Un filtre passe-tout du second ordre (Biquad) est défini comme suit :

\( A(z)=\Large\frac{r^2-2rcos \left( \frac{2\pi f_c}{fs}\right) z^{-1}+z^{-2}}{1-2rcos \left( \frac{2\pi f_c}{fs}\right)z^{-1}+r^2 z^{-2}}\tag{5} \)

Où \(\small f_c\) est la fréquence centrale, \(\small r\) est le rayon des pôles et \(\small f_s\) est la fréquence d’échantillonnage. Remarquez comment les coefficients du numérateur et du dénominateur sont disposés comme une paire d’images miroir l’une de l’autre. La propriété d’image miroir est ce qui donne au filtre passe-tout sa propriété souhaitable, à savoir permettre au concepteur de modifier la réponse en phase tout en gardant la réponse en magnitude constante ou plate sur l’ensemble du spectre de fréquences.

En cascadant une cascade d’égalisation APF (filtre passe-tout) (composée de plusieurs APF) avec un filtre RII, l’idée de base est que nous n’avons besoin de linéariser la réponse en phase que dans la région de la bande passante. Les autres régions, telles que la bande de transition et la bande d’arrêt, peuvent être ignorées, car toute non-linéarité dans ces régions est de peu d’intérêt pour le résultat global du filtrage.

Le défi

La cascade d’APF semble être un compromis idéal pour ce défi, mais en réalité, il faut beaucoup de temps et un réglage très précis des positions des APF pour obtenir un résultat acceptable. Chaque APF a deux variables : \(\small f_c\) et \(\small r\) qui doivent être optimisées, ce qui complique la solution. Celle-ci est encore compliquée par le fait que plus on ajoute d’étages d’APF à la cascade, plus le délai de groupe (latence) du filtre global devient élevé. Ce dernier point peut devenir problématique pour les systèmes de contrôle en boucle fermée en temps réel qui dépendent de la propriété de faible latence d’un RII.

Néanmoins, malgré ces difficultés, l’égaliseur APF est un bon compromis pour linéariser les caractéristiques de phase de la bande passante d’un RII.

L’égaliseur APF

ASN Filter Designer fournit aux concepteurs une interface graphique d’égaliseur tout-phase très simple à utiliser pour linéariser la phase de bande passante des filtres RII. Comme on peut le voir ci-dessous, l’interface est très intuitive, et permet aux concepteurs de placer rapidement et d’affiner les positions des filtres APF avec la souris. L’outil calcule automatiquement \(\small f_c\) et \(\small r\), en fonction de la position du marqueur.

Égaliseur APF ASN Filter Designer

Un clic droit sur le diagramme de réponse en fréquence ou sur un marqueur de conception passe-tout existant affiche un menu d’options, comme illustré à gauche.

Vous pouvez ajouter jusqu’à 10 biquads (version professionnelle uniquement).

Un RII avec une phase de bande passante linéaire

En concevant un égaliseur composé de trois paires d’APF, et en le cascadant avec le filtre de Chebyshev de la figure 1, nous obtenons une forme d’onde de filtre dont le pic est beaucoup plus net, avec moins d’atténuation et d’oscillation que le RII original – voir ci-dessous. Toutefois, cette amélioration se fait au prix de trois filtres Biquad supplémentaires (la cascade APF) et d’un retard de groupe accru, qui passe à 24 échantillons contre 10 à l’origine.

Résultat du filtrage passe-bas RII avec trois filtres d'égalisation de phase APF (distorsion de phase minimale)
Résultat du filtrage passe-bas RII avec trois filtres d’égalisation de phase APF
(distorsion de phase minimale)

La réponse en fréquence du filtre RII original et du filtre RII égalisé est illustrée ci-dessous, où le retard de groupe (en violet) est le retard moyen du filtre et constitue un moyen plus simple d’évaluer la linéarité.

RII sans égalisation en cascade
RII sans égalisation en cascade

RII avec égalisation en cascade
RII avec égalisation en cascade

Remarquez que le temps de propagation de groupe de la bande passante RII égalisée (illustré à droite) est presque plat, ce qui confirme que la phase est effectivement linéaire.

Génération automatique de code vers les cœurs de processeurs Arm via CMSIS-DSP

Le moteur de génération automatique de code de l’ASN Filter Designer facilite l’exportation d’un filtre conçu vers des processeurs basés sur Cortex-M Arm via le cadre logiciel CMSIS-DSP. Les fonctions d’analyse et d’aide intégrées de l’outil aident le concepteur à configurer avec succès la conception pour le déploiement.

Avant de générer le code, les filtres RII et d’égalisation (c’est-à-dire les filtres H1 et Heq) doivent d’abord être réoptimisés (fusionnés) en une structure de filtre H1 (filtre principal) pour le déploiement. Le menu d’options se trouve sous l’onglet P-Z dans l’interface utilisateur principale.

Toutes les conceptions de filtres RII en virgule flottante doivent être basées sur l’arithmétique en simple précision et sur une structure de filtre de Direct Form I ou Direct Form II Transposed, car celle-ci est prise en charge par un multiplicateur matériel dans les cœurs M4F, M7F, M33F et M55F. Bien que vous puissiez choisir la double précision, la prise en charge matérielle n’est disponible que dans certains dispositifs Hélium M7F et M55F. La structure Direct Form II Transposed est préconisée pour l’implémentation en virgule flottante en raison de sa plus grande précision numérique.

Les paramètres de quantification et de structure de filtre se trouvent sous l’onglet Q (comme illustré à gauche). En réglant l’Arithmetic sur Single Precision et la Structure sur strong>Direct Form II Transposed et en cliquant sur le bouton Apply, on configure le RII considéré ici pour le cadre logiciel CMSIS-DSP.

Sélectionnez le cadre Arm CMSIS-DSP dans la boîte de sélection de la fenêtre de résumé du filtre:

ASN Filter Designer Sélectionnez le cadre Arm CMSIS-DSP dans la boîte de sélection de la fenêtre de résumé du filtre

Le code C généré automatiquement basé sur le cadre CMSIS-DSP pour une implémentation directe sur un processeur Cortex-M basé sur Arm est montré ci-dessous :

Le code C généré automatiquement basé sur le cadre CMSIS-DSP pour une implémentation directe sur un processeur Cortex-M basé sur Arm

Le générateur de code automatique de l’ASN Filter Designer génère tout le code d’initialisation, la mise à l’échelle et les structures de données nécessaires pour implémenter le filtre RII linéarisé via la bibliothèque CMSIS-DSP d’Arm.

Assistant de déploiement Arm

Les utilisateurs de la licence professionnelle peuvent accélérer le déploiement en utilisant l’assistant de déploiement Arm. L’IA intégrée déterminera automatiquement les meilleurs paramètres pour votre conception en fonction des paramètres de quantification choisis.

L’IA intégrée analyse automatiquement votre cascade de filtres complète et convertit tous les filtres H2 ou Heq en H1 pour la mise en œuvre.

Qu’avons-nous appris ?

Les racines d’un filtre numérique à phase linéaire doivent se trouver dans des paires réciproques conjuguées. Bien que cela ne pose aucun problème pour un filtre RIF, cela devient infaisable pour un filtre RII, car les pôles devraient se trouver à la fois à l’intérieur et à l’extérieur du cercle unitaire, ce qui rendrait le filtre instable EBSB.

La réponse en phase de la bande passante d’un filtre RII peut être linéarisée en utilisant une cascade d’égalisation APF. Le Filter Designer d’ASN fournit aux concepteurs tout ce dont ils ont besoin via une interface graphique d’égaliseur de phase passe-tout très simple à utiliser, afin de concevoir une cascade APF appropriée en utilisant simplement la souris !

Le filtre RII linéarisé peut être exporté via le générateur de code automatique utilisant les fonctions optimisées de la bibliothèque CMSIS-DSP d’Arm pour être déployé sur n’importe quel microcontrôleur Cortex-M.

 

 

Télécharger la démo

Informations sur les licences

Un filtre numérique est un algorithme mathématique qui opère sur un ensemble de données numériques (par exemple, des données de capteur) afin d’extraire les informations intéressantes et de supprimer toute information indésirable. Parmi les applications de ce type de technologie, citons la suppression des anomalies dans les données de capteurs ou même le nettoyage du bruit sur un signal mesuré pour faciliter l’analyse des données. Mais comment choisir le meilleur type de filtre numérique pour notre application ? Et quelles sont les différences entre un filtre RII et un filtre RIF?

Les filtres numériques sont divisés en deux catégories :

  • Réponse impulsionnelle infinie (RII)
  • Réponse impulsionnelle finie (RIF)

Comme leur nom l’indique, chaque type de filtre est classé en fonction de la longueur de sa réponse impulsionnelle. Toutefois, avant de commencer une analyse mathématique détaillée, il est prudent d’apprécier les différences de performances et de caractéristiques de chaque type de filtre.

Exemple

Afin d’illustrer les différences entre un RII et un RIF, la réponse en fréquence d’un RIF d’ordre 14 (ligne pleine) et d’un RII de type I de Chebyshev d’ordre 4 (ligne pointillée) est présentée ci-dessous à la figure 1. Remarquez que bien que les spectres d’amplitude aient un degré d’atténuation similaire, le spectre de phase du filtre RII est non linéaire dans la bande passante (\(\small 0\rightarrow7.5Hz\)), et devient très non linéaire à la fréquence de coupure, \(\small f_c=7.5Hz\). Notez également que le filtre RIF nécessite un plus grand nombre de coefficients (15 contre 10 pour le RII) pour correspondre aux caractéristiques d’atténuation du RII.

RIF vs RII : réponse en fréquence d'un FIR d'ordre 14 (ligne pleine), et d'un IIR de type I de Chebyshev d'ordre 4 (ligne pointillée) ; Filtre RIF, Filtre RII
Figure 1: Figure 1 : RIF vs RII : réponse en fréquence d’un RIF de 14ème ordre (ligne pleine), et d’un RII de type I de Tchebychev de 4ème ordre (ligne pointillée)

Ce ne sont là que quelques-unes des différences entre les deux types de filtres. Un résumé détaillé des principaux avantages et inconvénients de chaque type de filtre va maintenant suivre.

Filtres RII

Les filtres RII (Réponse impulsionnelle infinie) sont généralement choisis pour les applications où la phase linéaire n’est pas trop importante et où la mémoire est limitée. Ils ont été largement déployés dans l’égalisation audio, le traitement du signal des capteurs biomédicaux, les capteurs intelligents IoT/IIoT et les applications de télécommunication/RF à haut débit.

Avantages

  • Faible coût de mise en œuvre: nécessite moins de coefficients et de mémoire que les filtres RIF pour satisfaire un ensemble similaire de spécifications, à savoir la fréquence de coupure et l’atténuation de la bande d’arrêt
  • Faible latence: : sconvient aux applications de contrôle en temps réel et aux applications RF à très haut débit en raison du faible nombre de coefficients
  • Équivalent analogique: peut être utilisé pour imiter les caractéristiques des filtres analogiques en utilisant des transformations de mappage dans le plan s-z

Inconvénients

  • Caractéristiques de phase non linéaires: Les caractéristiques de phase d’un filtre RII sont généralement non linéaires, en particulier à proximité des fréquences de coupure. Des filtres d’égalisation passe-tout peuvent être utilisés afin d’améliorer les caractéristiques de phase de la bande passante
  • Analyse plus détaillée : Nécessite plus d’analyse de mise à l’échelle et de débordement numérique lorsqu’il est implémenté en virgule fixe. La structure du filtre de forme directe II est particulièrement sensible aux effets de la quantification, et nécessite une attention particulière lors de la phase de conception
  • Stabilité numérique: : Moins stable numériquement que leurs homologues RIF (réponse impulsionnelle finie), en raison des chemins de rétroaction

Filtres RIF

Les filtres RIF (réponse impulsionnelle finie) sont généralement choisis pour les applications où la phase linéaire est importante et où une quantité décente de mémoire et de performance de calcul est disponible. Ils sont largement utilisés dans les applications d’amélioration des signaux audio et biomédicaux. Leur structure entièrement nulle (discutée ci-dessous) garantit qu’ils ne deviennent jamais instables pour n’importe quel type de signal d’entrée, ce qui leur donne un net avantage sur les filtres RII.

Avantages

  • Phase linéaire: Les RIF peuvent être facilement conçus pour avoir une phase linéaire. Cela signifie qu’aucune distorsion de phase n’est introduite dans le signal à filtrer, car toutes les fréquences sont décalées dans le temps de la même quantité – ce qui maintient leurs relations harmoniques relatives (c’est-à-dire un retard de groupe et de phase constant). Ce n’est certainement pas le cas avec les filtres RII, qui ont une caractéristique de phase non linéaire
  • Stabilité: Comme les filtresRIF n’utilisent pas les valeurs de sortie précédentes pour calculer leur sortie actuelle, c’est-à-dire qu’ils n’ont pas de rétroaction, ils ne peuvent jamais devenir instables pour tout type de signal d’entrée, ce qui leur donne un avantage distinct sur les filtres RII
  • Réponse en fréquence arbitraire: : La fonction firarb() fde Parks-McClellan et ASN FilterScript permet la conception d’un RIF avec une réponse en amplitude arbitraire. Cela signifie qu’un RIF peut être personnalisé plus facilement qu’un RII
  • Performance à point fixe: les effets de la quantification sont moins sévères que ceux d’un RII

Inconvénients

  • Exigences élevées en termes de calcul et de mémoire: Les RIF nécessitent généralement beaucoup plus de coefficients pour obtenir une coupure nette que leurs homologues RII. Il en résulte qu’ils nécessitent beaucoup plus de mémoire et un nombre beaucoup plus élevé d’opérations MAC (multiple and accumulate). Toutefois, les architectures de microcontrôleurs modernes basées sur les cœurs Cortex-M d’Arm incluent désormais un support matériel DSP via SIMD (instruction de signal, données multiples) qui accélère considérablement l’opération de filtrage.
  • Latence plus élevée: le nombre plus élevé de coefficients signifie qu’en général, un RIF est moins adapté qu’un RII pour les applications rapides à haut débit. Cela devient problématique pour les applications de contrôle en boucle fermée en temps réel, où un filtre RIF peut avoir un retard de groupe trop important pour atteindre la stabilité de la boucle
  • Pas d’équivalent analogique: : à l’aide de la transformation Bilinéaire, appariée en z (s-z mapping), un filtre analogique peut être facilement transformé en un filtre RII équivalent. Cependant, cela n’est pas possible pour un RIF car il n’a pas d’équivalent analogique

Définitions mathématiques

Comme nous l’avons vu dans l’introduction, les noms RII et RIF proviennent des définitions mathématiques de chaque type de filtre, c’est-à-dire qu’un filtre RII est catégorisé par sa réponse impulsionnelle théoriquement infinie,

 

\(\displaystyle
y(n)=\sum_{k=0}^{\infty}h(k)x(n-k)
\)

 

et un RIF catégorisé par sa réponse impulsionnelle finie,


\(\displaystyle
y(n)=\sum_{k=0}^{N-1}h(k)x(n-k)
\)

Nous allons maintenant analyser successivement les propriétés mathématiques de chaque type de filtre.

Définition du filtre RII

Comme nous l’avons vu plus haut, un filtre RII est catégorisé par sa réponse impulsionnelle théoriquement infinie,

\(\displaystyle y(n)=\sum_{k=0}^{\infty}h(k)x(n-k) \)

En pratique, il n’est pas possible de calculer la sortie d’un RII à l’aide de cette équation. Par conséquent, l’équation peut être réécrite en termes d’un nombre fini de pôles \(\small p\) et de zéros \(\small q\), comme défini par l’équation de différence linéaire à coefficient constant donnée par:

 

\(\displaystyle
y(n)=\sum_{k=0}^{q}b_k x(n-k)-\sum_{k=1}^{p}a_ky(n-k)
\)

 

où, \(\small a_k\) et \(\small b_k\) sont les coefficients polynomiaux du dénominateur et du numérateur du filtre, dont les racines sont égales aux pôles et aux zéros du filtre, respectivement. Ainsi, une relation entre l’équation différentielle et la transformée en z (fonction de transfert) peut donc être définie en utilisant la propriété de retard de la transformée en z telle que,

 

\(\displaystyle
\sum_{k=0}^{q}b_kx(n-k)-\sum_{k=1}^{p}a_ky(n-k)\quad\stackrel{\displaystyle\mathcal{Z}}{\longleftrightarrow}\quad\frac{\sum\limits_{k=0}^q b_kz^{-k}}{1+\sum\limits_{k=1}^p a_kz^{-k}}
\)

 

Comme on le voit, la fonction de transfert est une représentation du filtre dans le domaine fréquentiel. Remarquez également que les pôles agissent sur les données de sortie, et les zéros sur les données d’entrée. Since the poles act on the output data, and affect stability,Puisque les pôles agissent sur les données de sortie et affectent la stabilité, il est essentiel que leurs rayons restent à l’intérieur du cercle unitaire (i.e. <1) pour la stabilité BIBO (bounded input, bounded output). Les rayons des zéros sont moins critiques, car ils n’affectent pas la stabilité du filtre. C’est la principale raison pour laquelle les filtres RIF (réponse impulsionnelle finie) tout-zéro sont toujours stables.

Stabilité BIBO

Un système linéaire invariant dans le temps (LTI) (tel qu’un filtre numérique) est dit stable à entrée bornée et sortie bornée, ou stable BIBO, si chaque entrée bornée donne lieu à une sortie bornée, comme suit

\(\displaystyle \sum_{k=0}^{\infty}\left|h(k)\right|%lt\infty \)

Où, \(\small h(k)\) est la réponse impulsionnelle du système LTI. En analysant cette équation, il devrait être clair que le critère de stabilité BIBO ne sera satisfait que si les pôles du système se trouvent à l’intérieur du cercle unitaire, puisque la ROC (région de convergence) du système doit inclure le cercle unitaire. Par conséquent, il suffit de dire qu’un signal d’entrée borné produira toujours un signal de sortie borné si tous les pôles se trouvent à l’intérieur du cercle unitaire.

Les zéros, par contre, ne sont pas contraints par cette exigence et, par conséquent, peuvent se trouver n’importe où sur le plan z, puisqu’ils n’affectent pas directement la stabilité du système. Par conséquent, une analyse de la stabilité du système peut être entreprise en calculant d’abord les racines de la fonction de transfert (c’est-à-dire les racines des polynômes du numérateur et du dénominateur), puis en traçant les pôles et les zéros correspondants sur le plan zéro.

Une situation intéressante se présente si l’un des pôles se trouve sur le cercle unitaire, car le système est dit marginalement stable, puisqu’il n’est ni stable ni instable. Bien que les systèmes marginalement stables ne soient pas stables BIBO, ils ont été exploités par les concepteurs d’oscillateurs numériques, car leur réponse impulsionnelle fournit une méthode simple pour générer des ondes sinusoïdales, qui se sont avérées précieuses dans le domaine des télécommunications.

Filtres RII biquad

La mise en œuvre du filtre RII dont il est question ici est dite biquad, car elle comporte deux pôles et deux zéros, comme l’illustre la figure 2 ci-dessous. L’implémentation biquad est particulièrement utile pour les implémentations en virgule fixe, car les effets de la quantification et de la stabilité numérique sont minimisés. Cependant, le succès global de toute implémentation biquad dépend de la précision numérique disponible, qui doit être suffisante pour garantir que les pôles quantifiés sont toujours à l’intérieur du cercle unitaire.

Réalisation et fonction de transfert d'un filtre RII de forme directe I (biquad) ; Forme directe ; Filtre biquad

Figure 2 : Réalisation et fonction de transfert d’un filtre RII de forme directe I (biquad)

En analysant la figure 2, on constate que la structure biquad est en fait composée de deux chemins de rétroaction (mis à l’échelle par (scaled by \(\small a_1\) et \(\small a_2\)), tde trois chemins de rétroaction (mis à l’échelle par \(\small b_0, b_1\) et \(\small b_2\)) et d’un gain de section, \(\small K\).Ainsi, l’opération de filtrage de la figure 1 peut être résumée par l’équation récursive simple suivante :

\(\displaystyle y(n)=K\times\Big[b_0 x(n) + b_1 x(n-1) + b_2 x(n-2)\Big] – a_1 y(n-1)-a_2 y(n-2)\)


En analysant l’équation, on remarque que l’implémentation biquad ne nécessite que quatre additions (qui ne requièrent qu’un seul accumulateur) et cinq multiplications, ce qui peut être facilement accommodé sur n’importe quel microcontrôleur Cortex-M. Le gain de section, \(\small K\) , peut également être prémultiplié avec les coefficients de la voie directe avant l’implémentation.

Une collection de filtres Biquad est appelée une cascade Biquad, comme illustré ci-dessous.

Cascade Biquad ; Filtre Biquad

Le ASN Filter Designer peut concevoir et implémenter une cascade de jusqu’à 50 biquads (édition professionnelle seulement).

Implémentation en virgule flottante


Lors de l’implémentation d’un filtre en virgule flottante (c’est-à-dire en utilisant l’arithmétique de double ou simple précision) les structures Direct Form II sont considérées comme un meilleur choix que la structure Direct Form I. La structure de forme directe II transposée est considérée comme la plus précise numériquement pour une implémentation en virgule flottante, car les effets indésirables de l’amortissement numérique sont minimisés, comme on peut le voir en analysant les équations de différence.

Structure de la forme directe II transposée, fonction de transfert et équations de différence ; filtres RII ; filtres Biquad.

Figure 3 – Structure transposée de forme directe II, fonction de transfert et équations de différence

Le résumé du filtre (montré dans la Figure 4) fournit au concepteur une vue d’ensemble détaillée du filtre conçu, y compris un résumé détaillé des spécifications techniques et des coefficients du filtre, qui présente une voie rapide et simple pour documenter votre conception.

Le ASN Filter Designer supporte la conception et l’implémentation des filtres RII à section unique et Biquad (réglage par défaut).

Filtre Biquad ASN Filter Designer DSP

 

Figure 4 : spécification détaillée.

 

Définition RIF

En retournant l’équation de différence de coefficient constant linéaire du RII, c’est-à-dire

 

\(\displaystyle
y(n)=\sum_{k=0}^{q}b_kx(n-k)-\sum_{k=1}^{p}a_ky(n-k)
\)

 

Remarquez que lorsque nous mettons les coefficients \(\small a_k\) (c’est-à-dire la rétroaction) à zéro, la définition se réduit à notre définition originale du filtre RIF, ce qui signifie que le calcul RIF est juste basé sur les valeurs d’entrée passées et présentes, à savoir:

 

\(\displaystyle
y(n)=\sum_{k=0}^{q}b_kx(n-k)
\)

 

Implémentation

Bien qu’il existe plusieurs implémentations pratiques pour les RIF, la structure de forme directe et son cousin transposé sont peut-être les plus couramment utilisés, et en tant que tels, tous les coefficients de filtre conçus sont destinés à être implémentés dans une structure de forme directe.

La structure de forme directe et l’équation de différence associée sont présentées ci-dessous. La forme directe est préconisée pour la mise en œuvre en virgule fixe en vertu du concept d’accumulateur unique.

\(\displaystyle y(n) = b_0x(n) + b_1x(n-1) + b_2x(n-2) + …. +b_qx(n-q) \)

Forme directe ; Structure de forme directe

La structure recommandée (par défaut) dans l’ASN Filter Designer est la structure Direct Form Transposed, car elle offre une précision numérique supérieure lors de l’utilisation de l’arithmétique à virgule flottante. Ceci peut être facilement vu en analysant les équations de différence ci-dessous (utilisées pour l’implémentation), car les effets indésirables de l’amortissement numérique sont minimisés, puisque l’addition en virgule flottante est effectuée sur des nombres de magnitude similaire.

\(\displaystyle \begin{eqnarray}y(n) & = &b_0x(n) &+& w_1(n-1) \\ w_1(n)&=&b_1x(n) &+& w_2(n-1) \\ w_2(n)&=&b_2x(n) &+& w_3(n-1) \\ \vdots\quad &=& \quad\vdots &+&\quad\vdots \\ w_q(n)&=&b_qx(n) \end{eqnarray}\)

Forme directe Transposée

Qu’avons-nous appris ?

Les filtres numériques se répartissent dans les deux catégories suivantes :

  • Réponse impulsionnelle infinie (RII)
  • Réponse impulsionnelle finie (RIF)

Les filtres RII (Réponse impulsionnelle infinie) sont généralement choisis pour des applications où la phase linéaire n’est pas trop importante et où la mémoire est limitée. Ils ont été largement déployés dans l’égalisation audio, le traitement du signal des capteurs biomédicaux, les capteurs intelligents IoT/IIoT et les applications de télécommunication/RF à haut débit.

Les filtres RIF (réponse impulsionnelle finie) sont généralement choisis pour les applications où la phase linéaire est importante et où une quantité décente de mémoire et de performances de calcul sont disponibles. Ils ont été largement déployés dans les applications d’amélioration des signaux audio et biomédicaux.

ASN Filter Designer fournit aux ingénieurs tout ce dont ils ont besoin pour concevoir, expérimenter et déployer des filtres numériques complexes RII et RIF pour une variété d’applications de mesure de capteurs. Ces avantages couplés avec la documentation automatique et la fonctionnalité de génération de code permettent aux ingénieurs de concevoir et valider un filtre numérique RII/RIF en quelques minutes plutôt qu’en quelques heures.

Download demo now

Licencing information