Hello, I'm currently trying noise cancellation for RF applications. I have a known interfering source that I am trying to cancel out so that I can have a better representation of the signal I am interested in. I implemented the Normalized LMS in Gnuradio. Unfortunately the performance is never consistent. About 10% of the time the algorithm works very well showing excellent cancellation. I have found the ideal filter length and the step size through lots of iterations where the algorithm (about 10% of the time) gets excellent cancellation. I have two test setups. The first one is using 3 antennas: one as a transmitter that transmits a sine wave (the signal of interest), a second that transmits bandlimited AWGN with a bandwidth of 1 MHz, and a third as a receive antenna that receives both signals and is connected to the 1st input of my USRP radio. I also have a direct feed of the noise source using rf cables to my second input to my USRP radio by using an RF splitter at the noise generator (1 end to the antenna, the other directly to the USRP). The second setup is where I replace all the antennas with direct rf cable feeds (and using a combiner to combine the signal of interest and noise). The idea is to simplify the system to be identified. Unfortunately, I get about the same inconsistency in canceller performance and I don't exactly know what is wrong. All the processing is done in baseband. I wrote the algorithm so that it only processes a real version of the signal (without the imaginary) and that my fir filters will only take real values (which means that if the channel has imaginary values then my fir taps will never truly represent the channel). However, since I am only working with a regular sine wave, I would think this whole set up would work. What can I do better so that my cancellation performance always cancels very well in every iteration? Thanks JT

# RF interference cancellation using NLMS

Started by ●October 19, 2010

Reply by ●October 19, 20102010-10-19

On Oct 19, 1:50�pm, "pacman101" <janpac01@n_o_s_p_a_m.yahoo.com> wrote:> Hello, > > I'm currently trying noise cancellation for RF applications. �I have a > known interfering source that I am trying to cancel out so that I can have > a better representation of the signal I am interested in. > > I implemented the Normalized LMS in Gnuradio. �Unfortunately the > performance is never consistent. �About 10% of the time the algorithm works > very well showing excellent cancellation. �I have found the ideal filter > length and the step size through lots of iterations where the algorithm > (about 10% of the time) gets excellent cancellation. > > I have two test setups. � > > The first one is using 3 antennas: one as a transmitter that transmits a > sine wave (the signal of interest), a second that transmits bandlimited > AWGN with a bandwidth of 1 MHz, and a third as a receive antenna that > receives both signals and is connected to the 1st input of my USRP radio. > I also have a direct feed of the noise source using rf cables to my second > input to my USRP radio by using an RF splitter at the noise generator (1 > end to the antenna, the other directly to the USRP). � > > The second setup is where I replace all the antennas with direct rf cable > feeds (and using a combiner to combine the signal of interest and noise). > The idea is to simplify the system to be identified. �Unfortunately, I get > about the same inconsistency in canceller performance and I don't exactly > know what is wrong. � > > All the processing is done in baseband. �I wrote the algorithm so that it > only processes a real version of the signal (without the imaginary) and > that my fir filters will only take real values (which means that if the > channel has imaginary values then my fir taps will never truly represent > the channel). �However, since I am only working with a regular sine wave, I > would think this whole set up would work. � > > What can I do better so that my cancellation performance always cancels > very well in every iteration? > > Thanks > > JTHey JT, This may sound like a stupid question, but what does the results look like when you remove the raido? I.E., sum the noise, interferer and sig of interest at base band. Expected results? regards

Reply by ●October 22, 20102010-10-22

>On Oct 19, 1:50=A0pm, "pacman101" <janpac01@n_o_s_p_a_m.yahoo.com> >wrote: >> Hello, >> >> I'm currently trying noise cancellation for RF applications. =A0I havea>> known interfering source that I am trying to cancel out so that I canhav=>e >> a better representation of the signal I am interested in. >> >> I implemented the Normalized LMS in Gnuradio. =A0Unfortunately the >> performance is never consistent. =A0About 10% of the time the algorithmw=>orks >> very well showing excellent cancellation. =A0I have found the idealfilte=>r >> length and the step size through lots of iterations where the algorithm >> (about 10% of the time) gets excellent cancellation. >> >> I have two test setups. =A0 >> >> The first one is using 3 antennas: one as a transmitter that transmitsa>> sine wave (the signal of interest), a second that transmits bandlimited >> AWGN with a bandwidth of 1 MHz, and a third as a receive antenna that >> receives both signals and is connected to the 1st input of my USRPradio.>> I also have a direct feed of the noise source using rf cables to mysecon=>d >> input to my USRP radio by using an RF splitter at the noise generator(1>> end to the antenna, the other directly to the USRP). =A0 >> >> The second setup is where I replace all the antennas with direct rfcable>> feeds (and using a combiner to combine the signal of interest andnoise).>> The idea is to simplify the system to be identified. =A0Unfortunately, I=>get >> about the same inconsistency in canceller performance and I don'texactly>> know what is wrong. =A0 >> >> All the processing is done in baseband. =A0I wrote the algorithm so that=>it >> only processes a real version of the signal (without the imaginary) and >> that my fir filters will only take real values (which means that if the >> channel has imaginary values then my fir taps will never trulyrepresent>> the channel). =A0However, since I am only working with a regular sinewav=>e, I >> would think this whole set up would work. =A0 >> >> What can I do better so that my cancellation performance always cancels >> very well in every iteration? >> >> Thanks >> >> JT > > >Hey JT, > >This may sound like a stupid question, but what does the results look >like when you remove the raido? > >I.E., sum the noise, interferer and sig of interest at base band. > >Expected results? > >regards >Hi JT, The problem is not clear. Try to put the problem as brief as possible. So the NLMS works properly in 10% of the test scenarios or does it work after 10% of the signal time duration. NLMS takes tine to adapt to the signal of interest or non interest depending on how you use it. So give the problem statement clearly regards, srikanth

