Reply by abraham007 June 26, 20122012-06-26
>On 5/19/2012 8:51 AM, abraham007 wrote: > >The diagram at the top of page 20 is the method that I referred to: >
Thanks Fred. I referred to Fig 1.18 at page 22. The only difference is that Narrow band filter and quadrature sampling is replaced by FFT of each sensor data and then selection of desired frequency bin( i think equivalent to Narrow band filtration)
Reply by Fred Marshall June 22, 20122012-06-22
On 5/19/2012 8:51 AM, abraham007 wrote:

The diagram at the top of page 20 is the method that I referred to:

Google on:

Simulation of Beamforming Techniques for the Linear Array of 
Transducers. Grant Hampson, Student Member, IEEE. Andrew Paplinski ...

Fred

Reply by Fred Marshall June 18, 20122012-06-18
On 6/17/2012 8:32 PM, abraham007 wrote:
> but in this case we came across acoustic& non-acoustic > regions (as frequency dependency is not corp orated in steering vector) > which needed to be separated for proper output.
I didn't follow that... particularly the "acoustic and non-acoustic regions" ... ???? Fred
Reply by abraham007 June 18, 20122012-06-18

> >If you do the FFT on each sensor output you get an element spectrum. >Then if you do a weighted sum of the sensors at each frequency, you can >form beams. In this case the weights might also be formulated to use an >FFT algorithm but I'm sure that the kernel would not be the same >"steering vector" as above.
Yes, you are right. We can formulate the weights so that they can be implemented using another FFT (i.e. spatial-FFT along the sensors (FFT of 1x24 vector)) but in this case we came across acoustic & non-acoustic regions (as frequency dependency is not corp orated in steering vector) which needed to be separated for proper output.
Reply by Fred Marshall June 17, 20122012-06-17
On 6/17/2012 12:07 AM, abraham007 wrote:
>> Is that what you're doing? I ask because the first transform does not >> have "frequency bins" as you mention. >> > To explain with an example, I collect 1024 samples (data chunk) of each 24 > sensors to make a matrix of 24 X 1024. > > Now I take FFT of each row of that matrix i.e. 1024 point FFT of each > sensor data giving me again 32 X 1024 matrix but now each sensor’s data > is converted into frequency domain and for each sensor, 1024 points > represent “1024 frequency bins” out of which 512 bins represent > positive frequencies. > > Now from each sensor’s freq domain data, I selected the only ‘ > frequency bin’ representing the transmitted frequency (in my case it was > 4400Hz) and make a new vector of size 1 X 24. > > After this, for each 180 bearings (covering -90 deg to +90 deg), I > multiplied the above vector (1 X 24) with steering vector defined by “ > exp(-j*(2*pi*d/c)*4400*sin(bearing)) “ and sum the result. That is how I > got a Narrow band Phase shift beam former output of size 1 X 180. > > The above steps are repeated for next 1024 samples of each sensor data and > again a beam former output of 1 X 180 is obtained. > > This procedure is repeated for finite no of data chunks. >
I you do the phase shift transform first (approximating time delays) then you get beam outputs. And, I would call the kernel of this transform of spatial data a "steering vector". A sequence of some number of these gives you temporal beam outputs. Actually the samples at each instant in time are in wave number space. Then if you do an FFT on each beam output over some temporal window, you get a beam spectrum. If you do the FFT on each sensor output you get an element spectrum. Then if you do a weighted sum of the sensors at each frequency, you can form beams. In this case the weights might also be formulated to use an FFT algorithm but I'm sure that the kernel would not be the same "steering vector" as above. Perhaps it's an advantage to have the phase changes able to be frequency dependent here but I've not formulated it. I believe 24 sensors, equally spaced, suggest an aperture of not more than 12 wavelengths in order to meet the spatial version of the Nyquist criterion. I think this means beam widths of not less than around 4 degrees. So, computing 1 degree beams seems overkill. But take all this with some caution because I've not worked it out. Fred
Reply by abraham007 June 17, 20122012-06-17
>Is that what you're doing? I ask because the first transform does not >have "frequency bins" as you mention. >
To explain with an example, I collect 1024 samples (data chunk) of each 24 sensors to make a matrix of 24 X 1024. Now I take FFT of each row of that matrix i.e. 1024 point FFT of each sensor data giving me again 32 X 1024 matrix but now each sensor’s data is converted into frequency domain and for each sensor, 1024 points represent “1024 frequency bins” out of which 512 bins represent positive frequencies. Now from each sensor’s freq domain data, I selected the only ‘ frequency bin’ representing the transmitted frequency (in my case it was 4400Hz) and make a new vector of size 1 X 24. After this, for each 180 bearings (covering -90 deg to +90 deg), I multiplied the above vector (1 X 24) with steering vector defined by “ exp(-j*(2*pi*d/c)*4400*sin(bearing)) “ and sum the result. That is how I got a Narrow band Phase shift beam former output of size 1 X 180. The above steps are repeated for next 1024 samples of each sensor data and again a beam former output of 1 X 180 is obtained. This procedure is repeated for finite no of data chunks.
Reply by Fred Marshall June 10, 20122012-06-10
On 6/10/2012 9:00 AM, abraham007 wrote:
>> Heloooo?
Heloooo? indeed! Any response to my last post? Fred
Reply by abraham007 June 10, 20122012-06-10
>Heloooo?
Reply by Fred Marshall June 2, 20122012-06-02
On 6/2/2012 12:39 AM, abraham007 wrote:
> 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
Hmmm.... without getting too detailed, I think it should go like this: 1) you grab all the "M" sensor outputs at the same time. The elements sample in space .. along the array .. and you are taking those space samples at one instant in time. 2) you perform a Discrete Fourier Transform of length "M" on these samples. I do believe this is where the phase vector comes in - in the kernel of the transform. This converts the samples into a sequence of length "M" in *wave number* space. That is, each sample corresponds to a beam steering angle. In other words, what you want to do is delay the sensor samples in time or shift their phase in space so that each beam can be formed using summation. A single sample of a beam output is a summation of phase shifted set of element samples. A single sample of the next beam output has different phases, etc. So, the DFT is a natural mechanism for performing this summation - you have to use the right kernel. Let us call this a row of wave number samples taken at one time - in what will become a matrix of transform sequences. The rows happen at a selected intervals of time (the time sampling interval) and the columns represent wave numbers / beams. 3) once the matrix has N rows then you do a Discrete Fourier Transform on N elements of each of the columns. Since the columns are in time space, then the transforms are the familiar DFT going from time to frequency space and you likely know what the kernel is in that one! There is a frequency transform resulting for each column / beam that you transform. If you transform the entire matrix column by column then you get frequency columns of N samples in the resulting NxM matrix. That is, a spectral measure for each beam. Is that what you're doing? I ask because the first transform does not have "frequency bins" as you mention. Fred
Reply by abraham007 June 2, 20122012-06-02
  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