Exercice 1 :
On considère le filtre idéal représenté sur la figure suivante :
- [1-a] Calculez un filtre causal, à 9 coefficients, par la
méthode des fenêtres, permettant d'approcher le filtre idéal. Vous utiliserez
une fenêtre de pondération rectangulaire.
- [1-b] Donnez l'équation aux différences et la réponse impulsionnelle du
filtre synthétisé. S'agit-t'il d'un filtre à réponse impulsionnelle finie ou
infinie ?
- [1-c] Quelle est la phase de la fonction de transfert en fréquence ?
Exercice 2 :
On cherche à synthétiser un filtre passe-bas numérique respectant le gabarit
suivant :
La fréquence de coupure est fc = 1kHz, la fréquence définissant la bande
atténuée est fa = 2kHz, et la fréquence d'échantillonnage est Fe = 16kHz.
Vous effectuerez la synthèse à partir d'une approximation de Butterworth dans le
domaine analogique. Les fonctions d'approximation sont de la forme 1/D(p), avec
- [2-a] Donnez les valeurs des pulsations normalisées.
- [2-b] Transposez le gabarit en un gabarit analogique et calculez l'ordre du
filtre de Butterworth à utiliser.
- [2-c] Calculez les coefficients du filtre numérique.
- [2-d] Donnez l'équation aux différences du filtre synthétisé. S'agit-t'il
d'un filtre à réponse impulsionnelle finie ou infinie ?
On désire maintenant synthétiser un filtre passe-bande de pulsation de
coupure basse w1 = 3p/8 et de pulsation de coupure haute
w2 = 5p/8, à partir du filtre synthétisé précédemment.
- [2-e] Donnez et représentez le gabarit numérique correspondant. Calculez et
donnez les coefficients du filtre.
- [2-f] Donnez l'équation aux différences, représentez la structure
d'implantation, sous la forme d'une structure DN, ou de la cascade de structures
DN.
Exercice 3 :
Vous disposez d'un langage de programmation permettant de définir des variables de
tous types, de tester des conditions, par exemple A==B, (égalité) A>B
(inégalité), d'effectuer des boucles pour/fin pour (for), des boucles
tant que / fin tant que (while), et
de définir des fonctions (plusieurs arguments d'entrée, un argument de sortie).
- [3-a] Écrire l'équation aux différences entre la sortie y(n) et l'entrée
x(n) correspondant à la fonction de transfert
H(z) = |
b0 + b1z-1 + b2z-2
1 - a1z-1 - a2z-2
|
|
|
- [3-b] Écrire une fonction calculant la sortie du filtre y à
l'instant n si les paramètres d'entrée sont x, l'entrée à l'instant n,
x1 et x2 les entrées aux instants n-1 et n-2,
y1 et y2 les sorties aux instants n-1 et n-2, et b0, b2, b2, a1,
a2 les paramètres du filtre. L'appel de la fonction est ainsi de la forme
y=filtre(x,x1,x2,y1,y2,a1,a2,b0,b1,b2).
- [3-c] Vous disposez d'une variable Entrée qui est à 1 tant que le flux
d'entrée x(n) existe, d'une fonction qui permet de faire l'acquisition d'une
nouvelle valeur : x=in() et d'une fonction qui permet de diriger la sortie
calculée vers un port de sortie out(y). Écrire la boucle qui permet
d'effectuer l'acquisition, le calcul du filtrage et la sortie des valeurs
filtrées. Vous prendrez les éventuelles conditions initiales à 0.
Si vous ne désirez pas utiliser le << méta-langage >> décrit brièvement
ci-dessus, vous pouvez
proposer un implantation dans le langage de votre choix (Basic, Fortran, Pascal, C, C++,
Assembleurs, langage de script Matlab, Perl...)
Rappels
Trigonométrie
sin(a) - sin(b) = 2sin( |
a-b
2
|
) cos( |
a+b
2
|
) |
|
Transposition passe-bas wc ® passe-bande
(coupure basse w1, haute w2)
z-1 ® - |
z-2 - |
2ab
b+1
|
z-1 + |
b-1
b+1
|
|
|
b-1
b+1
|
z-2 - |
2ab
b+1
|
z-1 + 1 |
|
|
|
File translated from TEX by TTH, version 1.67.