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 11:46:12 -0700

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

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]