fontp 0 13 октября, 2013 Опубликовано 13 октября, 2013 · Жалоба to fontp Если у Вас есть два файла, оцифровки СM7291, просим выложить их на сервер. Описание тестов есть [attachment=80006:DSA_802980.pdf Выложил оцифровку, которой мы пользовались десять лет назад в одной международной корпорации. upload\dsp\dtmf\* Только не спрашивайте меня, как этим пользоваться. Лучше смотрите на командник test.bat и разберитесь сами, а не я буду за вас разбираться :rolleyes: Невозможно все помнить, что было назад 10 лет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sudar1977 0 7 ноября, 2013 Опубликовано 7 ноября, 2013 · Жалоба Это была моя первая серьезная задача (10 лет назад). Реализовывал на ADSP-2185, как указано в chpter 8 Digital Tone Detection. Chapter_8.pdf Наткнулся на ограничение вычислительной мощности, т.к. хватало всего на 6-7 каналов вместо 30. Усовершенствовал алгоритм добавив накопление (один буфер копим, другой обсчитываем). В итоге получилось 30 каналов и еще предварительный анализ о наличии цифры. Устройство работает на сети. Была еще задача с АОН, челнок и пр. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megadocent 0 10 июня, 2014 Опубликовано 10 июня, 2014 · Жалоба Ух, что нашел. :rolleyes: Краткие итоги. TMS320C6726 позволил одновременно обрабатывать 120 каналов, считать мощности в каналах, детектировать DTMF, производить анализ импульсного набора + анализ 425Гц. Плюс еще что-то делать по мелочи. Уперся скорее в пропускную способность DMA и объем памяти (Работал с буфером, а не по мере поступления отсчетов), чем в производительность процессора. Из интересного вспоминается, как очень резко удалось поднять производительность развернув циклы. Вместо while (i<BUFSIZE) { x2 = x1; x1 = x; x = shortaddr[i++] + f_coef*x1 - x2; } return (x2*x2 + x*x - f_coef*x2*x); использовал одновременный расчет 3 отсчетов. Компилятор гораздо лучше смог оптимизировать это дело. За счет этого раза в 2, что-ли, скорость повысилась. while (i<BUFSIZE) { x = shortaddr[i++] + f_coef*x1 - x2; x2 = shortaddr[i++] + f_coef*x - x1; x1 = shortaddr[i++] + f_coef*x2 - x; } x = shortaddr[i++] + f_coef*x1 - x2; x2 = shortaddr[i++] + f_coef*x - x1; return (x2*x2 + x*x - f_coef*x2*x); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться