# Transforming FFT to Detect Baud Rate

I've seen in practice taking an FFT of a signal, then transforming it by the 2nd, 4th, etc. power (depending on signal type) to determine the baud rate. I'm trying to implement this in my code, but am lost as to what a transform of the 2nd power is. It appears to be some sort of non linear transform and not simply squaring of the FFT values.

• Are you sure you have the power law and the FFT in the right order?
– John
Jan 29, 2015 at 21:40
• No, I'm not sure...I'm trying to remember how it was described to me. So you're saying square the signal, then do the FFT? Jan 29, 2015 at 21:50

As noted in the following link, baud rate is estimated from "the spectrum of the signal after nonlinear processing." In their case, as noted in the first three sentences of the section entitled "Proposed Spectral Approach for Bit Time Estimation" - p. 916), the nonlinear processing is the first derivative followed by an absolute value operation:

http://www.iasj.net/iasj?func=fulltext&aId=51991

Others have proposed/analyzed estimation using different nonlinear operations, such as squaring of the signal or using higher derivatives. Obtaining the references for the above paper and doing a thorough search would be a good place to start to learn more.

I'll bet that the idea was roughly as follows:

1. Baud rate detection is done via the autocorrelation function of the input
2. A correlation is expensive to perform, much more than multiplication.
3. A correlation in the time domain is equal to a multiplication in the Fourier domain
4. An auto-correlation in the time domain is equal to squaring in the Fourier domain

But remember that the FT is complex-valued. Ignoring the phase from the FFT will cause unpredictable results after the IFFT. That the phase into account, and the result of your IFFT should be real again (minus rounding errors)