Filtrage numérique: passe-bas et passe-haut

La fonction conv permet d'effectuer un filtrage FIR (attention aux effets de bord: la longueur du signal filtré est différente de celle du signal original).

La fonction filter permet de mettre en œuvre un filtrage FIR ou IIR par filtrage récursif. Par exemple

g = filter(b,a,f)

retourne la solution $ g$ de l'équation récursive

$\displaystyle \sum_{k=0}^N a_k g_{n-k} =\sum_{\ell=0}^M b_k f_{n-k}
$

Le choix $ a=\delta$ donne un filtrage FIR, c'est à dire un filtrage de convolution avec la suite finie $ b$. On peut en voir deux exemples dans la figure 2, pour des suites $ b$ constantes de longueur 1 et 10 respectivement.

Figure 2: Deux exemples de filtrage passe-bas effectués avec la fonction filter: $ L=2$ et $ L=10$.
Image filt1
Image filt2


  1. En utilisant la fonction randn, générer un signal pseudo-aléatoire de longueur donnée (par exemple, 256 ou 512); le représenter graphiquement, ainsi que son spectre (module carré de sa transformée de Fourier).
  2. En utilisant la fonction filter, effectuer un filtrage passe bas et un filtrage passe haut de la forme

    $\displaystyle y_n = \frac1{2} \left(x_{n}+x_{n-1}\right) ,\quad
y_n = \frac1{2} \left(x_{n}-x_{n-1}\right) .
$

    (on se persuadera par un calcul simple -i.e. une TFD-, qu'il s'agit bien de filtres passe-bas et passe-haut). On représentera sur un graphe le signal et sa version filtrée, et sur un autre leurs spectres respectifs.
  3. Même question avec le filtre défini par

    $\displaystyle y_n = \frac1{L}\sum_{k=0}^{L-1}x_{n-k}
$

Bruno Torresani 2009-02-18