# Applying complex weight to real data for beamforming!

Started by 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
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

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
>
> 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
> > 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
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