Sida 1 av 1

DTMF och Goertzel algoritm

Postat: 26 september 2009, 12:11:01
av 4kTRB
Jag håller på med ett projekt tangentbordsbelysning i projekttråden.
Intensiteten ska styras mha toner och ett sätt vore att ha DTMF.
Jag hittar enkla kretsar att generera DTMF men jag är mer intresserad
av att detektera. Då finns tydligen en algoritm för detta. Det här tycker
jag verkar intressant. Vore väldigt kul att implementera en lösning
på kortet som utnyttjar algoritmen. Med processor eller logikkretsar.
Finns det kanske någon som testat det innan?

http://en.wikipedia.org/wiki/Goertzel_algorithm

Re: DTMF och Goertzel algoritm

Postat: 28 september 2009, 20:28:08
av Remote
Ja det fungerar bra. Har kört det på PC och det funkar. Det finns numera exempel för små processor alltså inte DSP. Det finns appl. exempel på t. ex. Microchip hemsida. Dock kräver de flesta exempel att processorn har multiplikation i hårdvaran.

Re: DTMF och Goertzel algoritm

Postat: 28 september 2009, 20:56:49
av hornfeldt
Såg ett projekt med igår kväll med DTMF/Goertzel http://www.circuitcellar.com/avr2006/winners/AT3344.htm. Har inte kollat så noga, men jag såg det fanns lite programkod i PDF´n iaf.

Re: DTMF och Goertzel algoritm

Postat: 1 oktober 2009, 03:10:44
av 4kTRB
Remote skrev:Ja det fungerar bra. Har kört det på PC och det funkar. Det finns numera exempel för små processor alltså inte DSP. Det finns appl. exempel på t. ex. Microchip hemsida. Dock kräver de flesta exempel att processorn har multiplikation i hårdvaran.
Tycker det borde inte behövas en DSP med DTMF-toner.
Många controllers är väldigt snabba i dagens värld.

Jag har alltid varit sugen på att bygga en lösning helt med TTL.
En ASM maskin. Det klart den här algoritmen kanske är i krångligaste laget
för en sån lösning.

Re: DTMF och Goertzel algoritm

Postat: 1 oktober 2009, 03:15:29
av 4kTRB
hornfeldt skrev:Såg ett projekt med igår kväll med DTMF/Goertzel http://www.circuitcellar.com/avr2006/winners/AT3344.htm. Har inte kollat så noga, men jag såg det fanns lite programkod i PDF´n iaf.
Spännande läsning!

Citerar:
"The first worthy challenge was Goertzel’s algorithm for DTMF detection. We implemented it in fixed point
arithmetic with 9-bit coefficients. This was where the AVR’s on-chip multiplier shone: combining loop
unrolling with some hand tuned assembler, Goertzel’s inner loop took only 364 cycles. Using double
buffering of the intermediate results and spreading the calculation over many samples, the finalization step
took another ~100 amortized cycles, bringing the whole algorithm to take less than 500 cycles per sample. A
shortened version of this code is shown in Listing 1."

Re: DTMF och Goertzel algoritm

Postat: 1 oktober 2009, 08:46:40
av eqlazer
Vi har använt Goertzel för att avkoda DTMF i vårt projekt. Hårdvaran som vi då använder beskrivs här http://projekt.auml.se/homeautomation:h ... munication
och mjukvaran för DTMF finns här http://projekt.auml.se/websvn/HomeAutom ... n_CallerID_
(själva DTMF-avkodningen finns ner igenom katalogen avr-lib)
Så att avkoda med en liten AVR går alldeles utmärkt.

Edit: ändrade länkarna

Re: DTMF och Goertzel algoritm

Postat: 1 oktober 2009, 10:11:00
av hornfeldt
Hittar ingen Goertzel algoritm där ? Hårdvaran avkodar ju direkt till 4 bit binär

Re: DTMF och Goertzel algoritm

Postat: 1 oktober 2009, 10:22:54
av eqlazer
Förlåt, råkade länka till fel DTMF-applikation (den som använder mt8870), har ändrat i inlägget ovan.
Så själva Goertzel finns i http://projekt.auml.se/websvn/HomeAutom ... s_DTMF_raw_

Re: DTMF och Goertzel algoritm

Postat: 25 oktober 2009, 18:58:54
av 4kTRB
Bra att ha olika projekt att läsa om. Det ger kunskap på ett bra sätt.

Av en slump (sökning på projekt med LM567) hittade jag ett projekt
där Goertzels algoritm används i stället för en LM567 tondekoder.
Algoritmen ska tydligen ge mer precis detektering enligt författaren.

http://www.tau.ac.il/~stoledo/lego/msp4 ... ect-pitch/