2017-11-13 15 views
0

私は65年にわたり毎月780回の温度異常を経験しており、異常を引き起こしている周波数についてそれを分析したいと考えています。私はこれを行うためにスペクトルパッケージを使用しました。分析の前後にシリーズの写真が含まれています。負のパワースペクトル

from spectrum import * 

p = Periodogram(anomalies, sampling=1/12) 
p.run() 
plt.title('Power Spectrum of Monthly Temperature Anomalies') 
p.plot(marker='.') 
plt.show() 

スペクトルにはいくつかの明確な負のスパイクがあります。今私は、Dbの負の値は実際に負の絶対値ではないことを理解していますが、なぜこれが起こっていますか?それは私のデータに欠けている特定の周波数があることを暗示していますか?正のスパイクは1つが存在することを意味するためです。

また、周波数のほとんどがマイナスに表示されるのはなぜですか? Dbが増幅される基準値は何ですか?

私の一部は、このスペクトルの絶対値を取っておくべきだと思っていますが、そのような場合には理由を理解したいと思います。また、データポイントは毎月ですので、1/12のサンプリング値を入力してください。うまくいけば周波数スケールが1年に収まるでしょうか?

多くのおかげで、これは私の最初の投稿ですので、私は何かについてより明確にする必要があるかどうかを教えてください。

負のエネルギー

あなたはy軸上に、プロットに見ることができるようにシリーズが

答えて

1

を分析され、単位は(dBでデシベルあり、 https://en.wikipedia.org/wiki/Decibel)。だから、生データ(周波数領域)ではなく、10 * log10(データ)のようなものが見えます。これは負の値の存在を説明し、完全に正常です。

ここでは、正と負の値を持っていますが、すべての値が負であり、最高値は0に設定されている。これは、使用可能であるように、一般的に、あなたが(最大で)データを正規化します:

p.plot(norm=True) 

生データ(ログ機能なし)をプロットすることはできますが、生データ(周波数領域)を使用する必要があります。インスタンスがp.plot機能の動作を再現するためには、使用することができます。

from pylab import plot 
plot(p.frequencies(), 10*log10(p.psd/p.psd.max()) 

をので、あなたはデシベル単位、使用使用しない場合:

from pylab import plot 
plot(p.frequencies(), p.psd) 

免責事項:私はSpectrum(http://pyspectrum.readthedocs.io/)の主著者。