Chapter 17 DTMF generation and detection Dual Tone Multiple Frequency

Slides:



Advertisements
Similar presentations
Chapter 15 Infinite Impulse Response (IIR) Filter Implementation
Advertisements

Chapter 17 Goertzel Algorithm
Chapter 21 Frequency Modulation GMSK Modulation
Polyphase FIR Filter Implementation for Communication Systems
Chapter 14 Finite Impulse Response (FIR) Filters
Chapter 15 Infinite Impulse Response (IIR) Filters
Chapter 14 Finite Impulse Response (FIR) Filter Implementation
Chapter 19 Fast Fourier Transform
1 Application Software Course Simulink By: Mahdi Akbari 2010.
Copyright © 2003 Texas Instruments. All rights reserved. DSP C5000 Chapter 18 Image Compression and Hardware Extensions.
Chapter 5 Assembly Language
DSP C5000 Chapter 16 Adaptive Filter Implementation Copyright © 2003 Texas Instruments. All rights reserved.
Using Matrices in Real Life
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 4 Computing Platforms.
1 Copyright © 2010, Elsevier Inc. All rights Reserved Fig 2.1 Chapter 2.
FIGURE 11.1 Circuit for Example 11.1.
FIGURE 3.1 System for illustrating Boolean applications to control.
Higher-order linear dynamical systems Kay Henning Brodersen Computational Neuroeconomics Group Department of Economics, University of Zurich Machine Learning.
0 - 1 © 2007 Texas Instruments Inc, Content developed in partnership with Tel-Aviv University From MATLAB ® and Simulink ® to Real Time with TI DSPs Dual.
Introduction to Electronic Circuit Design
Review 0、introduction 1、what is feedback?
Chapter 20 This chapter provides a series of applications. There is no daughter cards with the DSK6713 and DSK6416 Part 1: Applications using the PCM3003.
Notes 15 ECE Microwave Engineering
Digital Filter Banks The digital filter bank is set of bandpass filters with either a common input or a summed output An M-band analysis filter bank is.
Introduction to Electronic Circuit Design
Slide 5-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 5 5 Device Management.
1 1 Mechanical Design and Production Dept, Faculty of Engineering, Zagazig University, Egypt. Mechanical Design and Production Dept, Faculty of Engineering,
Chapter 21b Reference Frameworks. Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004 Chapter 21b, Slide 2 Learning Objectives Introduce.
© 2003 Xilinx, Inc. All Rights Reserved Course Wrap Up DSP Design Flow.
The op-amp Differentiator
25 seconds left…...
Chapter 10: The Traditional Approach to Design
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 20 This chapter provides a series of applications. There is no daughter cards with the DSK6713 and DSK6416 Part 1: Applications using the PCM3003.
Connecting LANs, Backbone Networks, and Virtual LANs
Chapter 3 General-Purpose Processors: Software
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Chapter 14 Finite Impulse Response (FIR) Filters.
0 - 1 © 2010 Texas Instruments Inc Practical Audio Experiments using the TMS320C5505 USB Stick “Sine Waves” Texas Instruments University Programme Teaching.
Digital Representation of Audio Information Kevin D. Donohue Electrical Engineering University of Kentucky.
Dual Tone Multi-Frequency System Michael Odion Okosun Farhan Mahmood Benjamin Boateng Project Participants: Dial PulseDTMF.
Chapter 17 Goertzel Algorithm Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2002 Chapter 17, Slide 2 Learning Objectives  Introduction.
DSP Implementation of a 1961 Fender Champ Amplifier James Siegle Advisor: Dr. Thomas L. Stewart March 11, 2003.
Chapter 17 Microprocessor Fundamentals William Kleitz Digital Electronics with VHDL, Quartus® II Version Copyright ©2006 by Pearson Education, Inc. Upper.
Designs and Implementation Ring Detector circuit Design: Ring Detector circuit Design:
Adaptive Signal Processing Class Project Adaptive Interacting Multiple Model Technique for Tracking Maneuvering Targets Viji Paul, Sahay Shishir Brijendra,
“TMS320C5505 USB Stick Teaching Materials”
Digital Speech Transmission and Recovery. Overall System Output (speaker) Channel (coax cable) Receiver Circuit Input (microphone) Transmitter Circuit.
RM2D Let’s write our FIRST basic SPIN program!. The Labs that follow in this Module are designed to teach the following; Turn an LED on – assigning I/O.
Chapter 21 Frequency Modulation GMSK Modulation DSP C5000 Copyright © 2003 Texas Instruments. All rights reserved.
ECE 448: Lab 6 DSP and FPGA Embedded Resources (Digital Downconverter)
DSP C5000 Chapter 16 Adaptive Filter Implementation Copyright © 2003 Texas Instruments. All rights reserved.
Copyright © 2003 Texas Instruments. All rights reserved. DSP C5000 Chapter 20 Polyphase FIR Filter Implementation for Communication Systems.
4.1 Chapter 4 Digital Transmission Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
LIST OF EXPERIMENTS USING TMS320C5X Study of various addressing modes of DSP using simple programming examples Sampling of input signal and display Implementation.
Student Name USN NO Guide Name H.O.D Name Name Of The College & Dept.
Copyright © 2003 Texas Instruments. All rights reserved. DSP C5000 Chapter 17 DTMF generation and detection Dual Tone Multiple Frequency.
Multiplexers and De-Multiplexers
Chapter 20 Speech Encoding by Parameters 20.1 Linear Predictive Coding (LPC) 20.2 Linear Predictive Vocoder 20.3 Code Excited Linear Prediction (CELP)
Chapter 4 Digital Transmission. 4.2 Summary Line Coding Line Coding Schemes Block Coding Scrambling Signal Element versus data element Multilevel : 2b1Q.
By by  Y.MADHU KEERTHANA (084A1A0459)  RAHIM BASHA (084A1A0441)  G.BABJI REDDY (084A1A0416)  V.REVATHI (084A1A0456 ) UNDER THE GUIDENCE OF….... Mr.T.E.ARAVINDAN,
Arduino Based Industrial appliances control system by decoding dual tone multi frequency signals on GSM / CDMA network. Submitted by:
Voice Manipulator Department of Electrical & Computer Engineering
EEE4176 Applications of Digital Signal Processing
Embedded Systems Design
This chapter provides a series of applications.
Chapter 17 Goertzel Algorithm
Lab 5 Part II Instructions
Lab 2 Part II Instructions
Presentation transcript:

