Передача звука по радиоканалу с использованием кодека Speex

Описание применяемого кодека

Speex это свободный кодек для сжатия речевого сигнала, который может использоваться в приложениях «голос-через-интернет» (VoIP). С высокой вероятностью он не имеет никаких патентных ограничений и лицензирован под последней версией лицензии BSD (без третьей статьи). Сжатые кодеком Speex данные можно хранить либо в формате хранения звуковых данных Ogg, либо передавать напрямую с помощью пакетов UDP/RTP.

Разработчики противопоставляют свою разработку другим открытым кодекам, например, кодеку Vorbis, утверждая, что именно кодек Speex лучше всего подходит для передачи голоса по сети с ненадёжной доставкой пакетов данных. При этом авторы разработки специально подчёркивают, что кодек подходит для использования в сетях с ненадёжной передачей пакетов, то есть либо пакет пришёл, либо нет. При этом возможность искажения содержимого пакета должна быть исключена, поэтому Speex не подходит для передачи голоса, например, в радио- и сотовой связи.

Speex относится к классу так называемых Code Excited Linear Prediction (CELP)-кодеков, то есть кодеков, построенных на основе так называемого Линейного Предсказательного кодирования ЛПК. ЛПК использует для аппроксимации отрезка речевого сигнала цифровой фильтр лишь с обратными связями (т. н. «авторегрессионный фильтр»). Коэффициенты этого фильтра «подгоняются» под отрезок сигнала с помощью процедуры Левинсона (в западной литературе — Левинсона-Дурбина). CELP-модификация ЛПК предусматривает наличие т. н. «кодовой книги», которая содержит предопределённые наборы возбуждающих ЛПК-фильтр единичных импульсов.

Речевой сигнал в кодеке Speex разбивается на неперекрывающиеся отрезки длительностью 20 мс (160 отсчётов при 8 КГц). При этом, для оценки возбуждающего набора вышеуказанный отрезок разбивается на четыре подотрезка длительностью 5 мс соответственно. На каждом из подотрезков отыскиваются возбуждающие наборы импульсов как текущего подотрезка (из кодовой книги), так и 2-х предыдущих подотрезков. В отличие от других кодеков, с целью избежать патентных ограничений, Speex не использует алгебраическое кодирование, а лишь векторное. Возбуждения 2-х предыдущих подотрезков складываются с переменными весами, в отличие от ряда других кодеков, где используются переменные положения по времени.

По заявлению разработчиков, Speex оптимизирован для получения высококачественного речевого сигнала при низких скоростях. Кодек Speex также позволяет использовать переменную степень сжатия сигнала и поддерживает сигналы с различной шириной полосы: сверхширокополосный (англ. ultra-wideband, частота дискретизации 32 КГц), широкополосный (англ. wideband, 16 КГц) и узкополосный (англ. narrowband, 8 КГц). Направленность на системы «голос-через-интернет» (VoIP) предопределяет, что Speex должен быть устойчив к потерям пакетов данных, но не к повреждению их, потому что UDP/IP-протокол, в отличие от TCP/IP, не гарантирует доставку пакетов потребителю. Но, при этом, вероятность повреждения данных в UDP/IP-пакете в проводных системах связи крайне мала. Следует отметить, что можно использовать для передачи данных, сжатых кодеком Speex и TCP/IP-пакеты. В последнем случае, вероятность порчи данных становится мизерной. Эта особенность определяет отсутствие в формате данных кодека Speex каких-либо средств защиты от ошибок.

Основные характеристики кодека:

  • Свободное и открытое программное обеспечение, не имеет патентных ограничений;
  • Интеграция широко- и узкополосного канала в одном потоке данных;
  • Динамическое переключение скорости и переменная скорость (англ. Variable bit-rate, VBR);
  • Обнаружитель речи (англ. Voice Activity Detection, VAD, объединён с VBR);
  • Настройка степени сжатия.

Принципиальная схема устройства

Данная схема является универсальным решением для построения приемника и передатчика. В случае построения приемника исключается входные цепи, а для передатчика исключаются выходные цепи. Возможно использование данного устройства в виде приемопередатчика. Частота дискретизации речевых сигналов 10 кГц, тактовая частота ядра микроконтроллера составляет 72 МГц, модуль приемопередатчика работает на частоте 868 МГц.

По выше приведенной принципиальной схеме была спроектирована печатная плата в Sprint-Layout:

Фото устройства:

АЧХ системы:

Проект создан в IAR 6.4.

Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

IC1
МК STM32STM32F103C41
IC2
МикросборкаRFM231
OP1
Операционный усилительMCP6021
VR1
Линейный регуляторLD1117V331
С1, С14, С21
Конденсатор1 мкФ3
С3
Конденсатор2 мкФ1
С5, С13, С16, С19, С22
Конденсатор22 мкФ5
С15
Конденсатор470 пФ1
С17, С20
Конденсатор47 пФ2
С18
Конденсатор100 нФ1
С23-С25
Конденсатор0.1 мкФ3
С26-С28
Конденсатор68 нФ3
С29-С30
Конденсатор20 пФ2
R1, R6, R10, R12
Резистор100 кОм4
R2
Резистор47 кОм1
R5, R20
Резистор20 кОм2
R7, R16-R19
Резистор470 Ом5
R8
Резистор10 кОм1
R9
Резистор150 кОм1
R11
Резистор470 кОм1
R13-R15
Резистор100 Ом3
Z1
Кварц8 МГц1
LED1, LRD2
Светодиод2
in, out
Разъем2
S1-S3
Кнопка3
Ант
Антенна1
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.