2016-05-16 16 views
1

私はPythonには新しく、最後の学期には1つのコースしかやっていません。基本的に私はこのようになりますポリマー画像のプロットプロファイルをフーリエ変換したい:私はそれを行うためのいくつかの異なる方法を試してみた非常に騒々しい非周期的な信号のFFT

enter image description here

を、それはおそらくどのように騒々しいで、私には何も与えないことそれは実際にそれが可能かどうか私はちょうど疑問に思っていたので、それは非定期的であるという事実ですか?ここで

は、これまでの私のコードです:

%matplotlib inline 
import pylab as plt 
import numpy as np 
from math import pi 
from scipy.fftpack import fft 

x = open('20x0.5hr.txt') 
Yvalues = [] 
for line in x: 
    a,b = line.split() 
    Yvalues.append(b) 

FuncFFT=fft(Yvalues) 
FuncFFT=np.abs(FuncFFT) 
plt.plot(FuncFFT[:100]) 
plt.show() 

感謝。

+0

私は間違っているかもしれませんが、あなたのプロットを見ると、あなたのサンプルより長い波長からの寄与があるようです。より長いサンプルを作業する可能性はありますか? – gboffi

+0

2つの質問;あなたのプロットは何を示していますか、データをどこかに投稿できますか? –

+0

「何も私に何も与えない」という意味はまったくどういう意味ですか?何があなたに与えたのですか? – hotpaw2

答えて

0

何かがわいわいと不規則に増加し、いくつかの周波数で始まり、起こって、しかしれるように見えます。あるいは、最初の数サイクル後に停止し、そのデータの途中で多少高い周波数のノイズが発生する可能性があります。私はこれが関心のあるシグナルの一部だと考えています。垂れ下がった傾向もあります。おそらく、高周波ノイズは、振幅が変化したり、スペクトル構造が変化したりする、面白いことをしています。

長期トレンドに関心がない場合は、ハイパスフィルタを使用してすべてを排除することができますが、周波数は低くなります(図のように1回の実行で1〜数サイクル)。低次の多項式を適合させ、減算する。最も高い周波数のノイズは、ローパスフィルタを使用して重要でない場合は低減できます。私はSavitzky-Golayのファンである傾向があります。おそらく、最初の大きな正のピークの幅の約半分の幅と4番目の幅を使用します。私は通常、最初のデータ探索のために気にしないものを取り除きます。面白い部分を見やすくして曲線に合わせやすくするためです。

ため、増加する周波数の私の印象で、私はおそらく非線形データを再サンプリングと思います。 yとxの代わりに、データの右部分を左部分よりも伸ばした新しいx 'を定義します。私は、均一な間隔のピークがあると思うまで、plt.plot(x * x、y)とおもちゃをさまざまな表現で試してみようと思います。もちろん、計測と物理現象の理論的理解は、可能性を狭めるのに役立ちます。それから私はデータを再構成するので、x '点の一様なグリッド上にy'の値を与え、次にフーリエパワースペクトルを見ます。

その後、再び、私は、任意のクリーニングや非線形の延伸前に、右のオフフーリエパワースペクトルに見えるかもしれません。直ちにまたは何らかの処理の後に、パワースペクトルは数行で計算される。それの対数を扱う方が簡単です。

f = fft(b) 
p = np.log(np.real(f * np.conj(f))) 
plt.plot(p) 

fの実数部または虚数部のみをプ​​ロットしても、洞察に値する情報は表示されません。サイン部分ではなくコサイン部分が表示されているかもしれません。つまり、プロットに表示されているものは、信号の時間変化に敏感です。定期的な信号がノイズに含まれているかどうかを確認するには、パワースペクトルを確認する必要があります。

最後に、あなたは信号処理のスタックExchangeサイトで見たことがありますか? https://dsp.stackexchange.com/。そのような質問は頻繁に処理されますが、プログラミング言語の詳細は通常StackOverflowにプッシュされます。

関連する問題