Chapter 17 DTMF generation and detection Dual Tone Multiple Frequency DSP C5000 Chapter 17 DTMF generation and detection Dual Tone Multiple Frequency

Learning Objectives DTMF signaling and tone generation. DTMF signal generation DTMF tone detection techniques and the Goertzel algorithm. Implementation of the Goertzel algorithm for tone detection on DSP

Introduction Dual Tone Multi-Frequency (DTMF) is a widespread used signalling system: telephone services use commonly key strokes for options selection DTMF is mainly used by touch-tone digital telephone sets which are an alternative to rotary telephone sets. DTMF has now been extended to electronic mail and telephone banking systems It is easily implemented on a DSP as small part of the tasks.

DTMF Signaling In a DTMF signaling system a unique combination of two normalized frequency tones Two types of signal processing are involved: Coding or generation. Decoding or detection. For coding, two sinusoidal sequences of finite duration are added in order to represent a digit.

Dual tone Generation A key stroke on « 9 » will generate 2 added tones, one at 852Hz low frequency and one at 1477Hz The 2 tones are Both audible.

Tones Generation Dual tone generation can be done with 2 sinewave sources connected in parallel. Different method can be used for such implementation: Polynomial approximation Look-up table Recursive oscillator DTMF signal must meet certain duration and spacing requirements 10 Digits are sent per second. Sampling is done via a codec at 8Khz Each tone duration must be >40msec and a spacing of 50ms minimum between two digits is required

