Различия в типах БПФ? - PullRequest
       5

Различия в типах БПФ?

4 голосов
/ 19 февраля 2011

Я просто хочу уточнить разницу между некоторыми «реализациями БПФ».Я читал, что есть 1D БПФ, а затем есть 2D БПФ и др.

Могу ли я узнать, какие различия касаются этих (например, ввод, вывод и т. Д.).Например, какое измерение FFT использует входные данные arr [n * 2] = действительное и arr [n * 2 + 1] = мнимое?

Кроме того, что такое использование Complex [] для некоторых FFTалгоритмы?Я заметил, что они используют X и Y во время алгоритма FFT.Что является реальным и воображаемым?

Спасибо!

Ответы [ 3 ]

4 голосов
/ 19 февраля 2011

Функции синуса и косинуса имеют разность фаз 90 градусов, и, поскольку данные частоты могут иметь любую фазу, полный результат БПФ должен сообщать как компоненты синуса, так и косинуса.Математика для БПФ может быть «упрощена», если описать эти 2 компонента как 1 комплексный вектор.И эти комплексные числа могут быть представлены двумерной величиной (назовем одно измерение I и другое Q, или X и Y, или U и V и т. Д.).Некоторые процедуры БПФ чередуют 2 компонента (косинус и синус, или действительный и мнимый), некоторые хранят их в отдельных массивах или векторах.Входные данные также могут быть сложными, что может быть полезным, а может и не быть.Вы можете либо заполнить БПФ нулями, если ваши данные не имеют второго или «мнимого» компонента, либо использовать слегка модифицированный алгоритм БПФ, который сокращает все умножения на неявные нули.Результат БПФ, основанного только на реальных данных, будет иметь некоторую избыточную симметрию, поэтому этот результат также может быть сокращен.

3 голосов
/ 19 февраля 2011

БПФ может иметь любое количество измерений, но 1D БПФ обычно используются для данных, которые по своей сути являются одномерными, например, аудио и 2D-БПФ используются для 2D-данных, таких как изображения.

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

В зависимости от реализации FFT, входные / выходные данные могут быть просто чередующимися массивами, где реальные компоненты имеют значение 2 * i, а мнимые компоненты имеют индекс 2 * i + 1, или они могут использовать какой-либо сложный тип данных. или иногда действительные и мнимые компоненты могут быть в отдельных массивах. Это всего лишь деталь API, хотя основной алгоритм все тот же.

0 голосов
/ 20 февраля 2011

2D БПФ - это просто 1D БПФ, примененное сначала к каждой строке, а затем к каждому столбцу массива.

...