For many, Covid-19 was an eye-opener for the importance of indoor air quality. Children spend a large portion of the day at school. American research shows, that children spend 1000 hours at school every year.It is therefore very important that students and teachers stay in a room with clean air. It is healthier and more pleasant. And poor air quality causes students to get worse grades. Why is good indoor air quality in schools and properly functioning HVAC so important? And how can sensors help monitor indoor air quality?

Lower grades, less fun

With stale air, students may find it hard to pay attention to the teacher. Or concentrate on tests or stay awake at all. Besides, poor indoor air quality may affect the ability to make decisions. So, without even realizing yourself, it can damage your productivity and your school results.

Research at K-12 education by Jacqueline M. Nowicki  (U.S. Government Accountability Office, K-12 Education: School Districts Frequently Identified Multiple Building Systems Needing Updates or Replacement., Jacqueline M. Nowicki, June 4, 2020) shows that: “compelling evidence…of an association of increased student performance with increased ventilation rates,” yet “ventilation rates in classrooms often fall far short of the minimum ventilation rates specified in standards.” 41% of U.S. school districts  need to update or replace their HVAC (heating, ventilation and air conditioning) systems in at least half of their schools. This means about 36,000 schools in the US.

In a survey of school buildings in the Netherlands, 7340 school buildings responded, but not always completely. Overall, 38% of the responding schools met the requested standards, that is 2789 schools. 807 schools (11%) indicated that they did not meet. The remaining schools could not (yet) say whether their building met the standards.

Further, a bad indoor air quality may lead to headaches and cause or worsen asthma and other respiratory illnesses. And, of course, it’s more pleasant to be in a classroom with clean air. Especially when you spend most of the day there.

How can you improve your indoor climate?

4 steps to improve Indoor Air Quality at schools

  1. Install and improve HVAC
  2. Filter and clean the air
  3. Measure indoor air quality with sensors
  4. Dashboard: monitor your indoor air quality

Install and improve HVAC

Due to poor ventilation, the ‘used’ air will not dilute enough with ‘new’, fresh air from outside. So, especially with many people in a closed room (like a class-room) and the ventilation is poor, the fresh air in this room gets more and more replaced by stale air. That’s why effective ventilation requires that it both brings fresh, oxygenated air from outdoors and removes stale indoor air.

sensors indoor air quality classroom Airguard

How to adjust HVAC within schools:

  • If you haven’t done already: install proper HVAC
  • A California study shows that 85% of the classrooms did not provide adequate ventilation
  • Purify the air in the building by extending the operating times of HVAC systems. Let the HVAC run before the first staff arrives and also after the last persons have gone home
  • Increase the rate of air exchanges to provide fresh air through natural of mechanical ventilation
  • Increase to 100% of fresh air intake or the maximum amount possible

Besides, regarding COVID-19, recent study (Centers for Disease Control and Prevention) shows that Covid-19 was 39% lower in schools by opening windows and doors, using fans, or those measurements in combination with air filtration methods.

Filter and Clean the Air

Air cleaners and HVAC filters filter pollutants or contaminants out of the air that passes thru them. They can help reduce airborne contaminants, including particles containing viruses. When ventilation with outdoor air is not possible or when outdoor air pollution is high, air purifiers (portable air cleaners) may be helpful without worsening comfort (temperature or humidity).

Sensors measure Indoor Air Quality

Children spend many hours indoors at school. Therefore, it is important to have a good indoor air quality. For the feeling of well-being for the children and teacher, but also for the children’s grades. You can measure the CO2 with a CO2 meter, or a sensor which combines the monitoring of CO2 with temperature, humidity and Volatile Organic Compounds, for instance ASN Airguard.

If you have installed HVAC, in some cases this doesn’t work properly. This may be caused by:

•             Problems with installation of HVAC systems

•             Incorrect HVAC systems purchased

•             Incorrect controls and thermostats

•             No follow-up testing after installation

•             Poorly-maintained filters

Besides, when you’re busy, keeping an eye on the air quality may easily be ignored. Sensors warn you that the indoor quality has worsened. And they help you to maintain your indoor air quality such, that the risk of spreading the viruses is as least as possible. These warn you with a signal on the sensor and an alert on your app. So, you can take action, adjust your HVAC or just open a window.

Indoor air qualities sensors monitor your indoor climate. They monitor CO2, TOVC, humidity and temperature.

