МК PIC. Использование микроконтроллеров Microchip в задачах...
Transcript of МК PIC. Использование микроконтроллеров Microchip в задачах...
Îñíîâû ADPCM
Алгоритм ADPCM (Adaptive Difference Pulse Code
Modulation, по-русски — АДИКМ, адаптивная диф-
ференциальная импульсно-кодовая модуляция), как
и любой другой алгоритм кодирования речи, пред-
назначен для уменьшения скорости потока цифро-
вых данных. Это позволяет увеличить пропускную
способность линий связи с сохранением их функци-
ональности и уменьшить трафик передачи. Приме-
нительно к записи и хранению звуковых данных ис-
пользование АДИКМ позволяет увеличить количест-
во записываемой информации на единицу носителя.
Из классической теории сигналов известно, что
значения отсчетов, взятых через интервал Котель-
никова, взаимно некоррелированы, если спектр сиг-
нала в занимаемой им полосе частот равномерен
(белый шум). Однако на практике в основном ис-
пользуются сигналы, спектр которых неравноме-
рен, поэтому корреляция между отсчетами не равна
нулю. При этом степень корреляции возрастает
с увеличением частоты дискретизации. Типичным
примером таких сигналов является речь, где корре-
ляция между соседними отсчетами достаточно ве-
лика при соблюдении теоремы Котельникова в про-
цессе дискретизации.
На этом факте основан принцип передачи, назы-
ваемый «кодирование с предсказанием». Последова-
тельность коррелированных отсчетов исходного
сигнала b(k) подается на один из входов вычитаю-
щего устройства, а на другой его вход поступает сиг-
нал предсказания b'(k), сформированный из преды-
дущих отсчетов.
Полученный сигнал ошибки e(k) предсказания
поступает в линию передачи. На приемном конце
имеется идентичный передающему предсказатель.
Так как он оперирует с теми же предыдущими отсче-
тами, предсказанное им значение нового отсчета b'''(k)
будет таким же, как в передатчике. Добавив к нему
принятое значение ошибки e'(k), можно восстановить
истинный отсчет b''(k). При этом, чем сильнее корре-
ляционные связи между отсчетами сигнала, тем точ-
нее можно сформировать сигнал предсказания.
В цифровых системах передачи отсчеты сигнала
ошибки подвергаются обычным операциям кван-
тования и кодирования, результатом чего является
импульсно-кодовое представление передаваемого
сигнала. Такой метод называется дифференциаль-
ной импульсно-кодовой модуляцией (ДИКМ).
Применение ДИКМ позволяет значительно сни-
зить скорость потока, однако ошибка при восстанов-
лении сигнала зависит от величины шага квантова-
ния передаваемого кода. Уменьшение шага квантова-
ния (увеличение разрядности кодового слова) умень-
шает ошибку и соответственно качество восстанов-
ленного сигнала, но увеличивает скорость потока.
Увеличение шага квантования уменьшает скорость
потока, но увеличивает ошибку восстановления.
В рамках классической ДИКМ с фиксированным ша-
гом квантования это противоречие неразрешимо.
Одно из решений заключается во введении адап-
тации шага квантования в процесс кодирования-де-
кодирования. Такой алгоритм назван АДИКМ
(адаптивная дифференциальная импульсно-кодо-
вая модуляция). Впервые рекомендации по исполь-
зованию АДИКМ были опубликованы в стандарте
Êîìïîíåíòû è òåõíîëîãèè, ¹ 2’2004
Èñïîëüçîâàíèåìèêðîêîíòðîëëåðîâ Microchip
â çàäà÷àõ âîñïðîèçâåäåíèÿ çâóêà
Àëåêñåé Ñàôðîíîâ
Äëÿ ðåøåíèÿ çàäà÷ çàïèñè, âîñïðîèçâåäåíèÿ è ïåðåäà÷è ãîëîñà ÷àùå âñåãîíåîáõîäèìî óâåëè÷åíèå ïðîèçâîäèòåëüíîñòè îñíîâíîãî ïðîöåññîðàèëè èñïîëüçîâàíèå ïðîöåññîðîâ îáðàáîòêè ñèãíàëîâ. Ýòî âåäåò ê óâåëè÷åíèþñòîèìîñòè ñèñòåìû è åå ðàçìåðà. Íî äëÿ ïîëó÷åíèÿ ñèñòåìû îáðàáîòêè ãîëîñàñî ñðåäíèì êà÷åñòâîì è íåáîëüøîé ïîëîñîé ïðîïóñêàíèÿ ìîæíî èñïîëüçîâàòü 8−ðàçðÿäíûå ìèêðîêîíòðîëëåðû.
28 www.finestreet.ru
Êîìïîíåíòû
Рис. 1
KiT#37(2).qxd 2/3/04 4:48 PM Page 28
Международного консультативного комитета
по телефонии и телеграфии (CCITT — The
International Telegraph and Telephone Consultative
Committee) ITU-T G.721. Однако оказалось, что
при осуществлении адаптации шкалы кван-
тования возникают значительные запаздыва-
ния, ухудшающие качество речи. В 1987 году
во вкладе СССР в МККТТ был описан алго-
ритм АДИКМ G.721-bis с ускоренной адапта-
цией шага. В 1990 году была издана оконча-
тельная редакция стандарта — ITU-T G.726,
в которой учтены все поправки. Алгоритм га-
рантирует оценки MOS на уровне 4.3 (при
скорости потока 32 кбит/с), что часто прини-
мается за эталон качества телефонной связи.
Этот алгоритм до сих пор используется при
передаче речи по спутниковым и другим ка-
налам связи, несмотря на появление кодеков
с гораздо более низкой скоростью потока и до-
статочным качеством восстановления.
Ðåàëèçàöèÿ óïðîùåííîãîàëãîðèòìà ADPCM
íà ìèêðîêîíòðîëëåðå
Стандарт ITU-T G.726 обладает некой из-
быточностью для данного применения. В ча-
стности, кодек G.726 имеет в своем составе
преобразователь входной последовательнос-
ти ИКМ, кодированной по A- или µ-закону
в линейную ИКМ, детектор тона и перехода,
предназначенный для определения состава
предаваемых данных (речь или факсимиль-
ный обмен), и другие дополнительные бло-
ки, улучшающие помехозащищенность сиг-
нала при передачи по линии связи.
Рассмотрим структуру упрощенного коде-
ра. Входной сигнал кодера si — последователь-
ность линейно квантованных отсчетов рече-
вого сигнала с разрядностью 16 бит, кодиро-
ванных дополнительным кодом. Выходным
сигналом кодера является последовательность
адаптивно кодированных четырехразрядных
отсчетов ошибки предсказания t, следующих
с частотой дискретизации, равной входной.
Таким образом, кодер ADPCM позволяет
сократить скорость потока в 4 раза при коди-
ровании 16-разрядных входных данных
и в 2 раза при кодировании 8-разрядных
данных. Согласно рекомендациям ITU G.721,
в речевых системах ADPCM в качестве
входного сигнала используется 16-разряд-
ный цифровой поток с частотой дискрети-
зации 8 кГц. Скорость такого потока равна
16?8000 = 128 кбит/с. Скорость потока на вы-
ходе кодера составляет 4?8000 = 32 кбит/с.
Адаптационная способность рассматривае-
мого кодера основана на информации об абсо-
лютном значении предыдущего отсчета ошиб-
ки предсказания. Для простоты реализации си-
стемы применен табличный метод адаптации
(табл. 1–2). Основное отличие рассматривае-
мого алгоритма от алгоритма ITU G.721 состо-
ит в принципе предсказания. Адаптивный
предсказатель кодера ITU G.721 рассчитывает
значение предсказанного отсчета, используя
в качестве опорных данных значения шести
предыдущих ошибок квантования и двух пре-
дыдущих предсказанных значений. В данной
системе предсказание осуществляется по одной
предыдущей ошибке квантования и по одному
предыдущему предсказанному отсчету. Син-
хронность работы кодера и декодера системы
обеспечивается тем, что часть кодера представ-
ляет собой декодер, поэтому передавать по ка-
налу данные об адаптации нет необходимости.
Сама процедура кодирования-декодирова-
ния занимает порядка 600 слов командной
памяти и 13 байт памяти данных. Этому тре-
бованию по ресурсам удовлетворяют все ми-
кроконтроллеры Microchip.
Наиболее оптимальным является использо-
вание новых Flash-микроконтроллеров, имею-
щих в своем составе 10-битный АЦП. В семей-
стве маловыводных контроллеров PIC12 (8-вы-
водный корпус) это PIC12F675, имеющий
программную память размером 1 Кслово,
встроенную память EEPROM, 2 таймера (8-
и 16-битный), компаратор. В том же семействе
есть новейший PIC12F683, имеющий увели-
ченную до 2 Кслов память программ, аппарат-
ный модуль ШИМ и, что немаловажно, режи-
мы пониженного энергопотребления. В соче-
тании с низкой стоимостью появляется воз-
можность встраивания голосовых функций
практически в любые устройства.
Другой вариант — использование более
мощного микроконтроллера семейства
PIC18, в котором помимо голосовых функ-
ций можно реализовать сложные функции
управления и обработки данных.
Для обработки звуковых сигналов перспек-
тивным видится использование контроллеров
семейства dsPIC30F с DSP-ядром. Они совме-
щают в себе возможности микроконтроллера
с мощностью процессоров цифровой обра-
ботки сигналов. Имея в своем распоряжении
большой объем памяти и специальные ко-
манды DSP-ядра, разработчик получает гиб-
кий инструмент для обработки аналоговых
сигналов. Мощности контроллера достаточно
не только для воспроизведения звука, его
фильтрации и синтеза, но и для распознава-
ния речи и говорящего. Это позволяет стро-
ить компактные высокоинтеллектуальные ох-
ранные системы и комплексы, системы иден-
тификации и голосового управления.
Голосовые кодеки, построенные на основе
контроллеров, могут применяться как авто-
номно, так и в составе системы. Для связи ос-
новного процессора с кодеком (микроконт-
роллером) могут применяться различные
интерфейсы — последовательные (SPI, I2C,
UART) и параллельные.
Для квантования сигнала используется
встроенный АЦП контроллера. Полученное
10-битное значение кодируется в 4-битное
и упаковывается в байты. Для вывода голосо-
вого сигнала применяется блок ШИМ вкупе
с внешним ФНЧ. Качества цифроаналогово-
го преобразования на основе ШИМ оказыва-
ется достаточно для голосовых приложений.
Примеры программ для контроллеров
Microchip, готовые решения и полное описа-
ние алгоритмов доступны на сайте www.
microchip.com в разделе Application Notes
(Application Note 643). Информацию о сторон-
них разработчиках ПО для обработки звука
на основе алгоритмов АДИКМ можно найти
в Интернет по адресу http://www.circuitcellar.
com/pastissues/articles/richey110/text.htm.
Êîìïîíåíòû è òåõíîëîãèè, ¹ 2’2004
29www.finestreet.ru
Êîìïîíåíòû
Рис. 2. Структурная схема процесса кодирования
Рис. 3. Структурная схема процесса декодирования
Таблица 1. Поисковая таблица индексовадаптации шага квантования (16 значений)
Таблица 2. Поисковая таблица шаговквантования (89 значений)
8842–1–1–1–1
8642–1–1–1–1
1431
297941389964843024141165830714366
13
168187845366017077963711738037
32767152897132332715527243371577334
28
270861263558942749128259827913060
1225
246231148753582499116654425311855
1123
223851044248712272106049423010750
10211716
203509493442820669634492099745
87 919
185008630402618788764081908841
KiT#37(2).qxd 2/3/04 4:48 PM Page 29