The inverse of the continous Fractional Fourier Transform (FrFT)

6 views (last 30 days)
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
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,
Banhi  Das
Banhi Das on 11 Jan 2023
Please help me with the Code of inverse fractional fourier transform

Sign in to comment.

Answers (3)

Kritika
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
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));

Sign in to comment.


Torben Purz
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
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));

Sign in to comment.


aaru sri
aaru sri on 21 Jan 2019
i m also trying vsame thing but not getting its inverse correct

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!