Dashboard: monitor your indoor air quality

Monitor the indoor air quality of your school with a dashboard. You can monitor humidity, temperature, TVOC and CO2 in real time. And it shows how the school performs over time: are there any locations where the indoor air quality easily drops to an unwanted level? So, you can find out the causes and improve air quality.

It is not only schools themselves that are increasingly recognizing the importance of a good indoor climate for students and teachers.  But more and more governments (and parents) are also aware of the importance of air quality within schools. Through monitoring, schools can show authorities that they are meeting air quality standards. And also show parents that they provide a healthy and pleasant learning environment for their children.

Further, facility managers can use their reports by optimizing and save on energy costs by use of energy based on occupation levels and other factors.

Syntaxe
Hd = butter (Order, Frequencies, Rp, Rs, Type, DFormat)

Description: Qu’est-ce qu’un filtre de Butterworth?

Conception classique d’un filtre RII de Butterworth

  • Réponse monotone lisse (pas d’ondulation)
  • Décroissance la plus lente pour un ordre équivalent
  • Ordre le plus élevé de tous les prototypes supportés

Filtre de Butterworth

Order: peut être spécifié jusqu’à 20 (professionnel) et jusqu’à 10 (éducatif) édition. En réglant l’Order sur 0, on active l’algorithme de détermination automatique de l’ordre.

Frequencies: es filtres passe-bas et passe-haut ont une bande de transition et, en tant que tels, nécessitent deux fréquences (c’est-à-dire les fréquences de coupure inférieure et supérieure de la bande de transition). Pour les filtres passe-bande et coupe-bande, quatre fréquences sont nécessaires (c’est-à-dire deux bandes de transition). Toutes les fréquences doivent être dans l’ordre croissant et < Nyquist (voir l'exemple ci-dessous).

Rp: Ondulation de la bande passante en dB. Il s’agit d’un terme quelque peu inapproprié, car le filtre de Butterworth a une bande passante maximalement plate. Une bonne valeur par défaut est 0,001dB, mais l’augmentation de cette valeur affectera la position de la fréquence de coupure inférieure du filtre.

Rs: Atténuation de la bande d’arrêt en dB. C’est un peu un terme inapproprié, car le filtre de Butterworth a une bande d’arrêt maximalement plate, ce qui signifie que l’atténuation de la bande d’arrêt (en supposant que l’ordre correct du filtre est spécifié) sera ≥ la spécification de la bande d’arrêt.

Type: La méthode Butterworth facilite la conception de filtres passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) et coupe-bande (bandstop) respectivement.

Hd: la méthode Butterworth conçoit un filtre de Butterworth IIR sur la base des spécifications entrées et place la fonction de transfert (c’est-à-dire le numérateur, le dénominateur, le gain) dans un objet filtre numérique, Hd. L’objet filtre numérique peut ensuite être combiné avec d’autres méthodes si nécessaire. Pour un objet filtre numérique, Hd, l’appel à getnum(Hd), getden(Hd) et getgain(Hd) permettra d’extraire respectivement les coefficients du numérateur, du dénominateur et du gain – voir ci-dessous.

DFormat: permet de spécifier le format d’affichage de l’objet filtre numérique résultant.

symbolic permet d’afficher une représentation symbolique de l’objet filtre. Si l’ordre > 10, l’option d’affichage symbolique sera remplacée par l’option numérique.
numeric Afficher une représentation matricielle de l’objet filtre
void Crée un objet filtre, mais n’affiche pas la sortie

Exemple

ClearH1; // clear primary filter from cascade
ShowH2DM; // show DM on chart

Main()

Rp=0.001;
Rs=80;
F={50,120};
Hd=butter(0,F,Rp,Rs,&quot;lowpass&quot;,&quot;symbolic&quot;);

F={50,80,100,120};
Hd=butter(0,F,Rp,Rs,&quot;bandpass&quot;,&quot;symbolic&quot;);

Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain 

Voir aussi

bessel / butter / cheby1 / cheby2 / ellip / arbmagphase / cplxfreqshift / dcremover / notch / peaking

Les filtres passe-tout offrent un moyen simple de modifier/améliorer la réponse en phase d’un IIR sans affecter sa réponse en amplitude. En tant que tels, ils sont communément appelés égaliseurs de phase et ont trouvé une utilisation particulière dans les applications audio numériques.

