Comments 12
float cos = pgm_read_float(&(cos_t[k]));
float sin = pgm_read_float(&(sin_t[k]));
Пожалуй не очень хорошая идея называть переменные именами функций из стандартной сишной библиотеки.
+4
Думать, "хватит ли производительности Arduino" (изначально известно, что есть запас раз в 5 минимум: в 90-е АОН делался на Z80, требуемая обработка пракически та же) и при этом использовать float? Немного странно.
+4
Причём в тех АОНах даже АЦП не было. Звук пропускался через компаратор и дальше обрабатывался в однобитном виде. А в качестве умножения использовался самый обыкновенный XOR.
0
И z80 тоже избыточен. Dtmf decoder делал на 400 килогерцовом 4-битном контроллере, в 92 году. Самой большой проблемой был не Dtmf, а обычный программный uart из-за отсутствия высокочастотного кварца. Приходилось перекалибровывать генератор по часовому кварцу перед каждым сеансом или при ошибке. Естественно прозрачно для пользователя
0
А я то думал что автор скажет «один» — и ардуина высветит 1. А тут банальный DTMF, а вовсе не «определение цифры на слух» :(
+9
Для ускорения от конечного sqrt можно же отказаться? И затем сравнивать с квадратом threshold.
+1
Все это замечательно, но как на счет оцифровки мыслей? Там вроде уже есть какие-то продвижения, а если бы были мыслезаписи, как бы это могло изменить наш мир.
0
А что если по dtmf прошивку обновлять? Какая битовая скорость получается?
0
Sign up to leave a comment.
Определение цифры на слух: реализация на Arduino