La Fransformée de Fourier Discrète sert à étudier et traiter des signaux numériques.
Elle est en particulier très utilisée pour le transfert d'informations.

Pour faciliter la transmission rapide et fidèle de données, la technique OFDM (Orthogonal Frequency Division Multiplexing) est utilisée dans de nombreux dispositif (ADSL, TNT, wifi, ...). Elle permet de diviser un canal de transmission en de nombreux canaux afin de réduire les effets de distorsions et d'augmenter le débit de transmission.
Dans son fonctionnement, la Transformée de Fourier discrète (TFD) est utilisée comme l'illustre le schéma suivant :

La transformée de Fourier discrète sert aussi dans la compression de données.

Rappels sur les nombres complexes

Un nombre complexe $z$ peut être écrit sous la forme $z=x+yi$ avec $x$ et $y$ deux réels et $i$ un nombre imaginaire tel que $i^2-1$.
$x$ s'appelle la partie réelle de $z$ et $y$ s'appelle la partie imaginaire de $z$.

Dans le plan complexe muni du repère orthonormé direct $(O~;~\overrightarrow{u}, ~\overrightarrow{v})$, on peut asocier à tout nombre complexe $z=x+iy$ un point $M$ de coordonnées $(x~;~y)$.
$z$ s'appelle l'affixe du point $M$.

Soit $M$ le point d'affixe $z$.
Le module de $z$, noté $| z |$, est la distance $OM$, c'est-à-dire $| z | = OM$.

module

Pour tout nombre complexe $z$ de forme algébrique $x+iy$ $(x\in\mathbb{R} \textrm{ et } y\in\mathbb{R})$ : $|z| = \sqrt{x^2+y^2}$

Dans le plan muni du repère orthonormal $(O ; \overrightarrow{u}, \overrightarrow{v})$, on appelle cercle trigonométrique $\mathcal{C}$ le cercle de centre $O$, de rayon $1$, pour lequel on choisit pour sens direct le sens inverse des aiguilles d’une montre.

Soit $z$ un nombre complexe non nul de point image $M$ du plan complexe, $N$ est le point d'intersection du cercle trigonométrique $\mathcal{C}$ et de la demi-droite $[OM)$.

On appelle argument de $z$ et on note arg(z) tout nombre $\theta$ dont le point $N$ est l'image sur le cercle trigonométrique $\mathscr{C}$.

argument

On se place dans un plan complexe muni d'un repère orthonormé direct $(O ; \vec{u},\vec{v})$.

  • Soient $z$ un nombre complexe non nul et $M$ le point image associé.

    $arg(z)$ est alors une mesure en radian de l'angle orienté entre les vecteurs $\vec{u}$ et $\overrightarrow{OM}$.

    On le note $\left(\vec{u} ; \overrightarrow{OM}\right)=arg(z) ~[2\pi]$.

  • Soient $z$ un nombre complexe non nul et $\vec{w}$ le vecteur image associé, On a $\left(\vec{u} ; \vec{w}\right)=arg(z) ~[2\pi]$.

argument

Soit $z$ un nombre complexe non nul de forme algébrique $x+iy$ ($x$ et $y$ réels).