Dans sa forme la plus simple, un filtre peut être construit à partir d’une fonction de transfert du premier ordre, c’est-à-dire,

\( A(z)=\Large{\frac{r+z^{-1}}{1+r z^{-1}}}  \, \,  \normalsize{; r<1} \)

En analysant \(\small A(z)\), on remarque que le pôle et le zéro se trouvent sur l’axe réel du plan z et que le pôle au rayon \(\small r\) a un zéro au rayon \(\small 1/r\), de sorte que les pôles et les zéros sont réciproques. Cette propriété est essentielle au concept de filtre passe-tout, comme nous allons le voir maintenant en élargissant le concept à un filtre passe-tout du second ordre :

\( 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}} \)

Où \(\small f_c\) est la fréquence centrale, \(\small r\) est le rayon des pôles et tout filtre passe-tout, filtre passe-tout, filtre passe-tout, tout filtre passe-pôle-zéro \(\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.

Filtre passe-tout, filtre passe-tout, passe-tout, égaliseur de phase, modification/amélioration de la réponse en phase d'un IIR sans affecter sa réponse en magnitudeRéponse en fréquence d’un filtre passe-tout :
Remarquez le spectre à magnitude constante (en bleu).

Implémentation

Un filtre passe-tout peut être implémenté dans ASN FilterScript comme suit :

ClearH1;  // clear primary filter from cascade

interface radius = {0,2,0.01,0.5};   // radius value
interface fc = {0,fs/2,1,fs/10};     // frequency value

Main()
Num = {radius^2,-2*radius*cos(Twopi*fc/fs),1};
Den = reverse(Num); // mirror image of Num
Gain = 1;

Pour une explication détaillée sur l’égalisation de phase des filtres IIR, et l’outil de conception APF (filtre passe-tout) du concepteur de filtres ASN, veuillez vous référer à l’article suivant.

ASN Filter Designer DSP

Téléchargez la démo

Licences

Dans le traitement des signaux ECG, l’élimination des interférences des lignes électriques 50/60Hz des formes d’onde ECG biomédicales délicates et riches en informations est une tâche difficile! Le défi est encore compliqué par l’ajustement des effets de l’EMG, tels que le mouvement d’un membre ou du torse du patient ou même la respiration. Une approche traditionnelle adoptée par beaucoup consiste à utiliser un filtre coupe-bande IIR de 2e ordre :

\(\displaystyle H(z)=\frac{1-2cosw_oz^{-1}+z^{-2}}{1-2rcosw_oz^{-1}+r^2z^{-2}}\)

où \(w_o=\frac{2\pi f_o}{fs}\) contrôle la fréquence centrale, \(f_o\) de l’encoche, et \(r=1-\frac{\pi BW}{fs}\) contrôle la bande passante (point -3dB) de l’encoche.

Quel est le défi?

Comme nous l’avons vu plus haut, \(H(z) \) est simple à mettre en œuvre, mais la difficulté consiste à trouver une valeur optimale de r, car une encoche nette souhaitable signifie que les pôles sont proches du cercle unitaire (voir à droite).

ECG biomédicaux rii; difficulté consiste à trouver une valeur optimale de r, car une encoche nette souhaitable signifie que les pôles sont proches du cercle unitaire

En présence d’interférences stationnaires, par exemple lorsque le patient est absolument immobile et que les effets de la respiration sur les données du capteur sont minimes, cela peut ne pas être un problème.

Cependant, si l’on considère les effets de l’EMG sur la forme d’onde capturée (une situation beaucoup plus réaliste), la rétroaction (pôles) du filtre IIR provoque un tintement sur la forme d’onde filtrée, comme illustré ci-dessous:

ECG contaminé par des interférences 50Hz non stationnaires (filtrage FIR), traitement des signaux ECG, DSP ECG, mesure ECG

ECG contaminé par des interférences non stationnaires de 50 Hz provenant de lignes électriques (filtrage RII)

Comme nous l’avons vu ci-dessus, bien que la majorité des interférences 50Hz aient été éliminées, il y a toujours un anneau significatif autour des pics principaux (sortie filtrée montrée en rouge). Ce tintement est indésirable pour de nombreuses applications biomédicales, car les informations cardiaques vitales telles que le segment ST ne peuvent pas être clairement analysées.

La réponse en fréquence du filtre IIR utilisé pour filtrer les données ECG ci-dessus est présentée ci-dessous.

Réponse en fréquence du filtre coupe-bande RII, traitement du signal ECG, DSP ECG, mesure ECt

Réponse en fréquence du filtre coupe-bande RII

En analysant le graphique, on peut voir que le délai de groupe (ou délai moyen) du filtre est non linéaire mais presque nul dans les bandes passantes, ce qui signifie qu’il n’y a pas de distorsion. Le délai de groupe à 50Hz s’élève à 15 échantillons, ce qui est la source de la sonnerie – où plus les pôles sont proches du cercle unitaire, plus le délai de groupe est grand.

ASN FilterScript offre aux concepteurs la fonction notch(), qui est une implémentation directe de H(z), comme montré ci-dessous:

ClearH1;  // clear primary filter from cascade
ShowH2DM;   // show DM on chart

interface BW={0.1,10,.1,1};

Main()

F=50;
Hd=notch(F,BW,"symbolic");
Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain

Filtres RIF de Savitzky-Golay

Une solution au problème de l’anneau mentionné ci-dessus ainsi qu’une réduction du bruit peuvent être obtenues grâce à un filtre de lissage passe-bas Savitzky-Golay. Ces filtres sont des filtres RIF, et n’ont donc pas de coefficients de rétroaction et pas de sonnerie !

Les filtres de lissage (polynomiaux) de Savitzky-Golay ou les filtres de lissage des moindres carrés sont des généralisations du filtre moyen FIR qui peuvent mieux préserver le contenu haute fréquence du signal souhaité, au détriment de l’élimination d’autant de bruit qu’une moyenne RIF. La formulation particulière des filtres Savitzky-Golay préserve mieux les différents ordres de moment que d’autres méthodes de lissage, qui ont tendance à mieux préserver les largeurs et hauteurs de pic que Savitzky-Golay. À ce titre, les filtres de Savitzky-Golay conviennent parfaitement aux données biomédicales, telles que les ensembles de données ECG.

Élimination de la composante 50 Hz de la ligne électrique

En concevant un filtre Savitzky-Golay d’ordre 18 avec un ajustement polynomial d’ordre 4 (voir l’exemple de code ci-dessous), nous obtenons un filtre FIR avec une distribution nulle, comme indiqué sur la droite. Cependant, comme nous souhaitons éliminer complètement la composante 50Hz, l’éditeur P-Z de l’outil peut être utilisé pour déplacer une paire de zéros (indiquée en vert) à exactement 50Hz.

La réponse en fréquence résultante est présentée ci-dessous, où l’on peut voir qu’il y a une encoche à exactement 50Hz, et que le retard de groupe de 9 échantillons (présenté en violet) est constant sur toute la bande de fréquence.

Réponse en fréquence du filtre RIF Savitzky-Golay, traitement du signal ECG, DSP ECG, mesure ECG

Réponse en fréquence du filtre RIF Savitzky-Golay

En faisant passer l’ensemble de données ECG contaminées par notre filtre Savitzky-Golay modifié et en ajustant le retard de groupe, nous obtenons :

ECG contaminé par des interférences non stationnaires de 50 Hz (filtrage RIF), traitement du signal ECG, filtre numérique ECG, conception du filtre ECG.

ECG contaminé par des interférences non stationnaires de 50 Hz sur le réseau électrique (filtrage RIF).

Comme on peut le voir, il n’y a pas de signes d’interférence et les segments ST sont maintenant clairement visibles pour l’analyse. Remarquez également comment le filtre (en rouge) a réduit le bruit de mesure, soulignant l’aspect pratique des filtres Savitzky-Golay pour le traitement des signaux biomédicaux.

Un Savitzky-Golay peut être conçu et optimisé dans ASN FilterScript via la fonction savgolay(), comme suit:

ClearH1;  // clear primary filter from cascade

interface L = {2, 50,2,24};
interface P = {2, 10,1,4};

Main()

Hd=savgolay(L,P,"numeric");  // Design Savitzky-Golay lowpass
Num=getnum(Hd);
Den={1};
Gain=getgain(Hd);

Deployment

Ce filtre peut maintenant être déployé dans une variété de domaines via le générateur de code automatique de l’outil, permettant un déploiement rapide dans Matlab, Python et les dispositifs embarqués Arm Cortex-M.

Qu’est-ce qu’un filtre de Tchebychev? Cet article traite des avantages et des inconvénients du filtre de Tchebychev, avec des exemples de code en ASN Filterscript.

Les filtres de Tchebychev de type II ont des bandes passantes plates (sans ondulation), ce qui en fait un bon choix pour les applications de mesure en courant continu et à basse fréquence, comme les capteurs à pont (par exemple les capteurs de charge). Toutefois, cette propriété souhaitable se fait au détriment de bandes de transition plus larges, ce qui se traduit par une faible transition bande passante-bande d’arrêt (roll-off lent). Le type I de Tchebychev a un roll-off plus rapide mais présente une ondulation de bande passante et des caractéristiques de phase de bande passante très non linéaires.

Type I de Tchebychev

Les filtres de Tchebychev de type I sont équiréparables dans la bande passante et monotones dans la bande d’arrêt. En tant que tels, les filtres de type I s’annulent plus rapidement que les filtres de Tchebychev de type II et de Butterworth, mais au prix d’une plus grande ondulation de la bande passante.

Filtre de Tchebychev de type I ; filtre de Tchebychev de type 1

Caractéristiques du filtre

  • Ondulation de la bande passante
  • Bande d’arrêt maximalement plate
  • Décroissance plus rapide que Butterworth et Tchebychev type II
  • Bon compromis entre Elliptique et Butterworth

Type II de Tchebychev

Les filtres de type II de Tchebychev sont monotones dans la bande passante et équirépartissables dans la bande d’arrêt, ce qui en fait un bon choix pour les applications de capteurs à pont. Bien que les filtres conçus à l’aide de la méthode de type II soient plus lents à s’annuler que ceux conçus à l’aide de la méthode de Tchebychev de type I, l’annulation est plus rapide que celle des filtres conçus à l’aide de la méthode de Butterworth.

Type II de Tchebychev 5ème ordre

Caractéristiques du filtre

  • Bande passante maximalement plate
  • Décroissance plus rapide que Butterworth
  • Retombée plus lente que le type I de Tchebychev
  • Bon choix pour les applications de mesure du courant continu

Pour en savoir plus sur les autres filtres IIR, voir Conception de filtres IIR : un guide pratique

Syntaxe des filtres de Tchebychev

Voici un exemple en ASN Filterscript

Syntaxe Tchebychev I

Syntaxe
Hd = cheby1 (Order, Frequencies, Rp, Rs, Type, DFormat)

Description

Conception classique d’un filtre IIR Tchebychev de type I

  • Bande d’arrêt maximalement plate/li>
  • Réduction plus rapide (transition bande passante-bande d’arrêt) que Butterworth.

Tchebychev I, syntaxe Cheby

Hd = cheby1 (Order, Frequencies, Rp, Rs, Type, DFormat)

Order: peut être spécifié jusqu’à 20 (professionnel) et jusqu’à 10 (éducatif) édition. En mettant l’Order à 0, on active l’algorithme de détermination automatique de l’ordre.

Frequencies: les filtres passe-bas et passe-haut ont une bande de transition et, en tant que tels, nécessitent deux fréquences (c’est-à-dire les fréquences de coupure inférieure et supérieure de la bande de transition). Pour les filtres passe-bande et coupe-bande, quatre fréquences sont nécessaires (c’est-à-dire deux bandes de transition). Toutes les fréquences doivent être dans l’ordre croissant et &lt Nyquist (voir l’exemple ci-dessous).

Rp: Ondulation de la bande passante en dB. Il s’agit d’un terme quelque peu inapproprié, car le filtre de Butterworth a une bande passante maximalement plate. Une bonne valeur par défaut est 0.001dB, mais l’augmentation de cette valeur affectera la position de la fréquence de coupure inférieure du filtre.

Rs: Atténuation de la bande d’arrêt en dB. C’est un peu un terme inapproprié, car le filtre Butterworth a une bande d’arrêt maximalement plate, ce qui signifie que l’atténuation de la bande d’arrêt (en supposant que l’ordre correct du filtre est spécifié) sera ≥ la spécification de la bande d’arrêt.

Type: La méthode Butterworth facilite la conception de filtres passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) et coupe-bande (bandstop) respectivement.

