discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] FFT scaling consistency


From: Marcus Müller
Subject: Re: [Discuss-gnuradio] FFT scaling consistency
Date: Wed, 26 Nov 2014 11:35:01 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Sylvain,

at first I hm'ed, but then I hm!ed.
So, first thing, yes, using a single tone as reference does sound
logical, especially since it's so intuitive from an analysis point of
view, considering RX signals to be a sum of weighted complex sinusoids.

Then: no, QT GUI does that, see [1] (generated by [2]). The tone at
samp_rate / fft_length * 10 has a power of 0 dB; also, Gaussian noise
with an amplitude of 1 has an average (picture is heavily averaged)
power of -20 dB == 1/fft_length. Perfect!

To the complex vs. real discussion: Picture [3] tells me that I see
the noise at -23 dB; now, this will get extremely philosophical
whether when observing a real signal this should be -20 dB instead. I
like to think of it as "don't add energy when you don't specify where
that comes from, or you'll end up building virtual perpetuum mobiles":
The real noise can be considered complex noise with $\Im{x} \equiv 0$,
so it logically has less energy than the complex circular gaussian
noise of [1]. If we display it having as much energy as the latter,
we're acting as if we knew that the imaginary part wasn't zero. That
can't end well, especially when looking at stuff like SNRs.

Cheers,
Marcus


[1] http://marcus.hostalia.de/test_fft_power.png
[2] http://marcus.hostalia.de/test_fft_power.grc
[3] http://marcus.hostalia.de/fft_test_real.png (please ignore the
complex sinusoid label. It's a plain-as-water real sine.)

On 11/26/2014 10:38 AM, Sylvain Munaut wrote:
> Hi,
> 
> 
> Yesterday someone in the chat raised an interesing issue. The
> absolute scale of the various FFT GUI sinks.
> 
> If you take:
> 
> [signal source ampl=1.0] -> [gui fft sink]
> 
> (use a source freq that fits exactly on 1 fft bin)
> 
> With complex + WXGUI it peaks at -3dB With complex + QTSink it
> peaks at -9dB With float + WXGUI it peaks at -9dB With float +
> QTSink it peaks at -15dB
> 
> 
> So basically:
> 
> - The WXGui + Complex should be 0dB IMHO. A complex cosine of ampl
> 1.0 should be our 'absolute' reference for 0dB
> 
> - QTSink is always 6dB lower -> That doesn't sound logical, they
> should just match. GUI selection should have no influence on the
> absolute reading when working with purely synthetic data.
> 
> - Float is always 6dB lower than complex -> I'm torn on this one
> ... can't decide :p If you integrate the energy (x^2) over one
> cycle between a complex cosine and a float cosine, you get half the
> energy. So this should be -3 dB right ? And I guess the other 3dB
> comes from the fact that half of this energy is in the positive
> spectrum and half of it in the negative one (so if you take the
> total energy in the whole spectral domain, it does indeed match the
> one in the time domain) ? The question is then, when displaying a
> float fft, should we just raise by 3dB ?
> 
> 
> Anyway, I hope this make sense :p
> 
> Thoughts ?
> 
> 
> Cheers,
> 
> Sylvain
> 
> _______________________________________________ Discuss-gnuradio
> mailing list address@hidden 
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
> 
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJUdazVAAoJEAFxB7BbsDrLhggH/11fQd8mBrvYqM1i+DDSKs0o
gxqqAMvUSbcURtWnYdU13HI9bOb3CcpApcHKjxITg+D8l+Qkb7KB3xmrNui85Ko2
vsS56QPHuTnfefdhZaKZw7OFQ+OTzMVd0Wfe2Gfi9NCuHvR37b8NABfIfViYdmO3
W9zdpSIZ14VXZXfaB/WS+MB4y2Z4leRNIBSeg54IAhn5PAS9Y8AEYy4w4qKsXDqd
31/8P0aN3W4rvApPkV8E2jBQ/nNqq7ZJxl/oK4MKmW3oLaQYhkAs5uHhOGZhFgTj
YMKq3pgqlSccTJQ/2g+5iGEwN+IaOw46/Y9AhPfa5eTrrVR4+c26ouUueSGTCX8=
=eNmU
-----END PGP SIGNATURE-----



reply via email to

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