Длинное описание проблемы с обработкой речи в МК
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено SergP 31 июля 2004 г. 22:55

Народ! Помогите! Я уже не знаю что и проверять. Значит так. У меня девайс на МК Amega8535L – 8 МГц. К нему подключен микрофон через усилитель. МК сжимает отсчет по ADPCM IMA, далее шифрует с помощью псевдослучайной последовательности (генератор на основе РСЛОС) и передает в компьютер через УАРТ (U2X,скорость 57600, 5 бит данных, 1 стартовый и 1 стоповый биты=7бит). Все прекрасно работает без применения шифратора, то есть сжатие, передача и восстановление в компе (воспроизведение wav файла). Но когда я включил генератор ПСП(шифрация), то голос стал воспроизовится бытсрее (заметно, т.е. как эффект в фонографе увеличить скорость – становится похож на детский голос). Но данные прекрасно восстанавливаются, так как если бы были потери битов, то информация не дешифровалась правильно(все восстановления, дешифрации и декомпрессии у меня в Delphi)! Чтобы снять подозрения с шифратора, я его отключил и вместо него поставил эквивалентный цикл задержки с примерно таким же количеством команд. Их оказалось 145 ( 3 РОЛСА один 4 бита, один 7 бит и один 9 бит- но это не суть важно). Искажение осталось. Я поставил 2 задержки =300 циклов, голос еще сильнее убыстряется, еще больше команд – еще быстрее! Алгоритм ADPCM = 153 команды. (Программа написана на ASM). У меня частота дискретизации 8000 Гц= 125 мксек. При тактовой частоте МК - 8 МГц - это 1000 команд. Но у меня всего примерно 300 ( ну 350) на отсчет с АЦП! Думал может скорость уарт ? Я за 125 мксек должен успеть передать отсчет. 7бит/57600 = 122 мксек(это 976 команд МК). Т.е. успеваю! Но вдруг там возникают ошибки и реальное время повышается ? Казалось бы решение в увеличении скорости УАРТ до 115200 (480 циклов МК для 7 бит). Но это ничего не дало . Все как и было. Чем больше команд МК от преобразования АЦП – тем сильнее убыстряется воспроизведения голоса. Точнее примерно до 200 команд все нормально, а вот 300 и более – уже искажения. Что это за явление? Или может у меня у же искажения в голове? Я попытался описать все подробно.
Настройки таймера : таймер-счетчик1 16бит, источник тактового сигнала частота МК 8МГц, 125мксек это 1000 отсчетов таймера т.е. 65536-1000=FC18.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru