fillsv 0 2 февраля, 2016 Опубликовано 2 февраля, 2016 · Жалоба Столкнулся с необходимостью делать двумерное фурье набора картинок. Это можно делать двумя путями: 1) через цикл прогнать все картинки по одной. 2) загнать из в трехмерную матрицу и обработать одной командой. Забавность заключается в том, что при выполнении двумерного фурье двуми, казалось бы, идентичными способами, получаются слегка разные результаты. Ниже пример этого в коде: Создаем исходный массив: A = rand(100,100,10); Обработка через цикл: for ii = 1:10 f1(:,:,ii) = fft2(A(:,:, ii)); end Обработка единой матрицы: f2 = fft2(A); Сравнение результатов: std(f1(:)-f2(:)) ans = 1.6847e-14 С практической точки зрения, отличие двух результатов, конечно же, ничтожное. Однако таки интересно, почему оно есть? В хелпе по этому поводу написано следующее: If the dimensionality of X is greater than 2, the fft2 function returns the 2-D DFT for each higher dimensional slice of X. For example, if size(X) = [100 100 3], then fft2 computes the DFT of X(:,:,1), X(:,:,2) and X(:,:,3). Таки это баг или все в пределах нормы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
peselnik 0 3 февраля, 2016 Опубликовано 3 февраля, 2016 · Жалоба Это нормально. Если посмотреть код функции fft2, то она вызывает либо fftn, либо fft. В первом случае вызывается fftn, потому что на входе матрица. Во втором случае вызывается fft, потому что на входе не матрица. Обе функции fftn и fft - встроенные в MATLAB и обращаются к библиотеке FFTW. О вычислительной разнице между одномерным и многомерным преобразованием написано в документации FFTW: http://www.fftw.org/fftw3_doc/Multi_002ddi...Transforms.html We should remind the user that the separable product of 1d transforms along each dimension, as computed by FFTW, is not always the same thing as the usual multi-dimensional transform. A multi-dimensional R2HC (or HC2R) transform is not identical to the multi-dimensional DFT, requiring some post-processing to combine the requisite real and imaginary parts, as was described in The Halfcomplex-format DFT. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fillsv 0 3 февраля, 2016 Опубликовано 3 февраля, 2016 · Жалоба Спасибо! Это можно на досуге покопать поподробнее) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться