docs: move legacy docs to legacy_docs/

Assisted-by: Delta:zai-glm-5.3
This commit is contained in:
Klagarge committed 2026-10-10 20:28:25 +02:00
1 parent d607e5df4d
commit b78f79e12e
182 files changed

No files matched your search

+158
View File
@@ -0,0 +1,158 @@
<header><h1>
AD/DA
</h1></header>
Il existe 4 méthodes principales pour une conversion Analogique vers Digital:
- Parallèle
- Par pesée
- Par comptage
- Sigma-delta
| | + (Avantage) | - (Inconvénient) |
|-------------------------|------------------------|-----------------------------|
| **Parallèle<br>Unaire** | Simplicité<br>Monotone | Taille du circuit ~$2^{n}$ |
| **Pesée** | Taille du circuit ~$n$ | |
| **Par comptage** | 1 seul switch | Nécessite d'aller très vite |
$$SNR [dB]=6,02\cdot n+1,78$$
$n$ : nombre de bits du convertisseur
$$OSR = \frac{f_{s}}{2f_{0}}$$
$OSR$ : OverSampling Ratio <br>
$f_{s}$ : Sampling Frequency <br>
$f_{0}$ : Entry Fréquency <br>
$$n=\frac{SNR}{20\log_{10}(2\cdot OSR)}$$
$n$ : Ordre du filtre <br>
$SNR$ : Signal sur bruit <br>
$OSR$ : Oversampling ratio <br>
# AD - Parallèle
![AD Parallèle](medias/parallele.png ':size=200')
----------
# AD - Par comptage
Un seul switch mais avec une fréquence de commutation très rapide
$$
V_{a} = \frac{t_{on}}{T}\cdot V_{ref}
$$
![AD par comptage](medias/comptage.png ':size=300')
![Graph AD par comptage](medias/comptage-graph.png ':size=200')
----------
# AD - Par pesée
Un switch par bit.
![AD par pesée](medias/pesee.png ':size=300')
Pour un $V_{red} = 1[V]$ on a:
| z2 | z1 | z0 | Va |
|----|----|----|-------|
| 0 | 0 | 0 | 0,000 |
| 0 | 0 | 1 | 0,125 |
| 0 | 1 | 0 | 0,250 |
| 0 | 1 | 1 | 0,375 |
| 1 | 0 | 0 | 0,500 |
| 1 | 0 | 1 | 0,625 |
| 1 | 1 | 0 | 0,750 |
| 1 | 1 | 1 | 0,875 |
----------
# DA - Échantillonneur avec maintien
# Caractéristique de convertisseurs
## Digits et affichage
$$
nBits = Ceiling\left[log_2\cdot \frac{plage}{pas}\right]
$$
----------
# Sigma / Delta
[sigma-delta.drawio](medias/sigma-delta.drawio ':include :type=code')
## Principe
Un convertisseur analogique-numérique (AD) ou numérique-analogique (DA) delta-sigma se compose toujours d'un modulateur
delta-sigma produisant un "flux binaire" ou "signal binaire séquentiel" et d'un filtre passe-bas.
Le modulateur peut être mis en œuvre comme un circuit numérique pour un signal numérique ou comme un circuit analogique
pour un signal analogique. De même, le filtre passe-bas peut être analogique pour générer un signal de sortie
analogique ou numérique, réalisé soit par un circuit numérique soit par un algorithme dans un processeur de signal.
Cette structure permet d'explorer le flux binaire et le filtre passe-bas avant d'approfondir l'étude du
modulateur delta-sigma.
### Le flux binaire
Le flux binaire peut être interprété comme un signal numérique ou analogique.
Il s'agit d'un signal séquentiel à un bit avec une fréquence d'horloge significativement plus élevée que le débit des
données numériques de l'ADC ou du DAC. Sa caractéristique essentielle est que sa moyenne correspond à la moyenne du
signal d'entrée. Un niveau logique "haut" représente la valeur maximale de sortie, tandis qu'un niveau logique "bas"
représente la valeur minimale de sortie.
- **Sortie analogique :** Le flux binaire est converti par un DA à un bit en un signal analogique.
Les valeurs d'entrée "bas" et "haut" se traduisent respectivement par deux tensions analogiques précises, par exemple,
1V et +1V.
- **Sortie numérique :** Dans le cas d'une sortie numérique, un niveau "haut" (ou "bas") dans le flux binaire représente
la valeur maximale (ou minimale) de la plage de valeurs numériques. Par exemple, dans un système à 8 bits, un niveau
"haut" pourrait correspondre à FF en hexadécimal, tandis qu'un niveau "bas" pourrait correspondre à 00 en hexadécimal.
Un flux binaire similaire existe dans un signal modulé en largeur d‘impulsions (PWM), mais il présente quelques
désavantages par rapport au flux binaire d'un convertisseur delta-sigma, également appelé signal modulé en rapport
d’impulsions (PPM). La transmission en série d'une valeur numérique, telle que la sortie en série d'un ADC conventionnel
par pesée, est quant à elle appelée modulation par codage d'impulsions (PCM).
----------
#
Un convertisseur sigma-delta est un type de convertisseur
analogique-numérique (CAN) qui utilise une boucle de contre-réaction pour
échantillonner et quantifier un signal analogique en un signal numérique.
Le principe de fonctionnement d'un convertisseur sigma-delta peut être
expliqué en plusieurs étapes :
1. Échantillonnage : Tout d'abord, le signal analogique est échantillonné
à une fréquence d'échantillonnage beaucoup plus élevée que la bande
passante du signal. Cette haute fréquence d'échantillonnage permet de
réduire considérablement les effets des distorsions et du bruit dans le
domaine fréquentiel.
2. Quantification : Le signal échantillonné est ensuite quantifié en un
signal numérique à l'aide d'un comparateur qui compare le signal avec une
référence de tension fixe. La sortie du comparateur est une suite de bits
représentant la valeur du signal analogique à chaque instant.
3. Contre-réaction : Le signal quantifié est ensuite utilisé pour régler
un oscillateur numérique qui produit un signal d'erreur. Ce signal
d'erreur est ajouté au signal d'entrée dans la boucle de contre-réaction,
ce qui permet de compenser les erreurs de quantification et de réduire le
bruit dans le signal quantifié.
4. Suréchantillonnage : Le signal numérique produit par le convertisseur
sigma-delta est suréchantillonné à une fréquence beaucoup plus élevée que
la fréquence d'échantillonnage initiale, ce qui permet de réduire encore
davantage les effets du bruit dans le signal.
5. Décimation : Enfin, le signal suréchantillonné est décimé à la
fréquence d'échantillonnage désirée en utilisant un filtre passe-bas
numérique qui élimine les composantes de hautes fréquences indésirables.
Le résultat final est un signal numérique représentant fidèlement le
signal analogique d'origine, avec une faible distorsion et un faible
bruit. La boucle de contre-réaction permet au convertisseur sigma-delta
d'atteindre des performances supérieures à celles des autres types de
convertisseurs analogiques-numérique en termes de résolution et de
précision.
![img.png](medias/snr_by_osr.png)
----------
+339
View File
@@ -0,0 +1,339 @@
<header><h1>
Filtres
</h1></header>
-----------
# Diagramme de Bode
## H0 - Gain statique
$$H_{0}(s)=A$$
![filters-h0.png](medias%2Ffilters-h0.png)
## H1 - Coupe bas, amplis haut
$$H_{1}(s)=\frac{s}{\omega_{0}}$$
![filters-h1.png](medias%2Ffilters-h1.png)
## H2 - Ampli haut, coupe bas
$$H_{2}(s)=\frac{\omega_{0}}{s}$$
![filters-h2.png](medias%2Ffilters-h2.png)
## H3 - Ampli haut
$$H_{3}(s)=\frac{\omega_{0}+1}{\omega_{0}} = 1+ \frac{s}{\omega_{0}}$$
![filters-h3.png](medias%2Ffilters-h3.png)
## H4 - Coupe haut
$$H_{4}(s)=\frac{\omega_{0}}{\omega_{0}+s} = \frac{1}{1+\frac{s}{\omega_{0}}}$$
![filters-h4.png](medias%2Ffilters-h4.png)
## Résonance
![filters-h5-h6.png](medias%2Ffilters-h5-h6.png)
----------
# Filtres numériques
![filters-summary.png](medias%2Ffilters-summary.png)
## Filtres numériques récursifs (IIR)
Les filtres numériques récursifs (IIR) sont des filtres numériques qui utilisent des rétroactions.
Ils sont basés sur des équations aux différences.
Les filtres récursifs sont utilisés pour des applications où la phase du filtre n'est pas critique.
Ils sont utilisés dans les télécommunications et la régulation.
Les intérêts des filtres récursifs :
- Leur faible coût en calcul
- Faible retard (télécommunication et la régulation)
Les inconvénients des filtres récursifs :
- Ils possèdent une phase non-linéaire
- Ils peuvent avoir une instabilité numérique
***Fonction de transfert en $z$ :***
$$F(z) = \frac{Y(z)}{U(z)} = \frac{b_{0}+b_{1}z^{-1}+\dots+b_{n}z^{-n}}{1+a_{1}z^{-1}+\dots+a_{n}z^{-n}}$$
Numérisation par conversion DA et AD d'un filtre analogique :
$$F(z) = (1-z^{-1})Z \left\{ L^{-1}\left[ \frac{F(s)}{s} \right] \right\} $$
La fonction de transfert en *z* permet ensuite de tirer l'équation aux différences qui servira à réaliser le filtre sous forme d'un algorithme récursif
$$y[k]= b_{n}u[k-n]+ \dots + b_{1}u[k-1]+b_{0}u[k]-a_{n}y[k-n]-\dots-a_{1}y[k-1]$$
Si on souhaite connaître la réponse fréquentielle d'un filtre, il suffit de remplacer l'opérateur *z* par sa transformée de Fourier :
$$a\cdot z^{n}=a\cdot \exp(n\cdot s\cdot T_{s})=a\cdot \exp(n\cdot \mathbf{j}\omega T_{s})$$
$T_{s}$ : La période d'échantillonnage
Comme l’exponentielle imaginaire est périodique, la réponse fréquentielle d’un filtre numérique est également périodique
de fréquence, et sa représentation se fait dans le domaine de fréquences allant de $0$ à $fs/2$. <br>
Le gain statique d’un filtre peut être calculé selon :
$$\text{Gain statique d'un filtre} = \lim_{ s \to 0 } F(s) = \lim_{ z \to 1 } F(z)$$
> [!NOTE|label:Passage pôle et zéro s ↔ z]
> $$\begin{align}
z&=\exp(s\cdot T_{s}) \\
s&=\frac{1}{T_{s}\ln(z)}
\end{align}$$
![Filtre numérique passe bas ordre 2 - Réponse impulsionnel](medias/filtre_numerique_passe_bas_2-reponse.png ':size=40%')
![Filtre numérique passe bas ordre 2 - Bode](medias/filtre_numerique_passe_bas_2-bode.png ':size=40%')
### Transformation analogique-numérique
La transformation bilinéaire : transformation de Tustin ou approximation de Padé de premier ordre
$$s = \frac{2}{T_{s}} \frac{z-1}{z+1} \qquad \qquad z = \frac{1+\frac{1}{2}sT_{s}}{1-\frac{1}{2}sT_{s}}$$
***Pour un filtre analogique de premier ordre :***
$$F(s)=\frac{d_{0}+d_{1}s}{c_{0}+c_{1}s} \to F(z) = \frac{b_{1}z^{-1}+b_{0}}{a_{1}z^{-1}+1} $$
$$
a_{1} = \frac{c_{0}-\frac{2c_{1}}{T_{s}}}{c_{0}+\frac{2c_{1}}{T_{s}}}
\qquad \qquad
b_{0} = \frac{d_{0}+\frac{2d_{1}}{T_{s}}}{c_{0}+\frac{2c_{1}}{T_{s}}}
\qquad \qquad
b_{1} = \frac{d_{0}-\frac{2d_{1}}{T_{s}}}{c_{0}+\frac{2c_{1}}{T_{s}}}
$$
***Pour un filtre analogique de second ordre :***
$$F(s)=\frac{Y(s)}{U(s)}=\frac{d_{0}+d_{1}s+d_{2}s^{2}}{c_{0}+c_{1}s+c_{2}s^{2}}
\to F(z) = \frac{Y(z)}{U(z)}=\frac{b_{2}z^{-2}+b_{1}z^{-1}+b_{0}}{a_{2}z^{-2+}a_{1}z^{-1}+1} $$
$$\begin{gather}
C = c_{0}+\frac{2c_{1}}{T_{s}}+\frac{4c_{2}}{T_{s}^{2}} \\
\\
a_{1} = \frac{2\left( c_{0}-\frac{4c_{2}}{T_{s}^{2}} \right)}{C}
\qquad \qquad
a_{2} = \frac{ c_{0}-\frac{2c_{1}}{T_{s}}+\frac{4c_{2}}{T_{s}^{2}} }{C}
\qquad \qquad
b_{0} = \frac{d_{0}+\frac{2d_{1}}{T_{s}}+\frac{4d_{2}}{T_{s}^{2}}}{C} \\
\\
b_{1} = \frac{2\left( d_{0}-\frac{4d_{2}}{T_{s}^{2}} \right)}{C}
\qquad \qquad
b_{2} = \frac{d_{0}-\frac{2d_{1}}{T_{s}}+\frac{4d_{2}}{T_{s}^{2}}}{C}
\end{gather}$$
## Filtre numérique non-récursif (FIR)
Les filtres numériques non-récursifs (FIR) sont des filtres numériques qui n'utilisent pas de rétroactions.
Ils sont basés sur des équations aux différences.
Les filtres non-récursifs sont utilisés pour des applications où la phase du filtre est critique.
Ils sont utilisés dans le traitement du signal et la conception de filtres.
Les intérêts des filtres non-récursifs :
- Les fonctions de transfert ne possèdent que des coefficients $b_i$. ($\forall a_{i} = 0$)
- Ils possèdent une phase linéaire exacte
- Ils sont stables
Les inconvénients des filtres non-récursifs :
- Ils sont plus coûteux en calcul
- Ils nécessitent plus de matériel
Coefficients symétrique: pairs $b_{n-i} = b_{i}$, impairs $b_{n-i} = -b_{i}$, $b_{n/2}=0$ <br>
**Symétrie paire:**
$$H(\mathbf{j}\omega)
= \sum^{n}_{i=o}b_{i}e^{-\frac{\mathbf{j}i\omega}{f_{s}}}
= e^{\frac{-\mathbf{j}n\omega}{2f_{s}}} \sum^{n/2}_{i=0}b_{i}\cos\left[ \frac{\left( i-\frac{n}{2} \right)\omega}{f_{s}} \right]$$
**Symétrie impaire:**
$$H(\mathbf{j}\omega)=\mathbf{j}e^{\frac{-\mathbf{j}n\omega}{2f_{s}}}\sum^{n/2}_{i=0}b_{i}\sin\left( \frac{(i-\frac{n}{2})\omega}{f_{s}} \right)$$
Les filtres FIR à coefficients symétriques ont une phase linéaire.
$$
\text{Symétrie paire : }\varphi(\omega)=-\frac{n\omega}{2f_{s}}
\qquad \qquad
\text{Symétrie impaire : } \varphi(\omega)= -\frac{n\omega}{2f_{s}}+\frac{\pi}{2}
$$
$$\text{Temps de propagation : }t_{gr}=-\frac{d\varphi}{d\omega}=\frac{n}{2f_{s}}=\frac{n}{2}T_{s}$$
Il y a donc 4 types de filtres FIR à phase linéaire : n resp. symétrie paire/impaire
***Fonction de transfert en $z$ :***
$$F(z) = \frac{Y(z)}{U(z)} = b_{0}+b_{1}z^{-1}+\dots+b_{n}z^{-n}$$
***Équation aux différences :***
$$y[k]= b_{n}u[k-n]+ \dots + b_{1}u[k-1]+b_{0}u[k]$$
***Réponse en fréquence :***
$$z=\exp(\mathbf{j}\omega\cdot T_{s})$$
### Filtres FIR à symétrie paire :
$$b_{n-k} = b_{k}$$
Exemple : FIR à symétrie paire d'ordre 6
$$\begin{align}
F(z) &= \frac{Y(z)}{U(z)} \\
&= 1+2z^{-1}+3z^{-2}+4z^{-3}+3z^{-4}+2z^{-5}+z^{-6} \\
&= \frac{z^{6}+2z^{5}+3z^{4}+4z^{3}+3z^{2}+2z^{1}+1}{z^{6}}
\end{align}$$
Les filtres FIR à symétrie paire sont toujours de type passe-bas ou coupe-bande. <br>
Ils possèdent autant de pôles que l'order du filtre. Ces derniers sont à (0,0) sur le cercle unité. <br>
Ils possèdent autant de zéros que l'ordre du filtre. Ces derniers sont sur le cercle unité. <br>
### Filtres FIR à symétrie impaire :
$$b_{n-k} = -b_{k}$$
Exemple : FIR à symétrie impaire d'ordre 6
$$\begin{align}
F(z) &= \frac{Y(z)}{U(z)} \\
&= -1-2z^{-1}-3z^{-2}+0z^{-3}+3z^{-4}+2z^{-5}+z^{-6} \\
&= \frac{z^{6}+2z^{5}+3z^{4}+0z^{3}-3z^{2}-2z^{1}-1}{z^{8}}
\end{align}$$
Les filtres FIR à symétrie paire sont toujours de type passe-haut ou passe-bande. <br>
Ils possèdent autant de pôles que l'ordre du filtre. Ces derniers sont à (0,0) sur le cercle unité. <br>
Ils possèdent autant de zéros que l'ordre du filtre. <br>
## Filtres numériques FIR idéaux
$$\omega_{c_{d}} = 2\pi \frac{f_{c_{a}}}{f_{s}}$$
### Filtre passe-bas idéal
$$H(\mathbf{j}\omega)=\begin{cases}
1 &\text{ si } |\omega| \leq \omega_{c} \\
0 &\text{ si } |\omega| > \omega_{c}
\end{cases} $$
La transformée de Fourier inverse donne la réponse impulsionnelle d’un filtre passe-bas idéal.
$$h[n] = \begin{cases}
\frac{\omega_{c}}{\pi} \frac{\sin((n-N_{s})\omega_{c})}{(n-N_{s})\omega_{c}} &\text{ si } 0\leq n \leq N \\
\\
\frac{\omega_{c}}{\pi} &\text{ si } n=N_{s} \\
\\
0 &\text{ sinon}
\end{cases}$$
On tronque à $N=ordre$ du filtre. $N_{s}=\frac{N}{2}$ <br>
Ces coefficients ne sont rien d’autre que les coefficients de la fonction de transfert en *z* du filtre passe-bas idéal.
### Filtre passe-haut idéal
$$H(\mathbf{j}\omega)=\begin{cases}
0 &\text{ si } |\omega| \leq \omega_{c} \\
1 &\text{ si } |\omega| > \omega_{c}
\end{cases}$$
La transformée de Fourier inverse donne la réponse impulsionnelle d’un filtre passe-bas idéal.
$$h[n] = \begin{cases}
-\frac{\omega_{c}}{\pi} \frac{\sin((n-N_{s})\omega_{c})}{(n-N_{s})\omega_{c}} &\text{ si } 0\leq n \leq N \\
\\
1-\frac{\omega_{c}}{\pi} &\text{ si } n=N_{s} \\
\\
0 &\text{ sinon}
\end{cases}$$
On tronque à $N=ordre$ du filtre. $N_{s}=\frac{N}{2}$ <br>
Ces coefficients ne sont rien d’autre que les coefficients de la fonction de transfert en *z* du filtre passe-haut idéal.
### Filtre passe-bande idéal
$$H(\mathbf{j}\omega)=\begin{cases}
1 &\text{ si } \omega_{c_{1}} \leq \omega \leq \omega_{c_{2}} \\
0 &\text{ si } \omega \leq \omega_{c_{1}} \quad et \quad \omega\geq \omega_{c_{2}}
\end{cases}$$
La transformée de Fourrier inverse donne la réponse impulsionnelle d’un filtre passe-bande idéal.
$$h[n] = \begin{cases}
\frac{\omega_{c_{2}}}{\pi} \frac{\sin((n-N_{s})\omega_{c_{2}})}{(n-N_{s})\omega_{c_{2}}}-\frac{\omega_{c_{1}}}{\pi} \frac{\sin((n-N_{s})\omega_{c_{1}})}{(n-N_{s})\omega_{c_{1}}} &\text{ si } 0\leq n \leq N \\
\\
\frac{\omega_{c_{2}}-\omega_{c_{1}}}{\pi} &\text{ si } n=N_{s}\\
\\
0 &\text{ sinon}
\end{cases}$$
On tronque à $N=ordre$ du filtre. $N_{s}=\frac{N}{2}$ <br>
Ces coefficients ne sont rien d’autre que les coefficients de la fonction de transfert en *z* du filtre passe-bande idéal.
### Filtre coupe-bande idéal
$$H(\mathbf{j}\omega)=\begin{cases}
0 &\text{ si } \omega_{c_{1}} \leq \omega \leq \omega_{c_{2}} \\
1 &\text{ si } \omega \leq \omega_{c_{1}} \quad et \quad \omega\geq \omega_{c_{2}}
\end{cases}$$
La transformée de Fourrier inverse donne la réponse impulsionnelle d’un filtre coupe-bande idéal.
$$h[n] = \begin{cases}
\frac{\omega_{c_{1}}}{\pi} \frac{\sin((n-N_{s})\omega_{c_{1}})}{(n-N_{s})\omega_{c_{1}}}
-\frac{\omega_{c_{2}}}{\pi} \frac{\sin((n-N_{s})\omega_{c_{2}})}{(n-N_{s})\omega_{c_{2}}}
&\text{ si } 0\leq n \leq N \\
\\
1-\frac{\omega_{c_{2}}-\omega_{c_{1}}}{\pi} &\text{ si } n=N_{s}\\
\\
0 &\text{ sinon}
\end{cases}$$
On tronque à $N=ordre$ du filtre. $N_{s}=\frac{N}{2}$ <br>
Ces coefficients ne sont rien d’autre que les coefficients de la fonction de transfert en *z* du filtre coupe-bande idéal.
## Synthèse par fenêtrage
Le point de départ de la synthèse des filtres FIR est donné par la considération des réponses impulsionnelles des filtres idéaux.
Comme celles-ci sont infiniment longues et donc non réalisables, on va se contenter d’une approximation de leurs réponses.
### Méthode de fenêtrage
- **Fenêtre rectangulaire :** $$W[n] = \begin{cases}
1 &\text{ si } 0\leq n \leq N \\
0 &\text{ sinon}
\end{cases}$$
- **Fenêtre triangulaire (Bartlett) :** $$W[n] = \begin{cases}
2 \frac{n}{N} &\text{ si } 0\leq n \leq \frac{N}{2} \\
2-2 \frac{n}{N} &\text{ si } \frac{N}{2}\leq n \leq N \\
0 &\text{ sinon}
\end{cases}$$
- **Fenêtre sinusoïdale (Hann) :** $$W[n] = \begin{cases}
0,5\left( 1-\cos\left( \frac{2\pi n}{N} \right) \right) &\text{ si } 0\leq n\leq N \\
0 &\text{ sinon}
\end{cases}$$
- **Fenêtre de Hamming :** $$W[n] = \begin{cases}
0,54-0,46\cos\left( \frac{2\pi n}{N} \right) &\text{ si } 0\leq n\leq N \\
0 &\text{ sinon}
\end{cases}$$
- **Fenêtre de Blackman :** $$W[n] = \begin{cases}
0,42-0,5\cos\left( \frac{2\pi n}{N} \right)+0,08\cos\left( \frac{4\pi n}{N} \right) &\text{ si } 0\leq n\leq N \\
0 &\text{ sinon}
\end{cases}$$
- **Fenêtre de Kaiser-Bessel :** $$W[n] = \begin{cases}
\frac{I_{0}\left( \beta\sqrt{1-\left( \frac{1-n}{N_{s}} \right)^{2}} \right)}{I_{0}(\beta)} &\text{ si } 0\leq n\leq N \\
0 &\text{ sinon}
\end{cases}$$
$I_{0}$ : Fonction de Bessel modifiée d’ordre 0 <br>
$\beta$ : Paramètre de forme
***Caractéristiques spectrales de quelques fenêtres***
| Fenêtres | Largeur du 1er lobe | Atténuation du 1er lobe [dB] | Décroissance des lobes suivants | Ondulation Rp [dB] | Atténuation max [dB] | Bande de transition<br>[rad/sec]<br>$\Delta\omega$ |
|---------------------|---------------------|------------------------------|---------------------------------|--------------------|----------------------|----------------------------------------------------|
| Rectangulaire | $4\pi/N$ | $-13$ | $20 dB/dec$ | $0,74$ | $21$ | $1,8\pi/N$ |
| Triangulaire | $8\pi/N$ | $-27$ | $40 dB/dec$ | $0$ | $25$ | $6,1\pi/N$ |
| Cosinus | $8\pi/N$ | $-32$ | $60 dB/dec$ | $0,055$ | $44$ | $6,2\pi/N$ |
| Hamming | $8\pi/N$ | $-43$ | $20 dB/dec$ | $0,014$ | $53$ | $6,6\pi/N$ |
| Blackman | $12\pi/N$ | $-58$ | $60 dB/dec$ | $0,0017$ | $74$ | $11\pi/N$ |
| Kaiser $\beta=4,54$ | $7,2\pi/N$ | $-30$ | $20 dB/dec$ | $0,025$ | $50$ | $5,8\pi/N$ |
| Kaiser $\beta=5,66$ | $8,4\pi/N$ | $-42$ | $20 dB/dec$ | $0,009$ | $60$ | $7,2\pi/N$ |
### Comment calculer son filtre
![specification_de_filtre.svg](medias%2Fspecification_de_filtre.svg ':size=50%')
$H(\mathbf{j}\omega)$ : Gain <br>
$\delta_{1}$ : L'erreur de gain tolérable <br>
$\delta_{2}$ : L'erreur d'atténuation tolérable <br>
$\omega_{p}$ : Fréquence de pulsation de passage <br>
$\omega_{a}$ : Fréquence de pulsation d'arrêt <br>
1. En fonction du gabarit, déterminer le type de filtre désiré (`passe-bas`, `passe-haut`, `passe-bande`, `coupe-bande`)
2. Calculer $f_{c} \to \omega_{c}$ et $\Delta f \to \Delta\omega$
$$\begin{gather}
f_{c} = \frac{f_{a}+f_{p}}{2} \qquad & \qquad \Delta f = f_{a}-f_{p} \\
\omega_{c} = 2\pi \frac{f_{c}}{f_{s}} \quad & \quad \Delta\omega = \frac{2\pi\Delta f}{f_{s}}
\end{gather}$$
3. Choisir une fenêtre $W[n]$ satisfaisante du point de vue de l’atténuation et du reste du cahier des charges.(voir tableau ci-dessus)
4. Calculer l'ordre du filtre à l'aide de la bande de transition du filtre choisit. Arrondir au nombre pair supérieur.
5. Calculer la réponse impulsionnelle $h_{f}[n]$ du filtre avec $h[n]*W[n]$
6. Calculer les coefficients $b_{n}$ du filtre avec $h_{f}[n]$
<details>
<summary>Démarche selon les slides</summary>
1. Connaissant le gabarit du filtre désiré, choisir le filtre idéal correspondant
2. Calculer les pulsations caractéristiques se situant au centre des bandes de transitions
3. Rechercher la réponse impulsionnelle $h[n]$ du filtre idéal, si celle-ci n’est pas connue, on peut la calculer par transformation de Fourier inverse
4. Choisir une fenêtre $W[n]$ satisfaisante du point de vue de l’atténuation
5. Connaissant la largeur de la bande de transition , calculer l’ordre du filtre $N$
6. Calculer les coefficients du filtre en multipliant la réponse impulsionnelle par la fenêtre choisie
</details>
----------
+9
View File
@@ -0,0 +1,9 @@
<header>
<h1>Électronique</h1>
</header>
# Convertisseurs
- [AD/DA](/infotro/Eln/ADDA)
- [Signaux et échantillonnage](/infotro/Eln/SignauxEtEchantillonnage)
- [Filtres](/infotro/Eln/Filtres)
- [RF](/infotro/Eln/RF)
+145
View File
@@ -0,0 +1,145 @@
<header><h1>
Radio Fréquence
</h1></header>
----------
# Skin effect
Le courant électrique circule principalement à la surface des conducteurs.
Pour un fil de cuivre rond, la résistance en continue est donnée par la formule suivante:
$$R_{DC} = \rho\frac{l}{\pi r²}$$
avec:
- $R_{DC}$: résistance en continue
- $\rho$: résistivité du cuivre
- $l$: longueur du fil
- $r$: rayon du fil
La résistance en courant alternatif est donnée par la formule suivante:
$$R_{AC} = R_{DC} \frac{r}{2\delta}$$
avec:
- $R_{AC}$: résistance en courant alternatif
- $R_{DC}$: résistance en continue
- $r$: rayon du fil
- $\delta$: profondeur de pénétration du courant
La profondeur de pénétration du courant est donnée par la formule suivante:
$$\delta = \sqrt{\frac{\rho}{\pi f \mu_0}}$$
avec:
- $\delta$: profondeur de pénétration du courant
- $\rho$: résistivité du cuivre
- $f$: fréquence
- $\mu_0$: perméabilité magnétique du vide $= 4\pi 10^{-7} H/m$
On peut en déduire la résistance en courant alternatif:
$$R_{AC} = \frac{l\sqrt{\rho\pi\mu_0}}{2\pi r} \sqrt{f} \qquad \qquad R_{AC(f_{2})} = R_{AC(f_{1})} \cdot \sqrt{ \frac{f_{2}}{f_{1}} }$$
Pour calculer l'inductance et la capacité d'un fil, on peut utiliser les formules suivantes :
$$\begin{align}
L&=\frac{\mu_{0}l}{\pi}acosh\left( \frac{d}{2r} \right) \\
C&=\frac{\pi\epsilon_{0}l}{acosh\left( \frac{d}{2r} \right)}
\end{align}$$
avec :
- $\mu_{0}$: perméabilité magnétique du vide $=4\pi\cdot 10^{-7}\left[ \frac{H}{m} \right]$
- $\epsilon_{0}$: permittivité du vide $=8.854\cdot 10^{-12}\left[ \frac{F}{m} \right]$
# Model à haute fréquence
## Inductance
![rf-inductor.png](medias%2Frf-inductor.png ':size=50%')
<u>Facteur de qualité :</u>
$$Q(f) = \frac{X_{L}(f)}{R(f)} \qquad \qquad R_{AC}(f)= \frac{l\sqrt{ \rho \pi \mu_{0} }}{2\pi r}\sqrt{ f}$$
<u>Réactance & Impédance:</u>
$$X_{L}=\omega L=2\pi fL \qquad \qquad Z_{L}=jX_{L}=j\omega L$$
<u>Résonance :</u> $\omega_{r} ≃\omega_{0}=\frac{1}{\sqrt{ LC }}$ <br>
SRF: Self Resonant Frequency = $\frac{\omega_{r}}{2\pi}$
$$Z_{L,tot} = (j\omega L+R) \mid \mid \frac{1}{j\omega C} =\frac{sL+R}{1+sRC+s^{2}LC}$$
![rf-inductor.png](medias/rf-inductor-graph.png)
# Capacité
![rf-capacitor.png](medias%2Frf-capacitor.png ':size=50%')
<u>Facteur de qualité :</u>
$$Q(f) = \frac{X_{C}(f)}{R} \qquad \qquad \omega_{r} ≃\omega_{0}=\frac{1}{\sqrt{ LC }}$$
<u>Réactance & Impédance:</u>
$$X_{C}=\frac{1}{\omega C} \qquad \qquad Z_{C}=\frac{1}{j\omega C}$$
![rf-capacitor-graph.png](medias/rf-capacitor-graph.png)
# Résistance
![rf-resistor.png](medias%2Frf-resistor.png ':size=35%')
# Transmission line
$$ k = \frac{2\pi}{\lambda} \qquad \qquad \lambda = \frac{c_{mat}}{f} $$
$\Gamma$ (Gamma) : coefficient de réflexion
# Smith Chart
## Ajouter une ligne de réflexion
1. Placer $Z1$
1. Normaliser ($\hat{Z_{1}}=\frac{Z_{1}}{Z_{0}}$)
2. Placer le point au croisement de l'axe réel et imaginaire (Impédance = bleu)
2. Chercher $\Gamma$ (indice de reflexion)
1. Tracer l'angle ("Angle of reflexion coefficient in degrees")
2. Tracer le module (cercle au compas + rapport sur les échelles du bas)
3. Ajouter la ligne selon le sens
- $\circlearrowright$ : toward generator
- $\circlearrowleft$ : toward load
4. Lire les nouvelles valeures
1. Tracer le nouvel angle $\to \angle(\Gamma_{2})$
2. Tracer et lire $\hat{Z_{2}}$ puis $Z_{2}$
![add_line_on_smith_chart.png](medias/add_line_on_smith_chart.png)
# Impedance Matching
$Z_{LD} \to Z_S^*$, sans résistance
- Capacité + inductance
- ligne de transmission + capacité / inductance + ligne de transmission
- ligne de transmission + stub + ligne de transmission
-
![impedance_matching.png](medias%2Fimpedance_matching.png)
## Stub
Pour trouver la longueur du stub :
1. Pour un short stub, placer une inductance parallèle et pour un open stub un condensateur parallèle
2. Trouver la valeur normalisée de cette admittance.
3. Pour un short stub, placer le delta dans les négatifs (parti du dessus) et pour un open stub dans les positifs (partie du dessous).
4. Regarder la longueur d'onde. Partir du côté open circuit pour un open stub et du côté short circuit pour un short stub.
# Filtres
Filter components <br>
![Filters prototype](medias/rf-filters_prototype.png) <br>
![Filters components](medias/rf-filter_components.png)
Normalized value for Butterworth order 1 to 10 <br>
![Normalized value for Butterworth order 1 to 10](medias/rf-normalized_value-butterworth_1_10.png)
Normalized value for Chebyshev 0.5dB Ripple <br>
![Normalize value for Chebyshev 0.5 Ripple](medias/rf-normalized_value_chebyshev_ripple_0_5.png)
Normalized value for Chebyshev 3dB Ripple <br>
![Normalize value for Chebyshev 3 Ripple](medias/rf-normalized_value_chebyshev_ripple_3.png)
## Filtres passe-bas en microstrip
$l$ : longueur physique en mm <br>
$\theta$ : longueur électrique / degré <br>
$$ l_l = g_k * \frac{\lambda_{gl} * Z_0}{2\pi *Z_{0l}} $$
$$ l_c = g_k * \frac{\lambda_{gc} * Z_{0c}}{2\pi *Z_0} $$
$$ \theta_l = g_k * \frac{360 * Z_0}{2\pi *Z_{0l}} $$
$$ \theta_c = g_k * \frac{360* Z_{0c}}{2\pi *Z_0} $$
![rf-kuroda_identities.png](medias%2Frf-kuroda_identities.png)
@@ -0,0 +1,256 @@
<header><h1>
Signaux et échantillonnage
</h1></header>
-----------
# Fourier
Pour comprendre les signaux, il est important de comprendre la transformée de Fourier.
La transformée de Fourier est une technique de traitement du signal utilisée pour analyser et manipuler les signaux continus.
Elle permet d'exprimer un signal dans le temps en domaine fréquentiel.
## Transformée de Fourier
La transformée de Fourier est une technique de traitement du signal utilisée pour analyser et manipuler les signaux continus.
Elle permet d'exprimer un signal dans le temps en domaine fréquentiel.
La transformée de Fourier est définie par la formule suivante :
Soit $f(x)$ une fonction non périodique définie sur $\mathbb{R}$.
$$\begin{align}
\text{Transformée de Fourier de }f(x) &: \qquad \widehat{f}(\omega) = \int^{\infty}_{-\infty}f(x)e^{-\mathbf{i}\omega x}dx \qquad (\omega\in \mathbb{R})\\
\text{Intégrale de Fourier de } f(x) &: \qquad \frac{1}{2\pi}\int_{-\infty}^{\infty} \widehat{f}(\omega) e^{\mathbf{i}x\omega}\, d\omega \qquad(x \in\mathbb{R}).
\end{align}$$
**Théorème** : Si $\int_{-\infty}^{\infty} |f(x) \, dx < \infty$ et si $f$ est une fonction de variation bornée sur tout $\mathbb{R}$, alors
$$
\frac{1}{2\pi}\int_{-\infty}^{\infty} \widehat{f}(\omega)e^{\mathbf{i}x\omega} \, d\omega = \begin{cases}
f(x) &\text{si }f \text{ est continue au point }x \\
\text{milieu du saut de } f(x) &\text{si }f \text{ a un saut en }x
\end{cases}
$$
## Transformée de Fourier discrète
La transformée de Fourier discrète (DFT - Discret Fourier Transform) est une transformation discrète utilisée pour analyser le spectre fréquentiel
d'un signal discret.
Elle est l'équivalent discret de la transformée de Fourier, qui est utilisée pour analyser les signaux continus.
On pose: $\Omega := \omega \cdot T_{s}$
La transformation de Fourier de $x[k]$ est donnée par la formule suivante :
$$\mathcal{F}\{x[k]\} = X(\Omega) \quad := \quad\sum^{+\infty}_{k=-\infty}x[k]\cdot e^{-jk\Omega}= \mathcal{F}\{x_{s}(t)\}$$
$$\mathcal{F\{x[k]\} = \mathcal{Z}\{x[k]\}}|_{z=e^{j\Omega}}$$
![fourier_cerlce_unitaire.svg](medias/fourier_cerlce_unitaire.svg)
$$x[k]=\frac{1}{2\pi} \int^{+\pi}_{-\pi}X(\Omega)e^{jk\Omega} d\Omega$$
La DFT est utilisée dans de nombreux domaines, notamment en traitement du signal, en télécommunications, en traitement d'images
et en compression de données.
> [!NOTE|label:FFT]
> La transformée de Fourier rapide (FFT) est un algorithme efficace pour calculer la DFT. Elle est largement utilisée dans
> de nombreuses applications, notamment en traitement du signal et en compression de données.
----------
# Réponse impulsionnelle
La réponse impulsionnelle $h[k]$ d'un système discret LIT est sa réponse à l'impulsion unitaire à l'origine $δ[k]$.
![Réponse impulsionelle - Continu/discret](medias/reponse_impulsionelle-continue_discret.png)
Avant l'impulsion, la réponse impulsionnelle $h$ est nulle.
Après l'impulsion, la réponse impulsionnelle $h$ est la réponse du système à l'impulsion unitaire à l'origine.
*Causal* = le futur n'a pas d'influence sur le passé.
$$ h[k] = \mathcal{H} \{ δ[k] \} $$
$\mathcal{H}$ : Heaviside (peut aussi se noter $\varepsilon$ pour un heaviside en discret) <br>
$y[k]$ : réponse du système <br>
$x[k]$ : signal d'entrée <br>
$h[k]$ : réponse impulsionnelle <br>
$$
\forall x \in \mathbb{R}, \mathcal{H}(x)=\begin{cases}
0 &\text{ si } x<0 \\
1 &\text{ si } x \geq 0
\end{cases}
$$
Pour un système causal
$$\begin{align}
y[k] &= \sum^{k}_{n=-\infty}(x[n]\cdot h[k-n]) \\
\\
y[k] &= \sum^{+\infty}_{n=0}(x[k-n]\cdot h[n])
\end{align}$$
La réponse impulsionnelle caractérise <u>ENTIÈREMENT</u> un système LIT.
## Système LIT stable
Un système LIT (Linéaire et Invariant dans le Temps) est stable si et seulement si sa réponse impulsionnelle est sommable.
> [!NOTE]
> $\sum^{+\infty}_{k=-\infty}|h[k]|<+\infty$
## Système LIT causal à réponse impulsionnelle finie
Un système LIT (Linéaire et Invariant dans le Temps) est causal à réponse impulsionnelle finie si et seulement si sa
réponse impulsionnelle est nulle pour $k<0$ et sommable pour $k\geq0$.
> [!NOTE]
> fini: $h(k) |_{k<\infty} = 0$
$$\begin{align}
y[k] &= \sum^{N}_{n=0}x[k-n]\cdot h[n] \\
&= b_{0}x[k]+b_{1}x[k-1]+\dots+b_{N}x[k-N]
\end{align}$$
$N$ : Limite de notre réponse impulsionnelle.
![schema_bloc_fir.png](medias/schema_bloc_fir.svg ':size=75%')
En faisant la somme, la réponse impulsionnelle se transforme en facteurs $(b_0, b_1, b_2, ..., b_n)$.
On peut retrouver la réponse impulsionnelle à partir de ces facteurs.
La somme décomposée est appelée *équation aux différences*.
Pour obtenir la réponse indicielle depuis la réponse impulsionnelle, on utilise la somme cumulée de la réponse impulsionnelle.
On peut aussi mathématiquement obtenir la réponse impulsionnelle en multipliant la réponse indicielle par Heaviside ($F(z)\cdot \varepsilon(z)$).
----------
# Transformée en Z
La transformée en Z, également connue sous le nom de transformée en fréquence Z, est une technique de traitement du
signal utilisée pour analyser et manipuler les signaux numériques.
Elle permet de décomposer un signal en fonction de la fréquence et de fournir des informations sur la nature du signal.
La principale différence entre la transformée en Z et la transformation de Laplace (ou S) est que la transformée en Z
est adaptée aux signaux discrets, c'est-à-dire aux valeurs qui ne varient pas continuellement dans le temps.
En revanche, la transformation de Laplace est utilisée pour les signaux continus et permet d'étudier leur réponse en
fréquence et en phase.
En résumé, la transformée en Z est conçue pour les signaux discrets et les systèmes numériques, tandis que la
transformation de Laplace s'applique aux signaux continus et aux systèmes analogiques.
[Tableau des transformées en Z](/infotro/Eln/Ztransform)
> [!NOTE|label:S]
> Domaine fréquentiel continue avec Laplace.
> [!NOTE|label:Z]
> Domaine fréquentiel discret.
Avec $z:=e^{sT_{s}}$ on a
$$\mathcal{Z}\{x[k]\} = X(z) \quad := \quad \sum^{+\infty}_{k=-\infty}(x[k]\cdot z^{-k})=\mathcal{L\{x_{s}(t)\}}$$
qui est la transformée en Z de $x[k]$.<br>
$T_{s}$ : Période d'échantillonnage. <br>
$x[k]$ : Fonction du [Tableau des transformées en Z](/infotro/Eln/Ztransform) ou valeur du graphe des réponses impulsionnelle<br>
On a aussi la propriété suivante :
$$\mathcal{Z}\{x[k-n]\}=z^{-n}\cdot X(z)$$
## Marche à suivre - Transformée en *Z*
1. Avoir une équation aux différences.
2. Pour chaque terme de l'équation, appliquer la transformée en Z.
Avec :
- $f[k] => F(z)$
- $f[k-n] => z^{-n}\cdot F(z)$
3. Isoler $Y(z)$.
4. $H(z) = \frac{Y(z)}{X(z)}$ est la fonction de transfert.
> [!NOTE|label:Example]
> L'équation aux différences est donnée par $$\tag{1} y[k] = \frac{1}{2}(x[k]+y[k-1])$$
> devient
> $$\begin{align}
\tag{2} Y(z) &= \frac{1}{2}(X(z)+z^{-1}\cdot Y(z)) \\
Y(z)-\frac{1}{2}\cdot z^{-1}\cdot Y(z) &= \frac{1}{2}\cdot X(z) \\
\tag{3} Y(z) &= \frac{1}{2-z^{-1}}X(z) \\
\tag{4} H(z) &= \frac{Y(z)}{X(z)} = \frac{1}{2-z^{-1}}
\end{align}$$
> [!TIP]
> $h[k]\stackrel{\text{Z tabel}}{\longleftrightarrow}H(z)$
>
> Exemple: $h[k] = 2^{-(k+1)}$ devient
> $$\begin{align}
2^{-(k+1)} &= 2^{-k}\cdot 2^{-1} = \frac{1}{2}\cdot 2^{-k} = \frac{1}{2}\cdot (2^{-1})^k \\
&\to \frac{1}{2}\cdot \frac{z}{z-\frac{1}{2}} =\frac{z}{2z-1} = \frac{1}{2-\frac{1}{z}} = \frac{1}{2-z^{-1}}
\end{align}$$
> [!WARNING]
> Les propriétés de la transformée en Z se trouvent dans le [Tableau des transformées en Z](/infotro/Eln/Ztransform)
L'équation aux différences
$$y[k] + a_{1}y[k-1]+\dots+a_{M}y[k-M] \quad = \quad b_{0}x[k]+b_{1}x[k-1]+\dots+b_{N}x[k-N]$$
devient par la transformation en z
$$H(z) = \frac{Y(z)}{X(z)} = \frac{b_{0}+b_{1}z^{-1}+\dots+b_{N}z^{-1}}{1+a_{1}z^{-1}+\dots+a_{M}z^{-M}} \quad a_{m}, b_{n} \space \text{réels}$$
Les zéros et les pôles de la fonction de transfert donnent donc :
$$H(z) = K \frac{(z-o_{1})\cdot (z-o_{2})\cdot \space \dots \space \cdot (z-o_{N})}{(z-p_{1})\cdot (z-p_{2})\cdot \space \dots \space \cdot (z-p_{M}) }\quad o_{n}, p_{n} \space \text{complexes}$$
## Marche à suivre - Transformée en *Z* inverse
1. Avoir une fonction de transfert : $H(z) = \frac{Y(z)}{X(z)}$.
2. Effectuer le numérateur et le dénominateur.
3. Mettre les $z$ en puissance négative : $\cdot \frac{z^{-1}}{z^{-1}}$
4. Effectuer le produit en croix.
5. Pour chaque terme, appliquer la transformée en Z inverse.
- $F(z) \implies f[k]$
- $F(z)\cdot z^{-n} \implies f[k-n]$
6. Isoler $y[k]$. Et on a notre équation aux différences.
----------
# Approximation bilinéaire
L'approximation bilinéaire est une technique utilisée pour convertir une fonction de transfert continue en une fonction
de transfert discrète.
Elle est utilisée dans le domaine du traitement du signal pour convertir un système continu en un système discret.
Développement en série de la fonction $ln$ autour de 1 ($x=0$) :
$$\ln\left( \frac{1+x}{1-x} \right) = 2\left(x + \frac{x^{3}}{3} + \frac{x^{5}}{5} + \dots \right)$$
donne l'approximation
$\ln\left( \frac{1+x}{1-x} \right) \approx 2x$
## Approximation bilinéaire - Pôles et zéros
$$p_{di} = e^{p_{ai} \cdot T} \qquad z_{di} = e^{z_{ai} \cdot T} $$
- $k_a$, $p_{ai}$ and $z_{ai}$ sont le gain, les pôles et les zéros de notre filtre analogique
Attention, $k_a$ n'est pas le gain DC
- $k_d$, $p_{di}$ and $z_{di}$ sont le gain, des pôles et les zéros de notre filtre numérique.
Pour un filtre passe bas sans zéros, le gain numérique est:
$$k_{d} = k_{a}\cdot \prod_{i} \frac{1-e^{P_{ai}\cdot T}}{P_{ai}}$$
On peut appliquer la transformation bilinéaire aux pôles et zéros du filtre analogique pour obtenir les pôles et zéros du filtre numérique.
$$
p_{di} = \frac{1+p_{ai}\cdot \frac{T}{2}}{1-p_{ai}\cdot \frac{T}{2}}
\qquad \qquad
z_{di} = \frac{1+z_{ai}\cdot \frac{T}{2}}{1-z_{ai}\cdot \frac{T}{2}}
$$
Pour un filtre passe bas, le gain "bilinear" est :
$$k_{d} = k_{a}\cdot \frac{1}{\prod_{i}\left( \frac{2}{T}-p_{ai} \right)}$$
Pour passer de $\omega_o'$ à $\omega_o$ et vice-versa, on utilise la relation suivante :
$$\begin{align}
\omega_{0} &= 2f_{s}\tan\left( \frac{\omega_{0}'}{2f_{s}} \right) \\
\\
\omega_{0}'&=2f_{S}\cdot \arctan\left( \frac{\omega_{0}}{2fs} \right)
\end{align}$$
## Autres méthodes d'approximation d'un système continu LIT par un syst. discret
On détermine la réponse impulsionnelle du système discret LIT à partir de celle du système continu en appliquant la relation :
$$h[k] = T_{s}\cdot(kT_{s})$$
$h(kT_s)$ : Réponse impulsionnelle en continu <br>
On peut du coup approximer l'équation différentielle par une équation aux différences.
Par exemple pour la dérivée première de $x(t)$, on a
$$x'[k]= \frac{x[k]-x[k-1]}{T_{s}}$$
----------
+30
View File
@@ -0,0 +1,30 @@
<header><h1>
Tableau des transformées en Z
</h1></header>
-----------
$$f[k] =\varepsilon[x]=\begin{cases}
1^{x} &\text{ si } x\geq 0 \\
0 &\text{ si } x<0
\end{cases} \qquad \forall x=k,k-n
$$
$\varepsilon$ : fonction de Heaviside en discret
----------
| Nr. | $f[k]$ | $F(z)$ | $f(t)$ | $F(s)$ |
|------|-------------------|----------------------------------------|-------------|--------------------|
| 1 | $\delta_{k}, 0^k$ | 1 | $\delta(t)$ | 1 |
| 2 | $1^k$ | $\frac{z}{z-1}$ | $1$ | $\frac{1}{s}$ |
| 3 | $kT$ | $\frac{Tz}{z-1}^{2}$ | $t$ | $\frac{1}{s^{2}}$ |
| 4 | $(kT)^{2}$ | $\frac{T^{2}z(z+1)}{(z-1)^{3}}$ | $t^{2}$ | $\frac{2!}{s^{3}}$ |
| 5 | $(kT)^{3}$ | $\frac{T^{3}z(z^{2}+4z+1)}{(z-1)^{4}}$ | $t^{3}$ | $\frac{3!}{s^{4}}$ |
| 6 | $e^{akT}$ | $\frac{z}{z-e^{aT}}$ | $e^{at}$ | $\frac{1}{s-a}$ |
![ztabelle01.png](ztabelle01.png)
![ztabelle02.png](ztabelle02.png)
![ztabelle03.png](ztabelle03.png)
Dans la théorie Eln la partie transformée en Z commence à la slide 23 de "Eln2_LTI_0910_f.pdf".
@@ -0,0 +1,133 @@
<header><h1>
Lab 06 - Filters
</h1></header>
----------
In this laboratory on digital filters, the main objective is to understand how digital filters work.
We will use MATLAB to simulate and implement these filters on a digital signal processor (DSP).
# Analog filter design
We must design Butterworth low-pass filter that cuts at 1kHz as shown with the following equation :
$$F(s) = \frac{1}{\frac{s^{2}}{\omega_c^{2}} + s\cdot\frac{1.414}{\omega_c} + 1} $$
In according to the sample theory, we have to choose at least 2 times the maximum frequency of the signal.
In this case, the maximum frequency is 1 kHz, so we have to choose a sample frequency at least at 2 kHz.
We take 10 time $f_c$ for the sample frequency, so we choose 20 kHz.
## Transfer function
For calculate the transfer function, we have to calculate the poles and zeros of the filter.
$$p_{di} = e^{p_{ai} \cdot T} \qquad z_{di} = e^{z_{ai} \cdot T} $$
- $k_a$, $p_{ai}$ and $z_{ai}$ are the gain, poles and zeros of the analog filter that the representation *zpk*.
Be careful, $k_a$ is not the DC gain.
- $k_d$, $p_{di}$ and $z_{di}$ are the gain, poles and zeros of the digital filter.
For a low pass filter without zeros, the "digital" gain is :
$$k_{d} = k_{a}\cdot \prod_{i} \frac{1-e^{P_{ai}\cdot T}}{P_{ai}}$$
We can apply the bilinear transformation to the poles and zeros of the analog filter to obtain the poles and zeros of the digital filter.
$$
p_{di} = \frac{1+p_{ai}\cdot \frac{T}{2}}{1-p_{ai}\cdot \frac{T}{2}}
\qquad \qquad
z_{di} = \frac{1+z_{ai}\cdot \frac{T}{2}}{1-z_{ai}\cdot \frac{T}{2}}
$$
And for the low pass filter, the "bilinear" gain is :
$$k_{d} = k_{a}\cdot \frac{1}{\prod_{i}\left( \frac{2}{T}-p_{ai} \right)}$$
On the following diagram, we can see the bode diagram of the analog, digital filter and the filter with the bilinear transformation.
![bode_design_filter.svg](bode_design_filter.svg)
# IIR filter design
We must design an IIR filter with the following specifications :
- $H_0 = 0 [dB]$
- $H_1 = -3 [dB]$
- $H_2 = -40 [dB]$
- $f_{pass} = 7 [kHz]$
- $f_{stop} = 9 [kHz]$
- $f_s = 48 [kHz]$
We first calculate the analog filter for search the order with the function *ellipord*.
Then, we calculate the poles and zeros with the function *ellip*.
We apply the bilinear transformation to the poles and zeros to obtain the poles and zeros of the digital filter.
Finally, we can plot the bode diagram of the digital filter and the filter with the bilinear transformation.
![iir_filter.svg](iir_filter.svg)
# DSP implementation
We will implement the previously designed digital filter using a C program that will run in real-time on a fixed-point DSP.
We will employ a cascade structure, consisting of 2 second-order stages.
We will use the TMS320C6211 DSK from Texas Instruments.
The following equation represent an universal transfer function of a second-order filter :
$$H(z) = \frac{b_{0}+b_{1}\cdot z^{-1}+b_{2}\cdot z^{-2}}{a_{0}+a_{1}\cdot z^{-1}+a_{2}\cdot z^{-2}}$$
The following figure depicts the block diagram of this implementation in the case where a0 = 1
This structure is commonly referred to as "Direct Form I." It requires the storage of past values of both the input and output.
![direct_form_1.png](direct_form_1.svg)
So we have the difference equation :
$$y(n) = b_{0}\cdot x(n)+b_{1}\cdot x(n-1)+b_{2}\cdot x(n-2)-a_{1}\cdot y(n-1)-a_{2}\cdot y(n-2)$$
It exists a second structure called "Direct Form II" which is more efficient in terms of computation and memory usage.
![direct_form_2.png](direct_form_2.svg)
The difference equation is :
$$\begin{align}
y(n) &= tmp\cdot b_{0}+w[0]\cdot b_{1}+w[1]\cdot b_{2} \\
\\
tmp &= x(n)-a_{1}\cdot w[0]-a_{2}\cdot w[1] \\
\\
w[0] &= tmp_{prev} \\
\\
w[1] &= w[0]_{prev}
\end{align}$$
The variables can be translated into code by shifting the coefficients 14 positions to the left to enhance precision
after the decimal point, as the DSP only works with integers.
Structures for the coefficients and the state variables are defined as follows :
```c
typedef struct {
short b0;
short b1;
short b2;
short a0;
short a1;
short a2;
} coeff_sec_order;
short w3[2];
short w4[2];
coeff_sec_order stage1 = { 469, 349, 469, 16384, -23699, 10692};
coeff_sec_order stage2 = {16384, -11187, 16384, 16384, -19657, 14890};
```
The following code is the implementation of the Direct Form II function :
```c
void iir_sec_order_dir_s(coeff_sec_order Coeff, short*w, short* Input, short* Output) {
register short tmp;
tmp = (long)* Input - (( (Long)Coeff.a1 * (long)w[0]) >> SHIFT) - (( (long)Coeff.a2 * (long)w[1]) >> SHIFT);
*Output = (( (long)Coeff.b0 * (long)tmp >> SHIFT) + (( (long)Coeff.b1 * (long)w[0]) >> SHIFT) + (( (long)Coeff.b2 * (long)w[1]) >> SHIFT);
w[1] = w[0];
w[0] = tmp;
}
```
For a better effect of the filter, the function can be called several times.
File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 78 KiB

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="840px" height="286px" viewBox="-0.5 -0.5 840 286" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2024-02-03T22:03:26.442Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0&quot; etag=&quot;Da41eLOf3AT8AQXfy7Nj&quot; version=&quot;22.1.22&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;CkdF-7UHB_tb0CRjxC_V&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=Architects+Daughter:wght@400;500);&#xa;</style><style xmlns="http://www.w3.org/1999/xhtml" id="MJX-SVG-styles">&#xa;mjx-container[jax="SVG"] {&#xa; direction: ltr;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg {&#xa; overflow: visible;&#xa; min-height: 1px;&#xa; min-width: 1px;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg a {&#xa; fill: blue;&#xa; stroke: blue;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][display="true"] {&#xa; display: block;&#xa; text-align: center;&#xa; margin: 1em 0;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][display="true"][width="full"] {&#xa; display: flex;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][justify="left"] {&#xa; text-align: left;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][justify="right"] {&#xa; text-align: right;&#xa;}&#xa;&#xa;g[data-mml-node="merror"] &gt; g {&#xa; fill: red;&#xa; stroke: red;&#xa;}&#xa;&#xa;g[data-mml-node="merror"] &gt; rect[data-background] {&#xa; fill: yellow;&#xa; stroke: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; line[data-line], svg[data-table] &gt; g &gt; line[data-line] {&#xa; stroke-width: 70px;&#xa; fill: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; rect[data-frame], svg[data-table] &gt; g &gt; rect[data-frame] {&#xa; stroke-width: 70px;&#xa; fill: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; .mjx-dashed, svg[data-table] &gt; g &gt; .mjx-dashed {&#xa; stroke-dasharray: 140;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; .mjx-dotted, svg[data-table] &gt; g &gt; .mjx-dotted {&#xa; stroke-linecap: round;&#xa; stroke-dasharray: 0,140;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; g &gt; svg {&#xa; overflow: visible;&#xa;}&#xa;&#xa;[jax="SVG"] mjx-tool {&#xa; display: inline-block;&#xa; position: relative;&#xa; width: 0;&#xa; height: 0;&#xa;}&#xa;&#xa;[jax="SVG"] mjx-tool &gt; mjx-tip {&#xa; position: absolute;&#xa; top: 0;&#xa; left: 0;&#xa;}&#xa;&#xa;mjx-tool &gt; mjx-tip {&#xa; display: inline-block;&#xa; padding: .2em;&#xa; border: 1px solid #888;&#xa; font-size: 70%;&#xa; background-color: #F8F8F8;&#xa; color: black;&#xa; box-shadow: 2px 2px 5px #AAAAAA;&#xa;}&#xa;&#xa;g[data-mml-node="maction"][data-toggle] {&#xa; cursor: pLine truncated

After

Width:  |  Height:  |  Size: 82 KiB

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="520px" height="366px" viewBox="-0.5 -0.5 520 366" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2024-02-03T22:16:47.416Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0&quot; etag=&quot;gL6vpL3MQfkpyT-y1ADy&quot; version=&quot;22.1.22&quot;&gt;&lt;diagram name=&quot;Page-1&quot; id=&quot;CkdF-7UHB_tb0CRjxC_V&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><style type="text/css">@import url(https://fonts.googleapis.com/css2?family=Architects+Daughter:wght@400;500);&#xa;</style><style xmlns="http://www.w3.org/1999/xhtml" id="MJX-SVG-styles">&#xa;mjx-container[jax="SVG"] {&#xa; direction: ltr;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg {&#xa; overflow: visible;&#xa; min-height: 1px;&#xa; min-width: 1px;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg a {&#xa; fill: blue;&#xa; stroke: blue;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][display="true"] {&#xa; display: block;&#xa; text-align: center;&#xa; margin: 1em 0;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][display="true"][width="full"] {&#xa; display: flex;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][justify="left"] {&#xa; text-align: left;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][justify="right"] {&#xa; text-align: right;&#xa;}&#xa;&#xa;g[data-mml-node="merror"] &gt; g {&#xa; fill: red;&#xa; stroke: red;&#xa;}&#xa;&#xa;g[data-mml-node="merror"] &gt; rect[data-background] {&#xa; fill: yellow;&#xa; stroke: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; line[data-line], svg[data-table] &gt; g &gt; line[data-line] {&#xa; stroke-width: 70px;&#xa; fill: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; rect[data-frame], svg[data-table] &gt; g &gt; rect[data-frame] {&#xa; stroke-width: 70px;&#xa; fill: none;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; .mjx-dashed, svg[data-table] &gt; g &gt; .mjx-dashed {&#xa; stroke-dasharray: 140;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; .mjx-dotted, svg[data-table] &gt; g &gt; .mjx-dotted {&#xa; stroke-linecap: round;&#xa; stroke-dasharray: 0,140;&#xa;}&#xa;&#xa;g[data-mml-node="mtable"] &gt; g &gt; svg {&#xa; overflow: visible;&#xa;}&#xa;&#xa;[jax="SVG"] mjx-tool {&#xa; display: inline-block;&#xa; position: relative;&#xa; width: 0;&#xa; height: 0;&#xa;}&#xa;&#xa;[jax="SVG"] mjx-tool &gt; mjx-tip {&#xa; position: absolute;&#xa; top: 0;&#xa; left: 0;&#xa;}&#xa;&#xa;mjx-tool &gt; mjx-tip {&#xa; display: inline-block;&#xa; padding: .2em;&#xa; border: 1px solid #888;&#xa; font-size: 70%;&#xa; background-color: #F8F8F8;&#xa; color: black;&#xa; box-shadow: 2px 2px 5px #AAAAAA;&#xa;}&#xa;&#xa;g[data-mml-node="maction"][data-toggle] {&#xa; cursor: pLine truncated

After

Width:  |  Height:  |  Size: 79 KiB

File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 72 KiB

Whitespace-only changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file with editors other than draw.io -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="289px" height="262px" viewBox="-0.5 -0.5 289 262" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2024-02-02T17:56:41.416Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0&quot; etag=&quot;i95P2xGId2tSeVqMwiar&quot; version=&quot;23.1.1&quot; scale=&quot;1&quot; border=&quot;0&quot;&gt;&#xA; &lt;diagram name=&quot;Page-1&quot; id=&quot;ASSYr2psEjrnozlwjsYB&quot;&gt;&#xA; &lt;mxGraphModel dx=&quot;1050&quot; dy=&quot;626&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;1&quot; shadow=&quot;0&quot;&gt;&#xA; &lt;root&gt;&#xA; &lt;mxCell id=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-1&quot; value=&quot;&quot; style=&quot;ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;360&quot; y=&quot;280&quot; width=&quot;160&quot; height=&quot;160&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-2&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;strokeColor=#808080;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;439.5&quot; y=&quot;480&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;mxPoint x=&quot;440&quot; y=&quot;240&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-3&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;strokeColor=#808080;&quot; edge=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#xA; &lt;mxPoint x=&quot;320&quot; y=&quot;360&quot; as=&quot;sourcePoint&quot; /&gt;&#xA; &lt;mxPoint x=&quot;560&quot; y=&quot;360&quot; as=&quot;targetPoint&quot; /&gt;&#xA; &lt;/mxGeometry&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-4&quot; value=&quot;1&quot; style=&quot;text;strokeColor=none;fillColor=none;html=1;fontSize=20;fontStyle=1;verticalAlign=bottom;align=left;fontColor=#808080;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;520&quot; y=&quot;320&quot; width=&quot;40&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-5&quot; value=&quot;1&quot; style=&quot;text;strokeColor=none;fillColor=none;html=1;fontSize=20;fontStyle=1;verticalAlign=bottom;align=left;fontColor=#808080;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;440&quot; y=&quot;240&quot; width=&quot;40&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-7&quot; value=&quot;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;Z&amp;lt;/div&amp;gt;&quot; style=&quot;text;strokeColor=#808080;fillColor=none;html=1;fontSize=20;fontStyle=1;verticalAlign=middle;align=center;fontColor=#808080;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;530&quot; y=&quot;240&quot; width=&quot;30&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;mxCell id=&quot;hvOSe9N11qCTzQnM01ZF-8&quot; value=&quot;$$\mathcal{Z} = e^{\mathbf{j}\omega}$$&quot; style=&quot;text;strokeColor=none;fillColor=none;fontSize=20;fontStyle=1;verticalAlign=middle;align=center;fontColor=#808080;html=1;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#xA; &lt;mxGeometry x=&quot;280&quot; y=&quot;240&quot; width=&quot;120&quot; height=&quot;40&quot; as=&quot;geometry&quot; /&gt;&#xA; &lt;/mxCell&gt;&#xA; &lt;/root&gt;&#xA; &lt;/mxGraphModel&gt;&#xA; &lt;/diagram&gt;&#xA;&lt;/mxfile&gt;&#xA;"><defs><style xmlns="http://www.w3.org/1999/xhtml" id="MJX-SVG-styles">&#xa;mjx-container[jax="SVG"] {&#xa; direction: ltr;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg {&#xa; overflow: visible;&#xa; min-height: 1px;&#xa; min-width: 1px;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"] &gt; svg a {&#xa; fill: blue;&#xa; stroke: blue;&#xa;}&#xa;&#xa;mjx-container[jax="SVG"][display="true"] {&#xa; display: block;&#xa; text-align: center;&#xa; margin: 1em 0;&#xa;}&#xa;&#xa;Line truncated

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@@ -0,0 +1,606 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
style=""
version="1.1"
width="1220px"
height="361px"
viewBox="-0.5 -0.5 1220 361"
content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2024-02-02T14:30:19.773Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:122.0) Gecko/20100101 Firefox/122.0&quot; etag=&quot;Fj5xVG2gLKINAW_kfnPL&quot; version=&quot;23.0.0&quot; scale=&quot;1&quot; border=&quot;0&quot;&gt;&#10; &lt;diagram name=&quot;Page-1&quot; id=&quot;iDfkVSNYGaoFjq7dBcwx&quot;&gt;&#10; &lt;mxGraphModel dx=&quot;1500&quot; dy=&quot;894&quot; grid=&quot;1&quot; gridSize=&quot;10&quot; guides=&quot;1&quot; tooltips=&quot;1&quot; connect=&quot;1&quot; arrows=&quot;1&quot; fold=&quot;1&quot; page=&quot;1&quot; pageScale=&quot;1&quot; pageWidth=&quot;827&quot; pageHeight=&quot;1169&quot; math=&quot;0&quot; shadow=&quot;0&quot;&gt;&#10; &lt;root&gt;&#10; &lt;mxCell id=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;1&quot; parent=&quot;0&quot; /&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-3&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;strokeColor=#808080;strokeWidth=4;entryX=0;entryY=0.5;entryDx=0;entryDy=0;&quot; edge=&quot;1&quot; parent=&quot;1&quot; target=&quot;Gu1WY5u3SJpsm1HDf4T9-4&quot;&gt;&#10; &lt;mxGeometry width=&quot;50&quot; height=&quot;50&quot; relative=&quot;1&quot; as=&quot;geometry&quot;&gt;&#10; &lt;mxPoint x=&quot;80&quot; y=&quot;320&quot; as=&quot;sourcePoint&quot; /&gt;&#10; &lt;mxPoint x=&quot;180&quot; y=&quot;160&quot; as=&quot;targetPoint&quot; /&gt;&#10; &lt;/mxGeometry&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-4&quot; value=&quot;D&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;280&quot; y=&quot;280&quot; width=&quot;120&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-5&quot; value=&quot;b&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=1;arcSize=50;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;440&quot; y=&quot;400&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-6&quot; value=&quot;b&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=1;arcSize=50;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;160&quot; y=&quot;400&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-7&quot; value=&quot;b&amp;lt;sub&amp;gt;n&amp;lt;/sub&amp;gt;&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=1;arcSize=50;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;1000&quot; y=&quot;400&quot; width=&quot;80&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-9&quot; value=&quot;D&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;560&quot; y=&quot;280&quot; width=&quot;120&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-10&quot; value=&quot;D&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=0;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;840&quot; y=&quot;280&quot; width=&quot;120&quot; height=&quot;80&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-11&quot; value=&quot;&amp;lt;font style=&amp;quot;font-size: 80px;&amp;quot;&amp;gt;∑&amp;lt;/font&amp;gt;&quot; style=&quot;text;strokeColor=#808080;fillColor=#DDE1CC;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;rounded=1;arcSize=50;&quot; vertex=&quot;1&quot; parent=&quot;1&quot;&gt;&#10; &lt;mxGeometry x=&quot;80&quot; y=&quot;520&quot; width=&quot;1080&quot; height=&quot;120&quot; as=&quot;geometry&quot; /&gt;&#10; &lt;/mxCell&gt;&#10; &lt;mxCell id=&quot;Gu1WY5u3SJpsm1HDf4T9-12&quot; value=&quot;&quot; style=&quot;endArrow=classic;html=1;rounded=0;strokeColor=#808080;strokeWidth=4;entryX=0;entryYLine truncated
id="svg29"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<defs
id="defs1" />
<g
id="layer1">
<path
d="M 9,40 H 197.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path1"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 204.53,40 -10,5 2.5,-5 -2.5,-5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path2"
style="background-color:rgb(255, 255, 255)" />
<rect
x="209"
y="0"
width="120"
height="80"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect2"
style="background-color:rgb(255, 255, 255)" />
<g
id="g2"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch2">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 40px; margin-left: 269px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">D</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="260.5"
y="26"
width="17"
height="47"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAAC8CAYAAADB0gjGAAAEXklEQVR4Xu2cvY8NURiH7V9AQYlGaIREgQSdwkerQJQKJHQSOh2NFoVIKFDofJcSEhQiaIiKkkT8Bbxv3Nncmdk7c3/nzLV73vvc5M1udu/M3nnu7znvmblndmEVjxqBBXjUCQCkkQiAAKR7kCAhJISESI0UZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBmUGV+SPtbbgnv7Fd/Rrt7r19/W31weqj1ffh/kx7T31jyHIB6Trmn/bLB1YPrZ4MDadEIOMMHM5Vq+ujFGXzKR1IBaACcyWXSBQgFQcfe05afUoFEw1IxeG4fXMvBUpUIM7C9bmoQokMxFncsDqtQIkOxFlI+swDEIdyeNo5y7wA8ba8aZq5yrwA8ZQ8szrYN57MCkjffpuva739YMPoh6vt6zar7Vb7rdb2HYTw+151+l546rlM336FY1i1x558wuqUstGE536xn2/p2k/fC18JQKrXv9W+uWm1KxOMz00mTvFLAlJx8BO5nLR0pqREIA4mF8rEuUmpQBzKU6sDifpM7DglA/HO9C6jC3lXa119KxmIh+OC1eXElJwZqVfbvHQgPmf5mpiSJbUpHUjuALvGduAXsBcfEYD4xO1lojZ7bbtX0YD48fxI1KY1SYuQkJwWfN82PhYxIandxi9K744IxN/lu4njSM2SKMrkDKy1ThMFiM9avyUmpNZpogBxFqmXKgDSSFLtKhoJ+fdh1uIFI4AApDX0kpAGEoAApHuCQkJICAmRJvEhJ2acyzQykHO2G/Jc5pABeiyJMuG6cpSpe+oVM19Isy7iFTNfgnk0ISGtz2aiJOSzwdicAKS1dDMCkJwO01pRFAGIr0O9lpAO36T1gXcEIK/twFJWFbU+gnBCpQPxZVZ+U1HKY8ml36UDyVlJFG59SM7sdEldSlbG14W8TWy1ftyh1pg5jOeJA6nDaM1OS56puia3MpLhxx5inaqfvJ21Sl11WIXA16jutKqtGlrJCRlf877PXuhGqyNWQ6137713ZlZtN2VeMOttlvVuiFkfnLp/H0h3WPXeFT4vCem9LaQiPA9AOrtKM2rRgXBX5tg7LsOY5dRdHfSGfL4PoOesuLPbIHhrPW819/f++wz0Umoq/sdMdUgFuvblibgzBIiS265fy7ht9WiaiZb6zqzUtjv+P4he2EFV/4OodueCerDTPL8PyDT7CPUcgDTeToAApNtwEkJCSIjUBVEGZVAGZSQCKIMyUmDoMiiDMigjEUAZlJECQ5dBGZRBGYkAyqCMFBi6DMqgDMpIBFAGZaTA0GVQBmVQRiKAMigjBYYugzIogzISAZRBGSkwdBmUQRmUkQigDMpIgaHLoAzKoIxEAGVQRgoMXQZlUAZlJAIogzJSYOgyKIMyKCMRQBmUkQJDl0EZlEEZiQDKoIwUGLoMyqAMykgEUAZlpMDQZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBGZSRCKBMN66/z87NveQ2FjYAAAAASUVORK5CYII="
id="image2" />
</switch>
</g>
<rect
x="369"
y="120"
width="80"
height="80"
rx="40"
ry="40"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect3"
style="background-color:rgb(255, 255, 255)" />
<g
id="g3"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch3">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 160px; margin-left: 409px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">b<xhtml:sub>1</xhtml:sub>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="396"
y="144.5"
width="26"
height="38"
xlink:href="data:image/png;base64,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"
id="image3" />
</switch>
</g>
<rect
x="89"
y="120"
width="80"
height="80"
rx="40"
ry="40"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect4"
style="background-color:rgb(255, 255, 255)" />
<g
id="g4"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch4">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 160px; margin-left: 129px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">b<xhtml:sub>0</xhtml:sub>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="116"
y="144.5"
width="26"
height="38"
xlink:href="data:image/png;base64,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"
id="image4" />
</switch>
</g>
<rect
x="929"
y="120"
width="80"
height="80"
rx="40"
ry="40"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect5"
style="background-color:rgb(255, 255, 255)" />
<g
id="g5"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch5">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 160px; margin-left: 969px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">b<xhtml:sub>n</xhtml:sub>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="955.5"
y="144.5"
width="27"
height="38"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAACYCAYAAAABZQzCAAAG40lEQVR4Xu2cO6smRRCGd3+BCqaKgmiisIGo4CX1GhgYrIIKBosKYiSokYGgiZmogQgauIKYLV4iEXdBE1nQRBEDTQ30F2i9cAY+hvlmuqqrqrvnvAMdnPN1V3W/z1TfpmfOnuE1lAJnh6otK3uGwAa7CQiMwAZTYLDqMsIIbDAFBqsuI4zABlNgsOoywghsMAUGqy4jjMAGU2Cw6jLCCGwwBQarLiOMwAZTYLDqMsIIbDAFBqsuI4zABlNgsOoywghsMAUGq+5ahH0lbXlI2Z6vJf/DyjLMrlCAwBRi9ZCVwHqgoKgDgSnE6iErgfVAQVEHAlOI1UNWAuuBgqIOBKYQq4esBNYDBUUdCEwhVg9ZCawHCoo6EJhCrB6yElgPFBR1IDCFWD1kJbAeKCjqQGAKsXrISmA9UFDUgcAUYvWQtQWwG6Thj0l6QNLNku6eCfGb/P2HpKuSvpd0RdK/PYjVQx0ygT0pDX55AVCJDp9JpndP4JXk322eDGD3inofSbrVQUWcGXnzNIOLBHaNCPu2pOcdQM1NwO5rAXa7NxkFDLC+MXZ/paL9KBkfPG3jWwSwV0TEL5y6wC14pw6aNzAIeF0SrAnmqYLmDWwrIqJ+B7R7ooz3ZHcvwKApJiGYjOz62hMwgLpD0i97JpYJDGuoTyT9PBP1dvn7fknPOswqd3+2PwMYtpqek4Qtpq3rEcnwsaTrtzKu/H5foa8KF+2KRgPDlhIWzpq9wNo1HHxiG2yXVySwmplbLbQbhdZfeyQWBexvEesWZWTN9cXYhvHOcr0ohd63FOy9TBSwp6ThFx0aD9Ete5G77RYjgGGScZsDLJjAs7M/jbbW2mY02b5YBDDvnXRE6nmDVLtck0UA8xbqBYH1ngGYV7dscB1XJAKYd1dknXzscqvKG1jUTsN/hnt2lxMPb2AfiLDowryvH8Tg/LDOlo+om2fLb+jv3sCiuiF+M+TkNtgzMDTRezwNjZ4S46MAe1Ua81ZJg2Z5CGxDtKgukcAG6xIJjMAMHex6ETxhwKFZPIw9J+lOSYfP9aYj6N/J/y9JMj0ZH2UMs2wCl07rS6P3mD3sd74u6YkZoK07AgDfkKTaJPcGVirSVmPmv0dO62uAlZZda6/mifzqtDdSpNGB1T5gXWp/0d6nd4RFrX0sW1OlM9bSKJl6D+xtfqvs/kpv0Ecl45drmSOAee/WW5+JlT511gC7IGL+FAQLnDaf1EcAKxWq9K7DgZpPSzMf5Cs9PVUKDGdUcGn3NLVVX92PjQBWc/hmqXGWGaKmay4FphW+Jv+1UnjxpFkEMFS09O7eahQG93+2Mi38rrlpaoGhG/tQEtZW09nLaU32kvxP+6FrNOfoBCQKmNf03ipm6YQD4lh9oCyOQyCtnbu0dOlHn+VFAUNjascyTDasA7xm4mMFVjQNP4l+7TGHoweZIoHVdI016xxNd2iNMMtBo1/FmeY970U20cDQv+Mlh9W1xWwMqoG12v8fGQu1EYa7/66NbnDJldZPE2BTxUv6euSt/eLA5jpmQUmtkJbomtp2+chNs/TvxYlbdIQdVuRwNoWd6mmgxliFyj0jyTKjOvShGVemclpg1hmw9vRXc2CKm8uUVTt2WYHVPMXWbLGFA0ME1bzXZaJ0UEgzMzz0pYmw2mPoXQHD2udxSdFbN0tgLV2hJcJq15fdAcM20u/JkWadBBCYKADxIh8/zKPL4+CqpkvcXYRNn13AzO/z4O6xdifFEmGaLa+lrru7LvHwOxlYAOPuRfK8MLnBWFnyknuJX02E7RrYJBYWw+84RVvpArwEFCPsZAw7JhY+6fC0pPMaNSXvtODGO2IRL5rvJsKUuhZnR1cJePiE7E2S5rsbh+f3pk/IFhs3ZCQwg2gtixBYS/UNvgnMIFrLIgTWUn2DbwIziNayCIG1VN/gm8AMorUsQmAt1Tf4JjCDaC2LEFhL9Q2+CcwgWssiBNZSfYNvAjOI1rIIgbVU3+CbwAyitSxCYC3VN/gmMINoLYsQWEv1Db4JzCAaixQqUHOwv9AFs3kqQGCeaibYIrAEkT1dEJinmgm2CCxBZE8XBOapZoItAksQ2dMFgXmqmWCLwBJE9nRBYJ5qJtgisASRPV0QmKeaCbYILEFkTxcE5qlmgi0CSxDZ0wWBeaqZYIvAEkT2dEFgnmom2CKwBJE9XRCYp5oJtggsQWRPFwTmqWaCLQJLENnTBYF5qplgi8ASRPZ0QWCeaibYIrAEkT1dEJinmgm2CCxBZE8XBOapZoItAksQ2dMFgXmqmWCLwBJE9nRBYJ5qJtgisASRPV0QmKeaCbYILEFkTxcE5qlmgi0CSxDZ0wWBeaqZYOt/n+2nqD3bxkAAAAAASUVORK5CYII="
id="image5" />
</switch>
</g>
<rect
x="489"
y="0"
width="120"
height="80"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect6"
style="background-color:rgb(255, 255, 255)" />
<g
id="g6"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch6">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 40px; margin-left: 549px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">D</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="540.5"
y="23"
width="17"
height="47"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAAC8CAYAAADB0gjGAAAEXklEQVR4Xu2cvY8NURiH7V9AQYlGaIREgQSdwkerQJQKJHQSOh2NFoVIKFDofJcSEhQiaIiKkkT8Bbxv3Nncmdk7c3/nzLV73vvc5M1udu/M3nnu7znvmblndmEVjxqBBXjUCQCkkQiAAKR7kCAhJISESI0UZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBmUGV+SPtbbgnv7Fd/Rrt7r19/W31weqj1ffh/kx7T31jyHIB6Trmn/bLB1YPrZ4MDadEIOMMHM5Vq+ujFGXzKR1IBaACcyWXSBQgFQcfe05afUoFEw1IxeG4fXMvBUpUIM7C9bmoQokMxFncsDqtQIkOxFlI+swDEIdyeNo5y7wA8ba8aZq5yrwA8ZQ8szrYN57MCkjffpuva739YMPoh6vt6zar7Vb7rdb2HYTw+151+l546rlM336FY1i1x558wuqUstGE536xn2/p2k/fC18JQKrXv9W+uWm1KxOMz00mTvFLAlJx8BO5nLR0pqREIA4mF8rEuUmpQBzKU6sDifpM7DglA/HO9C6jC3lXa119KxmIh+OC1eXElJwZqVfbvHQgPmf5mpiSJbUpHUjuALvGduAXsBcfEYD4xO1lojZ7bbtX0YD48fxI1KY1SYuQkJwWfN82PhYxIandxi9K744IxN/lu4njSM2SKMrkDKy1ThMFiM9avyUmpNZpogBxFqmXKgDSSFLtKhoJ+fdh1uIFI4AApDX0kpAGEoAApHuCQkJICAmRJvEhJ2acyzQykHO2G/Jc5pABeiyJMuG6cpSpe+oVM19Isy7iFTNfgnk0ISGtz2aiJOSzwdicAKS1dDMCkJwO01pRFAGIr0O9lpAO36T1gXcEIK/twFJWFbU+gnBCpQPxZVZ+U1HKY8ml36UDyVlJFG59SM7sdEldSlbG14W8TWy1ftyh1pg5jOeJA6nDaM1OS56puia3MpLhxx5inaqfvJ21Sl11WIXA16jutKqtGlrJCRlf877PXuhGqyNWQ6137713ZlZtN2VeMOttlvVuiFkfnLp/H0h3WPXeFT4vCem9LaQiPA9AOrtKM2rRgXBX5tg7LsOY5dRdHfSGfL4PoOesuLPbIHhrPW819/f++wz0Umoq/sdMdUgFuvblibgzBIiS265fy7ht9WiaiZb6zqzUtjv+P4he2EFV/4OodueCerDTPL8PyDT7CPUcgDTeToAApNtwEkJCSIjUBVEGZVAGZSQCKIMyUmDoMiiDMigjEUAZlJECQ5dBGZRBGYkAyqCMFBi6DMqgDMpIBFAGZaTA0GVQBmVQRiKAMigjBYYugzIogzISAZRBGSkwdBmUQRmUkQigDMpIgaHLoAzKoIxEAGVQRgoMXQZlUAZlJAIogzJSYOgyKIMyKCMRQBmUkQJDl0EZlEEZiQDKoIwUGLoMyqAMykgEUAZlpMDQZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBGZSRCKBMN66/z87NveQ2FjYAAAAASUVORK5CYII="
id="image6" />
</switch>
</g>
<rect
x="769"
y="0"
width="120"
height="80"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect7"
style="background-color:rgb(255, 255, 255)" />
<g
id="g7"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch7">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 40px; margin-left: 829px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">D</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="820.5"
y="20"
width="17"
height="47"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAAC8CAYAAADB0gjGAAAEXklEQVR4Xu2cvY8NURiH7V9AQYlGaIREgQSdwkerQJQKJHQSOh2NFoVIKFDofJcSEhQiaIiKkkT8Bbxv3Nncmdk7c3/nzLV73vvc5M1udu/M3nnu7znvmblndmEVjxqBBXjUCQCkkQiAAKR7kCAhJISESI0UZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBmUGV+SPtbbgnv7Fd/Rrt7r19/W31weqj1ffh/kx7T31jyHIB6Trmn/bLB1YPrZ4MDadEIOMMHM5Vq+ujFGXzKR1IBaACcyWXSBQgFQcfe05afUoFEw1IxeG4fXMvBUpUIM7C9bmoQokMxFncsDqtQIkOxFlI+swDEIdyeNo5y7wA8ba8aZq5yrwA8ZQ8szrYN57MCkjffpuva739YMPoh6vt6zar7Vb7rdb2HYTw+151+l546rlM336FY1i1x558wuqUstGE536xn2/p2k/fC18JQKrXv9W+uWm1KxOMz00mTvFLAlJx8BO5nLR0pqREIA4mF8rEuUmpQBzKU6sDifpM7DglA/HO9C6jC3lXa119KxmIh+OC1eXElJwZqVfbvHQgPmf5mpiSJbUpHUjuALvGduAXsBcfEYD4xO1lojZ7bbtX0YD48fxI1KY1SYuQkJwWfN82PhYxIandxi9K744IxN/lu4njSM2SKMrkDKy1ThMFiM9avyUmpNZpogBxFqmXKgDSSFLtKhoJ+fdh1uIFI4AApDX0kpAGEoAApHuCQkJICAmRJvEhJ2acyzQykHO2G/Jc5pABeiyJMuG6cpSpe+oVM19Isy7iFTNfgnk0ISGtz2aiJOSzwdicAKS1dDMCkJwO01pRFAGIr0O9lpAO36T1gXcEIK/twFJWFbU+gnBCpQPxZVZ+U1HKY8ml36UDyVlJFG59SM7sdEldSlbG14W8TWy1ftyh1pg5jOeJA6nDaM1OS56puia3MpLhxx5inaqfvJ21Sl11WIXA16jutKqtGlrJCRlf877PXuhGqyNWQ6137713ZlZtN2VeMOttlvVuiFkfnLp/H0h3WPXeFT4vCem9LaQiPA9AOrtKM2rRgXBX5tg7LsOY5dRdHfSGfL4PoOesuLPbIHhrPW819/f++wz0Umoq/sdMdUgFuvblibgzBIiS265fy7ht9WiaiZb6zqzUtjv+P4he2EFV/4OodueCerDTPL8PyDT7CPUcgDTeToAApNtwEkJCSIjUBVEGZVAGZSQCKIMyUmDoMiiDMigjEUAZlJECQ5dBGZRBGYkAyqCMFBi6DMqgDMpIBFAGZaTA0GVQBmVQRiKAMigjBYYugzIogzISAZRBGSkwdBmUQRmUkQigDMpIgaHLoAzKoIxEAGVQRgoMXQZlUAZlJAIogzJSYOgyKIMyKCMRQBmUkQJDl0EZlEEZiQDKoIwUGLoMyqAMykgEUAZlpMDQZVAGZVBGIoAyKCMFhi6DMiiDMhIBlEEZKTB0GZRBGZSRCKBMN66/z87NveQ2FjYAAAAASUVORK5CYII="
id="image7" />
</switch>
</g>
<rect
x="9"
y="240"
width="1080"
height="120"
rx="60"
ry="60"
fill="#dde1cc"
stroke="#808080"
pointer-events="all"
id="rect8"
style="background-color:rgb(255, 255, 255)" />
<g
id="g8"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch8">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 300px; margin-left: 549px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: rgb(0, 0, 0); ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">
<xhtml:font
style="font-size: 80px;">∑</xhtml:font>
</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="520.5"
y="252.5"
width="57"
height="102"
xlink:href="data:image/png;base64,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 truncated
id="image8" />
</switch>
</g>
<path
d="M 329,40 H 477.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path8"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 484.53,40 -10,5 2.5,-5 -2.5,-5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path9"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 609,40 h 20"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path10"
style="background-color:rgb(255, 255, 255)" />
<path
d="M 889,39.29 969,39 v 69.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path11"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 969,115.53 -5,-10 5,2.5 5,-2.5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path12"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 729,39.95 28.03,-0.2"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path13"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 764.53,39.69 -9.97,5.07 2.47,-5.01 -2.54,-4.98 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path14"
style="background-color:rgb(255, 255, 255)" />
<path
d="M 629,40 H 729"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
stroke-dasharray="12, 12"
pointer-events="stroke"
id="path15"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 329,40 h 80 v 68.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path16"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 409,115.53 -5,-10 5,2.5 5,-2.5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path17"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 129,40 v 68.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path18"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 129,115.53 -5,-10 5,2.5 5,-2.5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path19"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 129,200 -0.08,27.79"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path20"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 128.89,235.29 -4.97,-10.02 5,2.52 5,-2.49 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path21"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 408.66,200 v 28.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path22"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 408.66,235.53 -5,-10 5,2.5 5,-2.5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path23"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 968.66,200 v 28.03"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path24"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 968.66,235.53 -5,-10 5,2.5 5,-2.5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path25"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 1089,300 h 108.58"
fill="none"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="stroke"
id="path26"
style="background-color:rgb(255, 255, 255)" />
<path
d="m 1205.08,300 -10,5 2.5,-5 -2.5,-5 z"
fill="#808080"
stroke="#808080"
stroke-width="4"
stroke-miterlimit="10"
pointer-events="all"
id="path27"
style="background-color:rgb(255, 255, 255)" />
<rect
x="1109"
y="261"
width="80"
height="44"
rx="22"
ry="22"
fill="none"
stroke="none"
pointer-events="all"
id="rect27"
style="background-color:rgb(255, 255, 255)" />
<g
id="g27"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch27">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 283px; margin-left: 1149px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: #808080; ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">y[k]</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="1127.5"
y="269"
width="43"
height="35"
xlink:href="data:image/png;base64,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"
id="image27" />
</switch>
</g>
<rect
x="9"
y="0"
width="80"
height="40"
rx="20"
ry="20"
fill="none"
stroke="none"
pointer-events="all"
id="rect28"
style="background-color:rgb(255, 255, 255)" />
<g
id="g28"
style="background-color:rgb(255, 255, 255)"
transform="translate(-0.5,-0.5)">
<switch
id="switch28">
<foreignObject
style="overflow: visible; text-align: left;"
pointer-events="none"
width="100%"
height="100%"
requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<xhtml:div
style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 49px;">
<xhtml:div
style="box-sizing: border-box; font-size: 0px; text-align: center;"
data-drawio-colors="color: #808080; ">
<xhtml:div
style="display: inline-block; font-size: 24px; font-family: Helvetica; color: rgb(128, 128, 128); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap;">x[k]</xhtml:div>
</xhtml:div>
</xhtml:div>
</foreignObject>
<image
x="27.5"
y="6"
width="43"
height="35"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAACMCAYAAADhnULuAAAJTklEQVR4Xu2dMYwdNRCGcz20CGoEBRRIUNAgQo9AghoqqKDlGiiSFCAhaEkFDdDQgASiTxAUFESigIIoNRF1+mP25Bf59t579sw/tnd2f6SnE3pr7/ifb8fjsffl5Ar/owKBFDgJZCtNpQJXCCwhCKUAgQ3lLhpLYMlAKAUIbCh30VgCSwZCKUBgQ7mLxhJYMhBKAQIbyl00lsCSgVAKENhQ7qKxBJYMhFKAwIZyF40lsGQglAIENpS7aCyBJQOhFCCwodxFYwksGQilAIEN5S4aS2DJQCgFCGwod9FYAksGQimwOWCvX7/+hXjovUZeuiP9v3Csb/n+THvvk5OTN69du/aDtl2L60frR2B9vUpgMT2L+hFYTOB566LgjLBHBS/qR2AJrEoBpgQqufCLRwvOCMsIq6KYwKrkunTxaP2YEmD+Yw7bWT8C21lwpgRMCVTIjZ7SCCyBJbAqBbCLRz/wTAkw/zGH7awfge0sOFMCpgQq5CxTmrRxe7CjA6sRW8b6h1z/vKINd7rmYhFYBT7gpQQWFHBqTmAdRKzsgsBWCnXsMgLrIGJlFwS2UigC6yCUQxcE1kdE9QFuLrpswhNYm24XWjElcBCxsotmwN64ceOds7OzLyvt2HfZbTHuFaD9tBh6TNrfk88jxn5OpY/PS223BKyM9RnR43dA0wfS9lXp55eSrvu+bwZsWj1/I3/fshg2tZH3jt6V946+sraXwd2StleN7asfmK0AmwLAr6LnU0ZNPXzarg7rMMD7Isxz0s9/WoHACK+674aA1cIyd1vVjHXM100jbIqyL8vf21rgsuu/FSPf1rRHUwHtG6VbAFbG+KP44DWNH2bXwrAmnrQPjX6ny+LQfLAGgJBUwPKArLpKIP77WPzxIQDrTenjfaD9w6bNI+zuToYb5eO7L+2fqBkwmArclfs8XXOf/BrLAxmlrCV2fiBj/UyrSXb9T9LH60D7C00NHOkjbArl6Oqy+JSiqYDYedWyel0rsDKuKZ37WT7WKosrrN1Sgt0jAka/qZujQIFVgU+k/UeWSLBGYGVMaICprrJoNO8WYbPUAMkvD07Z4MNQnDaOibo2YB2qO3dFr5cs1Z0SvCOAnYr5f8rn8ZJxB76/FAnBVGAqZD+JiLtCYP8RTay11mawdk8JstTgDdkF+94I7ATYiwLJ3x5RG92cSCKupkoAlq+awjoMWKuTM8AfTuFgKuCyKFhLhLWMI/MJtOVaG7y6pwS5YXJzZOo5lb6+lo/1rIBqN2vtOSxYvuoC69AIm26OrEQnkaZdD+tZAVMJax+4lsi0pDpsKl9ZdyO7wToc2GQAuotSO5vk1xVruppOIwOL1lo91gBKrdtvzZYMAuunpe7n35t2s9aYEsjC9zcZF3L6yuV8gMaBQ3PYbJWPnlutHfOlCkNtw5UC+6mMy1q+6g7rIlKCHQiy2kdKXbXcmXez1gasjGcqQVlhdU2pap23KGCTMdCB78LAm2wVJrvD1WE1kMyufSDT8qNAe6jpIlKCWWqA5FSHxIB3s1YYYRFwmsxUNQYtCtgUrdAD35fGrT1PWyNcfk3EKoF2jPMoK/8PbWdb7784YBO0nqUu9YFsrZgbBHaSqLmu+/ywSGCNyfW+8TXf295gDpvr/Gx+pkP7oFuuXzKwcKmrdSqQ5d5bWnTlnEHHMlcFbIpct+Svdeu127S10ZTgnLdeQSELDuN3ug7kKui7RDtBod82qIkCWwZW9Kl+365Gy9I1i0wJxCjkUMx8zE1LWhvPYXdadytzLRVYbdgvPZjNNg1WCOx07FL7NkjzoLDYlECeIM+SVg5ysyiwopTgVHLSe8a3QbqUuRYVYcFzmaUo2+Tgy4oi7MPDLMDpObczxoecuTRgkTcQSsBO37sfLVwJsBdeFUpriL9qBJ1d07zMtRhgxZCWB19yXd1PGgVPCfa+12b1R+sD3YsAttPRwhxa16krMLAHX8KUMVk3bpqWuYYDm4RBfqfAMHOdnwV1+6GHoMAW3xi2jCs5w30WW0yVQERBfsYROYTstqq1OFbahPiH5cTOf5dU5hoaYcHfFLgpQn4nH+vbnm7biisH1rrjWIzglqlxGLBAjnRhtW+BJRPKpeBtsSFKhE1VEOtGjutawWhLsXJRNdUZnpSDiybpCymHwbtgawcWWBQXYdFGWQM3RRuKwMpNkd2sSwk9IOhOL+gN0LUDmyLbLfmrPjnnXebqDmwqSlv/2ZyDPy9krRsmYqFdsI0AOx1IsmwmuJa5RgBrnr6Pnb10KI8Vp44j24XhDnBbzrECQcGtzNUVWEskyiAplqEcUgOTsJZxRVp0ZTVQ62aCy+K266JLHIS8DVv9S4NAFNj5Rb2y3Qqw1nMTSViXMleXCItO15rpC72XiKveBdsSsAlay2bC1FQdDOZpWC9gkYMtxVRgPiiH1EB1zw0Ca91MMK8Tum3NgvBUpwJ7nkRky1e1C7Y1YI255LmL0DJX0wgL7mapoNkDrHWBsOuq+mHZIrBAIILKXK2BNRWbEzGqaXlfyQk8qzB1WbULtkVgkc0EaWuqxhgjezENOd/pAmGpjm6HaqNZzoM8NFVT2IaBtW4mmMtcTSIsuJsFpQINUoPiLthWgU0Rz7qgNpW5mgBbinpr+340sGvT89h4CKyDtwmsg4iVXRDYSqEKT/3QswQOQwjTBYF1cBUjrIOIlV0Q2EqhGGEdhHLogsD6iMiUwEHHmi4IbI1KhWuYEjiIWNkFga0UyjslUNy2uFOj6GuRl1oeeMVAivoV3+lS3CzEpaMFDyHSESNH60dgfQkqRgjf2/XvjcB21ny04J2H63670foxwvq6lBEW07OoH4HFBJ63Lgrue7v+vTHCdtZ8tOCdh+t+u9H6McL6upQRFtOzqB+BxQRmStBZPwLbWXDf2/XvjSlBZ81HC955uO63G60fI6yvS4s5mO/t+vdGYPtrzjsGVmBzETawr2i6KEBgiUEoBQhsKHfRWAJLBkIpQGBDuYvGElgyEEoBAhvKXTSWwJKBUAoQ2FDuorEElgyEUoDAhnIXjSWwZCCUAgQ2lLtoLIElA6EUILCh3EVjCSwZCKUAgQ3lLhpLYMlAKAUIbCh30VgCSwZCKUBgQ7mLxhJYMhBKAQIbyl00lsCSgVAKENhQ7qKxBJYMhFKAwIZyF40lsGQglAL/AzxRJvanxVBaAAAAAElFTkSuQmCC"
id="image28" />
</switch>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 59 KiB

@@ -0,0 +1,151 @@
<mxfile host="Electron" modified="2024-01-27T19:14:32.318Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.1.21 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="_JxO4yykJQa9LzsHiU7_" version="22.1.21" type="device">
<diagram name="Page-1" id="ScnFzgmv18Yx9ZM-e3TZ">
<mxGraphModel dx="450" dy="363" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="z0oqqv8cwlupup-oO1Ry-11" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="160" y="380" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-7" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-8" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="15" y="30" as="sourcePoint" />
<mxPoint x="25" y="30" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-9" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="3" y="19.899999999999977" as="sourcePoint" />
<mxPoint x="13" y="19.899999999999977" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-10" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-11" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="25" as="sourcePoint" />
<mxPoint x="8" y="15" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-12" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-7" target="z0oqqv8cwlupup-oO1Ry-3" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-13" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="280" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-3" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-4" value="" style="curved=1;endArrow=none;html=1;rounded=0;endFill=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-13" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="7" y="53" as="sourcePoint" />
<mxPoint x="37" y="33" as="targetPoint" />
<Array as="points">
<mxPoint x="7" y="63" />
<mxPoint x="17" y="63" />
<mxPoint x="27" y="23" />
<mxPoint x="37" y="23" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-14" value="" style="group;strokeColor=none;" parent="1" vertex="1" connectable="0">
<mxGeometry x="440" y="360" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-5" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-6" value="" style="endArrow=none;html=1;rounded=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-14" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="8" y="61" as="sourcePoint" />
<mxPoint x="28" y="21" as="targetPoint" />
<Array as="points">
<mxPoint x="18" y="61" />
<mxPoint x="18" y="41" />
<mxPoint x="18" y="21" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-15" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-3" target="z0oqqv8cwlupup-oO1Ry-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-16" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="120" y="400" as="sourcePoint" />
<mxPoint x="150.00000000000003" y="395" as="targetPoint" />
<Array as="points">
<mxPoint x="130" y="400" />
<mxPoint x="130" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endArrow=block;endFill=1;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-5" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-27" value="" style="group;strokeColor=none;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="480" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-23" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-24" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" source="z0oqqv8cwlupup-oO1Ry-23" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="60" y="-120" as="sourcePoint" />
<mxPoint x="110" y="-170" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-25" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;A&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-26" value="&lt;font style=&quot;font-size: 20px;&quot;&gt;&lt;b&gt;D&lt;/b&gt;&lt;/font&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-27" vertex="1">
<mxGeometry x="40" y="40" width="40" height="40" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-28" value="" style="group;strokeColor=#808080;fontColor=#808080;" parent="1" vertex="1" connectable="0">
<mxGeometry x="600" y="380" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-17" value="" style="whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0;exitY=0.804;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.004;entryY=0.68;entryDx=0;entryDy=0;entryPerimeter=0;strokeColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" source="z0oqqv8cwlupup-oO1Ry-17" target="z0oqqv8cwlupup-oO1Ry-17" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-10" y="70" as="sourcePoint" />
<mxPoint x="40" y="20" as="targetPoint" />
<Array as="points">
<mxPoint x="10" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-20" value="D" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-22" value="Q" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#808080;" parent="z0oqqv8cwlupup-oO1Ry-28" vertex="1">
<mxGeometry x="60" y="10" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-29" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-22" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="660" y="370" as="sourcePoint" />
<mxPoint x="760" y="400" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-30" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;startArrow=oval;startFill=1;strokeColor=#808080;" parent="1" target="z0oqqv8cwlupup-oO1Ry-23" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="720" y="400" as="sourcePoint" />
<mxPoint x="710" y="320" as="targetPoint" />
<Array as="points">
<mxPoint x="720" y="500" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="z0oqqv8cwlupup-oO1Ry-31" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#808080;" parent="1" source="z0oqqv8cwlupup-oO1Ry-25" target="z0oqqv8cwlupup-oO1Ry-7" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="330" y="450" as="sourcePoint" />
<mxPoint x="380" y="400" as="targetPoint" />
<Array as="points">
<mxPoint x="180" y="500" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="162.60143mm"
height="145.49326mm"
viewBox="0 0 162.60143 145.49326"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
sodipodi:docname="specification_de_filtre.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.76167929"
inkscape:cx="454.25943"
inkscape:cy="204.15416"
inkscape:window-width="1920"
inkscape:window-height="1111"
inkscape:window-x="-9"
inkscape:window-y="-9"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs1" /><g
inkscape:label="Calque 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-24.16979,-27.981753)"><path
style="fill:#b3b3b3"
d="m 43.550519,173.33743 c -0.254574,-0.10272 -0.330729,-2.01702 -0.330729,-8.31348 v -8.18004 h -6.331101 c -5.402769,0 -6.392067,-0.061 -6.746875,-0.41577 -0.510872,-0.51087 -0.510872,-0.50966 0,-1.02054 0.354801,-0.3548 1.343921,-0.41577 6.744842,-0.41577 h 6.329068 l 0.0029,-60.35319 0.0029,-60.353191 -0.952606,0.8364 c -1.049253,0.921256 -1.784615,0.967164 -1.90637,0.119015 -0.09659,-0.672828 2.715832,-6.487427 3.294484,-6.811257 0.285899,-0.159997 0.561696,-0.07902 0.886584,0.260305 0.805275,0.841062 3.459054,6.349148 3.28169,6.811353 -0.253641,0.660977 -1.054436,0.509844 -2.08282,-0.393089 l -0.935248,-0.821159 v 7.963517 7.963516 l 24.14323,0.06754 24.14323,0.06754 -0.104749,47.781485 -0.104749,47.781485 30.46569,-0.12725 30.46569,-0.12725 v 4.66711 4.66712 h 7.70032 7.70033 l -0.8384,-0.95488 c -0.47736,-0.54368 -0.77401,-1.12269 -0.68887,-1.34456 0.0822,-0.21432 0.14953,-0.43947 0.14953,-0.50032 0,-0.7008 6.66518,2.43463 7.25239,3.41165 0.23452,0.39022 0.16497,0.58078 -0.37322,1.02256 -1.0994,0.90245 -5.83161,3.16392 -6.43871,3.077 -0.86373,-0.12368 -0.82489,-0.85236 0.10166,-1.90765 l 0.83562,-0.95172 h -62.2045 -62.204492 v 8.01688 c 0,8.59642 -0.05419,8.9619 -1.256771,8.47664 z m 49.146356,-22.71496 v -4.36936 l -17.462539,0.0699 c -9.604396,0.0384 -17.462521,-0.0194 -17.4625,-0.12856 2.1e-5,-0.10914 7.858163,-0.19843 17.462538,-0.19843 H 92.696875 V 109.08662 72.17725 H 68.752082 44.80729 v 37.05526 37.05526 l 3.83687,-0.0797 c 2.110279,-0.0439 3.836685,0.01 3.836459,0.1187 -2.27e-4,0.10914 -1.726818,0.19843 -3.83687,0.19843 H 44.80729 v 4.23334 4.23333 H 68.752082 92.696875 Z M 52.74479,146.26058 c 0,-0.14552 0.119063,-0.26458 0.264584,-0.26458 0.145521,0 0.264583,0.11906 0.264583,0.26458 0,0.14552 -0.119062,0.26458 -0.264583,0.26458 -0.145521,0 -0.264584,-0.11906 -0.264584,-0.26458 z m 2.116667,0 c 0,-0.14552 0.119063,-0.26458 0.264584,-0.26458 0.14552,0 0.264583,0.11906 0.264583,0.26458 0,0.14552 -0.119063,0.26458 -0.264583,0.26458 -0.145521,0 -0.264584,-0.11906 -0.264584,-0.26458 z m 2.116667,0 c 0,-0.14552 0.119062,-0.26458 0.264583,-0.26458 0.145521,0 0.264584,0.11906 0.264584,0.26458 0,0.14552 -0.119063,0.26458 -0.264584,0.26458 -0.145521,0 -0.264583,-0.11906 -0.264583,-0.26458 z m 47.889586,4.36563 v -4.36563 h -5.953127 -5.953125 v 4.36563 4.36562 h 5.953125 5.953127 z m -10.84938,14.55384 c 0.214329,-0.25825 0.290326,-0.98543 0.219399,-2.09933 l -0.108517,-1.70421 1.069769,0.0112 c 1.353594,0.0142 1.731227,0.32537 1.731227,1.42673 0,0.9449 -0.814558,1.77934 -1.485583,1.52184 -0.437085,-0.16772 -0.462927,0.0352 -0.09261,0.72712 0.247585,0.46262 0.18094,0.51177 -0.693855,0.51177 -0.828304,0 -0.920498,-0.0569 -0.639832,-0.39511 z m 1.853545,-2.39863 c 0,-0.92599 -0.421098,-1.23532 -0.698297,-0.51296 -0.212276,0.55319 0.128763,1.77538 0.44147,1.58212 0.141255,-0.0873 0.256827,-0.56842 0.256827,-1.06916 z m -57.770105,2.22951 c -1.118538,-0.65019 -1.581701,-3.28368 -0.832366,-4.73273 1.112465,-2.15127 3.369757,-1.39534 3.583821,1.20017 0.136745,1.65803 -0.02844,2.29917 -0.788082,3.05881 -0.830243,0.83024 -1.197598,0.91888 -1.963373,0.47375 z m 1.297599,-1.43486 c 0.18609,-1.24094 0.04661,-3.715 -0.224738,-3.98634 -0.08413,-0.0841 -0.279952,-0.0745 -0.435155,0.0214 -0.306929,0.18969 -0.402424,4.69724 -0.105797,4.99386 0.391137,0.39114 0.593518,0.11918 0.76569,-1.02895 z m 49.21576,0.52538 c -0.924423,-0.92442 -0.845786,-2.60334 0.166089,-3.54605 0.596077,-0.55533 1.79899,-0.73714 1.79899,-0.2719 0,0.14552 -0.110558,0.26458 -0.245685,0.26458 -0.597264,0 -1.077232,0.89257 -1.077232,2.00327 0,1.01947 0.07329,1.17173 0.564004,1.17173 0.504048,0 0.549109,-0.11106 0.423881,-1.0447 -0.153331,-1.14317 0.299988,-2.08213 0.843159,-1.74643 0.202259,0.125 0.291819,0.66162 0.238575,1.42949 -0.07498,1.08137 -0.02155,1.22935 0.443923,1.22935 0.420124,0 0.546042,-0.20369 0.611062,-0.98847 0.06414,-0.7741 -0.06497,-1.13532 -0.595312,-1.66567 -0.372465,-0.37246 -0.677208,-0.73133 -0.677208,-0.79747 0,-0.36153 1.130335,-0.0329 1.76517,0.51311 1.404889,1.20843 0.745415,3.86454 -0.959511,3.86454 -0.384904,0 -0.829263,-0.12944 -0.987463,-0.28764 -0.207127,-0.20712 -0.337395,-0.20712 -0.465407,0 -0.262976,0.42551 -1.370378,0.34892 -1.847035,-0.12774 z m 13.969861,-0.52505 c -0.86767,-1.32423 -0.25657,-3.37493 1.10776,-3.71735 0.95943,-0.2408 1.04239,0.004 0.26495,0.78123 -0.71748,0.71748 -0.86779,1.70368 -0.39446,2.58811 0.22279,0.41628 0.36178,0.46351 0.65293,0.22187 0.26169,-0.21718 0.32457,-0.63765 0.21495,-1.4374 -0.1058,-0.77188 -0.0484,-1.19627 0.18096,-1.33802 0.55599,-0.34362 1.0106,0.58073 0.85524,1.73896 -0.12522,0.93364 -0.0802,1.0447 0.42388,1.0447 0.49072,0 0.56401,-0.15227 0.56401,-1.17173 0,-1.1107 -0.47997,-2.00327 -1.07723,-2.00327 -0.13513,0 -0.24569,-0.11907 -0.24569,-0.26459 0,-0.29619 0.78976,-0.35104 1.44336,-0.10023 1.1331,0.43482 1.57065,2.90706 0.67331,3.8044 -0.55867,0.55866 -1.70818,0.71148 -1.98482,0.26387 -0.1096,-0.17735 -0.32831,-0.17735 -0.65968,0 -0.8326,0.44559 -1.55469,Line truncated
id="path2" /><path
style="fill:#808080"
d="m 43.396179,173.07169 c -0.09701,-0.097 -0.176389,-3.8454 -0.176389,-8.32975 v -8.15337 l -6.548437,-0.0708 c -6.34846,-0.0686 -6.548438,-0.0869 -6.548438,-0.59994 0,-0.51301 0.199978,-0.53133 6.548438,-0.59993 l 6.548437,-0.0708 V 94.608444 33.969858 l -1.059851,1.034917 c -0.989866,0.966578 -1.089016,1.005752 -1.501523,0.593245 -0.412506,-0.412506 -0.348751,-0.638909 0.9655,-3.428616 0.773944,-1.642819 1.523739,-3.135772 1.666211,-3.317673 0.66443,-0.84831 1.212028,-0.318737 2.831572,2.738364 2.132466,4.02531 2.023569,5.317937 -0.285463,3.388494 l -1.161237,-0.970338 -0.07018,7.902962 c -0.0386,4.34663 -0.01257,8.053092 0.05784,8.236584 0.10172,0.265076 5.103687,0.33362 24.345702,0.33362 H 93.22604 v 10.71424 10.71424 l -24.275521,0.06753 -24.275521,0.06753 v 41.539583 41.53958 l 30.228646,0.0673 30.228646,0.0673 v -4.76363 -4.76362 h 24.34167 24.34167 v 4.7625 4.7625 h 7.97119 7.9712 l -1.12206,-1.21729 c -1.03294,-1.1206 -1.08812,-1.25123 -0.69472,-1.64463 0.39339,-0.39339 0.68143,-0.30196 3.62632,1.15115 3.16955,1.56395 3.97437,2.22847 3.45442,2.85217 -0.14389,0.17259 -1.69977,1.02413 -3.45751,1.8923 -2.94205,1.4531 -3.22984,1.54454 -3.62323,1.15114 -0.3934,-0.39339 -0.34307,-0.51877 0.63362,-1.57848 l 1.06097,-1.15115 H 107.15541 44.674999 l -0.06992,8.26823 c -0.06589,7.79212 -0.09763,8.26823 -0.551215,8.26823 -0.264715,0 -0.560675,-0.0794 -0.657689,-0.17639 z M 153.02188,151.28766 v -4.7625 h -23.54792 -23.54792 v 4.7625 4.7625 h 23.54792 23.54792 z M 92.432291,66.621 V 61.8585 H 68.752082 45.071874 v 4.7625 4.7625 h 23.680208 23.680209 z m 0,-10.847916 v -4.7625 H 68.884374 45.336457 v 4.7625 4.7625 h 23.547917 23.547917 z m 1.805893,107.845426 0.0861,-1.95789 0.83994,-0.12443 c 0.461967,-0.0684 0.989796,-0.0675 1.172953,0.002 0.504048,0.19147 0.698654,1.34565 0.354316,2.10139 -0.241655,0.53037 -0.448452,0.64406 -0.984978,0.5415 -0.619793,-0.11848 -0.669339,-0.0633 -0.567281,0.63209 0.09256,0.63067 0.01718,0.76201 -0.437664,0.76252 -0.51456,5.8e-4 -0.544016,-0.12384 -0.463388,-1.95727 z m 1.789476,-0.29171 c 0.209982,-0.83664 -0.02154,-1.4558 -0.544356,-1.4558 -0.282814,0 -0.405179,0.26635 -0.405179,0.88194 0,1.35214 0.654867,1.74791 0.949535,0.57386 z m -58.198835,1.22649 c -1.825406,-2.01705 -0.386832,-6.4379 1.726836,-5.3067 1.953092,1.04526 1.523284,5.79941 -0.524308,5.79941 -0.416148,0 -0.957285,-0.22172 -1.202528,-0.49271 z m 1.631335,-2.24841 c 0.07507,-2.28472 -0.236707,-3.42255 -0.787021,-2.87223 -0.356239,0.35624 -0.568584,2.78034 -0.363404,4.14858 0.14354,0.95719 0.283809,1.21289 0.62916,1.14688 0.36906,-0.0705 0.457467,-0.48152 0.521265,-2.42323 z m 49.347786,1.81475 c -1.251277,-0.87643 -0.938041,-3.0842 0.537951,-3.79162 0.943422,-0.45218 1.225185,-0.20524 0.469995,0.41189 -0.73777,0.6029 -0.994555,2.14252 -0.473818,2.8409 0.331352,0.44439 0.449158,0.46769 0.817743,0.1618 0.314639,-0.26113 0.385782,-0.5964 0.264142,-1.24479 -0.230392,-1.2281 0.026,-1.85804 0.571851,-1.40502 0.297473,0.24688 0.364662,0.60417 0.245856,1.30737 -0.117722,0.6968 -0.05127,1.06078 0.237398,1.30036 0.604967,0.50208 0.953227,0.1116 0.953227,-1.06878 0,-1.23117 -0.382681,-2.08366 -0.93535,-2.08366 -0.213162,0 -0.387566,-0.1318 -0.387566,-0.29289 0,-0.16109 0.188331,-0.22062 0.418514,-0.13229 0.230183,0.0883 0.52784,0.1606 0.661459,0.1606 0.622599,0 1.301277,1.10394 1.301277,2.11666 0,1.59415 -1.411636,2.71587 -2.299928,1.82758 -0.209071,-0.20908 -0.438621,-0.20908 -0.829273,0 -0.70594,0.3778 -0.8767,0.36592 -1.553478,-0.10811 z m 13.953404,-0.44644 c -1.01162,-1.08584 -0.52023,-3.16017 0.86281,-3.6423 0.44011,-0.15342 0.87018,-0.20258 0.95572,-0.10924 0.0855,0.0933 0.005,0.22357 -0.17992,0.2894 -0.71026,0.25343 -1.11959,0.94217 -1.1157,1.87728 0.005,1.22215 0.33185,1.76553 0.92487,1.53796 0.37124,-0.14245 0.42207,-0.38121 0.28119,-1.32069 -0.12644,-0.84319 -0.0705,-1.23105 0.21144,-1.46501 0.52403,-0.4349 0.73201,-0.0253 0.65447,1.28888 -0.0798,1.35282 0.42932,1.96009 1.00338,1.19673 0.53175,-0.7071 0.28253,-2.24164 -0.463,-2.85088 -0.75519,-0.61714 -0.47343,-0.86407 0.46999,-0.4119 1.52434,0.7306 1.78707,2.96345 0.45165,3.83845 -0.53228,0.34877 -0.77381,0.36871 -1.34017,0.11066 -0.48162,-0.21944 -0.77484,-0.23081 -0.96812,-0.0375 -0.44595,0.44594 -1.16809,0.3213 -1.74861,-0.30181 z m 5.3917,0.0144 c -0.20172,-0.3264 0.32597,-0.95769 0.97188,-1.1627 0.56485,-0.17927 0.68647,-1.06583 0.17455,-1.2724 -0.22526,-0.0909 -0.20417,-0.13882 0.0661,-0.15028 0.71146,-0.0302 0.97962,0.3515 1.11522,1.58736 l 0.13337,1.21542 -1.15263,0.0174 c -0.63395,0.01 -1.22279,-0.0961 -1.30854,-0.23483 z m 1.47716,-0.64156 c 0,-0.2097 -0.11906,-0.38126 -0.26458,-0.38126 -0.14553,0 -0.26459,0.24515 -0.26459,0.54478 0,0.29963 0.11906,0.47119 0.26459,0.38126 0.14552,-0.0899 0.26458,-0.33509 0.26458,-0.54478 z m -1.32292,-1.1594 c 0,-0.44355 0.46925,-0.55338 0.62543,-0.14639 0.0922,0.24016 -8.3e-4,0.39536 -0.23686,0.39536 -0.21371,0 -0.38857,-0.11204 -0.38857,-0.24897 z m 73.63399,-3.58782 c -1.25128,-0.87643 -0.93804,-3.08419 0Line truncated
id="path1" /></g></svg>

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB