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
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
Ingénieur indépendant en mécatronique - Conseil, conception et formation
- Conception mécanique (Autodesk Fusion 360)
- Impression 3D (Ultimaker)
- Développement informatique (Python, MATLAB, C)
- Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)
« J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)
Bonjour,
applique la définition de décibel.
voila une fonction utile: log10.
MATLAB 7.4 (R2007a) WIN XP SP2
-------------------------------------
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 quoi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 s=20*log10(abs(fft(signal))) semilogx(freq,fftshift(s))
MATLAB 7.4 (R2007a) WIN XP SP2
-------------------------------------
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 : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part 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
Matlab R2009b
Forget the accents... sorry but qwerty ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager