"Eric Jacobsen" wrote in message
news:4e1b9db6.38140731@www.eternal-september.org...
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.orghttp://www.dsprelated.com/blogs-1//Eric_Jacobsen.php
Reasonably well. We were getting about 3 degrees RMS error with good S/N,
in-an-open-field sorts of situations.

Reply by Phil Martel●July 12, 20112011-07-12

"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

Reply by Clay●July 12, 20112011-07-12

On Jul 12, 1:22�am, Rune Allnor <all...@tele.ntnu.no> 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- 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?

Reply by Rune Allnor●July 12, 20112011-07-12

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?

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

Reply by Fred Marshall●July 12, 20112011-07-12

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

Reply by Rune Allnor●July 12, 20112011-07-12

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

Reply by Rune Allnor●July 12, 20112011-07-12

On Jul 12, 3:05�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.
>
> > � Best wishes,
> > � --Phil
>
> How well did that work? � 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

Reply by Rune Allnor●July 12, 20112011-07-12

On Jul 8, 2:10�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

Reply by Fred Marshall●July 12, 20112011-07-12

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

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