{"id":658,"date":"2010-02-05T20:34:12","date_gmt":"2010-02-05T17:34:12","guid":{"rendered":"http:\/\/pblog.ru\/?p=658"},"modified":"2010-11-29T22:21:37","modified_gmt":"2010-11-29T19:21:37","slug":"bystroe-preobrazovanie-fure-praktika-ispolzovaniya","status":"publish","type":"post","link":"http:\/\/pblog.ru\/?p=658","title":{"rendered":"\u0411\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435. \u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f"},"content":{"rendered":"<p>\u0410\u0432\u0442\u043e\u0440: <strong>\u0411\u0430\u0434\u043b\u043e \u0421\u0435\u0440\u0433\u0435\u0439 \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432\u0438\u0447<\/strong> aka <strong>raxp<\/strong><br \/>\n<a href=\"http:\/\/raxp.radioliga.com\">http:\/\/raxp.radioliga.com<\/a><\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/11.png\"><img loading=\"lazy\" class=\"aligncenter size-full wp-image-659\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/11.png\" alt=\"\" width=\"595\" height=\"211\" \/><\/a><\/p>\n<p style=\"text-align: right\">\u0420\u0438\u0441. 1. &#171;\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0441\u043e\u0444\u0442\u043e\u0432\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u043b\u0438\u0448\u044c \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445, \u043b\u0438\u0431\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439&#187;<\/p>\n<p><span style=\"color: #808080\">\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432 \u0440\u0430\u0434\u0438\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0435 \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u044b\u043c \u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0431\u0440\u0435\u043d\u0434\u043e\u0432 \u043a\u0430\u043a Tektronix, \u0442\u0430\u043a \u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 DSP \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u041f\u041b\u0418\u0421 \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043e\u0444\u0438\u0441\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430\u0445. \u0414\u0430\u043d\u043d\u044b\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u043e\u043c \u043c\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0446\u0438\u043a\u043b \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u043c\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0438 \u0438\u0445 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u043c \u0430\u0443\u0434\u0438\u043e\u043f\u043e\u0442\u043e\u043a\u043e\u043c, \u0438 \u043e\u0441\u0432\u043e\u0438\u043c\u00a0 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0443 \u0424\u0443\u0440\u044c\u0435-\u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044e DTMF.<\/span><strong> <\/strong><\/p>\n<p><strong>\u041a\u0440\u0430\u0442\u043a\u0438\u0439 \u044d\u043a\u0441\u043a\u0443\u0440\u0441\u2026<\/strong><\/p>\n<p>\u0421\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440* \u2014 \u044d\u0442\u043e \u043f\u0440\u0438\u0431\u043e\u0440 \u0434\u043b\u044f \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u044d\u043d\u0435\u0440\u0433\u0438\u0438 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043c\u0430\u0433\u043d\u0438\u0442\u043d\u044b\u0445 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u0432 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u043e\u043b\u043e\u0441\u0435 \u0447\u0430\u0441\u0442\u043e\u0442 \u0438 \u0431\u044b\u0432\u0430\u0435\u0442 \u043a\u0430\u043a \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430, \u0442\u0430\u043a \u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u043c. \u041f\u043e \u0441\u043f\u043e\u0441\u043e\u0431\u0443 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u044e\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u043e\u0432\u044b\u0435 \u0438 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0435, \u0430 \u043f\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0443 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u2014 \u0441\u043a\u0430\u043b\u044f\u0440\u043d\u044b\u0435 (\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e-\u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u043d\u044b\u0445 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0432) \u0438 \u0432\u0435\u043a\u0442\u043e\u0440\u043d\u044b\u0435 (\u0444\u0430\u0437\u043e-\u0447\u0430\u0441\u0442\u043e\u0442\u043d\u044b\u0445 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0432).<\/p>\n<p><span style=\"color: #808080\"> * \u0412 1822 \u0433\u043e\u0434\u0443 \u0424\u0443\u0440\u044c\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0440\u0430\u0431\u043e\u0442\u0443 &#171;\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0442\u0435\u043e\u0440\u0438\u044f \u0442\u0435\u043f\u043b\u0430&#187;, \u0441\u044b\u0433\u0440\u0430\u0432\u0448\u0443\u044e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043e\u043d \u043e\u043f\u0438\u0441\u0430\u043b \u043c\u0435\u0442\u043e\u0434 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 (\u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435), \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0440\u044f\u0434\u0430\u043c\u0438 (\u0440\u044f\u0434\u044b \u0424\u0443\u0440\u044c\u0435). \u0424\u0443\u0440\u044c\u0435 \u0442\u0430\u043a\u0436\u0435 \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0434\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0442\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u044f\u0434 \u043b\u044e\u0431\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438, \u0445\u043e\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u043f\u044b\u0442\u043a\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u0430, \u043e\u043d\u0430 \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0430\u043b\u0430 \u043e\u0441\u043d\u043e\u0432\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432. \u041a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0437\u0432\u0443\u043a\u043e\u0432\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u043f\u0435\u0440\u043f\u043e\u0437\u0438\u0446\u0438\u0435\u0439 \u0437\u0432\u0443\u043a\u043e\u0432\u044b\u0445 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442, \u0442\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432 \u0432\u0438\u0434\u0435 &#171;\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e&#187; \u0441\u043f\u0435\u043a\u0442\u0440\u0430, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c\u043e\u0433\u043e f(?). \u0418\u043c\u0435\u043d\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 j(t) \u0438 f(?) \u0438 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 \u0424\u0443\u0440\u044c\u0435-\u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0441\u043a\u043e\u043f\u0438\u0438 \/ \u041b\u0438\u0442.<\/span><\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u0443 \u0441\u043f\u0435\u043a\u0442\u0440\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0412\u0430\u0436\u043d\u0435\u0439\u0448\u0438\u043c \u0435\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u2013 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c, \u0442.\u0435. \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u00a0 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 \u043c\u0435\u0436\u0434\u0443 \u0434\u0432\u0443\u043c\u044f \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c.<\/p>\n<p><!--more--><\/p>\n<p><strong>1. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u0438\u043b\u0438\u2026 \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043c\u044b \u0443\u0447\u0438\u043c \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0443<\/strong><\/p>\n<p>\u0412\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043a\u0443\u0440\u0441 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 <strong>[1-6]<\/strong>. \u041a\u0430\u043a \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0442\u0430\u043a\u043e\u0439 \u0432\u0438\u0434 \u0432\u043e\u0437\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0444\u043e\u0440\u043c\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0432\u0440\u0435\u043c\u0435\u043d\u0438 T, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u043c. \u041f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0439 \u0444\u043e\u0440\u043c\u043e\u0439 \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0438\u043b\u0438 \u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u0435\u0442\u0441\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u043e\u0439, \u0444\u0430\u0437\u043e\u0439 \u0438 \u043f\u0435\u0440\u0438\u043e\u0434\u043e\u043c. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043d\u0435\u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438.<\/p>\n<p>\u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u0449\u0430\u044f \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0438\u0441\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0435\u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430 \u0440\u0430\u0437\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0432 \u0440\u044f\u0434 \u0424\u0443\u0440\u044c\u0435. \u0414\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u0442\u044c \u0440\u044f\u0434 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u0441 \u0442\u0430\u043a\u0438\u043c\u0438 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430\u043c\u0438, \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u043c\u0438 \u0438 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0430\u0437\u0430\u043c\u0438, \u0430\u043b\u0433\u0435\u0431\u0440\u0430\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0440\u0430\u0432\u043d\u0430 \u043e\u0440\u0434\u0438\u043d\u0430\u0442\u0435 \u0438\u0441\u0441\u043b\u0435\u0434\u0443\u0435\u043c\u043e\u0433\u043e \u043d\u0435\u0441\u0438\u043d\u0443\u0441\u043e\u0438\u0434\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0412 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u0440\u044f\u0434 \u0424\u0443\u0440\u044c\u0435 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u0432 \u0432\u0438\u0434\u0435 \u0441\u0443\u043c\u043c\u044b \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 (\u0441\u043c. \u0444\u043e\u0440\u043c\u0443\u043b\u0430):<\/p>\n<p style=\"text-align: center\">U(t) = Uo + SUM ( Um * sin ( k * ? * t + ? ) );<\/p>\n<p>\u0433\u0434\u0435 k\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u043d\u043e\u043c\u0435\u0440 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438;<br \/>\nk?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u0443\u0433\u043b\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 k- \u043e\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438;<br \/>\n? = 2*pi\/T &#8212; \u0443\u0433\u043b\u043e\u0432\u0430\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438;<br \/>\n? \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8212; \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0430\u0437\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u0430;<br \/>\nUo\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u043d\u0443\u043b\u0435\u0432\u0430\u044f \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0430.<\/p>\n<p>\u0414\u043b\u044f \u0432\u044b\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432 \u0440\u0430\u0434\u0438\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435 (\u0411\u041f\u0424). \u0411\u041f\u0424 \u2014 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435. \u0422\u043e \u0435\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0437\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043c\u0435\u043d\u044c\u0448\u0435\u0435 \u0447\u0435\u043c <em>O<\/em>(<em>N<\/em><sup>2<\/sup>), \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0414\u041f\u0424.<\/p>\n<p>\u0414\u043b\u044f \u0447\u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435? \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u044f\u044e\u0449\u0430\u044f\u0441\u044f \u043f\u043e \u0437\u0430\u043a\u043e\u043d\u0443 \u0441\u0438\u043d\u0443\u0441\u0430 x = sin(t) (\u0441\u043c. \u0440\u0438\u0441. 2). \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 \u044d\u0442\u043e\u0433\u043e \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0440\u0430\u0432\u043d\u0430 1. \u0415\u0441\u043b\u0438 \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 A, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0442\u043e\u0442 \u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a (\u0441\u043c. \u0440\u0438\u0441. 3), \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442\u044b\u0439 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438 \u0432 A \u0440\u0430\u0437: x = A*sin(t)<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/21.png\"><img loading=\"lazy\" class=\"size-full wp-image-660  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/21.png\" alt=\"\" width=\"479\" height=\"162\" \/><\/a><br \/>\n\u0420\u0438\u0441. 2. \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/31.png\"><img loading=\"lazy\" class=\"size-full wp-image-661  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/31.png\" alt=\"\" width=\"479\" height=\"174\" \/><\/a><br \/>\n\u0420\u0438\u0441. 3. \u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b<\/p>\n<p>\u041f\u0435\u0440\u0438\u043e\u0434 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0440\u0430\u0432\u0435\u043d 2pi. \u0415\u0441\u043b\u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0438\u043e\u0434 \u0434\u043e T, \u0442\u043e \u043d\u0430\u0434\u043e \u0443\u043c\u043d\u043e\u0436\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e t \u043d\u0430 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442. \u042d\u0442\u043e \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0440\u0430\u0441\u0442\u044f\u0436\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438: x = A*sin(2pi\/T). \u041a\u0430\u043a \u0432\u044b \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u0430 \u043f\u0435\u0440\u0438\u043e\u0434\u0443: f = 1\/T. \u0422\u0430\u043a\u0436\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442 \u043e \u043a\u0440\u0443\u0433\u043e\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435: ? = 2pi\/T, \u0433\u0434\u0435 x = A*sin(?t).<\/p>\n<p>\u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0435\u0441\u0442\u044c \u0444\u0430\u0437\u0430, \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0430\u0435\u043c\u0430\u044f \u043a\u0430\u043a ?. \u041e\u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0441\u0434\u0432\u0438\u0433 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u044f \u0432\u043b\u0435\u0432\u043e. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0441\u043e\u0447\u0435\u0442\u0430\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u044d\u0442\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0435 (\u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0430) \u0438\u043b\u0438 \u0441\u043f\u0435\u043a\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0430\u044f. \u0415\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0444\u0430\u0437\u0443 \u043d\u0430 90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043e\u0442 \u0441\u0438\u043d\u0443\u0441\u0430 \u043a \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0443. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430, \u0434\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0430:<\/p>\n<p style=\"text-align: center\">x = A * cos ( 2pi\/T + ? ) = A * cos ( ?t + ? );<\/p>\n<p>\u041f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u043c \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0430 \u0441\u0443\u043c\u043c\u044b:<\/p>\n<p style=\"text-align: center\">x = A * cos ? * cos ( 2pi\/T ) &#8212; A * sin ? * sin ( 2pi*t\/T );<\/p>\n<p>\u0412\u044b\u0434\u0435\u043b\u0438\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0435 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 t, \u0438 \u043e\u0431\u043e\u0437\u043d\u0430\u0447\u0438\u043c \u0438\u0445 \u043a\u0430\u043a Re \u0438 Im (\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438 \u043c\u043d\u0438\u043c\u0430\u044f \u0447\u0430\u0441\u0442\u0438):<\/p>\n<p style=\"text-align: center\">x = Re * cos ( 2pi*t\/T ) \u2013 Im * sin ( 2pi*t \/ T );\u00a0 Re = A * cos ?, Im = A * sin ?;<\/p>\n<p>\u041f\u043e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0430\u043c Re \u0438 Im \u043c\u043e\u0436\u043d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u0438 \u0444\u0430\u0437\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438:<\/p>\n<p style=\"text-align: center\">? = arctg ( Im\/Re ), A = sqrt ( Re^2 + Im^2 );<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0424\u0443\u0440\u044c\u0435:<\/p>\n<p style=\"text-align: center\">Xn = ( 1\/N ) * SUM ( Xk* e ^ ( j*2*pi*k*n \/ N ) );<\/p>\n<p>\u0418 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u043c \u043d\u0430\u0434 \u044d\u0442\u043e\u0439 \u0444\u043e\u0440\u043c\u0443\u043b\u043e\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:<\/p>\n<ul>\n<li>\u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043c \u043a\u0430\u0436\u0434\u043e\u0435 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0435 Xn \u043d\u0430 \u043c\u043d\u0438\u043c\u0443\u044e \u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0435 Xn = Re + j*Im<\/li>\n<li>\u0440\u0430\u0437\u043b\u043e\u0436\u0438\u043c \u044d\u043a\u0441\u043f\u043e\u043d\u0435\u043d\u0442\u0443 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 \u042d\u0439\u043b\u0435\u0440\u0430 \u043d\u0430 \u0441\u0438\u043d\u0443\u0441 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430<\/li>\n<li>\u043f\u0435\u0440\u0435\u043c\u043d\u043e\u0436\u0438\u043c<\/li>\n<li>\u0432\u043d\u0435\u0441\u0435\u043c \u043c\u043d\u043e\u0436\u0438\u0442\u0435\u043b\u044c 1\/N \u043f\u043e\u0434 \u0437\u043d\u0430\u043a \u0441\u0443\u043c\u043c\u044b \u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u0435\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0434\u0432\u0435 \u0441\u0443\u043c\u043c\u044b:<\/li>\n<\/ul>\n<p style=\"text-align: center\">Xn = ( 1\/N ) * SUM ( Xk * [ cos ( 2*pi*k*n\/N ) + j * sin ( 2*pi*k*n\/N ) ] ) =&gt;<\/p>\n<p style=\"text-align: center\">=&gt; ( 1\/N ) * SUM ( ( Rek + j*Imk ) * [ cos ( 2*pi*k*n\/N ) + j*sin ( 2*pi*k*n\/N ) ] ) =&gt;<\/p>\n<p style=\"text-align: center\">=&gt; SUM ( ( Rek\/N )* cos ( 2*pi*k*n\/N ) \u2013 ( Imk\/N ) * sin ( 2*pi*k*n\/N ) ) +<\/p>\n<p style=\"text-align: center\">+ j*SUM ( ( Rek\/N )* sin ( 2*pi*k*n\/N ) + ( Imk\/N ) * cos ( 2*pi*k*n\/N ) );<\/p>\n<p>\u041a\u0430\u043a \u0432\u0438\u0434\u0438\u0442\u0435, \u0441\u043b\u0435\u0432\u0430 \u0441\u0442\u043e\u0438\u0442 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e Xn, \u0430 \u0441\u043f\u0440\u0430\u0432\u0430 \u0434\u0432\u0435 \u0441\u0443\u043c\u043c\u044b, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u043e\u043c\u043d\u043e\u0436\u0435\u043d\u0430 \u043d\u0430 \u043c\u043d\u0438\u043c\u0443\u044e \u0435\u0434\u0438\u043d\u0438\u0446\u0443 j. \u0421\u0430\u043c\u0438 \u0436\u0435 \u0441\u0443\u043c\u043c\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u0442 \u0438\u0437 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445. \u041e\u0442\u0441\u044e\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u0435\u0442, \u0447\u0442\u043e \u0432\u0442\u043e\u0440\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u0440\u0430\u0432\u043d\u0430 \u043d\u0443\u043b\u044e, \u0435\u0441\u043b\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0431\u044b\u043b\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439. \u041e\u0442\u0431\u0440\u043e\u0441\u0438\u043c \u0435\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p style=\"text-align: center\">Xn = SUM ( ( Rek\/N ) * cos ( 2*pi*k*n\/N ) \u2013 ( Imk\/N ) * sin ( 2*pi*k*n\/N ) );<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u0440\u0438 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u044b \u0431\u0440\u0430\u043b\u0438 tn = nT\/N \u0438 Xn = F(tn), \u0442\u043e \u043c\u043e\u0436\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0437\u0430\u043c\u0435\u043d\u0443: n = tn*N\/T. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0432 \u0441\u0438\u043d\u0443\u0441\u0435 \u0438 \u043a\u043e\u0441\u0438\u043d\u0443\u0441\u0435 \u0432\u043c\u0435\u0441\u0442\u043e 2pi*k*n\/N \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c 2pi*k*tn\/T. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043c:<\/p>\n<p style=\"text-align: center\">Xn = F(tn) = SUM ( ( Rek\/N ) * cos ( 2*pi*k*tn\/N ) \u2013 ( Imk\/N ) * cos ( 2*pi*k*tn\/N ) );<\/p>\n<p>\u0421\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c \u044d\u0442\u0443 \u0444\u043e\u0440\u043c\u0443\u043b\u0443 \u0441 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438:<\/p>\n<p style=\"text-align: center\">x = A * cos ( 2*pi*t\/T + ? ) = A * cos ( ?t + ? );\u00a0 x = Re * cos ( 2*pi*t\/T ) \u2013 Im * sin ( 2pi*t \/ T );<\/p>\n<p>\u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0441\u0443\u043c\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u043e\u0431\u043e\u0439 \u0441\u0443\u043c\u043c\u0443 \u0438\u0437 N \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043a\u043e\u043b\u0435\u0431\u0430\u043d\u0438\u0439 \u0440\u0430\u0437\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b, \u0444\u0430\u0437\u044b \u0438 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b:<\/p>\n<p style=\"text-align: center\">F(tn) = SUM ( Ak * cos ( 2*pi*tn\/Tk + ?k ) ) = SUM ( Gk(tn) );<\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0431\u0443\u0434\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e Gk(t) = Ak*cos(2pi*tk\/T + ?k) \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c k-\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u043e\u0439. \u0410\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430, \u0444\u0430\u0437\u0430, \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0438 \u043f\u0435\u0440\u0438\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c\u0438 Xk \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438:<\/p>\n<p style=\"text-align: center\">Xk = Rek + j * Imk;\u00a0 Xk = N * Ak * e ^ ( j * ?k );<\/p>\n<p style=\"text-align: center\">Ak = ( 1\/N ) * sqrt ( Rek^2 + Imk^2 );<\/p>\n<p style=\"text-align: center\">?k = arctg ( Imk \/ Rek );<\/p>\n<p style=\"text-align: center\">Tk = T\/k;<\/p>\n<p>\u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043c\u044b\u0441\u043b \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435 \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b \u0432 \u0432\u0438\u0434\u0435 \u0441\u0443\u043c\u043c\u044b \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a. \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0440\u044f\u043c\u044b\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c, \u0430 \u0441\u0443\u043c\u043c\u0430 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u043c. \u041f\u0440\u0438 \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u043c \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0441\u0438\u0433\u043d\u0430\u043b.<\/p>\n<p><!--more--><\/p>\n<p><strong>2. \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430<\/strong><\/p>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0430\u0443\u0434\u0438\u043e-\u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445-\u0442\u043e\u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u0441\u044b\u043b\u043e\u043a DTMF (Dual Tone Multi Frequency) \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f &#171;\u0441\u044b\u0440\u044b\u0445&#187; \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0435\u0435\u0440\u0430\u0445 \u0430\u0443\u0434\u0438\u043e-\u0432\u0438\u0434\u0435\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0443\u0447\u0435\u0431\u043d\u044b\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430\u0445 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0437\u0432\u0443\u043a\u043e\u043c. \u0412 \u043e\u0441\u043d\u043e\u0432\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0424\u0443\u0440\u044c\u0435 (\u0411\u041f\u0424).<\/p>\n<p>\u0412\u0445\u043e\u0434\u043d\u044b\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 \u0431\u0443\u0444\u0435\u0440 \u0441 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 44100 \u0433\u0435\u0440\u0446 \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c 16 \u0431\u0438\u0442\/\u0441\u0435\u043c\u043f\u043b. \u0414\u043b\u0438\u043d\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 \u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0430, \u0432 \u0434\u0430\u043d\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0432\u044b\u0431\u043e\u0440 \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u043e\u0439 \u0432 3000 \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432. \u0421\u0430\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0435\u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u044b\u0439.<\/p>\n<p>\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430:<\/p>\n<ul>\n<li>property About\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; Copyright<\/li>\n<li>property DTMF_keys\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 DTMF<\/li>\n<li>property DTMF_volume\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/li>\n<li>property DTMF_duration_ms\u00a0\u00a0&#8212; \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<\/li>\n<li>property FFT_point\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u0432\u044b\u0431\u043e\u0440 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0442\u043e\u0447\u0435\u043a \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0411\u041f\u0424<\/li>\n<li>property FFT_window\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8212; \u0432\u044b\u0431\u043e\u0440\u0430 \u0442\u0438\u043f\u0430 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0445 \u043e\u043a\u043e\u043d<\/li>\n<li>property Key\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8212; \u0441\u043e\u0431\u044b\u0442\u0438\u0435 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434 DTMF<\/li>\n<li>property Spektra\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8212; \/\/ &#8212; \u0432\u044b\u0434\u0430\u0447\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u043f\u043e\u0441\u043b\u0435 \u0411\u041f\u0424<\/li>\n<li>property DataOsc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8212; \/\/ &#8212; \u0432\u044b\u0434\u0430\u0447\u0430 &#171;\u0441\u044b\u0440\u044b\u0445&#187; \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432 \u0441 \u0430\u0443\u0434\u0438\u043e-\u0431\u0443\u0444\u0435\u0440\u0430<\/li>\n<\/ul>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0438 \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 DTMF \u0441 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 (\u0440\u0438\u0441.4):<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/41.png\"><img loading=\"lazy\" class=\"size-full wp-image-662  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/41.png\" alt=\"\" width=\"592\" height=\"460\" \/><\/a><br \/>\n\u0420\u0438\u0441. 4. \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430. \u0422\u0438\u043f\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 DTMF<\/p>\n<p><strong>\u041f\u0440\u0430\u043a\u0442\u0438\u043a\u0430. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u041f\u041e \u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u043e\u0442\u043b\u0430\u0434\u043a\u0438<\/strong><\/p>\n<p>\u0418\u0442\u0430\u043a, \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435. \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0437\u0430\u043f\u0430\u0441\u0442\u0438\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c:<\/p>\n<ul>\n<li>\u0441\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 <strong>Borland<\/strong><strong> <\/strong><strong>Delphi<\/strong><strong> 5-<\/strong><strong>7<\/strong><\/li>\n<li>\u0430\u0443\u0434\u0438\u043e\u043a\u0430\u0440\u0442\u0430<\/li>\n<\/ul>\n<p>\u0412\u043a\u0440\u0430\u0442\u0446\u0435, \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 (\u043f\u0440\u044f\u043c\u043e\u0433\u043e) \u0411\u041f\u0424 \u0432 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0431\u0443\u0434\u0435\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432 \u0441\u0435\u0431\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0448\u0430\u0433\u0438:<\/p>\n<ul>\n<li>\u0431\u0435\u0440\u0435\u043c \u0438\u0437 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 N \u0432\u044b\u0431\u043e\u0440\u043e\u043a \u043a\u0440\u0430\u0442\u043d\u044b\u043c \u0441\u0442\u0435\u043f\u0435\u043d\u0438 2, \u0442.\u0435. 2^k<\/li>\n<li>\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441\u043d\u043e\u0435 \u0411\u041f\u0424, \u043c\u043d\u0438\u043c\u044b\u0435 \u0447\u0430\u0441\u0442\u0438 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c \u043d\u0443\u043b\u044f\u043c\u0438, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c 2N \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439<\/li>\n<li>\u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0443 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044f \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0438 \u043c\u043d\u0438\u043c\u043e\u0439 \u0447\u0430\u0441\u0442\u0438 \u0438 \u0438\u0437\u0432\u043b\u0435\u043a\u0430\u044f \u0438\u0437 \u0441\u0443\u043c\u043c\u044b \u043a\u043e\u0440\u0435\u043d\u044c \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043d\u044b\u0439<\/li>\n<li>\u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c N \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043e\u0442 0 \u0434\u043e (N\/2-1) \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043d\u0430\u0448 \u0441\u043f\u0435\u043a\u0442\u0440 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 \u043e\u0442 0 \u0434\u043e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0432\u0442\u043e\u0440\u0443\u044e \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 (\u0437\u0435\u0440\u043a\u0430\u043b\u043a\u0443) \u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u043c<\/li>\n<li>\u0434\u043b\u044f \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0432 \u0434\u0411, \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u044b \u0432 \u0432\u044b\u0431\u043e\u0440\u043a\u0435 \u043f\u043e \u0444\u043e\u0440\u043c\u0443\u043b\u0435 20lg(Ai\/Amax), \u0434\u043b\u044f \u043d\u0430\u043f\u0440\u044f\u0436\u0435\u043d\u0438\u0439<\/li>\n<li>\u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0435 \u043e\u043a\u043d\u0430 \u0434\u043b\u044f \u0432\u0437\u0432\u0435\u0448\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0411\u043b\u044d\u043a\u043c\u0430\u043d\u0430-\u0425\u0430\u0440\u0440\u0438\u0441\u0430<\/li>\n<li>\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0440\u043e\u0433 \u0447\u0443\u0432\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 (\u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0443)<\/li>\n<li>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u044b\u0432\u043e\u0434\u0438\u043c \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f series \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a TChart-\u0443<\/li>\n<\/ul>\n<p>\u0420\u0430\u0437\u0431\u043e\u0440 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DTMF \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043f\u0440\u043e\u0432\u0435\u0434\u0435\u043d \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 <strong>[6]<\/strong> \u0438 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0435 \u0440\u0430\u0441\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412 \u043b\u0438\u0441\u0442\u0438\u043d\u0433\u0435-1 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u043c\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u043c\u0438\u2026<\/p>\n<p>\u041b\u0418\u0421\u0422\u0418\u041d\u0413-1<strong> <\/strong><br \/>\n<strong>\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/strong><br \/>\n<code>\u2026<br \/>\nunit DTMF;interfaceuses MMSystem, Windows, SysUtils, Messages, Classes, controls, extctrls, series, TeEngine, math;<\/p>\n<p>type \/\/ \u0442\u0438\u043f \u0434\u0430\u043d\u043d\u044b\u0445 wave- ind<br \/>\nTData16\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = array [0..127] of smallint;<br \/>\nPData16\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 = ^TData16;<\/p>\n<p>Type \/\/ \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0434\u043b\u044f waveform<br \/>\nSINEWAVE = packed record<br \/>\ndblFrequency\u00a0\u00a0 : Double;<br \/>\ndblDataSlice\u00a0\u00a0\u00a0\u00a0: Double;<br \/>\ndblAmplitudeL\u00a0 : Double;<br \/>\ndblVolumeF\u00a0\u00a0\u00a0\u00a0\u00a0: Double;<br \/>\nend;<\/p>\n<p>type<br \/>\nTwindow = (dB_0,<br \/>\ndB_54,<br \/>\ndB_67,<br \/>\ndB_72,<br \/>\ndB_92); \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043a\u043d\u0430-<\/p>\n<p>type<br \/>\nTkeys = procedure(Sender:TObject; key:string; a1,a2,f1,f2: double) of object; \/\/ \u0432\u044b\u0434\u0430\u0447\u0430 DTMF<br \/>\nTspektr = procedure(Sender:TObject; series: TbarSeries) of object; \/\/ \u0432\u044b\u0434\u0430\u0447\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430<br \/>\nTdataOsc = procedure(Sender:TObject; series: TfastlineSeries) of object; \/\/ \u0441\u044b\u0440\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445<\/p>\n<p>TDTMF=class(TComponent)<br \/>\nprivate<br \/>\nfabout\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : string;<br \/>\nfkey\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : string;<br \/>\nfvol\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : integer;<br \/>\nflen\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : integer;<br \/>\nfcntp\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : integer;<br \/>\nFOnKeys\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 : TKeys;<br \/>\nFOnSpektr\u00a0\u00a0\u00a0\u00a0\u00a0 : TSpektr;<br \/>\nFOnDataOsc\u00a0\u00a0 : TDataOsc;<br \/>\nftimer\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : Ttimer;<br \/>\nftimer2 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : Ttimer;<br \/>\ntmr_en\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 : boolean;<br \/>\nfwindow\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 : twindow;<\/p>\n<p>protected<br \/>\nprocedure gen_dtmf(const Value: string); \/\/ \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 DTMF \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<br \/>\nprocedure setabout(const Value: string); \/\/ \u043c\u043e\u0439 Copyright<br \/>\nprocedure set_window(const Value: twindow); \/\/ \u0432\u044b\u0431\u043e\u0440 \u043e\u043a\u043d\u0430 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f<br \/>\nprocedure f_cntp(const Value: integer); \/\/ \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043a-\u0432\u0430 \u0442\u043e\u0447\u0435\u043a \u0411\u041f\u0424<br \/>\nprocedure wcard; \/\/ \u0438\u043d\u0438\u0442-\u0434\u0435\u0438\u043d\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0430\u0443\u0434\u0438\u043e<br \/>\nprocedure ind(Sender: TObject); \/\/ \u0441\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<br \/>\nprocedure ind2(Sender: TObject); \/\/ \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e DTMF \u0441 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c<\/p>\n<p>public<br \/>\nconstructor Create(AOwner: TComponent); override;<br \/>\ndestructor Destroy; override;<br \/>\npublished\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0432\u043d\u0435\u0448\u043d\u0438\u0435 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<br \/>\nproperty About\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: string read Fabout write setabout;<br \/>\nproperty DTMF_keys\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: string read Fkey write gen_dtmf;<br \/>\nproperty DTMF_volume\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: integer read Fvol write fvol default 100;<br \/>\nproperty DTMF_duration_ms : integer read Flen write flen default 250;<br \/>\nproperty FFT_point\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: integer read Fcntp write f_cntp default 2048;<br \/>\nproperty FFT_window\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: twindow read fwindow write set_window;<br \/>\nproperty Key\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TKeys read FOnKeys write FOnKeys;<br \/>\nproperty Spektra \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TSpektr read FOnSpektr write FOnSpektr;<br \/>\nproperty DataOsc \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TDataOsc read FOnDataOsc write FOnDataOsc;<br \/>\nend;<\/p>\n<p>procedure Register;<\/p>\n<p>const \/\/ \u0442\u0430\u0431\u043b\u0438\u0446\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442 DTMF<br \/>\nkeys\u00a0\u00a0 = '1234567890*#abcd';<br \/>\nDTMF1: array [1..16] of integer<br \/>\n=(697,697,697,770,770,770,852,852,852,941,941,941,697,770,852,941);<br \/>\nDTMF2: array [1..16] of integer<br \/>\n=(1209,1336,1477,1209,1336,1477,1209,1336,1477,1336,1209,1477,1633,1633,1633,1633);<\/p>\n<p>var stp: boolean = FALSE;<br \/>\ninwav, outwav\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TfastLineSeries;<br \/>\nspektr\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TbarSeries;<\/p>\n<p>\/\/ \u0434\u0435\u043a\u043e\u0434\u0435\u0440 DTMF<br \/>\nadr2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: pWaveHdr;<br \/>\nBufHead1,BufHead2\u00a0\u00a0 : TWaveHdr;<br \/>\nbufsize \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: integer;<br \/>\nheader \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TWaveFormatEx;<br \/>\nhwi2\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: HWAVEIN;<br \/>\nhBuf \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: THandle;<\/p>\n<p>f_window\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: smallint = 5;\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0442\u0438\u043f \u043e\u043a\u043d\u0430 \u2013 \u0431\u0435\u0437 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f<br \/>\nfcntpp\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: integer = 2048; \/\/ \u043a-\u0432\u043e \u0442\u043e\u0447\u0435\u043a FFT<br \/>\nsignal\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: string;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 DTMF (\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f)<br \/>\na1,a2,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b-<br \/>\nf1,f2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: double;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0447\u0430\u0441\u0442\u043e\u0442\u044b-<\/p>\n<p>\/\/ \u043a\u043e\u0434\u0435\u0440 DTMF<br \/>\nwaveOut\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: hWaveOut;<br \/>\noutHdr\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TWaveHdr;<br \/>\nheader2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: TWaveFormatEx;<br \/>\npBuf\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: tHandle;<br \/>\npBuffer\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: pointer;<br \/>\nOpened, lock\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: boolean;<br \/>\ngl_key\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0: integer;<\/p>\n<p>implementation<\/p>\n<p><\/code><\/p>\n<p>\u041e\u0431\u044b\u0447\u043d\u043e, \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e \u0437\u0432\u0443\u043a\u0430 \u0432 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432 \u0441\u0440\u0435\u0434\u0435 Windows \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044e\u0442 \u0447\u0435\u0440\u0435\u0437 Waveform Audio Win32 API. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438:<\/p>\n<ul>\n<li>waveOutOpen &#8212; \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u043c\u0435\u044e\u0449\u0435\u0435\u0441\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0432\u044b\u0432\u043e\u0434\u0430 Waveform audio \u0434\u043b\u044f \u0441\u0438\u0433\u043d\u0430\u043b\u0430<\/li>\n<li>waveOutPrepareHeader &#8212; \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0443 \u0431\u0443\u0444\u0435\u0440\u0430 \u0434\u043b\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u0434\u0430\u043d\u043d\u044b\u0445<\/li>\n<\/ul>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0437\u0430\u0434\u0430\u0434\u0438\u043c\u0441\u044f \u0437\u0430\u043a\u043e\u043d\u043e\u043c \u043c\u043e\u0434\u0443\u043b\u044f\u0446\u0438\u0438, \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u0432\u044b\u0432\u043e\u0434\u0430 PCM, \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0438 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438\u2026<\/p>\n<p><code>\/\/-----------------------------------------------<br \/>\n\/\/ \u041a\u041e\u0414\u0415\u0420 DTMF \u2013 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f 2-\u0445 \u0442\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430<br \/>\n\/\/-----------------------------------------------<br \/>\nprocedure stopPlay;<br \/>\nbegin<br \/>\nWaveOutReset(WaveOut);<br \/>\nWaveOutClose(WaveOut);<br \/>\nGlobalUnlock(pBuf);<br \/>\nGlobalFree(pBuf)<br \/>\nend;procedure PlayBuffer(h: hwnd; SampleRate: integer; Bits: Byte; Buffer: array of byte);<br \/>\nvar Err: integer;<br \/>\nbegin<br \/>\nwith header2 do begin<br \/>\nwFormatTag := WAVE_FORMAT_PCM;<br \/>\nnChannels := 1;<br \/>\nnSamplesPerSec := SampleRate;<br \/>\nwBitsPerSample := Bits;<br \/>\nnBlockAlign := nChannels * (wBitsPerSample div 8);<br \/>\nnAvgBytesPerSec := nSamplesPerSec * nBlockAlign;<br \/>\ncbSize := 0<br \/>\nend;if Opened = true then stopPlay;<br \/>\nerr:= WaveOutOpen(addr(waveOut), 0, @header2,h, 0, CALLBACK_WINDOW);<br \/>\nif Err &lt;&gt; 0 then Exit;<br \/>\npBuf := GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, length(Buffer));<br \/>\npBuffer := GlobalLock(pBuf);<\/p>\n<p>with outHdr do begin<br \/>\nlpData := PBuffer;<br \/>\ndwBufferLength := length(Buffer);<br \/>\ndwUser := 0;<br \/>\ndwFlags := 0;<br \/>\ndwLoops := 0<br \/>\nend;<\/p>\n<p>err:= WaveOutPrepareHeader(waveOut, @outHdr, sizeof(outHdr));<br \/>\nif Err &lt;&gt; 0 then Exit;<\/p>\n<p>copyMemory(pBuffer, @Buffer, length(Buffer));<br \/>\nerr:= WaveOutWrite(waveOut, @outHdr, sizeof(outHdr));<br \/>\nif Err &lt;&gt; 0 then Exit<br \/>\nend;<\/p>\n<p>function sel_byte(lngWord: Longint; intPosition: Smallint): byte;<br \/>\nvar lngTemp: Longint;<br \/>\nintByte: byte;<br \/>\nbegin<br \/>\nif intPosition=3 then begin<br \/>\n\/\/ Byte 2<br \/>\nlngTemp := lngWord;<br \/>\n\/\/ Mask off byte and shift right 24 bits.<br \/>\n\/\/ Mask -&gt; 2130706432 = &amp;H7F000000<br \/>\n\/\/ Shift -&gt; Divide by 16777216<br \/>\nlngTemp := Round((lngTemp and 2130706432)\/16777216);<br \/>\nintByte := lngTemp;<br \/>\nend else if intPosition=2 then begin<br \/>\n\/\/ Byte 2<br \/>\nlngTemp := lngWord;<br \/>\nlngTemp := Round((lngTemp and 16711680)\/65536);<br \/>\nintByte := lngTemp;<br \/>\nend else if intPosition=1 then begin<br \/>\n\/\/ Byte 1<br \/>\nlngTemp := lngWord;<br \/>\n\/\/ Mask off high byte and shift right 8 bits.<br \/>\n\/\/ Mask -&gt; 65290 = &amp;HFF00<br \/>\n\/\/ Shift -&gt; Divide by 256<br \/>\nlngTemp := Round((lngTemp and 65290)\/256);<br \/>\nintByte := lngTemp<br \/>\nend else begin<br \/>\n\/\/ Byte 0<br \/>\nintByte := lngWord and $FF<br \/>\nend;<\/p>\n<p>result:= intByte<br \/>\nend;<\/p>\n<p>procedure toneGenerate(lngSampleRate: integer; intBits: byte; dblVolume: array of double; var Freq:<br \/>\narray of Smallint; Seconds: Double; var FreqBuffer: variant); \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 WAVEFORM<br \/>\nvar i, j : integer;<br \/>\nlngLimit, lngData : longint;<br \/>\nlngSamples, lngDataSize : integer;<br \/>\ndblDataPtL, dblWaveTime,<br \/>\ndblSampleTime, dblFrequency: Double;<br \/>\ntmpBuf : array of byte;<br \/>\nintSineCount : Smallint;<br \/>\nSineWaves : array of SINEWAVE;<br \/>\nbegin<br \/>\nsetLength(SineWaves, length(freq));<br \/>\nfor i:=0 to length(freq) - 1 do begin<br \/>\nwith SineWaves<em><\/em> do begin<br \/>\ndblAmplitudeL:= 0.25;<br \/>\ndblFrequency := freq<em><\/em>; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 WAVEFORM<br \/>\ndblVolumeF := dblVolume<em><\/em><br \/>\nend<br \/>\nend;<\/p>\n<p>intSineCount := length(SineWaves)-1;<br \/>\nfor i:=0 to intSineCount do begin<br \/>\ndblWaveTime := 1 \/ SineWaves<em><\/em>.dblFrequency;<br \/>\ndblSampleTime := 1 \/ lngSampleRate;<br \/>\nSineWaves<em><\/em>.dblDataSlice := (2*Pi)\/(dblWaveTime\/dblSampleTime)<br \/>\nend;<\/p>\n<p>lngSamples := round(Seconds\/dblSampleTime);<br \/>\nlngDataSize := Round(lngSamples*(intBits\/8));<br \/>\nSetLength(tmpBuf, lngDataSize);<br \/>\nif intBits=8 then lngLimit := 127<br \/>\nelse lngLimit := 32767;<\/p>\n<p>for i:=0 to lngSamples-1 do begin<br \/>\nif intBits=8 then begin<br \/>\n\/\/ -----------------------------------------------------------------------<br \/>\n\/\/ 8 Bit Data<br \/>\n\/\/ -----------------------------------------------------------------------<br \/>\ndblDataPtL := 0;<br \/>\nfor j:=0 to intSineCount do<br \/>\ndblDataPtL := dblDataPtL +<br \/>\n(sin(i*SineWaves[j].dblDataSlice)*SineWaves[j].dblAmplitudeL*SineWaves[j].dblVolumeF);<br \/>\nlngData := round(dblDataPtL*lngLimit)+lngLimit;<br \/>\ntmpBuf<em><\/em> := ExtractByte(lngData, 0);<br \/>\nend else begin<br \/>\n\/\/ -----------------------------------------------------------------------<br \/>\n\/\/ 16 Bit Data<br \/>\n\/\/ -----------------------------------------------------------------------<br \/>\ndblDataPtL := 0;<br \/>\nfor j:=0 to intSineCount do<br \/>\ndblDataPtL := dblDataPtL +<br \/>\n(sin(i*SineWaves[j].dblDataSlice)*SineWaves[j].dblAmplitudeL*SineWaves[j].dblVolumeF);<br \/>\nlngData := Round(dblDataPtL*lngLimit);<br \/>\ntmpbuf[2*i] := sel_byte(lngData, 0);<br \/>\ntmpbuf[(2*i)+1] := sel_byte (lngData, 1);<br \/>\nend<br \/>\nend;<\/p>\n<p>FreqBuffer:= tmpBuf<br \/>\nend;<\/p>\n<p>procedure tdtmf.gen_dtmf(const Value: string); \/\/ \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0441\u0442\u0440\u043e\u043a\u0438 DTMF \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438-<br \/>\nbegin<br \/>\nfkey:= value;<br \/>\nif fkey&lt;&gt;'' then tmr_en:= true \/\/ \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e, \u0435\u0441\u043b\u0438 \u043f\u0443\u0441\u0442\u043e<br \/>\nend;<\/p>\n<p>procedure TDTMF.ind2(Sender: TObject); \/\/ \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u0433\u043e DTMF \u0441 \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u043e\u043c-<br \/>\nvar Freq: array [0..1] of smallint;<br \/>\nBuffer:array of byte;<br \/>\ndblVolume: array [0..1] of double;<br \/>\nSoundBuffer: variant;<br \/>\ni: integer;<br \/>\nbegin<br \/>\nif tmr_en then begin<br \/>\ninc(gl_key);<br \/>\nif gl_key &gt; length(fkey) then begin<br \/>\ngl_key:= 0;<br \/>\ntmr_en:= false; \/\/ \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0431\u0440\u0430\u043b\u0438 \u0432\u0441\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u2013 \u043e\u0441\u0442\u0430\u043d\u043e\u0432 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438<br \/>\nfkey:= ''<\/p>\n<p>end else for i:= 1 to length(keys) do<br \/>\nif keys<em><\/em>= lowercase(fkey[gl_key]) then begin<br \/>\nFreq[0]:= dtmf1<em><\/em>; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b-<br \/>\nFreq[1]:= dtmf2<em><\/em>;<br \/>\ndblVolume[0]:= fvol \/ 100; \/\/ \u0437\u0430\u0434\u0430\u0435\u043c \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0433\u0440\u043e\u043c\u043a\u043e\u0441\u0442\u0438-<br \/>\ndblVolume[1]:= fvol \/ 100;<br \/>\ntoneGenerate(22050, 8, dblVolume, Freq, flen\/1000, SoundBuffer); \/\/ \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 WAVEFORM-<br \/>\nbuffer:= SoundBuffer;<br \/>\nPlayBuffer(0,22050, 8, Buffer) \/\/ \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435-<br \/>\nend<br \/>\nend<br \/>\nend;<br \/>\n\/\/ END DTMF KODER -----------------------------------------------------<\/p>\n<p><\/code><\/p>\n<p>\u041a\u0430\u043a \u0431\u044b\u0442\u044c \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u043e\u0439 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438? \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f API \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 <em>WaveInOpen<\/em>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0442\u0435\u043a\u0443\u0449\u0435\u043c\u0443 \u0430\u0443\u0434\u0438\u043e\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0443. \u0422\u0430\u043a\u0436\u0435 \u0437\u0430\u0432\u0435\u0434\u0435\u043c \u0434\u0432\u0430 \u0431\u0443\u0444\u0435\u0440\u0430 BufHead1 \u0438 BufHead2, <strong>\u043e\u0434\u0438\u043d \u0434\u043b\u044f \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u044f, \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445<\/strong>. \u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043c \u0432 3000 \u043e\u0442\u0441\u0447\u0435\u0442\u043e\u0432, \u0442.\u043a. \u043d\u0430\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0435 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435, \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u0443\u044e \u043f\u043e\u0433\u0440\u0435\u0448\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 DTMF \u0431\u0443\u0434\u0435\u043c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u043e\u043c \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435. \u0427\u0430\u0441\u0442\u043e\u0442\u0443 \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0442\u0438\u043f\u0438\u0447\u043d\u0443\u044e (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e) \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0430\u0443\u0434\u0438\u043e\u043a\u0430\u0440\u0442 \u0432 44100 \u0413\u0446, 16 \u0431\u0438\u0442 \u043d\u0430 \u043a\u0430\u043d\u0430\u043b. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e, \u043f\u0435\u0440\u0435\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043d\u0430\u0448\u0443 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 \u0411\u041f\u0424 \u0438 \u0441\u0442\u0440\u043e\u0438\u043c \u0441\u043f\u0435\u043a\u0442\u0440 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e. \u041f\u0440\u0438\u0447\u0435\u043c, \u0437\u0430\u043c\u0435\u0442\u044c\u0442\u0435, \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0442\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043d\u0435 \u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0411\u041f\u0424, \u0430 \u043d\u0430 \u043d\u0430\u0431\u0438\u0432\u043a\u0443 \u0432 series. \u041f\u043e\u044d\u0442\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u0434\u043e\u0440\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u044f \u0438 \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435, \u0442\u043e \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f TChart (\u0438\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u0438\u043c \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 series)\u2026<\/p>\n<p><code><br \/>\n\/\/------------------------------------<br \/>\n\/\/ \u0414\u0415\u041a\u041e\u0414\u0415\u0420 DTMF + \u0421\u041f\u0415\u041a\u0422\u0420\u041e\u0410\u041d\u0410\u041b\u0418\u0417<br \/>\n\/\/------------------------------------<br \/>\nfunction FFT(var x, y:array of double;var nn:integer;nf, ii: integer): integer;<br \/>\nvar c,s,t1,t2,t3,t4,u1,u2,u3,z,a0,a1,a2,a3,w:double; \/\/ \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u043a\u043d\u0430-<br \/>\ni,j,p,rt,l,ll,m,m1,k:integer;<br \/>\nbegin<br \/>\nrt:= 1;<br \/>\nnn:= nn div 2;<br \/>\nwhile rt&lt;nn do<br \/>\nrt:=rt*2;nn:=rt*2;<br \/>\nz:=2*pi\/nn;case nf of\u00a0 \/\/ \u0432\u044b\u0431\u043e\u0440 \u043e\u043a\u043d\u0430 \u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u0411\u043b\u044d\u043a\u043c\u0430\u043d\u0430-\u0425\u044d\u0440\u0440\u0438\u0441\u0430)-<br \/>\n\/\/---~67dB-----<br \/>\n1:begin<br \/>\na0:=0.42323;<br \/>\na1:=0.49755;<br \/>\na2:=0.07922;<br \/>\na3:=0;<br \/>\nend;<br \/>\n2:begin<br \/>\na0:=0.44959;<br \/>\na1:=0.49364;<br \/>\na2:=0.05677;<br \/>\na3:=0;<br \/>\nend;<br \/>\n\/\/---~92dB-----<br \/>\n3:begin<br \/>\na0:=0.35875;<br \/>\na1:=0.48829;<br \/>\na2:=0.14128;<br \/>\na3:=0.01168;<br \/>\nend;<br \/>\n\/\/---~72dB-----<br \/>\n4:begin<br \/>\na0:=0.40217;<br \/>\na1:=0.49703;<br \/>\na2:=0.09392;<br \/>\na3:=0.00183;<br \/>\nend;<br \/>\n5:begin \/\/ \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439-<br \/>\na0:=1;<br \/>\na1:=0;<br \/>\na2:=0;<br \/>\na3:=0;<br \/>\nend<br \/>\nend;<\/p>\n<p>for i:=0\u00a0 to nn-1 do begin<br \/>\nw:=a0-a1*cos(z*i)+a2*cos(z*2*i)+a3*cos(z*3*i);<br \/>\nx<em><\/em>:=x<em><\/em>*w;<br \/>\ny<em><\/em>:=y<em><\/em>*w;<br \/>\nend;<br \/>\n\/\/-------------------------------------------<\/p>\n<p>ll:= nn;<br \/>\nM := nn div 2;<br \/>\nM1:= Nn-1;<br \/>\nwhile ll&gt;=2 do begin<br \/>\nl:=ll div 2;<br \/>\nu1:=1;<br \/>\nu2:=0;<br \/>\nt1:=PI\/l;<br \/>\nc:=cos(t1);<br \/>\ns:=(-1)*ii*sin(t1);<br \/>\nfor j:=0\u00a0 to l-1 do<br \/>\nbegin<br \/>\ni:=j;<br \/>\nwhile i&lt;nn do<br \/>\nbegin<br \/>\np:=i+l;<br \/>\nt1:=x<em><\/em>+x[p];<br \/>\nt2:=y<em><\/em>+y[p];<br \/>\nt3:=x<em><\/em>-x[p];<br \/>\nt4:=y<em><\/em>-y[p];<br \/>\nx[p]:=t3*u1-t4*u2;<br \/>\ny[p]:=t4*u1+t3*u2;<br \/>\nx<em><\/em>:=t1;<br \/>\ny<em><\/em>:=t2;<br \/>\ni:=i+ll<br \/>\nend;<\/p>\n<p>u3:=u1*c-u2*s;<br \/>\nu2:=u2*c+u1*s;<br \/>\nu1:=u3<br \/>\nend;<\/p>\n<p>ll:=ll div 2<br \/>\nend;<\/p>\n<p>j:=0;<br \/>\nfor i:=0\u00a0 to m1-1 do begin<br \/>\nif i&gt;j then begin<br \/>\nt1:=x[j];<br \/>\nt2:=y[j];<br \/>\nx[j]:=x<em><\/em>;<br \/>\ny[j]:=y<em><\/em>;<br \/>\nx<em><\/em>:=t1;<br \/>\ny<em><\/em>:=t2<br \/>\nend;<\/p>\n<p>k:=m;<br \/>\nwhile j&gt;=k do begin<br \/>\nj:=j-k;<br \/>\nk:=k div 2<br \/>\nend;<\/p>\n<p>j:=j+k;<br \/>\nend<br \/>\nend;<\/p>\n<p>procedure FFTQuad(seriesin,seriesout: TChartSeries; max:integer); \/\/ max- \u0442\u043e\u0447\u0435\u0447\u043d\u043e\u0435 \u0411\u041f\u0424<br \/>\nvar a,b\u00a0\u00a0\u00a0 : array of double;<br \/>\ni,k\u00a0\u00a0\u00a0\u00a0 : integer;<br \/>\nd\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : real;<br \/>\nbegin<br \/>\ni:=0;<br \/>\nif Seriesin.yValues.count = 0 then exit;<br \/>\nk:= Seriesin.YValues.Count;<br \/>\nwhile (k&gt;1) and (power(2, i)&lt;max) do<br \/>\nbegin<br \/>\nk:=k div 2;<br \/>\ninc(i)<br \/>\nend;<\/p>\n<p>k:= ceil(power(2, i));<br \/>\nSetLength(a,k); \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043c\u0430\u0441\u0441\u0438\u0432 Re, Im<br \/>\nSetLength(b,k);<\/p>\n<p>for i:=0\u00a0 to k-1 do\u00a0begin<br \/>\na<em><\/em>:=\u00a0 Seriesin.YValue<em><\/em>;<br \/>\nb<em><\/em>:= 0<br \/>\nend;<\/p>\n<p>FFT(a, b, k, f_window, 1);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0434\u043e\u043c\u043d\u043e\u0436\u0430\u0435\u043c \u043d\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0435 \u043e\u043a\u043d\u043e, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u043a\u0442\u0440\u0430<br \/>\nfor i:=0\u00a0 to k div 2-1 do begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043e\u0442\u0441\u0435\u043a\u0430\u0435\u043c \u0437\u0435\u0440\u043a\u0430\u043b\u043a\u0443<br \/>\nd:= sqrt(a<em><\/em>*a<em><\/em> + b<em><\/em>*b<em><\/em>);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043c\u043e\u0434\u0443\u043b\u044c \u0438\u0437 Re \u0438 Im<br \/>\nd:= 20*log10(d\/k + 0.000001) -25;\u00a0\u00a0\u00a0 \/\/ \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043a \u0434\u0411 \u0438 \u043d\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<br \/>\n\/\/ -25\u0434\u0431 \u044d\u0442\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u0432\u043a\u0430, \u0447\u0442\u043e\u0431 \u0443\u0431\u0440\u0430\u0442\u044c \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u0448\u0443\u043c\u044b<br \/>\n\/\/ \u0434\u0430, \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u0442.\u043a. \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u043a\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043b\u043e\u0442\u043d\u043e\u0441\u0442\u044c<br \/>\n\/\/ <strong>\u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ITU-T \u0434\u043b\u044f <\/strong><strong>DTMF<\/strong><br \/>\n\/\/ <strong>\u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0448\u0443\u043c\u0430 (SNR) \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 15 \u0434\u0411<\/strong><\/p>\n<p>seriesout.Add(d)<br \/>\nend<br \/>\nend;<\/p>\n<p>\/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 -------------------------------------------<br \/>\nprocedure waveInProc2(hwi: HWAVEIN; uMsg,dwInstance,dwParam1,dwParam2: DWORD);stdcall;<br \/>\nvar i\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : integer;<br \/>\ndata16 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : PData16;<br \/>\ntemp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 : pWaveHdr;<br \/>\na,f,cntval\u00a0\u00a0\u00a0: double;<br \/>\nbegin<br \/>\nif (uMsg=WIM_DATA) and (stp) then begin<br \/>\ntemp:= adr2;<br \/>\nif adr2= @bufhead1 then adr2:= @bufhead2 \/\/ \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0431\u0443\u0444\u0435\u0440\u0430 1\/2<br \/>\nelse adr2:= @bufhead1;<br \/>\n\/\/<br \/>\nif stp then WaveInAddBuffer(hwi,adr2,SizeOf(TWaveHdr));<br \/>\ndata16:= PData16(temp.lpData);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0441\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0435<\/p>\n<p>if (not lock) then try inwav.Clear; outwav.Clear; spektr.Clear; \/\/ \u043f\u043e\u0434\u0447\u0438\u0449\u0430\u0435\u043c<br \/>\nfor i := 0 to BufSize - 1 do begin\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043d\u0430\u0431\u0438\u0432\u0430\u0435\u043c \u0438\u0437 \u0430\u0443\u0434\u0438\u043e\u0431\u0443\u0444\u0435\u0440\u0430-<br \/>\ninwav.add(data16^<em><\/em>)<br \/>\nend;<\/p>\n<p>\/\/ \u041f\u041e\u041b\u0423\u0427\u0415\u041d\u0418\u0415 \u0421\u041f\u0415\u041a\u0422\u0420\u0410 ---<br \/>\nFFTQuad(inwav, outwav, fcntpp);<\/p>\n<p>\/\/ \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0438 2-x \u043f\u0440\u043e\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a ---<br \/>\na1:= -1000;<br \/>\ncntval:= header.nSamplesPerSec \/ outwav.YValues.Count;<br \/>\nfor i:= 0 to (outwav.YValues.Count)-1 do begin<br \/>\na:= outwav.YValues<em><\/em>;<br \/>\nf:= i * cntval; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u0438\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438<br \/>\nif a&gt;=0 then spektr.AddXY(f,a)<br \/>\nelse spektr.AddXY(f,0); \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043e\u0442\u0441\u0435\u043a\u0430\u0435\u043c \u043e\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u044b<\/p>\n<p>if a &gt; a1 then begin a1:= a; f1:= f end\u00a0 \/\/ \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u043b\u044f max 1- \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438<br \/>\nend;<\/p>\n<p>a2:= -1000;<br \/>\nfor i:= (outwav.YValues.Count)-1 downto 0 do begin<br \/>\na:= outwav.YValues<em><\/em>;<br \/>\nf:= i * cntval;<\/p>\n<p>if (a &gt; a2) and (a&lt;&gt;a1) then begin a2:= a; f2:= f end\u00a0\/\/ \u0447\u0430\u0441\u0442\u043e\u0442\u0430 \u0434\u043b\u044f max 2- \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a\u0438<br \/>\nend;<\/p>\n<p>\/\/ ------------------------<br \/>\n\/\/ \u0418\u0414\u0415\u041d\u0422\u0418\u0424\u0418\u041a\u0410\u0426\u0418\u042f DTMF<br \/>\n\/\/ ------------------------<br \/>\n\/\/ \u043f\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 ITU-T \u043d\u0430 DTMF \u0434\u043e\u0432\u0435\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u0442\u044c \u043d\u0435 \u0431\u043e\u043b\u0435\u0435 1.5%,<br \/>\n\/\/ \u043d\u043e \u043c\u044b \u0437\u0430\u0434\u0430\u0434\u0438\u043c\u0441\u044f \u0447\u0443\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0442\u043e\u0431\u044b \u0443\u0447\u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0431\u0440\u043e\u0441 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a \u0438 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435<br \/>\n\/\/ \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u043f\u043e \u0447\u0430\u0441\u0442\u043e\u0442\u0435 (\u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 3000, \u0441\u043c. \u0432\u044b\u0448\u0435)<br \/>\nsignal:= '';<br \/>\nfor i:= 1 to 16 do begin<br \/>\nif (DTMF2<em><\/em>*0.98&lt;f1) and (DTMF2<em><\/em>*1.02&gt;f1) and\u00a0\u00a0\/\/ 1 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 &gt;2<br \/>\n(DTMF1<em><\/em>*0.98&lt;f2) and (DTMF1<em><\/em>*1.02&gt;f2) then begin<br \/>\nsignal:= keys<em><\/em>;<br \/>\nbreak<br \/>\nend;<\/p>\n<p>if (DTMF1<em><\/em>*0.98&lt;f1) and (DTMF1<em><\/em>*1.02&gt;f1) and\u00a0\/\/ 1 \u0430\u043c\u043f\u043b\u0438\u0442\u0443\u0434\u0430 &gt;2<br \/>\n(DTMF2<em><\/em>*0.98&lt;f2) and (DTMF2<em><\/em>*1.02&gt;f2) then begin<br \/>\nsignal:= keys<em><\/em>;<br \/>\nbreak<br \/>\nend;<br \/>\nend;<\/p>\n<p>spektr.Title:= 'DTMF('+ signal +'):\u00a0 ' +<br \/>\nformat('A1= %.2n',[a1])+ formatfloat(' [0 Hz]\u00a0 ', f1) +<br \/>\nformat('A2= %.2n',[a2])+ formatfloat(' [0 Hz]', f2);<br \/>\nexcept end<br \/>\nend else Exit<br \/>\nend;<\/p>\n<p>\/\/------------------------------------------------------------<br \/>\n\/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f-\u0434\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e-\u0434\u0430\u043d\u043d\u044b\u0445<br \/>\nprocedure TDTMF.wcard;<br \/>\nconst rbuf = 6;<br \/>\nvar BufLen : word;<br \/>\nbuf\u00a0\u00a0 \u00a0\u00a0\u00a0: pointer;<br \/>\nbegin<br \/>\nstp:= not stp;<br \/>\ntry<br \/>\nif stp then begin \/\/ \u0441\u0442\u0430\u0440\u0442<\/p>\n<p>BufSize:= rbuf *500;<br \/>\nwith header do begin<br \/>\nwFormatTag:= WAVE_FORMAT_PCM;<br \/>\nnChannels := 2;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u043a\u0430\u043d\u0430\u043b\u043e\u0432<br \/>\nnSamplesPerSec:= 44100;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0434\u0438\u0441\u043a\u0440\u0435\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u0413\u0446<br \/>\nwBitsPerSample:= 16;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0431\u0438\u0442<br \/>\nnBlockAlign:= nChannels * (wBitsPerSample div 8);<br \/>\nnAvgBytesPerSec:= nSamplesPerSec * nBlockAlign;<br \/>\ncbSize:= 0<br \/>\nend;<\/p>\n<p>WaveInOpen(Addr(hwi2), WAVE_MAPPER, addr(header),integer(@waveInProc2),<br \/>\n0,CALLBACK_FUNCTION);<br \/>\nBufLen:= header.nBlockAlign * BufSize;<br \/>\nhBuf:= GlobalAlloc(GMEM_MOVEABLE and GMEM_SHARE, BufLen);<br \/>\nBuf:= GlobalLock(hBuf);<br \/>\nwith BufHead1 do begin<br \/>\nlpData:= Buf;<br \/>\ndwBufferLength:= BufLen;<br \/>\ndwFlags:= 0<br \/>\nend;<\/p>\n<p>with BufHead2 do begin<br \/>\nlpData:= Buf;<br \/>\ndwBufferLength:= BufLen;<br \/>\ndwFlags:= 0;<br \/>\nend;<\/p>\n<p>adr2:= @BufHead1;<br \/>\nwaveInPrepareHeader(hwi2, Addr(BufHead1), sizeof(BufHead1));<br \/>\nwaveInPrepareHeader(hwi2, Addr(BufHead2), sizeof(BufHead2));<br \/>\nWaveInAddBuffer(hwi2, addr(BufHead1), sizeof(BufHead1));<br \/>\nWaveInStart(hwi2)<\/p>\n<p>end else begin \/\/ \u0441\u0442\u043e\u043f<br \/>\nWaveInReset(hwi2);<br \/>\nWaveInUnPrepareHeader(hwi2, addr(BufHead1), sizeof(BufHead1));<br \/>\nWaveInClose(hwi2);<br \/>\nGlobalUnlock(hBuf); GlobalFree(hBuf);<br \/>\nend<\/p>\n<p>except end<br \/>\nend;<\/p>\n<p>\/\/-------------------------<br \/>\n\/\/ \u0421\u041e\u0411\u042b\u0422\u0418\u042f \u041a\u041e\u041c\u041f\u041e\u041d\u0415\u041d\u0422\u0410<br \/>\n\/\/-------------------------<br \/>\n\/\/ \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0443 waveInProc2(), \u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438<br \/>\n\/\/-------------------------<br \/>\nprocedure TDTMF.ind(Sender: TObject);<br \/>\nbegin<br \/>\nlock:= true; \/\/ \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u043c \u043e\u0447\u0438\u0441\u0442\u043a\u0443, \u0411\u041f\u0424 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 DTMF \u043d\u0430 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0434\u0430\u0447\u0438<br \/>\ninwav.SeriesColor := rgb(0,0,255); \/\/ \u0441\u0438\u043d\u0438\u0439 \u0446\u0432\u0435\u0442 \u0441\u0435\u0440\u0438\u0438<br \/>\nspektr.SeriesColor:= rgb(255,0,0); \/\/ \u043a\u0440\u0430\u0441\u043d\u044b\u0439-<\/p>\n<p><strong> if Assigned(FOnSpektr) then FOnSpektr(self, spektr);<\/strong>\/\/ \u0441\u043f\u0435\u043a\u0442\u0440<br \/>\nif Assigned(FOnDataOsc) then FOnDataOsc(self,inwav);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ \u0441\u044b\u0440\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 (\u043e\u0441\u0446\u0438\u043b\u043b\u043e\u0433\u0440\u0430\u0444)<\/p>\n<p>if signal&lt;&gt;'' then<br \/>\nif Assigned(FOnKeys) then FOnKeys(self, signal, a1, a2, f1, f2);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 DTMF<\/p>\n<p>lock:= false<br \/>\nend;<\/p>\n<p>\/\/----------------------------<br \/>\n\/\/ \u0421\u0415\u0420\u0412\u0418\u0421-\u041c\u041e\u0414\u0423\u041b\u042c (\u0421\u041a\u0415\u041b\u0415\u0422)<br \/>\n\/\/----------------------------<br \/>\nconstructor TDTMF.Create(AOwner: TComponent);<br \/>\nbegin<br \/>\ninherited Create(aowner);<br \/>\nfvol\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 := 100;<br \/>\nflen\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0 := 250;<br \/>\nFcntp\u00a0\u00a0\u00a0\u00a0 := fcntpp; \/\/ \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 2048 \u0442\u043e\u0447\u0435\u043a \u0411\u041f\u0424<br \/>\nfwindow:= dB_0;<br \/>\nFabout\u00a0\u00a0 := 'Badlo Sergey';<\/p>\n<p>Inwav\u00a0\u00a0\u00a0 := tfastlineseries.Create(nil);<br \/>\nOutwav  := tfastlineseries.Create(nil);<br \/>\nSpektr\u00a0\u00a0 := tbarseries.Create(nil); \/\/ \u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435-<br \/>\nspektr.Marks.Visible:= false;<\/p>\n<p>ftimer:= ttimer.Create(self);<br \/>\nftimer.Enabled\u00a0\u00a0 := false;<br \/>\nftimer.interval\u00a0\u00a0\u00a0 := 200;<br \/>\nftimer.ontimer\u00a0\u00a0 := ind;<br \/>\nftimer.Enabled\u00a0\u00a0 := true;<\/p>\n<p>ftimer2:= ttimer.Create(self);<br \/>\nftimer2.Enabled := false;<br \/>\nftimer2.interval\u00a0 := 350;<br \/>\nftimer2.ontimer := ind2;<br \/>\nftimer2.Enabled := true;<\/p>\n<p>wcard \/\/ \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e\u0434\u0430\u043d\u043d\u044b\u0445<br \/>\nend;<\/p>\n<p>destructor TDTMF.Destroy;<br \/>\nbegin<br \/>\nstopplay;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u043c \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044e DTMF<br \/>\nwcard;\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u0434\u0435\u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0430\u0443\u0434\u0438\u043e<br \/>\nftimer.Free; ftimer2.Free;<br \/>\ninwav.Free; outwav.Free; spektr.Free;<br \/>\ninherited<br \/>\nend;<\/p>\n<p>procedure TDTMF.f_cntp(const Value: integer);<br \/>\nbegin<br \/>\nfcntp:= value; fcntpp:= value<br \/>\nend;<\/p>\n<p>procedure TDTMF.set_window(const Value: twindow); \/\/ \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043e\u043a\u043d\u043e \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f-<br \/>\nbegin<br \/>\nfwindow:= value;<br \/>\ncase value of<br \/>\ndB_0\u00a0 : f_window:= 5; \/\/ \u0431\u0435\u0437 \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u044f<br \/>\ndB_54: f_window:= 2; \/\/ \u043f\u043e \u0443\u0440\u043e\u0432\u043d\u044e 54 \u0434\u0411<br \/>\ndB_67: f_window:= 1; \/\/ 67 \u0434\u0411<br \/>\ndB_72: f_window:= 4; \/\/ 72 \u0434\u0411<br \/>\ndB_92: f_window:= 3\u00a0 \/\/ 92 \u0434\u0411<br \/>\nend<br \/>\nend;<\/p>\n<p>procedure TDTMF.setabout(const Value: string);<br \/>\nbegin<br \/>\nfabout:= 'Badlo Sergey'<br \/>\nend;<\/p>\n<p>\/\/============================================================<br \/>\nprocedure Register;<br \/>\nbegin<br \/>\nRegisterComponents('RAMEDIA', [TDTMF])<br \/>\nend;<\/p>\n<p>end.<br \/>\n\u2026<\/p>\n<p><\/code><\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u043e\u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e, \u0432\u044b\u0431\u0440\u0430\u0432 \u0432 \u043c\u0435\u043d\u044e &#171;Component\/Install Component&#187; \u043f\u0440\u043e\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 DTMF (\u043c\u043e\u0434\u0443\u043b\u044c &lt;dtmf.pas&gt;)\u00a0(\u0441\u043c. \u0440\u0438\u0441.5-7):<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/5.png\"><img loading=\"lazy\" class=\"size-full wp-image-663  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/5.png\" alt=\"\" width=\"429\" height=\"187\" \/><\/a><br \/>\n\u0420\u0438\u0441. 5. \u0418\u043d\u0441\u0442\u0430\u043b\u043b\u0438\u0440\u0443\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0432 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 &#171;File\/New Application&#187;, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043c \u043d\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e, \u0441\u0442\u0430\u043d\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c\u0438 \u0435\u0433\u043e \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0438 \u043c\u0435\u0442\u043e\u0434\u044b (\u0441\u043c. \u0440\u0438\u0441.6). \u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f TChart (\u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f), TMemo (\u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u044b\u043b\u043a\u0438) \u0438 TEdit (\u0441\u0442\u0440\u043e\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438) (\u0441\u043c. \u0440\u0438\u0441.7). \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u043f\u0438\u0448\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434 \u0432 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 (\u0441\u043c. \u043b\u0438\u0441\u0442\u0438\u043d\u0433 2)\u2026<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/6.png\"><img loading=\"lazy\" class=\"size-full wp-image-664    alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/6.png\" alt=\"\" width=\"190\" height=\"204\" \/><\/a><br \/>\n\u0420\u0438\u0441. 6. \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/7.png\"><img loading=\"lazy\" class=\"size-full wp-image-665    alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/7.png\" alt=\"\" width=\"576\" height=\"406\" \/><\/a><br \/>\n\u0420\u0438\u0441. 7. \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<p>\u041b\u0418\u0421\u0422\u0418\u041d\u0413-2<strong> <\/strong><br \/>\n<strong>\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c<\/strong><br \/>\n<code>\u2026<br \/>\nprocedure TForm1.DTMF1Key(Sender: TObject; key: String; a1, a2, f1, f2: Double);<br \/>\nvar s: string;<br \/>\nbegin<br \/>\nCAPTION:= ' \u0422\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440. \u0414\u0435\u043a\u043e\u0434\u0435\u0440-\u043a\u043e\u0434\u0435\u0440 DTMF (' + key + ')';<br \/>\ns:= key + format(' - A1= %.2n',[a1])+ formatfloat(' [0 Hz]\u00a0 ',f1) +<br \/>\nformat('A2= %.2n',[a2])+ formatfloat(' [0 Hz]',f2);memo1.Lines.add(s);<br \/>\nchart1.Title.Text[0]:= '\u0414\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d ' + s<br \/>\nend;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);<br \/>\nbegin<br \/>\nif key=#13 then dtmf1.DTMF_keys:= edit1.Text<br \/>\nend;<\/p>\n<p>procedure TForm1.DTMF1Spektra(Sender: TObject; series: TBarSeries);<br \/>\nbegin<br \/>\nseries1.Assign(series)<br \/>\nend;<br \/>\n\u2026<\/p>\n<p><\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e, \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044e, \u0432\u0432\u0435\u0434\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438. \u041d\u0430\u0436\u0430\u0432 ENTER \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u0438 \u0434\u0435\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u044b\u043b\u043a\u0438 (\u0441\u043c. \u0440\u0438\u0441.8):<\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/8.png\"><img loading=\"lazy\" class=\"size-full wp-image-666  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/8.png\" alt=\"\" width=\"594\" height=\"184\" \/><\/a><br \/>\n\u0420\u0438\u0441. 8. \u041e\u043a\u043d\u043e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430-\u043a\u043e\u0434\u0435\u0440\u0430-\u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 DTMF<\/p>\n<p>\u0414\u0430\u043d\u043d\u0430\u044f \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430, \u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 WAV\/MP3, \u0431\u044b\u043b\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0430 \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043c\u043d\u043e\u0433\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u041f\u041e &#171;SPEKTRA&#187; <strong>[7, 8]<\/strong> (\u0441\u043c. \u0440\u0438\u0441.9). \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u044b\u0439 \u0434\u0435\u043a\u043e\u0434\u0435\u0440 DTMF \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0435\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c ITU-T, \u0442.\u043a. \u043d\u0435 \u0443\u0447\u0442\u0435\u043d \u0430\u043d\u0430\u043b\u0438\u0437 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438 \u0440\u0435\u0447\u0435\u0432\u043e\u043c \u0441\u0438\u0433\u043d\u0430\u043b\u0435. \u0427\u0442\u043e \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442? \u041a\u0430\u043a \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0437\u043d\u0430\u0435\u0442\u0435, \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0447\u044c \u0438 \u0440\u0435\u0447\u044c \u0432\u043e\u043e\u0431\u0449\u0435, \u043c\u0443\u0437\u044b\u043a\u0430 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0437\u0443\u044e\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a, \u0430 \u0441\u0430\u043c DTMF \u0441\u0438\u0433\u043d\u0430\u043b \u043e\u0431\u043b\u0430\u0434\u0430\u0435\u0442 \u043d\u0438\u0437\u043a\u0438\u043c \u0443\u0440\u043e\u0432\u043d\u0435\u043c \u0435\u0433\u043e \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0445 \u0433\u0430\u0440\u043c\u043e\u043d\u0438\u043a. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0438\u0437\u0431\u0435\u0436\u0430\u043d\u0438\u044f \u043b\u043e\u0436\u043d\u043e\u0433\u043e \u0434\u0435\u0442\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f DTMF \u0441\u0438\u0433\u043d\u0430\u043b\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043e\u0446\u0435\u043d\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u0443\u0440\u043e\u0432\u043d\u044f\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442 \u0432 \u0441\u043f\u0435\u043a\u0442\u0440\u0435 \u0434\u043b\u044f \u0440\u0435\u0447\u0438 \u0438 \u043c\u0443\u0437\u044b\u043a\u0438. \u042d\u0442\u0438 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u044b (\u0444\u043e\u0440\u043c\u0430\u043d\u0442\u044b)** \u0434\u043b\u044f \u0440\u0435\u0447\u0438 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u044b\u0439 \u043c\u0443\u0436\u0441\u043a\u043e\u0439 \u0431\u0430\u0441 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0435\u043d \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 200-250 \u0413\u0446 \u0438 \u0436\u0435\u043d\u0441\u043a\u0438\u0439 \u0433\u043e\u043b\u043e\u0441 \u0431\u043b\u0438\u0436\u0435 \u043a 500-700 \u0413\u0446.<\/p>\n<p><span style=\"color: #888888\">** \u0438\u043c\u0435\u043d\u043d\u043e \u0437\u0430 \u0441\u0447\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0447\u0438 \u0432 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u043e\u0439 \u0438 \u0440\u0430\u0434\u0438\u043e\u0441\u0432\u044f\u0437\u0438 \u043f\u043e\u043b\u043e\u0441\u0430 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u043d\u0438\u044f \u043a\u0430\u043d\u0430\u043b\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0442 300 \u0434\u043e 3400 \u0413\u0446, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0434\u0435\u0440\u044b, \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0447\u0430\u0441\u0442\u043e\u0442\u043d\u043e\u0433\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u041f\u0440\u0438\u0447\u0435\u043c, \u044d\u0442\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u041c\u0421\u042d-\u0422 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0433\u0440\u0430\u043d\u0438\u0446 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0440\u0435\u0447\u0438.<\/span><\/p>\n<p>\u041d\u043e \u044d\u0442\u043e \u0443\u0436\u0435 \u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438\u2026<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-full wp-image-670\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/111.png\" alt=\"\" width=\"592\" height=\"459\" \/><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/9.png\"><\/a><\/p>\n<p><a href=\"http:\/\/pblog.ru\/wp-content\/uploads\/10.png\"><img loading=\"lazy\" class=\"size-full wp-image-668  alignnone\" src=\"http:\/\/pblog.ru\/wp-content\/uploads\/10.png\" alt=\"\" width=\"592\" height=\"459\" \/><\/a><br \/>\n\u0420\u0438\u0441. 9. \u041e\u0442\u0441\u0447\u0435\u0442\u044b \u0438 \u0441\u043f\u0435\u043a\u0442\u0440 \u0441\u0438\u0433\u043d\u0430\u043b\u0430 DTMF. \u0411\u0443\u043a\u0432\u0430 &#171;A&#187;<\/p>\n<p><strong>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/strong><\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0442\u0435\u043a\u0441\u0442\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430-\u043a\u043e\u0434\u0435\u0440\u0430-\u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 DTMF \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 (\u0444\u0430\u0439\u043b <strong>fft<\/strong><strong>.<\/strong><strong>zip<\/strong>) \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0442\u0443\u0442 \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u0438\u043b\u0438 \u0441 \u0441\u0430\u0439\u0442\u0430 \u0430\u0432\u0442\u043e\u0440\u0430 <a href=\"http:\/\/raxp.radioliga.com\/\">http:\/\/raxp.radioliga.com<\/a> <strong>[9]<\/strong><\/p>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0435\u043c\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043b\u044f \u0432\u0430\u0441 \u0438\u043d\u0442\u0435\u0440\u0435\u0441 &#8212; \u043f\u0438\u0448\u0438\u0442\u0435, \u0437\u0430\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0444\u043e\u0440\u0443\u043c\u0435 \u043a\u043b\u0443\u0431\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 <a href=\"http:\/\/www.programmersforum.ru\/attachment.php?attachmentid=20723&amp;d=1264659713\">http:\/\/www.programmersforum.ru<\/a><\/p>\n<p><strong>\u0420\u0435\u0441\u0443\u0440\u0441\u044b<\/strong><strong> <\/strong><\/p>\n<ul>\n<li>AVR314: \u0414\u0432\u0443\u0442\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 DTMF \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 <span style=\"text-decoration: underline\"><a href=\"http:\/\/www.gaw.ru\/html.cgi\/txt\/app\/micros\/avr\/index.htm\">http:\/\/www.gaw.ru\/html.cgi\/txt\/app\/micros\/avr\/index.htm<\/a><\/span><\/li>\n<li>MSP430: DTMF-Controlled <span style=\"text-decoration: underline\">http:\/\/www.gaw.ru\/html.cgi\/txt\/app\/micros\/msp430\/index.htm<\/span><\/li>\n<li>Practical Design Techniques for Sensor Signal Conditioning, Analog Devices, 1998<\/li>\n<li>DTMF Detector Data Sheet, 2001 <a href=\"http:\/\/www.miketdspsolutions.com\/dtmf.pdf\">http:\/\/www.miketdspsolutions.com\/dtmf.pdf<\/a><\/li>\n<li>\u0420\u0430\u0431\u0438\u043d\u0435\u0440 \u041b., \u0413\u043e\u0443\u043b\u0434 \u0411. \u0422\u0435\u043e\u0440\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0438\u0444\u0440\u043e\u0432\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432. \u2013 \u041c., \u041c\u0438\u0440, 1978<\/li>\n<li>\u041b.\u0410.\u041e\u0441\u0438\u043f\u043e\u0432. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 \u043d\u0430 \u0446\u0438\u0444\u0440\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430\u0445. \u041b\u0438\u043d\u0435\u0439\u043d\u043e-\u0430\u043f\u043f\u0440\u043e\u043a\u0441\u0438\u043c\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434. \u2013 \u041c., \u0413\u043e\u0440\u044f\u0447\u0430\u044f \u043b\u0438\u043d\u0438\u044f &#8212; \u0422\u0435\u043b\u0435\u043a\u043e\u043c, 2001<\/li>\n<li>\u0415.\u0411\u0430\u0434\u043b\u043e, \u0421.\u0411\u0430\u0434\u043b\u043e. \u0412\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0438\u0431\u043e\u0440\u044b. \u0421\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438. \u2013 \u0420\u0430\u0434\u0438\u043e\u043b\u044e\u0431\u0438\u0442\u0435\u043b\u044c, \u041c\u0438\u043d\u0441\u043a, 2009, \u21163, \u0441.32-36 <a href=\"http:\/\/raxp.radioliga.com\/cnt\/s.php?p=v3.pdf\">http:\/\/raxp.radioliga.com\/cnt\/s.php?p=v3.pdf<\/a> \u0438\u043b\u0438 <a href=\"http:\/\/www.programmersforum.ru\/attachment.php?attachmentid=20723&amp;d=1264659713\">http:\/\/www.programmersforum.ru\/attachment.php?attachmentid=20723&amp;d=1264659713<\/a><\/li>\n<li>\u0420\u0435\u0441\u0443\u0440\u0441\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432 DTMF-FFT <span style=\"text-decoration: underline\"><a href=\"http:\/\/raxp.radioliga.com\/cnt\/s.php?p=dtmf_res.zip\">http:\/\/raxp.radioliga.com\/cnt\/s.php?p=dtmf_res.zip<\/a><\/span><\/li>\n<li>\u0420\u0435\u0441\u0443\u0440\u0441\u044b \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 \u0441\u043f\u0435\u043a\u0442\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430-\u043a\u043e\u0434\u0435\u0440\u0430-\u0434\u0435\u043a\u043e\u0434\u0435\u0440\u0430 DTMF <span style=\"text-decoration: underline\"><a href=\"http:\/\/raxp.radioliga.com\/cnt\/s.php?p=fft.zip\">http:\/\/raxp.radioliga.com\/cnt\/s.php?p=fft.zip<\/a><\/span><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u0410\u0432\u0442\u043e\u0440: \u0411\u0430\u0434\u043b\u043e \u0421\u0435\u0440\u0433\u0435\u0439 \u0413\u0440\u0438\u0433\u043e\u0440\u044c\u0435\u0432\u0438\u0447 aka raxp http:\/\/raxp.radioliga.com \u0420\u0438\u0441. 1. &#171;\u041f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u0441\u043e\u0444\u0442\u043e\u0432\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b \u043b\u0438\u0448\u044c \u043d\u0430 \u043c\u0430\u043b\u044b\u0445 \u0447\u0430\u0441\u0442\u043e\u0442\u0430\u0445, \u043b\u0438\u0431\u043e \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e-\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0439&#187; \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u043f\u0435\u043a\u0442\u0440\u0430 \u0432 \u0440\u0430\u0434\u0438\u043e\u0442\u0435\u0445\u043d\u0438\u043a\u0435 \u0443\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u043e\u0431\u044b\u0434\u0435\u043d\u043d\u044b\u043c \u044f\u0432\u043b\u0435\u043d\u0438\u0435\u043c. \u041f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043a\u0430\u043a \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u044b\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043e\u0442 \u0442\u0430\u043a\u0438\u0445 \u0431\u0440\u0435\u043d\u0434\u043e\u0432 \u043a\u0430\u043a Tektronix, \u0442\u0430\u043a \u0438 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u043d\u044b\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 DSP \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0438\u043b\u0438 \u041f\u041b\u0418\u0421 \u0432 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 [&hellip;]<\/p>\n","protected":false},"author":1303,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,1],"tags":[406],"_links":{"self":[{"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/posts\/658"}],"collection":[{"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/users\/1303"}],"replies":[{"embeddable":true,"href":"http:\/\/pblog.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=658"}],"version-history":[{"count":18,"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":677,"href":"http:\/\/pblog.ru\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions\/677"}],"wp:attachment":[{"href":"http:\/\/pblog.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/pblog.ru\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/pblog.ru\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}