Page Personnelle de Vincent Kerhoas
Vincent Kerhoas
Professeur Agrégé
Page Personnelle de Vincent Kerhoas

Filtres Numériques

!!! EN COURS DE REDACTION !!!

Transformée de Fourier et Signal Echantillonné

Transformée de Fourier Signal Temps Discret ( TFTD )

Rappel : Transformée de Fourier

\( Y(f) = \int_{-\infty}^{+\infty}y(t)e^{-j2\pi f t } dt \)

Définition d’un signal échantillonné :

\( y_e(t) = y(t).\sum_{n=-\infty}^{+\infty} \delta(t-nT_e) \)
\( y_e(t) = \sum_{n=-\infty}^{+\infty} y(nT_e) \delta(t-nT_e) \)

Transformée de Fourier d’un signal échantillonné :

\( \mathcal{F}[y_e(t)]= \int_{-\infty}^{+\infty} \left( \sum_{n=-\infty}^{+\infty} y(nT_e) \delta(t-nT_e) \right ) .e^{-j2\pi f t } dt \)
\( Y_e(f)= \sum_{n=-\infty}^{+\infty} y(nT_e) \color{red}{ \int_{-\infty}^{+\infty} \delta(t-nT_e) .e^{-j2\pi f t } dt } \)

\( Y_e(f)= \sum_{n=-\infty}^{+\infty} y(nT_e) \color{red}{ e^{-j2\pi.f.n.T_e} } \)

Exemple :

y(n)=1 pour -N/2 < n < N/2
y(n)=0 sinon

Transformée de Fourier Discrète

\( Y_e(f)= \sum_{n=-\infty}^{+\infty} y(nT_e) e^{-j2\pi.f.n.T_e} \)

\( 0 < f < Fe \)

Posons \( f_k=\frac{k}{N}.Fe \) avec k=0,1,2,..,N-1

\( Y_e(f_k)= \sum_{n=0}^{N-1} y(nT_e) e^{-j2\pi.\frac{k}{N}.Fe.n.T_e} \)

\( Y_e(k)= \sum_{n=0}^{N-1} y(nT_e) e^{-j2\pi.\frac{k}{N}.n} \)


Filtre FIR ( Finite Impulse Response )

Commençons par un exemple :

Le programme suivant permet de réaliser un filtre passe bas dont la fréquence de coupure est 2000Hz :

Il s’agit d’une opération de multiplication-accumulation ( somme discrète de produit entre coefficients et échantillons ).
Cela correspond à une convolution numérique.

La fréquence d’échantillonage est Fe=8kHz.
L’opération de filtrage est donc à considérer entre 0 et Fe/2 ( Fréquence de Shannon ) Il faut effectuer 21 calculs, l’ordre du filtre est N = 21

La caractéristique fréquentielle idéale du filtre serait donc :

Néanmoins la caractéristique fréquentielle réelle de ce filtre est :

Lien Equation de Récurrence / Transformée de Fourier

Tous les Te, un échantillon d’entrée x est prélevé, et l’opération suivante est effectuée :

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

autrement dit, à l’instant n, nous calculons l’échantillon de sortie y à partir des N échantillons d’entrée précédents et des coefficients du filtre h

Considérons le cas N=4 :

\( y(n)= h_0.x(n)+h_1.x(n-1)+h_2.x(n-2)+h_3.x(n-3) \)

Passons de cette équation de récurrence à la transformée en z :

\( Y(z)= h_0.X(z)+h_1.z^{-1}.X(z)+h_2.z^{-2}.X(z)+h_3.z^{-3}.X(z) \)

\( Y(z)= \left( h_0+h_1.z^{-1}+h_2.z^{-2}+h_3.z^{-3} \right ).X(z) \)

\( Y(z)=H(z).X(z) \)

avec y(n) de la forme : \( y(n)= \sum_{k=0}^{N-1} h_k.x(n-k) \)

et \( H(z)= \sum_{k=0}^{N-1} h(k).z^{-k} \)

Rappelons la définition de la transformée en z : \( z= e^{sT_e} \)

s’agissant d’un filtre, nous nous intéressons au comportement de H en fonction de la fréquence.
Nous nous trouvons donc dans le cas particulier où \( s=j\omega \)
\( z= e^{j\omega.T_e} \)

Ainsi, la Transformée de Fourier Discrète ( TFD ) de H est :

\( H(f) = \sum_{k=0}^{N-1} h(k).e^{-j2\pi f k } \)

Revenons au cas idéal, pour lequel le nombre d’échantillons serait infini :

\( H_{ideal}(f) = \sum_{k=-\infty}^{+\infty} h(k).e^{-j2\pi f k } \)

Calcul de la Transformée de Fourier Discrète Inverse :

\( h_{ideal}(n) = \frac{1}{2\pi} \int_{-\pi}^{+\pi} H_{ideal}(f) e^{j2\pi f n T_e }df \)

Considérons le filtre passe bas ideal :

La réponse impulsionnelle est donc :

\( h_{ideal}(n) = \frac{1}{2\pi} \int_{-F_c}^{+F_c} 1. e^{j2\pi f n T_e }df \)

\( h_{ideal}(n) = 2.F_e \frac{sin(2\pi n F_c)}{2\pi n F_c} = 2.F_e sinc(2\pi n F_c) \)

Réalisation du Filtre

Problème : cela correspond à une séquence infinie ( donc impossible à réaliser avec une boucle de calculs) .
Il faut donc tronquer n pour avoir une réponse finie ( on ne peut pas réaliser une multiplication-accumulation d’une infinité d’échantillons à chaque période ) .

Pour réaliser le filtre, nous allons multiplier \( h_{ideal}(n) \) par une fenêtre rectangle.
Cela aura bien sûr comme effet de dégrader l’effet du filtrage, mais c’est une condition nécéssaire pour le réaliser.

En effet La Transformée de fourier d’un produit de signaux temporels correspond à la convolution des tranformées de fourier de chacun des signaux.

\( h(n)=h_{ideal}(n).rect(n) \)

avec :

Ex pour N=4:

\( h(n)=h_d(0).1 + h_d(1).1 + h_d(2).1 + h_d(3).1 + h_d(4).0 + h_d(5).0 + … \)

ATTENTION : il s’agit bien ici d’une multiplication en temporel

Ainsi, dans le cas où N=21, nous retenons 21 coefficients de \( h_{ideal}(n) = 2.F_e sinc(2\pi n F_c) \)

Notons qu’en numérique la notion de causalité est relative, étant donné que l’on traite “N échantillons précédents mémorisés”

Avantages / Inconvénients

Influence de l’ordre du filtre

Bien évidemment, en augmentant l’ordre du filtre, les caractéristiques sont meilleures ( pente plus prononcée notamment ).
Attention toutefois, en terme de réalisation il faut pouvoir réaliser le calcul entre 2 acquisitions d’un échantillon d’entrée.

Influence du type de fenêtre

L’utilisation d’une fenêtre rectangulaire induit le phénomène de gibbs en fréquentiel, ce qui altère la caractéristique.

Il existe d’autres fenêtres pour des caractèristiques meilleures.


Script Scilab pour générer les figures ci dessus