Great answer. I wish I could upvote it! There should be a GNU Radio Stack Exchange type thing.
Rich On Tue, Aug 23, 2016 at 3:07 PM, Andy Walls <[email protected]> wrote: > On Tue, 2016-08-23 at 12:00 -0400, [email protected] > wrote: > > Message: 7 > > Date: Mon, 22 Aug 2016 18:14:29 -0700 (MST) > > From: Paul Creaser <[email protected]> > > > > 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/834c0e46b93fd72fd8408c492af56f > 8d/mi_blog/r/4%29_Todd_Moon_Mathematical_Methods_and_ > Algorithms_for_Signal_Processing.pdf > > -Andy > > > > _______________________________________________ > Discuss-gnuradio mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio >
_______________________________________________ Discuss-gnuradio mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
