DTMF-Touch Tone dekoder med hjälp av Microchip PIC mikroprocessor (2 / 9 steg)

Steg 2: Signalbehandling algoritm Beskrivning



The PIC 12F683 mikroprocessorer inbyggd A/D-omvandlare används för att prova en ingång ljudvågformen. Proverna analyseras med Goertzel algoritm för att upptäcka om någon av de 8 tonerna är närvarande.

Goertzel algoritm är en algoritm som används för att upptäcka en enda frekvens för signalbehandling. Det fungerar som en mycket smal bandpassfilter. Det ger en mycket skarp reaktion på frekvenser inom frekvensbandet pass, och en mycket lägre svar för frekvenser utanför passera bandet.

I min implementation av algoritmen tas skall prover i en takt på 4 gånger frekvensen ska identifieras. Med en frekvens på 4 gånger mål frekvensen gör koefficienter som används i algoritm motsvara 1 eller 0. Detta eliminerar behovet av att utföra komplicerade och tidskrävande multiplikation på en 8-bitars mikro. Jag har inte tagit med alla matematiska Detaljer av algoritmen här, men en Google-sökning kommer att producera artiklar om ämnet om du är intresserad av att lära mer om algoritmen själv.

På grund av begränsningen är att samplingsfrekvensen måste vara 4 gånger mål frekvensen, samplingsfrekvens krävs olika för var och en av de 8 toner som används för DTMF. Så, algoritmen måste köras en gång för varje 8 frekvenserna. Detta innebär att en separat uppsättning prover måste tas för varje frekvens av intresse, som varje frekvens kommer att testas med en annan frekvens.

Skärpan i filtret svaret kontra frekvensen är proportionell mot antalet prover som tagits. Svaret av algoritmen måste vara tillräckligt skarp för att det svarar mot målet frekvensen, men reagerar inte på någon av de andra 7 frekvenserna. Ett värde av 120 prover konstaterades för att producera ett tillräckligt smalt svar i experimenterande. Det är ju en avvägning mellan antalet prover och genomförandetid. För att upptäcka korta toner, bör genomförandetid vara så kort som möjligt. Men för att göra en smal svar antalet prover måste vara större, vilket resulterar i en längre tid för genomförandet. Antalet prover blir den begränsande faktorn i hur kort av en ton kan upptäckas.

När algoritmen har bearbetat 120 prover, utgångar det ett värde. Omfattningen av detta värde är proportionell mot amplituden av frekvensen av intresse. Detta resulterande värdet jämförs mot en tröskel att avgöra om målet frekvens är närvarande.
När algoritmen har körts för alla 8 frekvenser, utför mikroprocessorn logik på resultaten att avgöra om ett giltigt DTMF par är närvarande. Ett giltigt DTMF par anses vara närvarande bara om 1 rad freq och 1 col freq upptäcks. Andra kombinationer betraktas som ogiltiga.

Diagrammet visar det faktiska svaret mätt med denna algoritm som körs på en PIC 12F683. Diagrammet visar Frekvensgången av alla 8 gånger algoritmen körs. X-axeln är frekvensen i Hz. Den vertikala axeln är värde produktionen av algoritmen. Ingången var en 1V sinuskurva, svepte från 600Hz till 1800 Hz. Observera att svaret är bredare för högre frekvens filtren. Detta är på grund av att bredden på svaret är proportionell mot samplingsfrekvens, dividerat med antalet prover som tagits. I denna implementation av algoritmen, samplingsfrekvens är alltid fyra gånger mål frekvensen, att helt enkelt och påskynda matten. Samma antal prover används dock för varje av frekvenserna som 8 mål. Den göra bredden på svaret samma för varje kräver med samma prov frekvens för varje, som skulle ha mer tidskrävande matematik, eller det skulle kräva att antalet prover som tagits på de högre frekvenserna vara större, som skulle förlänga genomförandetid. Om du använder en mikroprocessor med riktiga DSP funktionalitet, extra matten kan utföras mycket snabbt och så det skulle vara något som du skulle sannolikt inkluderar.

Trots skillnaderna i bredd på svaret, har operationen varit mycket robust upptäcka toner, även i närvaro av betydande buller.

Se Steg
Relaterade Ämnen

Gränsyta en M74HC238 3-8 Line dekoder med en Arduino (exempel)

detta är en grundläggande handledning för att ge dig en grundläggande förståelse för hur man använder en M74HC238 3-8 Line dekoder.Som namnet antyder, behöver du bara 3 digitala pins på din Arduino att styra alla 8 utgångar.Projektet gör att du kan b...

Skapa en Twelve-Tone melodi med en Twelve-Tone matris

detta Instructable visar förfarandet för att komponera tolvtonsserier melodier med en tolvtonsserier matris.Denna teknik har utvecklats av Arnold Schönberg i 1921, och dess syfte är att komponera musik där var och en av tolv tomterna hörs lika. Denna...

Sekretess för tonåringar med sibs 5 -

SANCTUARY! Alla tonåringar vill ha den. "Det" i det här fallet är det våra rum utan de små fasor kallas syskon.Ja, vi alla drabbas av denna förbannelse... väl de flesta av oss... HUR SOM HELST! AMERIKANSKA TONÅRINGAR FÖRTJÄNAR SEKRETESS!!Jag är...