Hd: la méthode Butterworth conçoit un filtre Butterworth IIR sur la base des spécifications entrées et place la fonction de transfert (c’est-à-dire le numérateur, le dénominateur, le gain) dans un objet filtre numérique, Hd. L’objet filtre numérique peut ensuite être combiné avec d’autres méthodes si nécessaire. Pour un objet filtre numérique, Hd, l’appel à getnum(Hd), getden(Hd) et getgain(Hd) permettra d’extraire respectivement les coefficients du numérateur, du dénominateur et du gain – voir ci-dessous.

DFormat: permet de spécifier le format d’affichage de l’objet filtre numérique résultant.

symbolic permet d’afficher une représentation symbolique de l’objet filtre. Si l’ordre > 10, l’option d’affichage symbolique sera remplacée par l’option numérique.
numeric Afficher une représentation matricielle de l’objet filtre
void Créer un objet filtre, mais ne pas afficher la sortie

Exemple

ClearH1;  // clear primary filter from cascade
ShowH2DesignMarkers;   // show DM on chart&lt;/code&gt;

Main()

Rp=1.4;
Rs=80;
F={50,120};
Hd=cheby1(0,F,Rp,Rs,&quot;lowpass&quot;,&quot;symbolic&quot;);

F={50,80,100,120};
Hd=cheby1(0,F,Rp,Rs,&quot;bandpass&quot;,&quot;symbolic&quot;);

Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain

