DSPRelated.com
Forums

Applying complex weight to real data for beamforming!

Started by northernlights May 22, 2005
Hi, 

I am very inexperienced in the area of beamforming and applied DSP. I was
wondering if you can help with some basic questions. 

Application: Implement a broadband beamformer for acoustic interference
cancellaion on TI chip.
Reference: Kevin Buckley's "Beamforming: A Versatile approach to spatial
filtering"

Question: 
> Most of the beamforming techniques presented requires applying a complex
weight to the data(which is real). I am sure that there is a simple way to do that but i can't get it right ( i am trying with the simple narrowband case first). Can anyone help me?
> For the constrained LCMV with GSC. Can you tell me if it for broadband
signal? Thanks a lot for the help. - Vik This message was sent using the Comp.DSP web interface on www.DSPRelated.com
x = a + j*b with b = 0.

On Sun, 22 May 2005 10:37:27 -0500, "northernlights" <vikrham@yahoo.com>
wrote:

>>> Most of the beamforming techniques presented requires applying a complex >>weight to the data(which is real). I am sure that there is a simple way to >>do that but i can't get it right ( i am trying with the simple narrowband >>case first). Can anyone help me?
Wow; a long time since I did any beamforming, but to start you out it's maybe best to realize that there's a Fourier Transform relationship between the array weights and the resulting beam pattern (with an extra sine term associated with the angle from array-normal). Just as the Fourier Transform of a complex time sequence results in a spectrum that is not symmetrical about zero frequency, complex array shading weights result in a beam pattern that is not symmetrical about array-normal. On the other hand, real shading weights result in a symmetrical beam pattern. All of the other symmetry properties of the Fourier Transform apply, with the shading weights taking the place of the time sequence and the beam pattern taking the place of the spectrum; see Oppenheim & Schafer (orange version), pp. 104-105. Greg
northernlights wrote:
> Hi, > > I am very inexperienced in the area of beamforming and applied DSP. I
was
> wondering if you can help with some basic questions. > > Application: Implement a broadband beamformer for acoustic
interference
> cancellaion on TI chip. > Reference: Kevin Buckley's "Beamforming: A Versatile approach to
spatial
> filtering" > > Question: > > Most of the beamforming techniques presented requires applying a
complex
> weight to the data(which is real). I am sure that there is a simple
way to
> do that but i can't get it right ( i am trying with the simple
narrowband
> case first). Can anyone help me?
You are implementing this on a DSP processor, so I guess you want a real-time implementation? If off-line batch processing suffices, take the time series and Fourier transform them from time to frequency. What you end up with, is a set of narrow-band vectors for each frequency bin, as function of range. You could apply your beamformer to one or more of the (w,x) vectors. In a real-time application, try quadrature sampling of the sensor channels. It ought to do the trick. Rune
>You are implementing this on a DSP processor, so I guess you want >a real-time implementation? > >In a real-time application, try quadrature sampling of the sensor >channels. It ought to do the trick. > >Rune
Thanks for the feedback. Could you elaborate on the quadrature sampling please? So if x(n) is my data sequence and my weights are I+jQ, and my signal frequency is wo. Then my output after the weight is x(n)*sin(n*wo)*I +x(n)*cos(n*wo)*Q? Thanks for all the help - Vik This message was sent using the Comp.DSP web interface on www.DSPRelated.com
"northernlights" <vikrham@yahoo.com> wrote in message 
news:PISdnY6xwKeqOg3fRVn-2g@giganews.com...
> Hi, > > I am very inexperienced in the area of beamforming and applied DSP. I was > wondering if you can help with some basic questions. > > Application: Implement a broadband beamformer for acoustic interference > cancellaion on TI chip. > Reference: Kevin Buckley's "Beamforming: A Versatile approach to spatial > filtering" > > Question: >> Most of the beamforming techniques presented requires applying a complex > weight to the data(which is real). I am sure that there is a simple way to > do that but i can't get it right ( i am trying with the simple narrowband > case first). Can anyone help me? > >> For the constrained LCMV with GSC. Can you tell me if it for broadband > signal? > > Thanks a lot for the help. > > - Vik
Consider this: 1) Normally beam patterns are defined at a single frequency. In fact, *a* beam pattern can *only* be defined at a single frequency. Then, if you wish, you can compute beam patterns at a number of frequencies. 2) Let's take the case of a line array of receiver elements. Let's say they are equally spaced along the line. 3) If the elements aren't weighted, then we get a sinx/x beam pattern that's maximum normal to the line ("broadside") - like the line runs through the center of a donut and the donut is the beam pattern. 3a) If the elements are weighted, then we get a beam pattern that remains normal to the line but with modified sidelobes. 4) If we want to steer the beam, we can delay the outputs of the elements in a linear fashion: To steer 45 degrees to the right of broadside we delay the element at the right end of the line so that the signal coming out will be as if the array had been rotated 45 degree to the right around the left end. Ditto for all the other elements until the left-most element isn't delayed at all. There is nothing immediately "complex" about the delays, is there? 5) Complex weights refer to doing both real weighting as in 3a and phase shifting (delaying) as in 4 combined. So, you can steer the beam and manipulate the sidelobe levels or the entire beam pattern. Fred
northernlights wrote:
> >You are implementing this on a DSP processor, so I guess you want > >a real-time implementation? > > > >In a real-time application, try quadrature sampling of the sensor > >channels. It ought to do the trick. > > > >Rune > > Thanks for the feedback. Could you elaborate on the quadrature
sampling
> please? > > So if x(n) is my data sequence and my weights are I+jQ, and my signal > frequency is wo. Then my output after the weight is x(n)*sin(n*wo)*I > +x(n)*cos(n*wo)*Q?
After quadrature sampling you have a complex-valued signal x'(n) = x_i(n) + j*x_q(n) Multiply this with the beamformer coefficients, and you should be OK. Rune
Fred Marshall wrote:
> "northernlights" <vikrham@yahoo.com> wrote in message > news:PISdnY6xwKeqOg3fRVn-2g@giganews.com... > > Hi, > > > > I am very inexperienced in the area of beamforming and applied DSP.
I was
> > wondering if you can help with some basic questions. > > > > Application: Implement a broadband beamformer for acoustic
interference
> > cancellaion on TI chip. > > Reference: Kevin Buckley's "Beamforming: A Versatile approach to
spatial
> > filtering" > > > > Question: > >> Most of the beamforming techniques presented requires applying a
complex
> > weight to the data(which is real). I am sure that there is a simple
way to
> > do that but i can't get it right ( i am trying with the simple
narrowband
> > case first). Can anyone help me? > > > >> For the constrained LCMV with GSC. Can you tell me if it for
broadband
> > signal? > > > > Thanks a lot for the help. > > > > - Vik > > Consider this: > > 1) Normally beam patterns are defined at a single frequency. In
fact, *a*
> beam pattern can *only* be defined at a single frequency. Then, if
you
> wish, you can compute beam patterns at a number of frequencies.
Agreed.
> 2) Let's take the case of a line array of receiver elements. Let's
say they
> are equally spaced along the line.
The Uniform Linear Array, ULA.
> 3) If the elements aren't weighted, then we get a sinx/x beam pattern
that's
> maximum normal to the line ("broadside") - like the line runs through
the
> center of a donut and the donut is the beam pattern.
Agreed.
> 3a) If the elements are weighted, then we get a beam pattern that
remains
> normal to the line but with modified sidelobes.
Eh... I'm not sure I follow you. Consider the (borderline) case of the ULA with element distance lambda/2, lambda being the wavelength of the monochromatic signal. Weigting the sensors along the array with +1 -1 +1 -1 ... over the length of the array ought to yeald an array with constructive interference along the axis, right? I know this configuration as an "endfire" array.
> 4) If we want to steer the beam, we can delay the outputs of the
elements in
> a linear fashion: > To steer 45 degrees to the right of broadside we delay the element at
the
> right end of the line so that the signal coming out will be as if the
array
> had been rotated 45 degree to the right around the left end. > Ditto for all the other elements until the left-most element isn't
delayed
> at all.
Conceptually, this is correct. However, I find it difficult to think in terms of physical delays when implementing such stuff on discrete-time systems. I would like to be able to have full freedom in my manipulations of the ebam pattern. If I think in terms of delays, I am restricted to the discrete delay steps offered by the discrete- time system.
> There is nothing immediately "complex" about the delays, is there?
Well, with the endfire array one doesn't know whether the signal arrived from this or that direction. Granted, part of the confusion is caused by the signal being sampled exactly at the Nyquist wavenumber, but part of the confusion is caused by the sinusoidal real-valued signal being represented by Euler's equations, 2cos(kx) = exp(jkx) + exp(-jkx) where the signs in the exponents refer to different directions of propagation. By imposing complex-valued weights, one can separate out one of the two directions.
> 5) Complex weights refer to doing both real weighting as in 3a and
phase
> shifting (delaying) as in 4 combined. So, you can steer the beam and
> manipulate the sidelobe levels or the entire beam pattern.
Agreed. Rune
>Hi, > >I am very inexperienced in the area of beamforming and applied DSP. I
was
>wondering if you can help with some basic questions. > >Application: Implement a broadband beamformer for acoustic interference >cancellaion on TI chip. >Reference: Kevin Buckley's "Beamforming: A Versatile approach to spatial >filtering" > >Question: >> Most of the beamforming techniques presented requires applying a
complex
>weight to the data(which is real). I am sure that there is a simple way
to
>do that but i can't get it right ( i am trying with the simple
narrowband
>case first). Can anyone help me? > >> For the constrained LCMV with GSC. Can you tell me if it for broadband >signal? > >Thanks a lot for the help. > >- Vik > > > >This message was sent using the Comp.DSP web interface on >www.DSPRelated.com >
Hi Vik, If you have one receiver receiving a real data then we can assume the signal is real i guess. but when we have multiple receivers for beamforming then we can not model the received signals as real because of the phase differences between the receivers. so for multiple receiver systems even if the signals are real independently they are complex when they perform as an array. I hope this helps about your confusion. Ozgur
tamero wrote:
>>Hi, >> >>I am very inexperienced in the area of beamforming and applied DSP. I > > was > >>wondering if you can help with some basic questions. >> >>Application: Implement a broadband beamformer for acoustic interference >>cancellaion on TI chip. >>Reference: Kevin Buckley's "Beamforming: A Versatile approach to spatial >>filtering" >> >>Question: >> >>>Most of the beamforming techniques presented requires applying a > > complex > >>weight to the data(which is real). I am sure that there is a simple way > > to > >>do that but i can't get it right ( i am trying with the simple > > narrowband > >>case first). Can anyone help me? >> >> >>>For the constrained LCMV with GSC. Can you tell me if it for broadband >> >>signal? >> >>Thanks a lot for the help. >> >>- Vik >> >> >> >>This message was sent using the Comp.DSP web interface on >>www.DSPRelated.com >> > > > Hi Vik, > If you have one receiver receiving a real data then we can assume the > signal is real i guess. but when we have multiple receivers for > beamforming then we can not model the received signals as real because of > the phase differences between the receivers. so for multiple receiver > systems even if the signals are real independently they are complex when > they perform as an array. I hope this helps about your confusion. > Ozgur > >
When you have complex weights, the beamformer is "narrowband". The delay is a phase shift which is achieved my multiplication of complex number. For practial purposes this means that your in the frequency domain, i.e. your beamforming at the output of a DFT bin.