2 and 9 digit signal sequence

DTMF generation implementation Tone generation of a DTMF is generally based on two programmable, second order digital sinusoidal oscillators, one for the low fl the other one for the high fh tone. Two oscillators instead of eight reduce the code size. Coefficient and initial conditions are set for each particular oscillation + + y(n) Low freq Z-1 + Z-1 + High freq Z-1 + Z-1

Digital oscillator parameters 2 pole resonator filter with 2 complexe poles on the unit cercle (unstable) Output signal: Y(n)= -a1y(n-1)-y(n-2) Initial conditions: Y(-1)=0 Y(-2)=-A sin(w0) w0=2Pf0/fs f0 is the tone freq fs is the sampling freq

C55 sine generator code Frames of data stream of 120 samples (15msec) long contain either DTMF tone samples or pause samples. The encoder is either in idle mode, not used to encode digits or active and generates DTMF tones and pauses The sine equation is implemented in assembly language: Mov a1/2, T1 ; coded in Q15 Mpym *AR1+,T1,AC0; ;AR1 y(n-1); AR1+1 y(n-2) sub *AR1-<<#16,AC0,AC ;AC1= a1/2*y(n-1)-y(n-2) Add AC0,AC1 ; AC1= a1*y(n-1)-y(n-2) ||delay *AR1 ;y(n-2)=y(n-1) Mov rnd(hi(AC1)),*AR1 ;y(n-1)=y(n) ; output signal pointer is AR1

Oscillator parameters at fs=8Khz

DTMF Tone Detection Goertzel algorithm is the more efficient detection algorithm for a single tone. To detect the level at a particular frequency the DFT is the most suitable method: The Goertzel algorithm is a recursive implementation of the DFT , 16 samples of the DFT are computed for 16 tones See DTMF.pdf file for a complete description

Goertzel Algorithm Implementation To implement the Goertzel algorithm the following equations are required: The only coefficient needed to compute output signal level is Cos(2pfk/fs)

Goertzel Algorithm Implementation Get N input samplex(n) Compute recursive part: Wk(n), n=0 to N-1 For 8 frequencies Calculate X2(k) for 8 freq Tests: Magnitude Harmonic Total Energy Output Digit

Goertzel Algorithm Implementation The value of k determines the tone we are trying to detect and is given by: Where: fk = frequency of the tone. fs = sampling frequency. N is set to 205. Then we can calculate coefficient 2cos(2**k/N).

Goertzel Algorithm Implementation Frequency k Coefficient (decimal) (Q15) 1633 42 0.559454 0x479C 1477 38 0.790074 0x6521 1336 34 1.008835 0x4090* 1209 31 1.163138 0x4A70* 941 24 1.482867 0x5EE7* 852 22 1.562297 0x63FC* 770 20 1.635585 0x68AD* 697 18 1.703275 0x6D02* N = 205 fs = 8kHz During fixed point implementation this will prevent overflow * The decimal values are divided by 2 to be represented in Q15 format (a1/2<1).

Goertzel Algorithm Implementation wn = x(n) - wn-2 + a1*wn-1; 0n<N-1 = sum1 + prod1 Where: a1= 2cos(2k/N) and N=205 This gives 205 MACs+ 205 ADD The last computation gives the energy of the tone and is done with: 2 SQRS and one multiplication |Yk(N) |2 = Q2(N) + Q2(N-1) - a1*Q(N)*Q(N-1)

