Как взять преобразования Фурье по произвольным переменным?
Я хочу принять БПФ следующих форм: Фурье в сферических координатах
Так что на самом деле мой f(theta,phi)
является вокселем трехмерного изображения, то есть имеет f(радиус, тета, фи). Если бы мне нужно было взять интеграл по dx, это было бы просто выбором моего IMG(ylocation,:,zlocation)=currentvoxel и запуском fft(currentvoxel) на нем. Тем не менее, теперь я должен взять только FFT вдоль Фи. Что сложно, потому что мне нужно найти все местоположения с тета =currenttheta, и для каждого r=currentr я должен найти все фи, чтобы взять fft.
Я даже не знаю, как развернуть фи, чтобы взять FFT. Когда это декартовы координаты, это легко, просто начните с x=0,..x=end и запустите fft. Является ли случай фи же? Получить все фи на определенном т, тета и отсортировать их от 0 до 2pi и взять FFT?
Или, может быть, синус / косинус преобразование, как это: косинус / синус преобразование
Если бы это был a f(x,y), я думаю, что способ сделать это в MATLAB - взять dct(f*(x.^2+y.^2)). Другими словами, выполняется дискретное косинусное преобразование. Я прав?
Дополнительные пояснения ко второй части: интересующий меня интеграл: bessel, где j_l(kr): расширенный j_l и расширенный, наконец, F_(l)(t), заданный предыдущим: косинус / синусоидальное преобразование