Octave GNU FFT вложенный зеркальный? - PullRequest
1 голос
/ 14 февраля 2020

Я написал короткий скрипт Octave для захвата и суммирования отдельных БПФ каждой строки в изображении. Когда я строю суммированные БПФ, я получаю обычное зеркало БПФ из реальных значений (что нормально), но я также получаю вторичное вложенное зеркало. Я не понимаю, почему я получаю вложенное зеркало. Вложенное зеркало имеет меньшую амплитуду, но местоположения пиков имеют соответствие 1: 1 друг другу. Пожалуйста, помогите мне понять, почему вложенное зеркало. FFT nested mirror

Вот как выглядит исходное изображение: enter image description here Обратите внимание, что связанное изображение подвергается пониженной выборке по сравнению с оригиналом и не будет отображать показанное поведение. , Я разместил оригинальное изображение здесь: https://1drv.ms/u/s! AhAaA6XQyp6gqp1NgKNqL4QmcMw5Pw? E = P7r dRy

Изображение получено с помощью спектрометра с преобразованием Фурье. Полосы являются интерференционной картиной для разных длин волн света. Спектр источника света получается путем выполнения БПФ.

И, наконец, вот сценарий:

#get image and convert to grayscale...

sum = abs(fftn(gray(1,:))); #get first row FFT and init sum

for i = 2:(rows(gray))
 sum += abs(fftn(gray(i,:))); # add each row FFT together
end;

sum = sum/max(sum); # normalize 0-1 scale
sumHalf = sum(1:(end/2)); # move to single sided FFT
sumHalf = 2*sumHalf;
x = 1:numel(sumHalf);
sumHalf(1) = 0; #removed oversized DC component

semilogy(x,sumHalf); #plot in log scale
...