doc_19.pdf

(114 KB) Pobierz
KiT#37(2).qxd
2/3/04
4:48 PM
Page 28
Êîìïîíåíòû è òåõíîëîãèè, ¹ 2’2004
Êîìïîíåíòû
Èñïîëüçîâàíèå
ìèêðîêîíòðîëëåðîâ Microchip
â çàäà÷àõ âîñïðîèçâåäåíèÿ çâóêà
Äëÿ ðåøåíèÿ çàäà÷ çàïèñè, âîñïðîèçâåäåíèÿ è ïåðåäà÷è ãîëîñà ÷àùå âñåãî
íåîáõîäèìî óâåëè÷åíèå ïðîèçâîäèòåëüíîñòè îñíîâíîãî ïðîöåññîðà
èëè èñïîëüçîâàíèå ïðîöåññîðîâ îáðàáîòêè ñèãíàëîâ. Ýòî âåäåò ê óâåëè÷åíèþ
ñòîèìîñòè ñèñòåìû è åå ðàçìåðà. Íî äëÿ ïîëó÷åíèÿ ñèñòåìû îáðàáîòêè ãîëîñà
ñî ñðåäíèì êà÷åñòâîì è íåáîëüøîé ïîëîñîé ïðîïóñêàíèÿ ìîæíî èñïîëüçîâàòü
8−ðàçðÿäíûå ìèêðîêîíòðîëëåðû.
Àëåêñåé Ñàôðîíîâ
Îñíîâû ADPCM
Алгоритм ADPCM (Adaptive Difference Pulse Code
Modulation, по-русски — АДИКМ, адаптив�½ая диф-
фере�½циаль�½ая импульс�½о-кодовая модуляция), как
и любой другой алгоритм кодирова�½ия речи, пред-
�½аз�½аче�½ для уме�½ьше�½ия скорости потока цифро-
вых да�½�½ых. Это позволяет увеличить пропуск�½ую
способ�½ость ли�½ий связи с сохра�½е�½ием их фу�½кци-
о�½аль�½ости и уме�½ьшить трафик передачи. Приме-
�½итель�½о к записи и хра�½е�½ию звуковых да�½�½ых ис-
пользова�½ие АДИКМ позволяет увеличить количест-
во записываемой и�½формации �½а еди�½ицу �½осителя.
Из классической теории сиг�½алов извест�½о, что
з�½аче�½ия отсчетов, взятых через и�½тервал Котель-
�½икова, взаим�½о �½екоррелирова�½ы, если спектр сиг-
�½ала в за�½имаемой им полосе частот рав�½омере�½
(белый шум). Од�½ако �½а практике в ос�½ов�½ом ис-
пользуются сиг�½алы, спектр которых �½ерав�½оме-
ре�½, поэтому корреляция между отсчетами �½е рав�½а
�½улю. При этом степе�½ь корреляции возрастает
с увеличе�½ием частоты дискретизации. Типич�½ым
примером таких сиг�½алов является речь, где корре-
ляция между сосед�½ими отсчетами достаточ�½о ве-
лика при соблюде�½ии теоремы Котель�½икова в про-
цессе дискретизации.
На этом факте ос�½ова�½ при�½цип передачи, �½азы-
ваемый «кодирова�½ие с предсказа�½ием». Последова-
тель�½ость коррелирова�½�½ых отсчетов исход�½ого
сиг�½ала
b(k)
подается �½а оди�½ из входов вычитаю-
щего устройства, а �½а другой его вход поступает сиг-
�½ал предсказа�½ия
b'(k),
сформирова�½�½ый из преды-
дущих отсчетов.
safronov@gamma.spb.ru
Получе�½�½ый сиг�½ал ошибки
e(k)
предсказа�½ия
поступает в ли�½ию передачи. На прием�½ом ко�½це
имеется иде�½тич�½ый передающему предсказатель.
Так как о�½ оперирует с теми же предыдущими отсче-
тами, предсказа�½�½ое им з�½аче�½ие �½ового отсчета
b'''(k)
будет таким же, как в передатчике. Добавив к �½ему
при�½ятое з�½аче�½ие ошибки
e'(k),
мож�½о восста�½овить
исти�½�½ый отсчет
b''(k).
При этом, чем силь�½ее корре-
ляцио�½�½ые связи между отсчетами сиг�½ала, тем точ-
�½ее мож�½о сформировать сиг�½ал предсказа�½ия.
В цифровых системах передачи отсчеты сиг�½ала
ошибки подвергаются обыч�½ым операциям ква�½-
това�½ия и кодирова�½ия, результатом чего является
импульс�½о-кодовое представле�½ие передаваемого
сиг�½ала. Такой метод �½азывается диффере�½циаль-
�½ой импульс�½о-кодовой модуляцией (ДИКМ).
Приме�½е�½ие ДИКМ позволяет з�½ачитель�½о с�½и-
зить скорость потока, од�½ако ошибка при восста�½ов-
ле�½ии сиг�½ала зависит от величи�½ы шага ква�½това-
�½ия передаваемого кода. Уме�½ьше�½ие шага ква�½това-
�½ия (увеличе�½ие разряд�½ости кодового слова) уме�½ь-
шает ошибку и соответстве�½�½о качество восста�½ов-
ле�½�½ого сиг�½ала, �½о увеличивает скорость потока.
Увеличе�½ие шага ква�½това�½ия уме�½ьшает скорость
потока, �½о увеличивает ошибку восста�½овле�½ия.
В рамках классической ДИКМ с фиксирова�½�½ым ша-
гом ква�½това�½ия это противоречие �½еразрешимо.
Од�½о из реше�½ий заключается во введе�½ии адап-
тации шага ква�½това�½ия в процесс кодирова�½ия-де-
кодирова�½ия. Такой алгоритм �½азва�½ АДИКМ
(адаптив�½ая диффере�½циаль�½ая импульс�½о-кодо-
вая модуляция). Впервые рекоме�½дации по исполь-
зова�½ию АДИКМ были опубликова�½ы в ста�½дарте
Рис. 1
28
www.finestreet.ru
KiT#37(2).qxd
2/3/04
4:48 PM
Page 29
Êîìïîíåíòû è òåõíîëîãèè, ¹ 2’2004
Между�½арод�½ого ко�½сультатив�½ого комитета
по телефо�½ии и телеграфии (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- или µ-зако�½у
в ли�½ей�½ую ИКМ, детектор то�½а и перехода,
пред�½аз�½аче�½�½ый для определе�½ия состава
предаваемых да�½�½ых (речь или факсимиль-
�½ый обме�½), и другие допол�½итель�½ые бло-
ки, улучшающие помехозащище�½�½ость сиг-
�½ала при передачи по ли�½ии связи.
Рассмотрим структуру упроще�½�½ого коде-
ра. Вход�½ой сиг�½ал кодера
s
i
— последователь-
�½ость ли�½ей�½о ква�½това�½�½ых отсчетов рече-
вого сиг�½ала с разряд�½остью 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, имеющий увели-
Êîìïîíåíòû
Таблица 1.
Поисковая таблица и�½дексов
адаптации шага ква�½това�½ия (16 з�½аче�½ий)
–1
–1
–1
–1
–1
–1
–1
–1
2
2
4
4
6
8
8
8
Таблица 2.
Поисковая таблица шагов
ква�½това�½ия (89 з�½аче�½ий)
7
16
34
73
157
337
724
1552
3327
7132
15289
32767
8
17
37
80
173
371
796
1707
3660
7845
16818
9
19
41
88
190
408
876
1878
4026
8630
18500
10
21
45
97
209
449
963
2066
4428
9493
20350
11
23
50
107
230
494
1060
2272
4871
10442
22385
12
25
55
118
253
544
1166
2499
5358
11487
24623
13
28
60
130
279
598
1282
2749
5894
12635
27086
14
31
66
143
307
658
1411
3024
6484
13899
29794
Рис. 2.
Структур�½ая схема процесса кодирова�½ия
Рис. 3.
Структур�½ая схема процесса декодирова�½ия
че�½�½ую до 2 Кслов память программ, аппарат-
�½ый модуль ШИМ и, что �½емаловаж�½о, режи-
мы по�½иже�½�½ого э�½ергопотребле�½ия. В соче-
та�½ии с �½изкой стоимостью появляется воз-
мож�½ость встраива�½ия голосовых фу�½кций
практически в любые устройства.
Другой вариа�½т — использова�½ие более
мощ�½ого микроко�½троллера семейства
PIC18, в котором помимо голосовых фу�½к-
ций мож�½о реализовать слож�½ые фу�½кции
управле�½ия и обработки да�½�½ых.
Для обработки звуковых сиг�½алов перспек-
тив�½ым видится использова�½ие ко�½троллеров
семейства dsPIC30F с DSP-ядром. О�½и совме-
щают в себе возмож�½ости микроко�½троллера
с мощ�½остью процессоров цифровой обра-
ботки сиг�½алов. Имея в своем распоряже�½ии
большой объем памяти и специаль�½ые ко-
ма�½ды DSP-ядра, разработчик получает гиб-
кий и�½струме�½т для обработки а�½алоговых
сиг�½алов. Мощ�½ости ко�½троллера достаточ�½о
�½е только для воспроизведе�½ия звука, его
фильтрации и си�½теза, �½о и для распоз�½ава-
�½ия речи и говорящего. Это позволяет стро-
ить компакт�½ые высокои�½теллектуаль�½ые ох-
ра�½�½ые системы и комплексы, системы иде�½-
тификации и голосового управле�½ия.
Голосовые кодеки, построе�½�½ые �½а ос�½ове
ко�½троллеров, могут приме�½яться как авто-
�½ом�½о, так и в составе системы. Для связи ос-
�½ов�½ого процессора с кодеком (микроко�½т-
роллером) могут приме�½яться различ�½ые
и�½терфейсы — последователь�½ые (SPI, I
2
C,
UART) и параллель�½ые.
Для ква�½това�½ия сиг�½ала используется
встрое�½�½ый АЦП ко�½троллера. Получе�½�½ое
10-бит�½ое з�½аче�½ие кодируется в 4-бит�½ое
и упаковывается в байты. Для вывода голосо-
вого сиг�½ала приме�½яется блок ШИМ вкупе
с в�½еш�½им ФНЧ. Качества цифроа�½алогово-
го преобразова�½ия �½а ос�½ове ШИМ оказыва-
ется достаточ�½о для голосовых приложе�½ий.
Примеры программ для ко�½троллеров
Microchip, готовые реше�½ия и пол�½ое описа-
�½ие алгоритмов доступ�½ы �½а сайте
www.
microchip.com
в разделе Application Notes
(Application Note 643). И�½формацию о сторо�½-
�½их разработчиках ПО для обработки звука
�½а ос�½ове алгоритмов АДИКМ мож�½о �½айти
в И�½тер�½ет по адресу
http://www.circuitcellar.
com/pastissues/articles/richey110/text.htm.
www.finestreet.ru
29
Zgłoś jeśli naruszono regulamin