discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Costas Loop SNR Port Usage


From: Richard Bell
Subject: Re: [Discuss-gnuradio] Costas Loop SNR Port Usage
Date: Thu, 17 Sep 2015 12:24:41 -0700

OK. I'm seeing pretty good estimates myself, for the few input noise std devs I've tried. I'm glad I didn't have to write this myself.

Thanks,
Rich

On Thu, Sep 17, 2015 at 12:12 PM, Tom Rondeau <address@hidden> wrote:
On Thu, Sep 17, 2015 at 2:46 PM, Richard Bell <address@hidden> wrote:
It's hard to tell from the slide, but are you feeding the Estimator the same data that is fed into the Costas loop?

Rich

Yes, in this case, that's the way it's configured. For one, I use this to show how to control upstream blocks through messages. But also, some SNR estimators require a locked constellation. The ones in use in the SNR Estimator block don't, but new ones might. You should be able to move this in front of the Costas Loop block and have the same results.

Tom


 
On Thu, Sep 17, 2015 at 11:28 AM, Tom Rondeau <address@hidden> wrote:
On Thu, Sep 17, 2015 at 2:19 PM, Richard Bell <address@hidden> 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:



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





reply via email to

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