[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