The inverse of the continous Fractional Fourier Transform (FrFT)
6 views (last 30 days)
Show older comments
Hello,
I'm trying to use this pre-programmed function of the continuous fractional Fourier transform (FrFT) for 1-D arrays available on this website:
Precisely, the one which is the core of the rest of codes (2D,discret ..etc).
It takes as entry parameters, a 1-D array to transform i.e: X, and the transform fractional order i.e: a, it works fine for the forward transform
F = FrFT(X,a)
But I couldn't get the inverse transform when I tried to obtain the inverse transform to recover the 1D original array X:
Xr = FrFT(F,-a)
Xr obtained values are completely different from the original X values, can anyone tell me what is wrong here, please?
As far as i know, one of the properties of the FrFT, its inverse is obtained by taking the FrFT of the negatif of its order, i.e FrFT with order -a.
Regards,
2 Comments
Tzila Ajamian
on 20 Mar 2017
Hello Sir, I'm trying to apply the same work that you tried before 4 years. So can you give me some advices from your experience? Did you reach a solution?
Best regards,
Answers (3)
Kritika
on 5 Nov 2014
hello sir,
Even I am trying to do the same thing but with a different frft code and its result are not coming correct. If you can help me with it then let me know so that i can share my program with you.
1 Comment
zoubir
on 13 Feb 2023
Hello sir
i have this prb can u help me
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
Error in frft (line 31)
fI(m, n) = 1/sqrt(M*N) * sum(sum(I.*exp(-2*pi*1i*((m-1)*U/(M) + (n-1)*V/(N))).*(abs(U/(M))+abs(V/(N)))^alpha));
then i did the double but the same prb
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
Error in frft (line 31)
fI(m, n) = 1/sqrt(M*N) * sum(sum(I.*exp(-2*pi*1i*((m-1)*U/(M) + (n-1)*V/(N))).*(double(abs(U/(M))+abs(V/(N))))^alpha));
Torben Purz
on 11 Oct 2018
Hello, I think I figured out how to fix this without a lot of work. Just add this line:
if (a<0), a = 2+a; end
above the if(a==0) condition. After applying the inverse transform you need to flip your array then. If you think about it, applying first a (FrFT) and then -a (iFrFT) you end up with a "total" a of 2, so you need to flip your end result.
Hope that helps!
2 Comments
zoubir
on 13 Feb 2023
Hello sir
i have this prb can u help me
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
Error in frft (line 31)
fI(m, n) = 1/sqrt(M*N) * sum(sum(I.*exp(-2*pi*1i*((m-1)*U/(M) + (n-1)*V/(N))).*(abs(U/(M))+abs(V/(N)))^alpha));
then i did the double but the same prb
Error using .*
Integers can only be combined with integers of the same class, or scalar doubles.
Error in frft (line 31)
fI(m, n) = 1/sqrt(M*N) * sum(sum(I.*exp(-2*pi*1i*((m-1)*U/(M) + (n-1)*V/(N))).*(double(abs(U/(M))+abs(V/(N))))^alpha));
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!