Forums

phase shift beamforming

Started by abraham007 April 27, 2012
Hi every one

I am doing work on narrow band phase shift beamforming (frequency domain)
and after doing various simulations, i decided to varify beamformer
practically. I was able to get data from an acoustic  linear array of 24
elements spaced 0.17m apart. The omni directional source was placed at
various bearings w.r.t linear array and was transmitting 4.4KHz CW pulses
of 200ms duration . The linear array sensors were simulataneously sampled
at 48 Ksamp/s/channel. Both linear array and source were deployed at 5-6m
depth whereas total average bottom depth at trial locatin was 12m. The
distance b/w array and source was approx. 700m.   

The problem i face is that beamformer shows peaks of nearly equal strength
at two or more well separated bearings (at approximately same range)
instead of one(where actual source was located). I dont know whether
problem is with my beamformer or with array data or with environmental
conditions (multipaths or reflections from surface/bottom due to lesser
depths)

If some one has done work on narrow band phase shift beam forming and is
kind enough to help me, he may contact me on
email(abrahamnick73@yahoo.com)
to get array data (as i don't know how to attach it here in this post),
process the data and send me results in form of time vs bearing  plot so
that i can compare it with mine and reach some conclusion.

Thanks

Best Regards
On 4/27/2012 2:05 AM, abraham007 wrote:
> Hi every one > > I am doing work on narrow band phase shift beamforming (frequency domain) > and after doing various simulations, i decided to varify beamformer > practically. I was able to get data from an acoustic linear array of 24 > elements spaced 0.17m apart. The omni directional source was placed at > various bearings w.r.t linear array and was transmitting 4.4KHz CW pulses > of 200ms duration . The linear array sensors were simulataneously sampled > at 48 Ksamp/s/channel. Both linear array and source were deployed at 5-6m > depth whereas total average bottom depth at trial locatin was 12m. The > distance b/w array and source was approx. 700m. > > The problem i face is that beamformer shows peaks of nearly equal strength > at two or more well separated bearings (at approximately same range) > instead of one(where actual source was located). I dont know whether > problem is with my beamformer or with array data or with environmental > conditions (multipaths or reflections from surface/bottom due to lesser > depths) > > If some one has done work on narrow band phase shift beam forming and is > kind enough to help me, he may contact me on > email(abrahamnick73@yahoo.com) > to get array data (as i don't know how to attach it here in this post), > process the data and send me results in form of time vs bearing plot so > that i can compare it with mine and reach some conclusion. > > Thanks > > Best Regards
Best, So far it sounds reasonable. At least based on a quick look. The endfire delay between elements is 1/2 wavelength. So, 1/2 wavelength delays (i.e. phase shift) should give endfire beams and zero delay, broadside. The geometry suggests cylindrical spreading so that will have an affect but not in azimuth unless the bottom isn't level. Worst-case there will be 3 paths: direct, surface and bottom reflections. The path difference for the reflected paths vs. the direct will be roughly 1/3 wavelength? So the composite waveform likely won't be cancelled. Of course, the beams are symmetrical around the array no matter how you steer the beams. This means that you will have ambiguity between right-of-online and left-of-online. That is a source at 45 degrees off broadside will also show up at 315 degrees off broadside. And a source at 0 degress off broadside will also show at 180 degrees off broadside. Is that what you're seeing? Otherwise perhaps the implementation of the transforms and phase shifts must be off. Fred
Thanks for help.

>Of course, the beams are symmetrical around the array no matter how you >steer the beams. This means that you will have ambiguity between >right-of-online and left-of-online. That is a source at 45 degrees off >broadside will also show up at 315 degrees off broadside. And a source >at 0 degress off broadside will also show at 180 degrees off broadside. > Is that what you're seeing?
No, left-right ambiguity problem of linear array is not issue here as multiple bearing peaks for single target appear within +90 -0- -90 region e.g. if one peak appear at +45 deg then a peak of nearly equal strength will also be shown at -60 deg. Best Regards
>Thanks for help. > >>Of course, the beams are symmetrical around the array no matter how you >>steer the beams. This means that you will have ambiguity between >>right-of-online and left-of-online. That is a source at 45 degrees off >>broadside will also show up at 315 degrees off broadside. And a source
>>at 0 degress off broadside will also show at 180 degrees off broadside. >> Is that what you're seeing? > >No, left-right ambiguity problem of linear array is not issue here as >multiple bearing peaks for single target appear within +90 -0- -90 region >e.g. if one peak appear at +45 deg then a peak of nearly equal strength >will also be shown at -60 deg. > >Best Regards > >
Hi everyone No body interested to help me more??? Best Regards
On 5/19/12 11:51 AM, abraham007 wrote:
> > No body interested to help me more??? >
it seems that Fred was able to read more between the lines and me. i am not sure what this is, *acoustic* beamforming? i sorta assumed so with "4.4KHz" and 48 kHz Fs. are the elements loudspeakers? or is this ultrasonic? assuming it's acoustic and in the human hearing range, 17 cm spacing seems pretty tight. is that because the transducers (whatever they are) are 16 or 17 cm in diameter? i only know what i have read in the AES journals and some from ASA and the little i had in the topic in college (which included some beamforming in antenna theory which had much of the same issues, the frequencies and wavespeed were a little higher). can you spell out a little more clearly what you are doing, what you want to accomplish, and such? maybe i might be able to understand better. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
On 5/19/2012 8:51 AM, abraham007 wrote:
>> Thanks for help. >> >>> Of course, the beams are symmetrical around the array no matter how you >>> steer the beams. This means that you will have ambiguity between >>> right-of-online and left-of-online. That is a source at 45 degrees off >>> broadside will also show up at 315 degrees off broadside. And a source > >>> at 0 degress off broadside will also show at 180 degrees off broadside. >>> Is that what you're seeing? >> >> No, left-right ambiguity problem of linear array is not issue here as >> multiple bearing peaks for single target appear within +90 -0- -90 region >> e.g. if one peak appear at +45 deg then a peak of nearly equal strength >> will also be shown at -60 deg. >> >> Best Regards >> >> > Hi everyone > > No body interested to help me more??? > > Best Regards
I said: "Otherwise perhaps the implementation of the transforms and phase shifts must be off." But you've not done anything to illuminate on those matters. So, I figured you were off working on that. Fred
>"Otherwise perhaps the implementation of the transforms and phase shifts >must be off." >
Thanks for reply. I have checked the processing (FFT & phase shiftting) on simulated data( where sensor data is simulated with a target at known bearing) and is working fine. Here is MATLAB of what i am doing c=1500; f=4400; %Array cut frequency (Hz) lemda=c/f; d=lemda/2; k=2*pi*d/c; samp_f=48000; samp_t=1/samp_f; no_of_sens=24; no_of_beams=180; %Frequency vector calculation frq_vec=zeros(1,fft_points/2); for v=1:fft_points/2 frq_vec(v)=v/(samp_t*fft_points); end %Angles at which beams are formed m=-no_of_beams/2:1:no_of_beams/2; ang_vec=asin(m*c/(f*no_of_beams*d))*180/pi;% -90 to +90 degree %The process below is repeated for required no of data chunks % dat_matrix 24 by 9600 (24 channels each having 9600 samples i.e. 200ms % data) for chunks2 = 1:20 for jj=1:no_of_sens dimm=fread(fid,new_chunk_siz,'float');%read 9600 samples of one channel dat_matrix(jj,:)=dimm( 1:new_chunk_siz); end for i = 1:no_of_sens fft_matrix(i,:) = fft(dat_matrix(i,:),fft_points);%Taking FFT of each sensor data end gg=0; for fq=870:890 %frequency indexes corresponding to 4350 - 4450Hz gg=gg+1;%frequency index variable ddd=0; for ang=1:no_of_beams %for beams temp=0; ddd=ddd+1; %beam index variable for sens=1:no_of_sens %for sensor 1:24 frq=frq_vec(fq); phase_vec=exp(-sqrt(-1)*k*frq*(sens-1)*sin(ang_vec(ddd)*pi/180)); temp = temp + fft_matrix(sens,fq).*phase_vec;% end BF_out(ang,gg)=temp;%Beamformer output (complex)at an angle and frequency BF_out_pow(ang,gg)=temp.*conj(temp);%Beamformer output (power)at an angle and frequency end end for angl=1:no_of_beams BF_FS(angl,chunks2)=sum((BF_out_pow(angl,:))); % end end
Hi all

No comments about the code?

Best Regards
On 5/30/12 11:24 PM, abraham007 wrote:
> Hi all > > No comments about the code? >
i'm not plowing through it. and i'm no expert on beamforming, but i know what it is and long ago i had a course in antenna theory (coincidently using the Kraus book). i think you need to break your problem and question into smaller parts and struggle with each part. maybe you can get someone here to help you struggle with a smaller part. -- r b-j rbj@audioimagination.com "Imagination is more important than knowledge."
  maybe you can get someone here to help you 
>struggle with a smaller part.
Hi all Here i just need to know that i am implementing Narrow Band Phase Shift beamformer correctly. In this code first i take FFT of each sensor's chunk data. Next i make a frequency vector by picking frequency bin of interest from each sensor's FFT output(complex) Then for each bearing (covering -90 to 90 deg) i multiply frequency vector with a Phase Vector i.e. exp(-j*(2*pi*d/c)*frq*sin(angle)) and sum the result to make beamformer output at each desired bearing. The above procedure is repeated for next chunks of data Let me know if i am doing something wrong here. Thanks Best Regards