{"id":1480,"date":"2012-04-11T20:01:25","date_gmt":"2012-04-11T20:01:25","guid":{"rendered":"http:\/\/192.168.16.235\/?page_id=1480"},"modified":"2020-01-10T13:36:59","modified_gmt":"2020-01-10T13:36:59","slug":"signal-generatordetector","status":"publish","type":"page","link":"https:\/\/commetrex.com\/?page_id=1480","title":{"rendered":"Signal Generator\/Detector"},"content":{"rendered":"<p>[vc_row css_animation=&#8221;&#8221; row_type=&#8221;row&#8221; use_row_as_full_screen_section=&#8221;no&#8221; type=&#8221;grid&#8221; angled_section=&#8221;no&#8221; text_align=&#8221;left&#8221; background_image_as_pattern=&#8221;without_pattern&#8221; css=&#8221;.vc_custom_1578316708859{margin-top: 80px !important;padding-bottom: 70px !important;}&#8221; z_index=&#8221;&#8221;][vc_column][vc_row_inner row_type=&#8221;row&#8221; type=&#8221;grid&#8221; text_align=&#8221;left&#8221; css_animation=&#8221;&#8221; el_class=&#8221;bd-first-sec&#8221;][vc_column_inner width=&#8221;5\/6&#8243;][vc_column_text]Commetrex\u2019 Signal Generator\/Detector (SGD) furnishes all necessary functionality at the physical- layer level to support in-band telephony-signaling functions. Specifically, the SGD implements signal- processing functionality to generate and detect DTMF and Multi-frequency(MF) (R1\/R2) digits as well as any generic in-band tone comprised of up to two frequencies. The SGD is compliant with the <strong><a title=\"MSP Consortium\" href=\"http:\/\/www.msp.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">MSP Consortium<\/a><\/strong> M.100 recommendation, the Texas Instruments XDAIS algorithm packaging standard, the ECTF S.100 requirements for signal generation and detection, and the <strong><a title=\"ITU Q.24\" href=\"http:\/\/www.itu.int\/rec\/T-REC-Q.24\/en\" target=\"_blank\" rel=\"noopener noreferrer\">ITU Q.24<\/a><\/strong> recommendation.<\/p>\n<p>The baseline SGD is implemented and maintained in the C-language. More resource-efficient instances of the product are available for specific processors, such as the Texas Instruments TMS320C5400 and \u2018C6000 DSPs and the ARC International ARCtangent customizable processor. Commetrex also plans to use the SGD in its MSP PCM Interface Boards.[\/vc_column_text][\/vc_column_inner][vc_column_inner width=&#8221;1\/6&#8243;][vc_single_image image=&#8221;5238&#8243; img_size=&#8221;full&#8221; qode_css_animation=&#8221;&#8221;][\/vc_column_inner][\/vc_row_inner][\/vc_column][\/vc_row][vc_row css_animation=&#8221;&#8221; row_type=&#8221;row&#8221; use_row_as_full_screen_section=&#8221;no&#8221; type=&#8221;grid&#8221; angled_section=&#8221;no&#8221; text_align=&#8221;left&#8221; background_image_as_pattern=&#8221;without_pattern&#8221; z_index=&#8221;&#8221; css=&#8221;.vc_custom_1578663417526{padding-bottom: 60px !important;}&#8221;][vc_column][vc_column_text]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1482\" title=\"Signal Generator\/Detector\" src=\"http:\/\/commetrex.com\/wp-content\/uploads\/2012\/04\/sgd.jpg\" alt=\"Signal Generator\/Detector\" width=\"283\" height=\"227\" \/>DTMF signaling is a mechanism used in the PCM- TDM telephone network to represent digits with tone frequencies in order to transmit them over an analog telephone line. DTMF signaling is primarily used to encode the dialed number generated by a subscriber terminal that is to be processed by the subscriber\u2019s access device. In addition, DTMF is popular in interactive applications, such as telephone banking or voice-mail systems, in which the user can select options from a menu by sending DTMF signals from the telephone.<\/p>\n<p>The SGD generates DTMF mathematically using two digital oscillators. One of the most frequently used detection algorithms, and the basis of the SGD\u2019s detection, is the Goertzel algorithm, which efficiently extracts the spectral information from the incoming signal.<\/p>\n<p>Signaling Systems R1 and R2 are designed for information exchange over toll facilities. Signaling System R1 is used in North America while R2 is used in Europe. Both systems use MF tones for signaling.<\/p>\n<h2>Design Overview<\/h2>\n<p>The SGD can be thought of as a media-stream transform (MST). For receive, it accepts a PCM sample stream from the telephone network and transforms it to a data and event stream for an application program. For transmit, it accepts commands from the application program and generates a PCM stream.<\/p>\n<p>For example, in DTMF\/R1\/R2 tone generation, the input stream is transformed (encoded) from a sequence of digits to combinations of specified frequencies. In DTMF\/R1\/R2 tone detection, the input stream is transformed (decoded) from a harmonic signal of specified frequencies to a sequence of digits. The signal (DTMF, MF\/R1\/R2, and a generic tone) generator is implemented in one MST, the DTMF and a precise tone detector in another MST, and the MF (R1&amp;R2) tones detector are in a third MST. The figure below shows the above partitioning of the signal generator\/detector MSTs.<\/p>\n<h2>DTMF\/MF and Precise Tone Generation<\/h2>\n<p>The TONE MST accepts the following commands.<\/p>\n<h3>Input Commands<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Command Name<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Gen_dtmf<\/td>\n<td align=\"center\">Starts DTMF generation.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Gen _R1<\/td>\n<td align=\"center\">Starts MF\/R1 generation.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Gen _R2F<\/td>\n<td align=\"center\">Starts MF\/R2F generation.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Gen _R2B<\/td>\n<td align=\"center\">Starts MF\/R2B generation.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Gen _tone<\/td>\n<td align=\"center\">Starts generic tone generation.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Stop<\/td>\n<td align=\"center\">Stops the TONE MST<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Parameters<\/h3>\n<p>The tables below show the TONE MST user-defined parameters for DTMF, MF, and a generic tone generation.<\/p>\n<h3>DTMF and MF Parameters<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Parm Name<\/td>\n<td align=\"center\">Type<\/td>\n<td align=\"center\">Default<\/td>\n<td align=\"center\">Units<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Level 1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-6<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The level of the low frequency component of the DTMF pair. Valid range \u2013 43 to \u20133.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Level 2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-4<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The level of the high frequency component of the DTMF pair. Valid range \u2013 43 to \u20133.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">LongPause<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">5000<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The delay associated with the \u2018.\u2019 (period) character. Valid range 0-65535.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Off Time<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">55<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The duration of the silence time between each DTMF digit. Valid range is 0\u201365535.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">On Time<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">45<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The duration of each DTMF digit. Valid range is 0\u201365535.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">ShortPause<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">2000<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The delay associated with the \u2018,\u2019 (comma) character. Valid range 0-65535.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Generic Tone Parameters<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Parameter Name<\/td>\n<td align=\"center\">Type<\/td>\n<td align=\"center\">Default<\/td>\n<td align=\"center\">Units<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Level 1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-20<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The level of the first (or only) frequency component. Valid range \u2013 43 to \u20133.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Level 2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-4<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The level of the second frequency component (if any). Valid range \u2013 43 to \u20133.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OffTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">0<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The duration of silence between tones on time. Specify 0 for no off-time. Valid range 0-65535.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OnTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">200<\/td>\n<td align=\"center\">Msec<\/td>\n<td align=\"center\">The duration of the tone. Valid range is 1\u201365535.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">Parameter 1 of the first (or only) frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">Parameter 2 of the first (or only) frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">Parameter 1 of the second frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">N\/A<\/td>\n<td align=\"center\">Parameter 2 of the second frequency of the generated tone. Must be S.10 fixed point format. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Iterations<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">1<\/td>\n<td align=\"center\">Integer<\/td>\n<td align=\"center\">The number of times to repeat the alternating tone and silence period. A count of \u20131 means repeat forever*. Otherwise the valid range is 1 to 32767.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>* Therefore, if the Iterations parameter is set \u20131 and the Off-time parameter is set to 0, a continuous tone is produced.<\/p>\n<h3>DTMF and Precise Tone Detection<\/h3>\n<p>The DTMF MST implements the DTMF tone detection and the generic precise-tone detector. The generic tone can be up to two frequencies.<\/p>\n<h3>Input Commands<\/h3>\n<p>The TONE MST accepts two commands: one for the DTMF detector and another for the generic precise- tone detector.The commands accepted by the DTMF MST are listed in the table below.<\/p>\n<h3>Tone Commands<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Command Name<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Detect_DTMF<\/td>\n<td align=\"center\">Starts detecting DTMF digits<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Detect_Tone<\/td>\n<td align=\"center\">Starts detecting a specified generic tone<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Stop<\/td>\n<td align=\"center\">Stops DTMF\/Tone detection<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Parameters<\/h3>\n<p>The tables below show the DTMF MST user-defined parameters for DTMF and a generic tone detection.<\/p>\n<h3>DTMF Tones Parameters<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Parm Name<\/td>\n<td align=\"center\">Type<\/td>\n<td align=\"center\">Default<\/td>\n<td align=\"center\">Units<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OffQualLevel<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-43<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The minimum signal level required to maintain recognition of a DTMF signal once recognition has started. The valid range is \u201343 to \u201315.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OffQualTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">40<\/td>\n<td align=\"center\">ms<\/td>\n<td align=\"center\">The minimum duration of absence of a recognized DTMF signal before end-of-digit event will be emitted. The valid range is 5 to 32767.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OnQualLevel<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-39<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The minimum signal level recognized as a DTMF signal. The valid range is \u201343 to \u201315.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OnQualTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">40<\/td>\n<td align=\"center\">ms<\/td>\n<td align=\"center\">The minimum duration of a recognized DTMF signal before a digit event will be emitted. The valid range is 23 to 32767.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">MaxInterrupt<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">20<\/td>\n<td align=\"center\">ms<\/td>\n<td align=\"center\">The maximum time which a digit may be interrupted before it is deemed ended. Usually range is between 10ms to 50 ms.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Tones Parameters<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Parm Name<\/td>\n<td align=\"center\">Type<\/td>\n<td align=\"center\">Default<\/td>\n<td align=\"center\">Units<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OffQualTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">500<\/td>\n<td align=\"center\">ms<\/td>\n<td align=\"center\">The minimum duration of absence of detected tone before a tone-end event will be emitted. The valid range is 0 to 32767.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OnQualLevel<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">-28<\/td>\n<td align=\"center\">dBm<\/td>\n<td align=\"center\">The minimum signal level that will be detected. The valid range is \u201340 to 0.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">OnQualTime<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">500<\/td>\n<td align=\"center\">Ms<\/td>\n<td align=\"center\">The minimum duration of a detected tone before a tone event will be emitted. The valid range is 22 to 32767.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #1 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #2 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_3<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #3 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ1_Parm_4<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #4 of the first (or only) frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #1 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #2 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_3<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #3 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">FREQ2_Parm_4<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">Parameter #4 of the 2nd frequency of the generated tone. This parameter is computed from the desired frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Bandwidth1<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">70<\/td>\n<td align=\"center\">Hz<\/td>\n<td align=\"center\">The bandwidth of the 1st frequency.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Bandwidth2<\/td>\n<td align=\"center\">INT<\/td>\n<td align=\"center\">70<\/td>\n<td align=\"center\">Hz<\/td>\n<td align=\"center\">The bandwidth of the 2nd frequency.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>The Input Data Stream<\/h2>\n<p>The input data stream consists of linear samples at 8000 sampling rate. Each call to the SGD to process the PCM stream is usually executed for 10 milliseconds of linear PCM data.<\/p>\n<h2>MF Detection<\/h2>\n<h3>Commands<\/h3>\n<p>The MF MST accepts the following commands.<\/p>\n<h4>TONE MST Commands<\/h4>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Command Name<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Detect_MF_R1<\/td>\n<td align=\"center\">Starts detecting MF R1 tones<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Detect_MF_R2B<\/td>\n<td align=\"center\">Starts detecting MF R2 backward tones<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Detect_MF_R2F<\/td>\n<td align=\"center\">Starts detecting MF R2 forward tones<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Stop<\/td>\n<td align=\"center\">Stops MF tone detection<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The MF MST reports the following events:<\/p>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Event Name (ID)<\/td>\n<td align=\"center\">Value<\/td>\n<td align=\"center\">Description<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">_BEGIN<\/td>\n<td align=\"center\">\u20180\u2019-\u20189\u2019, \u2019B\u2019-\u2018F\u2019<\/td>\n<td align=\"center\">MF digit begins.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">_END<\/td>\n<td align=\"center\">\u20180\u2019-\u20189\u2019, \u2019B\u2019-\u2018F\u2019<\/td>\n<td align=\"center\">MF digit ends.<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">_DONE<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\">MF detection stopped.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>MF Events<\/h2>\n<h3>Tone Generation<\/h3>\n<p>The tone generation MST has a wait-for-dial-tone capability and the following performance specifications:<\/p>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Frequency resolution<\/td>\n<td align=\"center\">+\/-1 Hz<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Dynamic level<\/td>\n<td align=\"center\">-33 dBm to 0 dBm (programmable), -9 dBm nominal<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">DTMF digits<\/td>\n<td align=\"center\">0-9, *, #, and ABCD per ITU-T Q.23 and Q.24<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">DTMF Rate<\/td>\n<td align=\"center\">10 digits\/sec (programmable)<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">MF digits<\/td>\n<td align=\"center\">0-9, KP, ST, STP, KP2\/STP2, and ST3 per US(R1) and ITU-T Q.321 European MFC\/R2 forward\/ reverse tones per ITU-T Q.441<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Generic tone type<\/td>\n<td align=\"center\">Single or dual<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Duration<\/td>\n<td align=\"center\">10 msec increments<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Generic tone freq. Range<\/td>\n<td align=\"center\">200 to 4000 Hz<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>DTMF Detection<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Dynamic Range<\/td>\n<td align=\"center\">-35 to -3 dbm<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Minimum tone duration<\/td>\n<td align=\"center\">As specified in Q.24; AT&amp;T: 40 ms<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Inter-digit timing<\/td>\n<td align=\"center\">Detects like digits with a 40 ms inter-digit delay. Detects different digits with 0 ms interdigit delay<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Acceptable Twist<\/td>\n<td align=\"center\">As specified in Q.24; AT&amp;T: +4 dB to \u20138 dB<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Talkoff<\/td>\n<td align=\"center\">Passing the Mitel and Bellcore talkoff requirements<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">SNR<\/td>\n<td align=\"center\">10 dB (reference to lowest amplitude tone)<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Frequency Tolerance<\/td>\n<td align=\"center\">As specified in Q.24; AT&amp;T: +\/- 1.5% &lt; BW &lt; +\/-3.5%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>MF Signaling Detection<\/h3>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Dynamic Range<\/td>\n<td align=\"center\">-35 to \u20133 dBm<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Acceptable Twist<\/td>\n<td align=\"center\">6 dB<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Talkoff<\/td>\n<td align=\"center\">TBD<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Bandwidth<\/td>\n<td align=\"center\">+\/2% Hz<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Test Results<\/h2>\n<p>The Commetrex DTMF detector uses a windowing algorithm to meet all the frequency-tolerance requirements of Q.24. The following table contains the test results.<\/p>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">Decode Tests(All digits detected)<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Frequency Tolerance Tests<\/td>\n<td align=\"center\">Frequency<\/td>\n<td align=\"center\">Pos Deviation<\/td>\n<td align=\"center\">Neg Deviation<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">697<\/td>\n<td align=\"center\">2.00%<\/td>\n<td align=\"center\">-2.20%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Low Band<\/td>\n<td align=\"center\">770<\/td>\n<td align=\"center\">2.00%<\/td>\n<td align=\"center\">-2.00%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">852<\/td>\n<td align=\"center\">2.10%<\/td>\n<td align=\"center\">-2.00%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">941<\/td>\n<td align=\"center\">2.00%<\/td>\n<td align=\"center\">-2.30%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">1209<\/td>\n<td align=\"center\">2.50%<\/td>\n<td align=\"center\">-2.70%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">High Band<\/td>\n<td align=\"center\">1336<\/td>\n<td align=\"center\">2.50%<\/td>\n<td align=\"center\">-2.70%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">1477<\/td>\n<td align=\"center\">2.70%<\/td>\n<td align=\"center\">-2.80%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\">1633<\/td>\n<td align=\"center\">2.80%<\/td>\n<td align=\"center\">-2.90%<\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Twist Tests<\/td>\n<td align=\"center\">Standard Twist<\/td>\n<td align=\"center\">Reverse Twist<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit 1<\/td>\n<td align=\"center\">3.9 dB<\/td>\n<td align=\"center\">8.0 dB<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit 5<\/td>\n<td align=\"center\">4.0 dB<\/td>\n<td align=\"center\">8.4 dB<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit 9<\/td>\n<td align=\"center\">4.0 dB<\/td>\n<td align=\"center\">8.2 dB<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit D<\/td>\n<td align=\"center\">4.2 dB<\/td>\n<td align=\"center\">7.9 dB<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Dynamic Range Test<\/td>\n<td align=\"center\">Dynamic Range<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit 1<\/td>\n<td align=\"center\">29 dB<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Guard Time Test<\/td>\n<td align=\"center\">Min Pause Time<\/td>\n<td align=\"center\">Min Guard Time<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Digit 1<\/td>\n<td align=\"center\">Configurable<\/td>\n<td align=\"center\">29.4 ms<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Acceptable Signal to Noise Ratio Test<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">(-24dBV)<\/td>\n<td align=\"center\">pass<\/td>\n<td align=\"center\">8.0 dB<\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">(-18dBV)<\/td>\n<td align=\"center\">pass<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">(-12dBV)<\/td>\n<td align=\"center\">pass<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<tr>\n<td align=\"center\">TALK-OFF Test<\/td>\n<td align=\"center\">zero hits (pass)<\/td>\n<td align=\"center\"><\/td>\n<td align=\"center\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Texas Instruments TMS320C6000 Resource Utilization<\/h2>\n<h3>Tone generator<\/h3>\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">MCPS single-sample:<\/td>\n<td align=\"center\">1.1<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Program Memory:<\/td>\n<td align=\"center\">2.5K bytes<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Constants\/tables:<\/td>\n<td align=\"center\">900 bytes<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Per-Instance Memory<\/td>\n<td align=\"center\">64 bytes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>DTMF detector<\/h3>\n<table border=\"0\" width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td align=\"center\">MCPS single-sample:<\/td>\n<td align=\"center\">2.1<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Program Memory:<\/td>\n<td align=\"center\">6.5K bytes<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Constants\/tables:<\/td>\n<td align=\"center\">340 bytes<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">Per-Instance Memory<\/td>\n<td align=\"center\">456 bytes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[vc_row css_animation=&#8221;&#8221; row_type=&#8221;row&#8221; use_row_as_full_screen_section=&#8221;no&#8221; type=&#8221;grid&#8221; angled_section=&#8221;no&#8221; text_align=&#8221;left&#8221; background_image_as_pattern=&#8221;without_pattern&#8221; css=&#8221;.vc_custom_1578316708859{margin-top: 80px !important;padding-bottom: 70px !important;}&#8221; z_index=&#8221;&#8221;][vc_column][vc_row_inner row_type=&#8221;row&#8221; type=&#8221;grid&#8221; text_align=&#8221;left&#8221; css_animation=&#8221;&#8221; el_class=&#8221;bd-first-sec&#8221;][vc_column_inner width=&#8221;5\/6&#8243;][vc_column_text]Commetrex\u2019&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":98,"menu_order":243,"comment_status":"closed","ping_status":"closed","template":"template-products.php","meta":{"footnotes":""},"class_list":["post-1480","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/pages\/1480","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/commetrex.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1480"}],"version-history":[{"count":4,"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/pages\/1480\/revisions"}],"predecessor-version":[{"id":5290,"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/pages\/1480\/revisions\/5290"}],"up":[{"embeddable":true,"href":"https:\/\/commetrex.com\/index.php?rest_route=\/wp\/v2\/pages\/98"}],"wp:attachment":[{"href":"https:\/\/commetrex.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}