beamforming
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
beamforming

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP
Author Message
Tobin Fricke
Guest





Posted: Wed Apr 06, 2005 7:21 pm    Post subject: beamforming Reply with quote

I am interested in learning how to do beamforming using quadrature
sampling and/or frequency-domain processing.

A few years ago I implemented a small beamformer that operated completely
in the time domain. This was for seismic array processing; the beamformer
combined signals for spatially separated sensors. The 'best beam' was
found by simply trying all wavevectors on a two-dimensional grid,
computing the resulting beam (delay-and-summed) signal, computing the
power of each of these signals, and plotting the resulting signals on the
wavevector grid. Seismologists sometimes call the whole process "slant
stacking". This whole process was repeated over successive windows of the
timeseries.

I understand that there is probably a much better way to do this. I'm
told that I can represent my signals in a "complex baseband"
representation by doing quadrature sampling, making a complex signal with
I and Q components, and then I will be able to perform the "delay"
operation by multiplying by an appropriate phasor. I'm not sure this is
exactly right. Another detail is that I would have to generate the
quadrature signals from the pre-existing time series, maybe by calling the
even-numbered samples "I" and the odd-numbered samples "Q"?

I want to generate the 'picture' of beam power versus wave vector -- is
there a better way to do this other than selecting wave vectors and
computing the resulting beam power, and plotting the results? i.e. I
imagine there might be a way to do this in one powerful step in the
frequency domain. Here's an example of the sort of 'picture' I have in
mind, although it's not the best plot:

http://splorg.org:8080/people/tobin/projects/alaska/work/tap_output.gif

Any hints, references, etc, appreciated.

thanks,
Tobin

http://web.pas.rochester.edu/~tobin/
Back to top
Rune Allnor
Guest





Posted: Thu Apr 07, 2005 9:37 am    Post subject: Re: beamforming Reply with quote

Tobin Fricke wrote:
Quote:
I am interested in learning how to do beamforming using quadrature
sampling and/or frequency-domain processing.

A few years ago I implemented a small beamformer that operated
completely
in the time domain. This was for seismic array processing; the
beamformer
combined signals for spatially separated sensors. The 'best beam'
was
found by simply trying all wavevectors on a two-dimensional grid,
computing the resulting beam (delay-and-summed) signal, computing the

power of each of these signals, and plotting the resulting signals on
the
wavevector grid. Seismologists sometimes call the whole process
"slant
stacking". This whole process was repeated over successive windows
of the
timeseries.

Yep. You have described the "brute force approach" to beamforming.

Quote:
I understand that there is probably a much better way to do this.
I'm
told that I can represent my signals in a "complex baseband"
representation by doing quadrature sampling, making a complex signal
with
I and Q components, and then I will be able to perform the "delay"
operation by multiplying by an appropriate phasor. I'm not sure this
is
exactly right.

I don't think it's quite that easy. The time delay corresponds to
a phasor for monochromatic (narrow-band) signals. In marine seismics,
signals are usually broadband. With boroad-band data, you would have
to Fourier tranform your time series and apply a phasor to each
frequency bin.

Quote:
Another detail is that I would have to generate the
quadrature signals from the pre-existing time series, maybe by
calling the
even-numbered samples "I" and the odd-numbered samples "Q"?

You would have to apply some sort of Hilbert transform. With seismic
data
that is processed off-line, that's easy. In matlab:

X=fft(x); % x is N x 1 time series
N=length(X);
N2=floor(N/2);
xiq=ifft(X(1:N2),N);

Here, xiq is the quadrature sampled time series. You can check that

eps=max(abs(2*real(xiq)-x))

is a vanishing number.

Quote:
I want to generate the 'picture' of beam power versus wave vector --
is
there a better way to do this other than selecting wave vectors and
computing the resulting beam power, and plotting the results? i.e. I

imagine there might be a way to do this in one powerful step in the
frequency domain. Here's an example of the sort of 'picture' I have
in
mind, although it's not the best plot:

You might be able to achieve this by some sort of Fourier transform.
Note that this requires the sampling parameters, both in time and
space,
to be regular. If they are not, or if you need to watch certain
areas of your plot very closely, the FFT approach might not work.

Quote:
Any hints, references, etc, appreciated.

Rune
Back to top
dohm
Guest





Posted: Thu Apr 07, 2005 3:28 pm    Post subject: Re: beamforming Reply with quote

Quote:
I am interested in learning how to do beamforming using quadrature
sampling and/or frequency-domain processing.

A few years ago I implemented a small beamformer that operated completel

in the time domain. This was for seismic array processing; th
beamformer
combined signals for spatially separated sensors. The 'best beam' was
found by simply trying all wavevectors on a two-dimensional grid,
computing the resulting beam (delay-and-summed) signal, computing the
power of each of these signals, and plotting the resulting signals on th

wavevector grid. Seismologists sometimes call the whole process "slant
stacking". This whole process was repeated over successive windows o
the
timeseries.

I understand that there is probably a much better way to do this. I'm
told that I can represent my signals in a "complex baseband"
representation by doing quadrature sampling, making a complex signal wit

I and Q components, and then I will be able to perform the "delay"
operation by multiplying by an appropriate phasor. I'm not sure this i

exactly right. Another detail is that I would have to generate the
quadrature signals from the pre-existing time series, maybe by callin
the
even-numbered samples "I" and the odd-numbered samples "Q"?

I want to generate the 'picture' of beam power versus wave vector -- is
there a better way to do this other than selecting wave vectors and
computing the resulting beam power, and plotting the results? i.e. I
imagine there might be a way to do this in one powerful step in the
frequency domain. Here's an example of the sort of 'picture' I have in
mind, although it's not the best plot:

