Кто работал с Быстрым Фурье (FFT)? Странный спектр получается.
Я пытаюсь использовать алгоритм БПФ (скачал с algolist.manual.ru) в своей проге. В двух словах: линза делает преобраование Фурье, мне надо смоделировать картинку в фокальной плоскости. С помощью алгоритма БПФ (не только с algolist.manual.ru, но и других) все получается с точностью до наоборот: вместо максимума в центре и затуханию к краям апертуры, получаются два максимума на краях и ноль в центре. (Фурье образ для плоской волны имеет вид sin(x)/x - то есть макс в х=0, и затухание к краям).
Не подскажете случайно где и как это можно исправить чтоб получить то что наблюдается в эксперименте?
Я пробовал пересортировать массив но это наверно неправильный подход, хотя-бы потому что картинка изначально не симметричная - самый большой максимум (настолько большой что на его фоне других не видно) размещается слева (при отрицателных х) на апретуре, хотя логично было б чтоб было 2 одинаковых по величине максимуа по краям, тогда можно пересортировать и получить что-то правдоподобное. А так даже не знаю.
Заранее спасибо за любую помощь!
Цитата: Andreww
С помощью алгоритма БПФ (не только с algolist.manual.ru, но и других) все получается с точностью до наоборот: вместо максимума в центре и затуханию к краям апертуры, получаются два максимума на краях и ноль в центре....
Я пробовал пересортировать массив но это наверно неправильный подход, хотя-бы потому что картинка изначально не симметричная - самый большой максимум (настолько большой что на его фоне других не видно) размещается слева (при отрицателных х) на апретуре, хотя логично было б чтоб было 2 одинаковых по величине максимуа по краям, тогда можно пересортировать и получить что-то правдоподобное. А так даже не знаю.
Результат фурье преобразования получается следующий. Самое левое (большое значение) - это постоянная составляющая (частота 0Гц). Далее спектр симметричен относительно точки ceil((N-1)/2.), где N - длина преобразования. Причем до середины частота отсчетов спектра растет. Вот и получается, что график как бы "вывернут наизнанку" относительно "почти середины", а максимум, соответствующий нулевой частоте оказался в самой левой точке. Если проиндексировать полученный массив спектра по частотам, то получим такую картину:
0, 1, 2, ..., (N-1)/2, -(N-1)/2, -(N-1)/2 + 1, ..., -1
Т.е. если есть желание пересортировать, то нужно учитывать именно эту закономерность.