16:32 Передача звука по радиоканалу с использованием кодека Speex | |
Описание применяемого кодекаSpeex это свободный кодек для сжатия речевого сигнала, который может использоваться в приложениях «голос-через-интернет» (VoIP). С высокой вероятностью он не имеет никаких патентных ограничений и лицензирован под последней версией лицензии BSD (без третьей статьи). Сжатые кодеком Speex данные можно хранить либо в формате хранения звуковых данных Ogg, либо передавать напрямую с помощью пакетов UDP/RTP. Разработчики противопоставляют свою разработку другим открытым кодекам, например, кодеку Vorbis, утверждая, что именно кодек Speex лучше всего подходит для передачи голоса по сети с ненадёжной доставкой пакетов данных. При этом авторы разработки специально подчёркивают, что кодек подходит для использования в сетях с ненадёжной передачей пакетов, то есть либо пакет пришёл, либо нет. При этом возможность искажения содержимого пакета должна быть исключена, поэтому Speex не подходит для передачи голоса, например, в радио- и сотовой связи. Speex относится к классу так называемых Code Excited Linear Prediction (CELP)-кодеков, то есть кодеков, построенных на основе так называемого Линейного Предсказательного кодирования ЛПК. ЛПК использует для аппроксимации отрезка речевого сигнала цифровой фильтр только с обратными связями (т. н. «авторегрессионный фильтр»). Коэффициенты этого фильтра «подгоняются» под отрезок сигнала с помощью процедуры Левинсона (в западной литературе — Левинсона-Дурбина). CELP-модификация ЛПК предусматривает наличие т. н. «кодовой книги», которая содержит предопределённые наборы возбуждающих ЛПК-фильтр единичных импульсов. Речевой сигнал в кодеке Speex разбивается на неперекрывающиеся отрезки длительностью 20 мс (160 отсчётов при 8 КГц). При этом, для оценки возбуждающего набора вышеуказанный отрезок разбивается на четыре подотрезка длительностью 5 мс соответственно. На каждом из подотрезков отыскиваются возбуждающие наборы импульсов как текущего подотрезка (из кодовой книги), так и двух предыдущих подотрезков. В отличие от других кодеков, с целью избежать патентных ограничений, Speex не использует алгебраическое кодирование, а только векторное. Возбуждения двух предыдущих подотрезков складываются с переменными весами, в отличие от ряда других кодеков, где используются переменные положения по времени. По заявлению разработчиков, Speex оптимизирован для получения высококачественного речевого сигнала при низких скоростях. Кодек Speex также позволяет использовать переменную степень сжатия сигнала и поддерживает сигналы с различной шириной полосы: сверхширокополосный (англ. ultra-wideband, частота дискретизации 32 КГц), широкополосный (англ. wideband, 16 КГц) и узкополосный (англ. narrowband, 8 КГц). Направленность на системы «голос-через-интернет» (VoIP) предопределяет, что Speex должен быть устойчив к потерям пакетов данных, но не к повреждению их, так как UDP/IP-протокол, в отличие от TCP/IP, не гарантирует доставку пакетов потребителю. Но, при этом, вероятность повреждения данных в UDP/IP-пакете в проводных системах связи крайне мала. Следует отметить, что можно использовать для передачи данных, сжатых кодеком Speex и TCP/IP-пакеты. В последнем случае, вероятность порчи данных становится мизерной. Эта особенность определяет отсутствие в формате данных кодека Speex каких-либо средств защиты от ошибок. Основные характеристики кодека:
Принципиальная схема устройства Данная схема является универсальным решением для построения приемника и передатчика. В случае построения приемника исключается входные цепи, а для передатчика исключаются выходные цепи. Возможно использование данного устройства в виде приемопередатчика. Частота дискретизации речевых сигналов 10 кГц, тактовая частота ядра микроконтроллера составляет 72 МГц, модуль приемопередатчика работает на частоте 868 МГц. По выше приведенной принципиальной схеме была спроектирована печатная плата в Sprint-Layout: Фото устройства: АЧХ системы: Проект создан в IAR 6.4. Прикрепленные файлы:
| |
|
Всего комментариев: 0 | |