На рис. 6.46 показано применение адаптивного фильтра для компенсации эффектов амплитудных и фазовых искажений в канале передачи. Коэффициенты фильтра определяются в процессе передачи обучающей последовательности, представляющей известный образец данных. Алгоритм адаптации корректирует коэффициенты фильтра для получения соответствия между принимаемыми данными и данными обучающей последовательности. При связи через модем обучающая последовательность передается после установления первоначального соединения. После передачи обучающей последовательности коммутаторы переключаются в другую позицию, и начинается передача реальных данных. В течение этого времени генерируется сигнал ошибки, равный разности входных и выходных данных адаптивного фильтра.
Сжатие и синтез речи также подразумевают активное использование адаптивной фильтрации для уменьшения требуемых объемов передачи данных. Модель системы линейного кодирования с предсказанием (linear predictive coding, LPC), представленная на рис. 6.47 моделирует голосовой тракт, как импульсный генератор переменной частоты для гласных звуков и генератор случайного шума для согласных звуков. Сигнал от этих генераторов подается на цифровой фильтр, который, в свою очередь, генерирует реальный звуковой сигнал.
На рис. 6.48 дан пример применения линейного кодирования с предсказанием (LPC) в системе мобильной связи GSM. Входной голосовой сигнал оцифровывается 16-разрядным АЦП с частотой дискретизации 8 kSPS. Этим создается поток данных со скоростью 128 kBPS, слишком высокой для непосредственной передачи. DSP-процессор на передающем конце использует LPC-алгоритм для того, чтобы разбить передаваемый сигнал на набор коэффициентов фильтра и сигнал возбуждения. Такое кодирование проводится в интервал сигнала 20 мс, который считается оптимальной для большинства голосовых приложений. Реальная скорость передачи данных составляет всего 2,4 kBPS, что соответствует коэффициенту сжатия 53,3. Принимающий DSP-процессор использует LPC-модель для восстановления речи из принятых коэффициентов фильтра и сигнала возбуждения. В результате выходные данные поступают со скоростью 128 kBPS на 16-разрядный ЦАП для окончательного восстановления голосового сигнала.
Цифровые фильтры, используемые в приложениях линейного кодирования речи с предсказанием, могут быть либо КИХ-, либо БИХ-фильтрами, хотя БИХ-фильтры без нулей частотной характеристики используются наиболее широко. И КИХ- и БИХ-фильтры могут быть реализованы в виде лестничной структур, как показано на рис. 6.49 для рекурсивного фильтра без нулей частотной характеристики.
Данная структура может быть выведена из традиционной структуры БИХ-фильтра, но преимущество лестничного фильтра состоит в том, что его коэффициенты более связаны с результатами работы алгоритмов, которые используют модель голосового тракта, показанную на рис. 6.47, чем коэффициенты эквивалентного БИХ-фильтра.
Параметры модели лестничного фильтра без нулей частотной характеристики определяются линейной экстраполяцией голосовых отсчетов, как показано на рис. 6.50. Вследствие нестационарного характера голосовых сигналов, эта модель применяется только к коротким сегментам (обычно 20 мс). Новый набор параметров обычно определяется для каждого временного сегмента, если между сегментами нет разрывов, которые принудительно сглаживают данные.
Глава 7
Аппаратура цифровых сигнальных процессоров
Дан Кинг, Грег Гирлинг, Кен Воурин, Ноам Левин, Джесс Моррис, Уолт Кестер
Традиционные компьютеры особенно хороши для применения в двух областях деятельности: (1) манипуляция данными, например, подготовка текстов и управление базами данных; и (2) математические вычисления, используемые в науке, технике и цифровой обработке сигналов. Однако, большинство компьютеров не могут одинаково хорошо работать в обеих сферах. В компьютерных приложениях, таких как, например, подготовка текстов, данные запоминаются, сортируются, сравниваются, перемещаются и т. д., и время на выполнение этих операций не имеет большого значения до тех пор, пока оно удовлетворяет конечного пользователя. В приложениях, работающих с базами данных, периодически возникает необходимость реализации математических операций, но скорость их выполнения не является главным фактором. В большинстве случаев при проектировании приложений общего назначения компании производители не концентрируют внимания на создании более эффективных программ. Прикладные программы оказываются перегруженными различными дополнительными возможностями, для каждого обновления которых требуется все больше памяти и нужны все более быстрые процессоры.