Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Futur Membre du Club
    Inscrit en
    octobre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 59
    Points : 16
    Points
    16

    Par défaut problème fonction fft

    Bonjour à tous,

    Je cherche à faire une fft de deux signaux relativement simple. Malheureusement, lorsque je fais la fft, je n'obtiens pas les deux fréquences représentées, à savoir 244 et 250.

    Voici mon code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Fs = 32768;                   % Sampling frequency
    T = 1/Fs;                     % Sample time
    L = 2048;                     % Length of signal
    t=(0:L-1)*T;                 % 2048*dt Time vector
    
    % Sum of a 244 Hz sinusoid and a 250 Hz sinusoid
    x = sin(2*pi*244*t);
    y = sin(2*pi*250*t);
    z = x+y;
    
    %fft
    figure(1)
    FFT_size=2048;
    X=fft(z,FFT_size);
    f=(0:FFT_size/2)/(FFT_size/2)*Fs/2;
    plot(f,abs(X(1:FFT_size/2+1))); % on voit bien que le signal est à 10 Hz
    title('FFT - Pré');
    xlabel('Fréquence(Hz)');
    ylabel('Amplitude');
    Avez-vous une idée de la raison pour laquelle le pic sur 250 n’apparaît pas?
    Merci d'avance pour votre aide.

  2. #2
    Membre émérite Avatar de tubaas
    Homme Profil pro Mathieu Martinez
    Acousticien
    Inscrit en
    août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Nom : Homme Mathieu Martinez
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : août 2009
    Messages : 641
    Points : 837
    Points
    837

    Par défaut

    salut
    je ne vais pas exactement répondre à ta question mais essayer tout de même de t'aiguiller : d'après toi, quelle est la résolution fréquentielle de ta fft (étant donné que le code est plutôt bien écrit, il est surprenant que tu ne te sois pas posé la question) ?

  3. #3
    Nouveau Membre du Club
    Profil pro Daudet Alphonse
    Inscrit en
    septembre 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Nom : Daudet Alphonse
    Âge : 29

    Informations forums :
    Inscription : septembre 2010
    Messages : 37
    Points : 29
    Points
    29

    Par défaut

    Bonjour,

    Il apparaît, mais caché...
    Ta résolution n'est pas bonne, les deux pics sont mélangés.
    Passe "L" et FFT_size" à 2^20 et tu les verras distinctement
    Ou bien teste les fréquences "240" et "300".

    Cdt,
    L'hermine

  4. #4
    Futur Membre du Club
    Inscrit en
    octobre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 59
    Points : 16
    Points
    16

    Par défaut

    Merci beaucoup pour vos réponses!

    Citation Envoyé par tubaas Voir le message
    d'après toi, quelle est la résolution fréquentielle de ta fft (étant donné que le code est plutôt bien écrit, il est surprenant que tu ne te sois pas posé la question) ?
    En fait, je ne me suis pas posé la question car la résolution de ma fft est fixe et ce n'est donc pas un paramètre que je peux modifier pour améliorer la résolution. Donc,

    Citation Envoyé par L'hermine
    Passe "L" et FFT_size" à 2^20 et tu les verras distinctement
    Ou bien teste les fréquences "240" et "300".
    c'est impossible pour moi...

    Je pensais à faire ce que l'on appel un zoom fft pour contourner le problème.

  5. #5
    Futur Membre du Club
    Inscrit en
    octobre 2009
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 59
    Points : 16
    Points
    16

    Par défaut fonction fft et zoom fft

    Alors, je me suis déjà un peu engagé dans le codage de ce type de fonction mais après un 'Heterodyning', je suis coincé dans le filtrage. D'après mes lectures, il est conseillé de faire une fir mais je ne suis pas convaincu de l'utilisé correctement.

    Voici ce que j'ai eu l'occasion de coder:
    Code :
    1
    2
    3
    b = fir1(16,Fs2/2); % 16 a été mis au hasard et Fs2/2 correspond à la fréquence
    A=1;      
    ycv = filter(b,A,ab);% ab correspond au signal après l'heterodyning
    Parmi les paramètres dont je ne suis pas sure, il y a les deux dans fir1 ainsi que le A pour le filtrage.

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •