Почему сочетание обратного БПФ (c2r) и прямого БПФ с реальным вводом (r2c) в один комплексный массив не приводит к созданию исходного комплексного массива?

БПФ реального ввода обычно выражается rfft и обратное irfft во многих языках программирования (например, python или же julia). Как сказали numy docs или julia docs, они делают нормализованный FFT, а не как FFTWНормализация БПФ

Следовательно, если у меня есть реальный входной 1D массив a, Я понял irfft(rfft(a), len(a)) == a, Тем не менее, если я предполагаю другой 1D массив b но сложный, rfft(irfft(b), (len(b) - 1) * 2) != bДаже я считал нормализацию. Я думаю rfft(irfft(b), (len(b) - 1) * 2) должен быть таким же, как b лайк a,

Я проверил это, используя FFTW от Fortran и библиотеки FFTW Джулии, но получил те же результаты.

Почему это происходит? Правильно ли это математически или проблема реализации?

РЕДАКТИРОВАТЬ 1: более точное объяснение здесь

0 ответов

Другие вопросы по тегам