Reply by ●October 26, 20102010-10-26

>>This may sound like a stupid question, but what does the results look >>like when you remove the raido? >> >>I.E., sum the noise, interferer and sig of interest at base band. >> >>Expected results? >> >>regards >> > >Hi JT, > > The problem is not clear. Try to put the problem as brief as possible. >So the NLMS works properly in 10% of the test scenarios or does it work >after 10% of the signal time duration. >NLMS takes tine to adapt to the signal of interest or non interest >depending on how you use it. >So give the problem statement clearly > > >regards, >srikanthHey, Sorry it took me so long to reply. I took a break from this. Anyway, to answer the first person's post, yes I have tried that and it doesn't work =D. Srikanth, What I mean that it gives me full cancellation only 10% of the time when I send a sine wave as my signal of interest corrupted by bandlimited additive white gaussian noise. In my two test scenarios, I've tried it hundreds and hundreds of times for each test scenario and I only get excellent results about 10% of the time (not after 10% of signal generation). So what I am wondering is what exactly is wrong or what can I do better?

Reply by ●October 26, 20102010-10-26

On Oct 26, 2:28�pm, "pacman101" <janpac01@n_o_s_p_a_m.yahoo.com> wrote:> >>This may sound like a stupid question, but what does the results look > >>like when you remove the raido? > > >>I.E., sum the noise, interferer and sig of interest at base band. > > >>Expected results? > > >>regards > > >Hi JT, > > > �The problem is not clear. Try to put the problem as brief as possible. > >So the NLMS works properly in 10% of the test scenarios or does it work > >after 10% of the signal time duration. > >NLMS takes tine to adapt to the signal of interest or non interest > >depending on how you use it. > >So give the problem statement clearly > > >regards, > >srikanth � > > Hey, > > Sorry it took me so long to reply. �I took a break from this. > > Anyway, to answer the first person's post, yes I have tried that and it > doesn't work =D. > > Srikanth, > > What I mean that it gives me full cancellation only 10% of the time when I > send a sine wave as my signal of interest corrupted by bandlimited additive > white gaussian noise. � > > In my two test scenarios, I've tried it hundreds and hundreds of times for > each test scenario and I only get excellent results about 10% of the time > (not after 10% of signal generation). � > > So what I am wondering is what exactly is wrong or what can I do better?Since you are ignoring the complex nature of the signal, you are therefore ignoring the phase information captured in the real & imaginary components. Without this phase information it really isn't surprising you're not getting very good cancellation. The phase of the sinusoid is reflected by the relationship between the real and complex components. A complex LMS algorithm is derived in "The Complex LMS Algorithm" Proc IEEE vol.63,pp 719-720 Apr. 1975, Widrow, McCool, and Ball. Cheers, David

Reply by ●October 26, 20102010-10-26

On 10/19/2010 1:50 PM, pacman101 wrote:> Hello, > > I'm currently trying noise cancellation for RF applications. I have a > known interfering source that I am trying to cancel out so that I can have > a better representation of the signal I am interested in. > > I implemented the Normalized LMS in Gnuradio. Unfortunately the > performance is never consistent. About 10% of the time the algorithm works > very well showing excellent cancellation. I have found the ideal filter > length and the step size through lots of iterations where the algorithm > (about 10% of the time) gets excellent cancellation. > > I have two test setups. > > The first one is using 3 antennas: one as a transmitter that transmits a > sine wave (the signal of interest), a second that transmits bandlimited > AWGN with a bandwidth of 1 MHz, and a third as a receive antenna that > receives both signals and is connected to the 1st input of my USRP radio. > I also have a direct feed of the noise source using rf cables to my second > input to my USRP radio by using an RF splitter at the noise generator (1 > end to the antenna, the other directly to the USRP). > > The second setup is where I replace all the antennas with direct rf cable > feeds (and using a combiner to combine the signal of interest and noise). > The idea is to simplify the system to be identified. Unfortunately, I get > about the same inconsistency in canceller performance and I don't exactly > know what is wrong. > > All the processing is done in baseband. I wrote the algorithm so that it > only processes a real version of the signal (without the imaginary) and > that my fir filters will only take real values (which means that if the > channel has imaginary values then my fir taps will never truly represent > the channel). However, since I am only working with a regular sine wave, I > would think this whole set up would work. > > What can I do better so that my cancellation performance always cancels > very well in every iteration? > > Thanks > > JT > >I don't see how you can process only the I and not the Q (which come from InPhase and Quadrature meaning 90 degrees out of phase from InPhase. So, you don't really have any "imaginary" values and you need to process the entire signal. So, you apply the same FIR filter to Q as to I ... well, at least that's the simple version. A "regular" sine wave will have both I and Q values. I imagine it works 10% of the time because 10% of the time the timing is such that the I channel has most the energy .... something like that. Fred