Transformée de fourier par bloc
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Transformée de fourier par bloc



  1. #1
    invite6b4a50a0

    Transformée de fourier par bloc


    ------

    Bonjour,
    je veux savoir comment faire une fft par bloc d'un fichier son.
    merci d'avance de votre aide

    -----

  2. #2
    SPH

    Re : Transformée de fourier par bloc

    ta demande est plutot TRES vague !
    fft = ??
    federation finlandaise de teleski ??

  3. #3
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    fft en matlab :transformée de fourier

  4. #4
    invite88ef51f0

    Re : Transformée de fourier par bloc

    Salut,
    FFT veut dire Fast Fourier Transform, c'est l'algorithme utilise pour calculer la transformée de Fourier en discret.
    Par contre, je ne sais pas ce que c'est qu'une "FFT par bloc".

  5. A voir en vidéo sur Futura
  6. #5
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    je veux la faire non pas sur tout le signal mais sur un seul bloc

  7. #6
    invite7a8ce750

    Re : Transformée de fourier par bloc

    Citation Envoyé par sousou2007 Voir le message
    je veux la faire non pas sur tout le signal mais sur un seul bloc
    Je suis pas doué dans le traitement du signal...
    Mais voilà un point de départ
    http://www.codeproject.com/cpp/howtofft.asp

  8. #7
    invite88ef51f0

    Re : Transformée de fourier par bloc

    Tu as quoi comme données de départ ? Tu utilises quoi comme langage ?

  9. #8
    b@z66

    Re : Transformée de fourier par bloc

    En l'occurrence, une fft s'effectue sur un bloc de deux à une certaine puissance d'échantillons. Une solution pour arriver à ce nombre si on y est pas exactement est de remplir les échantillons manquants par des 0 (padding).
    Dernière modification par b@z66 ; 11/04/2007 à 08h51.
    La curiosité est un très beau défaut.

  10. #9
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    bonjour,
    les données de départ que j'ai sont: un fichier son de 5s.
    j'utilise matlab pour programmer

  11. #10
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    bonjour
    j'ai pas bien compris.est ce que tu peux clarifier un peu ce que tu as dis.

  12. #11
    inviteb9f49292

    Re : Transformée de fourier par bloc

    salut

    Pour lire un fichier wav sous matlab: wavread
    pour faire une fft sous matlab: fft

    ca donne quelque chose comme ca:

    [s, Fs] = wavread ('mon_fichier.wav');
    n = indice du premier echantillon du bloc;
    m = Indice du dernier echantillon du bloc;
    S = fft (s (n:m));

    Attention, il faut que ton fichier soit mono. sinon récupère uniquement la voie qui t'intéresse.

    Tu a aussi la fonction specgram (help specgram pour plus de détail) pour faire de la fft à court terme.

  13. #12
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    Je sais bien cela.
    mais je veux présenter la fft entre -fe/2 et fe/2 pour un seul bloc.
    en d'autre terme: S=fft(f,20*log10(s(n:m));
    le problème c'est comment intialiser f?

  14. #13
    inviteb9f49292

    Re : Transformée de fourier par bloc

    Comme il n'y a pas d'information temporelle dans s, il n'y a pas d'information fréquentielle dans S = fft (s)... MATLAB c'est du calcul numérique... Et il est vrai que la fft de matlab (comme beaucoup d'autre implémentation de la fft d'ailleurs) retourne les fréquences positives ou nulles avant les frequences strictement négatives.
    En résumé:
    [s, Fs] = wavread ("monfichier.wav") te donne un vecteur s et la fréquence d'échantillonnage Fs, tu peux alors calculer ton support temporel t = (0:length (s)-1) / Fs.

    S = fft (s(n:m)) est bien le spectre de ss entre les echantillons n et m, les indices sont alors appelés canaux frequentiels et son support frequentiel f est un peu plus compliqué:
    fpos = Fs * (0lenght (S)-1)/2)/(lenght (S)-1) et
    fneg = -fpos(end-1:-1:1) alors f = [fpos, fneg]

    SdB = 10 * log10 (S.*conj(S)) est le spectre de puissance (en dB)
    (c'est pas le signal qu'il faut passer en dB)

    si tu veux avoir les fréquence négatives avant les fréquences positives tu remplace S par fftshift(S) et f=[fneg, fpos]

    Si tu veux afficher la puissance spectral de ton signal avec sur l'axe des absisses les fréquences
    plot (f, Sdb)
    commme tu aurais fait plot(t, s) pour avoir une absisse en secondes et non en indice d'échantillons.

  15. #14
    invite6b4a50a0

    Re : Transformée de fourier par bloc

    bon soir
    merci beaucoup pour ton aide
    cela a résolu le problème

  16. #15
    invite390df475

    Re : Transformée de fourier par bloc

    bonjour,

    s'il vous plait est ce que quelqu'un peut m'aider à calculer la fft d'un signal wave en matlab.
    le problème que j'ai exécuté la commande suivante
    y=fft(wavred(monfichier.wav))
    j'ai trouvé que le résultat de la commande est sur un fichier énorme 400 MO!!
    comment je peux modifier mes paramètres pour obtenir un taille moindre et comment je peux modifier les paramètres de sortie(car chaque ligne comporte seulement 2 valeurs)?
    aidez moi s'il vous plait

Discussions similaires

  1. Transformée de fourier
    Par invite176531fd dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 17/05/2007, 14h37
  2. Transformée de Fourier
    Par inviteaceb3eac dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 18/02/2007, 16h09
  3. Transformée de Fourier
    Par invite1d872511 dans le forum Mathématiques du supérieur
    Réponses: 7
    Dernier message: 19/11/2006, 20h35
  4. Transformée de fourier
    Par invitedd813fde dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 03/10/2005, 20h57
  5. Transformée de Fourier
    Par inviteec56abf0 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 30/05/2005, 05h59
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...