Syntaxe Tchebychev II

Syntaxe
Hd = cheby2 (Order, Frequencies, Rp, Rs, Type, DFormat)

Description

Conception classique d’un filtre IIR Tchebychev de type II

  • Bande passante maximalement plate
  • Réduction plus lente (transition entre bande passante et bande d’arrêt) que le filtre de Tchebychev de type I.

Tchebychev II, syntaxe Cheby II

Hd = cheby2 (Order, Frequencies, Rp, Rs, Type, DFormat)

Order: peut être spécifié jusqu’à 20 (professionnel) et jusqu’à 10 (éducatif) édition. En mettant l’ordre à 0, on active l’algorithme de détermination automatique de l’ordre.

Frequencies: les filtres passe-bas et passe-haut ont une bande de transition et, à ce titre, nécessitent deux fréquences (c’est-à-dire les fréquences de coupure inférieure et supérieure de la bande de transition). Pour les filtres passe-bande et coupe-bande, quatre fréquences sont requises (c’est-à-dire deux bandes de transition). Toutes les fréquences doivent être dans l’ordre croissant et &lt Nyquist (voir l’exemple ci-dessous).

Rp: Ondulation de la bande passante en dB. Il s’agit d’un terme quelque peu inapproprié, car le filtre de type II de Tchebychev a une bande passante maximalement plate. Une bonne valeur par défaut est 0.001dB, mais l’augmentation de cette valeur affectera la position de la fréquence de coupure inférieure du filtre.

