DSPRelated.com
Forums

Sound Localization using Sound Amplitude

Started by jigajigajoo July 8, 2011

"Fred Marshall"  wrote in message 
news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com...

On 7/11/2011 7:15 AM, Clay wrote:

> > > Hello Fred, > > > You can take 2 different sets of data for the same signal where the > only essential difference is the time delay and frequency offset and > then do a frequency domain approach to the TDOA. For example find the > DFT of each signal. Then conjugate one of the signals and then form a > sample by sample inner product between the two. The find the argument > of each resulting sample. When plotted (argument vs sample(frequency > bin) you will get a straight line whose slope is the time offset and > intercept is the frequency offset. Notice how the TDOA and the > frequency offset get separated out in the analysis - I found this > quite useful in RF applications when I didn't have to worry about > carrier and doppler frequency offsets. You can even weight the > samples by their spectral power before doing the regression fit. > > This is basically doing TDOA autocorrelation via FFT except for the > converting back to the time domain and peak search. > > > Clay > > >
Ah! OK. Thanks Clay. Fred Hi, The approach we used was somewhat different, but probably isomorphic. We FFTed each channel, summed the magnitude squared then selected peak frequencies, then took the phase difference at a given peak between one channel and each of the others. From that information and the geometry of the array, we were able to determine the DOA of the signal at that frequency. Best wishes, --Phil
On Mon, 11 Jul 2011 20:34:11 -0400, "Phil Martel"
<pomartel@comcast.net> wrote:

> > >"Fred Marshall" wrote in message >news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > >On 7/11/2011 7:15 AM, Clay wrote: > >> >> >> Hello Fred, >> >> >> You can take 2 different sets of data for the same signal where the >> only essential difference is the time delay and frequency offset and >> then do a frequency domain approach to the TDOA. For example find the >> DFT of each signal. Then conjugate one of the signals and then form a >> sample by sample inner product between the two. The find the argument >> of each resulting sample. When plotted (argument vs sample(frequency >> bin) you will get a straight line whose slope is the time offset and >> intercept is the frequency offset. Notice how the TDOA and the >> frequency offset get separated out in the analysis - I found this >> quite useful in RF applications when I didn't have to worry about >> carrier and doppler frequency offsets. You can even weight the >> samples by their spectral power before doing the regression fit. >> >> This is basically doing TDOA autocorrelation via FFT except for the >> converting back to the time domain and peak search. >> >> >> Clay >> >> >> > >Ah! OK. Thanks Clay. > >Fred > >Hi, > >The approach we used was somewhat different, but probably isomorphic. >We FFTed each channel, summed the magnitude squared then selected peak >frequencies, >then took the phase difference at a given peak between one channel and each >of the others. >From that information and the geometry of the array, we were able to >determine the DOA of the signal at that frequency. > > Best wishes, > --Phil >
How well did that work? I've been thinking of using a very similar technique for a slightly different application. Eric Jacobsen http://www.ericjacobsen.org http://www.dsprelated.com/blogs-1//Eric_Jacobsen.php
On 7/11/2011 5:34 PM, Phil Martel wrote:
> > > "Fred Marshall" wrote in message > news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > > On 7/11/2011 7:15 AM, Clay wrote: > >> >> >> Hello Fred, >> >> >> You can take 2 different sets of data for the same signal where the >> only essential difference is the time delay and frequency offset and >> then do a frequency domain approach to the TDOA. For example find the >> DFT of each signal. Then conjugate one of the signals and then form a >> sample by sample inner product between the two. The find the argument >> of each resulting sample. When plotted (argument vs sample(frequency >> bin) you will get a straight line whose slope is the time offset and >> intercept is the frequency offset. Notice how the TDOA and the >> frequency offset get separated out in the analysis - I found this >> quite useful in RF applications when I didn't have to worry about >> carrier and doppler frequency offsets. You can even weight the >> samples by their spectral power before doing the regression fit. >> >> This is basically doing TDOA autocorrelation via FFT except for the >> converting back to the time domain and peak search. >> >> >> Clay >> >> >> > > Ah! OK. Thanks Clay. > > Fred > > Hi, > > The approach we used was somewhat different, but probably isomorphic. > We FFTed each channel, summed the magnitude squared then selected peak > frequencies, > then took the phase difference at a given peak between one channel and > each of the others. > From that information and the geometry of the array, we were able to > determine the DOA of the signal at that frequency. > > Best wishes, > --Phil
Are you saying that you compared phase at one frequency between arrays or are you saying that you compared phase at two or more *peak* frequencies between arrays? The latter would give me pause because phase varies with frequency of course. Fred
On Jul 8, 2:10&#4294967295;pm, "jigajigajoo" <jigajigajoo@n_o_s_p_a_m.gmail.com>
wrote:

> Also, why has no-one ever tried using amplitude analysis versus using > tdoa/fdoa for approximate sound localisation? It sounds like an obvious way > to do things...
Try and follow that idea through: What property of the amplitude will you use to deduce the DoA? How is the amplitude of a signal impigning from direction A different from the amplitudes of a signal impigning from direction B? Work that out first, before you start messing with hardware. Rune
On Jul 12, 3:05&#4294967295;am, eric.jacob...@ieee.org (Eric Jacobsen) wrote:
> On Mon, 11 Jul 2011 20:34:11 -0400, "Phil Martel"
> >The approach we used was somewhat different, but probably isomorphic. > >We FFTed each channel, summed the magnitude squared then selected peak > >frequencies, > >then took the phase difference at a given peak between one channel and each > >of the others. > >From that information and the geometry of the array, we were able to > >determine the DOA of the signal at that frequency. > > > &#4294967295; Best wishes, > > &#4294967295; --Phil > > How well did that work? &#4294967295; I've been thinking of using a very similar > technique for a slightly different application.
Except for craftmanship issues, this should work. This is a basic working principle for DoA estimators. Of course, there is a job to be done to pull this off, and depending on context, the system might be exposed to all sorts of non-compliance-with-assumption issues. But the starting point should be phase detection through cross correlation. Ah, and do work through the theory to check if / how the information of interest can be extracted from the data. Passive systems only provide a very limited scope of data analysis. Rune
On Jul 12, 5:08&#4294967295;am, Fred Marshall <fmarshallxremove_th...@acm.org>
wrote:
> On 7/11/2011 5:34 PM, Phil Martel wrote: > > > > > > > > > "Fred Marshall" wrote in message > >news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > > > On 7/11/2011 7:15 AM, Clay wrote: > > >> Hello Fred, > > >> You can take 2 different sets of data for the same signal where the > >> only essential difference is the time delay and frequency offset and > >> then do a frequency domain approach to the TDOA. For example find the > >> DFT of each signal. Then conjugate one of the signals and then form a > >> sample by sample inner product between the two. The find the argument > >> of each resulting sample. When plotted (argument vs sample(frequency > >> bin) you will get a straight line whose slope is the time offset and > >> intercept is the frequency offset. Notice how the TDOA and the > >> frequency offset get separated out in the analysis - I found this > >> quite useful in RF applications when I didn't have to worry about > >> carrier and doppler frequency offsets. You can even weight the > >> samples by their spectral power before doing the regression fit. > > >> This is basically doing TDOA autocorrelation via FFT except for the > >> converting back to the time domain and peak search. > > >> Clay > > > Ah! OK. Thanks Clay. > > > Fred > > > Hi, > > > The approach we used was somewhat different, but probably isomorphic. > > We FFTed each channel, summed the magnitude squared then selected peak > > frequencies, > > then took the phase difference at a given peak between one channel and > > each of the others. > > &#4294967295;From that information and the geometry of the array, we were able to > > determine the DOA of the signal at that frequency. > > > Best wishes, > > --Phil > > Are you saying that you compared phase at one frequency between arrays > or > are you saying that you compared phase at two or more *peak* frequencies > between arrays? > > The latter would give me pause because phase varies with frequency of > course.
*Both* seem fishy to me, unless you can somehow justify the assumption of narrow-band sources. With a broad-band source, you have a somewhat more complicated task ahead. Rune
On 7/11/2011 10:22 PM, Rune Allnor wrote:
> On Jul 12, 5:08 am, Fred Marshall<fmarshallxremove_th...@acm.org> > wrote: >> On 7/11/2011 5:34 PM, Phil Martel wrote: >> >> >> >> >> >> >> >>> "Fred Marshall" wrote in message >>> news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... >> >>> On 7/11/2011 7:15 AM, Clay wrote: >> >>>> Hello Fred, >> >>>> You can take 2 different sets of data for the same signal where the >>>> only essential difference is the time delay and frequency offset and >>>> then do a frequency domain approach to the TDOA. For example find the >>>> DFT of each signal. Then conjugate one of the signals and then form a >>>> sample by sample inner product between the two. The find the argument >>>> of each resulting sample. When plotted (argument vs sample(frequency >>>> bin) you will get a straight line whose slope is the time offset and >>>> intercept is the frequency offset. Notice how the TDOA and the >>>> frequency offset get separated out in the analysis - I found this >>>> quite useful in RF applications when I didn't have to worry about >>>> carrier and doppler frequency offsets. You can even weight the >>>> samples by their spectral power before doing the regression fit. >> >>>> This is basically doing TDOA autocorrelation via FFT except for the >>>> converting back to the time domain and peak search. >> >>>> Clay >> >>> Ah! OK. Thanks Clay. >> >>> Fred >> >>> Hi, >> >>> The approach we used was somewhat different, but probably isomorphic. >>> We FFTed each channel, summed the magnitude squared then selected peak >>> frequencies, >>> then took the phase difference at a given peak between one channel and >>> each of the others. >>> From that information and the geometry of the array, we were able to >>> determine the DOA of the signal at that frequency. >> >>> Best wishes, >>> --Phil >> >> Are you saying that you compared phase at one frequency between arrays >> or >> are you saying that you compared phase at two or more *peak* frequencies >> between arrays? >> >> The latter would give me pause because phase varies with frequency of >> course. > > *Both* seem fishy to me, unless you can somehow justify the > assumption of narrow-band sources. With a broad-band source, > you have a somewhat more complicated task ahead. > > Rune
Rune, Yep. My initial reaction would have been more appropriate with a broadband source I think. So this would be best with a narrowband source wouldn't it? Fred
On Jul 12, 7:43&#4294967295;am, Fred Marshall <fmarshallxremove_th...@acm.org>
wrote:
> On 7/11/2011 10:22 PM, Rune Allnor wrote: > > > > > > > On Jul 12, 5:08 am, Fred Marshall<fmarshallxremove_th...@acm.org> > > wrote: > >> On 7/11/2011 5:34 PM, Phil Martel wrote: > > >>> "Fred Marshall" wrote in message > >>>news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > > >>> On 7/11/2011 7:15 AM, Clay wrote: > > >>>> Hello Fred, > > >>>> You can take 2 different sets of data for the same signal where the > >>>> only essential difference is the time delay and frequency offset and > >>>> then do a frequency domain approach to the TDOA. For example find the > >>>> DFT of each signal. Then conjugate one of the signals and then form a > >>>> sample by sample inner product between the two. The find the argument > >>>> of each resulting sample. When plotted (argument vs sample(frequency > >>>> bin) you will get a straight line whose slope is the time offset and > >>>> intercept is the frequency offset. Notice how the TDOA and the > >>>> frequency offset get separated out in the analysis - I found this > >>>> quite useful in RF applications when I didn't have to worry about > >>>> carrier and doppler frequency offsets. You can even weight the > >>>> samples by their spectral power before doing the regression fit. > > >>>> This is basically doing TDOA autocorrelation via FFT except for the > >>>> converting back to the time domain and peak search. > > >>>> Clay > > >>> Ah! OK. Thanks Clay. > > >>> Fred > > >>> Hi, > > >>> The approach we used was somewhat different, but probably isomorphic. > >>> We FFTed each channel, summed the magnitude squared then selected peak > >>> frequencies, > >>> then took the phase difference at a given peak between one channel and > >>> each of the others. > >>> &#4294967295; From that information and the geometry of the array, we were able to > >>> determine the DOA of the signal at that frequency. > > >>> Best wishes, > >>> --Phil > > >> Are you saying that you compared phase at one frequency between arrays > >> or > >> are you saying that you compared phase at two or more *peak* frequencies > >> between arrays? > > >> The latter would give me pause because phase varies with frequency of > >> course. > > > *Both* seem fishy to me, unless you can somehow justify the > > assumption of narrow-band sources. With a broad-band source, > > you have a somewhat more complicated task ahead. > > > Rune > > Rune, > > Yep. &#4294967295;My initial reaction would have been more appropriate with a > broadband source I think.
I haven't read this thread very closely, so I will not comment on that.
>&#4294967295;So this would be best with a narrowband > source wouldn't it?
The phase detection beamformer is specified in terms of sinusoidals on the form s(x,t) = exp j(wt-kx). where k is the unknown wavenumber to be estimated. The beamformer then computes the inner product between s(x,t) and a weight vector z(w,K) on the form z(w,K) = exp j(wt-Kx), where K is a known test solution for the wavenumber. The beamformer then searches for the test solution K that maximises the inner product between s and z. All of this works, provided one can justify that s is a narrow-band sinusoidal. You can do that in two ways: 1) Somehow constrain the input signals to be narrow-band 2) Transform a broad-band signal to a narrow-band representation. One has to look very closely in the literature to find descriptions of these things. Not that they are difficult (they are not); they are seldom described. Rune
On Jul 12, 1:22&#4294967295;am, Rune Allnor <all...@tele.ntnu.no> wrote:
> On Jul 12, 5:08&#4294967295;am, Fred Marshall <fmarshallxremove_th...@acm.org> > wrote: > > > > > > > On 7/11/2011 5:34 PM, Phil Martel wrote: > > > > "Fred Marshall" wrote in message > > >news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > > > > On 7/11/2011 7:15 AM, Clay wrote: > > > >> Hello Fred, > > > >> You can take 2 different sets of data for the same signal where the > > >> only essential difference is the time delay and frequency offset and > > >> then do a frequency domain approach to the TDOA. For example find the > > >> DFT of each signal. Then conjugate one of the signals and then form a > > >> sample by sample inner product between the two. The find the argument > > >> of each resulting sample. When plotted (argument vs sample(frequency > > >> bin) you will get a straight line whose slope is the time offset and > > >> intercept is the frequency offset. Notice how the TDOA and the > > >> frequency offset get separated out in the analysis - I found this > > >> quite useful in RF applications when I didn't have to worry about > > >> carrier and doppler frequency offsets. You can even weight the > > >> samples by their spectral power before doing the regression fit. > > > >> This is basically doing TDOA autocorrelation via FFT except for the > > >> converting back to the time domain and peak search. > > > >> Clay > > > > Ah! OK. Thanks Clay. > > > > Fred > > > > Hi, > > > > The approach we used was somewhat different, but probably isomorphic. > > > We FFTed each channel, summed the magnitude squared then selected peak > > > frequencies, > > > then took the phase difference at a given peak between one channel and > > > each of the others. > > > &#4294967295;From that information and the geometry of the array, we were able to > > > determine the DOA of the signal at that frequency. > > > > Best wishes, > > > --Phil > > > Are you saying that you compared phase at one frequency between arrays > > or > > are you saying that you compared phase at two or more *peak* frequencies > > between arrays? > > > The latter would give me pause because phase varies with frequency of > > course. > > *Both* seem fishy to me, unless you can somehow justify the > assumption of narrow-band sources. With a broad-band source, > you have a somewhat more complicated task ahead. > > Rune- Hide quoted text - > > - Show quoted text -
When I did it in RF, it was quite narrowband. I.e. 30kHz bandwidth on a 900MHz carrier and even CDMA with its 1.25 MHz bandwidth is on a 1900MHz carrier. Clay p.s. Jigajigaboo certainly needs to model his application to see how well his situation will work. But given a lack of echoes, no noise and infinite precision, he only needs two FFT bins to find the TDOA. The real question is how bad are the echoes and how much noise does he have?

"Rune Allnor"  wrote in message 
news:23073597-7114-4b90-b562-c5dc5ef9ac46@t9g2000vbs.googlegroups.com...

On Jul 12, 7:43 am, Fred Marshall <fmarshallxremove_th...@acm.org>
wrote:
> On 7/11/2011 10:22 PM, Rune Allnor wrote: > > > > > > > On Jul 12, 5:08 am, Fred Marshall<fmarshallxremove_th...@acm.org> > > wrote: > >> On 7/11/2011 5:34 PM, Phil Martel wrote: > > >>> "Fred Marshall" wrote in message > >>>news:50ISp.87892$fD6.45795@en-nntp-02.dc1.easynews.com... > > >>> On 7/11/2011 7:15 AM, Clay wrote: > > >>>> Hello Fred, > > >>>> You can take 2 different sets of data for the same signal where the > >>>> only essential difference is the time delay and frequency offset and > >>>> then do a frequency domain approach to the TDOA. For example find the > >>>> DFT of each signal. Then conjugate one of the signals and then form a > >>>> sample by sample inner product between the two. The find the argument > >>>> of each resulting sample. When plotted (argument vs sample(frequency > >>>> bin) you will get a straight line whose slope is the time offset and > >>>> intercept is the frequency offset. Notice how the TDOA and the > >>>> frequency offset get separated out in the analysis - I found this > >>>> quite useful in RF applications when I didn't have to worry about > >>>> carrier and doppler frequency offsets. You can even weight the > >>>> samples by their spectral power before doing the regression fit. > > >>>> This is basically doing TDOA autocorrelation via FFT except for the > >>>> converting back to the time domain and peak search. > > >>>> Clay > > >>> Ah! OK. Thanks Clay. > > >>> Fred > > >>> Hi, > > >>> The approach we used was somewhat different, but probably isomorphic. > >>> We FFTed each channel, summed the magnitude squared then selected peak > >>> frequencies, > >>> then took the phase difference at a given peak between one channel and > >>> each of the others. > >>> From that information and the geometry of the array, we were able to > >>> determine the DOA of the signal at that frequency. > > >>> Best wishes, > >>> --Phil > > >> Are you saying that you compared phase at one frequency between arrays > >> or > >> are you saying that you compared phase at two or more *peak* > >> frequencies > >> between arrays? > > >> The latter would give me pause because phase varies with frequency of > >> course. > > > *Both* seem fishy to me, unless you can somehow justify the > > assumption of narrow-band sources. With a broad-band source, > > you have a somewhat more complicated task ahead. > > > Rune > > Rune, > > Yep. My initial reaction would have been more appropriate with a > broadband source I think.
I haven't read this thread very closely, so I will not comment on that.
> So this would be best with a narrowband > source wouldn't it?
Yes. The phase detection beamformer is specified in terms of sinusoidals on the form s(x,t) = exp j(wt-kx). where k is the unknown wavenumber to be estimated. The beamformer then computes the inner product between s(x,t) and a weight vector z(w,K) on the form z(w,K) = exp j(wt-Kx), where K is a known test solution for the wavenumber. The beamformer then searches for the test solution K that maximises the inner product between s and z. All of this works, provided one can justify that s is a narrow-band sinusoidal. You can do that in two ways: 1) Somehow constrain the input signals to be narrow-band 2) Transform a broad-band signal to a narrow-band representation. One has to look very closely in the literature to find descriptions of these things. Not that they are difficult (they are not); they are seldom described. Rune We were comparing the phase differences at one frequency to get a bearing. Sometimes we used the phase differences at harmonically related frequencies to calculate other bearings and averaged the bearings. The targets we were tracking were tanks, heavy trucks, prop aircraft and helicopters. Loud and with (perhaps many) narrow-band peaks. It is possible to track several vehicles, if as is usually the case, the engine speeds vary. We had some other approaches that we used for turbine engines or impulsive noise such as gunshots, but I'm not as familiar with them/ Best wishes, --Phil