Преобразование Фурье Быстрый алгоритм вычисляет Фурье разложения в предположении , что его входные точки равномерно распределены во временной области, . Что если они не? Есть ли другой алгоритм, который я мог бы использовать, или каким-то образом я мог бы изменить БПФ, чтобы учесть, что фактически является переменной частотой дискретизации?
Если решение зависит от того, как распределены образцы, меня интересуют две конкретные ситуации:
- Постоянная скорость дискретизации с джиттера: где б т K является случайным образом распределены переменной. Предположим, можно с уверенностью сказать | δ t k | < T / 2 .
- Отброшенные выборки с другой постоянной частотой выборки: где n k ∈ Z ≥ k
Мотивация: во-первых, это был один из самых популярных вопросов в предложении для этого сайта. Но кроме того, некоторое время назад я начал участвовать в обсуждении использования БПФ (вызванного вопросом о переполнении стека ), в котором были получены некоторые входные данные с неравномерно выбранными точками. Оказалось, что временные метки в данных были неправильными, но это заставило меня задуматься о том, как можно решить эту проблему.
источник
Дополнение к принятому ответу. Вот ссылка на реализацию метода Грингарда и Ли с открытым исходным кодом: https://finufft.readthedocs.io/en/latest/ Оболочки для C, fortran, MATLAB, octave и python. Я считаю, что FINUFFT написана на C ++.
Он поддерживается и используется в институте NYU Courant, SFU, Flatiron Institute (очевидно), Техасском университете в Остине и государственном университете штата Флорида. По крайней мере, это те, о которых я знаю.
Я сам использую старую версию, потому что я ленивый. См .: https://cims.nyu.edu/cmcl/nufft/nufft.html.
источник
Представляет интерес дискретное преобразование Фурье с компенсацией даты:
Ferraz-Mello, S., 1981, Оценка периодов из неравномерно распределенных наблюдений , Астрономический журнал, 302: 757-763 .
источник