[Scilab-users] Re : fftshift and ifftshift are way too different

amonmayr at laas.fr amonmayr at laas.fr
Wed Oct 10 09:21:50 CEST 2018


Le 10/10/2018 à 08:47, Samuel Gougeon a écrit :
> Le 09/10/2018 à 21:52, antoine monmayrant a écrit :
>> Hello Samuel,
>>
>> Sorry I might not have made myself clear: fft and fftshift provide 
>> the ability to perform transform along only one of the dimensions of 
>> a multidimensional array.
>> Something like S(x,y,z) --[FFT along 3rd dim]--> 
>> ffthift(ffft(S(x,y,z), -1,3),3)=Ŝ(x,y,kz).
>> In that case, you need to perform fft and eventually fftshift along 
>> only the dimension of the transform.
>> ifftshift should also provide the same possibility to perform the 
>> inverse transform: Ŝ(x,y,kz) --[IFFT along 3rd dim]--> 
>> iffthift(ffft(Ŝ(x,y,kz), +1,3),3)=S(x,y,z).
>>
>> This is a basic signal processing requirement in my field.
>
> Hello Antoine,
>
> Yes, you are right: in case of directional FFT and odd number of 
> elements along the chosen direction, ifftshift can't presently be used.
> Could you please post the same remark on bugzilla? This bug/wish is 
> not yet reported.
OK, I'll put it in my TODO-list.
>
> IMO we may propose and include it in Scilab as soon as for Scilab 6.0.2.
>
> BTW, still IMO, fftshift and ifftshift should rather be merged in a 
> single function.
> It's the same code, except a floor<=>ceil. This should deserve just an 
> option, not a separate dedicated function.
> I guess that this separation likely comes from a kind of abusive 
> Matlab-like mimicry.
Yes, I agree.
But I don't see how we can merge the two without increasing the huge 
halo of confusion that blurs the help pages and use of fft-related 
functions¹ ².
The first idea that came to my mind was to make one single fftshift 
function where:
  - if dim>0, you do direct shift (ie for a direct Fourier transform) 
along dimension dim;
  - if dim<0, you do inverse shift (ie for an inverse Fourier transform) 
along dimension |dim|.
But as "-1" means direct fft and "+1" inverse fft, mixing fft and 
fftshift would be a real mess.

Antoine
¹ One I just discovered yesterday: the help page for fft is not listed 
in "Scilab Help >> Signal Processing > Transforms " ! Only ifft is 
listed, cool, he? Of course, ifft points to "Scilab Help >> Signal 
Processing > Transforms > fft". Idem  for dst, ...
² Oh, and this one cool too: in the fft help page:
"incr
a vector of positive numbers with integer values, or a vector of 
positive integers. *See the Description part for details.*" but the 
Description never says what the heck "incr" is, does and means.... 
Arghhh. It only appears once in an example of a "previous syntax".

>
> Best regards
> Samuel
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
>

-- 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++

  Antoine Monmayrant LAAS - CNRS
  7 avenue du Colonel Roche
  BP 54200
  31031 TOULOUSE Cedex 4
  FRANCE

  Tel:+33 5 61 33 64 59
  
  email : antoine.monmayrant at laas.fr
  permanent email : antoine.monmayrant at polytechnique.org

+++++++++++++++++++++++++++++++++++++++++++++++++++++++

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20181010/a28b2655/attachment.htm>


More information about the users mailing list