Transformée de Fourier discrète

Soixante-quatre échantillons d'un son, et leur transformée de Fourier discrète. Décalez le son d'un nombre entier de cycles et une seule barre nette se transforme en un étalement sur tout le spectre. Sélectionnez un canal pour le voir construit à partir de 64 flèches placées bout à bout, et activez une fenêtre pour voir ce qu'elle apporte et ce qu'elle coûte.

Chargement de la simulation interactive...

Leçon

La théorie — Transformée de Fourier discrète

La transformée de Fourier discrète de N échantillons x0 … xN−1 correspond à N nombres Xk = Σn xn e−2πikn/N, un par canal k, chacun mesurant la proportion d'une onde accomplissant k cycles dans les N échantillons que contient le signal. Elle traite les échantillons comme une période d'un signal qui se répète, elle est donc exacte pour les sons accomplissant des cycles entiers et disperse tous les autres sons sur les différents canaux : c'est la fuite spectrale. Une fenêtre wn multiplie d'abord les échantillons pour adoucir le raccord.

Ce que signifie chaque symbole

A_k
l'amplitude qu'implique le canal k, ce que montrent les barres : 2|Xk|/(N·G) pour 0 < k < N/2, et |Xk|/(N·G) à k = 0 et k = N/2, qui n'ont pas de canal miroir avec lequel partager. Un son d'amplitude 1 sur un canal affiche 1
G
le gain cohérent de la fenêtre, la moyenne de wn : 1 sans fenêtre, ½ pour Hann
Suppose
Chaque son commence à son maximum, comme un cosinus. Les valeurs des jupes éloignées varient avec la phase initiale : le canal 31 du son à 10,5 cycles se situe 26,3 dB sous la barre la plus haute pour un cosinus et 31,2 dB en dessous pour un sinus, tandis que les 81 % dans les deux canaux les plus proches bougent à peine. La fenêtre de Hann correspond à la forme périodique, ½ − ½cos(2πn/N), dont la transformée occupe exactement trois canaux.

Décalé d'un demi-canal, un son pur se répand dans tous les canaux 🖖

Cliquez sur Sur un canal : 64 échantillons d'un son qui accomplit exactement 10 cycles. Toute son énergie se trouve dans le canal 10 et chaque autre barre est à zéro. Cliquez maintenant sur À mi-chemin. Le son est identique, sauf qu'il accomplit 10,5 cycles, et le spectre est maintenant en décibels. Les canaux 10 et 11 concentrent 81,10 % de l'énergie et le reste est parti partout : le canal 31, distant de plus de vingt canaux, n'est qu'à 26,3 dB sous la barre la plus haute, soit environ un vingtième de sa hauteur, et il n'y a plus aucune barre à zéro. Regardez le raccord dans le panneau supérieur. La transformée traite les 64 échantillons comme un tour de boucle qui se répète pour toujours, et 10,5 cycles ne se rejoignent pas, donc la boucle saute à chaque raccord. Un saut ne peut pas être construit à partir de quelques fréquences ; il les faut toutes. Cliquez sur Lire en boucle sur chaque préréglage et vous l'entendrez : un sifflement net sur un canal, et un grincement à 125 Hz, la fréquence à laquelle le raccord revient, à mi-chemin.

Déplacez un son d'un demi-canal et sa plus haute barre perd un tiers 🖖

Cliquez sur Les flèches s'arquent. Chaque barre est la somme de 64 flèches, une par échantillon : la flèche n correspond à wnxn tourné de k·n/64 de tour dans le sens horaire, un échantillon négatif la fait donc pointer dans la direction opposée, et la barre représente la distance entre la fin de la chaîne et son point de départ. Un cosinus est constitué de deux moitiés tournant en sens inverse. Lorsque le son accomplit exactement k cycles, une moitié de chaque flèche est ramenée pour pointer dans la même direction, les moitiés s'alignent en une ligne droite de longueur 32, et la barre affiche 100 %. À un demi-canal près, cette ligne s'incurve sur un demi-cercle au fil des 64 échantillons, et les extrémités d'un demi-cercle ne sont distantes que de 2/π de sa longueur, soit 63,7 % : c'est la « perte en feston » de 3,92 dB de la table des fenêtres de Fredric Harris de 1978. L'autre moitié de chaque flèche tourne 21,5 fois sur elle-même et s'annule presque, ce qui pousse la lecture vers les 64,61 % qu'affiche la page. Le son est toujours aussi fort ; la barre la plus haute le sous-évalue d'un tiers, −3,79 dB, uniquement en raison de l'endroit où tombe sa fréquence. Déplacez-le d'un canal entier et la ligne s'incurve en un cercle complet et se ferme, et la moitié rapide se ferme avec elle : c'est pourquoi un son sur un canal laisse toutes les autres barres à exactement zéro.

