Я нашел немного кода в Matlab:
y = fft(y,nfft);
Где y - это 512x443 2d массив и nfft = 512.
Я думал, что fft для массива с одним измерениеми для 2d массива должно быть fft2, но fft работает.Как это возможно, кто-нибудь может мне это объяснить?
fft фактически принимает (необязательный) третий аргумент: dim.Это говорит о том, в каком измерении выполнять БПФ.Если вы не укажете, dim будет по умолчанию «первое не единственное измерение».Итак, вы получаете 1D FFT всех столбцов вашего 2D массива.
fft
dim
Из документации (выделено мной):
Y = fft (x) возвращает дискретное преобразование Фурье (DFT) вектора x, вычисленное с помощью быстрого преобразования Фурье(FFT) алгоритм. Если вход X является матрицей, Y = fft (X) возвращает преобразование Фурье каждого столбца матрицы.
Y = fft (x) возвращает дискретное преобразование Фурье (DFT) вектора x, вычисленное с помощью быстрого преобразования Фурье(FFT) алгоритм.
Если вход X является матрицей, Y = fft (X) возвращает преобразование Фурье каждого столбца матрицы.