# FFT processing of IQ data

My time-domain sampling rate of IQ data is Fs. Matlab FFT assumes spectral bandwidth is Fs/2, per the Nyquist criterion. I understand that IQ data has bandwidth of Fs. How do I do FFT of such IQ data and get bandwidth of Fs?

• If your signal has bandwidth $f_s$ and you sampled at rate $f_s$, then your signal is likely to be aliased and there's no way to fix that. – MBaz Sep 8 '19 at 17:53
• @MBaz : Unlike strictly real samples, IQ samples don't alias the upper and lower sidebands, or positive and negative frequency complex conjugate. (unless the quadrture mixer or IQ sampling is unbalanced). – hotpaw2 Sep 9 '19 at 3:42
• @hotpaw2 I understand that; I was trying to nudge the OP towards realizing that their signal is complex... your answer of course does the job quite well. – MBaz Sep 9 '19 at 13:44

## 1 Answer

For strictly real data (imaginary components all zero), if you only look in the first half of an FFT result (N/2 result bins for an FFT of length N) you only see Fs/2 bandwidth. The second half of that FFT result is just a redundant conjugate mirror of the first half given strictly real input.

But for complex input or IQ sampled input, the 2nd half of the FFT result is not just a conjugate mirror of the first half, but represents an independant negative spectrum, of bandwidth Fs/2. Total bandwidth of both halves of the complex input FFT being Fs/2 + Fs/2 = Fs (minus the roll-off or transition region of any anti-aliasing filter before IQ sampling).

For direct conversion from f0 to baseband IQ (say using a Tayloe mixer or other quadrature heterodyne) sampled at Fs (then doing an FFT on the IQ result), the spectrum from f0-Fs/2 to f0 is in FFT result bins N/2 to N-1 plus bin 0, and the spectrum f0 to f0+fs/2 is in FFT result bins 0 to N/2.

The Nyquist criterion is sort of met because an IQ sample vector really contains twice as many samples (real components plus quadrature components), thus providing twice the bandwidth. But a complex vector can use the same length of a complex FFT as a strictly real vector of the same time duration. So conflating the FFT length with the number of real samples or complex samples or components of complex samples can be confusing.

• Very helpful, hotpaw2. Can you explain or direct me to literature on how to perform FFT -based convolution of IQ arrays using FFT? – DWRDWR Sep 9 '19 at 18:57
• That's a separate question (not a comment). Look up overlap-add or overlap-save FFT fast convolution algorithms. Don't forget to use complex multiplication. – hotpaw2 Sep 9 '19 at 21:20