1 / 14

Calcul de la composition fréquentielle du signal audio

Calcul de la composition fréquentielle du signal audio. Jean-Paul Stromboni, pour les élèves SI3, nécessite un vidéo projecteur, durée 50mn , octobre 2012. Voici ce que vous devez savoir faire après cette séance :. Définir le spectre d’un signal sinusoïdal

loki
Download Presentation

Calcul de la composition fréquentielle du signal audio

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Calcul de la composition fréquentielle du signal audio Jean-Paul Stromboni, pour les élèves SI3, nécessite un vidéo projecteur, durée 50mn , octobre 2012 Voici ce que vous devez savoir faire après cette séance : • Définir le spectre d’un signal sinusoïdal • Définir la Transformée de Fourier Discrète (TFD) de taille N • Trouver la TFD des signaux constante et sinusoïde. • Mesurer l’effet de la taille du signal de de la fenêtre d’apodisation • Utiliser les fonctions fft(.) et spectrogram(.) de MATLAB Travaux Dirigés : calculer et exploiter TFD et FFT Savez vousrépondre aux questions suivantes ?

  2. Composition fréquentielle ou spectre • Depuis Joseph Fourier (1768-1830), physicien et mathématicien français, on sait décomposer une fonction du temps s(t) quelconque en une somme de fonctions sinusoïdales, ou spectre : • Soit s(t), fonction du temps définie quelque soit t, S(f) ci-dessous détermine le spectre de s(t) : • Inversement, connaissant le spectre S(f) de s(t), on détermine s(t) par : • S(f) est une quantité complexe : • Si la composante fréquentielle de s(t) à la fréquence f s’exprime par : • On aura : et • Dans la suite de ce cours, on se limite au module de S(f), c’est-à-dire au spectre d’amplitude :

  3. Matlab, Scilab, Goldwave, utilisent la Transformée de Fourier Discrète (TFD) pour calculer le spectre • Définition de la TFD : pour un signal x(t) échantillonné à la fréquence fe, MATLAB calcule le spectre en limitant le signal à une fenêtre temporelle de N échantillons : • X(f) estle spectre de x(n/fe), • X(f) est périodique, la valeur de la période est fe • |X(f)| est symétrique par rapport à la fréquence fe/2 • la fenêtre de calcul dure NTe (contient N échantillons) • Calcul de la TFD : en pratique, on calcule seulement N valeurs de la TFD, les X(fk) pour les seules fréquences fk : • est la résolution fréquentielle • Note : pour mieux reconstruire la fonction X(f), on peut calculer et afficher M > N valeursau lieu de N • Algorithme de transformée de Fourier rapide (en anglais Fast Fourier Transform) • Si N est une puissance de 2, on accélère le calculdu fait des périodicités et symétries des exponentielles complexes • Matlab, Scilab, Goldwave, … utilisent l’algorithme de FFT pour calculer la transformée de Fourier discrète

  4. Calcul de la T.F.D. du signal constant de taille N • TFD de la fonction constante, du signal de fréquence nulle, ou de la fenêtre rectangulaire de durée NTe • Que valent : • R(0) • R(fe) • R(-fe) • R(fe/N) • La périodicité du dénominateur • La périodicité du numérateur

  5. Analyse d’un exemple : x = 0.75, N = 16, fe = 8kHz Tracé sur une période [ 0, fe [ Relation entre [0,fe/2] et [fe/2, fe] ? Tracé de spectre/N entre 0 et fe Tracé de spectre/N : reporter les N valeurs calculées R(kfe/N), k= 0 … N-1

  6. TFD du signal sinusoïdal (sans calcul) Analyser le spectre d’amplitude suivant (où |S(f)| est déjà divisé par N) Tracé de |S(f)|/N sur une période Lire fe R(f0) R(fe-f0) R(fe/N) a et f0 Placer les N= 16 valeurs calculées par la TFD f0 varie de 100 Hz, que prévoir ?

  7. Influence du nombre N d’échantillons (fenêtre rectangulaire, ou pas de fenêtre) s= 0.75*cos(2*pi*440*t), D=0.04s, fe=8kHz f0= a0= fe = N = NTe = Df = spectre/N = f0= a0= fe = N = NTe = Df = spectre/N =

  8. Influence de la fenêtre de Hamming Comparaison des spectres d'amplitude de ces deux fenêtres : fe= N= durée= fe/N= fmin= fmax= Hamming amplMax= nbLobes= largeur= Rectangle amplMax= nbLobes= largeur:

  9. Influence de la taille N du signal dans le cas de la fenêtre de Hamming s= 0.75*cos(2*pi*440*t), D=0.04s, fe=8kHz f0= a0= fe = N = NTe = Df = spectre/N = Dessiner la forme de la fenêtre de Hamming Comparer au spectre obtenu avec la fenêtre rectangulaire

  10. Erreur ou problème de synchronisation On illustre avec le signal s suivant composé d'une ou de deux fréquences f0 et f1 : s=a*cos(2*pi*f0*t)+a1*cos(2*pi*f1*t) • erreur sur l'amplitude et sur la position de la raie si f1 n'est pas l'une des fréquences calculées : • risque de confusion, si les deux composantes de fréquence sont trop proches

  11. Spectre et spectrogramme (avec Goldwave) Spectrogramme de s(t), fe=8kHz, f=500Hz, fenêtre rectangulaire, 30fps spectre = composition fréquentielle Spectrogramme=spectre (temps)

  12. Spectre et spectrogramme avec MATLAB • fe=8000; N=4096; • t=[0:16000]/fe; • s=0.5*cos(2*pi*1000*t)+ 0.75*cos(4000*pi*t); • f=[-N/2:N/2-1]*fe/N; • spec= fftshift(fft(s(1:N))) • plot(f,abs(spec)), grid, figure • spectrogram(s,hamming(N),N/2,N,fe,'yaxis') • colorbar • Noter pour le spectrogramme : • la fenêtre utilisée est une fenêtre de Hamming • le code de couleurs donnant l’amplitude en dB est à droite

  13. Exploitation du tracé du spectre d'amplitude • sur les tracés suivants, retrouver : fe, N, a0 et f0, la durée de la fenêtre temporelle et l'axe de symétrie. Que vaut M ? Que vaut Df ?Quelle est la relation entre les tracés ?

  14. Représentation 3D du spectrogramme • pour le signal vocal, on sait que la durée de la fenêtre d’analyse ne doit pas dépasser 30ms (?) • si fe=8 kHz, c’est une fenêtre de 240 échantillons. • On calcule la TFD de la fenêtre, • on déplace la fenêtre et on recommence • On regroupe les résultats dans un spectrogramme, en 3D (cf. ci-dessous) ou en 2D (cf. Goldwave) • Quelle est ici la résolution fréquentielle ? • Comment obtenir une fenêtre de 20ms, sachant que fe=22050Hz ? Donner la résolution fréquentielle. • Voici le spectrogramme de piano_c3.wav tracé par WaveLab : retrouver les informations de fréquence fondamentale, durée du signal, enveloppe …

More Related