Я пытаюсь найти спектральную плотность мощности сигнала, измеренного в неравномерное время. Данные выглядят следующим образом:Matlab/Python: спектральная плотность мощности неоднородных временных рядов
0 1.55
755 1.58
2412256 2.42
2413137 0.32
2497761 1.19
...
, где первый столбец время с момента первого измерения (в секундах), а второй столбец значение измерения.
В настоящее время с помощью функции Периодограммы в 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.
Я нашел ответ, чтобы быть периодограммой Ломб-Скруст. Это находит PSD нерегулярно отобранных данных. Я нашел сценарий matlab для этого, который я опубликую в ближайшее время. –