Estomper les bords révèle un son 316 fois plus faible 🖖

Cliquez sur Un voisin discret : un second son abaissé de 50 dB, avec une amplitude 316 fois plus petite, qui accomplit exactement 20 cycles. Le canal 20 affiche 22,7 dB sous la barre la plus haute, mais il s'agit de la fuite du premier son, et le canal 20 ne dépasse même pas le canal 19 situé à côté de lui. Réglez la fenêtre sur Hann, ce qui fait apparaître les échantillons depuis zéro puis les estompe afin que la boucle n'ait aucun saut. La fuite s'effondre, le canal 31 passant de 26,3 dB à 98,9 dB sous le pic, et le canal 20 se dresse comme un pic à part entière, affichant 0,32 % de l'amplitude du son 1, ce qui correspond exactement à une baisse de 50 dB. La fenêtre le fait payer en largeur. Un son sur un canal en couvre maintenant trois, de sorte qu'un son exactement sur le canal 10 ne conserve que 66,67 % de son énergie dans son propre canal : cliquez sur Sur un canal et le tableau sous les résultats le montre à côté des 100 % de la fenêtre rectangulaire. Cliquez sur Deux sons, Hann : deux sons égaux séparés de deux canaux, et le canal 11 entre eux affiche 100,00 %, aussi haut que l'un ou l'autre. Sans la fenêtre, ce canal est vide. Hann échange un pic large de trois canaux contre des jupes nettes, ce qui est le bon compromis lorsque ce que vous cherchez est faible, mais le mauvais lorsque cela se trouve juste à côté.

Problème entièrement résolu

  1. Corriger une lecture, puis éliminer le besoin de le faire 4 étapes

    Un analyseur échantillonne 8 000 fois par seconde et transforme 64 échantillons à la fois, sans fenêtre. Vous lui fournissez un son de test à 1 312,5 Hz et la barre la plus haute affiche 0,32. Quelle est l'amplitude réelle du son, et combien d'échantillons par bloc placeraient le son exactement sur un canal ? Cliquez sur Les flèches s'arquent : la page lit un son à cette fréquence.

    Ouvrez ce problème dans l'outil

    1. Les canaux sont espacés de 8 000/64, donc le son accomplit 10,5 cycles par bloc : à mi-chemin entre les canaux 10 et 11.

    2. À mi-chemin, la barre la plus haute de la page affiche 64,61 % du son. Divisez par ce facteur :

    3. Le son tombe sur un canal lorsqu'un bloc contient un nombre entier de ses cycles. Avec 128 échantillons, les canaux sont espacés de 62,5 Hz :

    4. Si l'analyseur avait utilisé une fenêtre de Hann sur les 64 échantillons, la barre la plus haute aurait affiché 84,89 % du son, ce même son afficherait donc :

    Réponse

    Environ 0,495, et 128 échantillons par bloc. N'importe quel multiple de 128 fonctionne également, puisque 1 312,5 Hz nécessite 128 échantillons pour accomplir un nombre entier de cycles (21). La page est fixée à 64, donc le cas à 128 échantillons dépasse ce qu'elle peut montrer ; à 128, la barre affiche la totalité des 0,495, et la fenêtre ne serait plus nécessaire pour lire l'amplitude, mais seulement pour empêcher la jupe d'un son fort de masquer un son faible.

Parcours

La transformée de Fourier en pratique

Références (2)