Rs: Atténuation de la bande d’arrêt en dB.

Type: La méthode Tchebychev de type II facilite la conception des filtres passe-bas (lowpass), passe-haut (highpass), passe-bande (bandpass) et coupe-bande (bandstop) respectivement.

Hd: la méthode cheby2 conçoit un filtre IIR Tchebychev de type II sur la base des spécifications saisies et place la fonction de transfert (c’est-à-dire numérateur, dénominateur, gain) dans un objet filtre numérique, Hd. L’objet filtre numérique peut ensuite être combiné avec d’autres méthodes si nécessaire. Pour un objet filtre numérique, Hd, l’appel à Hd, calling getnum(Hd), getden(Hd) et getgain(Hd) permettra d’extraire respectivement les coefficients du numérateur, du dénominateur et du gain – voir ci-dessous.

DFormat: permet de spécifier le format d’affichage de l’objet filtre numérique résultant.

symbolic Permet d’afficher une représentation symbolique de l’objet filtre. Si l’ordre > 10, l’option d’affichage symbolique sera remplacée par l’option numérique/td>
numeric Afficher une représentation matricielle de l’objet filtre
void Crée un objet filtre, mais n’affiche pas la sortie

Exemples

ClearH1;  // clear primary filter from cascade
ShowH2DesignMarkers;   // show DM on chart

Main()

Rp=1;
Rs=80;
F={50,120};
Hd=cheby2(0,F,Rp,Rs,&quot;lowpass&quot;,&quot;symbolic&quot;);

F={50,80,100,120};
Hd=cheby2(0,F,Rp,Rs,&quot;bandpass&quot;,&quot;symbolic&quot;);

Num = getnum(Hd); // define numerator coefficients
Den = getden(Hd); // define denominator coefficients
Gain = getgain(Hd); // define gain

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