discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Calculating additive noise power for known signal


From: Andy Walls
Subject: Re: [Discuss-gnuradio] Calculating additive noise power for known signal
Date: Tue, 23 Aug 2016 18:07:17 -0400

On Tue, 2016-08-23 at 12:00 -0400, address@hidden
wrote:
> Message: 7
> Date: Mon, 22 Aug 2016 18:14:29 -0700 (MST)
> From: Paul Creaser <address@hidden>
> 
> I've just started studying methods used to detect and then filter out/remove
> cyclic noise from known signals. 
> 
> I have a signal of 256 samples which repeats itself. I take this signal,
> attenuate it and add noise at a specific band (frequency band), for example
> 50 Hz Sine Wave. In the simplest case this is none varying. However in the
> future it will vary slowly over time. 

I'm not quite sure what you mean by "cyclic noise", but the example you
give is 50 Hz (or 60 Hz) hum, so a narrowband interference.


> What I would like to do is find the power level of the additive cyclic noise
> (, which should be the difference between the two signals) and where in the
> frequency spectrum this noise exists. Using this information, I would hope
> to use weighting to recover the original signal.

If the noise is always out of the channel of your signal of interest,
then a bandpass filter will do the job and your done.

If the noise is in the channel of your signal of interest, then it
sounds like what you really want in the end is an adaptive equalizer or
filter.

If you're not afraid of a lot of work:
Just dive into implementing a Least Mean Squares (LMS) adaptive
filter.  

You can either make it Data-Aided (DA), adapting the filter when it
detects and operates on a known preamble; or Decision Directed (DD),
adapting the filter every time it makes a decision about what a data bit
should be.

I prefer using a Data-Aided LMS adaptive filter, as I often work with
signals that have known preambles.
 
Such a system would look something like:

received samples source -> channel filter -> automatic gain control ->
correlator to detect and mark the preamble -> LMS DA adaptive filter
-> ...

Translating that to example GNURadio blocks:

USRP Source -> Freq Xlating FIR Filter -> Feed Forward AGC ->
Correlation Estimator -> (Your custom LMS DA filter block) -> ...


> *Steps*
> 
> 1 I take the original and modified signal and rescale the modified signal to
> match the original.
> 
> At the moment I use a very naive approach which is to take the absolute sum
> of the 256 samples for both signals and from this calculate a simple scale
> factor. I think this should be OK where I have narrow band noise, but it may
> fail badly in other cases where the noise levels are high.
> 
> 2 Next I take the FFT of the two signals (256 samples).
> 
> 3 Calculate the noise
> 
> Using the difference between the FFTs, I then calculate the noise power.
> 
> *Two questions?*
> 
> 1 The rescaling method is very basic, using absolute accumulated sums. Does
> GNU radio have any blocks, which could perform this auto-scaling more
> effectively?

GNURadio has several AGC blocks.  They all have their quirks.  Pick one
an try to make it work.


> 2 Using the basic difference between the FFT's, such as the absolute
> magnitude difference, should provide a starting point for calculating the
> noise power. Again is this naive?

Noise power and noise density have specific meanings which I don't think
match what you're thinking about here.  AFAICT, you want to know the
power of an in-channel narrowband interference (so that you can
ultimately filter it out).

Looking at FFT's will give you a feel for the situation, but it's kind
of a blunt instrument, if you plan of filtering by direct FFT bin
scaling or excision.

It really sounds like what you want is an adaptive equalizer (aka
adaptive filter).

There's lots of existing literature on equalizers.
This lecture is still a little too advanced for most folks, but it has
the basic concepts covered clearer than most others I could find on
Google: 
http://www.eecg.toronto.edu/~johns/nobots/courses/ece1392/equalization2.pdf


Section 14.6 of this book describes the LMS algorithm:
https://www.amazon.com/Mathematical-Methods-Algorithms-Signal-Processing/dp/0201361868

And here is a PDF copy I spotted on the internet (click at your own
risk):
https://www.u-cursos.cl/usuario/834c0e46b93fd72fd8408c492af56f8d/mi_blog/r/4%29_Todd_Moon_Mathematical_Methods_and_Algorithms_for_Signal_Processing.pdf

-Andy





reply via email to

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