User:CSeguinot

From GNU Radio
Revision as of 10:05, 22 January 2021 by CSeguinot (talk | contribs)
Jump to: navigation, search

This tutorial originates from discussions on discuss-gnuradio@gnu.org. We will explain why simulating digital communications requires equivalent baseband representation of signal which in fact are complex signals. For this unique reason, complex signals are essential in GNURadio.


This tutorial is intended for non specialist, it involves as less maths as possible and present most results with GNURadio flowgraph. Some examples involving simple modulation scheme used in HAM radio are presented. While introducing complex signal can be seen as increasing complexity, we will see that it drastically simplify some impairment such as synchronization.

If you are searching for more detailed information please refer to corresponding literature such as references [1],[2],[3].


Some maths

This section summarize complex numbers properties used in this tutorial. More information can be found on complex number Wikipedia page.

Complex number z=a + jb

A complex number is a number of the form a + jb, where a and b are real numbers, and j is an indeterminate satisfying j2=-1 (Mathematician prefer using i instead of j used by physicist and radio engineers). For example, z1=2+3j is a complex number. The real part Re{z} of z1 is 2 and its imaginary part Im{z} is 3.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z=a+jb }
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \text{Re}\{z\}=a}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \text{Im}\{z\}=b}


Complex numbers can be represented in the complex plane as vectors. The modulus or magnitude r of a complex number z = a + jb is

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle r=|z|=\sqrt{a^2+b^2}}

The phase φ of z mathematically referred to as the argument is the angle of the radius Oz with the positive real axis.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle \phi=\arg(z)=\arctan(b/a) } (for a≠0)

Together, r and φ give another way of representing complex numbers, the polar form and the exponential form.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z=r \left(cos(\phi) + j sin(\phi) \right) = r e^{j\phi}}
The complex plane

The exponential form is convenient for computing the multiplication of two complex numbers.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z_1= r_1 e^{j\phi_1}}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z_1= r_2 e^{j\phi_2}}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle z=z_1z_2= r_1r_2 e^{j(\phi_1+\phi_2)}}

Following complex number have a unit magnitude r=1 :

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle +1=e^{j0}}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle +j=e^{j\pi/2}}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle -1=e^{j\pi}}
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle -j=e^{j3\pi/2} }

A complex signal c(t) can be seen as two real signal i(t), q(t) combined to create a complex signal. It can also be represented by its time varying amplitude a(t) and its phase φ(t)

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle c(t) = i(t) + j q(t) = a(t) e^{j\phi (t)} }

Why we need complex and IQ signals

GNURadio software is mainly used to design and study radio communications. Making high frequency transmission requires modulating a high frequency carrier at frequency F0. The most common modulation for analog transmissions are Amplitude modulation (AM) Phase modulation (PM) and Frequency modulation (FM).

For analog AM, the modulated signal m(t) is simply the mathematical product of the carrier c(t) and the baseband signal to transmit a(t). The corresponding hardware is a mixer whose scheme is a multiplier.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle m(t) = a(t) c(t) = a(t) \cos(2\pi f_0t)} SCHéMA

We call a(t) a baseband signal since its spectrum is in a low frequency range starting near 0 Hz (For example [0-20kHz] for an HIFI audio signal).

The spectrum of an AM modulated signal M(f) is the translation or the audio spectrum A(f) around F0 with A(f) being the whole spectrum using both positive and negative frequencies

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle M(f) = \frac{1}{2}\big(A(f-f_0) + A(f+f_0)\big)} SCHéMA

N.B. Negative frequencies are often omitted since for real signal (a(t), m(t) are real) the power spectrum are symetric around zero as will be detailed later.

Up to now we have been dealing with real signal. The need for complex signal appears in the next step. Simulation requires sampled signal. Sampling is the operation of observing a continuous signal and taking a finite number of sample at a given sampling rate fs (i.e; one sample each 1/fs second). Nyquist Sampling theorem states that the sampling rate must be greater than twice the maximum frequency FMax to be able to reconstruct the original signal from the sampled signal.

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle f_s > F_{Max}}

For an HIFI audio signal, maximum audio frequency Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle F_{Max Audio}} is closed to 20 kHz, sampling rate must be higher then 40 kHz (44.8 kHz is often used in computer sound card, 8 kHz is used for mobile phone since voice has a lower frequency range then HIFI audio).

For an AM signal modulated by an audio signal, maximum frequency is Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://en.wikipedia.org/api/rest_v1/":): {\displaystyle F_{Max}=F_0+F_{Max Audio}} . Direct sampling of such signal is not possible with conventionnal hardware such as low cost SDR dongle. If the carrier frequency is close to 1 GHz, the sampling rate should be 2 GHz. This is obviously too much then computer cans handle (higher then most computer clock).

Complex enveloppe, equivalent baseband signal

Baseband signals have a spectrum at low frequency near 0 Hz. Audio, video and NRZ line code are baseband signals.