On Thu, Sep 17, 2015 at 2:19 PM, Richard Bell <richard.be...@gmail.com>
wrote:

> Hi all,
>
> I've attached an image of my flowgraph and the figures it produces to
> coincide with the following.
>
> I would like to do two things to a BPSK radio implementation. One is feed
> an SNR estimate to the Costas Loop to improve performance at low SNR. The
> second is display the measured SNR to a user in the GUI. I'm using the MPSK
> SNR Estimator Probe to generate SNR messages and feeding that into the
> Costas Loop, simple enough.
>
> Question 1: Where do you place the estimator block in your flowgraph?
> Currently, I have it estimating SNR based on the input to the Costas Loop,
> but I could make estimates based on the stream coming right out of the USRP
> Source. Does it matter/help/hurt?
>
> Question 2: What type of SNR estimator from this block do people with
> experience find works best? Welcoming recommendations. In the simple
> flowgraph attached, I find Simple, 2nd and 4th Moment and SVR produce
> relatively close estimates, while Skewness is way off and sometimes
> produces NaN.
>
> Question 3: How do I turn the SNR Estimator messages into a stream that I
> can pass to QT GUI blocks? I've tried the PDU to Tagged Stream and the
> Message Source blocks, but they don't work for this purpose. I just get
> streams of 0's or can't use the block at all (Message Source is the wrong
> kind of message input). Using the Message Debug block shows the output of
> the estimator is not 0, which you can see in the terminal of the attached
> flowgraph image.
>
> Thank you for the help,
> Rich
>

Rich, check out slide 34 of my presentation from last year:

http://static1.1.sqspcdn.com/static/f/679473/25461695/1411159929500/Sep16_11_Rondeau_mpsk.pdf?token=xIP07wC3RjGheLkPPTsErRmwwrE%3D


The Costas Loop is already equipped to handle this. However, notice that
I'm passing the noise estimate, not the SNR estimate. We don't want that
block (or the tag version of the estimator) doing an SNR estimate and
passing it on for every single sample. That's a lot of overhead.

Instead, I take the noise estimate from this block, which the M2M4
estimator produces quite well at low SNRs, and use that inside the Costas
loop. The Costas loop will then calculate the instantaneous SNR of the
sample by taking the signal power from the sample itself against the
current noise floor estimate (which isn't expected to change rapidly). As
you can see in the next few slides, the performance difference is rather
dramatic.

Make sure you go to the Costas Loop block options and say "Yes" for "Use
SNR" -- it's added computations, which you want to avoid if you don't want
to use it or don't have a good noise estimator.

Tom
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to