Est. read time: 4 minutes | Last updated: July 17, 2024 by John Gentile



I & Q Data

Given the trigonometric identity: $$ \cos(\alpha)\cos(\beta) = \cos(\alpha)\cos(\beta) - \sin(\alpha)\sin(\beta) $$

We can describe a sinusoidal signal in component parts as: $$ A\cos(2\pi f t + \phi) = A\cos(2\pi f t)\cos(\phi) - A\sin(2\pi f t)\sin(\phi) $$

Setting I (the amplitude of the In-Phase carrier) and Q (the amplitude of the Quadrature-phase carrier) allows us to describe the magnitude and phase (polar coordinate) of a sinusoid by the simple amplitudes: $$ I = A\cos(\phi) $$ $$ Q = A\sin(\phi) $$ $$ A\cos(2\pi f t + \phi) = I\cos(2\pi ft) - Q\sin(2\pi ft)$$

From the Euler identity of a sinusoidal signal e±jϕ=cosϕ±jsinϕe^{\pm j \phi}=\cos \phi \pm j\sin \phi, we can see the relationship between the polar coordinate phasor notation of a signal vector (e.g. a signal described by its amplitude and phase) and its cartesian coordinate equivalent when described in the complex 2D plane, which shows the I/Q data format is the real and imaginary parts, respectively, of a given sinusiod:

Source: What is I/Q Data?- NI

The benefit of I/Q data, and why its a popular data representation when working with RF systems (e.x. communications devices), is that it makes phase modulated signals easier to work with; because a sine wave with a -90 degree phase offset is equal to a cosine wave, the above I/Q relationships mean that the same carrier can be used for both I & Q (just simply phase shifted for Q) and that phase modulation can be achieved by simply modulating the amplitude of I & Q. This is much simpler (e.g. cost effective & performant) in real, digital implementations than direct phase modulation of a signal. For instance, a simple and common way to transform I/Q to RF can be shown in the following block diagram:

Source: What is I/Q Data?- NI

I/Q data can also be represented by a Constellation Diagram which provides an intuitive mapping between a set of digital bits and I/Q symbols for a given modulation scheme, for example 16-ary Quadtrature Amplitude Modulation (QAM):

Source: Constellation Diagram- Wikipedia


Wi-Fi (IEEE 802.11)

Cellular (LTE/3GPP, 4G/5G)

  • srsRAN - Open Source 4G/5G software
  • open5G_phy: A resource efficient, customizable, synthesizable 5G NR lower PHY written in Verilog
  • free5GRAN: free5GRAN is an open-source 5G RAN stack. The current version includes a receiver which decodes MIB & SIB1 data. It also acts as a cell scanner. free5GRAN works in SA mode.
  • LTE-Cell-Scanner: OpenCL, SDR, TDD/FDD LTE cell scanner, full stack from A/D samples to SIB ASN1 messages decoded in PDSCH, (optimized for RTL-SDR HACKRF and BladeRF board)
  • Evrytania/Matlab-Library: Miscellaneous Matlab functions that are useful for wireless communications. Primarily focused on LTE / 3GPP.




Software Defined Radio (SDR)

SDR Software/Frameworks

GNU Radio

GNU Radio is an open-source SDR framework for prototyping communications systems.

Other SDR Software

  • SoapySDR: vendor and platform neutral SDR library.

SDR Hardware


RTL-SDRs are cheap and omnipresent, RX-only SDRs.

Ettus Research SDRs

Ettus has been a long time maker of high-quality SDR HW. They also open-source nearly all schematics, software, and FPGA firmware/HDL. They also maintain the USRP Hardware Driver (UHD), an open-source driver library across their devices, and well supported by other open-source frameworks, like GNU Radio.

Other SDR Hardware