Td traitement du signal matlab -Traitement de signal - Télé
Télécharger PDFIntroduction à l'Analyse et la Synthèse de Filtres avec Matlab
Matlab, avec sa boîte à outils Signal Processing, offre une multitude de fonctionnalités essentielles pour l'ingénierie du signal. Ces outils couvrent la génération de signaux, leur analyse (statistique, spectrale), l'étude des systèmes linéaires (fonction de transfert, pôles et zéros), ainsi que le filtrage et la synthèse de filtres.
Dans cet article, nous nous concentrerons sur les fonctions de Matlab dédiées à la représentation fréquentielle des signaux et systèmes linéaires, ainsi qu'aux opérations de filtrage et de synthèse de filtres.
1. Représentation des Signaux et Systèmes
1.1 Représentation Temporelle
Un signal numérique échantillonné est naturellement représenté dans Matlab comme un vecteur de valeurs en fonction du temps.
- L'autocorrélation mesure la similitude d'un signal avec une version décalée de lui-même, révélant des motifs récurrents.
- La fonction de transfert caractérise la relation entre l'entrée et la sortie d'un système dans le domaine temporel.
1.2 Représentations Fréquentielles des Signaux
La Transformée de Fourier Discrète (TFD) d'un signal de N points est calculée efficacement par l'algorithme de la Transformée de Fourier Rapide (FFT) dans Matlab. Le résultat est un signal (à valeurs complexes) de N points. Ce signal est périodique avec une période égale à la fréquence d'échantillonnage (Fe).
Le vecteur des fréquences associé peut être obtenu par exemple avec (0:N-1)/N*Fe. Pour une visualisation centrée, la fonction fftshift (qui effectue un décalage des vecteurs) peut être utilisée pour représenter le spectre sur l'intervalle [-Fe/2, Fe/2].
D'autres transformations comme la Transformée en Cosinus Discrète (DCT) sont également disponibles pour l'analyse fréquentielle.
1.3 Représentations Fréquentielles des Systèmes
Matlab permet de calculer la réponse en fréquence pour les systèmes analogiques et numériques :
- Pour un système analogique, la réponse en fréquence est donnée par
freqs(b,a,w), oùwest le vecteur des pulsations (en radians par seconde). - Pour un système numérique, la réponse en fréquence est obtenue via
freqz(b,a,f,fe), oùfest le vecteur des fréquences (en Hertz) etfela fréquence d'échantillonnage.
Matlab utilise des pulsations pour les systèmes analogiques et des fréquences (voire des fréquences normalisées) pour les systèmes numériques.
2. Filtrage et Synthèse de Filtres
2.1 Filtrage de Signaux
Le filtrage d'un vecteur de signal x par un filtre numérique défini par ses coefficients b (numérateur) et a (dénominateur) est effectué par la fonction filter(b,a,x). Les conditions initiales de l'équation de récurrence peuvent être spécifiées en entrée de la fonction filter à l'aide de filtic.
2.2 Synthèse de Filtres RIF (Réponse Impulsionnelle Finie)
Il existe différentes méthodes pour synthétiser des filtres RIF qui approximant un filtre idéal :
2.2.1 Troncature de la Réponse Impulsionnelle (fir1)
La fonction fir1(n,fn,type,window) synthétise un filtre RIF simple (passe-bas, passe-haut, passe-bande ou coupe-bande) par troncature et fenêtrage de la réponse impulsionnelle du filtre numérique idéal.
nest l'ordre du filtre (longueur de la réponse impulsionnelle moins un).fnindique la ou les fréquences de coupure, normalisées par rapport à la fréquence de Nyquist (0 ≤ fn ≤ 1).typeest une chaîne de caractères spécifiant le type de filtre ('high' pour passe-haut, 'stop' pour coupe-bande ; omis pour passe-bas et passe-bande).windowest un vecteur correspondant à la fenêtre appliquée (par défaut, une fenêtre de Hamming). Matlab propose plusieurs fonctions de fenêtrage :bartlett,blackman,boxcar(rectangulaire),chebwin(Chebychev),hamming,hanning,kaiser,triang(triangulaire).
2.2.2 Échantillonnage de la Réponse en Fréquence (fir2)
La fonction fir2(n,fn,m,window) synthétise un filtre RIF par échantillonnage de la réponse en fréquence du filtre analogique idéal, suivi d'un fenêtrage de la réponse impulsionnelle.
nest l'ordre du filtre.fnest le vecteur des fréquences normalisées (0 ≤ fn ≤ 1) définissant le filtre idéal comme linéaire par morceaux.mest le vecteur des amplitudes de la réponse en fréquence du filtre idéal, aux fréquences spécifiées parfn.
2.2.3 Méthode des Moindres Carrés (firls)
La fonction firls(n,fn,m) synthétise un filtre RIF qui approche au mieux, au sens des moindres carrés (norme L2), la réponse en fréquence du filtre analogique idéal.
nest l'ordre du filtre.fnest le vecteur des fréquences normalisées (0 ≤ fn ≤ 1). Contrairement àfir2, ces fréquences sont prises deux par deux dansfirlspour définir des bandes de fréquences où la réponse idéale n'est pas spécifiée (bandes de transition).mest le vecteur des amplitudes de la réponse en fréquence du filtre idéal aux fréquencesfn.
2.2.4 Méthode de Remez (remez)
La fonction remez(n,fn,m) synthétise un filtre RIF qui approche au mieux, au sens du minimax (norme L∞), la réponse en fréquence du filtre idéal. Ses paramètres sont similaires à ceux de firls. La fonction remezord permet d'estimer l'ordre n nécessaire pour construire un filtre avec une déviation maximale donnée.
2.3 Synthèse de Filtres RII (Réponse Impulsionnelle Infinie)
Les principales méthodes de synthèse de filtres RII procèdent par discrétisation d'un filtre analogique. Matlab fournit des fonctions pour obtenir les pôles (p), zéros (z) et le gain (k) des filtres analogiques passe-bas normalisés (avec une pulsation de coupure unitaire) :
- Butterworth :
buttap(n)(aucune oscillation dans la bande passante ni dans la bande coupée). - Chebychev de type 1 :
cheb1ap(n, Rp)(oscillations de ripple inférieures àRpdB dans la bande passante). - Chebychev de type 2 :
cheb2ap(n, Rs)(oscillations de ripple supérieures àRsdB dans la bande coupée). - Elliptique :
ellipap(n, Rp, Rs)(oscillations dans la bande passante et la bande coupée, minimisant l'ordre pour un gabarit donné).
Pour obtenir une représentation de ces filtres en termes de numérateurs (b) et dénominateurs (a) de la fonction de transfert (transformée de Laplace de la réponse impulsionnelle), on utilise zp2tf(z,p,k).
2.4 Transformation des Fréquences et Discrétisation des Filtres
Matlab offre des fonctions pour transformer des filtres passe-bas analogiques normalisés en d'autres types de filtres (passe-haut, passe-bande, coupe-bande) ou pour les discrétiser :
- Transformation passe-bas vers passe-bas avec nouvelle fréquence de coupure :
lp2lp(b,a,W0). - Transformation passe-bas vers passe-haut :
lp2hp(b,a,W0).
Il existe également des fonctions pour la transformation passe-bas vers passe-bande et passe-bas vers coupe-bande, ainsi que pour la discrétisation des filtres analogiques en filtres numériques (par exemple, la méthode de la transformation bilinéaire ou de l'invariance impulsionnelle).
2.5 Estimation de l'Ordre des Filtres
Matlab possède des fonctions pour estimer l'ordre minimal n et la fréquence propre Wn nécessaires à la construction d'un filtre passe-bas, passe-haut, passe-bande ou coupe-bande entrant dans un gabarit donné :
[n, Wn] = buttord(Wp,Ws,Rp,Rs)pour les filtres de Butterworth.[n, Wn] = cheb1ord(Wp,Ws,Rp,Rs)pour les filtres de Chebychev de type 1.[n, Wn] = ellipord(Wp,Ws,Rp,Rs)pour les filtres elliptiques.
Les paramètres sont :
Wp: Bande passante. Pour un passe-bas, c'est la fréquence haute de la bande passante ; pour un passe-haut, c'est la fréquence basse ; pour un passe-bande, ce sont les fréquences basse et haute de la bande passante.Ws: Bande coupée. Pour un passe-bas, c'est la fréquence basse de la bande coupée ; pour un passe-haut, c'est la fréquence haute ; pour un passe-bande, ce sont les fréquences basse et haute de la bande coupée.Rp: Atténuation maximale (en dB) dans la bande passante (ripple).Rs: Atténuation minimale (en dB) dans la bande coupée.
Les fréquences Wn, Wp et Ws sont normalisées par rapport à la fréquence de Nyquist (Fe/2). Pour les filtres passe-haut et coupe-bande, leur ordre peut être calculé de la même manière que pour les filtres passe-bas et passe-bande en "inversant" les fréquences de 0 vers 1 et de 1 vers 0. Par exemple, l'ordre d'un passe-haut avec Wp=0.2 et Ws=0.1 est le même que celui d'un passe-bas avec Wp=0.8 et Ws=0.9.
FAQ
Qu'est-ce que la fréquence de Nyquist en traitement du signal ?
La fréquence de Nyquist est la moitié de la fréquence d'échantillonnage d'un signal numérique. C'est la fréquence maximale non ambiguë qui peut être représentée dans un signal échantillonné. Toutes les fréquences dans Matlab pour la conception de filtres numériques sont généralement normalisées par rapport à cette valeur.
Quelle est la différence entre un filtre RIF et un filtre RII ?
Un filtre RIF (Réponse Impulsionnelle Finie) a une réponse impulsionnelle de durée finie, ce qui le rend intrinsèquement stable et facile à concevoir pour des phases linéaires. Un filtre RII (Réponse Impulsionnelle Infinie) a une réponse impulsionnelle de durée infinie, est plus efficace en termes de ressources de calcul pour des spécifications de filtre similaires, mais peut être moins stable et difficile à concevoir pour des phases linéaires.
Comment choisir entre les méthodes de synthèse de filtres RIF (fir1, fir2, firls, remez) ?
Le choix dépend des spécifications de votre filtre. fir1 est simple pour des filtres standards avec fenêtrage. fir2 permet de spécifier une réponse en fréquence par morceaux. firls utilise la méthode des moindres carrés pour une meilleure approximation L2. remez (méthode de Parks-McClellan) est optimale au sens du minimax (erreur L∞), offrant le meilleur compromis pour des filtres avec des fronts de bande passante et coupée très abrupts.