Bonjour,
je vouidrais faire afficher mon spectre en decibel:
pour le moment, je fais plot(freq, fftshift(abs(fft(signal))))
que dois je modifier
merci
Version imprimable
Bonjour,
je vouidrais faire afficher mon spectre en decibel:
pour le moment, je fais plot(freq, fftshift(abs(fft(signal))))
que dois je modifier
merci
Quel est le rapport avec Matlab ?
Il suffit juste de connaitre la définition du décibel
Bonjour,
applique la définition de décibel.
voila une fonction utile: log10.
je fais 20*log10(abs(signal))
je veux egalement faire afficher mes frequences en echelle logarithmique pour le moment je fais
mais cela me donne un peu n'impoprte quoiCode:
1
2 s=20*log10(abs(fft(signal))) plot(log(freq),fftshift(s))
j'ai regarde les fonctions loglog et semilogx mais je ne vois pa trop comment les utiliser et si c'est celle la qu'il faut
salut
Code:
1
2 s=20*log10(abs(fft(signal))) semilogx(freq,fftshift(s))
Afin d'avoir une amplitude en dB cohérente, quelques points à ne pas négliger...
Supposons un signal de N points, et un calcul de FFT sur NFFT points.
Pour ne pas avoir une représentation symétrique :Code:FFT_signal = fft(signal,NFFT)/NFFT;
En multipliant par sqrt(2), on compense ainsi la puissance contenue dans la partie que l'on omet.Code:demi_FFT = abs(FFT_signal(1:NFFT/2))*sqrt(2)
Pour le reste, 20*log10 ... semilogx ...
NB : autre petite précision... on parle de dB déciBel, pour dixième de Bel... et non pas Db