Skip to content

Analyse des SLIT ​

Dans ce cours, nous nous intéressons spécifiquement à l'analyse des Systèmes Linéaires Invariants dans le Temps (SLIT) discrets modélisables par une équation de récurrence.

Équation de récurrence ​

Expression ​

Lorsqu'un système est modélisable par une équation de récurrence, le lien entre l'entrée x[n] et la sortie y[n] est donné par :

aLy[n+L]+⋯+a0y[n]=bKx[n+K]+⋯+b0x[n]

Lorsque le système est causal, K<L. Sous l'hypothèse de causalité, l'équation de récurrence peut également s'exprimer sous la forme :

aLy[n]=bKx[n+K−L]+⋯+b0x[n−L] −aL−1y[n−1]−⋯−a0y[n−L]

À titre d'exemple, le code Python suivant montre comment implémenter un filtre IIR d'ordre 2 :

python
# Filtre IIR d'ordre 2
# y[n] = b0*x[n] + b1*x[n-1] + b2*x[n-2] - a1*y[n-1] - a2*y[n-2]

# Initialisation des états (conditions initiales nulles)
x_n_1, x_n_2 = 0.0, 0.0
y_n_1, y_n_2 = 0.0, 0.0
y = []

for n in range(N):
    x_n = x[n]  # échantillon d'entrée courant

    # Calcul de la sortie
    y_n = b0*x_n + b1*x_n_1 + b2*x_n_2 - a1*y_n_1 - a2*y_n_2
    y.append(y_n)

    # Mise à jour des états
    x_n_2, x_n_1 = x_n_1, x_n
    y_n_2, y_n_1 = y_n_1, y_n

Fonction de transfert ​

Lorsque les conditions initiales sont nulles, la transformée en Z de la sortie s'exprime sous la forme Y(z)=H(z)X(z) où H(z) correspond à la fonction de transfert en Z du système.

Représentation d'un système discret dans le domaine en Z

Forme polynomiale ​

Pour un système régi par une équation de récurrence, la fonction de transfert du système est donnée par :

H(z)=Y(z)X(z)=bKzK+⋯+b1z+b0aLzL+⋯+a1z+a0

Forme Factorisée ​

Pour mettre en évidence les points singuliers de la fonction de transfert, il est possible de réexprimer la fonction de transfert sous une forme factorisée :

H(z)=G(z−z1)(z−z2)⋯(z−zK)(z−p1)(z−p2)⋯(z−pL)
  • les zk correspondent aux zéros de la fonction de transfert,
  • les pl correspondent aux pôles de la fonction de transfert,
  • G=bKaL est un facteur d'amplification.

Propriétés ​

Stabilité : Pour qu'un système à temps discret soit stable, il faut que tous les pôles de sa fonction de transfert soient inclus dans le cercle de rayon unité, c'est-à-dire |pl|<1.

Critère de stabilité : tous les pôles doivent être à l'intérieur du cercle unité

Valeur Initiale :

y[0]=limz→∞H(z)X(z)

Valeur Finale : Si la sortie converge,

y(∞)=limz→1(z−1)H(z)X(z)

Réponse Temporelle ​

Pour obtenir la réponse temporelle d'un système à une entrée x[n], deux solutions sont possibles.

Méthode de l'original ​

  1. Calcul de la transformée en Z de la sortie du système, c'est-à-dire Y(z)=H(z)X(z) où X(z) correspond à la transformée en Z de l'entrée.
  2. Décomposition en éléments simples de la sortie Y(z)/z, puis de Y(z).
  3. Retour à l'original en appliquant la transformée en Z inverse (utilisation des tables des transformées en Z).

Méthode via l'équation de récurrence ​

  1. Obtention de l'équation de récurrence donnant y[n] en fonction de y[l] (l<n) et x[k] (k≤n)
  2. Évaluation de la sortie y[n] en remplaçant les x[k] par leur valeur numérique.

Exemple ​

Réponse indicielle d'un système de premier ordre discret

Considérons un système de premier ordre défini par la fonction de transfert :

H(z)=Y(z)X(z)=1z−0.5

Les paragraphes suivants montrent comment obtenir la réponse indicielle à un échelon d'amplitude A du système en utilisant les deux techniques possibles.

Méthode de l'original

  1. Transformée en Z de la sortie :
Y(z)=1z−0.5X(z)=z(z−0.5)(z−1)A
  1. Décomposition en éléments simples :
Y(z)z=−2z−0.5A+2z−1A⇒Y(z)=−2zz−0.5A+2zz−1A
  1. Retour à l'original :
y[n]=−2(0.5)nAu[n]+2Au[n]=2(1−(0.5)n)Au[n]

À titre d'exemple pour A=1, les premiers échantillons en sortie sont :

y[0]=0y[1]=2(1−0.5)=1y[2]=2(1−0.25)=1.5y[3]=2(1−0.125)=1.75

Méthode via l'équation de récurrence

  1. Équation de récurrence :
Y(z)(z−0.5)=X(z)Y(z)=z−1X(z)+0.5z−1Y(z)

Nous obtenons alors :

y[n]=x[n−1]+0.5y[n−1]
  1. Évaluation de la sortie y[n] :
y[n]=Au[n−1]+0.5y[n−1]

À titre d'exemple pour A=1, les premiers échantillons en sortie sont :

y[0]=u[−1]+0.5y[−1]=0y[1]=u[0]+0.5y[0]=1y[2]=u[1]+0.5y[1]=1.5y[3]=u[2]+0.5y[2]=1.75

Réponse Fréquentielle ​

Expression ​

Il est possible de montrer que si x[n]=ejωnTe, la sortie s'exprime sous la forme y[n]=H(ejωTe)ejωnTe où H(ejωTe) désigne la réponse fréquentielle du système.

La réponse fréquentielle peut s'obtenir directement à partir de la fonction de transfert en posant :

z=ejωTe

Compte tenu des propriétés de périodicité et de symétrie, la réponse fréquentielle est le plus souvent déterminée pour 0≤ω≤ωe/2 où ωe=2πFe désigne la pulsation d'échantillonnage.

Représentation ​

Comme la réponse fréquentielle est généralement complexe, nous représentons le plus souvent :

  • son module |H(ejωTe)|, souvent exprimé en décibels (dB) : 20log10⁡|H(ejωTe)|
  • son argument arg⁡[H(ejωTe)], exprimé en degrés ou en radians.

Ces deux grandeurs sont représentées sur un diagramme de Bode, avec une échelle logarithmique en fréquence.

Exemple ​

Considérons un système discret de premier ordre de fonction de transfert :

H(z)=Kzz−a

La réponse fréquentielle s'obtient en posant z=ejωTe :

H(ejωTe)=KejωTeejωTe−a

Module ​

En utilisant ejωTe=cos⁡(ωTe)+jsin⁡(ωTe), le dénominateur s'écrit :

ejωTe−a=(cos⁡(ωTe)−a)+jsin⁡(ωTe)

Le module de la réponse fréquentielle est donc :

|H(ejωTe)|=K(cos⁡(ωTe)−a)2+sin2⁡(ωTe)=K1−2acos⁡(ωTe)+a2

Argument ​

L'argument de la réponse fréquentielle s'obtient par :

arg⁡[H(ejωTe)]=ωTe−arctan⁡(sin⁡(ωTe)cos⁡(ωTe)−a)
Diagramme de Bode d'un système discret de premier ordre ($a=0.7$, $K=1$)