Im new to communications so this may be a stupid question, but I am somewhat confused. I am trying to train an automatic modulation classification (AMC) algorithm on IQ data from the RadioML dataset. The data comes in IQ format (eg [1024, 2] matrix).

I am reading papers now which use feature based methods and talk about getting the hilbert transform / DFT of the received signal and extracting features from there (for example, the std deviation of the instantaneous amplitude, see Table 1 here).

My question is what do I take the hilbert transform/DFT of? Would it be the IQ signal (I+jQ) or is there something more else involved (multiplying by sin/cos)?

  • 1
    $\begingroup$ The Hilbert transformation leaves you with your signal, and a copy of your signal rotated 90 degrees. I and Q are the signal and the signal rotated by 90 degrees. In other words, if you have I and Q, then something has already done a Hilbert transform (or approximation) for you. $\endgroup$
    – JRE
    Feb 21, 2020 at 23:35
  • $\begingroup$ also, maybe start with the papers of the authors of the RadioML dataset (that being Tim O'Shea et al, not researchers that do a survey paper). They're linked on the same web page as the dataset, when you click on "Publications". $\endgroup$ Feb 21, 2020 at 23:45
  • $\begingroup$ @JRE my goal is to go from the IQ signals back to the 'recieved signal' as discussed in those papers. So does that mean I need to do an 'inverse' hilbert transform? $\endgroup$ Feb 21, 2020 at 23:52
  • $\begingroup$ @MarcusMüller I read the original papers and looked at the data generation source code. I guess my question is more how the RadioML data relates to the 'received signal' discussed in the feature-based modulation classification literature (see linked paper above eq.3) $\endgroup$ Feb 21, 2020 at 23:53
  • $\begingroup$ it is the received signal, as the computer gets it from the receiver. $\endgroup$ Feb 22, 2020 at 0:08

1 Answer 1


Usually an IQ signal is generated from a real (RF, AF, etc.) signal by a radio (by quadrature heterodyne, Tayloe demodulation, complex vector arithmetic, or otherwise). However, if you need IQ data, and the radio only generates I (or real) component samples, a Hilbert transform can be used to generate “fake” Q components (an approximation by making some assumptions about the original signal) to use in downstream IQ processing or analysis.

Thus, if you have an IQ signal, there is rarely any need to generate another fake similar Q signal component. Just use the Q component the radio provides instead of a Hilbert transform of the I component. An IQ signal created by a Hilbert transform of the I component contains at most half the amount of information as contained by the original IQ signal (e.g. potentially aliasing the upper and lower sidebands).

And, to get a real signal back, just reverse whatever process (superhet, etc.) the radio used to generate IQ from RF.

  • 3
    $\begingroup$ note that the Q (=quadrature) component in a IQ signal is not just "the hilbert transform of the I"; it's an orthogonal part that contains just as much independent info as the I (=inphase) component. $\endgroup$ Feb 22, 2020 at 8:59
  • $\begingroup$ An IQ signal contains twice the information because it can contain info on both sidebands. One possible assumption for an I-only real signal from a SSB/superhet is that the other sideband has been filtered out, thus a Hilbert generated IQ should only contain half the possible information. Other assumptions are possible, such as aliasing/folding. $\endgroup$
    – hotpaw2
    Feb 22, 2020 at 16:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.