Goertzel Algorithm Implementation void Goertzel (void) { static short delay; static short delay_1 = 0; static short delay_2 = 0; static int N = 0; static int Goertzel_Value = 0; int I, prod1, prod2, prod3, sum, R_in, output; short input; short coef_1 = 0x4A70; // For detecting 1209 Hz R_in = mcbsp0_read(); // Read the signal in input = (short) R_in; input = input >> 4; // Scale down input to prevent overflow prod1 = (delay_1*coef_1)>>14; delay = input + (short)prod1 - delay_2; delay_2 = delay_1; delay_1 = delay; N++; if (N==206) prod1 = (delay_1 * delay_1); prod2 = (delay_2 * delay_2); prod3 = (delay_1 * coef_1)>>14; prod3 = prod3 * delay_2; Goertzel_Value = (prod1 + prod2 - prod3) >> 15; Goertzel_Value <<= 4; // Scale up value for sensitivity N = 0; delay_1 = delay_2 = 0; } output = (((short) R_in) * ((short)Goertzel_Value)) >> 15; mcbsp0_write(output& 0xfffffffe); // Send the signal out return; ‘C’ code This first implementation facilitates debugging

C54 assembly programme Goertzel tone detection routine ;Assume input signal x(n) is read through an I/O port at address 100h ;Output level Y(k)2 is sent to a port at address 1001h ;Scratch RAM reservation .bss wn,2 ;w(n-1) andw(n-2) .bss xn,1 ; input signal xn .bss Y,1 ; tone Energy .bss alpha,1 ;coefficient storage ; Constant initialisation alphap .word 0x68ADh ; a2/2 coefficient value at fs=8khz ; (prog memory) N .set 205 ;value of N ;DSP modes initialisation SSBX FRCT ;Product shift for Q15 format SSBX SXM ;Sign extension during shift RSXB OVA ; no overflowmode for A and B RSXB OVB

C54 assembly programme ;Data pointers Initialisation LD #wn,AR2 ; AR2 is pointing w(n-1) LD #xn,AR1 LD #Y,AR4 LD #alpha,AR3 MVPD #alphap,*AR3 ;Move alpha value to data RAM RPTZ #1 ;Accumulator A=0 STL A,*AR2+ , w(0) and w(-1) are set to 0 MAR *AR2- ; AR2 is pointing w(n-2)

Algorithm Core STM #N-1,BRC ; repeat block number RPTB loop-1 PORTR 100h,*AR1 LD *AR1,16,A ; AccH=x(n) SUB *AR2,16,A ;A=x(n)-w(n-2) MAC *AR2,*AR3,A ;A=x(n)-w(n-2)+alphaw(n-1) MAC *AR2,*AR3,A ;A=x(n)-w(n-2)+2alphaw(n-1) delay *AR2 ;w(n-2)=w(n-1) tap delay STH A,*AR2+ ;w(n-1)=w(n) tap delay Loop ;end of loop

Energy calculation LD *AR2,16,A ;A=w(N-1) MPYA *AR2- ;T=w(N-1) B=w(N-1)^2 MPY *AR2,A ;A=w(N)*w(N-1) LD *AR3,T ;T=alphap MPYA A ;A=alphap*w(N)*w(N-1) SUB A,1,B ; substract with a left shift to ;obtain 2alphap ; B=w(N-1)^2-2alphap*w(N)*w(N-1) LD *AR2,T ;T=w(N) MAC *AR2,B ;B=w(N-1)^2-2alphap*w(N)*w(N-1)+w(N)^2 STH *AR4 ;save to Y PORTW *AR4,101h ;copy output level

Universal Multifrequency Tone Generator and detector (UMTG) This software module developed by SPIRIT Corp. for the TMS320C54x and TMS320C55X platform It can be used into embedded devices for generating various telephone services used in intelligent network systems Or as a simple tone generator for custom applications It is fully compliant with TMS Algorithm standard rules See SPRU 639 and SPRU 638 AN

Follow on Activities Application 7 for the TMS320C5416 DSK Uses a microphone to pick up the sounds generated by a touch phone. The buttons pressed are identified using the Goerztel algorithm and their values displayed on Stdout. The frequency response of each Goertzel filter is given using Matlab.