There are 6 messages in this thread.
You are currently looking at messages 1 to .
Is this discussion worth a thumbs up?
Hi all, In FrFT module in c++, the input signal have real samples and the output has complex samples. But I need real output samples. Therefore either I can take the magnitude of samples or take the real part of the complex output. But with both ways, I loose the sign of samples or loss on the power of the signal. I stuck at this point how I can obtain again the input signal after taking FrFT and inverse FrFT operations? y= FrFT(input, alpha); input= IFrFT(y, -alpha); Thanks in advance..______________________________
On Jul 19, 8:33 am, "calimero" <1@dsprelated> wrote: > Hi all, > > In FrFT module in c++, the input signal have real samples and the output > has complex samples. But I need real output samples. Therefore either I can > take the magnitude of samples or take the real part of the complex output. > But with both ways, I loose the sign of samples or loss on the power of the > signal. I stuck at this point how I can obtain again the input signal after > taking FrFT and inverse FrFT operations? > > y= FrFT(input, alpha); > input= IFrFT(y, -alpha); > > Thanks in advance.. If everything has been coded properly then when you take the IFrFT, the imaginary components should be negligible and you can just use the real portion. Cheers, Dave______________________________
Thanks Dave.But why do you think that the imaginary output of inverse FrFT is negligible (close to zero)? In my case the real and imaginary output values are close to each other.______________________________
On Thursday, July 19, 2012 10:12:54 PM UTC-4, calimero wrote: > Thanks Dave.But why do you think that the imaginary output of inverse FrFT > is negligible (close to zero)? In my case the real and imaginary output > values are close to each other. If you do an operation and then the inverse of that operation, you should get back what you put in. A simple case is the Fourier Transform. You said you were after the input signal. If the parameters alpha and -alpha are set correctly then you will get back pretty much exactly what you put in (except for numerical precision). However, if you are just choosing the alpha parameters randomly between FrFT and IFrFT then you'll need both the real and complex part. You haven't stated what it is you're doing - why do you need only real output samples. The output of arbitrary FrFT and IFrFt operations is normally going to give you a complex output. Cheers, Dave______________________________
On Friday, July 20, 2012 10:44:23 AM UTC-4, Dave wrote: > On Thursday, July 19, 2012 10:12:54 PM UTC-4, calimero wrote: > > Thanks Dave.But why do you think that the imaginary output of inverse FrFT > > is negligible (close to zero)? In my case the real and imaginary output > > values are close to each other. > > If you do an operation and then the inverse of that operation, you should get back what you put in. A simple case is the Fourier Transform. > > You said you were after the input signal. If the parameters alpha and -alpha are set correctly then you will get back pretty much exactly what you put in (except for numerical precision). > > However, if you are just choosing the alpha parameters randomly between FrFT and IFrFT then you'll need both the real and complex part. > > You haven't stated what it is you're doing - why do you need only real output samples. The output of arbitrary FrFT and IFrFt operations is normally going to give you a complex output. > > Cheers, > Dave God-damn, I hate the new google groups. Cheers, Dave______________________________
On 7/19/2012 5:33 AM, calimero wrote: > Hi all, > > In FrFT module in c++, the input signal have real samples and the output > has complex samples. But I need real output samples. Therefore either I can > take the magnitude of samples or take the real part of the complex output. > But with both ways, I loose the sign of samples or loss on the power of the > signal. I stuck at this point how I can obtain again the input signal after > taking FrFT and inverse FrFT operations? > > y= FrFT(input, alpha); > input= IFrFT(y, -alpha); > > Thanks in advance.. > > Well, without analyzing the heck out of it, I think it's OK to say that the normal identities apply: Real input <> complex output Real, even input <> real, (and even) output. You didn't say: "...how I can obtain again the input signal after taking FrFT *then doing something to get Real numbers* and inverse FrFT operations?" The one operation is nonlinear .. so you can't. If you need real output and want to be able to inverse the transform in the normal way with the normal output result then you have to start with a Real, Even input. At least that's the normal case. I'd not state that so strongly for the FrFT but I suspect it holds. After all the transform of a real even transform is also real and even. Fred______________________________