Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Interpolation/resampling d'un signal en python



  1. #1
    Yoghourt
    Animateur Habitat

    Interpolation/resampling d'un signal en python


    ------

    Bonsoir,

    Quand on trace un jeu de données (Xn,Yn), on cherche souvent les valeurs Y'n pour d'autres abscisses en faisant une hypothèse éclairée sur la tête de la courbe support.
    Sur internet, on va ainsi trouver très facilement 2 choses :
    - les interpolations classiques pour un espacement quelconque des Xn (en escalier, linéaire par morceaux, polynomiale, spline). A l'ouest pour les fonctions périodiques, discutable pour les pseudo-signaux, gros souci de convergence en général pour l'interpolation polynomiale de plus de 20 points et pour les splines d'ordre>2.
    - le resampling où l'on passe d'une équirépartition à une autre. Technique issue du traitement du signal et de l'information, qui adresse correctement les problématiques d'aliasing/crénelage. Points faibles : la contrainte d'équirépartition, et le risque de décalage en x entre signal resamplé et signal d'origine

    Pour le codage en python, dans le 1er cas, ça semble facile : numpy pour l'interpolation linéaire, scipy pour le reste.
    https://fr.wikibooks.org/wiki/Python...ion_et_lissage

    Dans le 2e cas, je n'ai trouvé que panda.resample(). Déjà, panda juste pour faire un peu de calcul, c'est lourdingue. De plus, la méthode resample() est à l'ouest : en upsampling par ça insère des NaN qu'il faut ensuite interpoler. La méthode d'interpolation 'time', on ne sait pas ce qu'elle fait. Les autres méthodes d'interpolation sont en fait des méthodes...d'interpolation classique, donc pas licite en théorie du signal! Soit on introduit des erreurs de crénelage, fantome... Soit on invente carrément de l'information, là.
    En théorie du signal (cas à moyenne nulle pour simplifier), un upsampling par N insère N zéros entre chaque sample d'origine, puis il faut filtrer à la fréquence normalisée 1/N pour virer les spectres image. Pour panda en downsampling par P, si j'ai bien compris, panda se borne à regrouper les données et démerden sie sich pour traiter chaque paquet de P données. Généralement les gens font une simple moyenne. Ca revient à calculer une moyenne mobile puis garder 1 sample sur P, celui du milieu.
    En théorie du signal, il faut filtrer passe-bas à fréquence 1/P puis décimer. Au passage, la moyenne sur P samples est très très loin d'un filtre passe-bas parfait à 1/P, et prendre la moyenne d'un paquet de 3 introduit irrémédiablement un décalage du signal en x.

    Du coup, je n'imagine même pas le gloubiboulga à base de panda pour le cas général "facile" du resampling par N/P, encore moins celui du resampling par un facteur quelconque!
    Quelqu'un a forcément déjà codé le resampling tout nickel dans les librairies python. On trouve ça où?

    Par ailleurs, j'ai compris à la lecture de quelques articles qu'il existe un théorème général de reconstruction de série temporelle Xn,Yn qui fait les choses proprement (conforme théorie du signal, comble les trous éventuels, pas de contrainte d'équirépartition, pas de déphasage introduit, resampling propre au passage). Apparemment, c'est hyper bateau, tellement bateau que je n'ai jamais trouvé de quoi il s'agit précisemment. Et donc, ça doit forcément exister prêt à l'emploi dans une librairie python. Mais où???


    Chuss,
    Y.

    -----
    éco-rénovation: l'aïkido du BTP

  2. Publicité
  3. #2
    albanxiii
    Modérateur

    Re : Interpolation/resampling d'un signal en python

    Bonjour,

    J'ai déplacé en Programmation, puisque ce problème n'a pas suscité beaucoup de réponses en mathématiques où il était précédemment.

    albanxiii, pour la modération.
    Not only is it not right, it's not even wrong!

  4. #3
    Yoghourt
    Animateur Habitat

    Re : Interpolation/resampling d'un signal en python

    Merci Alban
    éco-rénovation: l'aïkido du BTP

  5. #4
    Yoghourt
    Animateur Habitat

    Re : Interpolation/resampling d'un signal en python

    Hello,
    Faut chercher de ce coté?
    https://en.wikipedia.org/wiki/Singul...ctrum_analysis
    éco-rénovation: l'aïkido du BTP

  6. A voir en vidéo sur Futura

Discussions similaires

  1. Transformée de fourier, traitement de signal, python
    Par zo28 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 03/01/2020, 08h31
  2. [PYTHON] Transformée de Fourrier discrète sur un signal déjà échantillonné
    Par Shantorian dans le forum Programmation et langages, Algorithmique
    Réponses: 20
    Dernier message: 17/10/2017, 09h39
  3. Traitement de signal sous python
    Par Shantorian dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 29/06/2017, 08h51
  4. [Matlab] Interpolation d'un signal par transformée de Fourier
    Par Disciple_Antennes dans le forum Physique
    Réponses: 4
    Dernier message: 18/04/2016, 17h16
  5. Resampling dans les règles de l'art ?
    Par adrienlucca dans le forum Physique
    Réponses: 6
    Dernier message: 29/11/2012, 11h28