ameliorer resolution fft
Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

ameliorer resolution fft



  1. #1
    angelmn

    ameliorer resolution fft


    ------

    Bonjour à tous
    j'essais de faire la transformée de fourier d'un signal sinusoïdal avec la fonction fft de matlab .
    voici mon code
    n etant la longueur du signal que je veux
    fs : la fréquence échantillonnage
    nb:le nombre de poit que je veux représenter de ma fft
    Code:
    function [ftp]=tft(signal,n,fs,nb)
    figure(1);
    signal=signal(1:n);
    subplot(2,1,1)
    plot(signal);         %longueur signal
    fn=hanning(n);
    s=signal'.*fn;% le fenetrage 
    w = 0:fs/(n):(fs/2);
    ft=fftshift(abs(fft(s,n)));
    ftp=ft(fix(length(ft)/2)+1:(length(ft)));
    subplot(2,1,2);
    plot(w(1:nb),ftp(1:nb));
    et voici ce que j'obtient quand j'applique cette fonction sur un signal sinusoïdal de fréquence 1 hz avec une fréquence échantillonnage de 1khz

    mon problème c'est que je veux obtenir un dirac normalement et non pas cette sorte de cone en la frequence fondamental de mon signal.
    qu'est ce que je dois modifier dans mon code pour obtenir celà
    Merci

    -----

  2. #2
    Zenertransil

    Re : ameliorer resolution fft

    Bonjour,

    Ce n'est pas une question de résolution : une transformée de Fourier n'est pas une décomposition en série de Fourier... Elle est continue! Comment veux-tu avoir des impulsions de Dirac? Fais ta transformée de Fourier à la main, tu verras que tu obtiens sensiblement la même chose (je viens de le faire pour être sûr que je ne te raconte pas de bêtises).

    Lorsqu'on a un signal périodique sans composantes interharmoniques et qu'on sa FFT sous les yeux, on ne regarde que ce qui est à la verticale des rangs harmoniques, c'est à dire dans ton cas de 1, 2, 3,... etc. Le reste n'a pas de sens physique, mais a un sens mathématique! Il faut la "discrétiser" si j'ose dire! TOUTES les FFT ont cette allure-là...

  3. #3
    angelmn

    Re : ameliorer resolution fft

    merci de votre reponse,
    mais qu'est ce que je dois faire pour la discrétiser??

  4. #4
    Zenertransil

    Re : ameliorer resolution fft

    Honnêtement, au niveau du logiciel, je n'en sais rien! Mais est-ce bien gênant? Ce que je voulais dire, c'est qu'il ne faut s'intéresser qu'aux sommets de ces "cônes"... Et c'est réglé! Après c'est sans doute une histoire d'affichage, et il y a peut-être un moyen de le changer, je ne sais pas, je ne connais pas du tout matlab. Mais voir une FFT sous cette forme ne me choque pas du tout, je n'en ai jamais vu autrement en fait! Mathématiquement parlant, ça ne me choque pas du tout... Bonne journée

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

    Re : ameliorer resolution fft

    Bonjour!

    Ce n'est pas une question de résolution : une transformée de Fourier n'est pas une
    décomposition en série de Fourier... Elle est continue! Comment veux-tu avoir des
    impulsions de Dirac? Fais ta transformée de Fourier à la main, tu verras que tu obtiens
    sensiblement la même chose (je viens de le faire pour être sûr que je ne te raconte
    pas de bêtises).
    Il y a sûrement une subtilité que je n'ai pas saisie.
    La FFT est calculée avec un ensemble de points fini et produit un ensemble de points fini.
    Elle est donc discontinue. Quant à la transformée de Fourier normale, elle n'est pas
    forcément continue. Elle est même discontinue quand elle s'en prend à un signal
    périodique.
    Quand on calcule une FFT, on suppose que la fonction est localement
    périodique, ce qui fait que le résultat est discret pour ces deux raisons: parce
    que l'entrée est hypothétiquement périodique, et qu'en plus la sortie est discrète.

    qu'est ce que je dois modifier dans mon code pour obtenir celà
    "cela", pas "celà".

    Bon, ceci dit pour en revenir à la question, le résultat que vous obtenez me semble être
    tout-à-fait normal. C'est un problème d'affichage. Vous utilisez un affichage continu
    pour représenter un dirac. À t-1, vous avez 0, à t, vous avez la valeur maximale et
    a t+1, vous avez 0. En interpolation linéaire, ça fait un triangle. Vous avez exactement
    10 périodes en entrée, ce qui fait que votre FFT va fonctionner très bien, toutes les fréquences
    non contenues vont s'annuler parfaitement. Si vous essayez avec 9.3 périodes, par exemple
    au lieu de 10, alors ça va moins bien fonctionner et les alentours du pic seront
    arrondis.

    En voici une illustration avec un programme que j'ai fait. C'est un programme destiné
    à enseigner ce qu'est la FFT par l'expérience. Vous mettez une entrée et vous regardez
    la sortie. Possibilité de prendre les données dans un fichier et de "jouer" le fichier
    pour voir les changements de l'entrée et de la sortie, etc...
    En mettant à l'entrée une fréquence en puissance de 2 (par exemple f = 0.125 = 2^-3), vous
    voyez que le pic est très net (Fig1). Si je mets 0.123, alors les alentours vont être un peu
    moins nets (Fig2). Notez que dans mon programme aussi, j'utilise une fenêtre graphique avec un
    signal continu. Donc le dirac est représenté par un triangle. Ma fenêtre fait 512
    pixels de largeur, la FFT est en 256 points, donc le résultat est en 128 points. Donc
    1 pixel sur 4 a une valeur, tout le reste est interpolé. Il faudrait que je mette un
    choix pour l'affichage, dirac ou continu.

    Maintenant, si vous voulez quelque chose de plus aigu, voici le même calcul en 4096
    points. C'est une solution possible, mais ça va manger du temps processeur pour
    rien. La plupart du temps, les résolutions sont bien plus modestes.
    Vous pouvez voir que le pic est cette fois assez net (Fig 3).

    Une autre solution est le fenêtrage. Le fenêtrage améliore les résultat dans le cas
    d'un résultat réel, mais l'enlaidit dans le cas d'un signal comme ci-dessus (nombre
    exact de périodes en entrée. C'est normal: fenêtrer signifie multiplier l'entrée par
    un gabarit (une fenêtre). En sortie, vous aurez donc la convolution du signal sans
    fenêtre avec la FFT de la fenêtre. (pour rappel: F(A x B) = F(A) * F(B), où x signifie
    multiplication et * convolution). Pour illustrer: Fig 4. Vous voyez que les environs
    du dirac ont été atténués par la fenêtre de Hann (ma soeur Hann). Par contre, toutes
    choses étant égales par ailleurs, si je remets la fréquence à 0.125, vous voyez que
    le résultat est moins beau (fig5 vs fig. 1), la base s'est élargie. C'est normal: la
    fenêtre de Hann est 1 + 0.5 sin(2pi/N). Sa FFT a donc 2 composantes, 1 à 0 et 0.5 à 1,
    0 partout ailleurs. C'est donc une petite fenêtre triangulaire. Si vous convoluez un
    dirac avec n'importe quoi, vous obtenez la même chose, donc le beau dirac du début
    (réprésenté comme un triangle assez mince) est maintenant un triangle un peu plus large
    de la base comme s'il avait un peu abusé d'hydrates de carbone.

    Pascal
    Images attachées Images attachées

  7. #6
    angelmn

    Re : ameliorer resolution fft

    Bonjour ,
    je vous remercie énormément pour cette explication détaillée, je commence à comprendre . donc en gros si je veux m'approcher le plus du Dirac je dois augmenter la taille de la fenêtre fft mais ça ne fera que modifier l'affichage, le résultat est le meme

  8. #7
    Fred_du_92

    Re : ameliorer resolution fft

    Et si tu remplaces ton:
    Code:
    plot(w(1:nb),ftp(1:nb));
    par
    Code:
    plot(w(1:nb),ftp(1:nb),".");
    tu obtiens quoi?

  9. #8
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    Ça dépend de ce que vous entendez par vous "approcher du Dirac". Il faut voir
    que dans tout signal réel, il n'y aura jamais de transformée parfaite. Donc
    essayer de s'approcher de la transformée d'une sinusoïde pure n'a pas tellement
    de sens.

    Et puis dans le cas d'un signal réel, ça ne fera pas que changer l'affichage,
    il y aura une influence sur la résolution. Exemple: avec une FFT à 8 points,
    la plus petite fréquence représentée sera de 0.125. Si vous mettez un signal
    d'entrée à 0.0625 (donc la moitié en résolution), alors vous allez avoir un
    résultat à cheval sur les fréquences 0 et 0.125. Le continu sera majoritaire,
    mais les valeurs suivantes seront affectées en ordre décroissant. C'est en fait
    le même phénomène que ci-dessus (0.125 vs 0.123: 0.125 a un résultat juste
    et 0.123 influe sur les fréquences voisines).
    Par contre, pour en revenir à la FFT en 8 points en doublant le nombre de points
    et en gardant la même fréquence, alors on revient à une situation connue: 1 seul
    pic à 0.0625.

    Ensuite, vouloir une transformée avec un échantillon plus large, dans la pratique,
    tout dépend de ce que vous voulez détecter. Ça prend plus de temps de calcul et
    ce n'est pas forcément nécessaire. Ex: en reconnaissance vocale, on prend souvent
    des blocs de 25 ms avec recouvrement. Suivant la vitesse d'échantillonnage, on
    a donc des blocs de 256 ou 512 échantillons, rarement plus (du moins dans les
    exemples que j'ai vus).

    Tout ça pour dire que concrètement, je ne peux pas vous dire ce qu'il faut faire
    sans connaître un minimum de détails sur le signal à traiter. Quelles sont ses
    caractéristiques (fréquence max), quelle est la résolution minimale à atteindre,
    etc...

    Ah un détail, je me suis trompé dans la fenêtre de Hann. Mais bon, personne n'a
    remarqué. Pour avoir une fenêtre en forme de cloche, ce n'est pas 1 + 0.5 sin(2npi/N)
    mais 0.5[1 - cos(2npi/N)]. Sinon, avec un sinus, ça donne une amplitude maximale sur
    les bords, et c'est le contraire de ce que l'on recherche.

    Et si vous voulez encore augmenter l'efficacité de la FFT d'un facteur 2, il est
    possible de traiter 2 signaux en même temps. En règle générale, vous commencez
    par remplir Re avec votre signal et Im avec 0. Alors au lieu de remplir Im avec
    0, si vous mettez un autre signal, vous pouvez faire 2 FFTs avec la même quantité
    de calcul. Je ne sais pas si c'est possible avec Matlab, mais en tout cas, ça l'est
    avec un microcontrôleur. Très pratique pour faire des FFT avec recouvrement de
    moitié.

    Pascal

  10. #9
    angelmn

    Re : ameliorer resolution fft

    je vous remercie de tout cœur, notamment murayama d'avoir pris la peine de m'ecrire une réponse aussi detaillée.
    en fait finalement j'ai saisit que c'est normal que j'ai pas de dirac et plutôt un lobe puisque c'est continue et que je multiplie par une fenêtre de hamming.
    maintenant svp j'ai une autre question comment je calcule la largeur de ce lobe. si je me trompe pas c'est :
    4/N pour la fenetre de hamming

    donc pour calculer celà je fais fs*4/N
    fs étant la fréquence d'echatillonage.
    et si je veux celà en terme de points sur ma figure ca me ferait je dois multiplier par N et diviser par fs
    et donc ca aurait une largeur de 4 point dans tout les cas d'après ce que j'ai constaté
    est ce que quelqu'un peut me dire si 'est juste ou pas?
    Merci

  11. #10
    annjy

    Re : ameliorer resolution fft

    Citation Envoyé par Zenertransil Voir le message
    Bonjour,

    Ce n'est pas une question de résolution : une transformée de Fourier n'est pas une décomposition en série de Fourier... Elle est continue! Comment veux-tu avoir des impulsions de Dirac? Fais ta transformée de Fourier à la main, tu verras que tu obtiens sensiblement la même chose (je viens de le faire pour être sûr que je ne te raconte pas de bêtises).

    Lorsqu'on a un signal périodique sans composantes interharmoniques et qu'on sa FFT sous les yeux, on ne regarde que ce qui est à la verticale des rangs harmoniques, c'est à dire dans ton cas de 1, 2, 3,... etc. Le reste n'a pas de sens physique, mais a un sens mathématique! Il faut la "discrétiser" si j'ose dire! TOUTES les FFT ont cette allure-là...
    Bonsoir, Znr

    attention, on est en TFD (transformée de Fourier Discrete)
    http://fr.wikipedia.org/wiki/Transfo..._discr%C3%A8te

    il y a certainement d'autres sites que Wiki pour en parler.
    Je te laisse chercher, si le cœur t'en dit.

    Amicalement,
    JY

  12. #11
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    en fait finalement j'ai saisit que c'est normal que j'ai pas de dirac et plutôt un lobe puisque c'est continue et que je
    multiplie par une fenêtre de hamming.
    Non, ce n'est pas la bonne raison. Au départ, vous aurez un triangle même sans fenêtrage.
    Ce n'est donc pas dû à la fenêtre.
    La raison du triangle que vous obtenez vient de l'affichage. Il y a 2 façons d'afficher.
    1. La façon continue.
    Vous partez du point (0, f(0))
    Vous tracez une ligne qui joint (0, f(0)) et (1, f(1))
    ....
    Vous tracez une ligne qui joint (k, f(k)) et (k+1, f(k+1))

    Dans cette représentation, si vous avez 0 partout sauf en k, vous allez
    avoir une ligne horizontale, puis une ligne qui relie (k-1, 0) à (k, f(k) (forte pente dans le sens
    de la montée, soit le côté gauche du triangle que vous observez)
    puis une autre ligne qui relie (k, f(k) à (k+1, 0) (forte pente dans le sens de la descente, soit
    le côté droit du triangle que vous observez), puis pour finir une ligne horizontale qui va de
    (k+1, 0) à (N/2 -1, 0)

    2.La façon discrète (qui est finalement la façon la plus fidèle de représenter un signal discret).
    Vous tracez soit le point (0, f0), soit une ligne entre (0, 0) et (0, f(0)
    ....
    Vous tracez soit le point (k, fk), soit une ligne entre (k, 0) et (k, f(k)

    Dans cette deuxième représentation, vous aurez une série de lignes verticales
    donc cela ressemblera plus à la représentation que l'on se fait d'un dirac. Mais c'est
    exactement la même chose, ce n'est qu'une représentation différente.
    Les segments verticaux n'ont pas de signification autre qu'une amélioration de la lisibilité.

    Pascal

  13. #12
    angelmn

    Re : ameliorer resolution fft

    d'accord,
    merci en fait j'ai pris le signal sinusoïdal seulement pour faire des tests mais ce que j'essai de faire réellement c'est que j'ai un autre signal plus complexe (un ECG) et et il est composé de deux signaux de fréquences différentes donc je passe aux spectral pour pouvoir retrouver les fréquences de chaque signal.
    Le problème c'est que le résultat que je trouve n'est pas très cohérent je n'arrive pas à trouver des pics à la fréquence de chaque signal donc je voudrais pouvoir améliorer ma fft et je ne sais pas sur quel critère jouer est ce que je dois essayer de changer de fenêtre, changer la taille de la fenêtre ou quoi d'autre
    voici le signal que j'ai et le résultat que me donne la fft

    Merci de m'aider

  14. #13
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    Il est difficile de vous aider, on ne connait pas les unités des axes.
    Pour le premier, je suppose qu'il s'agit du nombre d'échantillons et que vous tournez à
    environ 1000 échantillons par seconde, dans quel cas il s'agit d'un ECG un peu rapide,
    un pouls dans les 80 coups par seconde.

    Par contre, le 2ème n'a aucune unité. La résolution me semble insuffisante pour en tirer
    une conclusion. Vous devriez avoir à vue de nez un pic autour des 10 Hz et (ondes RS)
    et un vers les 2~3Hz (ondes PTU) mais c'est très variable d'un EEG à l'autre. Bref, on
    ne voit rien de manière flagrante.

    Pour "savoir sur quoi jouer", il faut savoir en gros ce que vous cherchez. Il faut savoir
    que vous aurez un signal assez bruité (même la FFT) et que l'interprétation n'est pas
    toujours facile. Vous avez raison, en théorie, vous devez trouver 2 pics. Mais le 2ème
    (haute fréquence, qui correspond aux ondes RS) est forcément arrondi: L'ECG est, vu
    de loin, un peigne de Dirac. La transformée d'un peigne de Dirac, c'est une
    sinusoïde. Donc en sortie, vous aurez quelque chose d'arrondi, plat, évident à l'oeil
    mais difficile à extraire automatiquement d'une analyse.

    Pascal

  15. #14
    angelmn

    Re : ameliorer resolution fft

    bonjour,
    merci de votre reponse,
    en fait je cherche toujours ,
    ce que je voudrais retrouver ce sont les pics qui correspondent à la fréquence du bébé qui plus grande.
    l'axe des x de la fft est représenté en fréquences.
    c'est effectivement tres bruité , ya t'il une solution pour le rendre meilleur ??
    Merci

  16. #15
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    ce que je voudrais retrouver ce sont les pics qui correspondent à la fréquence du bébé qui plus grande.
    Bon, je commence à entrevoir que vous cherchez à isoler l'ECG d'un embryon / fétus à l'intérieur de
    sa mère, j'ai bon?

    Dans ce cas là, le traitement est assez complexe:
    - Il est impossible de mettre des électrodes sur le fétus, ce qui fait que le signal est faible et très bruité
    - Le signal comprend entre autres l'EEG de la mère

    Une plus grande résolution ne vous apportera pratiquement rien. L'ECG est limité à, disons, 250 Hz.
    Ce qu'il faut faire, c'est prendre plusieurs signaux. L'ECG de la mère, vous pouvez le prendre quasiment
    à bout portant (ce qui est toujours agréable), ce qui vous donne un signal presque pur à décorréler du
    2ème signal pris sur le ventre.

    Il y a de la doc là dessus sur le net, ce qui serait un bon départ. Et si vous pouvez convaincre le médecin
    que vous devez absolument être là pour veiller au grain, alors vous aurez mon admiration. Je n'ai
    jamais réussi.

    Pascal

  17. #16
    angelmn

    Re : ameliorer resolution fft

    je vous remercie énormément , je suis vraiment perdue et vous m’êtes d'une grande aide.
    c'est exactement ce que je cherche à faire le problème c'est que j'ai une base de données avec des enregistrements d’ecg abdominal je n'ai pas d'ou me procurer l'ECG thoracique il y 'aurait il d'apres vous un moyen de debruiter la fft??
    Merci encore

  18. #17
    Yvan_Delaserge

    Re : ameliorer resolution fft

    Pour extraire la fréquence cardiaque, il faut vous baser uniquement sur les ondes R, ce qui est aisé, puisqu'elles dépassent largement toutes les autres.

    Autrement dit, il faut commencer par virer tout ce qui est inférieur à 200 et supérieur à 400 et ensuite, seulement à ce moment-là, réaliser la FFT.



    A part ça, si le foetus présente une fréquence de 80/min seulement, il va mal. Ou alors, c'est de la médecine vétérinaire?
    Images attachées Images attachées  
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  19. #18
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    Pour info: dans le signal ci-dessus, ce qu'on recherche, ce n'est pas l'ECG de la
    mère, mais celui de son enfant. Voir attachement. Le pouls du fétus n'est donc
    pas de 80, mais d'environ 3 battements par seconde, donc dans les 180. Je vous
    laisse placer les dernières flèches.

    Bon, nous n'avons pas beaucoup de détails sur ce qui est à réaliser, mais même
    si l'on ne veut que compter les battements (de manière automatisée), je vous
    laisse juger de la difficulté.

    Si par contre c'est une extraction de signal (en vue d'observer et de juger
    si le coeur est normal ou non), alors là, ça se complique. Il y a diverses
    méthodes basées sur du "pattern matching" (je vous le laisse traduire, je n'ai
    aucune idée de la version française). En gros, on utilise une famille de patterns,
    on fait un genre de transformée avec des corrélations pour trouver les coefficients
    d'un modèle correspondant à l'ECG de la mère. On soustrait le signal synthétisé
    par ce modèle du signal global, et on obtient l'ECG du petit, très bruité. Ensuite
    on débruite l'ECG par filtrage.

    Pascal
    Images attachées Images attachées  

  20. #19
    angelmn

    Re : ameliorer resolution fft

    Mercii yvan_delaserge mais en fait ces ondes R correspondent à celles de la mère et moi je veux garder l'ecg du fœtus pour retrouver deux frequences disctintes dans ma fft donc je ne pourrait as decouper seulement les ondes R de la mère.
    Mercii encore murayama oui je me rend compte que c'est assez délicat , ce serait dejà bien si j'arrive à retrouver le rythme cardiaque fœtal mais bien sur l’idéal c'est de faire de l'extraction. J'ai vu quelques travaux qui font ça mais le problème c'est qu'on m'impose la méthode de l'analyse spectrale donc je dois commencer par la fft ensuite je me demande ce que je dois faire d'autre pour l’améliorer et pouvoir extraire la frequence de l'ecg fetal

  21. #20
    Yvan_Delaserge

    Re : ameliorer resolution fft

    OK, je comprends mieux.

    Dans le cas particulier, le problème semble insoluble s'il faut commencer par une FFT, parce que la fréquence cardiaque foetale est exactement le double de la fréquence maternelle. On n'a qu'une différence de phase entre les deux. On voit les complexes QRS foetaux uniquement grâce à cette différence de phase. A quelques millisecondes près, ils seraient masqués par les ondes R ou T maternelles.

    La FFT va nous montrer des pics à la fréquence cardiaque maternelle et à ses harmoniques et la fréquence cardiaque foetale va nous donner un pic qui va se superposer à l'harmonique 2 de la fréquence cardiaque maternelle.

    A moins qu'il existe un traitement mathématique qui permette de mettre en évidence un déphasage sut une FFT. La parole est à Murayama.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  22. #21
    angelmn

    Re : ameliorer resolution fft

    bonjour,
    merciii de votre réponse en fait je pensais que le rythme fœtal ne serait exactement du double de celui de la mère parce que d'après mes calcul celui de la mère serait dans les 1.5 hz alors que celui du bébé je prévois de le trouver au 2 hz.
    du coup je pensais que ca devait être visible dans la fft

  23. #22
    Yvan_Delaserge

    Re : ameliorer resolution fft

    Ben non, il n'y a qu'à regarder le graphe où murayama a ajouté les flèches rouges. Déterminer la fréquence cardiaque foetale avec une FFT dans ces conditions, c'est comme d'essayer de localiser une lampe de poche à la surface du Soleil!

    Encore que...

    Même si les QRS foetaux coincidaient avec les QRS ou les T maternels, l'information désirée serait quand même présente dans le signal.

    Peut-être qu'en faisant une FFT pendant un temps très long (plusieurs dizaines ou centaines de battements) on arriverait à individualiser les deux pics. Les deux rythmes cardiaques ne peuvent par rester synchronisés (c'est un hasard) pendant plus longtemps que quelques secondes.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  24. #23
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    J'ai trouvé le œ. Option-q pour ceux qui chercheraient.

    du coup je pensais que ca devait être visible dans la fft
    Non, malheureusement, c'est plus compliqué. Un EEG a des pics assez aigus qui
    se traduisent par un spectre étalé. On peut se souvenir que la transformée de Fourier
    de la distribution de Dirac est une fonction constante (*). En gros, ce qui est aigu
    dans le domaine temporel sera étalé dans le domaine fréquentiel.
    Les deux spectres d'ECG auront de grandes plages de fréquences communes et en plus le
    petit a 10 fois moins d'énergie, ce qui résulte en un masquage.
    Si on ajoute le bordel ambiant de tout le reste (bruit, ondes P, ondes T, mouvements
    musculaires), on comprend bien qu'il sera impossible de trouver quoi que ce
    soit par FFT et qu'il va falloir ruser. Déjà à l'oeil, j'imagine que quelqu'un qui
    n'aurait pas l'habitude de ce genre de signal ne verrait qu'un ECG ordinaire.

    (*) Ceci n'est pas absolument exact pour une fonction périodique. La FFT part du
    principe que la fonction est localement périodique.

    Quand on a un signal très bruité, toutes les approches classiques échouent.
    Il n'est pas possible d'utiliser des seuils fixes parce que tous les ECG
    diffèrent en fréquence et en amplitude. Vous ne pouvez faire aucune hypothèse sur les
    rythmes cardiaques réciproques. Celui du fœtus est ici de 180 (limite haute), mais il
    pourrait être tout aussi bien de 120 qui est la limite basse. Et un pouls de 120 pour
    une adulte en situation de stress (être reliée à des appareils dans un hôpital peut
    en être une), ce n'est pas non plus anormal.

    Dans le diagramme ci-dessus, on voit bien les 2 ECG mêlés, on voit aussi du bruit et
    du signal respiratoire et / ou musculaire qui fait onduler la ligne de base.

    L'approche de forme pour traiter le signal est bien plus efficace. La raison est
    précisément parce que cela ne repose pas sur des chiffres définis qui de toute
    façon diffèrent suivant le patient, mais sur des formes qui sont communes à tous.
    Le médecin qui regarde un EEG regarde surtout sa forme.
    Imaginez que vous dessinez une sorte d'"ECG étalon" sur un calque en caoutchouc
    et que vous l'étirez pour le faire recouvrir au mieux la courbe ci-dessus. Tout ce qui
    déborde, c'est le signal (bruité) que vous cherchez. L'étalon étiré, c'est votre signal
    de synthèse que vous soustrairez du signal d'origine.

    Bon, maintenant, voyons les choses pratiques. Vous avez l'obligation d'utiliser la FFT.
    Peut-être pouvez-vous explorer ce genre d'algorithme en utilisant une corrélation
    basée sur la FFT. En effet, le théorème de Klershâzâl (1) établit la relation entre
    une corrélation dans l'espace temporel et une multiplication dans l'espace fréquentiel
    (au fait, on écrit fréquentiel ou plutôt fréquenciel comme pour ciel mon mari?).

    Pour toute paire de fonctions g et h de t, en nommant leurs transformées G et H
    de f, t étant le temps et f la fréquence:

    Corr (g(t),h(t)) <-> G(f) x H*(f)

    NB: c'est bien "H étoile de f" et non "H fois (f)"

    (1) Ne cherchez pas Klershâzâl, je ne me souviens plus de l'auteur et ne sais même pas
    si ce théorême a un nom. Mais la relation elle-même est vérifiable.

    Peut-être qu'en faisant une FFT pendant un temps très long (plusieurs dizaines ou
    centaines de battements)
    Avec un grand échantillon, le spectre va globalement se décaler sur la gauche
    (en fréquence normalisée, le spectre va être comprimé à gauche), mais le recouvremement
    sera en moyenne strictement le même. Bon, évidemment, il faut que l'échantillon soit
    suffisamment grand pour contenir à coup sûr 1 battement.

    Pascal

  25. #24
    Yvan_Delaserge

    Re : ameliorer resolution fft

    Magistral! Merci Murayama.
    Un civet, un plat de côtes et puis, glissez-moi une petite paupiette avec.( Lino Ventura)

  26. #25
    Murayama

    Re : ameliorer resolution fft

    Re!

    Magistral! Merci Murayama.
    Vous exagérez!
    En plus j'ai écrit une connerie à la fin (ça me turlupinait depuis un moment
    et j'y suis revenu). Enfin pas forcément une connerie, ça dépend de ce que l'on
    fait varier.
    En l'occurrence, on est obligé de garder une fréquence d'échantillonnage à, disons,
    500 Hz pour avoir des ondes R bien nettes.
    Si j'utilise un plus grand ensemble avec la même fréquence
    d'échantillonnage: par exemple je double le temps. J'aurai donc 2 fois plus
    d'échantillons. Prenons l'exemple de sin(2 k pi / N) pour k allant de 0 à N-1.
    J'aurai donc une sinusoide qui a une seule arche. En fréquence, j'aurai un "dirac"
    à 1, et 0 partout ailleurs (oui, il y en a un autre sur la partie symétrique, ne chipotons pas).

    Si je double le temps, et que je fais une FFT sur 2N, j'aurai maintenant 2 arches.
    Donc en fréquence, j'aurai un dirac à 2, et 0 partout ailleurs.
    Conclusion: si on remet les deux spectres à la même échelle, le 2ème aura une
    résolution double, mais sa forme sera exactement la même.

    Pascal

  27. #26
    angelmn

    Re : ameliorer resolution fft

    merciiiii murayama vous êtes un(une) vrai pro
    en fait je ne comprend pas trop comment je peux utiliser la corrélation et pour faire quoi eu juste??

    je suis en train d'explorer une piste mais je ne sais pas trop si ça peut mener à quelque chose en fait j'ai fais en sorte de ré-échantillonner chaque partie du signal à part de façon qu'il se rapproche le plus du signal périodique.
    j'ai obtenu un signal ayant tout au long des intervalles R-R ayant exactement la même longueur .
    j'ai l'impression que j'ai une meilleure fft les pics de la fréquence de la mère sont mieux visible plus défini mais pour le reste je n'arrive pas vraiment à l’interpréter voici une photo de ce que j'ai obtenu.

    vous pensez que je devrais essayer de continuer dans ce sens ou c'est inutile??

    pour ce qui est de prendre une grande partie du signal , j'ai essayé d'aller jusqu'à une fenêtre de taille=4096*6 j'ai l'impression que ca améliore un peu les choses il y a plus de pics visibles je crois que ca permet que les fréquences de la mère et celles du bébé se chevauchent moins mais c'est toujours très bruités avec des pics de trop que je n'arrive pas à interpréter voici la photo

    je vous remercie énormément vous m’êtes d'un grand secours je galère tellement et depuis si longtemps

  28. #27
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    en fait je ne comprend pas trop comment je peux utiliser la corrélation et pour faire
    quoi eu juste??
    Une corrélation, ça sert à déterminer le degré de similitude entre 2 fonctions.
    Si vous calculez la corrélation entre votre signal et un signal ECG standard, vous
    allez trouver des pics de similitude. Essayez sur du papier, vous comprendrez.
    Choisissez un endroit du signal où on voit bien toutes les ondes PQRST et tracez
    sur un calque ce qui vous semble être le signal sans bruit. Déplacez le calque
    sur votre signal, et imaginez ce que sera la corrélation...
    Si vous trouvez une forte corrélation et que vous soustrayez le signal test, alors
    vous aurez un signal sans l'ECG de la mère.
    La corrélation, comme la transformée de fourier DFT est très longue à calculer, mais
    il est possible de passer par la FFT non pas pour en tirer des conclusions, mais
    juste en tant qu'outil de calcul par la méthode citée plus haut.

    je suis en train d'explorer une piste mais je ne sais pas trop si ça peut mener à quelque
    chose en fait j'ai fais en sorte de ré-échantillonner chaque partie du signal à part de
    façon qu'il se rapproche le plus du signal périodique.
    j'ai obtenu un signal ayant tout au long des intervalles R-R ayant exactement la même longueur .
    Je ne voudrais pas paraître négatif, mais en faisant cela, vous changez l'échelle de
    temps. Donc vous perturbez aussi les caractéristiques du signal que vous recherchez.
    A moins que vous ne gardiez une référence de temps pour chaque morceau (time stamp).

    j'ai l'impression que j'ai une meilleure fft les pics de la fréquence de la mère sont
    mieux visible plus défini mais pour le reste je n'arrive pas vraiment à l’interpréter
    voici une photo de ce que j'ai obtenu.
    Oui, mais ça, c'est évident. Vous forcez votre signal à avoir une fréquence fixe, donc
    vous allez trouver des harmoniques plus fortes à espaces réguliers. Et puis il ne faut
    pas oublier ici que le signal venant de la mère, c'est du bruit qu'il faut éliminer.

    vous pensez que je devrais essayer de continuer dans ce sens ou c'est inutile??
    Pour être franc, je n'arrive pas à voir clairement le but de la manipulation,
    et je préfère m'abstenir de juger.
    Supposition: en découpant le signal pour avoir des ondes R fixes, vous pourrez peut-être
    éliminer le signal de la mère, puis en tenant compte de "time stamps" recomposer le
    signal sans l'ECG de la mère. Est-ce que c'est cela, votre approche? Dans ce cas, à quoi
    va servir la FFT?

    pour ce qui est de prendre une grande partie du signal , j'ai essayé d'aller jusqu'à une
    fenêtre de taille=4096*6 j'ai l'impression que ca améliore un peu les choses il y a plus
    de pics visibles je crois que ca permet que les fréquences de la mère et celles du bébé
    se chevauchent moins mais c'est toujours très bruités avec des pics de trop que je n'arrive
    pas à interpréter voici la photo
    4096 * 6? Vous pouvez détailler? Est-ce que c'est une taille de 24000 et quelques?
    2 fenêtres de 16000 avec overlap de 8000?

    Attention: un piège classique en traitement de signaux, c'est de baser un algorithme sur
    un seul signal. Si vous utilisez toujours le même signal, vous finirez par trouver une
    technique qui fonctionne sur celui-là. Mais pas forcément sur un autre.
    Question: est-ce que vous utilisez toujours le même signal, ou alors est-ce que vous faites
    vos tests sur toute la base de données.

    Pascal

  29. #28
    angelmn

    Re : ameliorer resolution fft

    bonjour,
    murayama je ne saurais vous remercier assez.
    en fait j'abandonne pour le moment le truc du ré-echantillonage
    par contre j' vais plus ver l’agrandissement de la fenêtre.
    j'essai de travailler avec une fenêtre de 32000 point comme ca les pic de la frequence de la mère et ceux du bébé risque de moins se chevaucher .
    qu'est ce que vous en pensez??
    j'ai pas l'habitude de voir des fft sur des fenêtre aussi grande du coup je me demande quel est le risque de travailler sur autant de point?

  30. #29
    angelmn

    Re : ameliorer resolution fft

    j'essai aussi de faire la moyenne de plusieurs fft réalisé sur plusieurs partie du signal (j'en fait jusqu'à 8)
    vous pensez que ca pourrait aider à la débruiter??
    Merciii

  31. #30
    Murayama

    Re : ameliorer resolution fft

    Bonjour!

    j'essai de travailler avec une fenêtre de 32000 point comme ca les pic de la frequence
    de la mère et ceux du bébé risque de moins se chevaucher.qu'est ce que vous en pensez??
    Il me semble avoir expliqué ce qui se passe quand on élargit la fenêtre. Je reprends,
    mais plus détaillé:
    Example 1: vous avez un signal sin(2kpi/N) que vous analysez avec une fenêtre de N
    échantillons avec 0 <= k < N -> vous aurez un pic unique à 1, donc 1/N en fréquence
    normalisée (et aussi à N-1/N).
    Example 2: vous élargissez la fenêtre à 2N. Votre signal sin(2kpi/N), si vous le remettez
    à l'échelle de 2N, ce sera sin(4kpi/2N) -> vous aurez pic à 2, donc 2/2N ou encore 1/N
    en fréquence normalisée.
    Conclusion: en doublant la fenêtre sans changer l'échantillonnage, vous aurez le même
    spectre normalisé (le même pic en 1/N et aussi son symétrique en N-1/N), mais celui
    de la fenêtre double sera 2 fois plus fin.

    Quelle est la durée d'une séquence PQRST? Je dirais au plus 500 ms.
    Alors à vue de nez, il est inutile de prendre plus que ça, mais il est
    peut-être utile de faire une analyse "glissante" pour être certain de pouvoir attraper
    des séquences PQRST entières, ce qui facilitera grandement la détection.
    Si vous prenez 32000 échantillons, vous allez avoir 40 ondes et vous allez perdre
    l'instantanéité du spectre. Il ne faut pas oublier que vous avez des tas de parasites
    (enfin pas vous, le signal) comme sur l'ECG que vous publiez (mouvents musculaires et/ou
    respiratoires). Le tout va résulter en une espèce de moyenne dont on ne pourra rien
    conclure.

    Le spectre sera plus fin, là vous avez raison, mais comme l'un et l'autre ont autant
    de relief que des méduses échouées à marée basse, vous ne pourrez rien en tirer.

    Une autre idée, qui n'est en aucun cas une démonstration, mais plutôt un résultat intuitif
    d'expérience: on essaie en général de s'adapter à ce que l'on cherche. En traitement
    de parole, il faut trouver les signaux localement stationnaires, (les voyelles), mais
    aussi les signaux rapides. Ce qui fait qu'il faut une taille de FFT qui représente
    quelque chose pour le signal. On choisit en général dans les 16 ou 32 ms, ce qui fait
    qu'avec une fréquence de 16 k, on a dans les 256 ou 512 échantillons, jamais plus pour
    ce que j'en ai vu.

    Bon, je ne veux pas vous forcer à faire des corrélations, même si elles font appel à
    des FFT, mais juste encore une chose plus ou moins intuitive: le traitement de parole
    est très aisé dans le domaine fréquentiel parce que nous réagissons fréquentiellement.
    Les formants sont à des fréquence commune pour les hommes comme pour les femmes, ce qui
    fait qu'ils se comprennent (1). Pour l'ECG, ce qui est reconnu par le médecin, c'est
    fortement temporel. Jamais un médecin ne va regarder le spectre d'un ECG. Et c'est
    temporellement que l'on voit les pics de l'ECG de l'enfant ainsi que les bruits musculaires.
    C'est ce qui privilégie, je pense, l'approche temporelle.

    (1) D'aucuns m'ont rapporté qu'ils ont des doutes.

    Pascal

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Conversion d'une vidéo basse résolution en image très haute résolution
    Par mayonaise dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 10
    Dernier message: 28/03/2014, 14h01
  2. Exercice résolution graphique et résolution algébrique
    Par marilou83000 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 14/12/2013, 14h56
  3. Résolution de probléme conduisant à la résolution d'équation du second degré
    Par sanllier71 dans le forum Mathématiques du collège et du lycée
    Réponses: 3
    Dernier message: 06/06/2013, 10h35
  4. Améliorer une vmc df
    Par matmac dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 12
    Dernier message: 11/04/2009, 08h44
  5. améliorer un cos φ
    Par marouane1991 dans le forum Électronique
    Réponses: 8
    Dernier message: 09/03/2008, 20h19
Découvrez nos comparatifs produits sur l'informatique et les technologies.