Supposons que j'ai une fonction inconnue avec le domaine , que je connais pour remplir certaines conditions raisonnables comme la continuité. Je connais les valeurs exactes de (car les données proviennent d'une simulation) à certains points d'échantillonnage équidistants t_i = t_0 + iΔt avec i∈ \ {1,…, n \} , que je peux supposer être suffisamment fins pour capturer tous les aspects pertinents de f , par exemple, je peux supposer qu'il y a au plus un extremum local de f entre deux points d'échantillonnage. Je recherche un test qui me dise si mes données sont conformes à f étant exactement périodiques, c'est-à-dire ∃τ: f (t + τ) = f (t) \, ∀ \, t, la longueur de période étant quelque peu résonnable, par exemple (mais il est concevable que je puisse faire des contraintes plus fortes, si nécessaire).
D'un autre point de vue, j'ai des données et je cherche un test qui répond à la question de savoir s'il existe une fonction périodique (remplissant les conditions comme ci-dessus) telle que .
Le point important est que est au moins très proche de la périodicité (ce pourrait être par exemple ou avec ) dans la mesure où le changement d'un point de données par une petite quantité peut suffire pour rendre les données conformes à étant exactement périodique. Ainsi, les outils standard pour l'analyse de fréquence tels que la transformée de Fourier ou l'analyse des passages par zéro n'aideront pas beaucoup.
Notez que le test que je recherche ne sera probablement pas probabiliste.
J'ai quelques idées pour concevoir moi-même un tel test mais je veux éviter de réinventer la roue. Je recherche donc un test existant.
la source
Réponses:
Comme je l'ai dit, j'avais une idée de comment faire, que j'ai réalisé, affiné et écrit un article sur, qui est maintenant publié: Chaos 25, 113106 (2015) - préimpression sur ArXiv .
Le critère étudié est presque le même que celui esquissé dans la question: Étant donné les données échantillonnées aux moments , le test décide s'il existe une fonction et a tels que:x1,…,xn t0,t0+Δt,…,t0+nΔt f:[t0,t0+Δt]→R τ∈[2Δt,(n−1)Δt]
Le test peut être modifié pour tenir compte des petites erreurs, telles que les erreurs numériques de la méthode de simulation.
J'espère que mon article explique également pourquoi j'étais intéressé par un tel test.
la source
Transformez les données en domaine fréquentiel en utilisant la transformée de Fourier discrète (DFT). Si les données sont parfaitement périodiques, il y aura exactement un bac de fréquence avec une valeur élevée, et les autres bacs seront nuls (ou proches de zéro, voir fuite spectrale).
Notez que la résolution en fréquence est donnée par . Cela définit donc la limite de la précision de détection.sampling frequencyNumber of samples
la source
Si vous connaissez le signal périodique réel, calculez
Additionnez ensuite les éléments de . Si elle est supérieure à un seuil (considérez l'erreur de l'arithmétique à virgule flottante), les données ne sont pas périodiques.difference
la source