[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: explaining i/q

From: Kristoff
Subject: Re: explaining i/q
Date: Wed, 4 Nov 2020 00:38:27 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

Jef, Fabian, Aditya, Anon, David,

I'll just reply to this one message so not to spam the list to much but please consider this a "thank you" to all for replying.

As said, this is for a limited and very specific goal:
I will probably be giving a workshop on GRC in a couple of weeks and I want to give a quick explanation of iq-sampling and how this impacts designing a GR flowgraphs.

I want to keep the workshop focused on that one topic. So I really want to avoid going "wondering around" trying to explain everything that is related to DSP or SDR. After all, it's a workshop on using GRC, not a generic presentation on SDR or signal-processing.

The reason I do want to mention iq sampling in the workshop, is simply that does is one of the basic datatypes of GNU Radio and it is an important element that affects how to build a flowgraph.

I think I will summarise it like this:

* complex numbers is one of the datatypes of GR, It is the format to store signals generated by a process called "i/q sampling".

So, what is iq-sampling?
IQ-sampling is like sampling a normal ("real") signal -i.e. what most people are familiar with-, ... except that you sample the data twice for each period: once at timer "t" and a second time 1/4 sampling period later. (*)

This 2nd sampling-action provides information about the 'direction' a signal is going (up or down). (I think the proper term here is its 'slope')
(thx David for the correction about 'phase' vs 'slope')

(*) Just look at the design of a direct-conversion SDR receiver.

The first sample is called the "in phase" sample, the 2nd sample is the "quadrature" sample; hence "i/q" sampling.

* as was also mentioned by Heather in the RSGB/BATC presentation, the use of iq-signals has a number of consequences on GNU Radio flow-graphs.
The most important ones are:

->  Mixing two complex signals (with a frequency of "f1" and "f2") will produce one new signal with a frequency of f1+f2 Hz.

This is in contrast to a mixer of "real" signals which -as most people know- produces two new signals (frequencies: f1+f2 and f1-f2)

-> In the "real" frequency-domain, only the frequencies from 0 up to sampling-rate / 2 is defined. The frequencies below zero are a mirror of the radio-spectrum above DC.

Using complex i/q sampling, both positive and negative frequencies exist and are independent of each other.

-> A signal with a "negative" frequency?
Yes, a complex signal can have a 'negative' frequency. This is basically the same as a signal with the equivalent positive frequency, but mirrored around the x-axis (**).

If you look at such a signal, you see that flipping a signal upside down will  inverse the sign of the value of every sample (something that does affect the value of the signal, but no its frequency), ... and inverse the "direction" of that signal. And remember that the goal of i/q sampling is ...  to determine the direction of a signal?

(**) note: there do are other ways to negate the frequency of a complex signal.

-> Combine the two last points, and you get this:

If you mix (multiply) an incoming signal with frequency "f1" with a second signal that has a negative-frequency "-f2" will generate a new signal with a frequency of f1-f2, effectively moving a signal down in the radio-spectrum. (i.e. 'down-converting')

* And finally, ... certain hardware peripherals deals with 'real' signals (e.g. an audio-card or a speaker), other hardware create or read complex 'iq' signals (like most dedicated SDR peripherals)

Again, the goal is not a full detailed discussion about I/Q signals.
The goal is to give people who are not to SDR, new to GNU Radio and have never heard of i/q sampling before some idea of what it is, and how it will impact them when they start playing around with GRC.

But I do want my information to be factual correct, so .. if somebody sees factual errors in this, feel free to reply! :-)

kristoff - ON1ARF

On 3/11/2020 12:47, Jeff Long wrote:
This is a great thing to try to figure out. If we can come up with an answer that gives someone a feel for why I/Q is used in SDR in 10 minutes, and does not include phasors, exponentials to a complex power, a derivation of any equation, the concept of orthogonality, etc. ... it will win a Nobel prize in education.

On Tue, Nov 3, 2020 at 4:56 AM gilles rubin <rubingilles@yahoo.com <mailto:rubingilles@yahoo.com>> wrote:


    You can have a look here
    The Concept of Frequency | Wireless Pi


        The Concept of Frequency | Wireless Pi


    Qasim Chaudhari CEO of Wireless Pi is great ! You will find plenty
    of information on his website.


    Le mardi 3 novembre 2020 à 00:06:02 UTC+1, Kristoff
    <kristoff@skypro.be <mailto:kristoff@skypro.be>> a écrit :

    Hi all,

    I was watching the webinar of Heather on GNU Radio today, when it
    to me that one of the most difficult part doing a presentation of GNU
    Radio is the data-types, .. and especially these 'complex numbers'.
    The problem, or at least for me, is that when you mention 'GNU Radio
    complex numbers', you also have to mention iq-signals, which is a
    that is very difficult to explain in 10 seconds to an audience who
    never seen anything about i/q sampling before.

    I have been thinking on how to explain the concept of I/Q
    signalling in
    just a few lines, e.g. in the context of -say- a workshop on GR.

    I have this idea in my head:

    The main difference between sampling with reals ('floats') and i/q
    sampling with complex numbers, is that the latter does not only
    the  instantaneous value (voltage) of a signal at a certain point of
    time, but also includes phase information (i.e. the slope of the
    at that point).

    To make this visual:
    Take half a sine-wave and plot it out for every 45 degrees.
    This gives you 5 points: 0 (0 degrees), sqrt(2)/2 (45 degrees), 1 (90
    degrees), sqrt(2)/2 (135 degrees) and 0 (180 degrees).

    Now look at the 2nd and the 4th point (45 degrees and 135
    degrees), if
    you sample this using only real/float values, these two points are
    exactly the same (sqrt(2)/2). Just based on these values by
    (i.e. remove all other points from the graph), there is no way you
    tell that at the first point (45 degrees) the graph was going up,
    at the 135-degrees point the graph was going down.

    So, ... what i/q sampling does, is for every point "x", it not only
    provide the value of the graph at that point of time, but also
    information of the slope of the graphs at that time.

    This also explains while i/q sampling is done by not just taking the
    value of a signal at point "t", but also at 1/4 period later
    (which is
    the information you need to determine the 'slope' of that graph at

    So, ... is this statement correct?

    If it is more-or-less correct and it can help provide a basic mental
    image of the concept of i/q sampling, I would be more then happy! :-)

    kristoff - ON1ARF

reply via email to

[Prev in Thread] Current Thread [Next in Thread]