Hi, Clay
Thanks to your answer.
CAS Tone needs to be detected during off hook, i.e. present with voice
and others. So the detection is a little more difficult than that of
DTMF. Someone said we can use the technology of "Voice Elimination",
but I suppose it is too complex.
Maybe we can make use of the characteristic of CAS Tone, i.e. Tone
During Time is 75-85ms.
Jia
Reply by Clay S. Turner●September 9, 20052005-09-09
"jia" <jia.qinghua@gmail.com> wrote in message
news:1126253700.629708.139380@z14g2000cwz.googlegroups.com...
> Hi here,
>
> I want to detect "CAS(CPE Alerting Signal) Tone" with the Goertzel Algo
> used in DTMF, is it OK?
> I believe that CAS Tone is just a special DTMF Tone, comprised with two
> frequency-2130Hz and 2750Hz. CAS Tone detection also has a more strict
> aquirement than DTMF, such as accurate detection in hook-off and
> hook-on.
> 2nd harmonic detection with 8k sampling to CAS Tone is not realistic,
> as 2750Hz *2 is more than 4K. So I check (2130*0.5)Hz and (2750*0.5)Hz
> to avoid CAS Tone is above frequencies' 2nd harmonic. Does it work?
>
> Best Regards,
> JIa
>
Hello JIa,
Just use a purity check based on Parseval's (actually the special case known
as Bessel's) relation to see if during the tone that nothing else is
present. I.e., just compare the energy in the tone detectors to the total
time domain energy. You don't need the 2nd harmonic detection this way.
Clay
Reply by jia●September 9, 20052005-09-09
Hi here,
I want to detect "CAS(CPE Alerting Signal) Tone" with the Goertzel Algo
used in DTMF, is it OK?
I believe that CAS Tone is just a special DTMF Tone, comprised with two
frequency-2130Hz and 2750Hz. CAS Tone detection also has a more strict
aquirement than DTMF, such as accurate detection in hook-off and
hook-on.
2nd harmonic detection with 8k sampling to CAS Tone is not realistic,
as 2750Hz *2 is more than 4K. So I check (2130*0.5)Hz and (2750*0.5)Hz
to avoid CAS Tone is above frequencies' 2nd harmonic. Does it work?
Best Regards,
JIa
Reply by jia●September 9, 20052005-09-09
Hi here,
I want to detect "CAS(CPE Alerting Signal) Tone" with the Goertzel Algo
used in DTMF, is it OK?
I believe that CAS Tone is just a special DTMF Tone, comprised with two
frequency-2130Hz and 2750Hz. CAS Tone detection also has a more strict
aquirement than DTMF, such as accurate detection in hook-off and
hook-on.
2nd harmonic detection with 8k sampling to CAS Tone is not realistic,
as 2750Hz *2 is more than 4K. So I check (2130*0.5)Hz and (2750*0.5)Hz
to avoid CAS Tone is above frequencies' 2nd harmonic. Does it work?
Best Regards,
JIa
Reply by Clay S. Turner●August 19, 20052005-08-19
"Roman Rumian" <usun_torumian@agh.edu.pl> wrote in message
news:de46fs$91h$1@galaxy.uci.agh.edu.pl...
> Hello Clay,
>
> I have already finished ! :-)
>
> Dsp implementation took one week.
>
> I use 8 freqencies from 16.6 kHz to 19.8 kHz spaced 400Hz in both - left
> and right - audio channels, but complemented.
>
> The problem is MPEG Audio coding used in communication channel, which do
> not tolerate weak tones, specially at low rates, but at 256kbps and -16dB
> it works.
>
> Best regards
>
> Roman Rumian
Excellent!!
Clay
Reply by Roman Rumian●August 19, 20052005-08-19
Hello Clay,
I have already finished ! :-)
Dsp implementation took one week.
I use 8 freqencies from 16.6 kHz to 19.8 kHz spaced 400Hz in both - left
and right - audio channels, but complemented.
The problem is MPEG Audio coding used in communication channel, which do
not tolerate weak tones, specially at low rates, but at 256kbps and
-16dB it works.
Best regards
Roman Rumian
Reply by Jerry Avins●July 18, 20052005-07-18
Roman Rumian wrote:
> Hi Jerry,
>
> Jerry Avins napisał(a):
> (...)
>
>>
>> I don't see that the tones have to persist. Whenever the complete set
>> of tones is present, the state they prescribe is entered, That state
>> persists until a valid countermand is detected. An on/off tone can be
>> replaced with the transmission channel. A tone (or decoded set of
>> three tones) on the one channel raises a flag; the same tone on the
>> other lowers it. From your answer, I suspect that I'm overlooking a
>> constraint or obvious simplification. Am I?
>
>
> No. It seems resonable, but I am afraid, that have to send all 8 inputs
> state simultaneously. What then ?
> Serial transmission and then parallel buffer ?
>
> Best regards
>
> Roman
That's one way. Eight tones with the channel determining on/off is
another. I can think of more, but none seems as good.
Jerry
--
Engineering is the art of making what you want from things you can get.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Reply by Roman Rumian●July 18, 20052005-07-18
Hi Jerry,
Jerry Avins napisa�(a):
(...)
>
> I don't see that the tones have to persist. Whenever the complete set of
> tones is present, the state they prescribe is entered, That state
> persists until a valid countermand is detected. An on/off tone can be
> replaced with the transmission channel. A tone (or decoded set of three
> tones) on the one channel raises a flag; the same tone on the other
> lowers it. From your answer, I suspect that I'm overlooking a constraint
> or obvious simplification. Am I?
No. It seems resonable, but I am afraid, that have to send all 8 inputs
state simultaneously. What then ?
Serial transmission and then parallel buffer ?
Best regards
Roman
Reply by Roman Rumian●July 18, 20052005-07-18
Hello Clay,
many thanks for help ! :-)))
Kind regards
Roman
Clay S. Turner napisa�(a):
> Hello Roman,
>
> 4 days? Ouch. I feel for you if this is a real constraint. You can certainly
> use multiple tones all in parallel and use only certain combinations as
> legal symbols. You could even go so far as to treat each frequency as a bit
> and then have error correction by using some frequencies as parity bits. You
> have more than enough bandwidth to support a lot of tones. Since you are on
> a clear channel, you can used arithmetically spaced frequencies and then the
> FFT becomes attractive as a tone decoder. I don't know the exact
> computational crossover between when using the FFT becomes better than a
> handful of DFTs via Goertzel, but I think the number is small on the order
> of 10 to 20 frequencies or so. You can implement a Hamming (perfect 1 bit
> error correction), common BCH (2 bit error correction) or a Golay (perfect 3
> bit error correction) code. You won't need a fancy error corrector, just
> use a simple look up table that contains all of the error permuted versions
> of the allowed codewords. I recall for the Golay this is a table of 4096
> entries. Your others will likely be much smaller. If you want your tones to
> not be very loud, then certainly use a long duration and have your decoder
> integrate over this time to afford some immunity against noise. You have the
> advantage of near perfect frequency and a large bandwidth. Also with
> parallel tones require them to all start and end at the same time.
>
> I hope this helps,
>
> Clay
Reply by Clay S. Turner●July 17, 20052005-07-17
"ma" <ma@nowhere.com> wrote in message
news:pdzCe.161621$Vj3.94795@fe2.news.blueyonder.co.uk...
> Interesting!
> Can it be extended to several frequncy?
> How pure is each frequncy?
> How can it be implimented in DSP?
> best regards
>
Hello Ma,
Yes you can extend to many frequencies but some practical issues arise. The
tones are as pure as your math allows. A simple example:
Single tone generator (biquad design)
y(z) 1
---- = ------------------------
x(z) 1 - 2cos(a) z^-1 + z^-2
This transfer equation can be found by many methods, but a DSP oriented one
is to find the z transform of cos(at) or sin(at). Then the numerator is
changed to 1 to simplify things. All the numerator does is scale the output
and adjust the phase of the impulse response. Hence we have made an all pole
filter. Another way to look at it is we have found the 2nd order linear
prediction coefficients of a sinusoid. They are:
2 cos(a)
and
-1
Now a dual tone oscillator may be found by simply adding together two z
transforms (i.e., summing two oscillators) and finding the new common
denominator. Again the resulting numerator may be changed to just 1. The 4
feedback coefs are:
2(cos(a) +cos(b))
-2-4cos(a)cos(b)
2(cos(a)+cos(b))
-1
Here a= 2pi*f1/fs and b= 2pi*f2/fs and fs is the sampling rate.
So you can implement a 4th order all pole filter to generate two
simultaneous tones. The 4 initial values will determine the amplitudes and
phases of the sinusoids. Of course most would rather implement two 2nd order
oscillators and simply sum their outputs. But as you can see multifrequency
generation is possible with a single filter structure, and I have even
implemented this method for generating DTMF, MF and MFC tones. I was able to
save a few cycles this way and I was using two 40MHz DSPs to handle an E-1
trunk. Since the tones' durations were short, amplitude control was not
needed. I used a 24 bit DSP so a 45mSec or 100mSec tone burst was well
tamed.
For fun you ought to look at changing the 4th order all pole design to a
lattice filter design. If you recall many speech algorithms use LPC analysis
and use lattice filters since an all pole filter model is commonly used for
the vocal tract. So an LPC-10 model could create 5 simultaneous frequencies.
Clay