2010-11-21 17 views
16

私はデータセット(配列)を持っており、その中に周期性を見つける必要があります。私はどのように進めるべきですか?助けてください。ありがとうございます。私はFFTを使うことができると言ったが、私はどのようにして周期性を与えるのか分からない。あなたの助けがありがたい。データの周期性を調べる方法は?

答えて

4

周期性を:

はここを見て...そして、あなたは簡単に特定の周波数で生成された主要なcontribuitionsあるかを認識することができますので、あなたがありますどのように多くの周期を理解し、最も影響力のあるものであるだろうよく定義された用語ではありません。例えば、そのようなデータ:

1、10、1、10、1、11、1、10、1、10、1、11、1、10、1、10、1、11

ます正確ではないが強い周期2、正確な周期6のものとして扱うことができます。

正確な周期性を得るには、データの部分文字列を2回繰り返して指定するだけです。

実際には正確ではないが、ノイズの多い信号の時間領域および周波数領域の方法を使用することができます。

時間ドメインの1つは自己相関です。これは、上記の部分文字列検索のようなものです。データが最大自己類似性を持つシフト値を検索します。

単純な信号の場合、しきい値の遷移をカウントするだけで十分です。

頻度の高いドメインメソッドには、FFT/FHTを使用する方法が含まれます。1/Tの周期性を与えるfequencyの幽霊の最大値を検索します。

Cepstrumを使用しています。

13

このタスクでは、自己相関を使用することをお勧めします。

FFTは、周期性を見つけるのにの間違ったツールです。

たとえば、2つの単純な正弦波(2秒(0.5 Hz)の周期と3秒(0.333 Hz))を加算して波形を作成する場合を考えてみましょう。この波形は6秒(すなわち、2 * 3)の周期性を有するが、フーリエスペクトルは0.5Hzおよび333Hzに2つのピークのみを示す。

+1

どのように自己相関を使ってタスクを実装しますか?スケッチを教えていただけますか? –

+3

@MusséRedi:アイデアはとてもシンプルです。自己相関を取ってピーク(0ではない)を見つけるだけです。したがって、唯一の問題は、自己相関をどのようにして結果のピークを見つけるかです。どのようにこれを行うかは、使用しているツールによって異なります。最初からすべてを行うことはできますが、ほとんどの人はデータ分析パッケージを使用します。つまり、私のここでのスケッチは役に立たないので、代わりに、あなたが好きなアプローチを選んで試してみてください。何かがうまくいかない場合は、いくつかの具体的な質問をしてください。 – tom10

+0

http://stackoverflow.com/questions/643699/how-can-i-use-numpy-correlate-to-do-autocorrelationに私のデータを自己相関させるための最初の答えの方法を試しました。これは数字の降順を示します。ピーク値は周期性に関する情報を与えません。サイン関数でテストすると、私は下降する振動を得ます。周期性はどうすればわかるのですか? –

1

信号の周期性に関するより正確な情報を提供するために、FFTベースのピリオドグラムと自己相関を組み合わせた論文が見つかりました。私は、このメソッドはに探して価値があることができると思う:

On Periodicity Detection and Structural Periodic Similarity

+0

リンクが死んでいるようですが、データの周期性を見つけるためにSVDを使って似たようなものを見つけました:http://pre.aps.org/abstract/PRE/v59/i4/p4013_1 – Magsol

+0

私はちょうどリンクをチェックしました。私のためにPDFファイルを開くようです。 Google Scholarのリンクのタイトルを検索すると、他のリンクを試すことができます。 – bnsmith

1

この新しい論文は、スペクトラルクラスタリングを多くの注目を受けていない

をAmariei、C.、富田、M. 、&Murray、DB(2014)。 Quantifying periodicity in omics data細胞および発生生物学のフロンティア

oscillat.iab.keio.ac.jpで入手可能なRパッケージで実装されています。私は著者とは関係がありませんが、GitHub hereにアクセスしやすいようにコードを入れてください(メインスクリプトhere)。

DFTを使用し、主要なスペクトルパワーに行をグループ化します。これは私の経験で使いやすいものです。明らかにゲノミクスについては、頑強であるように設計されています(コードにはcomputationally heavyと記載されています)ので、アプリケーションによって異なる場合があります。

関連する問題