Exercices discrete time signals sampling and quantization -T
Télécharger PDFSignaux à Temps Discret, Échantillonnage et Quantification
3.1 Résultats du Programme (RP) Traités par l'Activité
- Capacité à appliquer les connaissances en mathématiques et sciences pour résoudre des problèmes d'ingénierie.
- Capacité à identifier, formuler et résoudre des problèmes d'ingénierie.
- Capacité à utiliser les techniques, compétences et outils d'ingénierie modernes nécessaires à la pratique de l'ingénierie.
3.2 Résultats d'Apprentissage Visés par l'Activité
- Générer et tracer des signaux élémentaires à temps discret dans MATLAB.
- Simuler l'échantillonnage et la quantification de signaux dans MATLAB.
3.3 Contexte
Les signaux à temps discret, généralement notés ici comme `x(n)`, sont des signaux définis uniquement à des instants discrets `n`, qui est également appelé indice temporel. L'indice temporel `n` est un entier dans la plage `−∞ < n < ∞`. Souvent, `x(n)` est simplement une séquence de nombres, appelés échantillons, représentant un signal à temps continu ou un signal analogique. Tout au long du cours, nous aurons souvent besoin de générer des signaux à temps discret à partir de séquences élémentaires à temps discret telles que l'échantillon unitaire, l'échelon unitaire, la rampe unitaire, les séquences exponentielles et sinusoïdales. Les représentations fonctionnelles des signaux à temps discret élémentaires susmentionnés sont données ci-dessous.
Signaux Discrets Élémentaires et Leurs Représentations Fonctionnelles
| Signal à Temps Discret | Représentation Fonctionnelle | Description |
|---|---|---|
| Séquence d'Échantillon Unitaire (également appelée fonction delta ou impulsion unitaire) |
δ(n) = 1 pour n = 0 δ(n) = 0 pour n ≠ 0 |
Un signal nul partout sauf à n=0 où sa valeur est 1 (unité). |
| Séquence d'Échelon Unitaire |
u(n) = 1 pour n ≥ 0 u(n) = 0 pour n < 0 |
Un signal nul pour les valeurs négatives du temps et unitaire (égal à 1) pour les valeurs positives du temps, y compris zéro. |
| Séquence de Rampe Unitaire |
ur(n) = n pour n ≥ 0 ur(n) = 0 pour n < 0 |
Un signal qui augmente linéairement avec une pente unitaire pour n ≥ 0, et nul pour n < 0. |
| Séquence Exponentielle | x(n) = A αn u(n) | Peut être un signal en croissance ou en décroissance exponentielle, dépendant de la valeur de α. A est l'amplitude. |
| Séquence Sinusoïdale | x(n) = A cos(2πfn + φ) | Décrit une onde sinusoïdale discrète avec amplitude A, fréquence normalisée f et phase φ. |
Cette section couvre la synthèse et la visualisation des signaux à temps discret élémentaires, tandis que la section suivante aborde les principes fondamentaux de l'échantillonnage et de la quantification, qui sont les deux premières étapes de base de la conversion analogique-numérique (CAN).
3.4 Signaux à Temps Discret
La génération et le traçage des signaux à temps discret sont deux des compétences les plus importantes que nous allons développer ici. Bien que l'on puisse déduire de leur représentation fonctionnelle que les signaux élémentaires à temps discret courants sont théoriquement de durée infinie, les signaux créés dans MATLAB seraient de durée finie en raison de la quantité limitée de mémoire informatique disponible pour le stockage des vecteurs dont les éléments sont les échantillons du signal.
La Séquence d'Échantillon Unitaire (Impulsion Unitaire)
Une séquence d'échantillon unitaire δ(n) est un signal qui est nul partout sauf à n=0 où sa valeur est 1 ou unitaire. La séquence d'échantillon unitaire, également appelée impulsion unitaire, est probablement le signal élémentaire à temps discret le plus simple mais l'un des signaux les plus utiles dans de nombreuses applications telles que l'identification de systèmes inconnus.
Exemple 3.1 : Génération et tracé d'une séquence d'échantillon unitaire
Pour générer et tracer une séquence d'échantillon unitaire de durée finie δ(n), par exemple pour une plage de temps de n=-30 à n=30, un script MATLAB peut être utilisé. Le résultat serait une représentation graphique de cette séquence.
Exercice 3.1 : Modifier le script pour une fonction
Modifier le script MATLAB pour en faire une fonction qui génère, renvoie et trace une séquence d'échantillon unitaire couvrant la plage de temps de -M à M, où M est une entrée utilisateur. L'objectif est de créer des fonctions réutilisables pour la génération de signaux.
Autres Séquences Élémentaires
Une séquence d'échelon unitaire u(n) est un signal qui est nul pour les valeurs négatives du temps et unitaire (ou égal à 1) pour les valeurs positives du temps, y compris zéro. Une séquence de rampe unitaire ur(n) est un signal qui augmente linéairement avec son enveloppe ayant une pente unitaire. Une séquence exponentielle peut être soit un signal en croissance exponentielle, soit un signal en décroissance exponentielle. Les représentations fonctionnelles de ces séquences sont données dans le tableau ci-dessus.
Exemple 3.2 : Génération et tracé de signaux combinés
Il est possible de générer et de tracer, dans un seul fichier M et dans une seule fenêtre graphique, les trois signaux à temps discret suivants : (1) l'échelon unitaire ; (2) la rampe unitaire et ; (3) une exponentielle décroissante. Ces signaux peuvent s'étendre, par exemple, sur une plage de temps de n=-30 à n=30. Dans un script MATLAB, ces séquences peuvent être stockées dans des vecteurs. Pour une séquence exponentielle, l'amplitude A peut être 1, et sa base α = 0.85. La commande MATLAB pour tracer plusieurs signaux dans une seule fenêtre graphique est la commande `subplot`. La forme générale de la commande `subplot` est : `subplot(m,n,p)` où 'm' et 'n' sont respectivement le nombre de lignes et le nombre de colonnes de sous-graphiques qui divisent la fenêtre graphique entière, et 'p' est le pointeur ou l'indice qui indique à MATLAB où placer la commande de tracé actuelle.
Exercice 3.2 : Tracé de quatre signaux exponentiels différents
Écrire un script MATLAB qui génère et affiche en sous-graphiques les quatre signaux exponentiels différents. Cet exercice vise à explorer l'influence de la base α sur le comportement des signaux exponentiels.
Réflexion sur les signaux exponentiels :
Quelles sont les valeurs de α qui garantiront : (1) une décroissance exponentielle ? (Généralement, lorsque |α| < 1) ; (2) une croissance exponentielle ? (Généralement, lorsque |α| > 1) ; (3) une séquence à signe alterné avec une enveloppe de décroissance exponentielle ? (Généralement, lorsque α < 0 et |α| < 1) ; (4) une séquence à signe alterné avec une enveloppe de croissance exponentielle ? (Généralement, lorsque α < 0 et |α| > 1).
La Séquence Sinusoïdale
Un autre signal à temps discret élémentaire très important est la séquence sinusoïdale, dont la représentation fonctionnelle est `x(n) = Acos(2πfn + φ) = Acos(ωn + φ)`. Où `n` est l'indice temporel (entier), `A` est l'amplitude, `f` est la fréquence normalisée en cycles par échantillon, `ω=2πf` est la fréquence en radians par échantillon, et `φ` est la phase en radians. Notez qu'une sinusoïde à temps discret n'est périodique, avec une période N (un entier), que si la fréquence `f` est un nombre rationnel.
Exemple 3.3 : Génération et affichage de trois sinusoïdes discrètes
Générer et afficher en sous-graphiques trois sinusoïdes à temps discret couvrant la plage de temps de n=0 à n=30 avec les spécifications suivantes :
- Amplitude=1, N=2 échantillons par cycle, φ = 0
- Amplitude=5, N=4 échantillons, φ = 0
- Amplitude=1, N=16 échantillons par cycle, φ = −π/2
Un script MATLAB peut accomplir cette tâche. Les tracés de signaux produits montrent que, en général, des fréquences plus basses permettent de mieux visualiser le motif sinusoïdal qu'avec des fréquences plus élevées. On observe également que la troisième sinusoïde (avec φ = −π/2) est effectivement égale à une fonction sinus au lieu d'une fonction cosinus.
Exercice 3.3 : Tracé de signaux sinusoïdaux amortis
Écrire un script MATLAB qui génère et affiche en sous-graphiques des signaux spécifiques. Le deuxième signal, par exemple, peut être un produit d'une sinusoïde à temps discret et d'un signal exponentiel. Ces types de signaux sont également connus sous le nom de sinusoïdes amorties. Cet exercice permet d'explorer la création de signaux plus complexes à partir de signaux élémentaires.
Réflexion sur les paramètres des signaux :
Comment déterminer la valeur de la fréquence `f` pour un signal donné ? Pour un signal composé, comme une sinusoïde amortie, comment identifier les valeurs de la fréquence `f` et de la base `α` ? La compréhension de ces paramètres est cruciale pour l'analyse et la synthèse des signaux.
3.5 Échantillonnage et Quantification
La plupart des signaux que nous traitons numériquement aujourd'hui (par exemple, audio/parole, images, vidéo, signaux biomédicaux) proviennent de leur forme analogique originale, ce qui nous oblige à effectuer initialement un processus de conversion analogique-numérique (CAN). Les trois étapes générales du processus CAN sont : (1.) l'échantillonnage ; (2.) la quantification ; et (3.) le codage.
L'Échantillonnage
Le processus d'échantillonnage implique de prendre les valeurs du signal analogique ou à temps continu à des intervalles de temps réguliers, connus sous le nom de période d'échantillonnage ou simplement intervalle d'échantillonnage. L'inverse de la période d'échantillonnage, mesurée en échantillons par seconde (Hz), est appelée la fréquence d'échantillonnage. Le matériel de l'échantillonneur comprendrait généralement un circuit d'échantillonnage-blocage (sample-and-hold) afin de fournir au circuit de codage une tension d'entrée de niveau constant pendant un certain intervalle d'échantillonnage.
La Quantification
L'étape de quantification est simplement l'arrondi de chaque échantillon au niveau de quantification le plus proche. Rappelez-vous qu'un nombre fini de niveaux de quantification serait nécessaire dans un CAN afin que nous puissions finalement encoder ces niveaux en binaire (c'est-à-dire en 1 et 0) en utilisant un nombre fini de bits. Notez que dans toutes les CAN, l'erreur de quantification, due à l'arrondi des valeurs d'échantillon, ne peut être évitée.
Exemple 3.4 : Simulation de l'échantillonnage et de la quantification d'un signal sinusoïdal analogique
Simulons l'échantillonnage et la quantification d'un signal sinusoïdal analogique de la forme : `f(t) = Acos(2πf_a t)` où A = 5, `f_a` = fréquence en cycles par seconde = 400 Hz, `0 ≤ t ≤ 2.5` ms, `F_s` = fréquence d'échantillonnage en échantillons par seconde = 8 KHz. On assume que l'étape de quantification arrondit simplement les valeurs des échantillons à l'entier le plus proche (c'est-à-dire que les niveaux de quantification standard sont tous des entiers). Un script MATLAB peut être utilisé pour effectuer la simulation désirée. Dans un tel script, le signal discret `x` serait une sinusoïde à temps discret avec une fréquence normalisée `f = 400/8000 = 1/20`, et `n` serait l'indice temporel (par exemple, 0,1,2,…,20). La commande `round` simule l'arrondi ou la quantification des échantillons en utilisant un pas de 1. Le tracé de sortie montre les échantillons individuels pris du signal sinusoïdal analogique (représenté par un tracé continu). Le graphique en escalier représente les valeurs des échantillons quantifiés et maintenus. Le tracé en pointillés montre le motif de la sinusoïde quantifiée. La différence entre le tracé de la courbe continue et le tracé de la courbe en pointillés représente l'erreur de quantification.
L'Aliasing (Repliement de Spectre)
Une autre considération importante dans le processus d'échantillonnage est de s'assurer que l'aliasing ne se produit pas. Rappelez-vous de la théorie que l'aliasing se produirait chaque fois que la fréquence d'échantillonnage descend en dessous de deux fois la fréquence la plus élevée du signal, ou chaque fois que la fréquence du signal dépasse le taux de Nyquist (c'est-à-dire la moitié de la fréquence d'échantillonnage). Pour visualiser l'effet de l'aliasing dans le processus d'échantillonnage et de reconstruction, on peut considérer des tracés de signaux. Une courbe continue peut représenter un signal analogique périodique. Une séquence d'échantillons représente la séquence à temps discret générée par le processus d'échantillonnage qui utilise une fréquence d'échantillonnage inférieure au taux de Nyquist. Lors de la reconstruction ou de l'interpolation des échantillons du signal à temps discret, on observe qu'un certain signal de basse fréquence, non égal au signal de haute fréquence original, a été reconstruit à la place.
Exercice 3.4 : Expérience de l'aliasing
Un script MATLAB (`exer_3_4.m`) peut être exécuté pour produire des tracés illustrant l'effet de l'aliasing. Pour comprendre pleinement cet effet, il est utile de se poser des questions sur la longueur des signaux générés (par exemple, 'x', 'y', 'z') et le but des commandes MATLAB utilisées, comme `interp`, qui est souvent employée pour l'interpolation de signaux. Comprendre ces aspects permet d'apprécier comment un échantillonnage inadéquat peut mener à une reconstruction erronée du signal original.
Foire Aux Questions (FAQ)
- Qu'est-ce qu'un signal à temps discret et comment diffère-t-il d'un signal analogique ?
- Un signal à temps discret est un signal défini uniquement à des instants spécifiques et séparés (souvent des entiers), alors qu'un signal analogique (ou continu) est défini à tout instant. Les signaux discrets sont généralement des séquences d'échantillons obtenus à partir d'un signal analogique.
- Quel est le rôle de l'échantillonnage et de la quantification dans la conversion analogique-numérique (CAN) ?
- L'échantillonnage est la première étape de la CAN, où le signal analogique est mesuré à des intervalles de temps réguliers pour obtenir des échantillons. La quantification est la deuxième étape, où la valeur de chaque échantillon est arrondie à un niveau de quantification discret prédéfini. Ces deux étapes sont cruciales pour transformer un signal continu en une représentation numérique.
- Qu'est-ce que l'aliasing et comment peut-il être évité ?
- L'aliasing est une distorsion qui se produit lorsque la fréquence d'échantillonnage est trop faible par rapport à la fréquence la plus élevée du signal analogique. Cela entraîne une interprétation erronée des hautes fréquences comme des fréquences plus basses après la conversion numérique. Pour l'éviter, la fréquence d'échantillonnage doit être au moins le double de la fréquence maximale du signal analogique, conformément au théorème de Nyquist-Shannon.