реализация периодограммы Ломба-Скаргла

с официального сайта Matlab периодограмма Ломба-Скаргла определяется как

http://www.mathworks.com/help/signal/ref/plomb.html#lomb

предположим, у нас есть какой-то случайный сигнал, скажем

 x=rand(1,1000);

среднее значение этого сигнала может быть легко реализовано как

среднее = среднее (х); дисперсия может быть реализована как

>> average_vector=repmat(average,1,1000);
>> diff=x-average_vector;
>> variance= sum(diff.*diff)/(length(x)-1);

как мне продолжить? я имею в виду, как выбрать частоты? вычисление смещения времени не проблема, предположим, что у нас есть вектор времени

t=0:0.1:99.9;

чтобы общая длина вектора времени была 1000, обычно для DFT частотные элементы представляются как множитель 2 * pi / N, где N - длина сигнала, но как насчет этого случая? заранее спасибо


person dato datuashvili    schedule 26.10.2014    source источник


Ответы (1)


Как видно из приведенной ссылки на документацию по MATLAB, алгоритм не зависит от конкретного выбора времени дискретизации tk. Обратите внимание, что для равноотстоящих периодов выборки (как вы выбрали) та же ссылка указывает:

Смещение зависит только от времени измерения и исчезает, когда интервалы времени равны.

Итак, как вы выразились, «расчет смещения времени не проблема».

Аналогично ДПФ, который можно получить из дискретно-временного преобразования Фурье (DTFT). выбрав дискретный набор частот, мы также можем выбрать f[n] = n * sampling_rate/N (где sampling_rate = 10 для вашего выбора tk). Если мы проигнорируем значение PLS(f[n]) для n=mN, где m — любое целое число (поскольку его значение неправильно сформировано, по крайней мере, в формуле, размещенной в ссылке), то:

\sum_{k=1}^N \cos^2(2\pi f_n t_k) = \sum_{k=  1}^N \sin^2(2\pi f_n t_k) = N/

Таким образом, для образцов данных с действительным знаком:

P_{LS}(f_n) = \frac{1}{N\sigma^2} |Y(n)|  ^2

где Y можно выразить через вектор diff, который вы определили как:

Y = fft(diff);

Тем не менее, как указано в википедии, метод Ломба-Скаргла в первую очередь предназначен для использования с неравномерно распределенными данными.

person SleuthEye    schedule 27.10.2014
comment
так это означает, что я должен взять БПФ реального сигнала, взять квадрат абсолютного значения, верно? затем разделить на N * сигма ^ 2 ? - person dato datuashvili; 28.10.2014
comment
извините не сам сигнал, а сигнал - средний? - person dato datuashvili; 28.10.2014
comment
так или иначе, чтобы рассчитать периодограмму Ломба-Скаргла, мне нужно вычесть среднее значение из заданного сигнала, затем взять fft, квадрат абсолютного значения и разделить на N * сигма ^ 2, верно? - person dato datuashvili; 28.10.2014
comment
Для вашего случая равноотстоящего сигнала да. - person SleuthEye; 28.10.2014
comment
если он не равноудаленный? - person dato datuashvili; 31.10.2014
comment
Затем вам придется вернуться к формуле, чтобы оценить каждый член суммирования. Неравномерное БПФ (NFFT) и NFCT/NFST могут пригодиться для эффективной оценки этих терминов (см., например, www-user.tu-chemnitz.de/~potts/nfft). - person SleuthEye; 01.11.2014