преобразование Фурье с отсутствующими значениями

у меня есть дискретный сигнал времени, который может содержать много пропущенных значений. и я хочу сделать преобразование Фурье на нем.

Что я могу сделать, чтобы справиться с ними правильно?

следующая диаграмма может показать случай

signalpresence  x  x  x  x  x  x  x              x  x  x  x  x  x  x              x  x  x  x  x  x  x
timesteps       ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^  ^

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

установка недостающих значений в ноль искажает вывод.

Есть ли библиотека, которая обрабатывает пары время / значение?

(конечно, это тоже должно быть быстро :-))

1

Решение

Одна вещь, которую вы могли бы сделать, это определить, как решение может варьироваться, беря преобразование Фурье векторов «все ноль, кроме отсутствующего значения, установленного в 1». Каждый из них даст вам вектор, по которому выходные данные могут изменяться, не нарушая ограничений, установленных не пропущенными значениями. Вы можете масштабировать их и добавлять их в БПФ, которое вы получаете из вектора, полученного в результате простой замены отсутствующих значений на 0.

Каждое из БПФ с отсутствующим значением даст линейно независимый вектор. Я думаю, что все они будут синусоидальными волнами, потому что БПФ почти обратное. Ваш вектор решения может затем добавить эти синусоидальные волны, не нарушая ограничений, установленных известным входным сигналом. То есть решение будет иметь вид:

FFT(dataWithZeroesForMissing)
+ c1*FFT(dataWithAllZeroesExceptOneMissingValueSetToOne1)
+ c2*FFT(dataWithAllZeroesExceptOneMissingValueSetToOne2)
+ ...

Ваша цель — выбрать «лучшее» c1, c2и т. д. Что именно это означает, зависит от варианта использования. Мое лучшее предположение — «минимизировать сумму квадратов результата».

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]