不規則な時間に測定された信号のパワー スペクトル密度を見つけようとしています。データは次のようになります。
0 1.55
755 1.58
2412256 2.42
2413137 0.32
2497761 1.19
...
ここで、最初の列は最初の測定からの時間 (秒単位) で、2 番目の列は測定値です。
現在、Matlab のピリオドグラム関数を使用して、以下を使用してパワー スペクトル密度を推定することができました。
nfft = length(data(:,2));
pxx = periodogram(data(:,2),[],nfft);
現時点では、これをプロットするために使用しています
len = length(pxx);
num = 1:1:len;
plot(num,pxx)
これは明らかに、正しい x 軸をパワー スペクトル密度に配置していません (そして、下のプロットのような結果が得られます)。これは、周波数空間にある必要があります。データのサンプリングが不均一であるため、これをどのように行うかについて混乱しています。
不均等にサンプリングされたデータのパワー スペクトル密度を推定するときに、周波数空間に変換する (そしてプロットする) 正しい方法は何ですか? python/numpy/scipy の観点からこれに取り組むことにも興味がありますが、これまでのところ Matlab 関数のみを見てきました。