Un argument de $z$ est un réel $\theta$ tel que $\left\{ \begin{array}{l!l} \cos(\theta)=&\dfrac{x}{|z|}\\[3pt] \sin(\theta)=&\dfrac{y}{|z|} \end{array}\right.$

calcul argument

Si $z$ est un nombre complexe non nul ayant pour pour module $r$ et pour argument $\theta$, alors $z$ s’écrit aussi :

Sur Xcas, pour un nombre complexe $z$, il suffit de saisir :

Racine $n$-ième de l'unité

Dans tout cette partie, le plan complexe est muni d'un repère orthonormé direct $(O~;~\overrightarrow{u}, ~\overrightarrow{v})$.

Soit $n$ un nombre entier supérieur ou égal à 2.
On pose $w$ le nombre complexe de forme algébrique $w=\cos\left(\dfrac{2\pi}{n}\right)+i\sin\left(\dfrac{2\pi}{n}\right)$.
On peut écrire ce nombre complexe sous la forme exponentielle $w=e^{i \frac{2\pi}{n}}$.
Pour tout entier naturel $k$ un entier naturel compris entre 1 et $n$, le nombre $w^k$ est appelé une racine $n$-ième de l'unité.

Ce nom de racine $n$-ième de l'unité vient du fait que l'on a la propriété suivante :

Soit $n$ un entier naturel supérieur ou égal à 2.
Pour tout entier $k$ compris entre 1 et $n$, $w^k$ est une solution complexe de l'équation $x^n=1$.

Le but est de découvrir les deux racines de l'unité dans le cas où $n=2$.
Soit $w=e^{i \frac{2\pi}{2}}$

  1. Calculer sur Xcas la forme algébrique de $w$ et de $w^2$.

  2. Placer les deux nombres complexes $w$ et $w^2$ dans le repère ci-contre :

Le but est de découvrir les quatre racines de l'unité dans le cas où $n=4$.
Soit $w=e^{i \frac{2\pi}{4}}$

  1. Calculer sur Xcas la forme algébrique de $w$, $w^2$, $w^3$ et $w^4$.

  2. Placer les quatre nombres complexes $w$, $w^2$, $w^3$ et $w^4$ dans le repère ci-contre :

Voici ci-dessous une activité Geogebra intégrée.

  1. Déplacer le curseur rouge $k$ afin de visualiser la position de $w^k$ lorsque $w=e^{i \frac{2\pi}{n}}$ et $n=10$.
    À quel ensemble géométrique semblent appartenir l'ensemble des 10 nombres complexes $w^k$ lorsque $k$ varie entre 1 et 10.

  2. Changer la valeur du curseur $n$.
    La conjecture sur l'ensemble géométrique est-elle confirmée ou infirmée ?

  3. Sélectionner les deux cases à cocher afin de vérifier la conjecture émise.

Les points d'affixes $w$, $w^2$, ..., $w^{n-1}$ et $w^n$ sont les sommets d'un polygone régulier à $n$ côtés inscrit sur le cercle de centre l'origine et de rayon 1.

Échantillonnage

Acquisition

Comme vu dans le premier chapitre sur la transformée en $Z$, pour transformer un signal analogique en un signal numérique, il faut le discrétiser.
Pour cela, on prélève régulièrement des échantillons du signal analogique pour le rendre discret. Ainsi, pour échantillonner un signal continu $t\mapsto x(t)$, on prend ainsi des valeurs de $x(t)$ à des intervalles de temps réguliers : tous les $T_e$, nombre appelé période d'échantillonnage, c'est-à-dire à une fréquence $f_e=\dfrac{1}{T_e}$ appelée fréquence d'échantillonnage.
Le signal causal échantillonné correspond à la suite notée $(x(n))$ définie pour tout entier $n$ par $x(n)=x(n T_e)$.

Voici ci-dessous une activité Geogebra intégrée :

  1. En déplaçant le curseur rouge $n$, visualiser graphiquement le signal causal discret échantillonné $(x(n))$ dans le cas d'une période d'échantillonnage de 0.5.

  2. Modifier la période d'échantillonnage ave le curseur bleu $T$ afin de visualiser le signal causal discret échantillonné $(x(n))$ dans le cas d'autres périodes d'échantillonnage.

L'acquisition numérique ne doit pas détériorer le signal. On doit conserver au travers de la numérisation l'information utile.
Cette information dépend de la nature du signal et de son utilisation :

Théorème de Shannon

Pour échantillonner un signal sans perte d'information, les échantillons doivent être régulièrement espacés à une fréquence d'échantillonnage $f_e$ strictement supérieure au double de la fréquence maximale $f_{max}$ présente dans ce signal : $f_e\ge 2 f_{max}$.

Ainsi, dans le cas particulier d'un signal sinusoïdal de période $T$, il faut avoir strictement plus de 2 points par période du signal ; si $T_e$ est la période d'échantillonnage, alors : $T_e \lt \dfrac{T}{2}$.

Voici ci-dessous un signal périodique représenté sur Geogebra.

Ce signal représente la fonction $s$ définie par $s(t)=\sin(2\pi \times t) - \dfrac{2}{3} \sin(3\pi \times t) - \dfrac{1}{2} \sin(5\pi \times t)$, $t$ étant en secondes.

  1. Déterminer graphiquement la période $T$ du signal périodique.

  2. Déterminer la fréquence d'échantillonnage minimale $f_{e_{min}}$ limite d'après le théorème de Shannon.

    S'aider de l'expression de $f(t)$ pour déterminer cette fréquence.

    Rappel : un signal sinusoïdal de période $f$, sans déphasage, est de la forme $\sin(2\pi f \times t)$.

  3. Quelle est alors la période correspondant à cette fréquence d'échantillonage minimale $f_{e_{min}}$ ?

Code de déblocage de la correction :

Transformée de Fourier Discrète

Définition

Soit $n$ un entier naturel supérieur ou égal à 2.

La Transformée de Fourier Discrète (TFD) d'une séquence $(x_0, x_1,... , x_{n-1})$ de $n$ nombres complexes est une séquence $(X_0, X_1, ... ,X_{n-1})$ de $n$ nombres complexes définis pour chaque entier $p$ compris entre $0$ et $n-1$ par : $X_p=\displaystyle \sum_{k=0}^{k=n-1}x_k\times w^{-k\times p}$ où $w=e^{i\frac{2\pi}{n}}$.
En simplifiant et en développant la somme, on peut écrire pour tout entier $p$ compris entre $0$ et $n-1$ : $X_p=x_0\times e^{-i\times 0}+x_1\times e^{-i\frac{2\pi\times p}{n}}+x_2\times e^{-i\frac{2\pi\times 2p}{n}} +x_3\times e^{-i\frac{2\pi\times 3p}{n}}+...+x_{n-2}\times e^{-i\frac{2\pi\times (n-2)p}{n}}+x_{n-1}\times e^{-i\frac{2\pi\times (n-1)p}{n}}$.

On considère la séquence initiale $(2~;~3)$.

Ici, $n=2$.

La transformée de Fourier discrète de la séquence $(2~;~3)$ est $(5~;~-1)$.

  1. Calculer à la main la transformée de Fourier discrète de la séquence $(5~;~-1)$

  2. Que remarquez-vous en utilisant l'exercice précédent ?

Montrer que le dernier terme $X_3$ de la transformée de Fourier discrète pour la séquence $(6~;~0~;~1~;~3)$ est $5-3i$.

Code de déblocage de la correction :

Les termes d'une transformée de Fourier discrète sont des nombres complexes.

Pour obtenir sur Xcas la transformée de Fourier discrète d'une séquence, il suffit d'utiliser l'instruction fft.

Pour obtenir la tranformée de Fourier discrète de la séquence $(6~;~0~;~1~;~3)$, il suffit de saisir fft([6,0,1,3]).
On obtient comme résultat [10.0,5.0+3.0*i,4.0,5.0-3.0*i].

La transformée de Fourier discrète correspond à une transformée en $Z$, évaluée sur les racines $n-ième$, pour un signal limité aux $N$ valeurs non nulles $(x_0, x_1,..., x_{N-1})$.

Lien entre la transformée de Fourier discrète et le spectre fréquentiel du signal

On considère le signal rectangulaire définie par $(x)=(0~;~1~;~1~;~1~;~1~;~0~;~0~;~0)$.

  1. Déterminer à l'aide de Xcas, la transformée de Fourier discrète $(X)$ du signal $(x)$.

  2. Tracer sur Xcas le nuage de points donnant les modules des termes de la transformée de Fourier discrète $(X)$.

    Si cette transformée est stockée sur Xcas dans une variable X, pour obtenir le nuage de points donnant les modules de la TFD, il suffit de saisir : nuage_points([0,1,2,3,4,5,6,7],abs(X)).

    • Le premier argument correspond à la liste des abscisses des points du nuage de points.

    • Le second argument correspond à la liste des ordonnées des points du nuage de points.

  3. En ne considérant que les termes $X_1$, $X_2$, ..., $X_7$, que pouvez-vous dire du nuage partiel de points ?

Voici ci-dessous un document Geogebra représentant un signal $s$, la courbe orangée, signal échantillonné durant un certain $Temps$ suivant une fréquence d'échantillonage $F_e$.
Sur le second graphique est un diagramme en bâtons.
Chaque bâton a pour abscisse $k\times \dfrac{F_e}{N}$, où $N$ représente le nombre d'échantillons, $F_e$ la fréquence d'échantillonnage et $k$ est un entier compris entre $0$ et $N-1$.
Chaque bâton a pour hauteur la valeur du module du nombre complexe $X_k$, représentation la composante d'indice $k$ de la transformée de Fourier discrète du signal échantillonné.

  1. Déplacer le curseur $F_e$.
    Que pouvez-vous dire du graphique en bâtons ?

  2. Lorsque le diagramme est très net, quelles semblent être les fréquences liées aux bâtons visibles ? Quel lien avec le signal $s$ ?

  3. Lorsque le diagramme est très net, quel lien pouvez-vous faire entre le rapport des hauteurs des bâtons visibles avec des éléments de l'expression du signal $s$ ?

  4. Lorsque le diagramme est très net, quel lien pouvez-vous faire entre la hauteur des bâtons visibles, des éléments du signal $s$ ainsi que le nombre $N$ ?

Code de déblocage de la correction :

Il y a un lien entre l'amplitude associée à une raie et la transformée de Fourier discrète mathématique :
La première moitié de la transformée de Fourier discrète $(X_0, X_1, X_2, ..., X_{N-1})$ des échantillons d'un signal approche, à un coefficient constant près, le spectre du signal aux fréquences $0$, $\dfrac{F_e}{N}$, $\dfrac{2\times F_e}{N}$, $\dfrac{3\times F_e}{N}$, ..., $\dfrac{F_e}{2}$ (c'est-à-dire la première moitié des fréquences de le forme $\dfrac{k\times F_e}{N}$ avec $k$ compris entre 0 et $N-1$).

Plus précisément :

Ainsi, l'étude de la transformée de Fourier discrète revient à effectuer une annalyse spectrale du signal.

