Re: spandsp tone_detect.c goertzel perodogram
- From: Steve Underwood <steveu@xxxxxxx>
- Date: Thu, 25 Oct 2007 12:35:57 +0800
Kamanashis wrote:
Hi,
Let me explain the situation, I am trying to differ beep from
different answering machine.
The information about the answering machine beep frequency is given
below.
[T-Mobile]
frequency=1250 ; frequency in Hz
energy=-30 ; energy in db
duration=250 ; duration in milisecond
[Verizon]
frequency=1500 ; frequency in Hz
energy=-20 ; energy in db
duration=550 ; duration in milisecond
[Sprint/Nextel]
frequency=1400 ; frequency in Hz
energy=-30 ; energy in db
;duration=600 ; duration in milisecond
duration=120 ; duration in milisecond
[AT&T/Cingular]
frequency=1700 ; frequency in Hz
energy=-20 ; energy in db
duration=300 ; duration in milisecond
I tried with goertzel algorithm (I used the implementation from
spandsp library).
It gave me farely close values of energy [T-Mobile], [Verizon] and
[Sprint/Nextel].
It was the [Sprint/Nextel] that I was testing. Then I tested Verizon.
I did not find a
way to detect the amds.
Now I have a few questions,
1. what does they mean by -20db and what is its relation with
goertzel energy.
It means they send the tone at -20dB, but the energy at the receiver will depend on the losses between the transmitter and receiver.
2. how can I use the periodogram functions of spandsp library, is
there any chance
that it may work for me ?
It could, if you add some more bits and pieces to what is there. The periodogram code in spandsp is a work in progress for a full supervisory tone detection scheme.
3. Is there any relation of duration of samples and goertzel
algorithm. (I get frames
of 20ms each, with 160 samples).
The Goertzel algorithm just evaluates a single output bin of a discrete Fourier Transform. No more, and no less. It, therefore, behaves just like any other kind of Fourier transform. Basically, the narrower you want the frequency window of the detector to be, the more samples you need to put through the Goertzel algorithm. If you are trying to use the detector for a single tone, and reject voice, you will probably need to apply windowing to the data, and use a narrow detection range. Don't make the range too narrow, through, as there will be some tolerance on the tone's frequency.
And please suggest me what to do to succeed this project.
I don't understand what you are trying to achieve. Are you trying to build a generalised answering machine detector? Are you trying to discriminate which of the above services you have connected to?
Detecting telephony tones is trivial. The tricky part is avoiding false detections of voice as tone. Discriminating which of the services you have attached to should be easy, as their tones appear distinctive. Trying to reliably determine if you have connected to an answering service is much harder.
Regards,
Steve
.
- Follow-Ups:
- Re: spandsp tone_detect.c goertzel perodogram
- From: Kamanashis
- Re: spandsp tone_detect.c goertzel perodogram
- References:
- spandsp tone_detect.c goertzel perodogram
- From: Kamanashis
- spandsp tone_detect.c goertzel perodogram
- Prev by Date: Re: Looking for an automated method for plotting the amplitude envelope of an audio signal
- Next by Date: Re: An Empirical Nonlinear Filter
- Previous by thread: Re: spandsp tone_detect.c goertzel perodogram
- Next by thread: Re: spandsp tone_detect.c goertzel perodogram
- Index(es):
Relevant Pages
|