http://splorg.org:8080/people/tobin/projects/alaska/work/tap_output.gif

Any hints, references, etc, appreciated.

thanks,
Tobin

http://web.pas.rochester.edu/~tobin/



Depending on how far you want to explore beamforming methods I woul
suggest looking into techniques for sonar and acoustical array processing
Using real array data you can do Bearing-Time Grams (time domain techniqu
using interpolation delay-and-sum), Conventional Beamforming (CBF
Bearing-Frequency Grams (narrowband assumption using FFT), Minimu
Variance Distortionless Response (MVDR) Beamformer Bearing-Frequency Gram
(narrowband assumption), and Adaptive Beamforming, etc. There are man
other variations and techniques but this covers the basics. Let me kno
if you are interested in anything specific and I can share some matla
code to get you started.

What really gets interesting is dealing with wide-band signal
(acoustical, etc.) Although you can make a narrowband assumption and ge
some work done, it becomes difficult when dealing with multiple source
and poor SNR. The following introductory paper and book may be o
interest to you also:

"Beamforming: A Versatile Approach to Spatial Filtering", Van Veen an
Buckley, IEEE ASSP Magazine April 1988

"Statistical and Adaptive Signal Processing", Manolakis, Ingle, Kogon

P.S. Make sure you use the errata with the Manolakis book. It has som
good stuff on beamforming but it is full of mathematical errors.

I hope this helps. Have fun!

Dave Ohm
Research Engineer
Vexcel Corporation







This message was sent using the Comp.DSP web interface o
www.DSPRelated.com
Back to top
David Kirkland
Guest





Posted: Sat Apr 09, 2005 1:34 pm    Post subject: Re: beamforming Reply with quote

Tobin Fricke wrote:
Quote:
I am interested in learning how to do beamforming using quadrature
sampling and/or frequency-domain processing.

A few years ago I implemented a small beamformer that operated
completely in the time domain. This was for seismic array processing;
the beamformer combined signals for spatially separated sensors. The
'best beam' was found by simply trying all wavevectors on a
two-dimensional grid, computing the resulting beam (delay-and-summed)
signal, computing the power of each of these signals, and plotting the
resulting signals on the wavevector grid. Seismologists sometimes call
the whole process "slant stacking". This whole process was repeated
over successive windows of the timeseries.

I understand that there is probably a much better way to do this. I'm
told that I can represent my signals in a "complex baseband"
representation by doing quadrature sampling, making a complex signal
with I and Q components, and then I will be able to perform the "delay"
operation by multiplying by an appropriate phasor. I'm not sure this is
exactly right. Another detail is that I would have to generate the
quadrature signals from the pre-existing time series, maybe by calling
the even-numbered samples "I" and the odd-numbered samples "Q"?

I want to generate the 'picture' of beam power versus wave vector -- is
there a better way to do this other than selecting wave vectors and
computing the resulting beam power, and plotting the results? i.e. I
imagine there might be a way to do this in one powerful step in the
frequency domain. Here's an example of the sort of 'picture' I have in
mind, although it's not the best plot:

http://splorg.org:8080/people/tobin/projects/alaska/work/tap_output.gif

Any hints, references, etc, appreciated.

thanks,
Tobin

http://web.pas.rochester.edu/~tobin/


By beamforming at one frequency you're basically doing NB beamforming.
How you perform on BB signals will depend on the array geometry, and
frequencies you are using.

Another alternative is to time domain beamform on the I & Q signals.
This is exactly the same as before except you must also compensate with
an (complex) exponential multiply for the phase shift for the original
carrier frequency.

Cheers,
David
Back to top
Tobin Fricke
Guest





Posted: Sat Apr 16, 2005 6:30 am    Post subject: Re: beamforming Reply with quote

Quote:
Another alternative is to time domain beamform on the I & Q signals.
This is exactly the same as before except you must also compensate with
an (complex) exponential multiply for the phase shift for the original
carrier frequency.

Is there an advantage to doing this, if I don't already have the I & Q
signals?

Tobin
Back to top
See



Joined: 24 Apr 2006
Posts: 1

Posted: Mon Apr 24, 2006 8:25 am    Post subject: Beamforming simulation with different number of transducers Reply with quote

Hi,

I am looking for a matlab code to do the above.

I have write the beamforming simulation matlab script below. However i don't know if it is correct. You may help to check for me.

clc

f = 45e3;
N = 4;
c = 340; %Speed of sound in air
lamda = c/f;
d = lamda/2;

%delay=9e-6;
%i=1/sin((c*delay)/d);

theta = linspace (-pi/2, pi/2, 1000); %Range

x1 = (N*d*pi*f)/c;
x2= (d*pi*f)/c;

P = ((sin(x1*sin(theta)))/(N*sin(x2*sin(theta))));

%P = P*N/max(P);
%polar(,p*cos((pi/2)-theta),'-r');
%xlabel('\theta')
%ylabel('P(\theta)')
%figure(2)

polar(P.*cos((pi/2)-theta), P.*sin((pi/2)-theta),'-r')

%polar(theta,P,'-g')
%title (sprintf('Frequency = %d, No.of Transducer = %d, Distance = %d',f,N,d));
%axis([-4 4 0 4])


I would like to know if the following equation is correct for beamforming simulation?

Q(theta) = [sin{(N*pi*d/lamda)*(sin(theta)-sin(theta0)}/ N*sin{(pi*d/lamda))*(sin(theta)-sin(theta0)]

whereby (theta0=sin^-1(c*delay/d), lamda=c/f, d=lamda/2)

Please advise. Thanks.
email:alf21@starhub.net.sg
Back to top
View user's profile Send private message
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> DSP All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB