# Recover IQ samples from signal

I have a data acquisition device that provides me with an array of integers that represents a modulated signal (let's say QAM16).

I would like to recover the I and Q samples from the raw time-domain signal, so that I can demodulate the data. Is this possible? If so, how would I do it.

• If you're trying to recover the original I and Q samples, then in what format are the samples you're starting with? Are they a real-valued sampled signal that you would like to convert to complex baseband? – Jason R Jul 26 '17 at 1:26
• That's correct. The received signal is in a vector of real integers. And I want to convert them to a complex (I/Q) baseband so I can demodulate the symbols. – user2562609 Jul 26 '17 at 2:41
• Are the samples of a baseband signal? Or modulated to some much higher frequency. – hotpaw2 Jul 26 '17 at 16:15

If you just want to demodulate, then it is not necessary to recover I and Q components. What you have is most likely the QAM symbols. For example, for $16$-QAM they are $16$ different integer values that are assigned to different constellation points. You need to know the type of assignment (i.e. coding) that is used in the QAM constellation at the modulator.
At the $16$-QAM modulator, every $\log_2 16=4$ data bits are mapped to a certain constellation point (which ultimately is identified by an integer). For instance, $0101$ can represent the symbol $5$, and so on. Gray coding is usually used for this purpose, but it is not always the case. So you need to find out the exact constellation mapping and then, the demodulation process is nothing more than the inverse of that mapping. So when there is a $5$ your data bits are $0101$.