1 °) Функция для 2D-БПФ - fft2
, и она по умолчанию будет применяться к двум первым измерениям массива.То есть fft2(velocities)
даст вам трехмерный массив с NZ
преобразованиями Фурье по измерениям X и Y
Для выполнения БПФ по другим измерениямнеобходимо вручную разложить 2D-БПФ как два 1D-БПФ.fft
будет работать по умолчанию для измерения 1 и производить столько образцов, сколько было на входе.fft(X[],n)
делает то же самое, но вдоль измерения n .
Таким образом, вы можете вычислить 2D БПФ вашего 3D-массива вдоль измерений X и Z с помощью команды:
my_FFT = fft(fft(velocities),[],3);
2 °) Сэмплов будет столько же, сколько сэмплов.
3 °) Я считаю, что нормализация по размеру массива полностью применяется при обратном преобразовании, а не вообщена прямом преобразовании.
fft([1 0 0 0 0 0])
ans =
1 1 1 1 1 1
Для поддержания нормализации следует применять коэффициент sqrt(NX*NZ)
(умножить при выполнении БПФ, делить при выполнении ОБПФ).