# Echo Cancellation - non acoustic application

Started by May 2, 2006
```all:

I dont know if this will work or not, but from what I read it sounds like
acoustic echo cancellation is fundamentally the same problem I have.

I am recording pitch measurments with a single sensor located at the
center of gravity of a vehicle.  I would like to extract the road profile
from this measurement through a suspension model for the front and rear
suspension.

For the time being I can assume that my front and rear suspensions are
identical and that the road disturbance at the rear wheel will be the same
as that at the front wheel but time delayed.  So basically my problem, in
its most basic form boils down to:

X(t) = A(t) + A(t+T)

The signal is made up of the road disturbance at the front, plus the same
disturbance time delayed.

I can estimate the time delay, T, as the length of the vehicle divided by
the speed.

So my question is....  is there an easy way to extract the signal A(t)
from the measured X(t) and an estimate of T?

This seems to be exactly the same as cancelling an echo in acoustics.

Perhaps you can bring me up to speed, or give me the "Name" for this type
of problem so I can do a search on my own.

martini

```
```martini wrote:
> all:
>
> I dont know if this will work or not, but from what I read it sounds like
> acoustic echo cancellation is fundamentally the same problem I have.
>
> I am recording pitch measurments with a single sensor located at the
> center of gravity of a vehicle.  I would like to extract the road profile
> from this measurement through a suspension model for the front and rear
> suspension.

How does the data look like? Sinusoidals? Pulse trains? The answer
have a huge impact on what can be done.

> For the time being I can assume that my front and rear suspensions are
> identical and that the road disturbance at the rear wheel will be the same
> as that at the front wheel but time delayed.  So basically my problem, in
> its most basic form boils down to:
>
> X(t) = A(t) + A(t+T)
>
> The signal is made up of the road disturbance at the front, plus the same
> disturbance time delayed.

Seems reasonable.

> I can estimate the time delay, T, as the length of the vehicle divided by
> the speed.

...assuming the sensor is mounted half way between the two axels.
Yep, I'll go along with that.

> So my question is....  is there an easy way to extract the signal A(t)
> from the measured X(t) and an estimate of T?
>
> This seems to be exactly the same as cancelling an echo in acoustics.
>
>
> Perhaps you can bring me up to speed, or give me the "Name" for this type
> of problem so I can do a search on my own.

I agree with you in that echo cancellation is something to be
considered.
Now, the main difficulty is whether the signal consists of a series
of pulses or a sinusoidal.

If you have a set of pulses, I think echo cancellation is the "obvious"
way to go. There is a standard literature on the subject, you might
find the book "Adaptive Filter Theory" by Simon Haykin useful.

Rune

```
```ok thanks for the quick reply...this data is the same road grade data from
the cross correlating post

>martini wrote:
>> all:
>>
>> I dont know if this will work or not, but from what I read it sounds
like
>> acoustic echo cancellation is fundamentally the same problem I have.
>>
>> I am recording pitch measurments with a single sensor located at the
>> center of gravity of a vehicle.  I would like to extract the road
profile
>> from this measurement through a suspension model for the front and
rear
>> suspension.
>
>How does the data look like? Sinusoidals? Pulse trains? The answer
>have a huge impact on what can be done.
>
>> For the time being I can assume that my front and rear suspensions are
>> identical and that the road disturbance at the rear wheel will be the
same
>> as that at the front wheel but time delayed.  So basically my problem,
in
>> its most basic form boils down to:
>>
>> X(t) = A(t) + A(t+T)
>>
>> The signal is made up of the road disturbance at the front, plus the
same
>> disturbance time delayed.
>
>Seems reasonable.
>
>> I can estimate the time delay, T, as the length of the vehicle divided
by
>> the speed.
>
>...assuming the sensor is mounted half way between the two axels.
>Yep, I'll go along with that.
>
>> So my question is....  is there an easy way to extract the signal A(t)
>> from the measured X(t) and an estimate of T?
>>
>> This seems to be exactly the same as cancelling an echo in acoustics.
>>
>>
>> Perhaps you can bring me up to speed, or give me the "Name" for this
type
>> of problem so I can do a search on my own.
>
>I agree with you in that echo cancellation is something to be
>considered.
>Now, the main difficulty is whether the signal consists of a series
>of pulses or a sinusoidal.
>
>If you have a set of pulses, I think echo cancellation is the "obvious"
>way to go. There is a standard literature on the subject, you might
>find the book "Adaptive Filter Theory" by Simon Haykin useful.
>
>Rune
>
>

```
```martini wrote:
> the cross correlating post

OK... These are processed data. You can not measure such a thing
as "road grade." What you can measure is stuff like amplitude or
frequency of some mechanical vibration. I am more interested in
those data, the very first output of the sensor, before you massage

Rune

```
```>all:
>
>I dont know if this will work or not, but from what I read it sounds
like
>acoustic echo cancellation is fundamentally the same problem I have.
>
>I am recording pitch measurments with a single sensor located at the
>center of gravity of a vehicle.  I would like to extract the road
profile
>from this measurement through a suspension model for the front and rear
>suspension.
>
>For the time being I can assume that my front and rear suspensions are
>identical and that the road disturbance at the rear wheel will be the
same
>as that at the front wheel but time delayed.  So basically my problem,
in
>its most basic form boils down to:
>
>X(t) = A(t) + A(t+T)
>

I've done both echo cancellation and equalization as pertaining to digital
communications systems and this looks to me like an equalization problem.
A communication channel convolves with the transmitted signal, and in
discrete time equates to adding delayed and scaled versions of the signal
with itself.  Equalization means you know X(t) and want to find out what
A(t) is.

Echo cancellation would mean you know A(t) and want to discover the
channel it passed through using X(t) and A(t).  This would then allow you
to, knowing A(t), cancel the echo signal.

>The signal is made up of the road disturbance at the front, plus the
same
>disturbance time delayed.
>
>I can estimate the time delay, T, as the length of the vehicle divided
by
>the speed.
>
>So my question is....  is there an easy way to extract the signal A(t)
>from the measured X(t) and an estimate of T?
>
>This seems to be exactly the same as cancelling an echo in acoustics.
>
>
>Perhaps you can bring me up to speed, or give me the "Name" for this
type
>of problem so I can do a search on my own.
>
>
>
>martini
>
>

```
```.
> >
> >I am recording pitch measurments with a single sensor located at the
> >center of gravity of a vehicle.  I would like to extract the road
> profile
> >from this measurement through a suspension model for the front and rear
> >suspension.
> >
>

Questions for the op to consider:

1)  can you drive the car over a "calibrated bump" at a known speed to
calibrate the system..  this would also be known as a "training
sequence"

2) is there a record of the car speed when the data is taken or does
the car speed have to be inferred from the data?

3) come to Pennsylvania, we have more bumpy roads than anybody..  :-)

Mark

```
```martini wrote:

>  So basically my problem, in
> its most basic form boils down to:
>
> X(t) = A(t) + A(t+T)
>
> The signal is made up of the road disturbance at the front, plus the same
> disturbance time delayed.
>
> I can estimate the time delay, T, as the length of the vehicle divided by
> the speed.
>
> So my question is....  is there an easy way to extract the signal A(t)
> from the measured X(t) and an estimate of T?
>
> This seems to be exactly the same as cancelling an echo in acoustics.

If your signal is given by

X(t) = A(t) + A(t+T)

then this is the result of using a non-invertible filter on A(t) (try
as input A(t) = sin(2 pi t) and T=pi, and then try to retrieve A(t)
from X(t)).

If the delayed version was weighted slightly less than 1.0, the filter
would be invertible. Can't you move the sensor closer to the front axle
to improve the echo-to-original ratio? Or just turn down the "volume"
of the rear sensor in the mix? If you have

X(t) = A(t) + c A(t+T), 0 < c < 1,

then all the zeros of the filter have magnitude equal to c, the filter
is minimum phase and invertible. You can then simply filter X(t) with
the stable inverse filter to retrieve A(t).

```
```I wrote:

> martini wrote:
>
> >  So basically my problem, in
> > its most basic form boils down to:
> >
> > X(t) = A(t) + A(t+T)
> >
> > The signal is made up of the road disturbance at the front, plus the same
> > disturbance time delayed.
> >
> > I can estimate the time delay, T, as the length of the vehicle divided by
> > the speed.
> >
> > So my question is....  is there an easy way to extract the signal A(t)
> > from the measured X(t) and an estimate of T?
> >
> > This seems to be exactly the same as cancelling an echo in acoustics.
>
> If your signal is given by
>
> X(t) = A(t) + A(t+T)
>
> then this is the result of using a non-invertible filter on A(t) (try
> as input A(t) = sin(2 pi t) and T=pi, and then try to retrieve A(t)
> from X(t)).
>
> If the delayed version was weighted slightly less than 1.0, the filter
> would be invertible. Can't you move the sensor closer to the front axle
> to improve the echo-to-original ratio? Or just turn down the "volume"
> of the rear sensor in the mix? If you have
>
> X(t) = A(t) + c A(t+T), 0 < c < 1,
>
> then all the zeros of the filter have magnitude equal to c, the filter
> is minimum phase and invertible. You can then simply filter X(t) with
> the stable inverse filter to retrieve A(t).

As an afterthought, replace A(t+T) with A(t-T).

```
```On Tue, 02 May 2006 21:26:59 -0500, "martini" <rdm186@psu.edu> wrote:
>I dont know if this will work or not, but from what I read it sounds like
>acoustic echo cancellation is fundamentally the same problem I have.
>I am recording pitch measurments with a single sensor located at the
>center of gravity of a vehicle.  I would like to extract the road profile
>from this measurement through a suspension model for the front and rear
>suspension.
>
>For the time being I can assume that my front and rear suspensions are
>identical and that the road disturbance at the rear wheel will be the same
>as that at the front wheel but time delayed.  So basically my problem, in
>its most basic form boils down to:
>
>X(t) = A(t) + A(t+T)
>
>The signal is made up of the road disturbance at the front, plus the same
>disturbance time delayed.
>I can estimate the time delay, T, as the length of the vehicle divided by
>the speed.
>So my question is....  is there an easy way to extract the signal A(t)
>from the measured X(t) and an estimate of T?
>This seems to be exactly the same as cancelling an echo in acoustics.
>Perhaps you can bring me up to speed, or give me the "Name" for this type
>of problem so I can do a search on my own. please let me know
>martini

Two thoughts:
1) because of the time delay, cepstrum analysis seems appropriate.
Used alot to deal with time delays caused by echos
http://en.wikipedia.org/wiki/Cepstrum

2) you need two or more sensors for adaptive filtering,
(aka, echo cancellation).

```