Repliement spectral¶
En musique, la note la correspond à une sinusoïde de fréquence 440 Hz.
Représentez la note la sur 100 ms en réglant le pas de temps pour obtenir une courbe qui soit jolie. Quelle fréquence d’échantillonnage correspond au pas de temps choisi ? Affichez ensuite la TFD du signal : y a-t-il repliement spectral ?
Représentez la note la sur 100 ms avec une fréquence d’échantillonnage de 1000 Hz. Affichez la TFD du signal : y a-t-il repliement spectral ?
Représentez la note la sur 100 ms avec une fréquence d’échantillonnage de 700 Hz. Affichez la TFD du signal : y a-t-il repliement spectral ? Quelle est la conséquence sur le signal sonore numérisé ?
Interpolation¶
Le fichier 8820Hz.csv contient un signal échantillonné à 8 820 Hz. La première colonne correspond aux échantillons temporels, et la seconde colonne aux amplitudes du signal.
Affichez ce signal, noté , en mettant en évidence les échantillons, par exemple avec la commande
plot(t,x,'-*').Générez et affichez la transformée de Fourier discrète (TFD) de en centrant l’axe des fréquences.
On souhaite augmenter la fréquence d’échantillonnage de d’un facteur cinq, ce qui implique d’ajouter quatre échantillons entre chaque échantillons existants. Il faut donc effectuer une interpolation du signal, c’est-à-dire calculer de nouveaux échantillons à l’intérieur du signal.
La technique de « zero-padding fréquentiel » consiste à ajouter des zéros de part et d’autre du spectre de Fourier pour obtenir un spectre (et donc un signal temporel) contenant cinq fois plus d’échantillons.
En notant la TFD du signal et son nombre d’échantillons, ajoutez zéros de part et d’autre de la TFD de manière à créer un vecteur cinq fois plus long que :
Y = np.concatenate([np.zeros(M), X, np.zeros(M)])Affichez la TFD (après avoir redéfini son axe des fréquences).
Affichez le signal interpolé, issu de la TFD inverse de , et comparez-le au signal original (après avoir défini son axe des temps).