On considère le signal analogique rectangulaire périodique de période 1 défini sur $[0;1[$ par par $s(t)=1$ si $t\in[0;0.5[$ et $s(t)=0$ sinon. $t$ est en seconde. Ce signal est représenté ci-dessous :

  1. Déterminer l'ensemble des termes du signal échantillonné sur $[0;1[$ avec une fréquence de 10 Hz.

  2. On considère désormais le signal défini par $(x)=(1~;~1~;~1~;~1~;~1~;~0~;~0~;~0~;~0~;~0)$.
    Déterminer à l'aide de Xcas, la transformée de Fourier discrète $(X)$ du signal $(x)$.

  3. Déterminer grâce à Xcas l'ensemble des modules de la transformée de Fourier discrète $(X)$.

    La fonction abs permet d'obtenir le module d'un nombre complexe mais aussi d'un ensemble de nombres complexes.

  4. Représenter grâce à un diagramme en bâtons la successions des valeurs absolues de $X_k$, lorsque $k$ varie entre 0 et 9.

    Essayer sur Xcas, l'instruction batons([0,1,2,3,4,5,6,7,8,9],abs(X)), le premier argument représente l'ensemble des abscisses des origines des bâtons, le second argument représente l'ensemble des hauteurs des bâtons.

  5. Reproduire et compléter le tableau ci-dessous où $|X_k|$ représente le module du terme d'indice $k$ de la transformée de Fourier discrète $(X)$ et $A_k$ représente l'amplitude de la composante de fréquence $0.1\times k$ du signal.

    $k$ $|X_k|$ $A_k$
    0 ... ...
    1 ... ...
    2 ... ...
    3 ... ...
    4 ... ...
    5 ... ...
  6. Déterminer l'expression de la fonction $f$ périodique qui va approché le signal rectangulaire initial et défini par $f(t)=A_0+A_1\times \sin(2\pi\times 1\times t)+A_2\times \sin(2\pi\times 2\times t) +A_3\times \sin(2\pi\times 3\times t)+A_4\times \sin(2\pi\times 4\times t)+A_5\times \sin(2\pi\times 5\times t)$, où les $A_k$ sont les coefficients déterminés dans le tableau précédent.

  7. Comparer le signal initial $s$ du signal approché $f$.

    Vous pouvez représenter le signal analogique $s$ sur Geogebra avec s(x) = Si[x - floor(x) < 0.5, 1,0]

  8. Comparer le signal discrétisé $(x))$ avec le signal approché $(f(0.1\times k))_{0\le k\le 9}$.

    Vous pouvez représenter le signal approché sur Xcas avec nuage_points([seq(0.1*k,k=0..9)],[seq(f(0.1*k),k=0..9)])

  9. Que suffirait-il de faire pour améliorer la précision de la fonction approchée ?

Code de déblocage de la correction :

TP1 : échantillonnage d'un signal

Ce TP est important car vous y découvrerez des instructions sur Xcas qui serviront dans beaucoup d'exercices suivants.

Partie A : un premier signal constitué de deux composantes

On considère la fonction $f$ définie par $f(t)=5\cos(2\pi\times t)+7\sin(8\pi\times t)$ sur $[0;1]$.

Le but est d'échantillonner le signal $f$ à la fréquence de 8 Hz puis de représenter le signal sur $[0;1]$ ainsi que les points d'échantillonnage.

  1. Nombre d'échantillons et période :

    1. Comme la fréquence d'échantillonnage $F_e$ est de 8Hz, combien de mesures vont être prises en 1 seconde ?

    2. Quelle est la période de temps $T_e$ séparant deux mesures de l'échantillonnage ?

  2. Représentation du signal sur Xcas :

    1. Saisir sur Xcas la fonction $f$ correspondant au signal.

    2. Pour obtenir la courbe représentant le signal sur $[0;1]$, il suffit de saisir plot(f(t),t=0..1).

      Pour que le signal soit bien visible, cliquer sur auto puis sur Autoscale (full).

  3. Création du vecteur des instants d'échantillonnage :

    1. On utilise une fréquence d'échantillonnage Fe de 8Hz.
      Saisir sur Xcas l'instruction suivante à compléter : Fe:=....

    2. On veut une période d'échantillonnage $T$ de 1 seconde car on étudie le signal sur $[0;1]$.
      Saisir sur Xcas l'instruction suivante à compléter : T:=....

    3. On veut la liste des instants d'échantillonnage.
      On peut l'obtenir directement avoir l'instruction tps:=soundsec(T,Fe).
      La période de l'échantillonnage est-elle correcte ?

    4. On peut vérifier directement le nombre de mesures obtenues en obtenant la longueur de la liste des instants avec l'instruction size(...).
      Le nombre $n$ d'instants d'échantillonnage du signal est ici ..., en ayant saisi sur Xcas l'instruction suivante à compléter : n:=....

  4. Création du vecteur des valeurs du son aux instants d'échantillonnage :

    Saisir sur Xcas l'instruction suivante : echant:=f(tps).

  5. Afficher le nuage de points de l'échantillonnage avec le signal complet :

    Saisir sur Xcas l'instruction suivante : plot(f(t),t=0..1) , nuage_points(tps,echant).
    A-t-on un échantillonnage correct à une fréquence de 8 Hz ?

  6. Code de déblocage de la correction :

  7. Enregistrer votre travail déjà efffectué sur Xcas puis modifier les commandes précédemment saisies avec d'obtenir la visualisation du signal avec les valeurs échantillonnées avec une fréquence désormais de 50 Hz.

  8. Code de déblocage de la correction :

Partie B : un second signal constitué de trois composantes

On considère désormais la fonction $f$ définie par $f(t)=3\cos(\pi \times t)-4\cos(10\pi t)+2\sin(3\pi t)$ sur $[0;2]$.

Échantillonner le signal $f$ à la fréquence de 100 Hz puis réprésenter le signal sur $[0;2]$ ainsi que les points d'échantillonage.

Code de déblocage de la correction :

TP2 : Lien entre transformée de Fourier et amplitude de chaque composante d'un signal

Ce TP est important car vous y (re)découvrerez des instructions sur Xcas qui serviront dans beaucoup d'exercices suivants.

On considère la fonction $f$ définie par $f(t)=10\cos(2\pi t)+4\sin(9\times 2\pi t)+1\cos(5\times 2\pi t)$ sur $[0;2]$.
Le but est d'échantillonner le signal $f$ à la fréquence de 100 Hz puis d'étudier les valeurs significatives de la transformée de Fourier discrète.

Partie A : échantillonnage (s'aide si besoin de l'exercice précédent)

  1. Saisir dans Xcas le signal $f$ et représenter graphiquement ce signal.

    Utiliser l'instruction plot comme vu dans l'exercice précédent.

  2. Créer la séquence tps des instants d'échantillonnage.

  3. Créer la séquence echant donnant la séquence des valeurs du signal aux instants d'échantillonnage.

Code de déblocage de la correction :

Partie B : Transformée de Fourier discrète

  1. Créer la séquance des fréquences $\dfrac{k F_e}{n}$ liées à l'échantillonnage, où $n$ représente le nombre d'échantillons, $F_e$ est la fréquence d'échantillonnage et $k$ est un entier compris entre $0$ et $n-1$.

    Vous pouvez utiliser l'instruction seq() qui permet d'obtenir une suite de nombres définie à partir d'une formule. Saisir un script proche de freq:=seq(formule,variable ici k,première valeur de la variable k,dernière valeur de la variable k).

  2. Obtenir la transformée de Fourier notée TFD de l'échantillon echant.

    Utiliser la commande fft().

  3. On s'intéresse au spectre des amplitudes.

    Obtenir le module de la transformée de Fourier notée modTFD de l'échantillon echant.

    Utiliser la commande abs().

  4. Afficher le résultat dans un graphique, on va afficher un diagramme en bâtons des modules de la transformée de Fourier discrète en fonction de freq.
    Pour cela, saisir : batons(freq[0..n/2-1],modTFD[0..n/2-1]).

    Cliquer sur Autoscale full si l'affichage est incomplet.

    Pourquoi suffit-il de se contenter de la première moitié des valeurs des valeurs absolues obtenues dans modTFD ?

Code de déblocage de la correction :

Partie C : conclusion

  1. Comparer la valeur des modules non nuls et l'amplitude de la fréquence correspondante dans l'expression du signal $f$.

  2. Quelle formule de cours liant ces modules et leur fréquence correspondante retrouvez-vous ?

Code de déblocage de la correction :

Transformée de Fourier inverse

À chaque séquence $x$ correspond une seule et unique transformée de Fourier discrète $X$.

Il est possible de retrouver la séquence initiale $x$ (à $n$ valeurs) à partir de sa transformée de Fourier discrète $X$ par la formule :
pour entier naturel $k$ compris entre $0$ et $n-1$ : $\displaystyle x_k=\dfrac{1}{n}\sum_{p=0}^{p=n-1}X_p \times w^{p\times k}$, où $w=e^{i\frac{2\pi}{n}}$.

Cette égalité est une formule de réversibilité.

Pour obtenir sur Xcas la transformée de Fourier inverse d'une séquence X, il suffit de saisir ifft(X). (i pour inverse) !

On considère la séquence $(x)=(5,8,-3.1,6,0,2+i)$ où $i$ est le nombre complexe de module 1 et d'argument $\dfrac{\pi}{2}$.

  1. Déterminer l'expression de la transformée de Fourier discrète X de la séquence $(x)$.

  2. Déterminer la transformée de Fourier inverse de X.

  3. Que remarquez-vous ?

Code de déblocage de la correction :

TP3 : transmission et recomposition d'un son pur

Ce TP est important car vous y découvrerez des instructions sur Xcas qui serviront dans d'autres exercices suivants.

Partie A : échantillonnage d'un son pur de 50 millisecondes simulant une note LA 440 (fréquence 440 Hz)

On considère un son pur correspondant à une note La de fréquence 440 Hz.
On admet que ce signal est modélisé par la fonction $f$ définie par $f(t)=\sin(440\times 2\pi \times t)$.

  1. Créer la séquence des instants d'échantillonnage. Pour cela :

    1. On utilise une fréquence d'échantillonnage $F_e$ de 10000Hz.
      Compléter et saisir sur Xcas le script suivant : Fe:=....

    2. On veut une période d'échantillonnage $T$ de 0.05 seconde.
      Compléter et saisir sur Xcas le script suivant : T:=....

    3. Créer la liste des instants d'échantillonnage.

      S'aider l'exercice 12 TP1 pour trouver l'instruction pratique

    4. Déterminer le nombre d'instants d'échantillonnage du signal.
      Compléter et saisir sur Xcas le script suivant : n:=....

  2. Créer la séquence des valeurs du son aux instants d'échantillonnage.
    Compléter et saisir sur Xcas le script suivant : son:=....

  3. Afficher le nuage de points de l'échantillonnage.
    A-t-on bien l'allure d'un son pur échantillonné ?

    Utiliser l'instruction nuage_points(tps,son).

Code de déblocage de la correction :

Partie B : obtention du spectre d'amplitude grâce à la transformée de Fourier discrète

  1. Créer la séquence des fréquences $\dfrac{k F_e}{n}$ liées à l'échantillonnage.

    Pour cela, on peut utiliser l'instruction seq() qui permet d'obtenir une suite de nombres définies à partir d'une formule, comme vu dans le l'exercice 12 TP1.

  2. Déterminer sur Xcas la transformée de Fourier discrète TFD de l'échantillon son.

  3. On s'intéresse au spectre des amplitudes.

    1. Obtenir la séquence des modules de la transformée de Fourier discrète avec l'instruction abs().

    2. Afficher un diagramme en bâtons de représentant les modules en fonction de la séquence des fréquences.

      1. Utiliser l'instruction batons(frequences,modules).

      2. Cliquer sur Autoscale full si l'affichage est incomplet.

    3. Pourquoi est-il plus avantageux de transmettre l'information portée par la transformée de Fourier discrète plutôt que par le signal son initial ?

Code de déblocage de la correction :

Partie C : à partir de la transformée de Fourier discrète transmise, recomposition du signal initial

Rappel :
La transformée de Fourier Discrète est obtenue sur Xcas grâce à fft().
Pour obtenir la transformée inverse, il suffit d'utiliser la commande ifft().

  1. Déterminer le signal s, signal obtenu à partir de la trnaformée de Fourier discrète du son son, par transformée de Fourier discrète inverse.

  2. Quel type de nombres obtient-on dans le signal s ?

  3. Comparer les signaux initial son et final s en saisissant max(abs(s-son)) instruction qui évalue l'écart absolu maximal entre les deux signaux.

  4. Conclure quand à la possibilité de reconstruire le signal initial à partir de la transformée de Fourier discrète transmise.

Code de déblocage de la correction :

Partie D : modifications de la fréquence d'échantillonnage

Rappel :
La transformée de Fourier Discrète est obtenue sur Xcas grâce à fft().
Pour obtenir la transformée inverse, il suffit d'utiliser la commande ifft().

  1. Modifier le temps d'échantillonnage à 0.03 secondes.
    Comment est modifié le spectre des amplitudes obtenues avec la transformée de Fourier discrète ?

  2. En restant avec un temps d'échantillonnage à 0.03 secondes, modifier la fréquence d'échantillonnage à $F_e=900$.

    1. Que pensez de l'échantillonnage obtenu ?

    2. Peut-on encore retrouver l'information essentielle au niveau de la transformée de Fourier discrète ?

    Code de déblocage de la correction :

  3. En restant avec un temps d'échantillonnage à 0.03 secondes, modifier la fréquence d'échantillonnage à $F_e=700$.

    1. Que pensez de l'échantillonnage obtenu ?

    2. Peut-on encore retrouver l'information essentielle au niveau de la transformée de Fourier discrète ?

  4. Code de déblocage de la correction :

TP4 : débruitage d'un signal grâce à la transformée de Fourier discrète

N'hésitez pas à vous aider des exercices TP traités précédemment afin de savoir comment utiliser judicieusement les instructions sur Xcas.

Partie A : échantillonnage d'un son composé

  1. Créer une séquence tps des instants d'échantillonnage pour une durée de 1 s à 10000 Hz.

  2. Créer les variables fréquence d'échantillonnage Fe et nombre d'échantillons n.

  3. On crée un son s contenant quatre fréquences pures à 250 Hz, 400 Hz, 500 Hz et 900 Hz d'amplitude inférieure à 0.5, avec un déphasage : $s(t)= \dfrac{1}{3} \sin(2\pi \times 250 \times t)+ \dfrac{1}{2} \sin\left(2\pi \times 500 \times t+ \dfrac{\pi}{4}\right) + \dfrac{1}{4} \cos(400\times 2\pi \times t) - \dfrac{2}{5} \sin(2\pi t\times 900)$.

  4. Représenter le signal sur 1 seconde avec l'instruction plot.

  5. Définir la variable son permettant d'obtenir le signal échantillonné à 10000 Hz pendant 1 s.

Code de déblocage de la correction :

Partie B : écoute du son créé et analyse du spectre des fréquences

Il est possible d'entendre le son créé sur Xcas.

  1. Pour jouer le son créé, saisir successivement :

    1. writewav("TP4_son_initial.wav",2^14*son).

      Une fois le fichier de format .wav créé, Xcas renvoie 1 pour signifier la prise en compte correcte de l'instruction.

    2. audio:=readwav("TP4_son_initial.wav"),

    3. playsnd(audio)

    4. Si aucun son n'est perçu :

      1. aller dans le dossier du disque dur contenant la session de Xcas en cours,

      2. trouver le fichier TP4_son_initial.wav,

      3. le lire avec un logiciel de lecture audio proposé par l'ordinateur.

  2. Créer la séquence freq des fréquences $\dfrac{k F_e}{n}$ liées à l'échantillonnage.

    1. Créer la sequence TFD correspond aux valeurs de la transformée de Fourier discrète de son.

    2. Afficher le spectre des fréquences sous forme du diagramme en bâtons du module de TFD en fonction de freq.

    1. Pourquoi réduire la fréquence maximale affichée pour ce diagramme à 5000 Hz ?

    2. Le faire en saisissant sur Xcas.

    3. Pourrait-on facilement reconstruire le signal $s$ à partir des informations obtenues à partir de cette transformée de Fourier discrète ?

Code de déblocage de la correction :

Partie C : ajout d'un bruit aléatoire

  1. Pour ajouter le bruit au signal son :

    1. Saisir bruit:=randvector(n,loi_normale) pour créer une séquence de bruit aléatoire bruit suivant la loi normale.

    2. Saisir son_bruite:=son+bruit pour créer la séquence de son altéré par le bruit.

  2. Afficher le nuage de points du son bruité son_bruite pour le comparer au signal initial s en saisissant : nuage_points(tps,son_bruite, couleur=rouge), plot(s(t),t=0..1).

    Que pensez-vous de la qualité de l'échantillon bruite par rapport au signal initial ?

  3. Créer une version audio du son bruité et le comparer avec celui initial.

    1. writewav("TP4_son_bruite.wav",2^14*son_bruite

    2. TP4_son_bruite:=readwav("TP4_son_bruite.wav")

    3. playsnd(TP4_son_bruite)

  4. Créer la transformée de Fourier discrète TFD_bruite du son bruité son_bruite.

  5. Afficher le spectre des fréquences du signal bruité sous forme d'un diagramme en bâtons : représenter le module de TFD_bruite en fonction de freq en se limitant à 5000 Hz.

Code de déblocage de la correction :

Partie D : débruitage

Pour débruiter, il suffit d'enlever les fréquences de faible amplitude.

On décide ici arbitrairement de supprimer toutes les fréquences dont l'amplitude est inférieure au tiers de celle maximale.

  1. Déterminer la valeur de l'amplitude limite L en saisissant : L:=max(abs(TFD_bruite))/3.

  2. Créer la séquence TFD_debruite des amplitudes strictement supérieures à la valeur limite en saisissant : TFD_debruite:=seq(TFD_bruite[k]*(abs(TFD_bruite[k])>L),k,0,n-1).

    (abs(TFD_bruite[k])>L) vaut 1 s'il est vrai que abs(TFD_bruite[k])>L et 0 sinon.

    1. Représenter le diagramme en bâtons des valeurs de TFD_debruite jusqu'à la fréquence de 5000 Hz.

    2. Que remarquez-vous ?

  3. Appliquer la transformée de Fourier discrète inverse pour récupérer le son débruité dans la variable son_debruite.

  4. Créer un fichier de fromat .wav contenant le son du signal débruité avec l'instruction writewav.

  5. Comparer le son initial au son débruité.
    Que pensez-vous du son débruité par rapport au son initial ?

  6. Tracer successivement nuage_points(tps,son-son_bruite) et nuage_points(tps,son-son_debruite) pour comparer les écart en valeurs.
    Conclure quant à l'intérêt de la transformée de Fourier discrète pour débruiter un son bruité.

Code de déblocage de la correction :

L'oreille humaine peut entendre des sons dont la fréquence est comprise entre 20 Hz et 20000 Hz. Depuis les années 1970, la fréquence d'échantillonnage pour la "haute-fidélité" souvent utilisée pour échantillonner un son est de 44100 Hz ; ainsi le théorème de Shannon est respecté sous peu que le son capté soit d'abord filtré (par un filtre passe-bas) afin de ne conserver que les fréquences inférieures à 20000 Hz.

Pratiquement :

Écriture matricielle de la tranformée de Fourier discrète

Notons $x$ le vecteur $\begin{pmatrix} x_0\\x_1\\..\\x_{n-1} \end{pmatrix}$ donnant la séquence des $n$ valeurs à transformer.
Notons $X$ le vecteur $\begin{pmatrix} X_0\\X_1\\..\\X_{n-1} \end{pmatrix}$ donnant la transformée de Fourier discrète de la séquence $x$.

Considérons la matrice $W$ carrée de taille $n$ dont le terme de la ligne $i$ et de la colonne $j$ est : $w^{-(i-1)(j-1)}$, où $w=e^{i\frac{2\pi}{n}}$, c'est-à-dire la matrice : $W=\begin{pmatrix} 1&1&1&...&1&1\\1&w^{-1}&w^{-2}&...&w^{-(n-2)}&w^{-(n-1)} \\1&w^{-2}&w^{-4}&...&w^{-2(n-2)}&w^{-2(n-1)}\\...&...&...&...&...&... \\1&w^{-(n-2)}&w^{-(n-2)\times 2}&...&w^{-(n-2)(n-2)}&w^{-(n-2)(n-1)} \\1&w^{-(n-1)}&w^{-(n-1)\times 2}&...&w^{-(n-1)(n-2)}&w^{-(n-1)(n-1)} \end{pmatrix}$

La transformée de Fourier discrète $X$ peut être obtenue par le calcul matriciel suivant : $X=W\times x$.

Pour $n=6$, il suffit de saisir sur Xcas la matrice $W$ ainsi :

On peut par produit trouver la transformée de fourier discrète de $x=(0,1,1,1,0,0)$ :

On trouve par produit et grâce à fft que $X\approx \begin{pmatrix} 3\\-1 -1.732 i\\0\\-1\\0\\-1+1.732 i \end{pmatrix}$

La formule de réversibilité peut être écrite à l'aide du produit matriciel suivant : $x=\dfrac{1}{n}\times \overline{W} \times X$, où $W$ est la matrice de terme général $w^{-(i-1)(j-1)}$ avec $w=e^{i\frac{2\pi}{n}}$, où $\overline{W}$ est la conjuguée de $W$ et $X$ la transformée de Fourier discrète de $x$.

L'analyse spectrale du son d'un instrument de musique permet d'identifier les notes et harmoniques jouées.
Pour cela, on échantillonne le signal sonore enregistré. On obtient le spectre de ce signal grâce à la Transformée de Fourier Discrète (TFD), appliquée sur un extrait de taille $n$ du signal discrétisé.
On traitera dans cet exercice le cas $n=3$, sauf pour la dernière question. Le plan complexe est muni d'un repère orthonormal $(O ; \overrightarrow{u}, \overrightarrow{v})$ d'unité graphique 2 cm.
On note $i$ le nombre complexe de module 1 et d'argument $\dfrac{\pi}{2}$. On pose $w=e^{i \frac{2\pi}{3}}$.

  1. Déterminer la forme algébrique des nombres complexes $w$ ,$w^2$ et $w^3$.

  2. Reproduire le plan complexe suivant et y placer précisément les points d'affixes $1$, $w$ et $w^2$.

  3. On nomme $M_3$ la matrice de la transformée de Fourier discrète d'ordre 3.
    Saisir $M_3$ sur Xcas.

  4. On rappelle que cette matrice $M_3$ permet de calculer la transformée de Fourier discrète $(X_0;X_1;X_2)$ du signal discret $(x_0;x_1;x_2)$ en effectuant le produit matriciel $M_3 \times \begin{pmatrix} x_0\\x_1\\x_2\end{pmatrix}$.

    1. On donne $(x_0;x_1;x_2)=(0;1;3)$. Calculer $(X_0;X_1;X_2)$.

    2. Si le signal obtenu en sortie est : $(Y_0;Y_1;Y_2)=(-8;4-2\sqrt{3} i;4+2\sqrt{3} i)$, quel était le signal d'entrée $(y0;y1;y2)$ ?

  5. On utilise désormais un échantillon de taille $n=44100$, et on obtient alors le spectre suivant :

    À l'aide du tableau des fréquences des notes ci-dessous, retrouver la note de musique et l'octave joués, repérés par l'amplitude la plus grande. Justifier la réponse.

Propriétés de la tranformée de Fourier discrète

Linéarité

Soient $x$ et $y$ deux séquences de nombres ayant la même longueur $n$.
On note $X$ et $Y$ leur transformée de Fourier discrète respective.
Soient $\alpha$ et $ \beta$ deux nombres réels quelconques.

La séquence combinaison linéaire $\alpha x + \beta y$ a pour transformée de Fourier discrète $\alpha X +\beta Y$.

Partie A :

  1. Déterminer à la main la transformée de Fourier discrète $X$ de la séquence $x=(1;0)$.

  2. Déterminer à la main la transformée de Fourier discrète $Y$ de la séquence $y=(0;1)$.

  3. Retrouver ces transformées de Fourier discrètes $X$ et $Y$ grâce à calcul direct sur Xcas.

Partie B :

  1. Donner la matrice $M_2$ de la transformée de Fourier discrète pour $n=2$.

  2. Retrouver les transformées de Fourier discrètes de $x$ et de $y$ trouvées à la partie A en utilisant cette matrice $M_2$.

Partie C :

  1. Utiliser la linéarité de la transformée de Fourier discrète les transformées de Fourier discrètes de $x$ et de $y$ trouvées à la partie A pour trouver, sans nouveau calcul ni utilisation de Xcas, les TFD des séquences suivantes :

    1. $s_1=(1;1)$.

    2. $s_2=(0;2)$.

    3. $s_3=(2i;4-3i)$.

  2. Retrouver ces transformées de Fourier discrètes grâce à Xcas.

Partie A :

  1. Donner la forme algébrique de $w=e^{i\frac{2\pi}{3}}$.

  2. Donner la matrice $M_3$ de la transformée de Fourier discrète pour $n=3$.

  3. On considère les séquences suivantes : $x=(1;0;0)$, $y=(0;1;0)$ et $z=(0;0;1)$.
    Déterminer, à l'aide de $M_3$, la transformée de Fourier discrète $X$, $Y$ et $Z$ respectivement des séquences $x$, $y$ et $z$.

  4. Vérifier ces transformées $X$, $Y$ et $Z$ grâce à Xcas.

Partie B :

  1. Simplifier la somme $1+w+w^2$ où $w=e^{i\frac{2\pi}{3}}$.

  2. Utiliser des résultats de la partie A pour en déduire la transformée de Fourier discrète de la séquence $(1;1;1)$.

Formule de Bessel

Soit $x=(x_0,x-1,...,x_{n-1})$ une séquence de $n$ nombres.
Notons $X=(X_0,X-1,...,X_{n-1})$ la transformée de Fourier discrète de $x$.

$\displaystyle \sum_{k=0}^{k=n-1}|x_k|^2=\dfrac{1}{n}\sum_{k=0}^{k=n-1}|X_k|^2$.

Cette formule peut être interprétée d'un point physique comme la fait que l'énergie total d'un signal peut être obtenue en sommant les contributions de chacune des harmoniques composants le signal.
L'énergie totale d'un signal ne dépend pas de la représentation choisie : celle temporelle avec $x$ ou celle fréquentielle avec $X$ ; le facteur $\dfrac{1}{n}$ venant du fait d'une définition non symétrique de la transformée de Fourier discrète et de la transformée de Fourier discrète inverse.

On considère la séquence $x=(1,2i,3,-4i,5+6i)$.

  1. Compléter à la main la deuxième puis de la troisième ligne du tableau suivant :

    $k$ 0 1 2 3 4
    $|x_k|$ ... ... ... ... ...
    $|x_k|^2$ ... ... ... ... ...
    $|X_k|^2$ ... ... ... ... ...
  2. Utiliser Xcas pour compléter la dernière ligne du tableau ci-dessus.

  3. Vérifier l'égalité de Bessel dans le cas de cette séquence.

  1. Sur Xcas, le vecteur-ligne $x=(1,2i,3,-4i,5+6i)$ peut être représentée par la liste suivante : x:=[1,2i,3,-4i,5+6i].
    Effectuer cette saisie sur Xcas.

  2. Pour obtenir $\displaystyle \sum_{k=0}^{k=n-1}|x_k|^2$, il suffit d'effectuer la multiplication de $^{t}\overline{x}$ par $x$, où $^{t}\overline{x}$ est le conjugué de la transposée de $x$, c'est-à-dire le vecteur-colonne $\begin{pmatrix}1\\-2i\\3\\4i\\5-6i\end{pmatrix}$.

    Sur Xcas, il suffit de saisir conj(tran(x)) pour obtenir ce vecteur $^{t}\overline{x}$.

    Obtenez sur Xcas la valeur de $\displaystyle \sum_{k=0}^{k=n-1}|x_k|^2$.

  3. En utilisant la technique de la question précédente, déterminer sur Xcas la valeur de $\displaystyle \sum_{k=0}^{k=n-1}|X_k|^2$, où $X$ est la transformée de Fourier discrète de $x$.

  4. Vérifier la formule de Bessel dans le cas particulier de cette séquence $x$.

Exercices

On rappelle que la transformée de Fourier discrète (TFD) d'une séquence de nombres complexes $(x_0, x_1, x_2, ... , x_{N-1})$ où $N$ est un entier naturel non nul, est la séquence de nombres complexes $(X_0, X_1, X_2, ... , X_{N-1})$ définie par : $\displaystyle X_p=\sum_{k=0}^{k=N-1} x_k\times w^{-k\times p}$, pour tout entier $p$ compris entre $0$ et $N-1$ et avec $w=e^{i\frac{2\pi}{N}}$.

On considère le signal $s$ périodique de période $T=\dfrac{1}{100}$ seconde défini par : $s(t)=200\pi t$, si $-\dfrac{T}{4}\le t\le \dfrac{T}{4}$ et $s(t)=\pi-200\pi t$ si $\dfrac{T}{4}\le t\le \dfrac{3T}{4}$.

Partie A : à la main

  1. Représenter le signal $s$ sur l'intervalle $[-T;2T]$ dans un repère comme ci-contre.

  2. On échantillonne le signal $s$ tous les $T_e=0.00125=\dfrac{0.0025}{2}$ sur l'intervalle $[0;T[$ pour obtenir l'échantillon $(x_0, x_1, x_2, ..., x_7)$.
    Reproduire et compléter le tableau ci-dessous donnant les valeurs du signal échantillonné :

    $x_0$ $x_1$ $x_2$ $x_3$ $x_4$ $x_5$ $x_6$ $x_7$
    ... ... ... ... ... ... ... ...
  3. Placer sur le cercle trigonométrique les nombres complexes $w^k$ avec $k$ compris entre 0 et 7 et $w=e^{i\frac{2\pi}{8}}$.

Partie B : sur Xcas

  1. Utiliser Xcas afin d'obtenir les valeurs $(X_0, X_1, X_2, ... , X_7)$ de la transformée de Fourier discrète du signal échantillonné $(x_0, x_1, x_2, ... , x_7)$.

  2. On échantillonne le signal $s$ avec une fréquence de 5000 Hz sur une durée de 0.5 secondes.
    Utiliser l'instruction soundsec afin de d'obtenir le vecteur tps donnant l'ensemble des instants de l'échantillonnage.

  3. Déterminer le nombre N de valeurs de l'échantillon à l'aide de l'instruction size.

  4. On admet que l'on peut obtenir le vecteur se des valeurs échantillonnées en saisissant se:=asin(sin(200*pi*tps)).
    Créer la transformée de Fourier discrète, notée X, du signal échantillonné se.

  5. Créer la liste freq des fréquences à l'aide de l'instruction seq.

  6. Créer le diagramme en bâtons représentant la valeur absolue de la transformée de Fourier discrète à l'aide de l'instruction batons.

  7. On rappelle que la première moitié de la transformée de Fourier discrète $(X_0, X_1, X_2, ... , X_{N-1})$ des échantillons d'un signal approche, à un coefficient constant près, le spectre du signal aux fréquences 0, $\dfrac{F_e}{N}$, $\dfrac{2F_e}{N}$, ..., $\dfrac{F_e}{2}$.
    Plus précisément : $|X_k|\approx \dfrac{N}{2}\times A_k$, où $A_k$ est l'amplitude de la composante de fréquence $\dfrac{k F_e}{N}$ du signal.

    1. Quelle est la composante du signal ayant la plus grande amplitude ?

    2. On s'intéresse à la deuxième composante la plus significative (relativement à l'amplitude) du signal.
      Estimer, en pourcentage de l'amplitude de la composante du signal ayant la plus grande amplitude, l'amplitude de cette deuxième composante.

On rappelle que la transformée de Fourier discrète (TFD) d'une séquence de nombres complexes $(x_0, x_1, x_2, ... , x_{N-1})$ où $N$ est un entier naturel non nul, est la séquence de nombres complexes $(X_0, X_1, X_2, ... , X_{N-1})$ définie par : $\displaystyle X_p=\sum_{k=0}^{k=N-1} x_k\times w^{-k\times p}$, pour tout entier $p$ compris entre $0$ et $N-1$ et avec $w=e^{i\frac{2\pi}{N}}$.

On considère le signal $s$ périodique de période $T=0.004$ seconde défini par : $s(t)=0$, si $0 \le t\lt 0.002$ et $s(t)=1$ si $0.002\le t\lt 0.004$.

Partie A : à la main

  1. Représenter le signal $s$ sur l'intervalle $[-0.004;0.008]$ dans un repère comme ci-contre.

  2. On échantillonne le signal $s$ tous les $T_e=0.001$ sur l'intervalle $[0;T[$ pour obtenir l'échantillon $(x_0, x_1, x_2, ..., x_7)$.
    Reproduire et compléter le tableau ci-dessous donnant les valeurs du signal échantillonné :

    $x_0$ $x_1$ $x_2$ $x_3$ $x_4$ $x_5$ $x_6$ $x_7$
    ... ... ... ... ... ... ... ...
  3. Placer sur le cercle trigonométrique les nombres complexes $w^k$ avec $k$ compris entre 0 et 7 et $w=e^{i\frac{2\pi}{8}}$.

Partie B : sur Xcas

  1. Utiliser Xcas afin d'obtenir les valeurs $(X_0, X_1, X_2, ... , X_7)$ de la transformée de Fourier discrète du signal échantillonné $(x_0, x_1, x_2, ... , x_7)$.

  2. On rappelle que la première moitié de la transformée de Fourier discrète $(X_0, X_1, X_2, ... , X_{N-1})$ des échantillons d'un signal approche, à un coefficient constant près, le spectre du signal aux fréquences $0$, $\dfrac{F_e}{N}$, $\dfrac{2F_e}{N}$, ..., $\dfrac{F_e}{2}$.
    Plus précisément :

    • pour tout entier $k$ compris entre $1$ et $\dfrac{N+1}{2}$, $|X_k|\approx \dfrac{N}{2}\times A_k$, où $A_k$ est l'amplitude de la composante de fréquence $\dfrac{k F_e}{N}$ du signal.

    • $|X_0|\approx N\times A_0$

    1. Quelle est ici la fréquence d'échantillonnage ?

    2. Après avoir créer la séquence des 8 fréquences $0$, $\dfrac{F_e}{8}$, $\dfrac{2F_e}{8}$, ..., $\dfrac{7F_e}{8}$ (possible avec l'instruction seq), créer le diagramme en bâtons représentant la valeur absolue de la transformée de Fourier discrète.

    3. Commenter ce spectre en donnant le fondamental.

  3. On échantillonne le signal $s$ avec une fréquence $F_e$ de 10000 Hz sur une durée $T$ de 0.1 seconde.
    Utiliser l'instruction soundsec afin de d'obtenir le vecteur tps donnant l'ensemble des instants de l'échantillonnage.

  4. Déterminer le nombre N de valeurs de l'échantillon à l'aide de l'instruction size.

  5. On admet que pour obtenir le signal sur Xcas, on peut saisir : s(x):=floor((500*x-1)/2)-floor(250*x)+1.
    On admet que l'on peut obtenir le vecteur se des valeurs échantillonnées en saisissant : se:=seq(s(k*1/Fe),k,0,N-1).
    Créer la transformée de Fourier discrète, notée X, du signal échantillonné se.

  6. Créer la séquence des fréquences des N premières fréquences multiples de $\dfrac{F_e}{N}$, c'est-à-dire $0$, $\dfrac{F_e}{N}$, $\dfrac{2F_e}{N}$, ..., $\dfrac{(N-1)F_e}{N}$.

  7. Créer le diagramme en bâtons représentant la valeur absolue de la transformée de Fourier discrète en fonction des fréquences.

    1. Quelle est la composante de fréquence non nulle du signal ayant la plus grande amplitude ?

    2. Quelle est l'amplitude associée à cette composante ?

    3. On s'intéresse à la deuxième composante de fréquence non nulle la plus significative (relativement à l'amplitude) du signal.
      Déterminer cette composante ainsi que l'amplitude associée.

    4. Déterminer l'amplitude de la composante de fréquence nulle.

    5. Proposer une fonction $g$ de la forme $g(t)=a+b\sin(f_1\times 2\pi t)+c\sin(f_2 \times 2\pi t)$ qui pourrait approcher le signal $s$.

    6. Vérifier la validité cette approximation à l'aide de l'instruction plot de Xcas.

    7. Comment obtenir une meilleure approximation du signal $s$ ?

On considère le son dont le signal temporel est donnée par la fonction $f(t)=2\sin(2\pi\times 80\times t)+\sin(2\pi\times 30\times t)$ contenant deux fréquences pures à 80 Hz et 30 Hz d'amplitude respective 2 et 1 et non déphasées.
On désire échantillonner ce son à la fréquence $F_e=3000$ Hz sur $0.4$ s.

  1. Créer les variables fréquence d'échantillonnage Fe et le temps T d'échantillonnage.

  2. Créer un vecteur tps des instants d'échantillonnage pour une durée de 0,4 s à 3000 Hz.

    Utiliser l'instruction soundsec.

  3. Créer le nombre d'échantillons n.

  4. Créer un son son correspondant à la fonction $f$ échantillonnée aux instants tps.

  5. Représenter le nuage de points représentant le signal son aux instants tps.

  6. Créer la Transformée de Fourier Discrète TFD du signal son.

  7. Créer la séquence freq des fréquences $k\times\dfrac{F_e}{n}$, avec $k$ entier compris entre $0$ et $n-1$.

  8. Représenter le diagramme bâtons donnant le module abs(TFD) de la transformée de Fourier discrète TFD du son en fonction des fréquences freq.

  9. Combien de valeurs sont non négligeables dans TFD ?

  10. On transmet TFD.
    Comment reconstituer le son initial à partir de la liste TFD ?
    La reconstitution est-elle fidèle ?

On rappelle que la Transformée de Fourier Discrète (TFD) d'une séquence de nombres complexes $\left(x_0~;~x_1~;~x_2~;~\ldots~;~x_{N-1}\right)$, où $N$ est un entier naturel non nul, est la séquence de nombres complexes $\left(X_0~;~X_1~;~X_2~;~\ldots~;~X_{N-1}\right)$ définie par: \[X_{\ell} = \displaystyle\sum_{k=0}^{N-1} x_kw^{-k \ell}\] pour tout entier $\ell$ compris entre $0$ et $N - 1$, avec $w = \text{e}^{\frac{2\text{i}\pi}{N}}$.
Soit le signal, noté $f$, périodique de période $T$ défini par : $\left\{\begin{array}{l c l} f(t) &= &t \quad \text{si } t \in \left[0~;~\dfrac{T}{2}\right]\\ f(t) &= &t - T \quad \text{si } t \in \left]\dfrac{T}{2}~;~T\right] \end{array}\right.$

Partie A

  1. Parmi les figures ci-dessous, laquelle est une représentation graphique de la fonction $f$ ?

  2. Recopier et compléter le tableau suivant avec les valeurs des $f\left(\frac{kT}{4}\right)$ pour $k$ variant de 0 à 3. Ces valeurs seront exprimées en fonction de $T$.

  3. On note $\left(X_0~;~X_1~;~X_2~;~X_3\right)$ la transformée de Fourier discrète de la séquence : \[\left(x_0~;~x_1~;~x_2~;~x_3\right) = (0~;~0,0025~;~0,005~;~-0,0025).\] Calculer le coefficient $X_1$ de cette transformée de Fourier discrète.

Partie B

Dans cette partie, on donne $T = \dfrac{1}{100}$. On veut déterminer la transformée de Fourier discrète de la séquence obtenue par l'échantillonnage du signal $f$ tous les $\dfrac{T}{4}$ sur l'intervalle $[0~;~T[$. On utilise le programme suivant, où $A(i~;~j)$ désigne le coefficient de la matrice $A$ situé à la $i$-ème ligne et à la $j$-ème colonne :

Variables :
      $N$, $k$ et $j$ sont des entiers
      $X$, $M$ et $TFD$ sont des matrices
      $w$ est un complexe
Traitement :
      1. Lire $N$.
      2. Pour $k$ allant de 1 à $N$,
      3.       Affecter à $X(k ; 1)$ la valeur $f\left(\dfrac{k-1}{N\times 100}\right)$
      4. FinPour
      5. Affecter à $w$ la valeur $exp\left(\dfrac{2i \pi}{N}\right)$
      6. Pour $ $allant de 1 à $N$,
      7.       Pour $j$ allant de 1 à $N$,
      8.             Affecter à $M(k ; j)$ la valeur ...
      9.       FinPour
      10. FinPour
      11. Afficher $M$,
      12. Afficher $X$ ,
      13. Affecter à $TFD$ la matrice ...
      14. Afficher $TFD$.
  1. Parmi les propositions suivantes, quel est le calcul à mettre à la place des pointillés dans la ligne 8 :

    A. $w^{-(k-1)*(j-1)}$ B. $w^{(k-1)*(j-1)}$ C. $w^{-(j-1)}$
  2. Parmi les propositions suivantes, quel est le calcul à mettre à la place des pointillés dans la ligne 13 :

    A. $MX^2$ B. $MX$ C. $M^{-1}X$
  3. L'utilisateur rentre $N = 4$, le programme affiche : $M = \begin{pmatrix}1&1&1&1\\1&- \text{i}&- 1&\text{i}\\1&- 1&1&- 1\\1&\text{i}&- 1&- \text{i} \end{pmatrix}, \quad X = \begin{pmatrix}0\\ 0.0025\\0,005\\- 0,0025 \end{pmatrix}, \quad TFD = \begin{pmatrix}0,005\\-0,005- 0,005\text{i}\\0,005\\\ldots\ldots \end{pmatrix}.$
    Parmi les propositions suivantes, quel est le coefficient manquant de la matrice $TFD$ :

    A. $- 0,005 - 0,005\text{i}$ B. $- 0,005 + 0,005\text{i}$ C. $0,005\text{i}$

Zéro padding

Objectif :
Un signal a été échantillonné à la fréquence $f_e$ en respectant la condition de Shannon.
On a acquis $N$ points de ce signal.
L'écart entre deux de ces points adjacents est de $f_0=\dfrac{f_e}{N}$. $f_0$ est la précision fréquentielle.
On veut améliorer cette précision sans pour autant reprendre l'acquisition.

Solution possible :

Comme on ne veut pas modifier l'acquisition, on ne peut pas modifier $N$, si bien que pour augmenter la précision fréquentielle, il faut diminuer $f_0$, c'est à dire augmenter $T_0$.
Or, le temps d'acquisition du signal est initialement de $T_0=N\times T_e$.
On suppose qu'à partir de $t=T_0$ le signal est terminé, c'est-à-dire qu'il est supposé pratiquement nul.
Si le signal n'a pas été tronqué lors de la première acquisition, augmenter $T_0$ revient à faire l'acquisition d'échantillons supplémentaires de valeur nulle.
Pour augmenter la précision fréquentielle, il suffit d'ajouter autant de zéros que souhaité en fin de fichier ; cette technique s'appelle le zero padding.

Partie A : compléter des phrases

  1. Compléter les phrases suivantes grâce au texte explicatif précédent :

    • Le premier fichier issue de l'acquisition contient $...$ points donc la précision fréquentielle est de $...$.

    • Le deuxième fichier contient les $...$ points initiaux ainsi que $M$ zéros donc la nouvelle précision fréquentielle est de $...$.

    • Le zéro Padding qui consiste à ajouter des 0 à un signal discret permet $...$ la précision fréquentielle.

Étudions l'influence du zero padding sur la TFD et sur le spectre des fréquences ?

Partie B : cas du doublement de la longueur de la suite par intercalage d'un zéro entre chaque élément de la séquence

On considère $N$ échantillons $x_k$ et on place un premier zero au début puis on intercale $N-1$ échantillons nuls.
Plus précisément, le signal devient le signal $y_k$ avec $y_{2k}=x_k$ et $y_{2k+1}=0$, avec $k$ un entier compris entre 0 et $N-1$.

  1. Dans le cas où $N=5$ avec $x_{init}=(5;2;4;6;3)$. On considère donc cet échantillon augmenté : $x_{aug}=(0;5;0;2;0;4;0;6;0;3)$. Comparer les transformée de Fourier discrète de $x_{init}$ et de $x_{aug}$.

  2. Procéder de même avec $x_{init}=(-4;1;9;-7)$ et $x_{aug}=(0;-1;0;1;0;9;0;-7)$.

  3. Quelle semble être l'influence de cette augmentation du signal par intercalage de $0$ sur la transformée de Fourier discrète ?

Partie C : rajout de 0 en fin de séquence

On considère le signal défini sur $[0;0.1]$ par $s(x)=3\sin(2 \pi \times 40\times x)+ 2\sin(17 \times 2\pi\times x)$ :

En vous aidant du fichier Geogebra précédent, répondre aux questions suivantes :

  1. Pour une fréquence d'échantillonnage de 500 Hz, quelle est la résolution fréquentielle du spectre ?

  2. Les fréquences des composantes du signal sont-elles facilement visibles ?

  3. Déplacer le curseur $M$ afin de rajouter $M$ zéros en fin d'échantillonnage.
    Quelle est l'influence sur la résolution fréquentielle du spectre et sur la visibilité des fréquences des composantes du signal ?

  4. En positionnant le curseur sur $M=150$, éventuellement en cliquant directement sur le bouton adéquat, quelle est la résolution fréquentielle du spectre et les fréquences des composantes du signal sont-elles davantage visibles ?

Partie D : comparaison de zero padding

Les figures ci-dessous représentent différents signaux discrets ainsi que le module de leur transformée de Fourier discrète. (La transformée de Fourier discrète du signal $Si$ est notée $TFSi$, les abscisses des différentes courbes représentent des numéros d'échantillons).

  1. Le signal $S1$ est $(1;1;0;0;0;0)$.
    Lire les valeurs de la transformée de Fourier discrète correspondante $TFS1$ ?

    1. Expliquer comment a été obtenu le signal $S2$ à partir du signal $S1$ ?

    2. Quel est le lien entre la transformée de Fourier discrète de $S2$ et celle de $S1$ ?

    3. Quel est l'intérêt pratique d'une telle manipulation ?

    1. Expliquer comment a été obtenu le signal $S3$ à partir du signal $S1$ ?

    2. Quel est le lien entre la transformée de Fourier discrète de $S3$ et celle de $S1$ ?

    3. Quel est l'intérêt pratique d'une telle manipulation ?

Partie E : cas de la duplication du message

Dans cette partie, on cherche, sur des exemples, à comprendre le rôle de la duplication d'un échantillons à $N$ valeurs $x_k$ (duplication : on rajoute à la fin de la séqeunce la même séquence).

  1. Dans le cas où $N=5$ avec $x_{init}=(5;2;4;6;3)$.
    On considère donc cet échantillon prolongé par duplication : $x_{dup}=(5;2;4;6;3;5;2;4;6;3)$.
    Comparer les transformées de Fourier discrètes de $x_{init}$ et de $x_{dup}$.

  2. Procéder de même avec $x_{init}=(-4;1;9;-7;1)$ et $x_{dup}=(-4;1;9;-7;1;-4;1;9;-7;1)$.

  3. Quelle semble être l'influence de la duplication sur la transformée de Fourier discrète ?

Demander le programme !


Licence Creative Commons
Les différents auteurs mettent l'ensemble du site à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International