Test pour distinguer les données périodiques des données presque périodiques

9

Supposons que j'ai une fonction inconnue f 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) \, ∀ \, tfti=t0+iΔti{1,,n}fffτ:f(t+τ)=f(t)t, la longueur de période étant quelque peu résonnable, par exemple Δt<τ<n·Δt (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 x0,,xn et je cherche un test qui répond à la question de savoir s'il existe une fonction périodique f (remplissant les conditions comme ci-dessus) telle que f(ti)=xii .

Le point important est que f est au moins très proche de la périodicité (ce pourrait être par exemple f(t):=sin(g(t)·t) ou f(t):=g(t)·sin(t) avec g(t)g(t0)/Δt ) dans la mesure où le changement d'un point de données par une petite quantité peut suffire pour rendre les données conformes à f é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.

Wrzlprmft
la source
4
Étant donné que vous disposez de données , pourriez-vous expliquer ce que vous entendez par le fait que le test n'est pas "statistique"? Quel genre de test avez-vous en tête alors?
whuber
1
Soit dit en passant, vous pouvez commencer ici si vous êtes à la recherche d'un test statistique de périodicité.
tchakravarty
2
Comment les points d'échantillonnage ont-ils été déterminés? Puisque vous ne savez probablement pas exactement ce qu'est , alors si quelqu'un d'autre devait échantillonner , n'utiliseraient-ils pas des «temps» différents et n'obtiendraient donc pas des valeurs différentes? Voilà la variabilité. Soit dit en passant, les données exactes n'existent pas, sauf si vous effectuez un exercice mathématique théorique, donc ce serait une bonne idée d'expliquer comment vous avez trouvé les valeurs de . fff
whuber
2
Alors que @whuber et amoeba poursuivent leur route, il sera difficile de répondre à cette question tant qu'une définition satisfaisante du périodique et / ou du test n'aura pas été fournie. Étant donné points arbitraires échantillonnés sans erreur, il existe une infinité de fonctions périodiques continues (en utilisant la définition littérale) qui s'adapteront aux points. C'est un simple exercice d'interpolation. Mais ce n'est évidemment pas plus une réponse à votre question que le fait qu'un ensemble de prédicteurs aléatoires s'adaptera parfaitement à points par régression linéaire. Par conséquent, nous attendons avec impatience votre clarification. nnn
Cardinal
1
Pour tout qui n'est pas un multiple rationnel de , les données dont vous disposez peuvent toujours être vues comme un échantillon d'une fonction périodique continue de la période car vous n'avez aucune observation exactement un multiple entier de part. Cela conduit aux observations de @ cardinal, ce qui revient à constater que cette conclusion est trop banale pour être utile mais néanmoins vous n'avez fourni aucun critère pour l'exclure. τΔtττ
whuber

Réponses:

0

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,,xnt0,t0+Δt,,t0+nΔtf:[t0,t0+Δt]τ[2Δt,(n1)Δt]

  • f(t0+iΔt)=xii{1,,n}
  • f(t+τ)=f(t)t[t0,t0+Δtτ]
  • f n'a pas plus d'extrêmes locaux que la séquence , à l'exception peut-être d'au plus un extremum proche du début et de la fin de chacun.xf

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.

Wrzlprmft
la source
-1

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

comme un
la source
1
Comme je l'ai déjà dit dans la question, la transformée de Fourier (au moins toute seule) n'est même pas assez précise à distance pour détecter les différences qui m'intéressent et ne détectera pratiquement aucune différence entre et . De plus, ce que vous prétendez ne s'applique qu'aux données sinusoïdales. Pour toute autre donnée, les sous-harmoniques apparaîtront. sin(x)(1+εx)·sin(x)
Wrzlprmft
-2

Si vous connaissez le signal périodique réel, calculez

difference=|theoretical datameasured data|

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

asdsaj
la source
1
Mis à part le fait que je ne connais pas le signal sous-jacent, cela n'a rien à voir avec la périodicité mais fonctionnerait chaque fois que je connais le signal sous-jacent.
Wrzlprmft