私はこれらのデータセットを完璧に間隔をおいて配置しています。ピークはディラックデルタ関数ではなくガウス形状のピークです。 Pythonを使ってピーク間の距離を非常に正確に分析する必要があります。 Pythonのピークを分析する
私は初心者ですので、私は本当にいくつかの助けに感謝します。 ファイルの種類は、.csv
と.h5
です。
(私は.csv
ファイルはので、私は.h5
に切り替える必要があった大規模なサンプルには大きすぎだということが分かった。)
私の分析では、これまで私はpandas
-packageとnumpy
-packageと私の推測を使用していました彼らが私のためにこの問題を解決することもできるということです。
だから、私はピーク上の特定の点を除外できるという考えを得ました。私はこれを試した:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#data = [time,voltage]
data1 = pd.read_csv('1pps_withoutReference.csv', sep=',')
#Plot data
time = data1["x"];
voltage = data1["y"];
plt.plot(time,voltage)
plt.show()
t = data1["x"];
v = data1["y"];
if n+1>4 and n-1<4: n=n;
else v.remove('n');
for n in v;
私は最後の部分でやろうとしていることのアイデアはかなり明確ですが、それは単に動作していないと思う。 私は、直前のポイントが4未満で、直後のポイントが上のポイントのみを計算します。これは私に離散的な値を与え、ピーク間の距離を探しているので、実際には関係のない小さなオフセットになります。
私は友人の助けによって問題を解決しました。
#getting t values for every peak.
time = data1["x"]
volt = data1["y"]
trig_lev = 2.5
#Creating new vector to contain the values of the peaks
t_peak = []
#For-loop updating the list with the disired values
for i in np.arange(0, len(time)):
if volt[i] < trig_lev and volt[i+1] >= trig_lev:
t_peak.append(time[i])
何を試してみましたか(どこにいらっしゃるのかを示すコードを表示してください)、どうやって差異を定義しますか?(中心から中心、sigma = 1から) –
あなたのデータのどこかをCSV/h5形式でアップロードし、ここにリンクを投稿できますか? – MaxU
コームのフーリエ変換はコームです。あなたの櫛がチャープ(空間周波数の変化)のような偏差を示している場合、あなたはFT内で広がりを見せることができます。 FFTの最初の周波数ピークは間隔に対応します。 'time'ドメインにあるピークが多いほどピークが狭くなります。その最初のピークの幅は、精度に制限はありませんが、時間 - 帯域幅積を反映しています。あなたは最高の精度であなたの間隔を得るためにそのピークの放物線のフィットを作ることができます。一般的にGoogleの頻度推定です。 – roadrunner66