Touch Sensor skapad med Attiny13A

Detta projekt var färdig länge medan sedan, i samband med att jag ville göra en touch pad och sedan sökte på internet och hittade en .c fil innehåller röra funktion, efter peta med det i hårdvara hittade det inte fungerade, men efter andra tänkte och...

Touch Screen Overlay med Arduino

nyligen min vän Johan köpt några Nintendo DS ersätter Touch skärmar och breakout styrelser för ett "Arduino motorcykel RGB ledde" projekt han arbetar på. Efter att ha lite framgång med Touch skärmen bibliotek och andra Självstudiekurser online b...

Reparera en kapacitiv touch screen stylus med ledande tråd

Detta är ett relativt enkelt reparation projekt, så jag ska mest bara låta bilderna göra arbetet här. Jag hade en skadad stylus huvud för en kapacitiv pekskärm och ville fixa det upp. Det fungerade fortfarande även om det delades, men delad på mitten...

IR-dekoder med LinkIT en

Universella fjärrkontroller bugg du? Önskar du din hemunderhållning centrum kan automatiskt slå på måndag kväll fotboll så fort du kom in genom dörren efter jobbet? Bra med LinkIt en är det också möjligt. Med hjälp av vissa praktiska IR-sensorer, kan...

TFT Touch baserade UI med Arduino UNO

Jag är mycket förtjust i TFT LCD uppvisning. Så jag bestämde mig att lära sig det. Det var redan bibliotek tillgängliga för detta arbete. Men jag hittade de flesta av dem var för olika styrenheter. Det var en kille på intructables som gjort dessa bib...

Med hjälp av Bootloaders PIC mikrokontroller

I denna första video kommer vi att titta på hårdvara hookup som lite kort information om hur bootloaders arbete.Länken för den lilla bootloadern nedan:http://www.etc.ugal.ro/cchiculita/Software/picbootloader.htmJag ber om ursäkt för att ha att dela d...

Super Mario Bros på en 8 x 8 RGB LED matrix displayen med hjälp av en pic mikrokontroller

detta är det senaste videoklippet: (se nedan för gamla video) jag kommer att lägga upp en instructable på hur du kan göra din egen LEDBOY spel system som gör att du kan spela detta spel. Observera att detta spel är fortfarande ett pågående arbete som...

Mobil kontrollerade robotic bilen med arduino och DTMF

Hej killar!Detta är mitt första projekt på instructables, hoppas du kommer att njuta av denna.Detta projekt handlar om hur du kan kontrollera en robotic bil med hjälp av mobiltelefon och hur du kan kontrollera att bil från var som helst i världen.Pro...

Customer Care IVR med hjälp av DTMF

Kundtjänst använder IVR (Interactive Voice Response) besvara metoden genom DTMF (Dual Tone Multi Frequency). Dess enkla att få aktuell information genom röst bara genom att trycka på nummer på mobilen efter kallelse. Dess nytta för kunden samt nytta...

Arequipe och Bocadillo med Won ton

det var stekt dag på Instructables, Frityrmaskiner var fulla med kokande olja och jag var utom mjölbananer tack vare mina tidigare recept. Men jag hade fortfarande arequipe och Bocadillo med. Så Christy hade en lysande idé: Vad sägs om Won ton fylld...

Styra saker med din iPod Touch/iPhone

Skapa din egen kontrollpaneler på din iPod Touch eller iPhone. Detta instructable visar hur du använder kontrollen , en fri app tillgänglig från iTunes store. Det visar också hur man kommunicerar med app använder ett PC-program.Minimikrav:PC med Wind...

Touch med Linkit en

I detta instructables ska jag visa dig hur du skapar en touch växla med Linkit en styrelsen. Detta är en kapacitiv touch och inte en Resistiv touch, så du kunde använda den av säkerhetsskäl eller designa det bara att slå på belysningen när du rör en...

DTMF-ROBOT (utan mikrokontroller)

HEJ VÄNNER!I detta instructable jag ska dela mitt projekt med dig...!Intro:-Detta projekt görs för projektet expo tävling i våra college (JNTUCEA)...Denna DTMF ROBOT kan styras från var som helst med hjälp av röstsamtal... och detta är vår egen krets...

DTMF-baserade hinder AVOIDER ROBOT

den är baserad på DTMF-teknik, som bilen svarar på låg och hög frekvens av nummer u tryckte i din mobiltelefon, efter att ha gett en ring,Steg 1: Blockera DIAGRAM Fungerande principen bakom projektet ILLUSTRERAS i BLOCKDIAGRAM,Steg 2: Komma igång med...

DIY Altoid DTMF Encoder/Generator!

Vi tar för givet i modern tid, men bara ett par decennier sedan (!), jag minns fortfarande livligt med min rotary telefon för att ringa ut. Någon gång i mellanstadiet, med tillkomsten av tre-vägs ringer, vår familj gått över till en tonvalstelefon te...

Bultande hjärta godis skål med Arduino

Jag ville göra en godis skål för Bus eller godis som såg ut som en spooky hjärta slog under godis. Jag hoppas att de yngre barnen tycker det är skrämmande och inte alltför skrämmande. Jag är säker att tonåringar med ingen kostym och örngott inte blir...