БПФ на реальных 2-мерных данных - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь понять вывод fftwf_plan_dft_r2c_2d

Входные данные:

    for(uint32_t row = 0; row < img.height(); ++row)
    {
        for(uint32_t col = 0; col < img.width(); ++col)
        {
            auto y = static_cast<float>(row)/img.height();
            auto x = static_cast<float>(col)/img.width();
            constexpr auto f = 4.0f;
            img.get(col, row) = sin(2.0f*M_PI*f*y) + cos(2.0f*M_PI*f*x);
        }
    }

Вывод: белый цвет означает, что abs(val) > 0.1f:

magnitude of fft output

Вот действительная и мнимая части выделенных точек:

(2048, -4.556181e-14)
(-2.743209e-14, -2048)
(-2.743209e-14, 2048)

Всегда ли нижняя половина комплексно сопряжена с верхней половиной, или их больше частоты в одну сторону? Размер входного изображения - 64x64 пикселей. Я предполагаю, что правая половина преобразованного изображения является комплексным соединением левой половины. Таким образом, r2 c может опустить эту часть.

1 Ответ

0 голосов
/ 17 июня 2020

Для реальных входных данных (мнимая часть равна нулю, как в вашем примере) это так.

Согласно этому сайту :

"Другими словами В терминах, если сигнал x (n) действительный, то его спектр эрмитов (сопряженные симметрии c). "

При работе с реальными входными данными я имел дело только с первой половиной результирующего массива. r [0] всегда будет действительным и представляет собой смещение D C сигнала; r[N/2] представляет частоту Найквиста (максимальная представимая частота при частоте дискретизации дискретного сигнала).

Этот сайт дает хорошее объяснение того, как интерпретировать результаты БПФ.

РЕДАКТИРОВАТЬ: добавлена ​​ссылка на многомерный случай:

Согласно Википедия , да, многомерный случай также демонстрирует сопряженную симметрию, хотя я не смог найти ссылка на цитату, чтобы подтвердить это.

"Многомерное ДПФ с действительным входом Для входных данных Xn1, n2, ... nd, состоящих из действительных чисел, выходы ДПФ имеют сопряженную симметрию, аналогичную одно- размерный случай выше ... "

...