Текст
                    
ПРАКТИЧЕСКОЕ
РУКОВОДСТВО
ш | ЦИФРОВАЯ ОБРАБОТКА
< & | СИГНАЛОВ ДЛЯ ИНЖЕНЕРОВ
5 | | И ТЕХНИЧЕСКИХ СПЕЦИАЛИСТОВ
LQ X о

Цифровая обработка сигналов для инженеров и технических специалистов Практическое руководство Эдмунд Лэй
Practical Digital Signal Processing for Engineers and Technicians Edmund Lai PhD, Beng; Lai and Associates, Singapore AMSTERDAM • BOSTON • HEIDELBERG • LONDON • NEW YORK • OXFORD PARIS • SAN DIEGO • SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO Newnes is an imprint of Elsevier Newnes
Серия «Безопасность и системы промышленной автоматизации. Опыт практического применения» Цифровая обработка сигналов для инженеров и технических специалистов Практическое руководство Эдмунд Лэй ИЙГ ООО «Группа ИДТ» Москва 2007
УДК 621.391 ББК 32.811.3 Л18 Серия «Безопасность и системы промышленной автоматизации. Опыт практического применения» Редакционный совет серии: Сорокин С.А., главный редактор журнала «Современные технологии автоматизации», Синенко О.В., главный редактор журнала «Мир компьютерной автоматизации», Юркевич Е. В., главный редактор журнала «Надежность», Пугачев С.В., главный редактор журнала «Новости международной стандартизации МЭКиИСО» Перевод с английского ООО «Пропартнер», переводчик Соголюб Н.С. Лэй Э. Л18 Цифровая обработка сигналов для инженеров и технических специалистов: практическое руководство / Э. Лэй ; [перевод с англ. ООО «Пропартнер», пере- водчик Соголюб Н.С.]. - М.: ООО «Группа ИДТ», 2007. - 336 с.: ил., табл. ISBN 978-5-94833-025-9 В издании рассмотрены практические аспекты применения цифровой обработки сигналов (ЦОС), особое внимание уделено их реализации, просчетам и диагностике. Основы ЦОС представлены на практических примерах, с подробными разъяснениями и минимумом формул. Использование ЦОС изложено в аспекте применения в различных областях промышленности - от управления процессом до техники связи. Книга будет полезна инженерам систем управления и систем связи, электротехникам, инженерам по электронике и мониторингу текущего состояния систем, а также другим техническим специалистам. УДК 621.391 ББК 32.811.3 Все права защищены. Никакая часть настоящей книги не может быть воспроизведена или передана в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель. При нарушении авторских прав применяются меры в соответствии с нормами российского законодательства в области авторских прав. Данное издание «Цифровая обработка сигналов для инженеров и технических спе- циалистов. Практическое руководство» Э. Лэй публикуется по договоренности с Elsevier Science Ltd, The Boulevard, Langford Lane, Kidington, 0X5 1GB, England. ISBN 0-7506-5798-7 (англ.) ISBN 978-5-94833-025-9 (pyc.) © 2004, IDC Technologies. All rights reserved © ООО «Группа ИДТ», 2007
Содержание Вступление....................................................................7 1. Введение...........................................................9 1.1. Преимущества цифровой обработки сигналов............................10 1.2. Основные определения................................................10 1.3. Системы ЦОС.........................................................12 1.4. Некоторые области применения........................................13 1.5. Цели и обзор книги..................................................24 2. Преобразование сигналов из аналогового в цифровой вид и наоборот..26 2.1. Типичная система цифровой обработки..................................26 2.2. Дискретизация........................................................27 2.3. Квантование..........................................................37 2.4. Аналого-цифровые преобразователи.....................................47 2.5. Восстановление аналогового сигнала...................................57 2.6. Цифроаналоговые преобразователи......................................61 2.7. Дальнейшие исследования..............................................65 3. Дискретные сигналы и системы во временной области...............67 3.1. Система условных обозначений.........................................67 3.2. Типичные дискретные во времени сигналы...............................67 3.3. Операции над дискретными во времени сигналами........................69 3.4. Классификация систем.................................................71 3.5. Концепция свертки....................................................73 3.6. Автокорреляция и взаимная корреляция последовательностей.............75 4. Представление дискретных во времени процессов в частотной области..80 4.1. Дискретный ряд Фурье для периодических, дискретных во времени сигналов.81 4.2. Дискретное преобразование Фурье для дискретных апериодических временных сигналов.........................................................82 4.3. Обратное дискретное преобразование Фурье и его вычисление.............83 4.4. Свойства ДПФ..........................................................84 4.5. Быстрое преобразование Фурье..........................................87 4.6. Особенности практической реализации...................................91 4.7. Вычисление свертки посредством ДПФ....................................95 4.8. Частотные диапазоны некоторых естественных и искусственных сигналов....100 5. Примеры применения ЦОС........................................101 5.1. Генерация периодических сигналов с использованием волновых таблиц....102 5.2. Применение беспроводного передатчика................................106 5.3. Синтез речи.........................................................111 5.4. Улучшение качества изображения......................................114 5.5. Активное удаление шумов.............................................117 5.6. Дальнейшие исследования.............................................121
б. Разработка фильтров с конечной импульсной характеристикой.........122 6.1. Классификация цифровых фильтров.....................................122 6.2. Процесс разработки фильтров.........................................123 6.3. Характеристики КИХ-фильтров.........................................126 6.4. Использование окон..................................................132 6.5. Метод дискретизации в частотной области.............................156 6.6. Метод Паркса-МакКлелланда (Parks-McClelland)........................162 6.7. Метод линейного программирования....................................170 6.8. Примеры разработки..................................................171 6.9. Дальнейшие исследования.............................................173 7. Разработка фильтров с бесконечной импульсной характеристикой.......174 7.1. Характеристики БИХ-фильтров..........................................175 7.2. Обзор классических аналоговых фильтров...............................176 7.3. Разработка БИХ-фильтров из аналоговых фильтров.......................188 7.4. Методы прямой разработки.............................................198 7.5. КИХ-фильтры в сравнении с БИХ-фильтрами ........................... 202 7.6. Дальнейшие исследования..............................................203 8. Реализации цифровых фильтров....................................204 8.1. Прямая форма........................................................204 8.2. Каскадная форма.....................................................212 8.3. Параллельная форма..................................................215 8.4. Другие структуры....................................................217 8.5. Реализация в программном виде.......................................221 8.6. Представление чисел.................................................222 8.7. Влияние конечной длины слова........................................226 9. Цифровые процессоры сигналов...................................241 9.1. Характерные особенности............................................241 9.2. Аппаратная архитектура.............................................243 9.3. Специальные инструкции и режимы адресации..........................254 9.4. Микропроцессоры общего назначения для задач ЦОС....................264 9.5. Выбор процессора...................................................265 9.6. Дальнейшие исследования............................................265 10. Средства разработки аппаратного и программного обеспечения....266 10.1. Процесс разработки системы ЦОС.......................................266 10.2. Средства разработки..................................................272 Приложения.....................................................280 Приложение А.......................................................280 Приложение Б.......................................................282 Предметный указатель..........................................330
Вступление Цифровая обработка сигналов (ЦОС) может рассматриваться как прием, анализ и обработка аналогового сигнала цифровым компьютером. Интеграция программного и аппаратного обеспечения ЦОС в продукцию различных областей промышленности делает необходимым понимание и применение ЦОС инженерами и техническими специалистами. Целью книги является представление ЦОС с практической точки зрения, ис- пользуя минимум математических выкладок. Основной упор делается на практичес- ких аспектах ЦОС, результатах использования, особенностях, хитростях, заблужде- ниях и практическом применении. Для описания основ теории ЦОС используются наглядные объяснения и соответствующие примеры. Книга охватывает широкий круг вопросов — от управления обработкой данных до коммуникации. В книгу включены следующие методы ЦОС: • цифровая фильтрация с целью очищения сигнала от шума; • дискретное преобразование Фурье для поиска конкретных частотных составляющих; • корреляционные методы для поиска сигнала, зашумленного помехой; • производственный процесс с использованием цифрового управления; • измерительная аппаратура и тестирование для большей точности; • анализ механических колебаний для определения частотных признаков; • обработка изображений и видео для улучшения их качества; • коммуникации, главным образом с целью фильтрации шума. После прочтения книги мы надеемся, что вы приобретете следующие знания: • четкое понимание цифровой обработки сигналов (ЦОС); • преимущества и применение технологии ЦОС с целью увеличения эф- фективности; • понимание частотного анализа сигналов и применение этих методов; • информацию о цифровых фильтрах, в том числе и об их структуре; • способность анализировать функционирование систем ЦОС; • знание о ключевых моментах создания систем ЦОС; • понимание особенностей и потенциала применения ЦОС. Читатели, которым будет полезна эта книга: • электротехники; • инженеры систем управления; • инженеры системы связи; • инженеры по электронике; • инженеры измерительной аппаратуры; • инженеры и техники мониторинга текущего состояния; • инженеры-разработчики.
8 Цифровая обработка сигналов для инженеров и технических специалистов Для того чтобы понять основные принципы, описанные в данной книге, необ- ходимо иметь знания математики на уровне первого курса. Но в остальном содер- жание книги имеет фундаментальный характер и является достаточно простым для понимания. Книга имеет следующую структуру. Гпава 7. Введение. В этой главе дается краткий обзор преимуществ цифровой обработки сигналов, а также обзор всей книги. Глава 2. Преобразование аналогового в цифровой сигнал и наоборот. Обзор типичной системы ЦОС, преобразование из аналогового в цифровой вид и из цифрового в аналоговый. Глава 3. Представление во временной области. Рассмотрение типичного дискретного сигнала, операции над дискретными сигналами, классификация систем, свертка, автокорреляционные и взаимно корреляционные операции. Глава 4. Представление в частотной области. Подробное описание дискретного и обратного преобразований Фурье с переходом к быстрому преобразо- ванию Фурье и применение данного важного алгоритма в программных продуктах. Глава 5. Примеры применения ЦОС. Обзор методов создания периодических сигналов с использованием синтеза звука по таблицам волн, беспроводного передат- чика, улучшения качества изображения и активного подавления шума. Глава 6. Разработка КИХ-фильтра. Исследование классификации цифровых фильтров, процесса разработки фильтра, характеристик КИХ-фильтров, окон, часто- тной дискретизации и методов Паркса-МакКлелланда. Глава 7. Разработка фильтра с бесконечной импульсной характерис- тикой (БИХ). Исследование характеристик БИХ-фильтров, обзор аппроксимации классических аналоговых фильтров, получение БИХ-фильтра из аналогового и срав- нение методов разработки КИХ- и БИХ-фильтров. Глава 8. Реализация цифрового фильтра. Исследование результатов пост- роения прямых, каскадных, параллельных форм и программных реализаций с учетом эффектов конечной разрядности. Глава 9. Цифровой процессор сигналов. Исследование общих признаков, архитектуры аппаратных средств, специальных инструкций и способов адресации, а также нескольких рекомендаций относительно выбора наиболее подходящего для ваших схем цифрового процессора сигналов. Глава 10. Средства программного и аппаратного обеспечения. Заклю- чительный обзор разработки систем ЦОС и инструментальных средств разработки.
Введение Цифровая обработка сигналов (ЦОС) — это область, которая главным образом определяется развитием технологий. Она берет свое начало с середины 1960-х, когда цифровые компьютеры и цифровые схемы стали достаточно быстрыми для эффек- тивной обработки больших объемов данных. Термин «цифровой» часто неверно понимается как ограниченный набор отде- льных величин — то есть как противоположность термину «аналоговый» — относя- щийся к непрерывному множеству величин. При цифровой обработке сигналов мы рассматриваем обработку тех сигналов, которые являются дискретными во времени (дискретизованы) и в большинстве случаев также дискретны по амплитуде (кванто- ваны). Иными словами, мы работаем с последовательностями данных — числовыми последовательностями. Такие дискретные (или цифровые) сигналы могут быть получены двумя раз- личными способами: • сигнал по своей сути может являться дискретизованным во времени и/или по амплитуде; • сигнал может быть дискретизованным вариантом непрерывного во вре- мени сигнала. Примеры сигналов первого типа могут включать: данные объемов месячных продаж, максимальную/минимальную суточную температуру, биржевые индексы, оценки студентов за экзамен. Деловые люди, метеорологи, экономисты и учителя обрабатывают такой тип данных для того, чтобы определить циклические данные, тренды и средние значения. Эта обработка обычно включает в себя фильтрацию — максимальное снижение «шума» для того, чтобы улучшить качество или выделить интересующие данные. Примеры второго типа сигналов, которые являются дискретными во времени, могут быть обнаружены во множестве инженерных приложений. Например, речь или аудиосигналы дискретизуются и затем кодируются для хранения или передачи. Проигрыватель компакт-дисков читает кодированный сигнал и восстанавливает не- прерывный сигнал, который затем проигрывается.
10 Цифровая обработка сигналов для инженеров и технических специалистов 1.1. Преимущества цифровой обработки сигналов Почему используется именно цифровая обработка — обычный задаваемый вопрос. Для первого из рассмотренных типов сигналов ответ очевиден. Если сигнал является дискретным во времени, то наиболее очевидный способ его обработки — это использование цифровых методов. Однако для непрерывных сигналов у нас есть выбор. Аналоговые сигналы необходимо обрабатывать аналоговой электронной аппа- ратурой, в то время как компьютеры или микропроцессоры обрабатывают цифровые сигналы. Аналоговый метод сам по себе потенциально быстрее, так как он выполня- ется в процессе поступления сигнала — в реальном масштабе времени, обеспечивая достаточно быстрое время установления выходного воздействия. С другой стороны, цифровые методы по своей природе являются алгоритмическими. Если компьютер достаточно мощный, а алгоритм эффективный, то цифровая обработка может про- исходить в реальном времени, при условии низкой скорости поступления данных. Однако, так как скорость цифровых логических схем увеличивается по экспоненте, верхний предел скорости передачи данных, который все еще считается обработкой в реальном времени, становится все выше и выше. Основным преимуществом цифровой обработки сигнала является устойчивость. Для одного и того же сигнала результат обработки дискретного процесса будет один и тот же. Этот результат нечувствителен к отклонениям и дрейфу параметров элект- ронных компонентов. Вторым основным преимуществом ЦОС является то, что очень сложные цифровые логические схемы могут быть совмещены в одну интегральную схему, таким образом, сократив количество компонентов, а также размеры и надежность системы1. 1.2. Основные определения Понятие ЦОС берет свое начало из электронной техники. Поэтому термино- логия, которая используется в ЦОС, является типичной именно для электронной техники. Но если вы не электротехник или инженер по электронике, это не будет проблемой. На самом деле многие термины, которые используются здесь, имеют эквиваленты и в других технических областях. Необходимо просто немного привык- нуть к ним. Для тех, у кого нет инженерного образования, мы попытаемся объяснить неко- торые термины, которые будут использоваться в данной книге. • Сигналы Мы уже использовали данный термин в прошлых разделах. Сигнал — это просто величина, которую мы можем измерять за определен- ный период времени. Эта величина обычно изменяется со временем, и именно это свойство определяет особый интерес к ней. Такими величи- Правильнее было бы повышение надежности. (Прим, пер.)
Введение 11 нами могут быть напряжение или электрический ток. Ими могут быть также давление, уровень жидкости и температура. Другими такими величинами, вызывающими интерес, могут быть финансовые индексы, такие, как, например, индекс фондового рынка. Вы будете удивлены тем, какое количество концепций ЦОС используется для анализа фи- нансового рынка. • Частота Некоторые сигналы изменяются во времени медленно, другие быстро. К примеру, напряжение (переменный ток), которое используется для бытовых электрических приборов, повышается и понижается по сину- соидальному закону, и один период завершается 50 или 60 раз в секунду. Говорят, что такой сигнал имеет частоту 50 или 60 Герц (Гц). • Спектр В то время как одни сигналы имеют только одну частоту, другие имеют комбинацию частот. Если вы заиграете на одной струне скрипки, то услышите основной тон (частоту), который соответствует воспроизве- денному музыкальному тону. Но существуют и другие гармоники (ум- ножение основной частоты в целое число раз). В этом случае говорят, что такой музыкальный звук сигнала имеет спектр частот. Спектр — это частотное (в частотной области) представление временного сигнала. Оба эти представления эквивалентны. • Фильтр нижних частот Фильтры пропускают определенный диапазон частотных составляющих сигнала и, таким образом, отфильтровывают другие частотные компо- ненты. Фильтр нижних частот пропускает «низкочастотные» компо- ненты. Такие фильтры имеют частоту среза, ниже которой частотные компоненты проходят сквозь фильтр. Например, если сигнал имеет два частотных компонента, скажем, 10 Гц и 20 Гц, использование фильтра нижних частот к такому сигналу с кри- тической частотой в 15 Гц приведет к тому, что выходной сигнал будет иметь только одну частоту 10 Гц, компонента 20 Гц будет отфильтро- вана. • Полосовой фильтр Полосовой фильтр схож с фильтром нижних частот с той лишь разницей, что сквозь него может пройти только определенный диапазон частотных компонентов. Этот диапазон (полоса пропускания) обычно находится выше постоянного тока (нулевой частоты), где-то в области средних частот. Например, если у нас есть полосовой фильтр с полосой пропус- кания от 15 до 25 Гц, то, применив его на сигнале, описанном выше, мы получим сигнал с частотой в 20 Гц. • Фильтр верхних частот Этот фильтр позволяет частотным компонентам выше определенной частоты (частоты среза) проходить и отфильтровывать те компоненты, частота которых ниже частоты среза.
12 Цифровая обработка сигналов для инженеров и технических специалистов Этого ознакомления с терминами должно быть достаточно, чтобы продолжить дальше. Время от времени будут встречаться новые термины, и мы будем разбирать их по мере появления. 1.3 Системы ЦОС Системы ЦОС — это дискретные системы; это означает, что они допускают циф- ровую форму входных и выходных сигналов (или полученную информацию). Так как цифровые сигналы — это просто последовательности чисел, связь между входными и выходными последовательностями для дискретных систем может быть представлена аналогично той, что показана на рис. 1.1. Выходная последовательность отсчетов у(п) рассчитывается по входной последовательности отсчетов х(п) согласно неким правилам, которые определяются системой (Я). Существуют два основных метода, по которым из входной последовательности рассчитывается выходная последовательность. Они называются последовательной обработкой и блочной обработкой соответственно. Мы рассмотрим оба вида обра- ботки в следующих главах. К большинству систем можно применять оба метода об- работки. Выходной сигнал, полученный в обоих случаях, должен быть эквивалентен, если входной сигнал и система Я одинаковы. 1 .3.1. Последовательная обработка При использовании метода последовательной обработки обычно каждый отсчет на выходе появляется после того, как появился один отсчет на входе системы. Например, если на входе системы присутствует последовательность {х0, х} х2,..., хп...}, то на выходе будет присутствовать последовательность {у0, у} у2,..., уп...}. Отсчет у0 появится на выходе тогда, когда на входе присутствует входной отсчет х0 Отсчет yt присутствует на выходе тогда, когда на входе есть входной отсчет х} и т.д. Входная последовательность Выходная последовательность Дискретная система Рис. 1.1. Дискретная система Задержка между появлением входного и выходного отсчетов при последователь- ной обработке составляет не более одного отсчета. Процесс обработки должен быть завершен до того момента, как на входе появится следующий отсчет.
Введение 13 1 .3.2. Блочная обработка При методе блочной обработки блок отсчетов сигналов обрабатывается одно- временно. Блок отсчетов обычно рассматривается как вектор, который преобразовы- вается в выходной вектор отсчетов системным преобразованием Н. Задержка между входом и выходом в этом случае зависит от числа отсчетов в каждом блоке. Например, если мы используем 8 отсчетов для блока, тогда первые 8 входных отсчетов должны быть буферизованы (или собраны) до того, как можно будет начать обработку. Таким образом, блок из 8 выходных отсчетов появится как минимум после 8 отсчетов с момента появления первого х0 Блок расчетов (соот- ветствующий Н) должен быть выполнен до того, как появится следующий блок из 8 отсчетов. 1 .3.3. Примечания Оба метода обработки часто используются в реальных приложениях. Мы столк- немся с ЦОС-алгоритмами и их реализациями, которые используют один либо другой метод. Читателю будет полезно понять алгоритмы или методы, которые описывались выше, представляя, какой из методов обработки используется. 1.4. Некоторые области применения Цифровая обработка сигналов используется в различных областях. Мы не пы- таемся привести здесь все области ее применения. На самом деле, постоянно возни- кают все новые области использования ЦОС. В этом разделе мы попытаемся описать достаточно широкую область применения, так что читатель сможет понять, что такое цифровая обработка. 1.4.1. Обработка голоса и звука Одна из областей, в которой ЦОС нашла широкое применение, — это обработ- ка речи. Эта область является одной из самых ранних применений ЦОС. Цифровая обработка речи включает три основные подобласти: кодирование, синтез и распоз- навание.
14 Цифровая обработка сигналов для инженеров и технических специалистов 1.4.1.1. Кодирование речи Речевые сигналы характеризуются значительной избыточностью. В процессе кодирования удаляется как можно больший объем избыточной информации и в то же время сохраняется приемлемое качество результирующего сигнала. Кодирование речи также может быть разделено на две области: • сжатие — компактное представление речевого сигнала без учета его сиг- нифики; • параметризацию — модель, характеризующую речь в лингвистически или акустически значимой форме. Минимальная ширина полосы канала, необходимая для передачи речи с прием- лемым качеством, составляет величину порядка 3 кГц, с динамическим диапазоном 72 дБ. Обычно это считается качеством, соответствующим телефонной линии. При преобразовании в цифровую форму наиболее часто применяется частота дискретиза- ции в 8 тысяч отсчетов в секунду с 12-битным квантованием (212 значений амплитуды), что соответствует 96 тысячам бит данных в секунду. Такая скорость передачи данных может быть значительно уменьшена без существенного влияния на качество восста- новленной речи по отношению к слушателю. Мы кратко опишем три из них. • Компандирование или неравномерное квантование Речевой сигнал имеет очень большой динамический диапазон. Это яв- ляется следствием того, что звуки голоса, такие, например, как гласные звуки, характеризуются большой энергией и показывают широкие ко- лебания в амплитуде, тдгда как глухие звуки, подобно фрикативным согласным, обычно имеют значительно более низкие амплитуды. Ком- пандер (компрессор-экспандер) сжимает амплитуду сигнала на переда- ющей стороне и расширяет ее на приемной стороне. Этот процесс схема- тически отображен на рис. 1.2. Компрессор сжимает большие значения отсчетов амплитуды и расширяет малые значения амплитуды, в то время как экспандер осуществляет обратную операцию. СИГНАЛ x(t) ВОССТАНОВЛЕННЫЙ СИГНАЛ x’(t) Р ис. 1.2. Схематическая диаграмма, иллюстрирующая процесс компандирования
Введение 15 Компандер ц-типа (с ц = 255) является стандартом в Северной Америке. Компандер A-типа с А = 87,56 — это европейский стандарт (CCITT). Разница в их эффективности минимальна. Компандер A-типа дает не- много лучшие характеристики при больших уровнях сигнала, в то время как компандер ц-типа обеспечивает лучшие характеристики при малых уровнях сигнала. • Адаптивное дифференциальное квантование При любой адекватной частоте квантования последовательные образцы речевого сигнала в общем случае характеризуются высокой корреляцией, за исключением тех звуков, которые содержат значительный уровень широкополосного шума. Необходимая скорость передачи данных может быть существенно уменьшена путем квантования разности между двумя образцами. В то время как динамический диапазон будет существенно уменьшен путем дифференцирования, количество уровней, необходи- мых для квантификатора, также будет уменьшено. Концепция дифференциального квантования может быть расширена. Предположим, что мы имеем оценку значения текущего образца, кото- рая основывается на информации, полученной от предыдущих образцов. Тогда мы можем выполнить квантование разницы между текущим об- разцом и его оценкой. Если точность прогноза достаточно высока, это различие будет совсем небольшим. На рис. 1.3 показана структурная схема адаптивной дифференциальной им- пульсно-кодовой модуляции (АД И КМ). Она принимает импульсно-кодовый моду- лированный сигнал (ИКМ) со скоростью данных 64 кбит в секунду и кодирует его в сигнал с адаптивной дифференциальной импульсно-кодовой модуляцией (АДИКМ) и скоростью передачи 32 кбит в секунду. Рис. 1.3. Структурная схема адаптивной дифференциальной импульсно-кодовой модуляции с(п)
16 Цифровая обработка сигналов для инженеров и технических специалистов • Линейное предсказание Метод кодирования речи путем ее линейного предсказания основывает- ся на (упрощенной) модели речеобразования и показан на рис. 1.4 Синтезированная речь Для невокализованной речи Вокализованное/невокализованное решение Рис. 1.4. Модель речеобразования Цифровой динамический фильтр моделирует речевой тракт и управляет- ся сигналом возбуждения. Для вокализованной речи этот сигнал возбуждения обычно представляет собой масштабирующие единичные импульсы на частоте основного тона. Для невокализованной речи этот сигнал представляет собой слу- чайный шум. Система анализа (или кодировщик) рассчитывает коэффициенты фильтров, определяет, вокализована или невокализована речь, и рассчитывает при необходимос- ти частоту основного тона. Это проделывается для всех перекрывающихся участков речи средней продолжительностью около 10 миллисекунд. Затем эта информация кодируется и передается. Приемник восстанавливает речевые сигналы, используя данные параметры на основе модели речеобразования. Стоит отметить тот факт, что восстановленная речь аналогична исходной, но физический вид сигнала будет силь- но отличаться. Это является иллюстрацией избыточности, свойственной речевым сигналам. 1.4.1.2. Синтез речи Синтез, или формирование речи, может быть выполнен при помощи модели ре- чеобразования, о которой упоминалось выше. Хотя дублирование акустики речевого тракта может осуществляться достаточно точно, использование модели возбуждения оказывается более проблематичным. Для того чтобы синтезированная речь звучала естественно, важно, чтобы вос- производились правильные аллофоны. Несмотря на тот факт, что различные алло- фоны воспринимаются как одинаковые звуки, в случае если выбирается неверный аллофон, синтезированная речь не будет звучать естественно. Перевод фонем в аллофоны обычно происходит согласно определенному набору правил. Расчет дли- тельности слова также имеет большое значение. Но эти правила выходят за рамки области ЦОС.
Введение 17 1.4.1.3. Распознавание речи Одной из основных целей распознавания речи является обеспечение альтерна- тивного посредника между человеком и машиной. Распознавание речи может быть либо зависящим, либо независящим от говорящего и способно принимать изолиро- ванные высказывания или непрерывную речь. Каждая система способна использовать определенный словарь. Основным методом в распознавании речи является извлечение характеристик речевых сигналов на этапе тренировки. На этапе распознавания эти характеристики, извлеченные из входного сигнала, сравниваются с теми, которые уже хранятся. Учи- тывая также тот факт, что наш голос изменяется со временем, и показатели, в которых мы говорим, также изменяются, распознавание речи - это очень сложная задача. Однако на сегодняшний день доступны коммерческие проекты со сравнительно прос- тым, небольшим словарем и системами распознавания отдельных словосочетаний. И все это после 30 лет исследований в данной области и улучшений в аппаратном и программном обеспечении ЦОС. 1.4.2. Обработка изображений и видео Обработка изображений включает в себя обработку двумерных сигналов. Циф- ровое изображение состоит из двумерного массива значений пикселей вместо од- номерного массива, скажем, речевых сигналов. Мы вкратце опишем три области применений обработки изображений. 1.4.2.1. Повышение качества изображения Повышение качества изображения используется в случае, когда нам необходимо выполнить фокусировку или выделить какие-либо важные признаки изображения. Например, мы хотим увеличить резкость изображения, чтобы увидеть такие детали, как номер прав на машину или некоторые области рентгенограммы. В аэрофото- снимках возможно повысить качество изображения границ или линий для того, что- бы различить здания или другие объекты. Может возникнуть также необходимость улучшить качество изображения ряда спектральных компонентов образов, получен- ных с телескопов или космических кораблей. В некоторых случаях контрастность нуждается в улучшении. В то время как линейная фильтрация может быть единственным средством, не- обходимым для определенного типа улучшений, большая часть полезных действий по повышению качества является нелинейными по своей природе. 1.4.2.2. Восстановление изображений Восстановление изображений — это методы восстановления таких изображений, которые являются размытыми в результате движений сенсора или камеры и в которых может присутствовать аддитивный шум. Процесс размывания обычно моделируется
18 Цифровая обработка сигналов для инженеров и технических специалистов как операция линейного фильтра, и в этом случае проблема восстановления изобра- жений сводится к определению типа размытия и оценки параметров модели. В этом случае изображение обрабатывается инверсным фильтром. 1.4.2.3. Компрессия и кодирование изображений Изображение характеризуется большим числом данных. Обычный черно-белый фотоснимок, оцифрованный до массива 512x512 пикселей с использованием 8 битов на пиксель, содержит более двух миллионов бит информации. В случае последова- тельности изображений, таких, как видео или телевизионные изображения, количес- тво данных будет значительно больше. Компрессия изображения, как и компрессия речи, стремится к сокращению числа бит, необходимых для хранения или передачи изображения, либо без каких-либо потерь, либо с приемлемым уровнем потерь или искажений. Был предложен ряд различных методов, включая прогноз или кодирова- ние в области пространственных частот. Наиболее удачный способ обычно включает в себя несколько основных методов. Были разработаны очень сложные методы для применения в цифровых камерах и цифровых видеодисках (DVD). Для кодирования, как изображений, так и видеосигналов для различного рода приложений, разрабатываются определенные стандарты. Для статического изобра- жения обычно используют стандарт сжатия JPEG. Для высококачественного кинои- зображения используются стандарты MPEG и MPEG-2. Стандарт MPEG-2 разраба- тывался с учетом возможности применения в телевидении высокой четкости. Сейчас он используется при трансляции видеосигнала высокого качества через спутники. 1.4.3. Адаптивная фильтрация Основным преимуществом цифровой обработки является способность адапти- роваться к изменяющимся условиям среды. Несмотря на то, что адаптивная обработка сигналов является более сложным вопросом, мы не сможем осветить его в данной книге, однако мы опишем основные идеи, заключающиеся в адаптивной обработке сигналов, а также некоторые аспекты их применения. Основным компонентом адаптивной цифровой обработки сигналов является цифровой фильтр с варьируемым коэффициентом фильтрации — динамическим циф- ровым фильтром. Изменение характеристик фильтра при помощи изменений значений коэффициента фильтрации - довольно простая операция в рамках ЦОС. Адаптация происходит посредством алгоритма, который использует опорный (или желаемый) сигнал и сигнал ошибки, возникающий в результате разницы между выходом фильтра и входным сигналом в текущий момент времени. Алгоритм подстраивает коэффициент фильтрации таким образом, чтобы минимизировать среднюю ошибку. 1.4.3.1. Подавление шумов Одним из примеров задач подавления шумов является подавление в электрокар- диограмме компонентов, относящихся к матери, при электрокардиографии плода. Сигнал сердечного ритма плода может быть получен с сенсора, расположенного в
Введение 19 брюшной области матери. Однако такой сигнал сильно зашумлен по причине серд- цебиения матери и движений плода. Основная идея подавления шумов в таком случае заключается в том, чтобы сделать запись необработанных сигналов сердцебиения матери и после применения фильтров к сигналу удалить звуки сердечного ритма плода для того, чтобы получить сигнал, в котором практически отсутствуют шумы сердечного ритма. Структурная схема такой системы показана на рис. 1.5. Шум Первичный сигнал, получаемый с сенсора брюшной области Рис. 1.5. Система адаптивного подавления шумов Опорный сигнал, получаемый с сенсора грудной клетки Существуют два входных сигнала: первичный и опорный. Первичный сигнал представляет определенный интерес, однако имеет помеховую интерференцион- ную компоненту, которая коррелирована с опорным сигналом. Адаптивный фильтр используется для оценки этой интерференционной, или шумовой компоненты, которая затем удаляется из первичного сигнала. Выбор фильтра в таком случае определяется необходимостью того, чтобы сигнал ошибки и опорный сигнал были некоррелированы. 1.4.3.2. Эхоподавление Эхо — это сигналы, которые идентичны исходным сигналам, но ослаблены и задержаны во времени. Обычно они возникают при дальней телефонной связи из-за различий в сопротивлении. Подобного рода различия обычно происходят на соеди- нениях или гибридных ретрансляторах между местной абонентской линией и даль- ней абонентской линией. В результате таких различий падающие электромагнитные волны отражаются и звучат как эхо для телефонного абонента. Суть подавления эхо заключается в том, чтобы предсказать значения сигна- ла эхо и, таким образом, удалить его. Основной механизм действия показан на рис. 1.6. В силу того, что сигнал речи постоянно изменяется, система должна быть адаптивной.
20 Цифровая обработка сигналов для инженеров и технических специалистов Сигнал на ближнем конце линии Рис. 1.6. Адаптивная система подавления эхо 1.4.3.3. Частотная коррекция канала Рассмотрим передачу сигнала через канал связи (например, через коаксиаль- ный кабель, оптическое волокно, при радиосвязи). Этот сигнал будет подвергаться канальному шуму и рассеиванию, возникающему, например, в результате отражения от объектов, таких, как здания в канале передачи. Этот искаженный сигнал должен быть восстановлен приемником. Одним из способов восстановить исходный сигнал является пропускание приня- того сигнала через корректирующий фильтр для того, чтобы убрать эффекты рассея- ния. Такой корректор в идеале должен быть инверсным по отношению к характерис- тикам канала. Однако характеристики канала обычно сдвинуты во времени, и, таким образом, коэффициенты корректора (цифрового фильтра) необходимо постоянно подстраивать. Если средством передачи является кабель, то сдвиг будет происходить очень медленно. Но для беспроводных каналов в мобильной связи характеристики канала изменяются внезапно, и корректирующий фильтр должен очень быстро адап- тироваться к таким изменениям. Рис. 1.7. Адаптивный корректор в режиме обучения
Введение 21 Для того чтобы «понять» характеристики канала, адаптивный корректирующий фильтр работает в режиме обучения, где заданный обучающий сигнал передается на приемное устройство. Обычная передача сигнала должна периодически прерываться короткой обучающей сессией таким образом, чтобы коэффициенты корректирую- щего фильтра могли подстроиться. На рис. 1.7 показан режим обучения адаптивного корректора. 1.4.4. Управление приложениями Цифровой контроллер — это система, которая используется для управления замкнутыми системами с обратной связью, как это показано на рис. 1.8. Контроллер использует такие алгебраические алгоритмы, как фильтрация и компенсация для регулирования, корректирования или изменения поведения системы управления. Рис. 1.8. Цифровая замкнутая система с обратной связью Преимущество цифрового управления заключается в том, что совокупность алгоритмов управления чаще всего исполняется как программное обеспечение, а не специализированное аппаратное. Таким образом, конструкция контроллера и его параметры могут быть с легкостью изменены. Более того, обеспечивается повы- шенная помехозащищенность и устраняется дрейф параметров. Следовательно, эти контроллеры становятся более надежными, и, в то же время, уменьшаются их размер, масса, снижаются потребляемая мощность и стоимость. Цифровые процессоры сигналов представляются чрезвычайно полезными для применения в цифровых контроллерах, так как они оптимизировались для операций цифровой фильтрации путем использования простых арифметических операций. Более того, в случае если параметры системы, находящейся под управлением, из- меняются во времени, могут использоваться адаптивные алгоритмы управления, аналогичные адаптивным фильтрам, которые были описаны выше. 1.4.5. Обработка в антенных решетках или решетках сенсоров В некоторых приложениях используется ряд пространственно распределенных сенсоров для получения сигналов источников определенного рода. Проблема коге- рентного суммирования выходных сигналов с таких сенсоров известна как проблема
22 Цифровая обработка сигналов для инженеров и технических специалистов формирования диаграммы направленности. Кроме характеристики направленности, которую обеспечивает конкретный сенсор, формирование диаграммы направленнос- ти позволяет выборочно «прослушивать» волны, приходящие с одного либо другого направления. Таким образом, формирование диаграммы направленности представ- ляет собой пространственный фильтр. Формирование диаграмм направленности на- ходит свое применение в сейсмологии, подводной акустике, биоинженерии, системах радиосвязи и астрономии. В системах мобильной связи антенна с цифровым формированием ДН (антенная решетка с цифровым формированием диаграммы направленности) используется для увеличения числа потребителей и расширения географического покрытия. Для увели- чения числа пользователей необходима решетка, которая может увеличить мощность несущей к уровню интерференционных помех (С/И)1 как на базовой станции, так и на мобильном терминале. Существуют три подхода к максимизации С/И с исполь- зованием антенной решетки. • Первый подход основан на создании более высокого коэффициента усиления антенны в необходимом направлении путем использования сформированной апертуры антенны. Это возможно путем комбиниро- вания выходных сигналов каждой конкретной антенны для создания общей апертуры. • Второй подход базируется на уменьшении замирания вследствие много- лучевого распространения. В мобильной связи фединг (быстрое затуха- ние сигнала) происходит в результате многолучевого распространения, для устранения которого необходим дополнительный энергетический запас в 8 дБ. Необходимость наличия этого запаса может быть устранена путем использования методов гашения эффекта многолучевого распро- странения волн. • Третий подход связан с идентификацией и нуллификацией источников помех. Для цифровых методов формирования диаграммы направленнос- ти не составляет труда создание острых нулевых провалов в диаграмме направленности, что устраняет эффект интерференции. Оценка направления прихода принимаемого сигнала также выполняется с использованием решетки сенсоров. При наиболее простой конфигурации сиг- налы принимаются на два разнесенных в пространстве сенсора, где один из сиг- налов является ослабленной, зашумленной и задержанной во времени версией второго сигнала. Если расстояние между сенсорами известно, а также известна скорость сигнала, в таком случае можно оценить направление прихода прини- маемого сигнала. Если направление не меняется или медленно измен яется во времени, то его можно определить путем вычисления взаимной корреляционной функции двух сигналов и найти абсолютный максимум взаимно корреляционной функции. В случае если направление быстро изменяется, необходимо применять адаптивный алгоритм 1 2. 1 С/И (С / I — carrier-to-interference ratio) — отношение мощности сигнала несущей к интерфе- ренционной помехе. (Прим, пер.) 2 В отечественной литературе эти устройства обычно называют пеленгаторами. (Прим, пер.)
Введение 23 1.4.6. Приемник и передатчик цифровой системы связи Одним из наиболее ярких примеров широкого круга применения ЦОС являются разработка и применение цифрового оборудования связи. В 1970—80-х годах радио- системы из аналоговых стали цифровыми практически во всех областях техники: от систем управления до кодирования источников и каналов, а также технологий ап- паратного обеспечения. Появилась новая архитектура, известная как «программное радио». Данная технология дает развитие радиоуслугам, основанным на радиосвязи в зависимости от характеристик аппаратного обеспечения, таких, как полоса частот, ширина полосы пропускания канала и кодирование. Структура программного радио основывается на использовании широкопо- лосных аналого-цифровых (АЦП) и цифроаналоговых преобразователей (ЦАП), которые располагаются как можно ближе к антенне. Так как оцифровка сигнала происходит в первых контурах, в программном обеспечении может быть задана и применена наибольшая функциональность. Таким образом, аппаратное обеспе- чение относительно простое, а функции радио программно определены так, как показано на рис. 1.9. Была разработана программно определяемая канальная модуляция в пределах всех 25 МГц полосы частот сотовой связи. Мобильный модуль Речь Видео Данные АЦП ЦАП В РЕАЛЬНОМ ВРЕМЕНИ Программируемый процессор(ы) Широкополос- ный АЦП-ЦАП Преобразователь радиочастоты Базовая станция Общедоступная сеть ПРИМЕЧАНИЕ. Аппаратное обеспечение простое, а функции задаются программно. Рис. 1.9. Структура программного радио В более сложных приложениях программное радио не просто передает, оно ха- рактеризует доступность каналов передачи, исследует траекторию радиоволн, создает соответствующую канальную модуляцию, электронным образом управляет излуча- емым лучом в нужном направлении для систем с антенными решетками и выбира- ет оптимальный уровень мощности. Оно не просто принимает, оно характеризует энергетический спектр канала и соседних каналов, распознает режим приема вход- ных сигналов, адаптивно обнуляет помехи, оценивает динамические характеристики
24 Цифровая обработка сигналов для инженеров и технических специалистов многолучевого распространения, выравнивает и декодирует канальное кодирование. Основным преимуществом программного радио является его увеличивающиеся пре- образования предоставляемых услуг путем обновления программного обеспечения. Вся эта широкая область применения невозможна без прогресса технологий ЦОС. 1.5. Цели и обзор книги 1.5.1. Цели Главной целью книги является задача обеспечить представление об области применения цифровой обработки сигналов. Основной упор делается на попытке сбалансировать теорию и практику. Цифровая обработка сигналов по своей сути является очень широким полем деятельности и находит множество применений, используя широкие потенциальные возможности. Одна из целей данной книги заключается в изложении читателю ос- нов ЦОС и, таким образом, зарождении интереса в дальнейшем изучении цифровой обработки сигналов. Упражнения в использовании программного обеспечения применяются для того, чтобы расширить лекционный материал и помочь в понимании концепции. Все они основаны на пакете программ, который называется MATLAB®. Он стал стандартным пакетом программ де-факто во многих областях изучения и развития алгоритмов обработки сигналов. Он имеет удобный интерфейс и прост в исполь- зовании. Он также содержит в себе среду визуального программирования, которая называется SIMULINK. Разработка системы с использованием SIMULINK обычно включает работу на экране с визуальными компонентами в режиме мышью «перетащи и оставь» и созда- нием соответствующих связей между ними. Также приводятся эксперименты с использованием цифровых процессоров сиг- налов компании «Тексас инструменте» серии TMS320C54x для того, чтобы читатель смог ощутить реальную производительность интегральных схем процессоров циф- ровой обработки сигналов. 1.5.2. Краткий обзор глав Обзор оставшихся глав в данной книге следующий: • Во второй главе подробно рассматриваются концепции преобразования сигнала, непрерывного во времени, в сигнал, дискретный во времени и дискретный по амплитуде, и наоборот. Описаны концепции дискрети- зации и квантования, а также их связь с наложением спектров. Данные концепции дополнены практическими методами преобразования сиг- нала из аналогового в цифровую форму, а также из цифрового в анало- говый. • Цифровые сигналы и системы можно также описать как последователь- ности во временной или частотной области. В третьей главе цифровые
Введение 25 сигналы рассматриваются как последовательности во временной об- ласти. Цифровые системы также характеризуются последовательнос- тью, называемой последовательность импульсов. Мы обсудим свойства цифровых сигналов и систем, а также их взаимодействие. Подробно рассматривается расчет корреляционной функции данных последова- тельностей. • Дискретное преобразование Фурье (ДПФ) является связующим звеном между временной последовательностью и ее представлением в частотной области. В четвертой главе описаны основные характеристики ДПФ и некоторые эффективные способы расчета этого преобразования. • На основе изученных концепций для цифровых сигналов и систем в пятой главе мы рассмотрим некоторые практические приложения. Ряд этих приложений уже был вкратце описан в этой главе. Далее мы обсудим их, используя концепции, представленные во 2—4-й главах. • Обработка цифровых сигналов чаще всего происходит с помощью циф- ровых фильтров. Конструкции двух основных цифровых фильтров, филь- тра с конечной импульсной характеристикой (КИХ-фильтр) и фильтра с бесконечной импульсной характеристикой (БИХ-фильтр) подробно обсуждаются в 6—7-й главах. • Различные способы программного и аппаратного использования КИХ-фильтров и БИХ-фильтров описываются в восьмой главе. Главы 6—8 дают нам четкое понимание цифровых фильтров. • В главах 9— 10 представлены структура, характеристики и средства разра- ботки доступных коммерческих цифровых процессоров сигналов. Также приведены и вкратце описаны некоторые популярные коммерческие пакеты программ, которые используются для разработки алгоритмов цифровой обработки сигналов. В связи с тем, что данный курс является вводным, не рассматривается ряд важ- ных, но более сложных вопросов цифровой обработки сигналов. В том числе следу- ющие из них: • адаптивная фильтрация; • многочастотная обработка; • параметрическое моделирование сигналов и их спектральная оценка; • двумерная (и более) цифровая обработка сигналов; • другие эффективные алгоритмы быстрого преобразования Фурье.
2 Преобразование сигналов из аналогового в цифровой вид и наоборот 2.1. Типичная система цифровой обработки В предыдущей главе мы упоминали, что некоторые сигналы являются дискрет- ными по своей природе, в то время как другие являются непрерывными во временной области. Большинство сигналов, с которыми приходится сталкиваться в инженерных приложениях, — аналоговые. Для того чтобы выполнить обработку аналоговых сигна- лов с использованием цифровых методов, необходимо выполнить их преобразование в цифровую форму. Цифровая обработка аналоговых сигналов состоит из трех этапов. • Аналоговый сигнал оцифровывается. Оцифровка включает в себя два процесса: дискретизацию (квантование по времени) и квантование по амплитуде (квантование по амплитуде). Этот процесс называется анало- го-цифровым преобразованием (АЦП). • Для обработки цифрового сигнала применяются соответствующие алго- ритмы цифровой обработки. • Результат, или выходное воздействие обработки, подвергается обратному преобразованию в аналоговую форму посредством интерполяции. Этот процесс называется цифроаналоговым преобразованием (ЦАП). На рис. 2.1 в виде диаграммы показаны все эти три этапа обработки. Аналого-цифровое преобразование Восстановление аналогового сигнала Рис. 2.1. Три этапа аналого-цифроаналогового преобразования
Преобразование сигналов из аналогового в цифровой вид и наоборот 27 2.2. Дискретизация Прежде всего рассмотрим операцию дискретизации. Она может быть представ- лена путем рассмотрения изменения значений температуры в течение дня. Непре- рывные изменения температуры показаны на рис. 2.2. Однако наблюдения ее могут быть сохранены с интервалом в один час. Рис. 2.2. Вариации температуры в течение дня Сохраненные результаты показаны в табл. 2.1. Если нанести эти значения на плоскость координат, соотнеся их со временем, мы получим мгновенные значения ва- риации температуры в течение дня. Эти мгновенные значения называются отсчетами сигнала (температуры). Они показаны точками на рис. 2.2. В рассматриваемом нами случае интервал дискретизации — время между отсчетами — составляет два часа. Часы Температура 0 13 2 12 4 10 6 11 8 13 10 16 12 19 14 23 16 22 18 20 20 16 22 15 24 12 Табл. 2.1. Результаты измерения температуры с интервалом в один час
28 Цифровая обработка сигналов для инженеров и технических специалистов На рис. 2.3 показано представление процесса дискретизации в виде диаграммы. Аналоговый x(t) сигнал Идеальный дискретизатор Рис. 2.3. Процесс дискретизации х(п(Т)) Сигнал, дискретизованный во временной области Аналоговый сигнал дискретизуется с интервалом Т секунд, в результате чего мы получим последовательность отсчетов. Рассматривается идеальный дискретизатор — то есть тот, который выполняет отсчет сигнала без задержки во времени (либо с бесконечно малой задержкой). Реальный дискретизатор, конечно, не может работать таким образом, и процесс «переключения» в дискретизаторе занимает пусть даже малое, но конечное значение во времени. Это аналогично работе камеры с конечным временем открытия затвора. Даже если у нас есть возможность создания камеры с бесконечно малым временем, в течение которого открыт затвор, количество света, поступающего на пленку, будет весьма малым1. В общем случае мы будем рассматри- вать процесс дискретизации, близкий к идеальному. Необходимо отметить, что в процессе обсуждения мы будем подразумевать, что интервал дискретизации является постоянной величиной. Другими словами, расстояние между отдельными отсчетами постоянно. Это называется равномерная дискретизация. Хотя неравномерно дискретизованный процесс может при опре- деленных условиях быть преобразован в процесс с равномерным интервалом дис- кретизации, соответствующая концепция и математические выкладки находятся за рамками данной книги. Наиболее важным параметром процесса дискретизации является период во вре- мени, с которым берутся отсчеты Т, либо соответствующая ему частота дискретизации fs, которая определяется выражением f = — J S rj~! Частота дискретизации определяется в отсчетах в секунду или Герцах. Если осу- ществляется дискретизация с высокой частотой, система цифровой обработки анали- зирует большое количество данных на значительно меньшем временном интервале. При дискретизации с низкой частотой могут быть потери информации в дискретизо- ванном сигнале. Выбор частоты дискретизации определяется теоремой отсчетов. 2.2.1. Теорема отсчетов Теорема отсчетов определяет минимальную частоту дискретизации, необходи- мую для дискретизации сигнала, непрерывного во времени, таким образом, чтобы исходный сигнал мог быть полностью восстановлен по последовательности своих отсчетов. Обычно в литературе эту теорему называют теоремой Шеннона. 1 И, соответственно, недостаточным для получения снимка. (Прим, пер.)
Преобразование сигналов из аналогового в цифровой вид и наоборот 29 Теорема отсчетов'. Если непрерывный во времени сигнал не содержит частотных компонент выше, чем W Гц, то он может быть полностью восстановлен по последовательности своих отсчетов, взятых с частотой fs, отсчетов в секунду, где или при использовании периода дискретизации: Т< — 2W (а) спектр низкочастотного сигнала (6) спектр сигнала, занимающего определенную полосу частот Рис. 2.4. Два примера финитных спектров Сигнал, который не содержит частот выше определенной частоты, называется сигналом с финитным спектром. На рис. 2.4 показаны два типичных примера сиг- налов с ограниченной полосой занимаемых частот: низкочастотный и занимающий определенную полосу. Минимальная частота дискретизации в соответствии с теоремой отсчетов (£ = 2W) называется частотой Найквиста. Интересно отметить, что, несмотря на то что эта теорема обычно называется теоремой дискретизации Шеннона, она была создана британскими математиками Е.Т и Дж. М. Виттэйкером (Е.Т and J.M. Whittaker) и Ферраром (Ferrar). В русской литературе эта теорема была представлена в рамках теории связи Котельниковым и носит его имя. Шеннон использовал ее для изучения того, что сейчас называется теорией информации, в 1940-х. Следовательно, в литературе по математике и инже-
30 Цифровая обработка сигналов для инженеров и технических специалистов нерии она также называется теоремой отсчетов ВКШ (WKS) по именам Виттэйкера, Котельникова и Шеннона. 2.2.2. Интерпретация в частотной области Теорема отсчетов может быть выведена и доказана математически. Однако ин- туитивное ее понимание может быть получено путем рассмотрения процесса диск- ретизации в частотной области. Если мы рассмотрим сигнал, который является аналоговым, очевидно, что про- цесс дискретизации эквивалентен сильному разреживанию исходного сигнала. Рез- кие всплески и падения амплитуды сигнала перед или после момента дискретизации во времени представляют собой высокочастотные компоненты спектра сигнала. С помощью преобразования Фурье (которое мы будем обсуждать в главе 4) может быть показано, что высокочастотные компоненты, генерируемые при дискретизации, появляются в регулярном виде. Действительно, каждый частотный компонент спек- тра исходного сигнала периодически повторяется на всей оси частот. Период этого повторения определяется частотой дискретизации. Это повторение может быть легко определено для простого синусоидального сигнала. Рассмотрим синусоиду: х(Г) = cos(2n/a0. Перед дискретизацией спектр такого сигнала представляет собой единичную спектральную линию на частоте f. Пусть дискретизация выполняется в моменты времени t = nT. п = 0,1,2,..., где п — положительное целое число. Таким образом, дискретизованный синусоидальный сигнал определяется вы- ражением х(пТ) = cos(2rc/aftT), на частоте /=/;+/,. Дискретизованный сигнал имеет значение х'(нТ) = со8[2я(/а+/>Г] = cos[2rc/a«r + 2л/'8иТ] = cos[2n/a«7’ + 2ил] = cos[2n/a«T], которое совпадает со значением исходного дискретизованного сигнала. Следователь- но, мы можем сказать, что дискретизованный сигнал имеет частотные компоненты на частоте f = fa+nfs-
Преобразование сигналов из аналогового в цифровой вид и наоборот 31 Это повторение показано на рис. 2.5. > Частота Хотя мы рассмотрели пример только для простой синусоиды, свойство повторе- ния сохраняется для произвольного сигнала с произвольным спектром. Повторение спектра сигнала для низкочастотного сигнала с ограниченным спектром показано на рис. 2.6. Частота Повторение спектра (fs = 2w) Рис. 2.6. Исходный спектр низкочастотного сигнала с ограниченным спектром и повторение его спектра после дискретизации Рассмотрим эффект при дискретизации с частотой меньшей, чем требует теоре- ма отсчетов, — меньше удвоенной максимальной частоты сигнала. Как показано на рис. 2.7, спектры при повторении их в частотной области перекрываются друг дру- гом, что является причиной возникновения искажений в спектре исходного сигнала.
32 Цифровая обработка сигналов для инженеров и технических специалистов При этих условиях спектр исходного сигнала не может быть точно восстановлен. Этот эффект называется наложением (перекрытием) спектров. Частота Рис. 2.7. Наложение спектров Если частота дискретизации больше удвоенной максимальной частоты спектра сигнала, повторяющиеся спектры не будут перекрываться, и не будет возникать на- ложение спектров. Таким образом, спектр исходного сигнала может быть полностью восстановлен путем соответствующей фильтрации. 2.2.3. Наложение спектров Эффект наложения спектров входного сигнала может быть продемонстрирован путем дискретизации синусоиды с частотой f при использовании различных частот дискретизации. На рис. 2.8 показана дискретизация такой синусоидальной функции с различными частотами: f =4f, f=2f и f=1,5f. В первых двух случаях, если мы соединим значения отсчетов прямыми линиями, очевидно, что основное поведение синусоиды вида «движение вверх-вниз» остается тем же при рассмотрении «треугольной волны», рис. 2.9. Если мы пропустим такую «треугольную волну» через низкочастотный фильтр, результат будет представлять собой сглаженную интерполированную функцию. Если низкочастотный фильтр имеет соответствующую частоту среза, исходная синусои- дальная функция будет восстановлена. Более подробно этот вопрос рассматривается в разделе 2.5. Частота Рис. 2.8. Синусоида, дискретизованная с тремя различными частотами
Преобразование сигналов из аналогового в цифровой вид и наоборот 33 Амплитуда Рис. 2.9. Интерполяция отсчетов при отсутствии наложения спектров В последнем случае частота дискретизации ниже предела Найквиста. Мы пред- полагаем, что должно иметь место наложение спектров. Это действительно так. Если мы соединим точки отсчетов, мы увидим, что частота повторения функции отличается от частоты исходного сигнала. Фактически, если мы выполним интерполяцию по значениям отсчетов, то в результате получим сглаженную функцию с более низкой частотой, как показано на рис. 2.10. Таким образом, в этом случае невозможно восстановить исходное синусоидаль- ное колебание по набору таких отсчетов. Мы говорим, что максимальная частота синусоидального колебания теперь имеет неоднозначность частотного состава коле- бания в нижней области частот, вызванного наличием таких отсчетов. Другими сло- вами, эти отсчеты не являются представлением исходного сигнала, и, таким образом, любая их последующая обработка приведет к неверным результатам. Отметим, что теорема отсчетов подразумевает, что сигнал имеет финитный спектр. В действительности реальные сигналы имеют широкий спектр и, строго говоря, не являются ограниченными в частотной области. Например, мы можем 2 445
34 Цифровая обработка сигналов для инженеров и технических специалистов предположить, что 20 кГц — это максимальная частота сигнала, слышимого челове- ческим ухом. Таким образом, нам потребуется частота дискретизации немного более 40 кГц (скажем, 44,1 кГц, как для компакт-диска), как того требует теорема отсчетов. Однако реальные аудиосигналы обычно имеют полосу частот намного больше, чем 20 кГц. Мы можем обеспечить ограничение полосы частот сигнала до 20 кГц путем низкочастотной фильтрации. Этот низкочастотный фильтр обычно называют низко- частотным фильтром устранения эффекта перекрытия спектров. 2.2.4. Фильтрация наложения спектров Фильтрация наложения спектров всегда выполняется с помощью аналоговых фильтров, которые обрабатывают сигнал до его дискретизации. В большинстве случа- ев эти фильтры являются также низкочастотными, за исключением методов дискре- тизации полосовых процессов (в книге не рассматривается дискретизация процессов, имеющих ограниченный некоторой полосой спектр). Процесс дискретизации, который включает в себя использование низкочастот- ного фильтра в качестве фильтра, препятствующего наложению спектров, показан на рис. 2.11. Идеальный фильтр имеет равномерное значение коэффициента пропуска- ния в полосе рабочих частот и характеристику подавления с высокой крутизной. Так как частота среза этого фильтра составляет величину, равную половине необходимой частоты дискретизации, то результирующий повторяющийся спектр дискретизован- ного сигнала не перекрывается. В этом случае не возникает перекрытия спектров. Спектр входного сигнала Спектр отфильтрованного сигнала Повторяющийся спектр Цифровой сигнал Рис. 2.11. Процесс аналого-цифрового преобразования с фильтрацией перекрытия спектров Реальные низкочастотные фильтры не могут обладать такой идеальной харак- теристикой. Каковы последствия данного факта? Во-первых, это означает, что мы должны выполнять дискретизацию с частотами выше предела Найквиста для того,
Преобразование сигналов из аналогового в цифровой вид и наоборот 35 чтобы скомпенсировать переходную функцию фильтра. Полоса пропускания фильтра обычно отсчитывается на уровне 3 дБ (частота, на которой значение отклика фильтра на 3 дБ ниже своего максимального значения, находящегося в полосе пропускания). Однако уровни сигнала ниже 3 дБ достаточно значительны для большинства практи- ческих применений. Так, для примера использования аудиосигналов, приведенного в предыдущем разделе, может быть принято, что уровень сигнала ниже 40 дБ приведет к незначительному наложению спектров. Используемый для этого фильтр может иметь полосу частот 20 кГц, но значение его отклика на 40 дБ ниже максимального начинается с частот 24 кГц. Это означает, что минимальная частота дискретизации должна быть увеличена до 48 кГц вместо 40 кГц для случая использования идеального фильтра. В качестве альтернативы, если мы зафиксируем значение частоты дискрети- зации, необходимо использовать фильтр с более высокой крутизной передаточной характеристики. Используя тот же пример аудиосигналов для случая, когда мы хотим сохранить неизменной частоту дискретизации 44,1 кГц, мы получим, что для филь- трации наложения спектров нам необходима передаточная функция с затуханием 40 дБ на частоте 22 кГц. При полосе пропускания 20 кГц фильтр должен обладать пе- редаточной характеристикой, уменьшающейся с 3 дБ до 40 дБ в полосе частот 2 кГц. В большинстве случаев это означает необходимость использования фильтров более высокого порядка. Использование фильтров более высокого порядка, в свою очередь, предполагает использование большего числа элементов для их построения. 2.2.5. Практические значения предельных частот дискретизации В предыдущем разделе было проведено обсуждение практических аспектов выбора частоты дискретизации, которая определялась двумя факторами для определенного типа входного сигнала. С одной стороны, теорема отсчетов налагает условие на ми- нимально допустимую нижнюю границу частоты дискретизации. С другой стороны, промышленное использование аппаратных компонентов определяет верхнюю часто- ту дискретизации. Последний фактор включает в себя стоимость аналого-цифрового преобразователя (АЦП) и стоимость построения схемы фильтра наложения спектров. Высокоскоростные АЦП позволяют использовать более высокие частоты дискретиза- ции, но могут стоить существенно больше. Однако более низкие частоты дискретизации налагают более строгие ограничения на частоты среза фильтра наложения спектров, что отражается в необходимости использования фильтров более высокого порядка и более сложных схем, что опять может обернуться большей стоимостью. В реальных приложениях каждый отсчет получается (дискретизуется), кванту- ется и обрабатывается в цифровом процессоре. В ряде случаев необходимо обратное приведение отсчетов к аналоговой форме. Более высокие частоты дискретизации оз- начают необходимость обработки большего числа отсчетов в единицу времени. Если Гргос — это общее время обработки в цифровом процессоре, то временной интервал между отсчетами Т должен превышать величину Г . В противном случае процессор будет не в состоянии их получить. Это означает, что в случае увеличения частоты дис- кретизации нам потребуется более высокопроизводительный цифровой процессор. 2*
36 Цифровая обработка сигналов для инженеров и технических специалистов 2.2.6. Математическое представление Чтобы точно описать процесс дискретизации и проанализировать ЦОС, необхо- димо математическое представление данного процесса (и любого другого процесса, включенного для этих целей в цифровую обработку). Процесс дискретизации может быть описан как произведение аналогового сиг- нала на периодическую импульсную функцию. Эта импульсная функция известна также как функция Дирака, или дельта-функция, и обычно обозначается символом 5(t). Она показана на рис. 2.12. 4 5(t) О Рис. 2.12. Дельта-функция Дирака Она может быть рассмотрена как прямоугольный импульс с нулевой длительнос- тью и бесконечной амплитудой. Она характеризуется свойством равенства единице энергии этого импульса. Этот факт соответствует выражению Г J-oo Таким образом, взвешенная или масштабированная импульсная функция может быть описана как такая функция, которая удовлетворяет равенству Г Ab(t)dt = A, J-OO Взвешенная импульсная функция схематически обозначается стрелкой с высо- той, пропорциональной масштабному множителю. Периодическая последовательность импульсных функций определяется выра- жением 5(0 = --- + 5(/-27;) + 5(r-Ts) + 5(0 +5(z + Ts) + 5(Z + 27;) + --- оо И=-оо где Т — расстояние между двумя соседними отсчетами на временной оси. В терминах дискретизации это интервал дискретизации.
Преобразование сигналов из аналогового в цифровой вид и наоборот 37 Обозначим входной аналоговый сигнал как f(t), тогда дискретизованный сигнал определяется выражением Я0 = ЛО •*(') = Х/(')-8(г-ИГ,), а выходные отсчеты дискретизованного процесса будут У{пТ^ = /(пТ^-^-пТ^. В ряде случаев период дискретизации подразумевается автоматически, и мы будем использовать запись у(п) для обозначения у(пТ^). Это математическое пред- ставление будет использоваться в дальнейших разделах книги. 2.3. Квантование 2.3.1. Фиксация отсчета Следующим шагом в процессе преобразования сигнала от аналоговой к цифро- вой форме является дискретизация его амплитуды, или квантование. На практике процесс квантования занимает определенное время, по этой причине амплитуда дис- кретизованного сигнала должна быть зафиксирована в течение некоторого времени. Процесс дискретизации обычно выполняется с использованием схемы фиксации отсчета, которая может быть представлена в логической форме (рис. 2.13). Аналого- цифровой преобразователь выполняет процесс квантования. Аналоговый сигнал Дискретизованный сигнал Фиксирующий конденсатор Рис. 2.13. Схема фиксации отсчетов Фиксирующий конденсатор фиксирует полученное значение отсчета аналого- вого сигнала х(пТ) на время не менее Тсекунд, в течение которого значение кванто- ванной величиных^(пТ) присутствует на выходе аналого-цифрового преобразователя; это значение представлено В-битным бинарным числом. Схема фиксации отсчетов и АЦП может быть представлена отдельными модулями или интегрирована в одну интегральную микросхему. Обычно высокоскоростные АЦП требуют наличия вне- шних устройств фиксации отсчетов.
38 Цифровая обработка сигналов для инженеров и технических специалистов 2.3.2. Равномерное квантование АЦП предполагает, что значения входных величин находятся в пределах некото- рого диапазона R. Обычно значения R составляют величины между 1 и 15 В. Так как квантованные значения отсчетов xQ(nT) представляются В битами, возможны толь- ко 2В значений уровней квантования. Если расстояние между соседними уровнями квантования постоянно на всем интервале диапазона R, то мы имеем равномерный квантователь. Расстояние между соседними уровнями квантования называется шагом квантования, или разрешением квантователя. Для равномерного квантования разрешение определяется выражением Следовательно, число бит, необходимое для получения требуемого разрешения Q, будет Большинство АЦП могут обрабатывать биполярный сигнал, что означает, что значения отсчетов находятся в симметричном интервале Для однополярных входных сигналов: 0<х(и7)<7?. На практике входной сигнал априорно должен находиться в пределах рабочей области квантователя R. На рис. 2.14 показаны уровни квантования для 3-битного квантователя биполярных входных сигналов. Для обзора возможных представлений выходных квантованных значений в би- нарной форме представлены в Приложении А. Выходная амплитуда А3. А2. Аг Входная амплитуда Рис. 2.14. Передаточная функция 3-битного квантователя с равномерным шагом квантования
Преобразование сигналов из аналогового в цифровой вид и наоборот 39 Ошибки квантования — это разница между истинным и квантованным значе- ниями отсчета. Математически эта величина определяется так: е(пТ) = x(nT)-xQ(nT) или эквивалентной записью е(п) = x(n)-xQ(n), Если х(п) лежит между двумя уровнями квантования, его значение будет округлено или усечено. Округление заменяет значение х(п) значением ближнего уровня квантова- ния. Усечение заменяет значение х(п) величиной уровня квантования ниже его. Для операции округления величина ошибки определяется выражением -2<е<е, 2 2 а для операции усечения — выражением 0<e<Q. Очевидно, что в результате округления мы будем иметь менее смещенное пред- ставление аналоговых величин. Средняя ошибка определяется выражением ё = — р 2 ede = 0. Q J-Q/2 Это означает, что в результате округления половина значений будет округлена с повышением, а половина — с уменьшением. Среднеквадратическая ошибка дает нам общее представление средней мощности сигнала ошибки. Она определяется так: 2 о e2de 12 Следовательно, корень из среднеквадратической ошибки будет ^rms Отношение сигнал/шум квантования определяется выражением 5m«,20log:, А = 20 log,0 (2е) = 2051og10 2 = 65 dB.
40 Цифровая обработка сигналов для инженеров и технических специалистов Таким образом, если мы увеличим число бит АЦП на один, отношение сигнал/ шум квантования увеличится на 6 дБ. Последнее выражение определяет динамичес- кий уровень квантователя. Пример 2.1. Динамический диапазон человеческого уха — около 100 дБ. Если для цифровой аудиосистемы требуется соответствующий динамический уровень, он потребует 10^/ = 16.67 bits /6 16-битный квантователь обеспечит динамический диапазон 96 дБ. Если максимальная частота звука, слышимого человеческим ухом, составляет 20 кГц, то минимальная необходимая частота дискретизации составит 40 кГц. Если действительная частота дискретизации составляет 44 кГц, частота данных в такой системе составит 16,44 = 704 кБит/сек1 Такая частота данных типична для цифрового проигрывателя компакт-дисков. Так как ошибка квантования представляет собой случайное число в пределах определенной области, она обычно представляется случайным сигналом (или шу- мом) с равномерной дифференциальной плотностью вероятности распределения, рис. 2.15. Дифференциальная плотность вероятности Р(е) А к Q 2 —>(е) Ошибка квантования о Q 2 Рис. 2.15. Равномерная дифференциальная плотность вероятности распределения ошибки квантования Квантованный сигнал в дальнейшем задается моделью аналогового дискрети- зованного сигнала с аддитивным шумом квантования, как показано на рис. 2.16. Этот шум квантования обычно представлен белым шумом с равномерной диффе- ренциальной плотностью вероятности и нулевым средним, не коррелированным с входным сигналом. Это предположение в общем случае верно для сигналов, значения которых из- меняются в пределах рабочего диапазона квантователя при условии, что квантователь имеет достаточно большое число уровней. 1 Правильная запись 16 х 44000 = 704000 Бит/сек. (Прим, пер.)
Преобразование сигналов из аналогового в цифровой вид и наоборот 41 х(п) Случайный шум е(п) Рис. 2.16. Математическая модель шума квантования /Q(n) 233. Неравномерное квантование Одним из предположений, которое было сделано при анализе ошибок кван- тования, является то, что амплитуда дискретизованного сигнала равномерно рас- пределена в пределах рабочего диапазона квантователя. Это предположение может не выполняться для ряда приложений, например, речевые сигналы имеют большой динамический диапазон. Голосовая речь (например, гласные звуки) может иметь амплитуды, охватывающие весь рабочий диапазон квантователя, в то время как более мягкая невокализованная речь (например, согласные, такие, как фрикативы) обыч- но характеризуется меньшей амплитудой. В дополнение к этому, в среднем человек говорит около 60% от всего времени разговора. Это оставляет 40% молчания с пре- небрежимо малой амплитудой. Если используется равномерное квантование, более громкие звуки будут пред- ставлены адекватно. Однако более мягкие звуки будут занимать только небольшое число уровней квантования с близкими бинарными значениями. Это означает, что мы не сможем различить более мягкие звуки. В результате этого восстановленный из цифровой формы аналоговый речевой сигнал не будет близок по четкости к исход- ному сигналу. Рис. 2.17. Неравномерное квантование
42 Цифровая обработка сигналов для инженеров и технических специалистов Для того чтобы обойти эту проблему, может быть использовано неравномерное квантование. Большее число уровней находится на малых уровнях амплитуды, в то время как большим значениям амплитуды соответствует меньшее число уровней квантования. Схема такого квантования показана на рис. 2.17. В качестве альтернативы также может использоваться квантователь с равномер- ным шагом квантования, входной сигнал которого подвергается операции сжатия системой, отношение уровней входного и выходного сигналов которой (передаточная функция) близко к изображенному на рис. 2.18. Сжатый входной сигнал |х| Рис. 2.18. Характеристика компрессора со сжатием по ц-закону Большие значения амплитуды входного сигнала сжимаются (компрессиру- ются), эффективно уменьшая число относящихся к ним уровней. Сигналы с низ- кими значениями амплитуды растягиваются (экспандируются) либо нелинейно усиливаются, эффективно увеличивая число занимаемых ими уровней. После обработки к выходному сигналу применяется обратная операция (экспандиро- вание). Система, которая выполняет расширение сигнала (экспандер), имеет характеристику входа-выхода, обратную характеристике компрессора. Экспандер расширяет значения больших амплитуд и сжимает значения малых амплитуд. Весь этот процесс называется компандированием (Компрессирование и эксПАНДИ- РОВАНИЕ). Компандеры широко используются в телефонах-автоматах. Существуют две различные системы компандирования. В Европе используются компандеры А-типа, а в США используются компандеры р -типа. Характеристика компрессора для р -типа определяется выражением У = Лпах 1п(1 + ц) sgn(x),
Преобразование сигналов из аналогового в цифровой вид и наоборот 43 где sgn(x)= +1, -1, х > О х < О Здесь х и у представляют собой входную и выходную величины, хмах и умах — мак- симальные положительные отклонения входного и выходного сигналов соответствен- но; ц-положительная константа. Североамериканский стандарт определяет ц = 255. Отметим, что ц = 0 соот- ветствует линейному закону связи между входным и выходным сигналами (то есть равномерному закону квантования). Соответствующая характеристика компрессора показана на рис. 2.18. Компрессор A-типа задается выражением А ’max-?T^Sgn(x), 1 + 1п А \ ^max ) 1 + 1пЛ sgn(x), 1 < | X | Здесь А — положительная константа. Европейский стандарт определяет А = 87,6. На рис. 2.19 эта характеристика представлена графически. Рис. 2.19. Характеристика компрессора А-типа
44 Цифровая обработка сигналов для инженеров и технических специалистов 2.3.4. Добавление псевдослучайного сигнала Еще одним предположением, которое мы делали при исследовании шума кван- тования, являлось то, что он полагался распределенным с равномерной дифферен- циальной плотностью вероятности в пределах интервала квантования. Если этот шум не является равномерно распределенным, то результатом будет искажение выхода квантователя. В качестве примера мы покажем искажения результата квантования. Дискрети- зации и квантованию будет подвергаться синусоидальная функция с малой амплиту- дой. Отсчеты этой синусоиды определяются выражением х(и) = Лсо8(2л/0и), где А — величина меньшая, чем разрешение квантователя (шага квантования). Пусть f= 40 отсчетов за период и А = 0,75 Q. Таким образом, для синусоиды с частотой 1 кГц частота дискретизации состав- ляет 40 кГц. На рис. 2.20 (а) показаны исходный и квантованный сигналы. Квантование без добавления псевдослучайного сигнала Рис. 2.20 (а). Исходный и квантованный сигналы Отметим, что квантованный сигнал занимает только три доступных уров- ня квантования. Частотный спектр этого квантованного сигнала показан на рис. 2.20 (б).
Преобразование сигналов из аналогового в цифровой вид и наоборот 45 Амплитудный спектр сигнала без добавления псевдослучайного сигнала f/fs Рис. 2.20 (б). Спектр квантованного сигнала Он имеет пик на частоте fQ и нечетные гармонические частоты 3fQ9 5fQ9 и т.д. Очевидно, что нечетные гармоники являются искажениями (артефактами), появля- ющимися вследствие процесса квантования, и могут быть рассмотрены как спектр шума квантования, который в этом случае не является белым. Эта проблема может быть устранена путем добавления псевдослучайного сигнала v(n) к исходному дискретизованному сигналу: у(п) = x(n) + v(n). Могут быть использованы различные типы плотностей вероятности распреде- ления псевдослучайного сигнала. Два из них имеют наибольший интерес с практи- ческой точки зрения. — это треугольные и прямоугольные плотности вероятности. Они показаны на рис. 2.21. Добавление псевдослучайного сигнала к исходному сигналу увеличивает сред- ний уровень мощности шума квантования. Напомним, что средняя мощность шума при равномерном квантовании равна С2/12. Добавление псевдослучайного сигна- ла с прямоугольным законом распределения плотности вероятности удваивает этот средний уровень мощности, а с треугольным законом распределения — утраивает ее. Однако если мы рассмотрим спектр плотности псевдослучайного сигнала и кванто- ванный сигнал в рамках рассмотренного выше примера (рис. 2.22), мы увидим, что спектр шума теперь является белым, а искажения (артефакты) на нечетных гармо- никах отсутствуют.
46 Цифровая обработка сигналов для инженеров и технических специалистов P(v) б - треугольное распределение плотности вероятности псевдослучайного сигнала Рис. 2.21. Прямоугольное и треугольное распределение плотности вероятности псевдослучайного сигнала Значение относительно величины Q Квантование с добавлением псевдослучайного сигнала Рис. 2.22 (а). Сигнал с добавлением псевдослучайного сигнала и результат его квантования
Преобразование сигналов из аналогового в цифровой вид и наоборот 47 Необходимо подчеркнуть, что в общем случае процесс дискретизации является причиной возникновения всех нечетных гармоник, которые лежат вне интервала Найквиста (внеполосные гармоники) и которые будут совмещаться обратно в интер- вал Найквиста (негармонические частоты в пределах полосы пропускания). Таким образом, результирующий спектр будет содержать пики на частотах, отличных от нечетных гармоник. f/fs Рис. 2.22 (б). Спектр шума квантования с учетом добавления псевдослучайного сигнала 2.4. Аналого-цифровые преобразователи Мы рассмотрели фундаментальный процесс преобразования аналоговых сиг- налов в цифровую форму с целью их дальнейшей цифровой обработки. Сначала аналоговый сигнал подвергается низкочастотной фильтрации частот, больших, чем половина частоты дискретизации, с целью предотвращения наложения спектров. Результат проходит через устройство фиксации отсчетов, и амплитуды полученных отсчетов квантуются и преобразовываются в бинарные числа. Эти бинарные числа имеют размерность п бит, где п обычно равно 8,10,12 и 16. В Приложении Б рассмот- рены три основных типа бинарного представления. Сейчас мы кратко рассмотрим некоторые аналого-цифровые преобразователи (АЦП), которые существуют в продаже. Существует много видов ЦАП, доступных на рынке. Большинство из них содержат схемы фиксации отсчетов. Они покрывают
48 Цифровая обработка сигналов для инженеров и технических специалистов значительный диапазон по скорости преобразования, разрешению (числу бит, кото- рыми представляется выходное значение) и диапазону входных напряжений. Одни АЦП используются для различных применений, другие — для специфических, таких, как видеообработка. В них используются различные методы квантования. Ниже описываются четыре наиболее общих метода. 2.4.1. Последовательное приближение АЦП последовательного приближения состоят из трех основных блоков: ана- лого-цифрового преобразователя (ЦАП), регистра последовательного приближения (РПП) и компаратора. На рис. 2.23 показана структура связи этих трех блоков. Рис. 2.23. Преобразователь последовательного приближения Процесс преобразования состоит в следующем: сначала все п бит в РПП сбро- шены в нулевое значение. Начиная с самого старшего бита (ССБ) Ьп р каждый бит последовательно устанавливается в 1. ЦАП преобразовывает сформированное та- ким образом бинарное число в соответствующее напряжение, которое сравнивается с входным. Если входное напряжение превышает напряжение на выходе ЦАП, то значение этого бита будет в состоянии «включено». В противном случае он будет переведен в 0 (состояние «выключено»). После п циклов РПП будет содержать вер- ную последовательность битов, которая фиксируется и подается на выходную цепь. Таким образом, этот метод продолжает делить диапазон напряжения пополам с це- лью определения положения входного напряжения. В качестве альтернативного мы можем высказать утверждение, что метод последовательных приближений выполняет бинарный поиск по уровням квантования. Пример 2.2. Преобразовать аналоговые значения величины х = 0,2 и х = —0,7 в их представ- ление двоичным кодом путем использования последовательных приближений.
Преобразование сигналов из аналогового в цифровой вид и наоборот 49 Рассматривается 3-битный квантователь с диапазоном рабочих напряжений Я=2В. Для 3-битного квантователя преобразование выполнится за три цикла. Ниже, для х = 0,2, приведены величины проверяемого бита, соответствующее квантованное значение промежуточного значения бит и результат проверки. Такт Проверяемый бит W>0 XQ Результат проверки 1 Ь2 100 0,00 1 2 ЬХ по 0,50 0 3 h 101 0,25 0 Для столбца результатов проверки значение «1» указывает на то, что входное напряжение больше либо равно выходному напряжению ЦАП, в противном случае - «0». Во втором цикле результат проверки равен 0; в результате РПП сбросит бит обратно в нулевое значение. Аналогично в цикле 3 Z>0 сбрасывается в нулевое значение, и в результате выходное значение будет равно 100, что соответствует квантованному напряжению 0,00. Следующая таблица показывает процесс преобразования для случая х = —0,7 В. Такт Проверяемый бит w>0 XQ Результат проверки 1 100 0,00 0 2 010 -0,50 0 3 on -0,75 1 Результирующее квантованное значение —0,75 будет представлено последова- тельностью «011». Отметим, что для рассмотренного примера оба значения усекаются до нижнего уровня. Если требуется округление до ближайшего уровня, значение входной ве- личины должно быть смещено на половину величины расстояния между уровнями (разрешения). То есть получим смещенную величину у как и квантуем у последовательным приближением. Множество АЦП также дают число, представленное в дополнительном двоич- ном коде. Если это - требуемый выходной формат, то алгоритм последовательного приближения должен быть немного модифицирован. Эта необходимость обусловле- на тем, что ССБ (то есть бит знака) должен быть рассмотрен отдельно от остальных бит. Если входное напряжение больше нуля, ССБ должен быть установлен в «0», в противном случае он равен «1». Отметим, что это обратно его значению в двоичном коде. Оставшиеся биты проверяются таким же образом.
50 Цифровая обработка сигналов для инженеров и технических специалистов Пример 2.3. Выполнить квантование величин из предыдущего примера, но с использованием дополнительного двоичного кода. Для х =0,2 процесс иллюстрируется следующей таблицей. Такт Проверяемый бит ^2^1 Й0 XQ Результат проверки 1 Ь2 000 0,00 1 2 Ь1 010 0,50 0 3 Ь0 001 0,25 0 Результирующее двоичное число «ООО». Следующая таблица иллюстрирует квантование величины х = -0,7 с использо- ванием дополнительного двоичного кода. Такт Проверяемый бит Ь2ЬХЬ0 XQ Результат проверки 1 Ь2 000 0,00 0 2 ЬХ НО -0,50 0 3 Ь<Х 101 -0,75 1 Представление в дополнительном двоичном коде «101». Отметим, что дополнение ССБ (бита числа) дает нам представление числа в двоичном коде на выходе устройства. Большое число АЦП, работающих на частотах дискретизации до 1 МГц, исполь- зуют последовательное приближение. 2.4.2. АЦП двойного интегрирования Если требуется высокое разрешение, то обычно используется преобразование с двойным интегрированием. Ключевым элементом АЦП двойного интегрирования является конденсатор. В начале цикла преобразования конденсатор полностью раз- ряжен (это означает, что напряжение на нем равно нулю). Затем в течение установ- ленного определенного промежутка времени он заряжается входным напряжением. После этого заданного промежутка времени конденсатор переключается на известное негативное напряжение, и происходит медленный разряд конденсатора до тех пор, пока напряжение на нем не достигнет нуля. Время, необходимое для процесса разря- да, отсчитывается с использованием цифрового счетчика. При начальной установке этого временного счетчика в нулевое положение результирующее его значение про- порционально значению входного напряжения. Значение счетчика в двоичном коде является преобразованным значением выходного двоичного значения АЦП.
Преобразование сигналов из аналогового в цифровой вид и наоборот 51 Преобразование с высоким разрешением может быть получено путем исполь- зования более точного счетчика, который относительно прост в аппаратном испол- нении. Еще одним преимуществом этого процесса является то, что вариации значе- ний его компонент не имеют влияния на точность. Например, конденсатор может изменять свою емкость под влиянием изменений температуры. Но так как зарядка и разрядка выполняются с использованием одного и того же конденсатора, результи- рующего эффекта эти изменения оказывать не будут. Основным недостатком является то, что процессы зарядки и разрядки конден- сатора занимают относительно большой промежуток времени. По этой причине эти процессы, в основном, используются в АЦП с высокими разрешениями и низкими частотами дискретизации. 2.4.3. Параллельный АЦП Для л-битного квантователя метод последовательного приближения требует п циклов. Если требуется малое время преобразования, сравнения должны выполнять- ся параллельно и в одно и то же время. В параллельных АЦП входное напряжение одновременно сравнивается с набором опорных напряжений. Эти опорные напря- жения устанавливаются с помощью резистивных делителей напряжения с равными сопротивлениями. Для л-битного преобразователя нам необходимо 2п резисторов. Напряжения, снимаемые с отводов этого набора, затем сравниваются с входным напряжением, и в результате формируется соответствующее цифровое значение. На рис. 2.24 показан 2-битный параллельный АЦП. Рис. 2.24. 2-битный параллельный АЦП На практике каждый резистор в делителе напряжения должен быть подобран и обработан лазером с целью приведения к одной величине. Это весьма дорогостоящий процесс. По этой причине параллельные АЦП обычно весьма дорогие и используют до 8 бит уровней квантования (с помощью 256 резисторов).
52 Цифровая обработка сигналов для инженеров и технических специалистов 2.4.4. Сигма-дельта АЦП Концепция сигма-дельта преобразователей существенно отличается от трех рас- смотренных выше методов. Сигма-дельта АЦП — это низкочастотные квантователи, работающие на частотах, существенно превышающих предел Найквиста. Два важных метода, именуемых избыточная дискретизация и ограничение шума квантования, используются в сигма-дельта АЦП для того, чтобы сбалансировать разрешение кван- тователя и частоту дискретизации. Эти методы грамотно используют теоретическую концепцию, рассмотренную ранее в этой главе. 2.4.4.1. Избыточная дискретизация Избыточная дискретизация означает, что частота, с которой берутся отсчеты, выше минимальной необходимой, то есть выше предела Найквиста. Обычно исполь- зуется значение, равное удвоенному пределу Найквиста. Если используется частота дискретизации в R раз выше, чем предел Найквиста ^^Nyquist > то R называется коэффициентом избыточности дискретизации. Рассмотрим два основных преимущества при избыточной дискретизации. Рассмотрим отдельную аудиосистему, которая использует частоту дискретизации 48 кГц. В этом случае нам необходим фильтр, устраняющий наложение спектров, который подавляет все частоты выше 24 кГц на, скажем, 96 дБ, что эквивалентно полному 16-битному разрешению. Частота среза этого фильтра должна быть ниже 24 кГц. Допустим, что мы разработали фильтр с частотой среза 18 кГц. На рис. 2.25 (а) показана частотная характеристика этого фильтра. Частота (кГц) Рис. 2.25 (а). Частотная характеристика фильтра, устраняющего наложение спектров, для граничной частоты дискретизации Частота (кГц) Рис. 2.25 (б). Частотная характеристика фильтра, устраняющего наложение спектров, для частоты дискретизации, в четыре раза большей граничной
Преобразование сигналов из аналогового в цифровой вид и наоборот 53 Если мы выполним избыточную дискретизацию с частотой, равной граничной, умноженной на четыре, то частота, с которой необходимо брать отсчеты, увеличится до 192 кГц. Требуемый коэффициент ослабления для фильтра, устраняющего пере- крытие спектров, теперь будет составлять 96 дБ на 96 кГц вместо 24 кГц. Если частота среза фильтра остается неизменной — 18 кГц, то крутизна спада частотной характе- ристики фильтра намного меньшая, чем рассмотренного ранее фильтра. Частотная характеристика такого фильтра показана на рис. 2.25 (б). Это означает, что увеличение частоты дискретизации снижает требования к фильтру, устраняющему перекрытие спектров. Другими словами, может быть ис- пользован фильтр более низкого порядка. Учитывая то, что фильтр, устраняющий перекрытие спектров, — аналоговый фильтр, это означает более простую его схемо- технику и, таким образом, более легкое построение. Второе преимущество избыточной дискретизации в том, что мощность шумов квантования распределена по существенно большему интервалу частот. Более точно: если^ — это частота дискретизации, мощность шумов квантования распределена на интервале от 0 j\ofs/2. На рис. 2.26 показан шум квантования для рассматриваемой системы с использованием и без использования избыточной дискретизации. Если число уровней квантования есть постоянная величина, в обеих системах присутствует одинаковая величина шума квантования. Однако в системе с избыточным квантова- нием эта величина распределена по существенно большему диапазону частот. Так как входной сигнал занимает полосу частот меньше этого диапазона, мощность помехи, влияющая на сигнал, будет меньше. Более того, шум квантования, находящийся за пределами полосы, занимаемой спектром сигнала, теперь может быть отфильтрован с использованием соответствующего цифрового фильтра. Спектральная плотность мощности Рис. 2.26. Уровень шума квантования при дискретизации на критической частоте и при избыточной дискретизации Уровень шума квантования, который остается после цифровой фильтрации, в этом случае уменьшается на величину, соответствующую избыточности квантова-
54 Цифровая обработка сигналов для инженеров и технических специалистов ния. Таким образом, при коэффициенте избыточности 4 шум квантования уменьша- ется в 4 раза по отношению к предыдущему случаю. Nyquist 4 В децибелах это значение определяется так: Cos,db =2Nyquist,db-101°g4- И, таким образом, шум квантования уменьшается на 101og4=6.02 дБ. Вспомним, что, если мы увеличим число уровней квантования на один, соответствующий шум квантования уменьшится на величину порядка 6 дБ. Таким образом, избыточное квантование с коэффициентом 4 эквивалентно увеличению разрядности квантова- теля на 1 бит. В примере, который рассматривался выше, цифровой фильтр может иметь высо- кий порядок и обеспечивать высокую крутизну спада передаточной характеристики в районе 24 кГц. Следовательно, шум квантования между 24 кГц и 96 кГц будет отфиль- трован. Так как значительная часть спектра сосредоточена на интервале частот от О до 24 кГц, выходной эффект оптимального фильтра является децимацией с коэффи- циентом прореживания 4. Это достигается путем сохранения только одного отсчета из четырех на выходе цифрового фильтра. В этом случае остальная часть цифровой обработки будет функционировать на частоте Найквиста, а не на избыточной частоте дискретизации, что уменьшит требования к вычислителю. Применение метода избыточной дискретизации в сигма-дельта конвертере по- казано на рис. 2.27. Аналоговый вход ЦОС Понижение частоты квантования Коэффициент избыточного квантования = R Рис. 2.27. Входные каскады системы ЦОС с избыточной дискретизацией 2.4.5. Ограничение шума квантования Вторым важным методом, используемым в дельта-сигма конвертере, являет- ся ограничение шума квантования. Его принцип заключается в пропускании шума квантования через фильтр верхних частот, в результате чего требуемая частота из- быточной дискретизации уменьшается при определенном увеличении разрешения квантователя. Блок-схема сигма-дельта конвертера показана на рис. 2.28. Термин «сигма-де- льта» основан на том факте, что здесь содержатся точка суммирования (сигма) и дельта-модулятор (интегратор и однобитный квантователь). Здесь рассмотрен од-
Преобразование сигналов из аналогового в цифровой вид и наоборот 55 побитный квантователь. Его называют дельта-модулятором. Он квантует различие между последовательными отсчетами, а не их абсолютные значения. Интегратор Цифровой выход Рис. 2.28. Сигма-делыпа АЦП первого порядка Цифровой интегратор Модель (аккумулятор) квантователя Рис. 2.29. Линеаризованная модель сигма-дельта конвертера первого порядка Анализ этой системы может быть достаточно сложным. Шумовая характерис- тика зависит от частоты. Контур работает как низкочастотный фильтр для входного сигнала и как высокочастотный фильтр для шума квантования. Для того чтобы оце- нить функцию ограничения шума квантования, система может быть линеаризована (рис. 2.29) путем замещения квантователя моделью, которая обсуждалась ранее. В со- ответствии с этой моделью шум квантователя может быть представлен белым шумом. Вход и выход теперь могут быть представлены в цифровой форме, и аналоговый интегратор можно заменить цифровым интегратором, таким, что z(k) = u(k) - z(k -1) . Ряд преобразований разносных выражений дает нам значение выходных отсче- тов в зависимости от входного сигнала и шума квантования у(к) = х(к) 4- п(к) - п(к -1). Шумовые компоненты в правой части этого уравнения являются разностью между текущим и предыдущим отсчетами шума. В случае, когда это различие мало,
56 Цифровая обработка сигналов для инженеров и технических специалистов что означает медленное изменение помехового сигнала, результат объединения по- мех будет представлять собой малую величину. Если это различие велико, значение объединения помеховых сигналов также будет велико. Медленно изменяющийся сигнал имеет низкочастотные компоненты, в то время как быстро изменяющийся сигнал имеет высокочастотные компоненты. Таким образом, разность n(k) — п(к— 1) работает как фильтр низких частот для шумовой составляющей. На рис. 2.26 мы показали влияние избыточной дискретизации на уровень шума квантования. Однако ранее мы предполагали, что шум характеризуется равномерной плотностью вероятности распределения в пределах полосы частот. Результат фильтра- ции помехи фильтром высоких частот не позволяет говорить о том, что она является распределенной равномерно. Теперь её распределение будет иметь малые значения на нижних частотах, постепенно увеличиваясь в направлении высоких частот, как показано на рис. 2.30, Так как мы упоминали, что шум на частотах выше частоты Найквиста будет в конечном счете отфильтрован, общий уровень шума квантования в пределах полосы частот, занимаемой сигналом, будет дополнительно уменьшен сигма-дельта контуром. Спектральная плотность мощности Рис. 2.30. Спектр шума квантования, сформированного с учетом сигма-дельта метода Для практического приближенного расчета можно полагать, что сигма-дельта контур увеличивает эффективное разрешение системы на 0,5 бита. Выходной сигнал однобитного АЦП: 0010110 0101011 V J V „ J 1110 10 1 V _ _ J 110 10 10 4x0 ,3x1 3x0 ,4x1 2 х 0 , 5 х 1 3x0 ,4x1 = 0 =1 = 1 = 1 Выходной сигнал дециматора (^-7): 0 1 1 1 Рис. 2.31. Результирующий бит, полученный усреднением блока из 7 бит
Преобразование сигналов из аналогового в цифровой вид и наоборот 57 Выход однобитного квантователя подвергается децимации — то есть уменьше- нию частоты дискретизации. Это уменьшение частоты выполняется посредством усреднения блока из п бит для получения одного бита выходного сигнала. Процесс усреднения показан на рис. 2.31. Это уменьшение частоты эквивалентно фильтрации в частотной области, что было обсуждено ранее. Как мы видели, основные элементы обработки в рамках сигма-дельта преобра- зователя являются цифровыми. Это означает, что микросхема содержит преимущес- твенно цифровые схемы в противоположность другим трем методам, рассмотренным ранее, которые содержали большое число аналоговых элементов. Таким образом, сигма-дельта АЦП в общем случае является более надежным и стабильным. Более того, этот тип АЦП может быть интегрирован в саму структуру цифровой обработки, что уменьшит число отдельных микросхем, это, в свою очередь, повысит надежность системы при одновременном уменьшении ее стоимости. 2.5. Восстановление аналогового сигнала В ряде случаев искомая информация может быть получена непосредственно из сигнала на выходе системы цифровой обработки. В этом случае нет необходимости в создании аналогового выходного сигнала. Следовательно, этап 3, показанный на рис. 2.1, для таких сигналов не будет существовать. Таким примером может являться приемник сигнала с цифровой модуляцией. Цель работы такого приемника - определение цифро- вых символов, которые были переданы. Входной сигнал такого приемника — это несущая, модулированная сигналом, а выходной сигнал — последовательность символов. Однако во множестве практических применений необходимо восстановление аналоговых сигналов из цифрового сигнала, представленного в виде последователь- ности цифр. Интуитивно необходимая операция заключается в «заполнении дыр» — то есть в интерполировании значений отсчетов, результатом чего будет сигнал, не- прерывный во временной области. Эту операцию выполняет показанный на рис. 2.32 восстановитель (реконструктор) аналогового сигнала. Дискретизованный входной сигнал, у(п) Восстановитель > (реконструктор) аналогового сигнала Восстановленный > аналоговый выходной сигнал, у (t) Рис. 2.32. Восстановление аналогового сигнала Говоря в общем, любая форма интерполяции позволяет выполнить эту операцию. Тем не менее, существует ряд методов интерполяции, которые проще в реализации и, в некоторой степени, более предпочтительны, чем другие методы. Мы обсудим два типа реконструкторов. Первый — это идеальный. Как предпо- лагает его название, этот тип реконструкторов не может быть реализован с физичес- кой точки зрения. Однако он показывает идеальную ситуацию и поможет нам лучше понять сам процесс. Второй тип называется ступенчатым реконструктором. Он прост в исполнении и в действительности получил наибольшее распростра- нение в практических аналого-цифровых преобразователях.
58 Цифровая обработка сигналов для инженеров и технических специалистов 2.5.1. Идеальный реконструктор Рассмотрим аналоговый сигнал x(t) с частотным спектром X(f), который был дискретизован с частотой 1/Т отсчетов в секунду. Дискретизованный сигнал х(п) будет иметь спектр, состоящий из повторений исходного спектра X(f), сдвинутого на величину, равную частоте^, умноженной на целое число. Положим, что спектр X(f) ограничен некоторой полосой и частота дискретизации достаточно высока для того, чтобы результат сдвига исходных спектров не перекрывался. После этого фильтр нижних частот может восстановить X(f) при частоте среза/у2. В идеальном случае этот фильтр нижних частот будет иметь следующие часто- тные характеристики: W) = о, Для l/^/s/2 в остальных случаях В противном случае такие, что не будет искажений спектра в интервале, определенном пределом Найквиста, и частотные компоненты за пределами этого интервала не будут участвовать в формировании сигнала. Графически H(f) показана на рис. 2.33 (а). Характеристика во временной области фильтра, соответствующего H(f), опре- деляется выражением Л(0= sin(n//T) пГ/Т = sinc(7i/sz) , которое известно как функция «синк». Эта функция показана на рис. 2.33 (б).
Преобразование сигналов из аналогового в цифровой вид и наоборот 59 Отметим, что такая h(t) физически нереализуема. Причина заключается в том, что она не удовлетворяет условию физической реализуемости. Система, которая удов- летворяет этому условию, — это такая система, в которой при воздействии в момент времени t = 0 отклик появляется, начиная с (не ранее) момента t = 0. Так как h(t) не равно нулю в отрицательной части временной оси , то эта система физически нереа- лизуема. Это означает, что, если на этот фильтр нижних частот поступает воздействие в момент t = 0, его отклик начнется до поступления импульса на вход. Очевидно, что это невозможно для реальной системы. Таким образом, идеальный реконструктор аналогового сигнала не может быть создан. 2.5.2. Ступенчатый реконструктор Реконструктор аналогового сигнала, который наиболее часто применяется на практике, — это ступенчатый реконструктор, или реконструктор с фиксацией нуле- вого порядка (ФНП)1. Этот реконструктор фиксирует значение последнего отсчета до поступления следующего. Таким образом, каждое значение отсчета удерживается Тсекунд, как показано на рис. 2.34 (а). Импульсная характеристика ФНП определяется выражением ^zoh (0 — for 0 < t < Т для других случаев Она означает, что, если на реконструктор поступает воздействие в момент t = О, выходной сигнал будет представлять собой прямоугольник с амплитудой, равной амплитуде этого воздействия, и с длительностью Тсекунд. Очевидно, что результирующая ступенчатая функция будет содержать высоко- частотные компоненты по причине наличия резких изменений амплитуды сигнала. В действительности спектр кфнп(1) — это функция вида «синк», которая дополнитель- но умножена на убывающую экспоненту: ЯфНП(/) = 7^^е- 4Ptlll rj-t Спектр кфнп(1) в сравнении со спектром сигнала на выходе идеального реконс- труктора показан на рис. 2.34(6). Очевидно, что в первом случае части спектра сиг- налов при их повторении будут перекрываться и присутствовать в выходном эффекте реконструктора ФНП. На рис. 2.35 показаны спектры на входе и выходе реконструк- тора ФНП. * В отечественной литературе используется понятие «интерполятор первого рода». (Прим, пер.)
60 Цифровая обработка сигналов для инженеров и технических специалистов (а) (б) Рис. 2.34. Восстановитель аналогового сигнала с использованием фиксации нулевого порядка Рис. 2.35. Спектры на входе и выходе реконструктора с фиксацией нулевого порядка
Преобразование сигналов из аналогового в цифровой вид и наоборот 61 2.5.3. Фильтры подавления зеркальных компонент Просачивание спектров повторяющихся сигналов в основную полосу частот приводит к искажениям, которые целесообразно устранить. В случае, когда частота дискретизации достаточно высокая, фильтр нижних частот может отделить спектр в основной полосе частот. Фильтр нижних частот, который устраняет оставшиеся компоненты повторяю- щихся спектров, называется фильтром подавления зеркальных компонент. Очевидно, что частота среза такого фильтра должна быть равной f/2, что по характеристикам близко к фильтру устранения наложения спектров. Даже если повторяющиеся спектры полностью устранены (отфильтрованы), спектр основной полосы частот будет несколько искажен реконструктором ФНП и фильтром подавления зеркальных компонент. На частотеУ/2реконструкгор ФНП обес- печивает ослабление порядка 4 дБ, а фильтр подавления зеркальных компонент — еще 3 дБ. Такое подавление может быть достаточным для ряда приложений, для других оно может быть недостаточным, например для высококачественного цифрового аудио. Проблема может быть устранена при использовании компенсации (эквалайзе- ров). Компенсатор (эквалайзер) имеет частотную характеристику HEQ(f), таким об- разом, результирующий отклик после эквалайзера, ступенчатого реконструктора и фильтра подавления зеркальных компонент будет идеальным откликом H(f), который был показан в разделе 2.5.1. Это означает, что нео(ОхНфнп(ПхНр05Т(П = Н(0, где HP0SI(f) — частотная характеристика фильтра подавления зеркальных компонент. Преимущества использования ЦОС заключаются в том, что эквалайзер может быть выполнен в цифровой форме. Иными словами, отсчеты исходного цифрового сигнала сначала подвергаются предварительной компенсации (в эквалайзере) в циф- ровой форме, после чего преобразовываются в аналоговый сигнал. 2.6. Цифроаналоговые преобразователи Цифроаналоговый преобразователь (ЦАП) — это реализация реконструктора. Так как ЦАП намного проще, чем АЦП, они, соответственно, и дешевле. Цифровой двоичный код преобразовывается в аналоговый выходной сигнал, который может быть, например, электрическим током или напряжением. На рис. 2.36 схематически показан л-битный ЦАП. Рис. 2.36. п-битный ЦАП R (опорный сигнал)
62 Цифровая обработка сигналов для инженеров и технических специалистов Один из наиболее важных параметров АЦП — это время преобразования, — время, которое необходимо, чтобы устройство сформировало стационарное значе- ние квантованной величины с момента начала преобразования. Для ЦАП соответс- твующим параметром является время установки — задержка между поступлением двоичных данных и появлением соответствующего стационарного напряжения на выходе. 2.6.1 • Перемножающий ЦАП Наиболее распространенными типами ЦАП являются перемножающие ЦАП. Их название возникло по причине того, что их выход — это сумма произведений бинарных кодов и источников тока. Каждый бит двоичного кода включает или вы- ключает соответствующий источник тока. Сумма всех включенных источников может быть подана на выход либо преобразована в выходное напряжение. Пример такого перемножающего ЦАП показан на рис. 2.37. Источники тока в исходном положении включены и замкнуты на землю, когда не используются. ССБ СМБ Рис. 2.37. Перемножающий ЦАП с источниками тока Вместо источника токов может быть использован источник напряжений. Исходное напряжение подводится к набору масштабирующих сопротивлений. Напряжение на выходе определенного резистора «включается» либо «выключа- ется» так, как показано на рис. 2.38. «Включенные» напряжения суммируются. Выходной эффект пропорционален взвешенной сумме входных напряжений. Ряд устройств имеют встроенный источник опорных напряжений, другие позволяют использовать внешний источник, обуславливая, таким образом, точность выход- ного эффекта. Практически все перемножающие ЦАП — это реконструкторы ФНП, и, таким образом, необходимо использовать фильтры подавления зеркальных компонент. Вре- мя установления выходного воздействия в параллельных ЦАП достаточно мало, так как они функционируют по параллельной схеме преобразования.
Преобразование сигналов из аналогового в цифровой вид и наоборот 63 Рис. 2.38. Перемножающий ЦАП с источниками напряжения 2.6.2. ЦАП последовательного приближения Недостатком перемножающих ЦАП является необходимость точной установки самого старшего бита (ССБ). Эта точность должна выдерживаться для всего диапа- зона рабочих температур для конкретного устройства. Более того, оно должно быть устойчиво во времени. Для 8-битного ЦАП ССБ должен быть установлен с точностью 28 = 2561 в минус первой степени. ССБ 16-битного ЦАП должен быть задан с точностью 216 = 655361 2 в минус первой степени. В противном случае некоторые из младших бит будут бес- полезны при формировании результата, и истинное разрешение ЦАП будет меньше заданного. Создание источников тока или напряжения с такой степенью точности является сложной задачей. Одним из путей обхода этой проблемы является использование метода преобра- зования последовательности бит. Концепция такого ЦАП близка к концепции сигма- дельта АЦП. В ЦАП последовательного преобразования используется значительно большая частота дискретизации вместо большего числа бит, представляющих уровни квантования. На рис. 2.39 показано повышение частоты квантования входного воздействия в ЦАП последовательного приближения. Входной сигнал - это л-битный входной цифровой дискретизированный сигнал с частотой^, а выходной сигнал — п - 2 бит- ная последовательность с частотой дискретизации 4fa. Определяется различие между цифровым входным и выходным сигналами. Интегратор представлен в цифровой форме и просто прибавляет предыдущее значение к текущему. Выходной эффект интегратора квантуется до (л — 2) бит путем усечения двух наименее значимых бит 1 С точностью 1/256 = 0,0039. (Прим, пер.) 2 С точностью 1/65236 = 1,5е-5. (Прим, пер.)
64 Цифровая обработка сигналов для инженеров и технических специалистов (двух младших бит). Потеря разрешения компенсируется путем обратной связи между входом и выходом, а также тем фактом, что эта операция выполняется четыре раза для каждого отсчета цифрового входного сигнала. п-битный цифровой вход @fa Рис. 2.39. Повышение частоты квантования в ЦАП последовательного приближения В общем случае для n-битного входа q-битного квантователя повышение час- тоты дискретизации должно в 2n q раз превышать исходную частоту. Для некоторых практических реализаций ЦАП выходной сигнал на этой повышенной частоте дис- кретизации — это 1-битное представление входного сигнала. Этот поток бит, если нанести его на временной оси с соединенными вместе точками отсчетов, эквивален- тен широтно-импульсно-модулированному (ШИМ) сигналу (рис. 2.40). Этот поток бит преобразовывается в аналоговый сигнал путем применения 1 -битного ЦАП с последующей низкочастотной фильтрацией. |А| Рис. 2.40. Широтно-импульсно-модулированный сигнал Учитывая тот факт, что исходный цифровой сигнал подвергается операции пе- реквантования в малое число бит, выходной эффект иногда может быть «привязан» к некорректному значению. Наиболее часто это имеет место, когда на входе при- сутствуют длинные последовательности одинаковых величин. Это «зависание» будет присутствовать до тех пор, пока входное значение не изменится. Результатом такого «зависания» является то, что выходной сигнал будет иметь существенно отличающе- еся значение постоянного тока (либо среднее) по сравнению с этим же значением для входного сигнала. Для того чтобы устранить эту проблему, используется добавление псевдослучай- ного сигнала. Эффект такого добавления был рассмотрен в разделе 2.3.4. В этом случае
Преобразование сигналов из аналогового в цифровой вид и наоборот 65 добавление псевдослучайного сигнала уменьшает вероятность присутствия длинных последовательностей одной и той же величины. Еще одной проблемой при методе последовательного преобразования является необходимость в существенном повышении частоты квантования. Например, если мы хотим преобразовать аудиоданные, записанные на компакт-диске, в однобитную последовательность, нам необходима частота квантования 216Х44.1Х103 (примерно 3 гГц). Это очень высокая частота, и ее достаточно сложно реализовать с использо- ванием существующих технологий производства кремниевых компонентов. В таком случае 1-битный ЦАП нецелесообразен для практической реализации. В конечном счете разработка является компромиссом между частотой дискретизации и числом бит, необходимым для квантования. 2.7. Дальнейшие исследования Дискретизация и преобразование данных — это достаточно обширный вопрос. Здесь мы рассмотрели только основные его части. Существует несколько хороших книг, в которых детально описывается аналого-цифровое и цифроаналоговое преоб- разование. Две из них это: • D.H. Sheingold (ed.). Analog-digital conversion handbook, 3rd edition. Prentice- Hall, 1986. • G.B. Clayton. Data converters. Wiley, 1982. Мы рассмотрели дискретизацию низкочастотного сигнала. Минимальная частота дискретизации должна в два раза превышать ширину полосы частот сиг- нала. Если дискретизации подлежит полосовой сигнал, нам обычно не надо вы- полнять его дискретизацию на частоте, в два раза превышающей максимальную частоту спектра этого сигнала, так как большинство низкочастотных компонент не несут информации. Этот факт приводит к полосовой дискретизации. Эта по- лосовая дискретизация важна, в частности, при обработке модулированных по несущей частоте сигналов в системах связи. Хороший обзор результатов представ- лен в работе R.G. Vaughan and N.L. Scott, The theory of bandpass sampling, IEEE Transactions on Signal Processing, Vol.39, no.9, September 1991, pp. 1973—1983. Для тех, кто хочет более подробно разобраться с добавлением псевдослучайных сигналов, предлагаются следующие работы: 1. L. Schuchman, Dither signals and their effect on quantization noise, IEEE Transactions on Communications, vol. COM-12, pp.162.165, 1964. 2. S.P. Lipshitz, R.A. Wannamaker and J. Vanderkooy, Quantization and dither: a theoretical survey, Journal of the Audio Engineering Society, Vol. 40, 1992. Множество производителей интегральных микросхем выпускают АЦП и ЦАП в различных конфигурациях. Информация об этих продуктах находится в соответс- твующих проспектах и на Интернет-сайтах производителей. Некоторые из них пос- тавляют информацию о своей продукции на компакт-дисках, которые можно найти у региональных распространителей. 3 445
66 Цифровая обработка сигналов для инженеров и технических специалистов Ниже приведен весьма ограниченный список основных производителей и их адресов в сети Интернет. • Analog Devices, Inc. • Motorola, Inc. • National Semiconductors, Inc. • Texas Instruments, Inc. http: //vrww. analog, com. http: //www. motorola, com. http: //www. natsemi. com. http://www.ti.com.
3 Дискретные сигналы и системы во временной области 3.1. Система условных обозначений Дискретный во времени сигнал х состоит из последовательностей чисел, обоз- наченных через х(п) или х(пТ), где п — целочисленный индекс. Последнее обозна- чение обычно относится к дискретизированным последовательностям данных с равномерным периодом дискретизации Т секунд. Процесс дискретизации будет обсуждаться более подробно в другой главе. Если период дискретизации извес- тен или несущественен для результатов интерпретации, будет использоваться запись с индексом. 3.2. Типичные дискретные во времени сигналы Некоторые дискретные во времени сигналы считаются базовыми и важными. Более сложные сигналы образуются при помощи этих простых. 3.2.1. Единичный импульс 5(п) 1 ♦ »»»»»» ► -3-2-10123 П Рис. 3.1. Последовательность единичных импульсов 3*
68 Цифровая обработка сигналов для инженеров и технических специалистов Единичный импульс, который обычно обозначается как 5(л), показан на рис. 3.1. Он состоит из значения единичного отсчета в момент времени п = 0, окруженного с обеих сторон нулями. Математически это можно описать следующей формулой: - < 1, и-О О, п Ф О или S(n) = {...,0,0,1,0,0,...}. 3.2.2. Единичный скачок Последовательность, представляющая единичный скачок, определяется так: и(п) — < 0, п < 0 1, п > 0 или и(п) = {...,0,0,1,1,1,1,...}. Графическое представление показано на рис. 3.2. Последовательность, пред- ставляющая единичный скачок, используется для того, чтобы обнулить случайную последовательность для всех коэффициентов, меньших нуля, путем умножения слу- чайной последовательности на единичный скачок. Таким образом обозначается на- чало некоторого события. u(n) -3-2-10 1 2 3 Рис. 3.2. Последовательность, представляющая единичный скачок 3.23. Случайный сигнал В ряде приложений необходимо рассматривать сигнал как случайный процесс, а не как детерминированный сигнал. Случайный сигнал по своей сути — это статис- тические модели, которые подчиняются некоторому заданному статистическому распределению. Примером такого типа моделей является белый гауссовский шум,
Дискретные сигналы и системы во временной области 69 который обычно встречается при анализе систем связи. Данные модели сигналов крайне полезны для анализа эффективности. Однако в данном вводном курсе мы сосредоточимся на обработке детерминированных сигналов. 3.3. Операции над дискретными во времени сигналами 3.3.1. Задержка или сдвиг Одной из важных операций над последовательностями является операция задерж- ки или сдвига на определенное число отсчетов, nd. Например, на рис. 3.3 показана за- держка последовательности, представляющей единичный скачок, 5 (п — 1) и 5 (п — 2). 5(п-1) -3-2-10 1 2 3 5(п-2) -3-2-10 1 2 3 Рис. 3.3. Последовательность, представляющая собой единичный скачок, с задержкой на один или два отсчета в заданный момент времени 3.3.2. Скалярное сложение и умножение При скалярном сложении для формирования другой последовательности ска- лярное значение добавляется к каждому элементу последовательности. Таким обра- зом, скалярное сложение изменяет среднее значение сигнала на величину, равную величине скалярного значения. На рис. 3.4 показано сложение скаляра а = —0,5 к последовательности, представляющей собой единичный скачок. Среднее значение результирующей последовательности при этом равно нулю.
70 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 3.4. Скалярное сложение последовательности, представляющей единичный скачок, с а = —0,5 Умножение последовательности на скаляр будет последовательностью, ко- торая отмасштабирована на этот скаляр. На рис. 3.5 последовательность, представ- ляющая единичный скачок, умножена на скаляр а = —0,5. Рис. 3.5. Умножение последовательности, представляющей единичный скачок, на а = —0,5 Любая случайная последовательность может быть представлена суммировани- ем отмасштабированных и сдвинутых единичных импульсов. Например, х(Ч) = {3,0,5,-1,-2,5 0 1 2} - 38(л - 3) + 0,58(л - 2) - 18(л - 1) - 2,58(л) + 08(л + 1) + 1 8(л + 2) + 2 8(л + 3). 3.3.3. Сложение и умножение векторов Сложение векторов — это поэлементное суммирование двух последователь- ностей. Некоторые полезные последовательности могут формироваться из простых импульсов и скачкообразных последовательностей. Например: (конечная) прямо- угольная импульсная последовательность единичной амплитуды может форми- роваться путем суммирования (векторов) двух единичных скачкообразных после- довательностей: у (п) = и(п - п) - и(п - и2) В таком случае первый и последний отличный от нуля элементы имеют коэф- фициенты пх и (п2 — 1) и, соответственно, при этом п2 > пх.
Дискретные сигналы и системы во временной области 71 3.3.4. Представление в виде структурной схемы Вышеописанные базовые операции над сигналами и дискретными во времени последовательностями могут быть представлены в виде структурной схемы. Это по- казано на рис. 3.6. х(п) ---—I х(п-1) ------------Н Z ----------► Задержка на период в 1 отсчет х(п) х (n) -I- w(n) w(n) Сумматор/Накопитель х(п) kx(n) Умножитель Рис. 3.6. Структурная схема основных операций, осуществляемых над дискретными во времени последовательностями 3.4. Классификация систем Если некоторые операции осуществляются над последовательностью х(п) для формирования другой последовательности у(п), мы считаем их входными и выход- ными последовательностями соответственно системы, дискретной во времени. 3.4.1. Линейные и нелинейные системы Наиболее важным классом систем являются линейные системы. Линейные системы имеют следующее свойство: если ух(п) и у2(п) являются откликами системы на входные сигналы хх(п) и х2(и) соответственно, то входное воздействие вида х(п) — аххх(п) + а^п), где ах и а2 - некоторые произвольные постоянные, приведет к значению выхода линейной системы, который будет представлять собой такое же суммирование со- ответствующих откликов системы: y(ri) - axyx(ri) + aj2(ri). Это свойство называется принципом суперпозиции и означает, что если мы знаем отклик системы на некоторые типичные выходные сигналы, такие, как им-
72 Цифровая обработка сигналов для инженеров и технических специалистов пульсы и ступенчатые функции (скачки), а произвольный входной сигнал может быть выражен линейной комбинацией этих простых функций, то в этом случае отклик системы на эти произвольные входные сигналы известен. Нелинейная система — это такая система, которая не является линейной. Иными словами, принцип суперпозиции в этом случае не соблюдается. В реальной жизни все системы являются нелинейными. Тем не менее нелинейную систему обычно можно аппроксимировать как линейную в рамках некоторых ограничений. 3.4.2. Инвариантные и неинвариантные во времени системы Инвариантная (или инвариантная относительно сдвига) система имеет сле- дующее свойство: если х(п) порождает у(п), то х(п — nd) порождает у(п — nd) для всех п и любого nd. То есть задержка входных отсчетов означает соответствующую задержку на выходе. Линейные инвариантные во времени (ЛИВ) системы также имеют свойство коммутативности. Это означает, что в случае, если подсистема построена по пос- ледовательному принципу (или каскадно), то тот порядок, в котором находятся элементы, может быть изменен без какого-либо влияния на окончательный резуль- тат. Эта перекомпоновка подсистем имеет преимущества, такие, как уменьшение сложности реализации. Линейная инвариантная система может быть охарактеризована импульсной характеристикой. Импульсная характеристика h(ri) системы — это выходной эффект системы, получаемый в случае, если входной сигнал является импульсной функ- цией. Ранее было показано, каким образом можно выразить последовательность как сумму импульсных функций с учетом их задержки и масштабирования. Поэтому для линейных систем выходной эффект может быть выражен как сумма отмасштабиро- ванных соответствующим образом импульсных характеристик системы. Импульсная характеристика системы может быть конечной и бесконечной во времени. Но на практике импульсная характеристика, продолжительная на временной оси, соот- ветствующим образом обрезается. В остальной части книги мы будем рассматривать только линейные инвариант- ные системы, если не обусловлено иное. 3.4.3. Физически реализуемые и физически нереализуемые системы В физически реализуемых системах выходной эффект зависит только от текущего и/или прошлого значения входного сигнала. Это является очевидным свойством, так как мы просто не можем предвидеть будущее. Однако если данные записываются и обрабатываются автономно, обрабатывающий эти данные алгоритм не обязательно должен быть физически нереализуемым, так как также доступны «будущие данные». 3.4.4. Устойчивые и неустойчивые системы Устойчивая система производит конечный или ограниченный выходной сигнал при воздействии на нее ограниченного входного сигнала. Это означает, что в случае, если система в состоянии равновесия, которое распространяется на конечные ампли-
Дискретные сигналы и системы во временной области 73 туды сигнала, ее выход не будет неограниченно отклоняться или расти. На практике выходной сигнал неустойчивой системы в конце концов будет ограничен посредством численного переполнения данных или насыщения электронных устройств. Системы с обратной связью являются потенциально нестабильными. Стабильные линейные инвариантные во времени системы являются обратимы- ми. Для обратимых систем знание выходного сигнала однозначно позволит нам опре- делить входной сигнал. Это значит, что если входной сигнал х(п) системы Сгенерирует выходной сигнал у(п), то инверсная (обратная) система 5-1сгенерирует выходной сигнал х(п) в случае, если входным является у(п). 3.5. Концепция свертки Свертка — это процесс, в результате которого входной сигнал взаимодействует с линейной системой и генерирует выходной сигнал. Вход и выход линейной инвари- антной во времени системы может быть соотнесен через импульсную характеристику системы. Этот процесс лучше всего объяснить на примере. Импульсная характерис- тика h(n) системы показана на рис. 3.7. Для простоты она представляет собой тре- угольную функцию с длительностью в пять отсчетов. Входной сигнал х(п) выражается как взвешенная комбинация импульсных функций и определяется выражением х(и) = х(к)Ъ{п - к). к=0 Индексы последовательности заданы в интервале от 0 до N. h(n) 0.8 0.6 0.4 0.2 * * * -3 -2 -1 0 1 2 3 4 5 6 * П Рис. 3.7. Импульсная характеристика h(n) системы Так как рассматриваемая система является ЛИВ, с учетом инвариантности во времени входной сигнал 8( /7 — к) сгенерирует выходной сигнал h(n — к), такой, как показано на рис. 3.8. h(n-k) kк+2к+4 F П к+1 к+3 к+5 Рис. 3.8. Отклик системы на Ъ(п — к)
74 Цифровая обработка сигналов для инженеров и технических специалистов Согласно свойству линейности, выходной сигнал, соответствующий взвешенной сумме, — это комбинация импульсных характеристик. Графически это показано на рис. 3.9. Рис. 3.9. Отклик системы на х(п) Выходной эффект в момент времени при п = 0 определяется так Я0) = Л(0)х(0). В момент времени п = 1 выходной эффект имеет две компоненты. Первая ком- понента — это эффект от текущего входного сигнала х(1), определяемый выражением Л(0)х(1). Вторая компонента — эффект от задержки импульса х(0) при п = 1, опреде- ляемый выражением Л(1)х(0). Таким образом, у(1) = Л(1)х(0) + Л(0)х(1). Подобным же образом последующий выходной эффект будет определяться как у(2) = Л(2)х(0) + Л(1)х(1) + /2(0)х(2), у(3) = Л(3)х(0) + Л(2)х(1) + /?(1)х(2) + Л(0) х(3), у(п) = h(n)x(0) + Л(л2 -1) х(1) + • • • + Л(0)х(л2).
Дискретные сигналы и системы во временной области 75 В общем случае N у(п) = x(k)h(n - к). £=0 В другой форме это может быть записано так (при изменении переменных): у(п) ~ h(k)x(n - к). Л=0 Это называется сверточное суммирование, сопоставляющее входные и выходные эффекты системы, дискретной во времени. Значение ТУобычно соответствует длине последовательности, представляющей импульсную характеристику. Обратите вни- мание на то, что каждый выходной отсчет рассчитывается из произведения слагае- мых, включающего в себя отсчет последовательности импульсной характеристики и предыдущий входной отсчет. Свертка будет обозначена символом *, в таком случае два полученных выше преобразования можно записать в форме И«) = x(n)*h(n), - h(n) * х(п), соответственно. Это означает, что операция свертки коммутативна. Она также дистрибутивна: [и'(и) + х(л)] * /?(и) = [и'(и) * h(n)] + [х(и) * h(n)] и ассоциативна: [w(h) * х(н)] * /?(н) = w(n) * [х(п) * h(n)] у(п) = x(k)h(n-k) = h(k)x(n - к}. Полученные выше выражения могут быть обобщены до бесконечных во време- ни последовательностей данных. Эта операция свертки также называется линейной сверткой. З.б. Автокорреляция и взаимная корреляция последовательностей Для многих приложений ЦОС нам необходимо определить подобие (сходство) между одним набором данных и другим. Эти наборы данных обычно являются диск- ретными значениями двух сигналов. Другими словами, между этими двумя наборами данных необходимо установить корреляцию. Формула для расчета функции взаимной корреляции для двух сигналов, диск- ретных во времени, следующая: | /V-1 W =—£ (>0*2 («+*) • N п=0
76 Цифровая обработка сигналов для инженеров и технических специалистов Обратите внимание, что корреляция рассчитывается с использованием одного из сигналов, который сдвинут на к отсчетов. В этом определении х2 сдвинут влево на к отсчетов, после чего выполняется суммирование произведения соответствующих пар точек. Это необходимо, поскольку два сигнала могут быть полностью коррелированы, но различны по фазе. На примере рис. 3.10 один сигнал является задержкой другого. Корре- ляция при к = 0 равна нулю, что указывает на отсутствие между ними корреляции. Рис. ЗЛО. Два полностью коррелированных, но различных по фазе сигнала Важно также отметить, что коэффициенты корреляции рассчитываются с ис- пользованием методов блочной обработки данных. Это означает то, что точность зависит от размера выбранного блока. 1о • • • 0 12 3 П r12(k) ▲ Рис. 3.11. Концевой (краевой) эффект взаимно корреляционной функции двух сигналов с постоянной амплитудой
Дискретные сигналы и системы во временной области 77 Финитный набор данных, который используется для расчета корреляции, при- вел к возникновению другой проблемы. Так как х2 сдвигается все дальше и дальше налево, окончания сигналов более не перекрываются. Это означает, что фактическое число пар увеличится с увеличением к, что приведет, в свою очередь, к уменьшению г12(£). Этот процесс известен как концевой (краевой) эффект. Для того чтобы устранить краевой эффект, необходимо ввести коррекцию к величинам, рассчитанным посредством выражения 9. Допустим, что у нас есть две последовательности, постоянные по величине и конечные во времени. Можно рас- смотреть увеличение в чистом виде г12(&) как последствия концевого эффекта. Это показано на рис. 3.11. Таким образом, скорректированные величины определяются так: к Г12 (^corrected = Ъ ~ (0) . Эти взаимно коррелированные величины зависят от абсолютных величин рас- сматриваемых данных. Для того чтобы получить измерение меры подобия двух пос- ледовательностей, необходимо использовать приведенное (нормализованное) зна- чение Р12<Л) = — 1 ~N W-I N-] и=0 п-0 Эти величины известны как коэффициенты взаимной корреляции. Сигнальная последовательность может быть также коррелирована сама с собой. В таком случае эти коэффициенты называются коэффициентами автокорреляции. Важно отметить тот факт, что ненормированный коэффициент автокорреляции при нулевом сдвиге (или нулевой задержке) — это энергия сигнала. ги(°) = N п=0 Справедливо также следующее выражение: для к>0. Необходимо отметить, что взаимно корреляционные и автокорреляционные функции не являются однозначно определяемыми. По этой причине мы не можем найти форму исходных сигналов по результатам определения этих функций. Тем не менее эти функции позволяют «пролить свет» на некоторые особенности сигналов, которые не всегда являются очевидными. 3.6.1 • Периодические последовательности Ранее мы обсуждали корреляцию и свертку и брали в учет общие процедуры, которые применяются ко всем последовательностям конечной длительности. Если последовательность, с которой мы имеем дело, является периодической по своей сути,
78 Цифровая обработка сигналов для инженеров и технических специалистов то необходимо уделить больше внимания, особенно в случае, если две последователь- ности имеют разную длительность. Предположим, мы имеем две последовательности: {2,3,1,4} У = {1,2.3}, которые периодичны по своему характеру с периодом в четыре и три отсчета соответс- твенно. Взаимная корреляционная функция (ненормированная) показана ниже: Задержка (к) 0 3,75 1 5,5 2 5,75 3 3,75 4 5,5 5 5,75 Взаимная корреляционная последовательность рассчитывается по формуле 9 при N= 4 для более длительного периода из двух последовательностей. Очевидно то, что г (к) — это периодическая функция с периодом в три отсчета. Так как результат не отражает полной периодичности более длительной последовательности, он должен быть некорректным. Если мы используем N= 6 и прибавляем два нуля к последовательности х и три нуля к последовательности у, взаимная корреляционная функция будет иметь вид: Задержка (к) № 0 11/6 1 7/6 2 3/6 = 0,5 3 4/6 4 9/6 5 17/6 6 11/6 Линейная взаимная корреляция двух последовательностей имеет период 6. Общее правило следующее: если период двух последовательностей различный, скажем, и N2, то — 1 дополняющих нулей должно быть добавлено к последо- вательности с периодом N2 и N2 — 1 дополняющих нулей должно быть добавлено к последовательности с периодом Nr Обе последовательности теперь имеют длитель- ность + N2 — 1, и мы имеем возможность получить корректные результаты линейной взаимной корреляции. Этот метод называется дополнение нулями.
Дискретные сигналы и системы во временной области 79 Свертка может рассматриваться как взаимная корреляция одной последователь- ности с обращенной второй последовательностью, это свойство также используется для расчета линейной свертки. Дополнение нулями применяется в случае, если две периодические последовательности имеют неодинаковые периоды. 3.6.2. Применение Процесс корреляции и свертки требует ^умножений и N— 1 сложений для каж- дого выходного отсчета. Для больших значений N требуются значительные вычис- лительные затраты. В общем случае они могут быть более эффективно использованы путем осуществления преобразования временной последовательности в частотную область. Этот вопрос будет рассматриваться в следующей главе.
Представление дискретных во времени процессов в частотной области До этого момента мы рассматривали сигнал как некоторую функцию времени либо как индекс времени. Как и для случая сигналов, непрерывных во времени, мы можем рассматривать сигнал с точки зрения частотного состава. Сигнал может на- блюдаться как след на осциллографе, также мы можем наблюдать его с помощью ана- лизатора спектра, который отображает интенсивность отдельных частотных состав- ляющих, которые и формируют сигнал. С аналитической точки зрения Фурье-анализ позволяет установить связь между сигналом во временной области и его спектром в частотной области. Он говорит нам, что при выполнении ряда условий оба представ- ления эквивалентны. Таким образом, в ряде случаев более удобно описывать сигнал как процесс во временной области, в ряде случаев более эффективно использовать представление сигнала в частотной области. Как мы увидим в данном разделе, представление в частотной области (через преобразование Фурье) не только дает нам альтернативное представление сигналов во временной области, но также позволяет более эффективно выполнять ряд операций во временной области, например, свертку и определение корреляционной функции. Средства для Фурье-анализа включают в себя дискретный ряд Фурье (Д РФ) для пери- одических сигналов и дискретное преобразование Фурье (ДПФ) для апериодических сигналов. Преобразование сигналов из временной области в частотную посредством ДПФ характеризуется большим числом вычислений и более высокой стоимостью. В начале 1960-х Кули и Тьюки открыли эффективный алгоритм вычисления ДПФ, названный быстрым преобразованием Фурье (БПФ). Это открытие сделало возмож- ным фильтрацию вычисления свертки в реальном масштабе времени. Некоторые говорят, что это произошло тогда, когда была сформирована цифровая обработка сигналов как отдельная область знаний. После этого было предложено и изучено большое число сходных алгоритмов. Некоторые из них предназначены для улучшения исходного алгоритма БПФ, другие рассматривали ситуации, для которых не было предназначено БПФ. На сегодняшний день все процессоры цифровой обработки сигналов способны программно вычислять БПФ достаточно быстро для большин- ства практических применений. Для таких случаев можно использовать доступные в продаже специализированные СБИС устройства.
Представление дискретных во времени процессов в частотной области 81 4.1. Дискретный ряд Фурье для периодических, дискретных во времени сигналов Любой периодический, дискретный во времени сигнал с периодом Сможет быть записан как линейная комбинация N комплексных экспоненциальных функций. х(п) = V6kejhkn/N м ’ (1) где J=^ и ej0 = cos0 + ysin0 . Выражение (1) называется дискретным временным рядом Фурье (ДВРФ). Для данного сигнала х(п) коэффициенты ряда Фурье могут быть рассчитаны следующим образом: ck=-Lgx(n)c-—. т Отметим, что в общем случае эти коэффициенты — комплексные и обеспечивают представление сигнала в частотной области. Коэффициент ск имеет модуль и фазу, которые ассоциируются с (приведенной) частотой, определяющейся выражением: со k - 2nk/N. Эти коэффициенты ряда Фурье являются формой (дискретного) частотного спектра сигнала. Эта приведенная частота может быть приведена к истинной частоте в случае, если известна частота дискретизации (Fs). Промежуток времени (Т) между двумя отсчетами, которые связаны выражением: со s = 2л/Г так как О < со k < 2 л . Истинная частота w имеет область значений, ограниченную интервалом О < со k < со s. Несложно убедиться в том, что последовательность коэффициентов, определя- емых выражением (2), — периодическая с периодом повторения N. Это означает, что частотный спектр периодического сигнала также будет периодическим. Пример 4.1. Определить дискретный спектр периодической последовательности х(и) с пе- риодом N = 4, определяющейся выражением W={0, 1, 1,0} 1,2,3
82 Цифровая обработка сигналов для инженеров и технических специалистов Решение: В соответствии с выражением (2) мы имеем q * = о,...,з 4 и=0 = ^[x(l)e’jnk/2+x(2)e‘J,lk] И Ир+1Н .1=1р-+е--] = !(-!-;) (,=1[е-»+е-₽.] = 0 Амплитуда этого дискретного спектра показана на рис. 4.1. |Х(к)|2 1 к 1 4 л _1_ 8” | а -------------------------1-----------------* О 1 2 3 к Рис. 4.1. Квадрат модуля спектра дискретного сигнала, приведенного в примере 4.1 4.2. Дискретное преобразование Фурье для дискретных апериодических временных сигналов В В случае, когда дискретизованный во времени сигнал или их последовательность не являются периодическими, мы не можем использовать дискретный ряд Фурье для его представления в частотной области. Вместо этого для представления сигнала в частотной области используется дискретное преобразование Фурье (ДПФ). ДПФ
Представление дискретных во времени процессов в частотной области 83 является эквивалентом (непрерывного) преобразования Фурье для дискретизованной временной области. Как и для случая дискретного ряда Фурье, ДПФ представляет собой набор коэффициентов, которые являются дискретами (отсчетами) спектра и расположены через одинаковые интервалы. Число отсчетов преобразования зависит от числа отсчетов сигнала во временной области. Временная последовательность х(п) преобразовывается в последовательность X(f) посредством дискретного преобразования Фурье = к = 0,1,... Л-1. О) /?=0 Это выражение определяет N-точечное ДПФ. Последовательность Х(к) — это дискретизованные значения непрерывного частотного спектра х(п). Для удобства выражение (3) обычно записывается в форме Х(£) = ]Гх(и)И^ к = 0,1, ...Л-1, (4) /7=0 где W = e~j27l/N. Отметим, что в общем случае расчет каждого коэффициента Х(к) требует комп- лексного суммирования Nкомплексных умножений. Так как для каждого ДПФ необходимо определить N коэффициентов, общее число вычислений составляет N2 комплексных сложений и А'2 комплексных умноже- ний. Даже для небольшого числа N, например 32, затраты на вычисления достаточно большие. К счастью, существуют более эффективные, чем непосредственный метод вычисления, алгоритмы. Они в общем случае определяются как быстрое преобразо- вание Фурье; наиболее типичные алгоритмы будут описаны далее. 4.3. Обратное дискретное преобразование Фурье и его вычисление Обратное дискретное преобразование Фурье (ОДПФ) преобразовывает после- довательность коэффициентов дискретного преобразования Фурье во временную последовательность и задается выражением x(/7) = 2-XX(A:>j2’l,‘n''N = к = 0,1,...Л-1. (5) N к=0 N к=() Выражения для прямого и обратного преобразований Фурье идентичны, за ис- ключением масштабного множителя 1/N и знака степени экспоненциального сом- ножителя (WNkn вместо WNkn). Таким образом, любой алгоритм быстрого преобразо- вания, который существует для прямого преобразования Фурье, может быть легко изменен для выполнения обратного преобразования.
84 Цифровая обработка сигналов для инженеров и технических специалистов 4.4. Свойства ДПФ В этом разделе приводятся некоторые основные свойства ДПФ. Далее исполь- зуется предположение, что х(п) <-> Х(к} . описывает пару дискретных преобразований Фурье между х(и) и Х(к). 4.4.1. Периодичность ДПФ Рассмотрим X(k+N), которое определяется выражением Х(к + N) = Yx(n)e-^MeiWM /?=0 = ^x(n>-j2'toN //-О = Х(к). Это означает, что Х(к) — это периодическая последовательность с периодом N, даже если х(п) — непериодическая. Таким образом, для дискретного во времени сигнала мы не можем определить полный спектр (все частоты от минус до плюс бесконечности). 4.4.2. Линейность Если две последовательности х/п) и х2(п) имеют одинаковую длину и %! (и) <-> Х^к) и х2(п) <-> Х2(к) , то х(и) = ах{ (п) + Ьх2 (п) <-> Х(к} - аХ^к) + ЬХ2(к}, где а и b — произвольные константы. 4.4.3. Формула Парсеваля Эта формула определяет, что энергия сигнала может быть определена как по временной последовательности, так и по ее преобразованию Фурье. /7—0 7t--0
Представление дискретных во времени процессов в частотной области 85 4.4.4. Последовательности реальных чисел Если х(п) — последовательность реальных чисел, то х(п) = х*(п) и X(k) = X*(-k). Иными словами, реальная часть Х(к) — это четная функция, то есть она сим- метрична относительно к = 0 и ее мнимая часть — нечетная функция. Такой тип симметрии Х(к) называется симметричной по Эрмиту. 4.4.5. Четные и нечетные функции Если х(п) — четная функция, то есть симметричная относительно точки п = О, а значит, х(п) = х(-п), то Х(к) также будет четной функцией. Если х(п) — нечетная функция, то есть х(п ) = -х(п), то Х(к) также будет четной функцией. Более того, если х(п) — реальная и четная, то Х(к) также будет реальной и четной. Если х(п) — реальная и нечетная, то Х(к) будет нечетной и мнимой. 4.4.6. Свертка х(п) = ^(и)*х2(п) <-> Х(к} = Хх(к)Х2(к). Свертка во временной области является поточечным перемножением в частотной области. Таким образом, операция свертки может быть выполнена путем преобразова- ния каждой последовательности сигналов с помощью ДПФ, вычислением произведе- ния из спектров и последующим обратным преобразованием из частотной во времен- ную область. Эта процедура называется круговой сверткой и несколько отличается от линейной свертки, которая обсуждалась в предыдущей главе. Вычисление линейной свертки при использовании ДПФ будет исследовано в следующем разделе. г12(и) = X Х}(к)х2(к SX2(k) = Х^Х2{-к}. к--?х 4.4.7. Корреляционная функция Величину Sn(k) назовем взаимной энергетической спектральной плотностью. В случае, когда х/л) =х2(п), она называется спектральной мощностью. Другими словами, спектральная мощность сигнала является ДПФ его автокорреляционной функции. 4.4.8. Задержка во времени x(n-m)<^WkmX(kY Задержка во временной области эквивалентна умножению преобразования в частотной области на комплексную экспоненциальную функцию.
86 Цифровая обработка сигналов для инженеров и технических специалистов 4.4.9. Сдвиг по частоте W~hx(ri)^X(k-\). Это эквивалент предыдущего свойства, но для частотной области. Сдвиг (или за- держка) для частотной последовательности эквивалентен перемножению временной последовательности на комплексную экспоненциальную функцию. Иными словами, мы сможем сказать, что если временная последовательность умножается на комплек- сную экспоненту, то это эквивалентно сдвигу спектра в частотной области. х(п) cos(2ti In / N) о ^X(k +1) + ^X(k -1). 4.4.10. Модуляция В предыдущем свойстве сдвига частот, если в качестве комплексной экспо- ненциальной функции рассмотреть реальную синусоидальную, то произведение во временной области будет эквивалентно сдвигу половины энергии спектра вверх, а половины — вниз на одну и ту же величину. Умножению на синусоиду соответствует модуляция, которая используется в системах связи, что показано на рис. 4.2. 4.4.11. Дифференцирование в частотной области .dX(co) d(co) Дифференцирование в частотной области соответствует произведению времен- ного сигнала на линейную (пилообразную) функцию. Это свойство полезно для оп-
Представление дискретных во времени процессов в частотной области 87 ределения групповой задержки цифровых фильтров. Подробные сведения находятся в разделе, посвященном КИХ-фильтрам. 4.5. Быстрое преобразование Фурье ДПФ требует большого объема вычислений. В общем случае TV-точечное ДПФ предполагает Nкомплексных умножений и N— 1 комплексных сложений. Если N = 2Г, где г — положительное целое число, то для вычисления ДПФ может быть использо- ван эффективный алгоритм, именуемый быстрым преобразованием Фурье (БПФ). Впервые БПФ было предложено Кули и Тьюки в 1960-х. Основной принцип БПФ заключается в записи ДПФ путем разделения его на две части: 7V/2-1 jV/2-I Х(к)= У х(2и)^пк + Wk У Х(2н + 1)^пк к = 0,1,...Л-1 л-0 и=0 (6) Первая часть (7V/2)-l Х^= Y х(2п)И^п п=0 (7V/2)-1 = £ x(2n)W^, л=0 является ДПФ четной последовательности, а вторая часть Х2(к) — ДПФ нечетной пос- ледовательности. Отметим, что множитель W2^ присутствует в обоих ДПФ и может быть рассчитан один раз. Коэффициенты БПФ получаются путем комбинации ДПФ четной и нечетной последовательностей с использованием выражений X(k) = Xx(k) + WkX2(k) для £ = 0,1,...,у-1. x{k + ^=Xx(k)-WkX2{k) для £ = 0,1,...,у-1. Комплексный множитель известен также как настраиваемый множитель. Эти подпоследовательности могут быть далее разбиты на четные и нечетные последовательности до тех пор, пока не останется только 2-точечного ДПФ. Таким образом, каждая TV/2-точечная ДПФ получается путем комбинации двух TV/4-то- чечных ДПФ, которые, в свою очередь, получаются путем комбинирования двух 7V/8-точечных ДПФ и т.д. При этом существует г этапов, так как N = 2Г. Расчет двухточечной ДПФ достаточно прост. Основные операции показаны на рис. 4.3.
88 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 4.3. Операция «бабочка» для БПФ с прореживанием во времени Она известна как операция типа «бабочка». На рис. 4.4 показаны три этапа, не- обходимые для вычисления 8-точечного БПФ. Настраиваемый множитель обычно вычисляется заранее и сохраняется в памяти. х(0) х(4) х(2) х(6) х(1) х(5) х(3) х(7) Х(0) Х(7) Этап 1 Этап 2 Этап 3 Рис. 4.4. Три этапа 8-точечного БПФ с прореживанием во времени Отметим, что, если мы хотим, чтобы коэффициенты БПФ появлялись на выходе в естественном порядке, элементы входной последовательности должны быть переставлены. Эта перестановка известна как реверсирование бит. Мы можем увидеть, почему она называется реверсированием бит, в случае, если представим последовательность индексов в двоичной форме. Таблица ниже иллюстрирует эту операцию.
Представление дискретных во времени процессов в частотной области 89 Естественный порядок Двоичная форма Инвертированные биты Переставленный индекс 0 ООО 000 0 1 001 100 4 2 010 010 2 3 011 по 6 4 100 001 1 5 101 101 5 6 по 011 3 7 111 111 7 Сравним индексы бит с теми, что представлены на рис. 4.4. Эффективный алгоритм реверсирования бит будет рассмотрен далее. Такой алгоритм БПФ также именуется БПФ с прореживанием во времени в двоичной системе. Двоичная система отсчета подразумевает, что 2-точечное ДПФ является базисным вычислительным блоком для этого алгоритма. Прореживание во времени означает разрывы (децимацию) последовательности данных в четную и нечетную последовательности. Это в отличие от децимации в частотной области, которая будет рассмотрена далее. 4.5.1 • Уменьшение объема вычислений TV-точечное БПФ состоит из N/2 перестановок типа «бабочка» на этап при об- щем количестве этапов log2TV. Каждая «бабочка» содержит одно комплексное умноже- ние и два комплексных сложения. Таким образом, всего будет 7V/21og27Vкомплексных умножений в сравнении с 7V2 для ДПФ и Mog2TVкомплексных сложений в сравнении с N(N — 1) для ДПФ. Существенное уменьшение объема вычислений происходит при больших N. 4.5.2. Алгоритм децимации в частотной области Разделяя последовательность данных на две половины вместо разделения на четную и нечетную подпоследовательности, можно получить другой алгоритм БФП в двоичной системе. Таким образом, (Л/72)-1 X(k}= Y n=0 (A72)-l n-Q (Л72)-1Г = x(w) + (-l)*xl n + n=0 _ + £ x(n)Wk" n=N/2 «=0
90 Цифровая обработка сигналов для инженеров и технических специалистов Последовательность коэффициентов БПФ может быть разбита на две: четную и нечетную подпоследовательности, которые будут иметь вид: Х(2к)='^' л=0 Х(2к + 1)=^' g2(n)lV^’ п=0 где = х(и) + х п + ЛП g2(”) = х(и)-х 77 + 77 = 0,1,...„(TV/2)-1. N Вычисление последовательностей g/77) и g2(«) включает в себя операцию типа «бабочка» так, как показано на рис. 4.5. Эта операция сходна с аналогичной для БПФ с децимацией во времени, за исключением положения подстраиваемого множителя. Рис. 4.6. Три этапа 8-битового БПФ с децимацией частоты
Представление дискретных во времени процессов в частотной области 91 Каждая из последовательностей четных и нечетных коэффициентов может быть разделена на первую и вторую половины, и аналогичная операция будет повторяться до тех пор, пока не останется только 2-точечное ДПФ. На рис. 4.6 показаны три этапа 8-битового БПФ в двоичной системе путем децимации частоты. Отметим, что пос- ледовательности данных будут появляться в естественном порядке, в то время как результат БПФ даст биты в реверсивном порядке. Сложность вычислений такая же, как и для БПФ с децимацией во времени. 4.5.3. Другие быстрые алгоритмы Существуют буквально десятки вариаций базового БПФ в двоичной системе. Некоторое дополнительное уменьшение объема вычислений может быть получено путем использования БПФ в четверичной системе или в смешанной системе. Ряд алгоритмов работает со случаями, когда число точек данных не равно степени двойки, обычно когда N— простое число. Один из наиболее известных алгоритмов в этой категории - преобразование Виноградова-Фурье (ПВФ). Он не использует алгоритмы типа «бабочка», и его принцип полностью отличается от алгоритма Кули и Тьюки. Он очень быстрый, так как требует меньшего числа умножений и важен для таких применений, как преобразования последовательностей малой длины. Но описывающие их математические соотношения и реализация намного более сложные. По этой причине эти алгоритмы не рассматриваются в данном вводном курсе. 4.6. Особенности практической реализации 4.6.1. Реверсирование бит Как было показано выше, для БПФ-преобразований с децимацией во време- ни и частоте необходимо реверсирование бит. Простой алгоритм создания списка реверсированных бит относят к Брунману. Этот алгоритм заключается в следую- щем: • Начинаем с {0,1}. Умножаем на 2 и получаем {0,2}. • Добавляем 1 к списку номеров, полученному выше. В нашем случае ре- зультатом будет {1,3}. • Прикрепляем список из шага 2 к шагу 1 и получаем {0,2,1,3}. • Список, полученный в шаге 3, теперь повторяется, начиная с шага 1. Эти шаги повторяются до тех пор, пока не будет получена требуемая длина списка. На рис. 4.7 для 16-точечного списка при реверсировании бит показаны описан- ные выше шаги в форме диаграммы. Необходимо отметить, что для реверсирования бит были разработаны более эффективные алгоритмы, которые, однако, здесь не рассматриваются.
92 Цифровая обработка сигналов для инженеров и технических специалистов О 1 —*—‘+1 О 2 —► 1 3 --*--> +1 0426—>15 3 7 О 8 4 12 2 10 6 14 —► 1 9 5 13 3 11 7 15 Рис. 4.7. Реверсирование бит с использованием алгоритма Брунмана 4.6.2. Реализация для чисел с фиксированной точкой Реализация БПФ алгоритмов для чисел с фиксированной точкой достаточ- но распространена, так как большое число коммерчески доступных цифровых процессоров не имеет аппаратной реализации операций умножения с плавающей точкой. Процессоры, которые имеют интегрированные модули выполнения опе- раций с плавающей точкой, обычно намного дороже своих аналогов с фиксиро- ванной точкой. Рассмотрим выполнение операции типа «бабочка». Она содержит в себе комп- лексное умножение, комплексное сложение и комплексное вычитание. Эти операции могут потенциально вызвать увеличение разрядности данных на выходе на 2 бита по отношению к входу. Например, на рис. 4.3, если xo=O7FFH, где ххххН представляет число в шестнадцатеричной системе счисления, тох0' будет 100FH. Для вычислений должны быть приняты меры предосторожности, исключающие переполнение данных по причине увеличения разрядности данных. Мы опишем три метода предотвращения переполнения данных при выполнении БПФ. Один из способов устранения возможности переполнения данных состоит во включении дополнительных битов знака, которые называются «сторожевой» двоичный разряд во входные данные БПФ, с целью убедиться, что увеличение разрядности не приводит к переполнению данных. Разрядность данных при вы- полнении операции типа «бабочка» может быть увеличена на 2 бита, но значение данных не может увеличиться на эту максимальную величину в двух последо- вательных этапах. Число «сторожевых» разрядов, необходимых для TV-точечно- го БПФ, равно log27V-Fl. Например, каждый входной отсчет 32-точечного БПФ должен содержать 6 «сторожевых» разрядов. В 16-битной реализации оставшиеся 10 бит будут доступны для данных (один разряд знака, девять значащих разрядов числа). Этот метод не требует сдвига данных и, таким образом, является доста- точно быстрым. Его недостатком является то, что число бит данных будет весьма ограничено для больших N.
Представление дискретных во времени процессов в частотной области 93 Еще один метод, предназначенный для того, чтобы избежать переполнения дан- ных, - это постепенное безусловное понижение разрядности выходных данных на степень двойки после каждого этапа. Этот подход называется безусловное блочное масштабирование плавающей точки. Изначально два «сторожевых» разряда вклю- чаются во входные данные с целью адаптации к максимальному росту разрядности данных на первом этапе. На каждом этапе выполнения операции типа «бабочка» данные могут увеличиться до «сторожевых» разрядов. Для того чтобы избежать пе- реполнения на следующем этапе, «сторожевые» разряды замещаются путем сдвига блока данных на один бит вправо и обновлением значения экспоненты блока. Этот сдвиг выполняется после каждого этапа за исключением последнего. Таким образом, входные данные будут иметь 14 бит. В общем, теряются (log27V— 1) бит из-за сдвига. Безусловное блочное масштабирование плавающей точки дает на выходе такое же число разрядов, как и для входных данных. Но оно обеспечивает более точный ре- зультат по причине того, что БПФ работает с более точными входными данными. Это достигается за счет уменьшения скорости вычисления БПФ, вызванного сдвигами выходных данных каждого этапа. Третий метод называется условное блочное масштабирование плавающей точки. Как предполагает его название, он отличается от предыдущего метода тем, что вход- ные данные подвергаются сдвигу, только если возникает увеличение их разрядности. Если один или более выходов увеличивают разрядность, весь блок данных сдвигается вправо, и происходит обновление положения блока экспоненты. Например, если экспонента исходного блока 0 и данные сдвигаются на три элемента, результирующая экспонента блока будет +3. 4.6.3. Вычисление БПФ для реальных данных Большинство последовательностей данных являются дискретизованными не- прерывными сигналами и, таким образом, являются реальными (а не комплексными) величинами. Таким образом, БПФ выполняется по реальным, а не по комплексным, что рассматривалось ранее, данным. Так как мнимые части будут равны нулю, воз- можно некоторое уменьшение объема вычислений. Один из способов добиться уменьшения объема вычислений — это расчет двух БПФ реальных данных путем вычисления одного БПФ для комплексных данных. Пусть Xj (и) их2(л) — это две последовательности реальных данных длиной N. Мы смо- жем сформировать комплексную последовательность, используя х^и) как реальную часть, а х2(и) — как мнимую часть данных. х(и) = х} (п) + jx2 (и). В иной форме исходные последовательности могут быть представлены путем использования х(п) в следующем виде: х1(п) = |-[х(п) + л-*(н)] х2(а7) = —-^[^(/7) — х*(лг)].
94 Цифровая обработка сигналов для инженеров и технических специалистов Так как ДПФ — это линейная операция, ДПФ последовательности х(л) может быть записано так: X^X^ + jX^k), где X' (к) = | {DFT [х(и)]+ DFT [х * (и)]} ВД = 2- {DFT [х(и)]+ DFT [х * («)]} • Так как ДПФ х*(л) будет равно X*(7V— к), то ВД = |[Х(£) + ^*(Л7-£)] X2(k) = X[X(k)-X*(N-k)]. (7) В соответствии с данным методом мы рассчитали ДПФ двух последовательнос- тей реальных данных путем одного БПФ. Не говоря о том, что объем вычислений, необходимых для определения Хх(к) и Х2(к), будет существенно меньшим, требования к вычислителю уменьшаются в два раза. Еще один метод уменьшения объема вычислений для последовательностей ре- альных данных — это вычисление 2А-точечного ДПФ реальных данных путем одного TV-точечного БПФ. Сначала разделим исходную последовательность данных g(«) на две подпоследовательности *>(«) = g(2n) х2(п) = g(2n + V), Где х{(п) — четные, а х2(п) — нечетные элементы последовательности данных. Затем сформируем комплексную последовательность аналогично тому, как это было сде- лано ранее, и выполним для нее БПФ. ДПФ для хх(п) и х2(п) определяется выраже- нием 7. Отметим, что разделение последовательности на четную и нечетную подпос- ледовательности — это та основная операция, которая выполнялась для алгоритма БПФ с децимацией во времени. Следовательно, 27У-точечное преобразование Фурье может быть получено из двух TV-точечных ДПФ с использованием выражений для алгоритмов с децимацией во временной области. То есть G(k) = X^+W^k) к = 0, -1 G(k + N) = Х^к) + W2^X2(k) к - 0,1,..., N -1.
Представление дискретных во времени процессов в частотной области 95 4.6.4. Вычислительная сложность Определения сложности вычислений даются в терминах числа комплексных сложений и умножений. В некоторых более старых источниках учитывается только число комплексных умножений. Это вызвано тем, что условно умножение требует существенно большего числа тактов ЦПУ по сравнению со сложением. Это больше не является истиной в связи с появлением цифровых процессоров, которые оптими- зированы для такого рода ЦОС-вычислений. Время, необходимое для вычисления произведения, примерно такое же, как и время, необходимое на вычисление суммы. Таким образом, мы должны сравнивать общее число необходимых операций. Также вспомогательные вычисления становятся более значимыми в силу того, что выпол- нение основных операций оптимизировано. Более подробно мы рассмотрим архитектуру ЦОС-устройств в следующей главе. Однако здесь необходимо отметить, что мы будем учитывать большинство опера- ций ЦОС, которые включают основные операции типа «умножения и накопления» (УИН). Обычно эти циклы включают в себя операции умножения двух чисел с учетом того, что результаты перемножения будут в дальнейшем складываться. Также опти- мизированными являются циклы вспомогательных операций. Некоторые процессоры имеют встроенные функции реверсирования адресных бит. Следовательно, другие вспомогательные операции, подобные этим, которые необходимы при вычислениях реальных данных (что обсуждалось ранее), становятся более значимыми. Эти факторы должны быть учтены при сравнении вычислительной сложности. 4.7. Вычисление свертки посредством ДПФ В предыдущих разделах было отмечено, что вычисление свертки может быть выполнено посредством вычисления ДПФ. Такое вычисление свертки включает в себя два прямых ДПФ и одно ОДПФ. Расчет свертки важен по той причине, что фильтрация дискретных во времени сигналов с использованием фильтров с конечной импульсной характеристикой (КИХ) — это операция линейной свертки сигнальной последовательности с отсчетами импульсной характеристики фильтра. Эта опера- ция является фундаментальной в задачах ЦОС и по этой причине рассматривается достаточно подробно. 4.7.1. Круговая свертка Когда мы рассчитываем и умножаем TV-точечную ДПФ, состоящую из двух TV-точечных последовательностей, мы получим TV коэффициентов ДПФ. Обратное преобразование этих TV коэффициентов с использованием ОДПФ дает нам TV-точеч- ную последовательность. Из предыдущих глав мы знаем, что в общем случае линейная свертка двух TV-точечных последовательностей дает нам в результате последователь- ность с длиной большей, чем TV. Очевидно, что результат свертки с использованием ДПФ не будет точно таким же, как и при непосредственном вычислении свертки. Он называется круговой сверткой.
96 Цифровая обработка сигналов для инженеров и технических специалистов Свертка называется круговой по той причине, что последовательность ДПФ является периодической по своей сути. Вспомним, что N-точечное ДПФ неперио- дической последовательности будет периодической с периодом N, Также вспомним, что ОД ПФ является, по сути, тем же ДПФ за исключением несущественных различий. Таким образом, операция N-точечного ОДПФ также даст в результате периодичес- кую последовательность с периодом N. Следовательно, результирующая последова- тельность будет периодической либо круговой во временной области. Аналитически мы можем задать круговую свертку посредством следующего вы- ражения: у(п) = x(ri)® h(n) = x(m)h [(к - т) mod 2V], (8) где (т mod TV) — это остаток от m/N, который называется «т по модулю N». Отметим, что операции, включенные в вычисление круговой свертки, сходны с теми, что используются при вычислении линейной свертки. Единственное отличие — это пределы в сумме (от 0 до А— 1) и в индексе «по модулю N» для одной из пос- ледовательностей . Линейная свертка, определяемая путем использования выражения из главы 3, является последовательной обработкой отсчетов. Однако круговая свертка, рассчиты- ваемая посредством определения ДПФ и ОДПФ, — это блочный метод обработки. Пример 4.2. Выполнить круговую и линейную свертку следующих последовательностей: Х,(«)={1, 2, 1, 2} Х2(п)={1, 2, 3, 4}. Решение: Линейная свертка двух последовательностей будет у(п) = х{(п)*х2(п) = {1, 4, 8, 14, 15, 10, 8}. Круговая свертка с использованием ДПФ: DFT {х,(п)}= {б, 0, -2, 0} DFT {х2(п)}= {W, -2 + J2, -2, -2-2j}. Произведение будет равно X(k) = DFT {х, (и) }• DFT {х2(п)} = {60, 0, 4, 0}.
Представление дискретных во времени процессов в частотной области 97 а обратное преобразование будет следующим: х(и) = IDFT {Х(к)} = {16, 14, 16, 14}. В приведенном выше примере результатом линейной свертки является последо- вательность из семи символов. Вспомним, что на основании материала предыдущей главы длина линейной свертки двух последовательностей длинами L и М соответс- твенно будет равна L+M-1. Таким образом, ДПФ с длиной N> L + M-L будет необходима для получения корректного результата линейной свертки. Для того чтобы использовать TV-точечную ДПФ, нам необходимо увеличить длину исходных последовательностей до N. Наиболее простой способ выполнения этой операции - дополнение последовательности нулями. Это не повлияет на спектр этих после- довательностей, так как они непериодические. Но путем дискретизации частотного спектра N эквидистантными точками мы получим достаточное их количество для того, чтобы получить необходимую длину результата во временной области после вы- полнения ОДПФ. Таким образом, круговая свертка эквивалентна линейной свертке двух непериодических последовательностей с конечной длительностью и с достаточно большим числом точек N. Пример 4.3. Найти линейную свертку двух последовательностей из примера 4.2 путем ис- пользования метода ДПФ. Решение: Нам необходимо N= 7-точечное ДПФ. Следовательно, х[(п) ={1, 2, 1, 2, 0, 0, 0} %'(«)= {1, 2, 3, 4, 0, 0, 0}. Прямое ДПФ этих последовательностей будет следующим: DFT {%;(«) }= 6 0.2225- j3.4064 0.9010 + У0.0477 -0.6235-У2.0358 -0.6235 + >2.0358 0.9010-уО.0477 0.2225 + уЗ.4064 4 445
98 Цифровая обработка сигналов для инженеров и технических специалистов 10 -2.0245->6.2240 0.3460 + >2.4791 DFT^'2{ri)}= Q.VlM-j2A22Q 0.1784 + >2.4220 0.3460->2.4791 -2.0245 + >6.2240 Обратное преобразование от поэлементного умножения произведения этих двух ДПФ будет иметь вид: X (п) = IDFT ^DFT (X(и)) • DFT (х2(и))} = {1, 4, 8, 14, 15, 10, 8}. и будет результатом линейной свертки последовательностей, полученных в при- мере 4.2. 4.7.2. Свертка длинных последовательностей данных Если последовательность данных достаточно велика, использование ДПФ для выполнения свертки или фильтрации неэффективно. Даже если это возможно, ре- зультат может быть неприемлем по причине слишком большой задержки между поступлением первого отсчета и получением конечного результата. В этом случае целесообразно разделить последовательность данных на подпоследовательности и выполнять ДПФ более коротких блоков. Вопрос заключается в том, каким образом получить корректный результат на основе обработки таких подпоследовательнос- тей. Рассмотрим два метода: наложения-сложения и наложения-сохранения. 4.7.2. 1. Метод наложения-сложения Предположим, что длина импульсной характеристики равна М. Последователь- ность данных разбивается на две неперекрывающиеся подпоследовательности длины L. Размер ДПФ и ОДПФ в этом случае будет равен N= L + М — 1. Таким образом, М— 1 нулей необходимо добавить к подпоследовательностям данных. Последователь- ность отсчетов импульсной характеристики дополняется L — 1 нулями. Если хт(п) и Хт(к) являются /л-й (нерасширенной) подпоследовательностью и ее ДПФ соответственно, а Н(к) — ДПФ нерасширенной последовательности отсчетов импульсной характеристики, то выходной эффект /л-го сегмента будет Ym(k) = H(k)Xm(k).
Представление дискретных во времени процессов в частотной области 99 Результат ОДПФ от Ym(k) дает нам ут(л) с длиной N. Так как исходная подпос- ледовательность имеет длину L(<7V), последние М— 1 точки последовательности ут(и) должны быть наложены и добавлены к первым М — 1 точкам следующей под- последовательности ут+1(л). Иллюстрация метода наложения-сложения для трех подпоследовательностей (либо блоков) данных показана на рис. 4.8. Выход Входная последовательность Рис. 4.8. Иллюстрация метода наложения-сложения 4.1.22. Метод наложения-сохранения При этом методе размер каждой подпоследовательности будет N= L + М — 1. Первые М - 1 точек в каждой подпоследовательности берутся из предыдущей под- последовательности. Для первой подпоследовательности используется дополнение М — 1 нулями. Размер ДПФ и ОДПФ будет N. Результат обработки каждой подпос- ледовательности ут(л) будет иметь 7V точек. Первые М — 1 точек последовательности ут(я) удаляются, усекая ее до L точек. Этот метод называется наложение-сохранение, потому что последние М — 1 точек каждой подпоследовательности сохраняются для обработки следующего блока. На рис. 4.9 этот метод показан графически. 4
100 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 4.9. Иллюстрация метода наложения-сохранения 4.8. Частотные диапазоны некоторых естественных и искусственных сигналов В таблице ниже приведены данные, позволяющие оценить частоту дискретиза- ции и требуемую скорость вычислений для некоторых типичных видов сигналов. Тип сигнала Примерный диапазон занимаемых частот (Гц) Вокализованная речь (например, гласные) 100 - 4000 Речь (фрикативы) 100-8000 Электрокардиограмма (ЭКГ) 0-100 Электроэнцефалограмма (ЭЭГ) 0-100 Землетрясения и сейсмические сигналы 0,01 - 10 Радиовещательная передача Зх104-Зх106 Микроволновая техника ЗхЮ8 — 3x10'° Инфракрасный диапазон 3x10" — ЗхЮ14 Гамма-лучи и рентгеновские лучи ЗхЮ17-ЗхЮ18
5 Примеры применения ЦОС В этой главе мы обсудим более подробно типичные применения ЦОС. Неко- торые разделы данной главы можно будет лучше понять после изучения аспектов разработки и применения цифровых фильтров. Тем не менее эти примеры помогут нам получить более широкое представление о применимости ЦОС в различных тех- нических областях. Одним из первых применений является генерация периодических сигналов с использованием волновых таблиц. Генерация сигналов при помощи волновых таблиц стала крайне популярной в связи с появлением новых аудиокарт для ПК. Это очень гибкий путь для генерации таких периодических форм сигнала, как, например, сину- соидальные волны. Синтез волновых таблиц лежит в основе многих музыкальных прикладных программ. Этот пример также служит иллюстрацией важной концепции, которую мы изучили в предыдущих главах, касающихся дискретизации. Вторым применением является область систем связи. Мы обсудим применение конкретных беспроводных передатчиков с использованием методов ЦОС. Мы также рассмотрим особенности и преимущества данного подхода. Пример продемонстри- рует выбор дискретных значений частоты или разрешающей способности АЦП и эффектов от данного выбора на спектральных характеристиках сгенерированного сигнала. Третье применение ЦОС — область синтеза речи. Синтез речи — это очень широкая область применения, которая требует понимания характеристик сигна- лов речи, фонетики и на более высоком уровне лингвистики. В главе будет описан простой метод моделирования и синтеза речевых сигналов на основе модели речевого тракта человека. Это применение проиллюстрировано фильтрацией простых сигна- лов для создания сигналов с конкретной желаемой спектральной характеристикой. По сути, требуется адаптивная во времени фильтрация. Мы также расскажем о применении ЦОС при обработке изображений. Обра- ботка изображений (и видео) является одним из основных применений ЦОС. Не- которые устройства для производства фотографий позволяют сделать мгновенное фотоувеличение и кадрирование, улучшение качества старых фотографий и другие услуги по обработке изображений. Все это было бы невозможно без помощи ЦОС. И, наконец, мы обсудим применение метода активного подавления шума. Метод активного удаления шума (АУШ) основан на физическом проявлении ослабляющей интерференции распространения звуковых волн. Системы ЦОС сейчас достаточно развиты для работы с АУШ системами в реальном времени в условиях вентиляционных каналов, самолетов, машин и систем магнитно-резонансной визуализации.
102 Цифровая обработка сигналов для инженеров и технических специалистов 5.1. Генерация периодических сигналов с использованием волновых таблиц Для многих применений ЦОС необходима генерация периодических форм сиг- налов, таких, как синусоиды, периодические прямоугольные волны, пилообразные сигналы и т.д. Примером применения может стать генерация двухтональных много- частотных сигналов (DTMF) для микротелефонных трубок с тональным набором. На рис. 5.1 показаны две частотные группы DTMF-клавиатуры. Нижняя группа Верхняя группа 1209 Гц 1336 Гц 1477 Гц 1633 Гц 697Гц 770 Гц 852 Гц 941 Гц Рис. 5.1. Частоты для DTMF-клавиатуры Когда на клавиатуре нажата клавиша, генерируется сигнал, представляющий собой сумму двух слышимых/внятных синусоидальных тонов. Каждая клавиша на клавиатуре задается индивидуально частотной парой одна — из низкой, а дру- гая — из высокой частотной группы. Сигнал, сгенерированный цифровым методом, математически определяется выражением у(п) = cos(co Ln) + cos(co Ип) где ^Ь=2'11А/Л 03 Н= 2пЛн / fs ’ fs — дискретная частота, а п — временной индекс (целое число). 5.1.1. Генерация цифровых форм сигналов с использованием волновых таблиц Одним из подходов для генерации периодических форм сигналов является раз- работка цифрового фильтра с импульсной характеристикой h(n), соответствующего
Примеры применения ЦОС 103 одному периоду формы сигнала, который необходимо создать. Периодичность ре- зультирующего сигнала создается путем возбуждения цифрового фильтра пачками импульсов, разделенных основным периодом формы сигнала. Этот процесс показан на рис. 5.2. Пачка импульсов Цифровой фильтр Периодический выход Импульсная характеристика цифрового фильтра Рис. 5.2. Генерация периодической цифровой формы сигнала с использованием цифро- вых фильтров Более эффективным подходом является предварительный расчет отсчетов форм сигнала и сохранение их в системной памяти (RAM или ROM). Данные располагаются кольцевым буфером, и при необходимости к ним можно получить доступ. Периодом формы сигнала можно управлять либо коррекцией скорости циклического сдвига таблицы, либо путем организации доступа к подмножеству таблицы при фиксиро- ванной скорости. Такой подход называется синтезом волновой таблицы и успешно используется в области компьютерной музыки. Многие аудиокарты, применяющиеся в ПК, используют генераторы волновых таблиц. 5.1.2. Частота дискретизации Синусоидальный сигнал не обязательно остается периодическим при дискре- тизации на заданной частоте. Для того чтобы у(п) был периодическим при индексе времени п с периодом, скажем, D отчетов, необходимо, чтобы один целый период этой синусоиды подходил к отчетам D. Для этого необходимо, чтобы частота диск- ретизации была равной произведению целого числа на аналоговую частоту f (целой гармонике аналоговой частоты). Таким образом, fs = Df Благодаря периодичности только один отсчет за один период сигнала должен быть подсчитан и сохранен. В этом случае/— это основная частота волновой табли- цы. Типичная частота дискретизации для генерации DTMF составляет 8 кГц. Для DTMF сигналов необходимо сгенерировать синусоиды восьми различных частот. Одним из способов реализации является создание восьми волновых таблиц. Так как в каждой таблице может находиться только несколько наименований, этот
104 Цифровая обработка сигналов для инженеров и технических специалистов подход будет непрактичным. Другим путем изменения основной частоты является ис- пользование единой таблицы. Именно этот подход мы рассмотрим более подробно. 5.1.3. Генерация целых гармоник основной частоты Частоту f можно изменить или путем изменения частоты дискретизации fs, или эффективной длины D основного периода. Первый подход не очень удобен для наше- го применения, так как каждый раз мы имеем дело с двумя различными частотами. Таким образом, будет использоваться второй подход. Основная частота, сгенерированная волновой таблицей с D составляющими и частотой дискретизации, определяется следующим образом: Замена D меньшим значением d повысит частоту синусоиды. Например, если d=D/2, то частота в таком случае удвоится. Это также означает, что каждая другая со- ставляющая в волновой таблице будет доступна для каждого периода. Таким образом, новая сгенерированная частота будет /' = А = _А_ = 2 А = 2 f d DU D При заданной желаемой частоте fd и длине таблицы D мы будем использовать только с равномерно отстоящих отсчетов из полной волновой таблицы, тогда с оп- ределяется так: Теперь допустим, что d и с — целые числа. Это четко ограничивает выбор частот, которые мы можем генерировать. Сейчас мы должны рассмотреть, как мы можем сгенерировать другую частоту, где d и с будут реальными числами. 5.1.4. Генерирование произвольных частот Частота/, которую мы хотим сгенерировать, должна находиться в пределах ин- тервала Найквиста И' ~ • Для этого необходимо, чтобы с удовлетворяла условию I I D с <— • 1 1 2 Отрицательные значения с соответствуют отрицательным частотам. Это пред- ставление полезно для записи фазового сдвига формы сигнала на угол 180°. Так как с более не является целым числом, необходимо осуществить его усечение или округление для того, чтобы получить значения из волновой таблицы.
Примеры применения ЦОС 105 В качестве альтернативы мы можем интерполировать значения отсчетов из вол- новой таблицы для получения синтеза с большей точностью. Обычно достаточно использования линейной интерполяции. Положим, w(i) и w(j) являются составляю- щими i и j волновой таблицы и нам необходим отсчет с действительным индексом q, который находится между i иу. Линейно интерполированные значения определяются следующим образом У = w(i) + (q- - w(z)] Процесс интерполяции показан на рис. 5.3. Рис. 5.3. Линейная интерполяция между двумя отсчетами Интерполяция дает наиболее точные результаты с последующим округлением. Усечение является наиболее неточным методом из трех. Погрешности уменьшаются по мере увеличения длины волновой таблицы D. В компьютерных музыкальных при- ложениях размеры волновой таблицы варьируются в пределах 512 и 32 768. 5.1.5. Пример DTMF Вернемся к генерированию частот DTMF. Предположим, что частота дискрети- зации составляет 8 кГц, а размер волновой таблицы — 200. Отсюда основная частота равна 400 Гц. Для группы низких частот значения с определяются выражениями _ (200)(697) С* “ 8000 (200)(770) С? — 2 8000 _ (200)(852) Сз ~ 8000 (200)(941) ~ 8000 Полученные аналогичным способом значения с для высоких частот составляют 30,225, 33.4, 36.925 и 40,825. = 17,425 = 19,25 = 21,3 = 23,525.
106 Цифровая обработка сигналов для инженеров и технических специалистов 5.2. Применение беспроводного передатчика Стандарт системы поискового вызова был создан в Европе в 1989 году Евро- пейским институтом телекоммуникационных стандартов (ETSI). Она называется стандартом ERMES (Европейская система передачи радиосообщений). Основной целью ее являются предоставление услуг роуминга по всей Европе и гарантия сов- местимости приемников. Существует более старая система, которая называется POCSAG1, она передает информацию на скорости 512 или 1200 бит в секунду. С учетом нужд потребителей в новой услуге в наиболее населенных частях Европы стандарт ERMES был создан для передачи на скорости 6250 бит в секунду. Выбранный формат модуляции называется 4-АИМ/ЧМ модуляция. Так как каждый символ кодируется двумя битами, фактичес- кая скорость передачи символов составляет 3125 символов (бод) в секунду. Желательно разработать такой передатчик, который способен осуществлять передачу, используя как более старую систему POCSAG, так и новую ERMES. Такая гибкая система будет иметь преимущество в том, что значительно снизит затраты на конструкторские работы. Одним из способов достижения такой гибкости является внедрение его с использованием методов ЦОС. Так как требования к занимаемому сигналами спектру частот весьма жесткие, со- ответственно, и требования к радиопередатчикам также очень строгие. Разработанные передатчики должны быть весьма точными и стабильными. И снова это требование является одним из преимуществ использования цифровых методов и предполагает использование ЦОС. 5.2.1. Технические требования Все технические требования при применении метода модуляции можно найти в следующих источниках: • «Европейская система передачи радиосообщений, часть 4: технические требования к радиоинтерфейсу», ETSI DE/PS 201-4, версия 0.2.1, ноябрь 1990. • «Европейская система передачи радиосообщений, часть 6: технические требования к базовой станции», ETSI DE/PS 201-4, версия 0.2.1, ноябрь 1990. Процесс генерации модулированного сигнала показан в виде структурной схемы на рис. 5.4. Сигнал радио- частоты Рис. 5.4. Генерация 4-АИМ/ЧМ сигналов 1 POCSAG - пейджинговый протокол POCSAG, стандарт на передачу сообщений на радиочас- тотах, вытесняется протоколом FLEX. (Прим, пер.)
Примеры применения ЦОС 107 При использовании данной методики связь двух бит данных достигается путем передачи одной из четырех сигнальных частот. Модулированный сигнал при этом дол- жен иметь непрерывную фазу (без внезапных скачков в фазе). Этот факт, а также пред- модулированное формирование импульсов (или фильтрация) потока данных сжимают переданный радиочастотный спектр. Ниже показаны четыре частоты сигнала. Номинальная частота Символ /0+ 4687,5 Гц 10 /0+ 1562,5 Гц 11 /0-1562,5 Гц 01 /0-4687,5 Гц 00 Здесь/0 — это планируемая рабочая частота. В потоке данных прежде всего дол- жен передаваться самый старший бит. Скорость передачи составляет: скорость передачи данных: 6,25 кбит в секунду; скорость передачи символов: 3,125 кбод. (6) Рис. 5.5. Спецификации фильтра премодуляции в системе ERMES
108 Цифровая обработка сигналов для инженеров и технических специалистов Двоичный сигнал фильтруется фильтром премодуляции для создания сглажен- ного сигнала и для устранения внезапных скачков уровней. Технические требования для подобного рода фильтров показаны на рис. 5.5. Технические требования даются на основе частотных характеристик с верхними и нижними пределами. Если не учитывать амплитудный спектр, фазовый спектр также задается как характеристика групповой задержки. Групповая задержка определяется как изменение в фазе с отрицательным коэффициентом. Таким образом, постоянная групповая задержка означает линейную зависимость фазы. Для большинства случаев это является идеальным вариантом для передачи данных. Данные спецификации выведены из низкочастотного фильтра Бесселя 10-го порядка с полосой пропускания 3 дБ на уровне 3,9 кГц. Время подъема и спада при передаче частоты между двумя последовательными символами будет составлять 88 микросекунд с допустимым отклонением в 2 микро- секунды. Спектр радиочастоты выхода приемника будет соответствовать маске, показан- ной на рис. 5.6. Спектр радиочастоты внутри канала Рис. 5.6. Спецификации спектра радиочастоты в системе ERMES Сдвиг центральной частоты передачи не должен превышать 15 Гц в каждом на- правлении от требуемой рабочей частоты (f0). Рабочая частота может быть сдвинута для того, чтобы отличаться от номинальной частоты канала на 185 Гц (уход частоты радиопередачи). Разница между двумя смежными символами по частоте должна со- ставлять 3125 ± 15 Гц. Довольно сложно удовлетворять данным спецификациям при использовании стандартных аналоговых схем, особенно стабильности центральной частоты и точ- ности различия между двумя соседними частотами различных символов. 5.2.2. Реализация ЦОС Классическим методом генерирования сигналов такого вида является исполь- зование аналогового пре модуляционного фильтра после ЧМ модулятора. Тем не ме- нее, данный подход связан с рядом проблем, касающихся стабильности параметров. Чрезвычайно сложно получить точность до 0,1 % в девиации частоты.
Примеры применения ЦОС 109 При реализации ЦОС 4-И AM кодер и фильтр премодуляции используются следующим образом. Так как мы имеем четыре возможных символа в алфавите, су- ществует 16 возможных переходов между символами. Эти переходы сглаживаются фильтрацией, которую выполняет фильтр премодуляции. Все эти переходы и соот- ветствующие результаты после выполнения операции фильтрации могут быть рас- считаны и сохранены в оперативной памяти типа ROM. Таким образом, отсчеты отфильтрованного сигнала являются функцией текущего и последнего символов, и их можно найти в оперативной памяти типа ROM. На рис. 5.7 показан переход между символом 00 и символом 10. Сохраненный переход состоит из 64 отсчетов на символ, 16 бит на отсчет. Переход частоты 00 —> 01 Рис. 5.7. Переход частоты между двумя символами в системе ERMES Структурная схема ЧМ модулятора показана на рис. 5.8. Отсчеты частоты, полу- ченные в предыдущем процессе, направляются в интегратор, который представляет собой накопитель всех предыдущих значений. 4-АИМ премоду- лированный отфильтро- ванный сигнал Сигнал частоты Интегратор Рис. 5.8. Структурная схема частотного модулятора с использованием ЦОС При этом генерируются фазовые отсчеты, соответствующие намеченной частоте. Выходной сигнал интегратора становится аргументом таблиц, содержащих синус и косинус. Таблица, содержащая косинус, представляет синфазную составляющую (I), а таблица, содержащая синус, — квадратурную составляющую. Таблицы квантуются с разрешением 8 бит. Эти отсчеты затем преобразуются в аналоговые сигналы путем ис-
110 Цифровая обработка сигналов для инженеров и технических специалистов пользования ЦАП и квадратурного модулятора, которые в коммерческом применении представляют собой единую микросхему для генерации радиочастотного сигнала. Данная спецификация позволяет осуществить намеренный сдвиг частоты радио- передачи. Очень точный сдвиг можно представить путем прибавления или вычитания определенных констант из выходных отсчетов фильтра. Система POCSAG также может применяться при использовании аналогичной схемы путем включения различных таблиц перехода, соответствующих техническим требованиям стандарта POCSAG. В таком случае передатчик может переключаться между двумя системами путем получения его отсчетов с различных таблиц. Скорость передачи символов достаточно низкая, чтобы мы могли выбрать край- не высокую частоту дискретизации в 64 отсчета на символ. Эта завышенная частота дискретизации означает, что после применения ЦАП можно использовать очень про- стые фильтры, устраняющие наложение спектров. Высокая частота дискретизации также сокращает временную неопределенность переходов. На рис. 5.9 показаны аналоговый синфазный I и квадратурный Q сигналы, сге- нерированные входными символами (10. 00, 10. 00). Рис. 5.9. Синфазный и квадратурный сигналы 5.2.3. Другие преимущества Существует ряд преимуществ при использовании ЦОС, которые могут быть не столь очевидными. Два основных из них описываются ниже. * Компенсация квадратурного модулятора Квадратурный модулятор может обрабатывать синфазный I и квадратур- ный Q сигналы для того, чтобы получить выходную радиочастоту, и будет представлять собой интегральную микросхему, состоящую из аналоговых схем. Следовательно, между двумя каналами существуют потенциальный сдвиг частоты и дисбаланс. Результатом этих дефектов обычно является рассеяние спектра частот. Так как существует жесткая спецификация для допустимой внеполосной мощности (по меньшей мере 72 дБ для системы ERMES), такое рассеяние в спектре может означать, что эти требования будут нарушены. Если эти дефекты можно смоделировать, а параметры модели можно измерить в неавтономном и автономном режимах, то к сигналам, дискретным во времени, можно применить компенсацию
Примеры применения ЦОС 111 до модуляции так, что результирующий модулированный сигнал будет практически идеальным. • Линеаризация усилителя мощности Самые эффективные усилители мощности имеют нелинейные пе- реходные характеристики. Если формат модуляции зависит от ам- плитуды сигнала, то эта нелинейность, представленная усилителем мощности, очень сильно исказит исходный сигнал. Именно по этой причине в радиосистемах используется огибающий тип модуляции, такой, как ЧМ. С другой стороны, самая эффективная схема модуляции не дает постоянных огибающих сигналов. Следовательно, необходимо использовать линейные усилители, эффективность которых значительно меньше. Используя ЦОС, мы можем произ- вести предварительную компенсацию для нелинейных усилителей путем введения предыскажений дискретного во времени сигнала. В таком случае можно использовать самую эффективную модуляцию с самыми эффективными усилителями мощности. Разумеется, это невозможно в аналоговом варианте. 5.3. Синтез речи Цифровая обработка речи является одной из важнейших областей применения ЦОС. Именно применение обработки цифровой речи (включая видео) привело к взрыву в мультимедийных коммуникациях, который продолжается и по сей день. 5.3.1. Механизм речеобразования Речевые сигналы состоят из последовательности звуков. Эти звуки и переходы между ними несут информацию, которую необходимо передать. Эти звуковые пос- ледовательности подчиняются определенным правилам. Лингвистика — это наука, которая изучает такие правила для конкретных языков. Изучение классификации основных звуков — это область фонетики. Для того чтобы подойти к модели речеобразования, нам необходимо иметь пред- ставление о речевой системе человека. Данная система состоит из двух основных частей: голосовые связки (или голосовая щель) и речевой тракт. Речевой тракт, в свою очередь, состоит из трех основных частей: • глотка — тянется от пищевода до рта; • ротовая полость — рот; • носовой тракт — начинается с небной занавески и заканчивается нозд- рями. Источник энергии исходит от давления воздуха, производящегося легкими, бронхами и трахеей. Речь воспроизводится тогда, когда акустическая волна расходит- ся из речевой системы при вытеснении воздуха легкими, а поток воздуха возмущается сжатием (сокращением) где-то в речевом тракте. Когда небная занавеска опускается, носовой тракт акустически связывается с речевым трактом для воспроизведения но- совых звуков.
112 Цифровая обработка сигналов для инженеров и технических специалистов 5.3.2. Классификация звуков Звуки речи в английском языке называются фонемами. Существуют два основ- ных типа фонем: гласные и согласные. Существует и более подробная классификация. Но для нашего обсуждения мы рассмотрим только эти два типа звуков. Гласные воспроизводятся, когда речевой тракт возбужден импульсами воздуха, причиной которых является вибрация голосовых связок. Вибрации периодичны по своей природе, и периодом является основной тон этого звука. Форма речевого тракта определяет резонанс частот тракта, так называемые форманты. Для гласных обычно существуют три форманты между частотами 200 Гц и 3 кГц. Точная частота форманта зависит от конкретного индивида. На рис. 5.10 показан типичный частотный спектр гласного звука. Частота (кГц) Рис. 5.10. Типичный спектр гласного звука При воспроизведении согласных голосовые связки в общем случае полностью расслабляются, хотя существуют и исключения. В этом случае воздух проходит в ре- чевой тракт без периодических возбуждений, осуществляемых голосовыми связками. Согласные в широком смысле можно классифицировать следующим образом: • носовые Носовой звук появляется тогда, когда речевой тракт полностью сокра- щен в определенном положении вдоль ротовой полости. Небная зана- веска опускается, и поток воздуха проходит через носовой тракт сквозь ноздри; * фрикативные Фрикативные звуки воспроизводятся тогда, когда постоянный поток воздуха становится турбулентным при сокращении речевого тракта; * взрывные Взрывные — это временные звуки, которые появляются при возникно- вении давления при полном сокращении в области речевого тракта и внезапном высвобождении давления.
Примеры применения ЦОС 113 5.3.3. Модели речеобразования Для того чтобы синтезировать звуки речи искусственно, нам необходима модель речеобразования, описанная выше. Мы обсудили одну из них кратко в главе 1. На рис. 5.11 показана более подробная модель. Рис. 5.11. Модельречеобразования Модель импульса, образованного в голосовой щели, модель речевого тракта и модель излучения являются линейными системами, дискретными во времени. По- этому они, по сути дела, являются дискретными фильтрами. Для того чтобы син- тезировать речь, переключатель «есть голос/нет голоса» переключит к источнику звука в конкретный момент времени. Параметры речевого тракта также необходимо варьировать во времени. Одной из наиболее успешных моделей импульса, образованного в голосовой щели, является модель Розенберга. Импульсная характеристика для данной модели определяется выражением 2 g(«) = < cos 71 (п - ) 2N2 О < n < Nx N{ < n < Nx + N2. О в остальных случаях Модель речевого тракта — это линейная прогнозирующая модель. Она назы- вается так в силу того, что текущий отсчет речи генерируется из числа предыдущих отсчетов и текущего возбуждения. Математически это будет выглядеть следующим образом: V 5(и) = aks(n - к) + и(п). А-=1
114 Цифровая обработка сигналов для инженеров и технических специалистов Здесь ак — коэффициент модели, и он изменяется с изменением фонем, а и(п) — входной отсчет модели речевого тракта. Порядок прогнозирования р обычно варь- ируется от 10 до 12. В большинстве случаев модель излучения игнорируется. В практической части у нас будет возможность поэкспериментировать с моделью. 5.4. Улучшение качества изображения В этой части мы будем иметь дело преимущественно с обработкой одномерных сигналов и изображений, которые по своей природе двумерны. Тем не менее, обра- ботка изображения является очень важной областью применения ЦОС. Мы вкратце рассмотрим применение методов ЦОС для улучшения качества изображений. Это даст нам возможность проникнуться тем, что эта область собой представляет. Неко- торые, синфазный I и квадратурный Q, операции являются нелинейными в отличие от линейных, которые мы обсуждали выше. Улучшение качества изображения — это обработка изображения с целью улуч- шения его внешнего вида. Существует множество методов, которые применяются для различных целей. Одни цели направлены на улучшение качества изображения и вне- шнего вида для наблюдателя. Другие подразумевают увеличение резкости изображе- ний для того, чтобы облегчить процедуру автоматического распознавания объектов. Но их общая цель — сделать обработанное изображение лучше в некотором смысле, чем то, которое не было подвержено обработке. Мы будем рассматривать два типа улучшений качества: улучшение динамическо- го диапазона и контраста и уменьшение шумов. Для простоты мы будем рассматривать только изображения с оттенками серого. 5.4.1. Улучшение контраста Одним из несложных путей улучшения контраста или динамического диапазона интенсивности пикселей изображения является метод, называемый модификацией оттенков серого. При этом для получения улучшенного изображения к исходному изображению применяется преобразование Т. Это преобразование часто представ- ляется таблицей. Положим, что изображение 5x5 пикселей представлено 3 битами. В общем, существует восемь уровней с 0, соответствующим самому темному оттенку, и 7 — самому светлому. Значение пикселей показано на рис. 5.12. Мы видим, что значение пикселей колеблется между 2 и 5. Таким образом, используются только 4 из 7 возможных уровней. При использовании всех значений можно получить лучший уровень контраста изображения. 2 3 3 4 5 2 3 3 4 5 2 3 4 4 5 2 3 4 4 5 2 3 4 4 5 Рис. 5.12. Значения пикселей для области 5х 5 пикселей
Примеры применения ЦОС 115 Проблема заключается в том, каким образом найти подходящее преобразова- ние, которое в этом случае «хорошо сработает». Расчет гистограммы изображения и изучение ее характеристик может помочь выбрать необходимое преобразование. Гис- тограмма — это всего лишь табличная сводка или график числа пикселей, имеющих определенную интенсивность. Гистограмма рис. 5.12 показана на рис. 5.13. Рис. 5.13. Гистограмма изображения на рис. 5.12 Гистограмма показывает, что динамический диапазон используется не так хо- рошо, как описывалось выше. Преобразование, которое улучшит контрастность, показано на рис. 5.14, а результирующее выходное изображение после преобразования - на рис. 5.15. Рис. 5.14. Преобразование, улучшающее контрастность 0 2 2 4 6 0 2 2 4 6 0 2 4 4 6 0 2 4 4 6 0 2 4 4 6 Рис. 5.15. Изображение рис. 5.12 после преобразования, улучшающего изображение
116 Цифровая обработка сигналов для инженеров и технических специалистов Преобразование можно получить автоматически при определении желаемой гистограммы. В большинстве случаев желаемая гистограмма — это обычно равно- мерное распределение значений уровня серых оттенков изображения. Это приведет к тому, что число пикселей на любом уровне серого оттенка будет тем же, что и на другом изображении. Преобразование Тдолжно быть монотонно невозрастающим, как это показано на рис. 5.14. Оно задается так: где N— общее число пикселей изображения; п — число пикселей на уровне серого i; М— общее число возможных уровней серого. Эта простая процедура часто приводит к значительным улучшениям качества изображения или его доступности для наблюдателя. 5.4.2. Устранение шумов В изображении существуют два основных типа шумов. Один из них — это рав- номерно распределенный случайный шум, подобный тому, что встречается для од- номерных изображений. Другой тип известен как импульсный шум, или шум типа «соль и перец». Он представляет собой отдельно стоящие светлые и темные пиксели на изображении. Такой вид шума может появиться при случайной ошибке бита во время передачи. Энергия типичного изображения обычно находится в области низких частот. Поэтому достаточно эффективным для удаления значительного числа равномерно распределенных случайных шумов является применение (двухмерной) низкочас- тотной фильтрации. Улучшение происходит за счет удаления некоторых элементов изображения. Необходимо также отметить, что контуры, существующие на изобра- жении, производят высокочастотные компоненты. Если эти компоненты удалены или сокращены по энергии, то контуры станут размытыми. Медианные фильтры очень эффективны при удалении импульсного шума при сохранении контуров. Однако это нелинейные фильтры, и поэтому процесс не может быть обратим. При медианной фильтрации окно или маска скользят вдоль изобра- жения. Окно определяет локальную область вокруг пикселя, который подвергается обработке. Медианная интенсивность (медианное значение интенсивности) для пик- селей в рамках данного окна становится новой интенсивностью значения пикселей, которые подвергаются обработке. На рис. 5.16(a) показано окно размером 3x3. Обработанные пиксели находятся в середине окна. Числа, находящиеся в рамках окна, являются интенсивностью уров- ней пикселей данного окна. На рис. 5.16(6) показан результат обработки. Обратите внимание, что интенсивность пикселей в середине окна сейчас заменена медианным значением.
Примеры применения ЦОС 117 1 1 4 7 ® 6 9 3 1 Значение медианы =3 а) 1 1 4 7 ® 6 9 3 1 6) Рис. 5.16. Медианная фильтрация с использованием окна 3x3 Важным параметром при медианной фильтрации является размер окна. Часто можно получать различные результаты при использовании окон различного размера. Выбор, в частности, зависит от характеристик изображения и шума. Как правило, для изображений с большим количеством вариаций необходимо использовать меньшие окна (окна меньшего пространственного размера), в то время как большие окна (окна большего пространственного размера) могут применяться к изображениям, которые имеют более равномерные области интенсивности. 5.5. Активное удаление шумов Метод активного удаления шумов (АУШ) основан на простом физическом принципе ослабляющей интерференции распространяющихся акустических волн. Концепция о том, что интерференцией акустических волн можно управлять для получения так называемых зон «тишины», известна с тех пор, как были смоделиро- Рис. 5.17. Одноканальная система АУШ
118 Цифровая обработка сигналов для инженеров и технических специалистов ваны посредством линейных уравнений первые звуковые волны. На самом деле, для аналоговых систем АУШ такой метод был запатентован в США в 1930-м. Устройства ЦОС сейчас достаточно мощны для того, чтобы спроектировать и внедрить цифровые системы АУШ, которые будут работать в реальном масштабе времени. На рис. 5.17 показана подсистема, работающая в одноканальной цифровой системе АУШ. Второй громкоговоритель выдает акустический сигнал, который при попадании в «микрофон ошибки» становится сдвинутым по фазе на угол в 180° по отношению к исходному сигналу d(k). Если Уе(^) = ~^(£) > то результирующий сигнал ошибки е(к), полученный из «микрофона ошибки», будет равен нулю, а зона «тишины» будет располагаться вокруг «микрофона ошибки». В си- лу очень сложной природы даже самого простого акустического сигнала на практике получить нулевую ошибку крайне сложно. Рис. 5.18. Структурная схема системы АУШ На рис. 5.18 показана структурная схема, которая моделирует систему, изоб- раженную на рис. 5.17. Здесь He(z) моделирует путь акустической волны от громко- говорителя до «микрофона ошибки», a Hr(z) моделирует их от громкоговорителя до опорного микрофона. Этот микрофон обеспечивает контроллер устранения шума входным сигналом, спектральное содержание которого подобно содержанию d(k). Сигнал опорного микрофона линейно фильтруется для воспроизведения соответству- ющего выходного сигнала громкоговорителя у(к). Активный контроллер устранения шума смоделирован посредством PPfc/ Если нам нужно, чтобы е(к) = 0, то без подробного рассмотрения передаточная функция фильтра АУШ должна быть следующей: -Ge(z) W (z) = Gr(z)tfc(z)-Gc(z)/7r(z)
Примеры применения ЦОС 119 Это аналитическое решение проблемы, получив которое у нас будет полное представление о характеристиках акустических путей. В общем случае это невоз- можно. Более того, характеристики акустических путей могут меняться во времени в силу того, что на них влияют различные события, такие, как движения объектов в конкретной области. Поэтому наиболее близкие к практике системы АУШ ис- пользуют методы адаптивной фильтрации, которые позволяют системе адаптивно моделировать акустические пути. Еще одним преимуществом такого метода явля- ется то, что адаптивный алгоритм работает только для Wreq(z) тех частот, которые действительно содержатся в шумовом сигнале. В этом случае можно получить более эффективные коэффициенты фильтра. Необходимо отметить также, что многие адаптивные алгоритмы требуют апри- орных знаний акустического пути He(z) для того, чтобы определить W (?). К счастью, импульсную характеристику обычно довольно просто определить и измерить. Собственный фильтр внутри активного контроллера устранения шума может быть или КИХ- или БИХ-фильтром. Как мы увидим в следующих главах, для каждого типа фильтров существуют свои недостатки и преимущества. КИХ-фильтры явля- ются заведомо устойчивыми, и уравнения для определения коэффициентов фильтра проще для применения по сравнению с БИХ-фильтрами. Требуемый порядок для КИХ-фильтра значительно выше по сравнению с БИХ-фильтром с аналогичными спектральными характеристиками. Веса фильтра обычно адаптированы или модернизированы с использованием алгоритма типа наименьших средних квадратов (ИСК). Такой тип алгоритмов в ос- новном минимизирует среднее сигнала ошибки, возведенного в квадрат, то есть е2(к). На каждой итерации к коэффициент фильтра w(k) обновляется (модернизируется) путем использования доступной информации. Наиболее простое уравнение обнов- ления коэффициентов представлено ниже: w(k +1) = - 2^е(к)и(к) x(k) Рис. 5.19. Адаптивная система с Б ИХ для АУШ
120 Цифровая обработка сигналов для инженеров и технических специалистов В этом уравнении параметр ц влияет на то, насколько быстро изменяются ко- эффициенты. Значение ц обычно намного меньше /, что обеспечивает стабильность алгоритма. Структурная схема адаптивного алгоритма НСК для БИХ-фильтров показана на рис. 5.19. ЗдесьЯ(%)и B(z) — передаточные функции, относящиеся к коэффициентам фильтра. Используемый порядок фильтра зависит от сложности акустического пути Я (z), что является отражением импульсной характеристики пути. Порядки фильтров между 100 и 200 не являются нетипичными. Фактически, порядок фильтра также зависит от частоты дискретизации, так как она влияет на общую задержку, которую может смоделировать фильтр. Например, частота дискретизации 2 кГц имеет период диск- ретизации 5 мс, то есть порядок фильтра в 100 может смоделировать задержку акус- тического пути в 500 мс или полсекунды. Для создания больших или многочисленных зон «тишины» мы можем исполь- зовать многоканальный контроллер устранения шума, аналогичный тому, что пред- ставлен на рис. 5.20. Для того чтобы понять значения используемых параметров, рассмотрим систему отображения магнитного резонанса. Блок сканирования системы отображения маг- нитного резонанса производит очень высокий уровень низких частот акустического шума, что делает процедуру сканирования очень травматичной, а также вмешива- ющейся в коммуникацию с пациентом. Двуканальная система АУШ должна быть
Примеры применения ЦОС 121 использована совместно с КИХ-фильтром 120-го порядка, работающим на частоте дискретизации 2 кГц. Частоты ниже 350 Гц сокращаются приблизительно на 0—20 дБ, но те частоты, которые располагаются выше 350 Гц, не подавляются, что не влияет на речевую связь между пациентом и оператором. 5.6. Дальнейшие исследования Мы рассмотрели только несколько приложений в некоторых областях, которые могут быть интересны читателю. Как было сказано в 1-й главе, ЦОС имеет очень широкое применение. Хорошим источником обзорных статей служит журнал IEEE «Обработка сигналов» (IEEE signal processing magazine). Другие популярные электронные журналы также рассматривают практические проекты, использующие методы ЦОС.
6 Разработка фильтров с конечной импульсной характеристикой 6.1. Классификация цифровых фильтров Цифровые фильтры — это системы, дискретные во времени. Тип цифровых фильтров, которым посвящен данный курс, — это линейные. Таким образом, они обладают всеми свойствами линейных дискретных во времени систем, которые об- суждались в главе 3. Все линейные дискретные во времени операции над входной последовательностью данных могут быть рассмотрены как фильтрация входной пос- ледовательности с целью создания выходной последовательности. Именно по этой причине цифровые фильтры занимают столь важное место в ЦОС. Нелинейные фильтры также широко используются, особенно в таких областях, как обработка изображений. Медианный фильтр, который рассматривается в разделе 5.4, применяется для улучшения изображений и является типичным примером нели- нейного цифрового фильтра. Линейные системы характеризуются своими импульсными характеристиками. Импульсная характеристика может иметь конечную либо бесконечную длительность. Конечная импульсная характеристика h(n) имеет ненулевые значения в пределах некоторого конечного интервала времени и нулевые значения вне этого интервала. Так, например, следующая импульсная характеристика h(n) - {hQ,h^h2,...,hN,Q,Q,Q,...} имеет ненулевые значения на интервале 0<n<N, и относится к конечным импульсным характеристикам (КИХ) фильтра или систе- мам порядка N. Таким образом, цифровой фильтр TV-го порядка имеет импульсную характеристику с длиной (7V+1) отсчетов. Отсчеты импульсной характеристики (h^hx и т.д.) обычно называют коэффициентами фильтра, весами фильтра или весами/ко- эффициентами отводов фильтра.
Разработка фильтров с конечной импульсной характеристикой 123 Если импульсная характеристика имеет бесконечную длительность, мы имеем дело с фильтром с бесконечной импульсной характеристикой (БИХ). Очевидно, что создание БИХ-фильтров сопряжено с рядом проблем, так как мы не можем просчи- тать бесконечное число элементов. Но типом БИХ-фильтров, которые могут быть созданы, задаются взаимосвязи между входным и выходным воздействиями в виде линейного дифференциального уравнения. Выходная последовательность может быть рассчитана рекурсивно. Это причина, по которой БИХ-фильтры также известны как рекурсивные фильтры, а КИХ-филь- тры — как нерекурсивные фильтры. В этой главе основное внимание будет уделяться КИХ-фильтрам. БИХ-фильтры будут рассматриваться в следующей главе. 6.2. Процесс разработки фильтров В общих чертах процесс разработки цифрового фильтра может быть разбит на четыре основных шага: • аппроксимация; • синтез и реализация; • анализ эксплуатационных характеристик; • исполнение. Эти шаги проиллюстрированы в виде диаграммы, представленной на рис. 6.1. Выбор альтернативной структуры в случае необходимости Рис. 6.1. Процесс разработки фильтров
124 Цифровая обработка сигналов для инженеров и технических специалистов 6.2.1. Аппроксимация Процесс разработки обычно начинается с задания спецификации и требований к фильтру, которые непосредственно связаны с его последующим использованием. Эти спецификации могут включать в себя характеристики в частотной области, такие, как амплитудная и фазовая характеристики. Могут быть также требования во временной области, такие, как максимальное время задержки. (6) Рис. 6.2. Спецификация предмодуляционного фильтра в системе ERMES
Разработка фильтров с конечной импульсной характеристикой 125 Большинство спецификаций определяют верхние и нижние граничные значения каждой характеристики. Типичные примеры можно найти во многих стандартах для коммуникационных систем. Так, например, в соответствии со стандартом ERMES для пейджинговых систем предмодуляционный фильтр должен обладать характе- ристиками, указанными на рис. 6.2. В качестве альтернативного решения требуемый или идеальный отклик может быть задан с максимальным значением отклонения от значения специфицированного. Задание спецификаций фильтра — это первый шаг при его разработке, который предназначен для того, чтобы найти такую передаточную функцию фильтра, которая будет удовлетворять этим спецификациям. Этот процесс называется аппроксима- цией. Свое название он получил потому, что то, что мы делаем на этом этапе, — это осуществляем поиск передаточной функции, которая аппроксимирует идеальное значение, указанное в спецификации. Методы решения задач аппроксимации для цифровых фильтров могут быть классифицированы как прямые и непрямые. Для прямых методов задача решается для дискретной временной (и, соответственно, для дискретной частотной) области. Для непрямых методов сначала необходимо получить континуальную передаточную функцию путем применения хорошо известных и апробированных методов для ана- логовых фильтров. Эта континуальная передаточная функция затем преобразовывается в дискрет- ную во времени передаточную функцию. Непрямые методы наиболее часто исполь- зуются для синтеза БИХ-фильтров, а прямые — для синтеза КИХ-фильтров. Эти методы решения также могут быть классифицированы как полученные на основе ряда решений или итеративные. Методы, основанные на ряде решений, ис- пользуют выражения для ряда решений и обычно выполняются за определенное число шагов. Итеративные методы используют методы оптимизации, которые начинаются с начального приближения, и затем решение каждый раз уточняется до тех пор, пока не будет выполнен некоторый, уже заданный критерий. Число итераций заранее неизвестно и зависит от начального приближения и эффективности используемых методов оптимизации. 6.2.2. Синтез и реализация После того как была определена передаточная функция, она должна быть реа- лизована в виде дискретной во времени линейной схемы. Эта процедура аналогична реализации аналоговых фильтров путем подбора подходящей топологии схемы и выбора значений элементов фильтра с целью реализации необходимой передаточной функции фильтра. До настоящего момента времени было предложено достаточно большое число методов реализации. Наилучшая реализация полученной передаточ- ной функции во многом зависит от области применения. Общий анализ включает в себя число требуемых сумматоров и умножителей, чувствительность схемы к эффек- там конечной точности задания арифметики. Реализация цифровых фильтров будет подробно рассмотрена в главе 8.
126 Цифровая обработка сигналов для инженеров и технических специалистов 6.2.3. Анализ эксплуатационных характеристик Даже если коэффициенты фильтра определены с высокой степенью точности в про- цессе аппроксимации, цифровые схемы имеют конечную точность. Точность выходного воздействия будет зависеть от типа используемой арифметики: с плавающей точкой или с фиксированной точкой. Это, в частности, относится к арифметике с фиксированной точкой. Разработчик должен убедиться, что ошибка, возникающая по причине конеч- ной точности, не вызовет нарушения спецификации фильтра. Более того, должны быть исследованы эффекты арифметического переполнения и потери значимости. Нельзя не переоценить важность этих шагов при разработке фильтра, особенно для БИХ-фильтров. Так как фильтры с конечной импульсной характеристикой всегда являются устойчивыми, БИХ-фильтры могут быть неустойчивыми вследствие нали- чия ошибок квантования при выполнении вычислительных операций. Влияние конечной точности построения цифровых фильтров будет детально рассмотрено в главе 8. 6.2.4. Исполнение Цифровые фильтры могут быть выполнены в программном или аппаратном виде, а также в их комбинации. Программная реализация требует выбора компьютера или микропроцессора, на котором и будет использоваться программное обеспечение. Микросхемы цифровых процессоров, которые разработаны специально для выпол- нения ЦОС-операций, весьма эффективны. В главе 9 мы рассмотрим общие черты архитектуры и характеристики некоторых наиболее часто используемых из доступных в свободной продаже процессоров. Отметим, что простота программного исполнения в существенной степени за- висит от качества инструментария разработчика. В то время как реализация ряда процессоров ЦОС может быть сходной, качество доступного инструментария может существенно отличаться. Разработчик ЦОС должен учитывать этот факт. Некоторые программные средства разрабатываются производителями цифровых процессоров, в то время как другие — сторонними компаниями. Ряд таких инструментариев будет рассмотрен в главе 10. В очень требовательных приложениях фильтр должен быть исполнен в аппарат- ной форме в виде специализированной интегральной микросхемы (СИМ, ASIC) для того, чтобы обеспечить требуемую скорость обработки. Также может потребоваться, чтобы набор других функций, таких, например, как аналого-цифровое и цифро- аналоговое преобразование, был интегрирован в ту же микросхему. Однако время на разработку такого устройства и его цена будут существенно выше. б.З. Характеристики КИХ-фильтров Так как КИХ-фильтры — это линейные дискретные во времени системы, вы- ходная последовательность соотносится с входной и импульсной характеристикой операции типа свертки: м у(п) = x(m)h(n - т). и?=0
Разработка фильтров с конечной импульсной характеристикой 127 Это соотношение показывает, что любой из выходных отсчетов зависит только от Nвходных отсчетов для фильтра TV-го порядка. По этой причине КИХ-фильтр также известен как нерекурсивный фильтр. Также необходимо отметить, что суммирование в правой части — это свертка между входной последовательностью х(п) и импульсной характеристикой фильтра h(n). Поэтому они также известны как сверточные фильтры. Со статистической точки зрения выходной отсчет является результатом взвешенного усреднения ^входных отсчетов. По этой причине они также именуются фильтрами со скользящим средним (СС). Однако во всех публикациях наиболее часто используется терминология «КИХ». Одно из главных преимуществ КИХ-фильтров — это простота создания филь- тров с линейными фазовыми характеристиками. Фильтр с линейной фазовой харак- теристикой не искажает входной сигнал и предпочтителен для ряда применений, таких, например, как цифровые коммуникации. Методы разработки КИХ-фильтров в общем случае являются линейными и эффективными. Еще одно важное свойство КИХ-фильтров состоит в том, что они гарантированно являются устойчивыми. Более того, они могут быть эффективно реализованы в общем и специальном аппаратном обеспечении. Например, большинство микросхем ЦОС имеют набор специальных инструкций для того, чтобы упростить построение КИХ-фильтров. 6.3.1. Частотная характеристика Частотная характеристика КИХ-фильтра TV-го порядка определяется выраже- нием AM /7(со) = ^Л(и)е~'“", и=0 где со имеет размерность радиан в секунду. Строго говоря, экспонента должна иметь вид (-jcoTh), где Т — период дискретизации. Но для простоты мы предположим, что Т=1, в случае если не оговорено иное. Отметим, что даже при учете того, что фильтр — это дискретная во времени сис- тема, частотная переменная будет непрерывной и периодической с периодом 2 . Это важное утверждение, которое необходимо помнить, особенно если мы обрабатываем частотную характеристику с использованием ДПФ. Для импульсной характеристики длины Nвыражение для ДПФ даст нам Nчастотных точек. Если N невелико, мы не сможем получить точную характеристику отклика. В этих случаях исходная импуль- сная характеристика h(ri), возможно, потребует добавления соответствующего числа нулей для того, чтобы обеспечить требуемую точность кривой частотной характе- ристики. Вспомним, что частотная характеристика цифровой системы в общем случае комплексная и состоит из значений амплитуды и фазы. Функция может быть запи- сана в виде: Я((о) = Л(со)е/9(<о), где Л(со) — амплитудная функция/отклик, а 0(со) — функция фазы/отклика. Величина амплитудного отклика описывается выражением М (со) = |Я(со)| = |Л(со)|.
128 Цифровая обработка сигналов для инженеров и технических специалистов ДПФ для импульсной характеристики h(n) с дайной Nопределяется выражением N-1 C(k) = ^h(n)e~/2nkn/N k = 0,l,...,N-\. п=0 Пример 6.1. КИХ-фильтр имеет следующую частотную характеристику ад = {1,з, 5, зд}. Значение амплитудного и фазового откликов показано на рис. 6.3. Пять коэффициентов ДПФ определяются выражением 13.00, -4.2361-у'3.0777, С(7с) = { 0.2361 + уо.7256, 0.2361-У0.7256, -4.2361 + уЗ.0777 Рис. 6.3. Амплитудный и фазовый отклики примера 6.1
Разработка фильтров с конечной импульсной характеристикой 129 6.3.2. Фильтры с линейной фазовой характеристикой Линейная фаза означает то, что фазовый отклик будет линейной функцией час- тоты. КИХ-фильтр в примере, данном в предыдущем разделе, имеет линейную фазо- вую характеристику, как показано на рис. 6.4. Фаза 0(со) Рис. 6.4. Отклик с линейным изменением фазы Еще один способ утверждать, что фильтр имеет линейную фазовую характерис- тику, — это то, что фильтр имеет постоянный групповой сдвиг отклика. Аналитически может быть показано, что КИХ-фильтр обладает точной ли- нейной фазовой характеристикой, если его импульсный отклик является либо сим- метричным (с четной симметрией) или асимметричным (с нечетной симметрией) относительно средней точки. Так как длина импульсной характеристики цифрового фильтра может быть либо четной, либо нечетной, существуют всего четыре типа КИХ- фильтров с линейной фазовой характеристикой. Тип 1. Импульсная характеристика имеет нечетную длину (N— нечетное число) и четную симметрию относительно средней точки. То есть h(n) = h(N-n-l). Амплитудный отклик имеет четную симметрию относительно точек со = 0 и со = л. Он также будет периодическим с периодом 2л. То есть ^(со) = А(-со) ^4(л4-со) = ^4(л-со) ^(со4-2л) = А(со). Рис. 6.5 показывает импульсную характеристику и амплитудный спектр харак- терного для типа 1 КИХ-фильтра с линейной фазовой характеристикой. 5 445
130 Цифровая обработка сигналов для инженеров и технических специалистов п (а) Импульсная характеристика (б) Амплитудный спектр Рис. 6.5. Импульсная характеристика и амплитудный спектр КИХ-филътра типа 1 Ъш 2. Импульсная характеристика имеет четную длину и четную симметрию относительно средней точки М. Отметим, что в этом случае М не является целым. Ам- плитудный спектр четный относительно точки со = 0 и нечетный относительно точки со= л. Спектр также будет периодическим с периодом 4л, а не 2л. Л(со) - Л(-со) Л(л + со) = Л(л-со) Л(со + 2л) = Л(со). Пример показан на рис. 6.6. п (а) Импульсная характеристика А(<о) (б) Амплитудный спектр Рис. 6.6. Пример фильтра типа 2 с линейной фазовой характеристикой Частотная характеристика этого типа фильтров должна быть равна нулю в точках со — л. Это создает нам хороший низкочастотный фильтр, однако устраняет возмож- ность применения в высокочастотных схемах.
Разработка фильтров с конечной импульсной характеристикой 131 Ъш 3. Импульсная характеристика имеет нечетную длину и нечетную симмет- рию относительно средней точки. Амплитудный спектр нечетный относительно точек со = 0исо = л, с периодом 2л. А((о) = -А(-со) А(л + ю) = -А(л-о)) А(со + 4л) = А(со) • Пример показан на рис. 6.7. а) Импульсная характеристика б) Амплитудный спектр Рис. 6.7. Пример фильтра типа 3 с линейной фазовой характеристикой Отметим, что этот тип фильтров имеет частотную характеристику, которая долж- на быть равна нулю на нулевой частоте (со = 0) и на частоте со = л. По этой причине они неудовлетворительны для использования в низкочастотных и высокочастотных схемах. Более того, они характеризуются сдвигом по фазе на 90°’ Ttan 4. Импульсная характеристика имеет четную длину и нечетную симметрию относительно средней точки. Амплитудный спектр нечетный относительно точки со = 0 и четный относитель- но точки со = л. Спектр имеет период 4л. Л(со) = -А(-со) А(п + со) = -А(п - со) Л(со + 2л) = Л(со). Пример показан на рис. 6.8 5:
132 Цифровая обработка сигналов для инженеров и технических специалистов п а) Импульсная характеристика Рис. 6.8. Пример фильтра типа 4 с линейной фазовой характеристикой Частотная характеристика этого типа фильтров должна быть равна нулю в точках со = 0, но не обязательно в точках со = л. Таким образом, они могут использоваться при создании фильтров высоких частот и не могут при создании фильтров низких частот. Как и фильтры типа 3, они характеризуются сдвигом по фазе на 900> 6.4. Использование окон Методы, основанные на использовании окон, полезны, в частности, при разра- ботке фильтров, задаваемых с помощью эталонных простых частотных характерис- тик, таких, например, как идеальный низкочастотный, полосовой, режектирующий и высокочастотный фильтры. Примеры откликов этих четырех фильтров показаны на рис. 6.9. Отметим, что на рис. 6.9 частотные характеристики фильтров определены только на интервале -П < CD < П . Такая область определения объясняется тем, что для цифровых фильтров часто- тный отклик является периодическим по со с периодом 2л. В литературе этот интервал также называют интервалом Найквиста1. 1 В отечественной литературе также называют «интервал дискретизации». (Прим, пер.)
Разработка фильтров с конечной импульсной характеристикой 133 а) Идеальный фильтр низких частот б) Идеальный фильтр верхних частот D(co) D(w) Рис. 6.9. Четыре идеальные частотные характеристики фильтров Частотный отклик (непрерывный) и импульсная характеристика (дискретная) соотносятся посредством дискретного во времени преобразования Фурье (ДВПФ): Л(со) = 2 d(k)e-J<ak k=-K d(k) = Г D(m)eJmk — • 2л Таким образом, при заданной эталонной частотной характеристике импульсная характеристика фильтра может быть определена путем обратного ДВПФ. Коэффи- циенты фильтра в этом случае будут просто отсчетами его импульсной характерис- тики. Однако импульсная характеристика, полученная путем применения обратного ДВПФ, будет в общем случае иметь два нежелательных свойства: она будет физичес- ки нереализуема и бесконечна во времени. Так, например, рассмотрим эталонный фильтр низких частот с характеристикой, определяемой выражением 1 Г>(со) = ( D( е J 1Л 1Л со(. |со| < . -71 -СО< 0 < Ос 71 Рис. 6.10. Характеристика идеального фильтра низких частот
134 Цифровая обработка сигналов для инженеров и технических специалистов Это показано на рис. 6.10. Импульсная характеристика определяется выраже- нием d(k) = — Г £)(со)емб/(д 2л J-,t = — Г \-ej№kda 2Л J-“e = _1_Ге>л_е-м*1 2njk L sin(coc£) лк — оо < к < оо 4/(0) = ^ Л Эта импульсная характеристика показана на рис. 6.11. Функция «синк» -0 2’-------1------•-------•------•------1-------•------1-------•------1------ -10 -8 -6 -4 -2 0 2 4 6 8 10 к Рис. 6.11. Импульсная характеристика идеального фильтра низких частот Для того чтобы усечь длительность импульсной характеристики до конечной, может быть использована оконная функция (окно). Идеальная импульсная характе- ристика d(k) перемножается с этим окном, имеющим конечный размер, в результате чего получается конечная импульсная характеристика. Был предложен ряд различных окон. Мы рассмотрим четыре из них для того, чтобы показать эффект применения окон и их относительные достоинства.
Разработка фильтров с конечной импульсной характеристикой 135 Необходимо отметить, что в приведенном выше примере частотная характерис- тика симметрична относительно точки со = 0 и является действительной функцией. Это приводит к тому, что импульсная характеристика является четной симметричной, а также имеет только реальное значение. Фазовая характеристика равна нулю на всем интервале частот. 6.4.1. Прямоугольное окно Наиболее простой и непосредственный способ усечения идеальной импульсной характеристики d(k) — это оставить неизменными ее значения в пределах некоторого интервала, скажем, —Мдо М. Это эквивалентно умножению d(k) на прямоугольную функцию, задаваемую выражением w(/7) = fl, < о, |n| < М в остальных случаях в противном случае, как показано на рис. 6.12. Прямоугольное окно Рис. 6.12. Прямоугольное окно Результирующая импульсная характеристика hw(ri) имеет N= 2Млибо N= 2М+1 ненулевых значений. В наших предыдущих рассуждениях мы должны были предпо- ложить, что N— нечетное. Аргументы могут быть легко расширены до случая, когда N— четное Импульсная характеристика после обработки окном будет физически нереали- зуемой, то есть такой, что имеет ненулевые значения перед отсчетом п = 0, Для того чтобы сделать ее физически реализуемой, необходимо сдвинуть начало отсчета време- ни до первого ненулевого индекса и переиндексировать составляющие. Импульсная характеристика (и, соответственно, коэффициенты фильтра) для КИХ-фильтра будет определяться так: h(ri) = dw(n — M) и = 0,1,...Л-1 . Этот процесс проиллюстрирован на рис. 6.13.;
136 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 6.13. Импульсная характеристика в результате обработки прямоугольным окном Пример 6.2. Найти импульсную характеристику после обработки прямоугольным окном для идеального фильтра нижних частот с частотой среза сос = л/4. Положим N = 11. Решение: Для N= 11 М= (N- 1)/2 = 5. <(«) = sin (ли/4) ли -5 < и < 5 V2 А V2 1 V2 1 >/2 1 V2 . V2 9 ^9 9 9 99 9 9 9^9 Юл 6л 2л 2л 4 2л 2л 6л Юл Импульсная характеристика фильтра показана графически на рис. 6.14. Рис. 6.14. Импульсная характеристика фильтра для примера 6.2
Разработка фильтров с конечной импульсной характеристикой 137 6.4.1.1. Оценка эксплуатационных характеристик Насколько хороши фильтры, полученные с использованием прямоугольных окон? Другими словами, насколько близка результирующая частотная характеристика КИХ-фильтра к исходному идеальному отклику D(co)? Для того чтобы ответить на этот вопрос, выполним ДВПФ-преобразование фун- кции Л(л), обозначим его Н(со) и построим значение отклика относительно D(co) (рис. 6.15). Отметим, что, так как h(n) несимметрична относительно начала отсчета, ее ДВПФ будет комплексной. Следовательно, мы будем сравнивать только амплитудные характеристики в диапазоне частот от 0 до л. Отметим наличие всплесков как в полосе пропускания, так и в полосе задержки. Более четко увидеть этот эффект можно в случае, если мы перепроектируем фильтр с использованием больших значений N. Рис. 6.16—6.17 показывают импульсную харак- теристику, полученную при использовании прямоугольных окон, и соответствующие амплитудные отклики для N=51 и N= 101. Рис. 6.15. Амплитудная характеристика фильтра при обработке прямоугольным окном, N=ll
138 Цифровая обработка сигналов для инженеров и технических специалистов Приведенная частота (Найквиста =1) Рис. 6.16. Импульсная и амплитудная характеристика идеального усеченного фильтра с ЛФХ при N=51
Разработка фильтров с конечной импульсной характеристикой 139 Рис. 6.17. Импульсная и амплитудная характеристика идеального усеченного фильтра с ЛФХпри N—101 Можно предположить, что при увеличении числа N точность аппроксимации увеличивается. Это действительно будет иметь место в ряде случаев, за исключением
140 Цифровая обработка сигналов для инженеров и технических специалистов областей, близких к области перехода от полосы пропускания к полосе задержки. Эта область соответствует разрыву в идеальной эталонной частотной характеристи- ке. Усечение ряда Фурье создает возмущения на частотном отклике, возникающие вследствие неравномерного приближения разрыва рядом Фурье. Это явление извес- тно как эффект Гиббса. По причине его существования аппроксимация на границе полосы частот при использовании прямоугольных окон всегда будет недостаточно хорошей вне зависимости от N. 6.4.1.2. Другая интерпретация Мы можем интерпретировать амплитудный отклик (амплитудную характерис- тику) КИХ-фильтра посредством сведений о линейных системах, которые рассмат- ривались в предыдущих главах, рис. 6.18. П ь Линейная система 1—I (ГА \ R(to) Рис. 6.18. Интерпретация в частотной области Исходный эталонный амплитудный спектр (характеристика, отклик) подается на вход линейной системы с прямоугольной амплитудной характеристикой. Выход- ной эффект системы будет представлять амплитудную характеристику КИХ-фильтра. В соответствии с теорией линейных систем выходной эффект может быть представлен в виде произведения частотных характеристик системы и входного воздействия //(со) = 7?(со) = D(co) Рис. 6.19. Амплитудный отклик прямоугольного окна
Разработка фильтров с конечной импульсной характеристикой 141 Амплитудная характеристика прямоугольного окна имеет вид, показанный на рис. 6.19. Эта интерпретация показывает, что прямоугольное окно является причиной возмущений (всплесков и провалов) в характеристике КИХ-фильтра. Если мы хотим разработать фильтры с лучшей аппроксимацией в области пере- хода, эта интерпретация подскажет нам, что необходимо использовать окно с более хорошей амплитудной характеристикой. Именно по этой причине был разработан ряд окон с различными частотными характеристиками. 6.4.1.3. Сводка характеристик фильтров • Размер возмущений уменьшается при увеличении порядка фильтра N. Аппроксимация в пределах полосы пропускания и полосы задержки улучшается при увеличении порядка фильтра. • Размер области перехода уменьшается при увеличении порядка фильтра. Для любого порядка ^характеристика (отклик) фильтра всегда равна 0,5 на частоте среза. • Размер возмущений вблизи перехода от полосы пропускания к полосе задержки остается практически неизменным при увеличении N. Макси- мальная величина возмущений составляет величины порядка 9%. Этот факт известен как эффект Гиббса. 6.4.2. Окно Хэмминга Так как разрывы в функции во временной области являются причиной всплес- ков частотной характеристики, мы можем заменить прямоугольное окно некоторым другим окном, поведение которого на обоих концах является более плавным. Это уменьшит эффект появления всплесков. Окно Хэмминга является одним из наиболее распространенных окон, предназначенных для этих целей. Аналитически окно Хэмминга описывается выражением w(n) = 0.54-0.46cos[ -----.। п - 0,1,..., 7V-1. Графическое представление этого окна показано на рис. 6.20. Отметим, что это выражение определяет отсчеты окна как уже сдвинутые (ин- декс от 0 до А-1). Таким образом, импульсная характеристика низкочастотного КИХ- фильтра, разработанного при использовании окна Хэмминга, будет определяться выражением h{n) = w(n)d(n - М) 0.54 - 0.46cos [ <7V-1 sin[(z?- Л/)сос] (л7-Л/)л
142 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 6.20. Окно Хэмминга На рис. 6.21 показан фильтр низких частот с размером N=21, с частотой среза л/4 — такой же, как на примере, рассмотренном в предыдущем разделе. Рис. 6.21. Амплитудная характеристика окна Хэмминга
Разработка фильтров с конечной импульсной характеристикой 143 Сравнивая характеристики с теми, что показаны на рис. 6.16, которые созданы при использовании прямоугольных окон, становится очевидно, что целесообразнее использовать окно Хэмминга. Возмущения на обоих концах полос пропускания и задержки практически отсутствуют. Этот эффект достигается за счет более продол- жительной области перехода. Функция, описывающая окно Хэмминга, имеет такой же вид, как и приподня- тый косинус (косинус на пьедестале), который хорошо известен инженерам в области цифровых коммуникаций. Единственное отличие заключается в том, что здесь при- сутствует скалярная величина в постоянной и косинусной частях. Окно Хэмминга в пределе не уменьшается до нулевых значений, а стремится к значению 0,08. Макси- мальное затухание в полосе задержки составляет 53 дБ по отношению к коэффициенту передачи в полосе пропускания. 6.43. Окно Блэкмана Окно Блэкмана при использовании для разработки цифровых КИХ-фильтров позволяет получить еще меньшие значения возмущений в области подавления (уменьшается до 74 дБ) по сравнению с окном Хэмминга. Аналитически оно задает- ся выражением ( 2пп । ( 4тш । w(n) = 0.42-0.5cos ----- + 0.08 ----- п = 0,1,...Л-1. <7V-1J \N-1) Его амплитудно-частотная и импульсная характеристики приведены на рис. 6.22. Отметим, что ширина основного лепестка в амплитудно-частотной характеристике примерно на 50% шире, чем для окна Хэмминга. Характеристики разработанного КИХ-фильтра низких частот размером 51 по- казаны на рис. 6.23. Полученные результаты можно сравнить с аналогичными, полу- ченными при использовании окна Хэмминга, рис. 6.21. Рис. 6.22. Окно Блэкмана
144 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 6.23. КИХ-филътр низких частот, разработанный с применением окна Блэкмана 6.4.4. Окно Кайзера Основное преимущество трех рассмотренных ранее окон заключается в том, что они сравнительно просто реализовываются, обеспечивая достаточно хорошие ха- рактеристики фильтрации. Для широкого круга применений разработка фильтров на основе окон Хэмминга и Блэкмана обеспечит требуемые спецификацией характерис- тики. Основным же недостатком этих функций является то, что их характеристики, такие, как максимальное значение коэффициента подавления и значения выбросов на границе фильтра, являются фиксированными (заданными). Таким образом, в случае если в спецификации фильтра будут указаны характеристики, определяющие значения выбросов на границе фильтра и ширину полосу перехода от полосы про- пускания к полосе задержки, которые невозможно реализовать при помощи этих фильтров, мы окажемся в тупике. Рассмотрим амплитудную передаточную характеристику фильтра низких час- тот, показанную на рис. 6.24. Идеальная частота среза находится посередине между граничными частотами полосы пропускания и полосы задержки. fс у >ass ./stop ) • Ширина переходной полосы фильтра определяется выражением V = Z„P-4,..
Разработка фильтров с конечной импульсной характеристикой 145 Рис. 6.24. Амплитудная передаточная характеристика фильтра нижних частот Приведенные частоты будут цифровыми частотами: pass м... 2ч:„Р * ~ —~f^— На практике возмущения в пределах максимальной полосы пропускания и по- лосы задержки обычно задаются в децибелах (дБ): Ла- = 201°ё10 pass 1-S„J 4„„ =-2«logi08>w. Эти соотношения связывают два набора спецификаций — {f s, f t , Apass, Astop} и {f , Af, 8pass, 8 top}. Если 8pass мало, тогда мы можем использовать аппроксимацию первого порядка, в результате чего получим Л-.. = 17-3728р...-
146 Цифровая обработка сигналов для инженеров и технических специалистов Отметим, что это свойство всех окон, которые созданы так, что 8pass и 8stop равны для разработанного фильтра. Таким образом, вместо работы с двумя переменными мы можем выбрать максимальное возмущение, которое будет меньшим из двух: 5 = min(5pass,5stop) Практический выбор коэффициентов ослабления в полосе пропускания и в по- лосе задержки обычно приводит к тому, что возмущения в пределах полосы задержки будут меньше, чем возмущения в пределах полосы пропускания. 6.4.4.1. Разработка окна Кайзера Кайзер разработал гибкое семейство функций, задающих окна. Это семейство имеет подстраиваемые параметры формы, которые позволяют разработчику получить желательную величину возмущений и подавления. Аналитически они определяются выражением w(n) = 10^ф-(п-М)2/М2^ М₽) 10^п(2М-п)/Му М₽) для п = 0,1,...,#—1, где 10(х) — модифицированная функция Бесселя нулевого поряд- ка. Здесь мы будем предполагать, что N— нечетное. Вторая форма этой записи более удобна для численных вычислений. 0 называется параметром формы. Окно Кайзера симметрично относительно своей средней точки и имеет в ней максимальное значение, равное 1. Так как /о(О)=1, то значения на краях будут иметь значения 1//0(Р). Обычно величина р находится в пределах интервала 4<Р<9 На рис. 6.25 показаны три окна Кайзера с N= 51 и р = 5, 7, 9. Окно Кайзера вырождается до прямоугольного окна в случае, когда р = 0. Оно сходно с окном Хэмминга при р = 5, за исключением точек, близких к концам. В табл. 6.1. приведено сравнение переходной полосы и максимального значения возмущений для различных значений параметра формы. ₽ Переходная полоса Максимальное значение возмущений, дБ 4,0 2,6 -45 5,0 3,2 -54 6,0 3,8 -63 7,0 4,5 -72 8,0 5,1 -81 9,0 5,7 -90 Табл. 6.1. Сравнение переходной полосы и максимального значения возмущений в пределах полосы задержки
Разработка фильтров с конечной импульсной характеристикой 147 Рис. 6.25. Окна Кайзера Фильтр TV-го порядка и параметр формы могут быть рассчитаны на основе спе- цификации. Кайзер задал эмпирические выражения для разработки фильтра в сле- дующем виде: 0.1102(Л-8.7), Л >50 р = 0.5842(^4-21)04 + 0.07886(^-21), 21<Л<50 , Л<21 где А — возмущение в дБ. Порядок фильтра либо его длина связаны с переходной полосой соотношением д/= 7V-1 А/ где D — величина, определяемая посредством А: Г Л-7.95 D-\ 14.36 Л>21 0.922 Л<21.
148 Цифровая обработка сигналов для инженеров и технических специалистов 6.4.4.2. Этапы разработки • Рассчитать^ и Л/и затем приведенные цифровые частоты. • Рассчитать возмущение в полосе передачи и задержки фильтра и, сле- довательно, 8 и А. • Рассчитать р и D. • Рассчитать требуемую длину (порядок) фильтра и округлить ее к ближай- шему большему нечетному целому числу. • Рассчитать функцию, задающую окно w(«). • Рассчитать импульсную характеристику с учетом введения обработки окном h(n). Отметим, что параметры Nh р зависят только от А и А/, но не от^. Однако h(ri) зависит оту\ Пример 6.3. Разработать фильтр нижних частот с использованием окна Кайзера со следую- щей спецификацией: / = 44.1kHz /pass = 12kHz /stop = 18 kHz 4asS=0-2dB 4op=50dB. Решение: Нам задано, что А — 50. Отсюда следует, что р = 0.1102(^4-8.7) = 0.1102(50-8.7) = 4.55126. и 14.36 = 2.9283 . Так как fstop -/'pass = 18-12 = 6 kHz
Разработка фильтров с конечной импульсной характеристикой 149 то мы получим У 2,9283(44.1) " 6 = 21.5. и, таким образом, порядок фильтра будет А= 22,5 Мы можем использовать значения N= 22 или N= 23. Функции, встроенные в систему MATLAB, позволяют получить лучшую ап- проксимацию при получении величин р и N. На рис. 6.26 показана амплитудная характеристика полученного в результате фильтра. N=22, beta=4.522 ЮI---------------------------------------- -901------------------------------------------------------------------------1_ 0 2 4 6 8 10 12 14 16 18 20 22 Частота (кГц) Рис. 6.26. Амплитудная характеристика КИХ-фильтра, полученного применением окна Кайзера
150 Цифровая обработка сигналов для инженеров и технических специалистов 6.4.4.3. Разработка фильтров высоких частот Разработка фильтров высоких частот с использованием окон Кайзера весьма схожа с разработкой фильтров низких частот. Единственным отличием является оп- ределение А/ ./pass ./stop ’ так как значения f и значения f поменялись местами. J pass J stop Идеальный фильтр высоких частот имеет импульсную характеристику, которая получается путем применения обратного ДВПВ от частотной характеристики идеаль- ного фильтра высоких частот. Она определяется выражением </(£) = 5 • я к Импульсная характеристика фильтра с учетом применения обработки окном будет при этом следующей: Л(я) = Мп). (п - М)п Второй член в правой части этого уравнения — это импульсная характеристика фильтра низких частот с таким же значением частоты среза. Отметим, что для одних и тех же значений сос фильтры высоких и низких частот являются комплементарными. То есть /zLp(«) + ^hp(«) = 8(п-М) п - 0,1,...,jV-1 . Пример 6.4. Двухканальный фильтр разделения звукового спектра на каналы (кроссовер). Обычные динамики используют аналоговые кроссоверы с целью разделения аудио- сигнала на низкочастотные и высокочастотные компоненты. Низкочастотный сигнал управляет низкочастотными динамиками (сабвуфером1), а высокочастотные сигналы — высокочастотными динамиками. Системы цифрового звучания используют цифро- вые фильтры с целью выполнения тех же самых операций с входным оцифрованным аудиосигналом. Цифровые сигналы в обоих частотных диапазонах преобразовы- ваются в аналоговые, которые затем усиливаются и подаются на соответствующие элементы звуковой системы (динамики). Пусть частота кроссовера будет 1 кГц. Фильтр низких частот задается следую- 1 С учетом развития систем объемного звука лучше использовать в качестве дополнения термин «сабвуфер». (Прим, пер.)
Разработка фильтров с конечной импульсной характеристикой 151 щими параметрами: /р,„ =800 Hz /„=1200 Hz Л-.=0ИВ 4,„P=60dB. Отметим, что нам необходимо только разработать фильтр низких частот. Фильтр высоких частот будет по отношению к нему комплементарным. Результирующая частотная характеристика фильтра низких и высоких частот показана на рис. 6.27. Фильтр разделения звукового спектра на каналы (кроссовер) для громкоговорителей, N=182 1 Йкй^ г . ГГ Г | '['Г1 тпитрг miriri Ч| 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Приведенная частота Рис. 6.27. Характеристика фильтра разделения звукового спектра на каналы Комплементарная связь между этими двумя фильтрами позволяет создать весьма эффективную реализацию, рис. 6.28.
152 Цифровая обработка сигналов для инженеров и технических специалистов Аудиовход Низкочастотный динамик (сабвуфер1) Высокочастотный динамик Рис. 6.28. Реализация комплеметарной связи между двумя фильтрами Действительно, нам необходим только один фильтр; высокочастотный выход получается путем комбинирования результата низкочастотной фильтрации и вход- ного воздействия, задержанного на Ммоментов отсчета. 6.4.4.4. Разработка полосовых фильтров Рис. 6.29. Типичная спецификация полосового фильтра Типичная спецификация полосового фильтра показана на рис. 6.29. Здесь при- сутствуют две полосы задержки и две полосы пропускания. Конечный вид фильтра будет иметь эквивалентную ширину полосы пропускания. Если эти полосы пропуска- ния в соответствии с исходной спецификацией неэквивалентны, будет использована меньшая из них. Идеальные частоты среза определяются так же, как и для фильтра низких частот: ./ b J pb 2 -/ 1 Здесь также рекомендуется использовать термин «сабвуфер». (Прим, пер.)
Разработка фильтров с конечной импульсной характеристикой 153 Параметры окна могут быть рассчитаны. Импульсная характеристика полосо- вого фильтра определяется выражением sin((«-M)wb)-sin((n-M)coa) /?(«) = w(«)--------------------------- (п- М)п для п = О, 1...2V— 1, где h(M) = со. -со, о а Л Пример 6.6. Пятиполосный графический эквалайзер. Частоты разделения пяти каналов сле- дующие: 3 кГц, 7 кГц, 11 кГц и 15 кГц. Результирующие амплитудные характеристики показаны на рис. 6.30. Фильтры 5-полосного графического эквалайзера Рис. 6.30. Амплитудные характеристики пяти фильтров в графическом эквалайзере
154 Цифровая обработка сигналов для инженеров и технических специалистов Результирующий фильтр высоких частот будет комплементарен по отношению к сумме первых четырех фильтров. Реализация с использованием четырех фильтров показана на рис. 6.31 Переменный Аудиовыход Рис. 6.31. Реализация пятиполосного графического эквалайзера На практике цифровые фильтры, которые используются в графических эква- лайзерах, — это фильтры второго порядка с БИХ. 6.4.4.5. Некоторые примечания Выше был приведен пример применения набора (гребенки) фильтров, в кото- ром входное воздействие разделяется по неперекрывающимся в частотной области полосам. Наборы фильтров широко и эффективно применяются при решении задач кодирования речи — методе, известном как кодирование поддиапазонов. Выходной эффект каждого фильтра квантуется с различным разрешением. Количество исполь- зуемых для этого бит обычно выбирается исходя из психоакустических перцептуаль- ных критериев. В простейшем случае меньшее число бит используется к наименее слышимым полосам частот. В последнее десятилетие был выполнен ряд разработок наборов фильтров. Эти исследования привели к появлению вэйвлет-преобразования и наборов вэйвлет- фильтров, причем активность разработок в этой области не уменьшается и по сей день. Однако эта тема находится за рамками данного вводного курса. 6.4.4.6. Расчет функций Бесселя Для того чтобы закончить обсуждение методов расчета окон Кайзера, мы должны рассмотреть вычисление функции Бесселя. Функция Бесселя нулевого
Разработка фильтров с конечной импульсной характеристикой 155 порядка первого типа может быть определена посредством ее представления ря- дом Фурье: k=0 (х/2/ kl Вычисление /0(х) выполняется пределами интервала, ограниченного парамет- ром формы и при 0<х<р. Ряд Тейлора может быть рассчитан рекурсивными методами до получения тре- буемой точности. Определим неполную сумму как (х/2)* и член: (х/2)” п\ Алгоритм расчета следующий: • инициализация 50=1 Ро=1 • для п > 1 рассчитать (\2 —D 1 2п ) • верхний шаг повторяется для следующего значения п, пока не будет вы- полнено условие sn s-sn, n____n-1 где e — некоторая малая величина (например, 10-9)
156 Цифровая обработка сигналов для инженеров и технических специалистов 6.5. Метод дискретизации в частотной области Метод разработки КИХ-фильтров с использованием окон требует инверсного ДВПФ от требуемой частотной характеристики. В ряде случаев могут быть исполь- зованы непосредственные вычисления, например, при расчете идеальных фильтров низких, высоких частот, а также идеальных полосовых фильтров, однако они могут быть неприменимы при расчете произвольной частотной характеристики, такой, на- пример, которая обозначена в спецификации предмодуляционного фильтра в системе ERMES, который был рассмотрен в предыдущей главе. Вместо того чтобы рассмат- ривать непрерывную частотную характеристику, мы можем рассмотреть ее отсчеты и работать с этим дискретным спектром. Отсчеты требуемой частотной характеристики D(w) берутся на N равномерно отстоящих частотах сок в пределах интервала (0, 2л). Если Nтакже является порядком КИХ-фильтра, который необходимо разработать, то коэффициенты h(n) могут быть определены путем решения системы из Nуравнений j2itnk / N 2Ttk £ = 0,1,...Л-1. Этот подход позволяет обеспечить то, что частотная характеристика КИХ-филь- тра будет проходить через эти отсчеты частоты. Недостатком непосредственного вычисления является сложность расчетов. Решение Nнезависимых уравнений требует порядка N3 арифметических операций. Это может быть несущественным для малых значений Nn неприемлемым при уве- личении N. Вспомним, что соотношение между равномерно отстоящими отсчетами частоты и дискретной во времени импульсной характеристикой определяется посредством ДПФ, обратное ДПФ (ОДПФ) отсчетов частоты даст нам импульсную характеристи- ку. ОДПФ требует всего лишь N2 арифметических операций. В случае если использу- ется БПФ, количество необходимых операций уменьшается до MogTV. 6.5.1. Аналитические соотношения для расчета Явные соотношения могут быть получены для четырех типов КИХ-фильтров с линейной фазовой характеристикой, описанных в разделе 6.3.2. Эти выражения получены путем упрощения формул ОДПФ, используя тот факт, что импульсная характеристика КИХ-фильтра с линейной фазовой характеристикой имеет реальные значения и является симметричной (либо асимметричной). 1йп 1. N— нечетное и М = (N— 1 )/2, где Лк — эквидистантно расположенные отсчеты ДПФ на частотах 2пк £ = 0,1,...Л-1.
Разработка фильтров с конечной импульсной характеристикой 157 Если не включен отсчет на w = 0, то (2£ + 1)л (О, =---------------------- k N и формула для расчета примет следующий вид: k = 0,l,...,N-l, h(n) = — N М-1 У 2 A cos А=0 2n(n - + — N + Ам cos и(п - М) 1йп2. TV—четное. Если известен нулевой отсчет частоты, формула для расчета будет следующей: ,/ ч 1|\ гУ (2п(п-М)к\ ад=—4+22 2^ cos1 1 N N k=l Эта формула практически такая же, как и для фильтров типа 1, за исключением верхнего предела суммирования и того, что ^N/2 ~ О Если нулевой отсчет частоты недоступен, формула для расчета примет вид: h(n) - У N У 24 cos k=Q 2п(п-М)\ k+ - 1 М = 4 + Z24cos 2n(n - M)k k=l N 1 N N Ъш 3. Соотношения расчета для асимметричной импульсной характеристики включают в себя члены с синусоидальными функциями вместо косинусных функций. Эти формулы будут иметь вид 1 Г м E2^sin L к=\ 2ti(M - ri)k N N h(ri) = — N М-1 У 24 sin k=Q 2tz(M-ri)yk + N соответственно для случаев, когда нулевой отсчет частоты известен и неизвестен.
158 Цифровая обработка сигналов для инженеров и технических специалистов Ъш 4. Соотношения для расчета при условии, что N — четное, будут следую- щими: + Ат sin п(М - и) h(n) = — N ЛГ/2-1 L 2Asin k=0 2л(М-и)^ + | 6.5.2. Переходная область Рассмотрим разработку КИХ-фильтра с линейной фазовой характеристикой, аппроксимирующей идеальный фильтр низких частот с полосой пропускания от О до 0,4л (приведенной). Отсчеты частоты определяются соотношением |D(»k)| 1, '.О. к = 0,1,...,Р к = Р + \,...,М, где N= 40, Р= 8. При этом отсчеты ДПФ будут f(-l)*/7V, А =5 к = 0,1,...,Р к = Р + 1,...,М. Выберем расчет фильтра типа 2, так как N четное и отсчет нулевой частоты известен, в результате мы получим КИХ-фильтр с амплитудной характеристикой, представленной на рис. 6.32. Рис. 6.32. Разработанный путем использования отсчетов частоты КИХ-фильтр
Разработка фильтров с конечной импульсной характеристикой 159 Результирующий отклик фильтра будет схож с тем, который мы получили при использовании прямоугольного окна. Величина отклонений относительно велика около границ полос, а минимальная величина подавления не вполне удов- летворительна (около -20 дБ). Причина этого заключается в том, что переходная область слишком узкая. Если будет добавлен отсчет в передаточной области, причем его амплитуда равна половине значения между полосами пропускания и задержки Лр =O.5(-1)P/7V, то величина амплитудного отклика существенно улучшится, что показано на рис. 6.33. Рис. 6.33. Перерасчет фильтра, показанного на рис. 6.32 Подавление в полосе задержки теперь составляет величину порядка -30 дБ. Из- меняя величину Ар, мы можем получить дополнительное улучшение. При 4 = 0.4(-1)р/Л\ может быть достигнуто подавление около -40 дБ. Этот пример показывает, что переходная область имеет большое влияние на результирующие характеристики фильтра. На практике ширина переходной области обычно определяется прочими условиями. Однако если есть свобода выбора, она может быть подобрана с целью оптимального выбора характеристик фильтра для заданной его длины.
160 Цифровая обработка сигналов для инженеров и технических специалистов Пример 6.6. Рассмотрим разработку еще одного фильтра со следующей спецификацией: 1) полоса пропускания: от 0 до 0,08л; 2) полоса задержки: от 0,2л до л; 3) минимальное подавление в полосе задержки 40 дБ. Переходная область в этом случае составляет 0,12 л; минимальное расстояние между отсчетами частоты составляет 0,06 л. Отсюда следует, что длина фильтра бу- дет W>-^ = 34. 0.06л Минимальное расстояние недостаточно, так как полоса задержки начинается с четвертого отсчета (0,18 л). Для того чтобы вставить отсчет на 0,2 л, может быть выбрано расстояние между отсчетами 0,05 л, которое соответствует N= 40, полоса пропускания будет расширена до 0,1 л, и отсчет переходной области будет на 0,15 л. Отсчеты ДПФ определяются соотношением 40 А' 40 4 = -—= -o.oi 3 40 4 = 0 для к > 4. Разработка фильтра типа 2 с отсчетами нулевой частоты приведет к характерис- тике фильтра, показанной на рис. 6.34. Разработанный фильтр соответствует специ- фикации. Рис. 6.34. Характеристика фильтра из примера 6.7
Разработка фильтров с конечной импульсной характеристикой 161 В качестве альтернативы мы можем выбрать вариант не включать нулевой от- счет частоты. При использовании отсчетов, отстоящих на 0,06л, полоса пропускания расширится до 0,09л, но граница полосы пропускания будет на 0,21л, что слишком много. При установке со4 = 3.5Дсо = 0.2л ? где Дсо — это расстояние между отсчетами, мы получим, что Лео- 0.0571л или N> 2л 0.0571л -35. Граница полосы пропускания теперь будет на 0,0857л. Отсчеты ДПФ теперь будут следующими 35 4=-— 4= — 2 35 Лк - 0 для к > 3. Результирующая амплитудная характеристика фильтра показана на рис. 6.35. Все требования спецификации удовлетворены. Рис. 6.35. Характеристика фильтра 6 445
162 Цифровая обработка сигналов для инженеров и технических специалистов Как мы видим, в этом случае более эффективный фильтр (в терминах его длины) может быть получен путем исключения отсчета на нулевой частоте. В общем случае для каждого конкретного расчета нам необходимо рассмотреть альтернативные мето- ды разработки. Путем сравнения можно увидеть, что наиболее эффективно исполь- зовать окна Кайзера с минимальной длиной 38. 6.6. Метод Паркса-МакКлелланда (Parks-McClelland) Ранее в этой главе мы отмечали, что первым шагом в процессе разработки фильтров является аппроксимация. После этого мы обсудили метод дискретизации в частотной области, который, стр<м о говоря, является не методом аппроксимации, а методом интерполяции. В резулыате его применения можно получить фильтр с частотной характеристикой, которая точно проходит через отсчеты частоты, но не ограничена в поведении между этими точками частных отсчетов. Соответственно, мы не можем гарантировать определенное поведение частотной характеристики вне точек отсчетов. Пики и искажения могут возникать на различных элементах характеристик фильтра. Для фильтров низких частот в примере было показано, что ширина переходной области существенным образом влияет на результирующий вид. Путем внимательной оптимизации положения и значений отсчетов в пределах переходной области можно получить более качественный результирующий вид. Вопрос заключается в том, насколько может быть уменьшена величина максималь- ной ошибки h. Ответ на этот вопрос находится в применении метода, который широко ис- пользуется для разработки аналоговых фильтров, — аппроксимация, известная как Чебышевская аппроксимация. Эта аппроксимация при использовании в разработке фильтров минимизирует максимальную ошибку для набора частот. Этот тип фильтра будет иметь одинаковое поведение искажений на всей частотной характеристике. Соответственно, фильтры, которые разработаны с использованием данного метода, называются КИХ-фильтрами Чебышева1. Также эти фильтры называются оптималь- ными и минимаксными фильтрами. Однако для этих фильтров не существует решения в аналитическом виде. Для их получения должны использоваться итеративные алгоритмы. Одним из наиболее эффективных алгоритмов является перестановочный алгоритм Ремеза. Он был раз- работан в начале 1970-х. 6.6.1 • Проблема аппроксимации Типичная спецификация фильтра низких частот, который может быть оптими- зирован посредством аппроксимации Чебышева, показан на рис. 6.36. В полосе задержки максимальное отклонение амплитудной характеристики от постоянной составляет ±8Г В полосе задержки оно составляет ±62 соответственно. 1 Иными словами, фильтр с эквивалентными искажениями. (Прим, пер.)
Разработка фильтров с конечной импульсной характеристикой 163 Рис. 6.36. Типичная спецификация фильтра низких частот для аппроксимации Чебышева Предполагается, что требуемая частотная характеристика фильтра D(co) харак- теризуется нулевой фазой, что означает, что эта характеристика — реальная функция. Форма окончательной частотной характеристики фильтра будет определяться вы- ражением н (to) = 2(oj)^A(A:)cos^^^ где 2(«) = cos (со/2), sin®, sin (о /2), для фильтра типа 1 для фильтра типа 2 для фильтра типа 3 для фильтра типа 4 Проблема аппроксимации заключается в минимизации максимального значе- ния взвешенной функции ошибки ||£(<о)|| = max FK(co) |£>(<о) - Н(со)|. для всех Л(к) путем выбора удовлетворительной Н(со). Здесь Q — это рассматриваемый диапазон изменения частоты, равный [0, л]. W(co) — это определенная пользовате- лем взвешивающая функция, которая позволяет установить большую точность для 6*
164 Цифровая обработка сигналов для инженеров и технических специалистов определенных интервалов в частотной области. Например, нулевой вес может быть использован для частот, находящихся в переходной области, в результате чего форма характеристики фильтра в этом регионе не будет влиять на характеристики в полосе пропускания и полосе задержки, которые являются намного более значимыми. 6.6.2. Решение с эквивалентными искажениями Решение приведенной выше проблемы аппроксимации может быть найдено посредством использования теоремы, которая в теории аппроксимации известна как теорема о знакопеременное™. Она утверждает, что результат будет оптимален с точки зрения минимальных искажений, если и только если существует по крайней мере 2V/2+2 или (N-1 )/2+2 экстремумов (для четного и нечетного 7Vсоответственно) равномерно взвешенных амплитудных значений и чередующиеся знаки в полосах пропускания и задержки. Эти экстремумы называются чередующимися. Рис. 6.37. КИХ-фильтр длиной 13, с равномерными искажениями На рис. 6.37 показано решение для КИХ-фильтра длиной 13 и с равномерными искажениями. Так как N= 13, число экстремумов будет 8. Эти восемь экстремумов также показаны на рисунке. Необходимо отметить, что решение, наилучшее с точки зрения эквивалентности искажений, будет единственным. Для заданного набора спецификаций неединствен- ное наилучшее решение может иметь большее, чем указанное выше, число экстрему- мов. Пусть N будет четным и r= (7V/2+2). Если единственный возможный наилучший фильтр имеет г + 2 экстремумов, то не может быть другого фильтра с количеством
Разработка фильтров с конечной импульсной характеристикой 165 экстремумов г + 1 или г для того же набора спецификаций. Другими словами, исполь- зование чебышевской аппроксимации гарантирует оптимальное решение. Теорема о знакопеременное™ полезна по той причине, что помогает нам найти форму оптимального решения в таком виде, который может быть принят сразу же после ее нахождения. Но она не говорит нам, каким образом необходимо достичь оптимального решения. Один из подходов заключается в определении частот экстре- мумов. Как только найден экстремум, коэффициенты фильтра могут быть определе- ны посредством использования метода частотной дискретизации. При этом задача разработки фильтра становится задачей нахождения экстремумов для данного набора спецификаций. Перестановочный алгоритм Ремеза является одним из эффективных алгоритмов, предназначенных для поиска этих экстремумов. 6.63. Перестановочный алгоритм Ремеза Для заданного фильтра порядка /Умы не знаем заранее минимального значения искажений 8} и 82, которое может быть достигнуто. Таким образом, они являются до- полнительными переменными, помимо коэффициентов фильтра, которые должны быть определены. Есть два основных пути сделать это. Паркс и МакКлелланд предложили использовать весовой коэффициент К для спецификации полосы задержки таким образом, что К82 = 8, =8 Таким образом, вместо двух переменных при определении коэффициентов фильтра нам необходимо найти только одну 8. Она определяется интегративно для заданного порядка фильтра. Если требования спецификации не удовлетворяются, то порядок фильтра увеличивается, и процесс оптимизации повторяется снова. Еще одним методом, предложенным Херси (Hersey), Льюисом (Lewis) и Тафтсом (Tufts), является использование того, что 8 должна быть равна 8t либо 82. При этом в алгоритме присутствует только одна дополнительная переменная, но ограничения для полосы пропускания и полосы задержки будут выполнены точно. Перестановочный алгоритм Ремеза использует тот факт, что функция ошибки дм Е’(со) = Z)(co) - h(k) cos ксо к=0 при 0 < со < л: всегда принимает значения ±8 для заданного набора из (N + 1) приве- денных значений частот, записываемых как со^ для w = 1,2,..., N+ 1. В результате мы получим набор линейных уравнений N-\ D(<om) = £/?(&) cos + (-l)w 8 т = 1,2,...,N +1. к=0 Мы имеем 7V+ 1 уравнений с 7V+ 1 неизвестными (N коэффициентов фильтра и амплитуда искажений), то есть мы можем найти решение. Если частота экстремума слт известна, то выражения могут быть достаточно просто получены, и нет необходи- мости в итерациях. Очевидно, что алгоритм не может работать с непрерывным множеством частот даже в пределах интервала Найквиста. Паркс и МакКлелланд предложили использо-
166 Цифровая обработка сигналов для инженеров и технических специалистов вать набор эквидистантно расположенных частот с общим числом, примерно в 10 раз превышающим порядок фильтра. Так как число частот больше АН-1, мы не можем получить прямое решение набора уравнений, приведенных выше. Перестановочный алгоритм Ремеза вначале использует пробный набор частот и систематично осущест- вляет перестановку, пока не будет найден набор частотных экстремумов. Перестановочный алгоритм Ремеза. • Выбрать начальный набор из ЛЧ-1 частот: • Решить систему линейных уравнений для T(z). Функция ошибки имеет значение 8(0 для каждой z-й итерации. • Найти частотную характеристику полного набора частот. • Определить по всему набору частот наличие превышения величиной ошибки значения, полученного на втором шаге. Если такого значения не существует, остановиться. • Обновить набор пробных частот из 7V4-1 частот, где ошибки имеют мак- симальное значение для всего набора частот: • Повторить со второго шага. Необходимо отметить, что в предыдущих рассуждениях мы предполагали, что взвешивающая функция W(co) постоянна на всех частотах. Однако эти результаты справедливы для общей положительно определенной взвешивающей функции. 6.6.4. Соотношения для разработки Для фильтров низких частот Кайзер разработал ряд эмпирических выражений, которые помогают в оценке порядка фильтра, необходимого для удовлетворения заданному набору спецификаций Л, -101og,0(8,8,) ' , 14.6А/ где А/ — приведенная полоса переходной области, определяемая выражением: 2л а сор, cos — границы полосы пропускания и полосы задержки соответственно. Это выражение дает достаточно хорошую оценку, если ширина полосы не является ни слишком широкой, ни слишком узкой. Для фильтров с очень узкими полосами пропускания порядок фильтра опреде- ляется поведением в полосе задержки, и для его расчета может быть использовано следующее соотношение: N_ 0.22-201og1082/27 А/
Разработка фильтров с конечной импульсной характеристикой 167 Для фильтров с очень широкой полосой пропускания, таких, например, как узкополосный режекторный фильтр, может быть использовано следующее выраже- ние: у 0.22-20^8^27 А/ Более точная оценка может быть получена посредством применения выраже- ,, /(8„8;)-g(8„62)(A/)2 А/ где /(5,, 5 2) = (0.005309х2 + 0.07114х, - 0.4761)х2 - (0.00266Х2 + 0.5941х, + 0.4278) g(5„52) = 11.012+0.51244(x1-x2) И *1 = 1°ё1051 Х2 = 10810 2 ' Пример 6.7. Разрабатывается КИХ-фильтр низких частот путем применения перестановоч- ного алгоритма Ремеза, параметры фильтра следующие: • полоса пропускания 0 — 0,66 л; • полоса задержки 0,74 п — л; • 5=52=1. На рис. 6.38 и 6.39 показаны характеристики фильтров нечетной и четной длины, которые удовлетворяют требуемым спецификациям. Рис. 6.38. Характеристика фильтра нечетной длины
168 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 6.39. Характеристика фильтра четной длины Для фильтра с длиной 21, как и предполагалось, присутствуют 12 экстремумов, включая две границы полос. Отметим, что одна из этих границ полос всегда будет частотой экстремума, но не обязательно ею будут обе. Частотная характеристика не является нулевой ни на частоте со = 0, ни на частоте со = л. Фильтр с четной длиной имеет несколько меньшую результирующую ошибку, чем фильтр с длиной 21. Присутствуют 11 экстремумов. Так как это фильтр типа 2, всегда будет присутствовать нулевое значений в точке со = л. Далее мы разработаем два полосовых фильтра с длиной 21. Их спецификация следующая: • полоса пропускания: 0,36 л — 0,66 л; • полоса задержки: 0 — 0,28 л и 0,74 л — л; • две переходные области идентичны и такие же, как и в предыдущем при- мере для фильтра нижних частот. Амплитудная характеристика показана на рис. 6.40. Если спецификация будет изменена до следующей: • полоса пропускания: 0,5 л — 0,74 л; • полоса задержки: 0 — 0,16 л и 0,8 л — л., то переходные области будут разными. Полученный в результате фильтр с длиной 21 будет иметь ошибку, которая незначительно больше, чем в предыдущем случае с рав- ными переходными областями. В результате исследования амплитудной характерис- тики фильтра (рис. 6.41) мы видим, что ее поведение является удовлетворительным в пределах полосы пропускания и полосы задержки. Но поведение в пределах одной из переходных областей является полностью неудовлетворительным. Рассмотрим более подробно.
Разработка фильтров с конечной импульсной характеристикой 169 Рис. 6.40. Амплитудная характеристика полосового фильтра с длиной 21 Рис. 6.41. Характеристика полосового КИХ-фильтра с длиной 21
170 Цифровая обработка сигналов для инженеров и технических специалистов Один из способов уменьшения вероятности возникновения пиков в пределах переходной области — в вычислении N -101ogl„(8,8;)-B । ] 1 14.6Л/, N -101og„,(828,)-13 ' t 2 14.6Д/; где А/ и A/2 - размер двух переходных областей. Если N2 > Nx то А/ может быть уменьшена путем сдвига границы полосы задерж- ки ближе к границе полосы пропускания таким образом, чтобы N{ было примерно равно Nr В качестве альтернативного метода мы можем использовать взвешивающую функцию с целью управления максимальной ошибкой в переходной области. Однако требуемая величина взвешивающей функции обычно определяется эксперименталь- но, путем проб и ошибок. Наиболее удобный способ управлять поведением характеристики в переходной области — это использовать метод линейного программирования. 6.7. Метод линейного программирования Один из наиболее современных подходов к разработке КИХ-фильтров с линей- ной фазовой характеристикой — это использование известного метода линейного программирования. В этом случае требуемая частотная характеристика состоит из двух частей: верхний предел функции и нижний предел функции. Для заданного на- бора точек (приблизительно в 10 раз превышающего порядок фильтра) ограничения определяются так: Я(сок) + х< t/(cok) Я(сок)-х>Л(сок) или -Я(сок) + х<-Л(сок)? где U и L — верхний и нижний пределы функции соответственно, х — параметр, кото- рый представляет собой расстояние между верхней и нижней границами, х может быть равен нулю в случае, если допускаем, что результирующая характеристика фильтра будет «прижиматься» к одному из значений этих пределов функции. В противном случае алгоритм будет максимизировать х. При таких ограничениях мы получим проблему в рамках линейного програм- мирования: махх по отношению к CTh + ах < b . Матрица С определяется по дискретизованным тригонометрическим функциям. Вектор h содержит коэффициенты фильтра. Вектор Ь содержит пределы (или гра- ницы), а вектор а является единичным, когда используется параметр х, и нулевым, когда он не используется. Переменные h и х не ограничены в знаке. Это называется прямой задачей.
Разработка фильтров с конечной импульсной характеристикой 171 Форма, более удобная для численного решения, является сопряженной по от- ношению к прямой задаче: min ЬТ у , по отношению к Су = 0, аТу = 1, и у > 0. Используя достаточно хорошо известный симплексный метод, мы можем легко решить эту сопряженную задачу. Алгоритм будет прерван при выполнении одного из следующих условий: • получена «отрицательная стоимость», которая означает, что исходная проблема разработки неосуществима; • оптимальное решение получено с «неотрицательной стоимостью», а, следовательно, существует решение проблемы разработки; • сопряжение неограниченно, что означает невозможность получения ре- шения прямой задачи; • сопряжение невозможно, что означает, что прямая задача не может быть решена либо она является неограниченной. 6.8. Примеры разработки Этот подход внедрен в компьютерную программу METEOR, которая является общедоступной. Разработка фильтра низких частот с использованием METEOR и полученный результат приведен на рис. 6.42. Непрерывные линии — это границы. Рис. 6.42. Результат разработки фильтра низких частот с использованием программы METEOR На рис. 6.43 показана амплитудная характеристика для полосового фильтра длиной 25 с неравными размерами переходных областей.
172 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 6.43. Результат разработки полосового фильтра длиной 25 с использованием программы METEOR Это решение точно такое же, как и полученное с использованием метода Паркса — МакКлелланда. Поведение в первой переходной области неприемлемо. Проблема может быть устранена путем перемещения верхнего предела на первую переходную область. Результирующая характеристика фильтра показана на рис. 6.44. Рис. 6.44. Ограничение всплеска в первой переходной области
Разработка фильтров с конечной импульсной характеристикой 173 Более приемлемый вид характеристики может быть получен путем изменения полосы задержки, что будет схоже с решением, полученным ранее. 6.9. Дальнейшие исследования Мы рассмотрели разработку только КИХ-фильтров с линейной фазовой ха- рактеристикой. Очевидно, что также могут быть разработаны и КИХ-фильтры с нелинейной фазовой характеристикой. В основном, это будет означать, что требуе- мая частотная характеристика не будет реальной, а будет комплексной. В результате процесс оптимизации будет более сложным. Этот процесс был предметом многих исследований в 1980-х и в результате привел к появлению ряда эффективных методов. Однако они находятся за пределами рассмотрения данного курса. Заинтересованные читатели могут просмотреть технические статьи, которые были опубликованы за последние годы, например, в журналах IEEE по обработке сигналов. Еще одной интересной темой в рамках разработки фильтров является разработка блоков фильтров. Блоки фильтров оказались весьма полезными в обработке сигналов и, в частности, в сжатии изображений и речи. Отдельный класс блоков фильтров, именуемых идеальными восстановителями (БФИВ) либо идеальными реконструк- торами, гарантирует, что восстановленный сигнал будет точно таким же, как тот, который подвергся декомпозиции. Эти блоки фильтров, как оказалось позже, были непосредственно связаны с теорией вэйвлет-преобразований. Вэйвлет-преобразо- вания являются, по существу, преобразованиями Фурье, которые лучше передают локальное поведение. Так как преобразование Фурье интегрирует (либо суммирует) данные по всей временной оси (от плюс бесконечности до минус бесконечности), вся локальная (во временной области) информация будет потеряна. Оно, по существу, выполняет «усреднение» во времени. Если локальное поведение достаточно важно, может быть использовано вэйвлет-преобразование. Эта область все еще остается одной из самых активных в смысле проведения исследований, а соответствующие технические статьи появляются достаточно регулярно в большинстве ведущих науч- ных журналов.
7 Разработка фильтров с бесконечной импульсной характеристикой Фильтры с бесконечной импульсной характеристикой (БИХ-фильтры) имеют импульсную характеристику, которая является бесконечной во временной области. Этим они отличаются от импульсной характеристики КИХ-фильтров, для которой только конечное число отлично от нуля. Отношение между входом и выходом БИХ- фильтра определяется рекурсивной формулой: N М у(п) = а(к)У(п ~ к) + X ь(к)х(п ~ к) к=1 к=0 Текущий выходной отсчет рассчитывается на основании значений предыдущих М входных отсчетов и текущего входного плюс предыдущих N выходных отсчетов. Второй член в правой части формулы имеет такой же вид, как и у КИХ-фильтров. Первый член является обратной связью или рекурсивной частью в уравнении, он имеет окончательное влияние на характеристики последнего импульса, по крайней мере, с теоретической точки зрения. Именно поэтому БИХ-фильтры называют также рекурсивными фильтрами. Я«) = ^h(k)x(n-k). к=0 Так как БИХ-фильтры являются линейными системами, выход и вход связаны суммой типа свертки. Что действительно отличает их от КИХ-фильтров, так это то, что верхний предел суммирования является бесконечным, так как импульсная характеристика Ь(и) имеет бесконечную длительность. Очевидно, что расчеты с использованием суммы в виде свертки являются непрактичными. Рекурсивные отношения, показанные в первом уравнении, являются более эффективными и практичными. При непосредственном вычислении они требуют N— М+\ умножений и N+Mсложений. Сначала мы обсудим характеристики БИХ-фильтров, причем основное вни- мание уделим взаимосвязи рекурсивного выражения с его спектральной характе- ристикой. Однако прежде всего мы рассмотрим методы разработки БИХ-фильтров.
Разработка фильтров с бесконечной импульсной характеристикой 175 Наиболее типичный подход к проблеме аппроксимации БИХ-фильтров — класси- ческая аппроксимация аналоговыми фильтрами. По этой причине мы рассмотрим аппроксимацию аналоговыми фильтрами. Формулы разработки фильтров даны до- статочно подробно, а относительно большое число уравнений, которые приведены в дальнейших разделах, не должно вызвать трудностей у читателя, они включены для полноты изложения. Можно определить соответствующие формулы и по мере необходимости вос- пользуемся ими. 7.1. Характеристики БИХ-фильтров Как мы уже увидели, входной и выходной отсчеты БИХ-фильтра соотносятся посредством рекурсивного уравнения N М у(п) = a(k)у(п - к} + Ь(к)х(п - к) . Л=1 *=о Уравнение может быть приведено к виду N М X а(к)у(п -к} = ^ Ь(к)х(п - к) к=0 к=0 при а(0) = 1. Также мы можем записать его в следующем виде: N М 22 а(к) = 22 £(£) [Лоо] , к=\ £=0 где Z'1 рассматривается в качестве оператора единичной задержки, то есть задержки на интервал одного отсчета. Отсюда следует, что z~kx(ri) = х(п-к). В этом случае мы можем определить передаточную функцию при помощи z- H(z) = Я») х(и) м _ *=0 22«(£я~* к=Ъ b(Q) + b(l)z~} +--- + b(M)z~M 1 + a(l)z~l + 67(2)z’2 + • • • + a(N)z~N ’ который является коэффициентом для двух многочленов.
176 Цифровая обработка сигналов для инженеров и технических специалистов Читателю необходимо обратить внимание на то, что данное объяснение пере- даточной функции цифровой системы не имеет четкой аналитической формулиров- ки, но это, возможно, самый близкий для понимания путь получения необходимой передаточной функции. Одним из наиболее подходящих путей для этого является Z-преобразование. Однако мы не будем подробно рассматривать Z-преобразование в этом курсе. Заинтересованные читатели могут обратиться к учебникам по ЦОС или линейным системам, дискретным во времени. Мы же лишь рассмотрим некоторые аспекты Z-преобразования. Здесь достаточно упомянуть, что z обычно является комплексной переменной, и, таким образом, многочлены также являются сложными. Частотная характеристика Я(со) связывается с H(z) посредством выражения принимая во внимание, что период дискретизации приведен к одной секунде. Под- становка этого выражения в формулу для H(z) даст нам нормализованную характе- ристику фильтра. В отличие от КИХ-фильтров в БИХ-фильтрах невозможно получить строго линейную фазовую характеристику. Это вызвано тем, что линейность фазовой ха- рактеристики подразумевает, что импульсная характеристика фильтра должна быть симметричной. В соответствии с выражением для связи между входным и выходным эффектами в БИХ-фильтре можно увидеть, что невозможно получить импульсную характеристику, которая равна нулю для к < 0 и не равна нулю для к от нуля до бес- конечности. Тем не менее, существуют БИХ-фильтры с фазовой характеристикой, близкой к линейной. Фильтры с линейной фазовой характеристикой позволяют не учитывать фазо- вые характеристики в процессе разработки. Как мы уже убедились при рассмотрении КИХ-фильтров с линейной фазовой характеристикой, проблема аппроксимации от- носится к действительным значениям и поэтому относительно легко решается. Так как БИХ-фильтры не позволяют обеспечить строгую линейность фазовой харак- теристики, их разработка связана с большим количеством сложностей. Уравнения, которые необходимо решить в общем случае, являются нелинейными. В этом случае необходимо применить методы комплексной оптимизации. Большая часть типичных методов разработки основывается на том, что фазовая характеристика не столь важна и аппроксимирует исключительно амплитудную характеристику. В случае если вид фазовой характеристики не имеет значения, то для одной и той же спецификации амплитудной характеристики необходимый порядок БИХ-филь- тров обычно ниже, чем у КИХ-фильтров. Это определенно является преимуществом, так как более низкий порядок фильтра предполагает более низкие вычислительные затраты и меньшую задержку. 7.2. Обзор классических аналоговых фильтров Аппроксимация аналоговых фильтров довольно давно и активно изучается. На- коплено достаточно большое количество информации по данному вопросу. Одним из наиболее успешных подходов к разработке цифровых БИХ-фильтров является использование этих хорошо известных методов. Этот подход показан на рис. 7.1.
Разработка фильтров с бесконечной импульсной характеристикой 177 Рис. 7.1. Один из подходов к разработке БИХ-фильтров Проблема аппроксимации цифровых фильтров является эквивалентом про- блемы аппроксимации аналоговых фильтров. Эта проблема разработки аналоговых фильтров решается с использованием хорошо известных методов. Результирующая импульсная характеристика аналогового фильтра затем преобразуется в цифровой вид, и мы, таким образом, получаем передаточную функцию цифрового фильтра и коэффициенты фильтра. Поэтому в этом разделе мы рассмотрим наиболее типичные методы аппрокси- мации аналоговых фильтров. Стандартными считаются четыре функции аппрокси- мации: Баттерворта, Чебышева, обратная Чебышева и эллиптическая функции. Они представлены в рамках приведенного фильтра низких частот. Этот фильтр может в дальнейшем при необходимости преобразовываться в фильтр высоких частот или в полосовой фильтр. 7.2.1. Функция Баттерворта Для фильтров и-го порядка аппроксимация квадрата от амплитудной характе- ристики функцией Баттерворта определяется следующим выражением: Константа с определяет, на какой частоте w произойдет переход с полосы пропус- кания к полосе задержки. Для приведенных фильтров Баттерворта эта точка находится в со = 1 и, таким образом, при с = 1. Эта частота также связана с частотой среза. На рис. 7.2 показаны амплитудные характеристики нескольких фильтров Баттерворта различного порядка. Фильтры Баттерворта также называют фильтрами с максимально плоской харак- теристикой, поскольку характеристика при со = 0 и со = оо является абсолютно плоской (или горизонтальной). На таких частотах характеристика фильтра Баттерворта очень близка к идеальной. Плоской характеристики в пределах полосы пропускания и по- лосы задержки можно достичь за счет ширины переходной области, которая значи-
178 Цифровая обработка сигналов для инженеров и технических специалистов тельно больше, чем при других классических аппроксимациях. Спад характеристики при переходе от полосы пропускания к полосе задержки относительно медленный, а фазовая характеристика в окрестности частоты среза является нелинейной. На других частотах фазовая характеристика имеет сглаженный характер. Рис. 7.2. Амплитудные характеристики фильтров Баттерворта При заданной функции квадрата от амплитудной характеристики передаточная функция фильтра Баттерворта может быть найдена стандартными методами, которые здесь мы не будем рассматривать. Самым важным этапом разработки фильтра Бат- терворта является определение порядка фильтра, необходимого для удовлетворения требованиям технических спецификаций. Если порядок фильтра определен, то коэф- фициенты фильтра можно довольно просто определить, выполнив соответствующий расчет или обратившись к таблицам. Ряд хороших ссылок по аналоговым фильтрам представлен в последнем разделе этой главы. Типичная спецификация амплитудной характеристики фильтра, который необ- ходимо разработать, показана на рис. 7.3. Порядок фильтра Баттерворта, необходи- мого для удовлетворения спецификации, определяется выражением login М In М п >-------=------, log10Q InQ где % /10° ^-1 M = J—оТТ----- V10 р -1 и X, X выражаются в децибелах (дБ).
Разработка фильтров с бесконечной импульсной характеристикой 179 Рис. 7.3. Типичная спецификация амплитудной характеристики Пример 7.1. Определить порядок фильтра Баттерворта, который отвечает следующим спе- цификациям: сор = 1 рад/с (os= 1.3 рад/с К=22дБ Кр = З.О1ОЗ дБ Решение: Используя приведенные выше выражения, получим: 1.3 1.0 I 1022 -1 М = —=12.5495 V 10 1 яа 10(115495) =9 641,. 1п(1.3) То есть нам необходим фильтр Баттерворта, по меньшей мере, 10-го порядка. Характеристика и спецификации фильтра показаны на рис. 7.4.
180 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 7.4. Характеристика фильтра Баттерворта 10-го порядка 7.2.2. Аппроксимация Чебышева Несмотря на то что фильтр Баттерворта обладает рядом положительных свойств, он не дает достаточно хорошего уровня аппроксимации на границе полосы пропус- кания. Спад характеристики при переходе от полосы пропускания к полосе задержки обладает относительно малой крутизной. Таким образом, для фильтров, имеющих узкую переходную область, требуется фильтр Баттерворта очень высокого порядка. Если приложение, В котором будет использован фильтр, допускает наличие всплесков в полосе пропускания, то аппроксимация Чебышева решит ряд упомя- нутых выше проблем, с которыми не справляются фильтры Баттерворта. Квадрат от амплитудной характеристики для фильтров Чебышева имеет следующий вид: И<»)|2 = 1 1 + е2С^(со) где С^со) — многочлен Чебышева N-ro порядка и в — параметр, характеризующий размер всплесков. На рис. 7.5 показана амплитудная характеристика фильтров Че- бышева различного порядка, но одинаковым 8. Мы уже встречались с аппроксимацией Чебышева при разработке КИХ-филь- тров в предыдущей главе. Многочлен Чебышева TV-го порядка определяется пос- редством формулы Сл(со) = cos(hcos~’ со) при 0<(0<1 при со> 1 .
Разработка фильтров с бесконечной импульсной характеристикой 181 Рис. 7.5. Амплитудная характеристика фильтров Чебышева Другими словами, эти многочлены можно рекурсивно определить выражением С](со) - со С2(ы) = 2о?-1 Ся+1(со) = 2(оСй((о)-С„_1((о). На рис. 7.6 показаны некоторые из этих многочленов при —1 < со < 1. Рис. 7.6. Функции многочлена Чебышева
182 Цифровая обработка сигналов для инженеров и технических специалистов Эти многочлены имеют следующее свойство: 0<С^(со)<1 при 0 <со< 1 С^(со)>1 при со>1 То есть они осциллируют между +1 и -1 при — 1 < cd < 1 и монотонно возрастают за пределами данного интервала. По отношению к КИХ-фильтрам аппроксимация Чебышева минимизирует мак- симальную ошибку в полосе пропускания и является в этом смысле оптимальной. Порядок N фильтра определяет ширину переходной области и число колебаний в пределах полосы пропускания. Разработка фильтров Чебышева включает определение как порядка N, так и параметра 8. Мы обратимся к рис. 7.3 в качестве общей спецификации для фильтров низких частот. Процедура заключается в следующем. Максимально допустимая вариация полосы пропускания — это абсолютное зна- чение d или Кр, выраженное в децибелах <7 = 1-10 “Ау/2°. Рассчитать 8 по значениям d или а. Kp=101og(l + £2) d = \- £- 2б/ d\ =Vio*°/lo-i. }l-2d + d2 Порядок фильтра N определяется следующими формулами: Q = — % м = .——------- VIO01^ -1 ,r cosh-1 М cosh Q Пример 7.2. Определить фильтр Чебышева, который удовлетворяет следующей специфика- ции для фильтра низких частот: <ор = 1 рад/с ®= 1.3 рад/с К=22дБ Кр = 3.0103 дБ
Разработка фильтров с бесконечной импульсной характеристикой 183 Эта спецификация аналогична той, что была представлена в примере к фильтру Баттерворта. Решение: Путем замены соответствующих чисел в формулы для разработки фильтра мы имеем Q = 1.3 М = 12.5495 cosh4 12.5495 3.2212 и nror N >---------j-----=--------= 4.2585. cosh’11.3 0.7564 Таким образом, минимальный порядок фильтра Чебышева составляет 5 при всплесках в пределах полосы пропускания около 3 дБ. Характеристика и ограничи- вающие условия фильтра показаны на рис. 7.7. Рис. 7.7. Характеристика фильтра 7.2.3. Обратная аппроксимация Чебышева Альтернативой аппроксимации Чебышева является обратная аппроксимация Чебышева. Само название подразумевает, что поведение частотной характеристи- ки обратно аппроксимации Чебышева. Обратный фильтр Чебышева имеет плоскую характеристику в пределах полосы пропускания и всплески в пределах полосы за- держки.
184 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 7.8. Характеристики обратного фильтра Чебышева Квадрат от амплитудной характеристики для нескольких фильтров различного порядка показан на рис. 7.8. Квадрат от амплитудной характеристики для фильтров TV-го порядка определяется выражением |Я(о))|2 £2С^(1/оЛ 1 + £2С2 (1/со) Процедура разработки аналогична процедуре для фильтров Чебышева, за ис- ключением того, что формулы несколько отличаются. Формулы для разработки пред- ставлены ниже К, = 101og[ 1 + 4 I \ J 1 £~ 10° щ -1 cosh”1 ^(1001А'-1)/(1001А;’-1) cosh”1 (1/сОр)
Разработка фильтров с бесконечной импульсной характеристикой 185 Пример 7.3. Определить порядок обратного фильтра Чебышева, который удовлетворяет сле- дующей спецификации: сор = 0,5 рад/с со = 1 рад/с К =0,5 дБ К =18 дБ Решение: Путем прямой подстановки соответствующих значений в формулу разработки для Nmbi имеем: cosh4 22.5589 _ 3.8088 _ _ оп., --------;----—--------— 2.8921 . cosh’12 1.3170 Достаточно применения фильтра третьего порядка. На рис. 7.9 показаны харак- теристика и ограничивающие условия для фильтра. Рис. 7.9. Характеристика обратного фильтра Чебышева третьего порядка
186 Цифровая обработка сигналов для инженеров и технических специалистов 7.2.4. Эллиптическая функция Для любого набора спецификации низкочастотных фильтров эллиптический фильтр является наиболее эффективным в том смысле, что в сравнении с тремя рас- смотренными ранее аппроксимациями фильтра он требует фильтр самого низкого порядка, как показано на рис. 7.3. Он имеет одинаковые всплески на полосе пропус- кания и полосе задержки. Амплитудная характеристика некоторых эллиптических фильтров показана на рис. 7.10. Рис. 7.10. Характеристика эллиптического фильтра Разработка эллиптического фильтра значительно более сложная по сравнению с соответствующей процедурой для фильтров Баттерворта и Чебышева. Его квадрат от амплитудной характеристики определяется уравнением |Я(<о)|2 1 1 + £2Я>)’ которое имеет тот же вид, что и для фильтра Чебышева, с той разницей, что Rn - это рациональная функция с многочленами в числителе и знаменателе. Эта рациональная функция называется рациональная функция Чебышева. Аналитически она основана на так называемых эллиптических функциях Якоби и является самой сложной из всех функций аппроксимации, которые мы до этого рас- сматривали. Поэтому мы не будем глубоко вдаваться в теорию, а просто приведем фор- мулу, необходимую для того, чтобы определить порядок эллиптических фильтров.
Разработка фильтров с бесконечной импульсной характеристикой 187 На рис. 7.3 мы снова обращаемся к спецификации общего фильтра низких час- тот. Для того чтобы определить порядок фильтра N, необходимо вначале рассчитать величины: П = — % |10° ‘^-1 М = А гПг------ \ 10° ‘*’-1 С(М) = —^—г\ 1 + —I 16Л/Ч гм2) Порядок фильтра определяется следующим выражением N > FE(C)FE(D), где Fe(x) = —1п(х + 2х5 + 15х9). П Пример 7.4. Определить порядок эллиптического фильтра, необходимого для удовлетворе- ния спецификации, данной в примерах в разделе 7.2.1 и 7.2.2. Решение: С предыдущего примера мы знаем, что 0 = 1.3 М = 12.5495. Теперь мы применим эти величины для вышеописанного уравнения, чтобы получить: С(Л/) = 0.0003981 D(O) = 0.03275 Fe(C) = -ln(0.0003981) = -2.4920 П Fe(D) =—1пГо.03275 + 2(0.03275)51 = -1.0883 л L J N > (-2.4920)(-1.0883) = 2.7119.
188 Цифровая обработка сигналов для инженеров и технических специалистов Таким образом, данным спецификациям удовлетворяет фильтр третьего поряд- ка, в то время как для удовлетворения этих же спецификаций требуются фильтры Баттерворта 10-го порядка и фильтр Чебышева 5-го порядка. Характеристики всех трех фильтров показаны на рис. 7.11. Рис. 7.11. Сравнение нескольких видов фильтров Обратите внимание на то, что эллиптические фильтры также называются филь- трами Кауэра и рациональными фильтрами Чебышева. 7.3. Разработка БИХ-фильтров из аналоговых фильтров Одним из самых эффективных способов разработки БИХ-фильтров является осуществление этой операции с помощью аналоговых фильтров. Этот подход показан на рис. 7.1. Спецификации амплитудной характеристики цифрового фильтра пере- носятся в аналогичные спецификации для аналогового фильтра. Этот аналоговый фильтр разрабатывается с использованием методов аппроксимации, которые были рассмотрены в предыдущем разделе. После этого соответствующее преобразование позволяет конвертировать аналоговый фильтр в цифровой БИХ-фильтр.
Разработка фильтров с бесконечной импульсной характеристикой 189 Большинство шагов производятся так же, как указано выше. Единственный шаг, который требует дополнительного осмысления, — это преобразование анало- гового фильтра в цифровой. Был предложен ряд методов, однако здесь мы обсудим два наиболее распространенных. Они называются импульсная инвариантность и билинейное преобразование. 7.3.1 • Метод импульсной инвариантности Положим, На((л) — это передаточная функция аналогового фильтра, который будет разрабатываться. Импульсная характеристика этого фильтра ha (t) может быть получена путем преобразования Фурье. Идея метода импульсной инвариантности заключается в том, что импульсная характеристика цифрового фильтра h(n) — это дискретизованная версия ha (t). Таким образом, h(n) = h(«T), где Т — период дискретизации. Как уже обсуждалось во 2-й главе, амплитудный спектр дискретизованного сигнала — это периодическое продолжение исходного спектра аналогового сиг- нала. Таким образом, амплитудная характеристика цифрового фильтра является периодической с периодом^ = 1/Т. Аналитически это можно выразить посредством выражения 1 к=-ъ j((o-2nk) Т Несмотря на то что метод импульсной инвариантности сохраняет форму импуль- сной характеристики, частотная характеристика может очень сильно отличаться от ожидаемой. Это происходит потому, что полоса задержки амплитудной характерис- тики не спадает до уровня нуля при со = л. Это означает, что Я(со) будет версией Я(со) с наложением спектров в силу периодической структуры отклика. Это показано на рис. 7.12. |Н(ф)| Рис. 7.12. Эффект дискретизации аналоговой характеристики
190 Цифровая обработка сигналов для инженеров и технических специалистов Затухание в полосе задержки версии Я(со) с наложением спектров может быть недостаточным для удовлетворения спецификаций исходного фильтра, что может привести к тому, что разработка окажется абсолютно бесполезной. Поэтому сначала нам следует убедиться, что Я(со) с учетом наложения спектров достаточно мала. Это также влияет на полосу пропускания, но обычно эффект в этом случае значительно меньше, чем для полосы задержки. Для того чтобы решить эту проблему, можно ис- пользовать достаточно высокую частоту дискретизации, так как чем выше частота дискретизации, тем меньше будет ошибка, представленная наложением спектров. По этой причине фильтры Баттерворта и Чебышева больше подходят в случае, если применяется метод импульсной инвариантности. Причиной этому является тот факт, что у обоих фильтров отсутствуют всплески в полосе задержки, а отклик в этой области монотонно возрастает. Передаточная функция аналогового фильтра может быть выражена с помощью элементарных дробей посредством выражения n is Яа(со) = ^^, ,=1 где s. — в общем случае комплексное значение. На самом деле оно обычно дается на основании использования переменной s: N ъг 15) S-Sj Для тех читателей, которые знакомы с преобразованием Лапласа, переменная s обычно используется в области преобразования Лапласа. Те, кто не знаком с пре- образованием Лапласа, могут просто полагать, что s — это комплексная переменная, которая называется переменной комплексной частотой. Обычная частотная харак- теристика в обозначениях реальной частотной переменной со может быть получена из любой функции H(s) путем использования следующей замены: 5 =>С0. Если не вдаваться в аналитические расчеты, то мы должны просто выразить отношение между передаточной функцией цифрового фильтра H(z) и аналогового фильтра Ha(s) посредством N if = У------Ft* v 7 Fl-Л Таким образом, коэффициенты БИХ-фильтров можно получить напрямую из Ha(s) без необходимости предварительного расчета импульсной характеристики. Со- отношение между H(z) и коэффициентами фильтра можно найти в разделе 7.1. П(. . к, t к2 i-Л-1 1-Л~'
Разработка фильтров с бесконечной импульсной характеристикой 191 Характеристики разработки импульсно-инвариантных фильтров: • БИХ-фильтр устойчив тогда, когда устойчив соответствующий анало- говый фильтр. • Частотная характеристика БИХ-фильтра — это версия аналогового филь- тра с наложением спектров. Таким образом, оптимальные свойства ана- логового фильтра не сохраняются. • Каскад, состоящий из двух разработанных импульсно-инвариантных фильтров, не является импульсно-инвариантным с каскадом двух про- тотипов аналоговых фильтров. • Отклик фильтра на единичный входной скачок не является дискретизо- ванной версией отклика фильтра на единичный входной скачок анало- гового фильтра. Поэтому если отклик фильтра на единичный входной скачок конечного фильтра имеет большое значение, то метод импуль- сной инвариантности будет не самым подходящим вариантом. Пример 7.5. Фильтр Баттерворта второго порядка имеет следующие приведенные переда- точные функции: Разработка БИХ-фильтра на основе этого аналогового фильтра с использовани- ем метода импульсной инвариантности. Решение: Сначала распишем H(s) в элементарных дробях: H(s) = —1- + —— S - .У, 5 - s2 S' = Тогда Я(7) = . к2 \-es'Tz~l \-es^Tz-x
192 Цифровая обработка сигналов для инженеров и технических специалистов Используя приведенный период дискретизации при Т= 1, имеем: н^=--------; 1 - 0.7497г’1 + 0.243 lz~2 Получим частотную характеристику, заменяя что показано на рис. 7.13. Рис. 7.13. Частотная характеристика разработанного фильтра с использованием импульсной инвариантности 73.2. Метод билинейного преобразования Билинейное преобразование - это метод преобразования в частотной области передаточной функции аналогового фильтра H(s) в цифровой фильтр H(z). Преобра- зование происходит за счет замены переменных 2 z-1 s ------- Т z + 1
Разработка фильтров с бесконечной импульсной характеристикой 193 Оно называется билинейным, потому что и числитель, и знаменатель данного преобразования являются линейными. Это преобразование обратимо, так что H(s) может быть получено из H(z) путем замены 2/T + s z ---------- 2/T-s Для того чтобы понять эффект преобразования, положим, что со' и со означают аналоговую и цифровую частоты соответственно. Частотная характеристика цифро- вого фильтра может быть получена из H(z) путем замены _jcoT z = eJ , а для аналогового фильтра путем замены 5 = усо и подстановки в H(s). Аналоговая и цифровая частоты соотносятся выражением , 2 (соТА со =— tan ----, Т I 2 ) что показано на рис. 7.14. Рис. 7.14. Частотное искажение На рис. 7.14 показано, что соотношение между со' и со является практически линейным для малых величин со, но становится все более нелинейным с увеличени- ем со. Эта нелинейность ведет к искажению (или возмущению) цифровой частотной характеристики.
194 Цифровая обработка сигналов для инженеров и технических специалистов На рисунке также показаны три полосы пропускания в аналоговой частоте, ко- торые имеют постоянную ширину и являются эквидистантными. После применения билинейного преобразования полоса пропускания для цифровой частоты более не имеет эквивалентной ширины, а также не является эквидистантной. Этого эффекта можно избежать путем предыскажения аналогового фильтра до применения били- нейного преобразования. Предыскажение, или масштабирование шкалы аналоговой частоты, осущест- вляется путем замены 5 на Ks, где К — некоторая константа. Так как билинейное преобразование само по себе является изменением переменных, два шага, то есть предыскажение и билинейное преобразование, могут быть выполнены в один этап. Для предыскажения необходимо использование формулы 2 мо = - tan где и0 — критическая частота аналогового фильтра, а со0 — требуемая критическая частота цифрового фильтра. Совместив предыскажение с билинейной трансформацией, имеем 2К (аДЛ ип =----tan — 0 Т I 2 J к =-----и°т 2tan(<o0T /2) В таком случае билинейное преобразование с предыскажением определяется следующим образом: _ w0 z -1 2tan(co0T/2) z 4-1 Пример 7.6. Приведенный фильтр низких частот Баттерворта третьего порядка имеет пере- даточную функцию, определяющуюся так: 11 ) —--------z-------• (5 + 1)(? + 5 + 1) Разработать БИХ-фильтр низких частот с границей полосы пропускания в 200 Гц, основанной на аналоговой характеристике этого фильтра. Положим, что частота дискретизации составляет 1000 отсчетов в секунду. Решение: Граница полосы пропускания аналогового фильтра составляет Цо =1
Разработка фильтров с бесконечной импульсной характеристикой 195 Интервал дискретизации составляет Г = 0,001 секунды. Отсюда следует, что с границей полосы пропускания в 200 Гц общее билинейное преобразование с предыс- кажениями будет следующим: 5 = 1.376382—. z + 1 Цифровая передаточная функция определяется как 0.09853116(z + l)3 Z ~ (z - 0.158384) (z2- 0.418856z + 0.355447) 0.09853116(1 +г1)’ ~ (1 -0.158384Z’1)(1 -0.418856z"‘ + 0.355447z“2)’ Коэффициенты фильтра могут быть без труда получены после того, как мы рас- пишем H(z) и сравним его с выражением, данным в разделе 7.1. Подводя итог, можно выделить следующие характеристики билинейного пре- образования: • учитывая то, что аналоговый фильтр является устойчивым, результиру- ющий цифровой фильтр также будет устойчивым; • порядок цифрового фильтра аналогичен прототипу аналогового филь- тра; • оптимальная аппроксимация аналогового фильтра преобразовывается в оптимальную аппроксимацию цифровых фильтров; • каскад секций, разработанных при помощи билинейного преобразова- ния, будет аналогичен тому, что получается при преобразовании всей системы. Последняя характеристика делает билинейное преобразование более полезным, чем использование метода импульсной инвариантности. Каскад секций, имеющих более низкий порядок (обычно это секции первого и второго порядка), важен для ре- ализации БИХ-фильтров высшего порядка для достижения численной устойчивости. Это будет обсуждаться более подробно в следующей главе. 7.3.3. Частотное преобразование Таким образом, мы рассмотрели разработку только фильтров низких частот. Разработка фильтров высоких частот и полосовых фильтров требует преобразования, которое должно быть применено к фильтру низких частот. Для цифровых БИХ-филь- тров может быть использовано два подхода. Они показаны на рис. 7.15. 7*
196 Цифровая обработка сигналов для инженеров и технических специалистов Аналоговое Рис. 7.15. Подходы для частотного преобразования БИХ-фильтров При первом подходе прототип аналогового фильтра преобразуется в соответствую- щий фильтр высоких частот или полосовой аналоговый фильтр. Затем этот аналоговый фильтр трансформируется в БИХ-фильтр путем билинейного преобразования. Иными словами, аналоговый низкочастотный фильтр сначала преобразовывается в цифровой фильтр низких частот. Цифровой фильтр высоких частот или полосовой фильтр затем получаются путем спектрального преобразования цифрового фильтра низких частот. 7.3.3.1. Преобразования для аналогового фильтра Необходимо осуществить следующие замены для передаточной функции ана- логового фильтра H(s): • От фильтра низких частот к фильтру низких частот Если мы имеем фильтр низких частот с частотой среза при сор и нам необ- ходимо преобразовать его в другой фильтр низких частот с другой частотой среза сор', то преобразование должно выглядеть следующим образом: ш S’ -^—5. % • От фильтра низких частот к фильтру высоких частот Для преобразования фильтра низких частот в фильтр высоких частот с частотой среза сор' необходимо выполнить следующее преобразование: У • От фильтра низких частот к полосовому фильтру Если фильтр низких частот имеет частоту среза 1 рад/с, то его можно преобразовать в полосовой фильтр следующим образом: 2 У + СОСО, С —> ------U L_ s(tOu-COi)’ где cOj и сои — нижняя и верхняя частота среза полосы пропускания соответственно.
Разработка фильтров с бесконечной импульсной характеристикой 197 • От фильтра низких частот к режекторному фильтру Режекторный фильтр может быть получен из фильтра низких частот с частотой среза 1 рад/с путем преобразования: 5(t0u-C0u) 5 + СОиСО! которое аналогично преобразованию из фильтра низких частот в полосовой фильтр. 7.3.3.2. Преобразования для цифрового фильтра Преобразования из фильтра низких частот в другие виды фильтров для цифро- вой передаточной функции H(z) осуществляется путем замены г1 подходящей раци- ональной функцией gCr1)- От фильтра низких частот к фильтру низких частот 1 z~x — а sin[(cop + <op)/2 и сор, сор — исходная и новая частота среза соответственно. От фильтра низких частот к фильтру высоких частот _1 z~l+# 1 + 0Z 1 ’ cos (с а = — cos[(cop+<op)'2 От фильтра низких частот к полосовому фильтру _! z"2 -axz~xa2 a2z 2 -avz 1 +1 cos (cou + co, )/2 COS (cOy-COj)^
198 Цифровая обработка сигналов для инженеров и технических специалистов Частота среза фильтра низких частот будет на частоте сос. • От фильтра низких частот к режекторному фильтру _1 z 2 -a,z z —>-------------- Z Т -2 -1 a2z -axz 4 где 2а а =----- 1 К + 1 1-к а2~ Л „ а = COS (cou + CDj cos (cou - C0u -COj co К = tan —---1 tan— • I 2 J 2 Частота среза фильтра низких частот будет на частоте сос. 7.4. Методы прямой разработки Методы разработки, основанные на преобразовании из аналоговых фильтров, допустимы только в случае, если классические аппроксимации (Баттерворта, Чебы- шева) дают адекватные решения. Требуемые характеристики фильтров отличаются обязательной простотой. Если необходимы фильтры с произвольной характеристи- кой, то эти методы преобразования не могут быть применены. Существует ряд методов, которые позволяют разработать цифровые фильтры напрямую. Однако некоторые из этих методов более сложные с математической точки зрения. Мы попытаемся описать здесь два из таких методов. 7.4.1. Метод частотной дискретизации Метод частотной дискретизации при разработке БИХ-фильтров в основном такой же, как и для КИХ-фильтров. Частотная характеристика БИХ-фильтра прой- дет сквозь заданные отсчеты требуемого отклика. Разница здесь заключается в том, что БИХ-фильтры не могут иметь линейную фазу, отсчеты должны быть получены с учетом как амплитудной, так и фазовой характеристики. 7.4.1.1. Расчет характеристики БИХ-фильтра Сначала рассмотрим, каким образом можно рассчитать частотную характерис- тику БИХ-фильтра. Мы знаем, что L — это отсчеты, которые эквидистантно распо- ложены на частотной характеристике Н(со) и могут быть приблизительно рассчитаны из длины L ДПФ импульсной характеристики Л(и). Но такой прямой расчет требует, чтобы бесконечно длинная Л(и) была усечена до длины в L отсчетов.
Разработка фильтров с бесконечной импульсной характеристикой 199 Если мы имеем передаточную функцию БИХ-фильтра, то более рациональным подходом будет использование ДПФ для расчета числителя и знаменателя по отде- льности. Вспомним, что передаточная функция определяется следующим соотноше- нием двух многочленов: 77=0 ДПФ числителя H(z) осуществляется после того, как было добавлено L-M нулей к Ь(п), что приводит к ДПФ длины L. Для знаменателя L-Nнулей прибавляются к а(п) до того, как осуществляется преобразование. Дискретизованная частотная характе- ристика определяется выражением k L L ) DFT{a(n)} Ak ’ где деление происходит поэлементно для каждого из значений L ДПФ как функции к. Так как порядок БИХ-фильтра обычно низкий, прямой расчет ДПФ не требует существенных вычислительных затрат. 7.4.1.2. Разработка дискретизации в частотной области Для разработки мы можем выбрать определенное число эквидистантных отсче- тов, число которых соответствует числу неизвестных коэффициентов, то есть L = M+ N+ 1 Для (М+1) коэффициентов числителя и коэффициентов знаменателя N(a0=l). Выражение як = ^- А Лк может быть записано так: як=як4. Иными словами, последовательность {b(ri}} может быть получена циклической сверткой последовательностей {h(n)} и {я(и)}, где {h(n)} — длина L обратного ДПФ {Н}. Из главы 3 мы поняли, что циклическая свертка может быть представлена в матричной форме. Нижние L-M-1 выражений имеют следующий вид:
200 Цифровая обработка сигналов для инженеров и технических специалистов Это матричное уравнение можно привести в более компактный вид 0 = hj +Н2а или в эквивалентный hj = -Н2а, где Н2 — матрица размером (L-M-1) на N, hj — вектор длины (L-M-1), а имеет длину N. Если L = 7V+M+1, то матрица Н2является квадратной. Так как Н2 несингулярная, то а может быть точно получено с использованием набора уравнений. Верхние Л/+1 выражений имеют следующий вид: или в более компактной форме Ь = Н,а. Так как а было рассчитано в прошлом шаге, можно без труда рассчитать Ь. Этот метод относительно прост и может применяться к произвольным частотным характеристикам. Основным недостатком является то, что мы не можем контролиро- вать устойчивость разработанного фильтра. Существует также проблема, аналогичная проблеме при разработке КИХ-фильтров, которая заключается в том, что иногда дается слабая аппроксимация между точками дискретизации в частотной области. Решением является увеличение числа отсчетов, что приводит к возникновению боль- ших сложностей при решении систем уравнений. Конечный этап разработки также очень сильно зависит от выбора точек дискретизации в частотной области. 7.4.2. Разработка уравнения среднеквадратической ошибки Вышеупомянутый метод разработки частотной дискретизации может быть моди- фицирован для того, чтобы иметь возможность минимизировать уравнение ошибки. Это преобразует проблему интерполяции в проблему аппроксимации. Пусть число отсчетов частоты, которые используются, равно L и будет больше, чем число коэффициентов, которые необходимо определить. При этом матрица Я2 не будет квадратной, и мы не сможем решить уравнение ht = -Н2а. относительно вектора а. Тем не менее, вводя сюда вектор ошибки е с длиной L, мы имеем о] = [н.][а]+Н. уравнение, указанное выше, таким образом, преобразуется к hj —е = -Н2а.
Разработка фильтров с бесконечной импульсной характеристикой 201 Не вдаваясь в аналитические расчеты, мы просто положим, что решение, мини- мизирующее ее, определяется следующим образом: а = . Представленное выражение несингулярно. На практике данное выражение не используется напрямую для решения относительно а, так как эти уравнения часто плохо обусловлены. Обычно используются специальные алгоритмы. При рассчитанной величине а получить b можно таким же образом, как и для метода частотной дискретизации: ь = н1а. Это делает верхнюю величину ЛГ+1 в е нулевыми и общую квадратичную ошибку минимальной. Обратите внимание на то, что минимизация уравнения ошибки отличается от минимизации квадратичной ошибки частотной характеристики. Первый метод минимизации основывается на уравнении во временной области, в то время как последний — на методе в частотной области. В общем случае при работе с БИХ- фильтрами минимизация квадратичной ошибки частотных характеристик ведет к нелинейным выражениям. Однако минимизация уравнения ошибки требует ре- шения системы линейных уравнений. Если требуемая частотная характеристика близка к тому, что мы хотим получить при фильтрации БИХ-фильтром, то оба ме- тода минимизации ошибки приведут к близким решениям. Но если спецификация не является согласованной с порядком БИХ-фильтра и его характеристиками, то в результате мы получим большие ошибки. В некоторых случаях результирующий фильтр может быть даже неустойчивым. Так как достаточно сложно определить соответствующие частотные характе- ристики для БИХ-фильтров, особенно фазовые характеристики, иногда лучшим ва- риантом является метод проб и ошибок. В этом случае хорошая разработка позволит конструктору поэкспериментировать с различными спецификациями и разработками более эффективно. Пример 7.7. Низкочастотный БИХ-фильтр шестого порядка разработан с использованием метода уравнения среднеквадратической ошибки. Используется 41 отсчет частоты. Требуемая характеристика имеет единичную амплитуду от 0 до 0,4л, и амплитуда равна нулю для частот выше 0,4л. Фазовая характеристика была рассчитана методом проб и ошибок с целью получения хорошей конечной амплитудной характеристики. Амплитудная характеристика фильтра показана на рис. 7.16.
202 Цифровая обработка сигналов для инженеров и технических специалистов со Рис. 7.16. БИХ-филыпр шестого порядка, разработанный с использованием метода наименьших квадратов 7.5. КИХ-фильтры в сравнении с БИХ-фильтрами С этой точки зрения лучше подвести итог относительных преимуществ КИХ- и БИХ-фильтров. Ряд преимуществ уже обсуждался в этой и предыдущей главах, другие, касающиеся реализации и исполнения, будут рассматриваться в следующей главе. • КИХ-фильтры могут иметь точную линейную фазу. Это означает, что фильтр не будет иметь искажений в фазе сигнала. Линейная фазовая характеристика важна для ряда применений, например при передаче данных и обработке изображений. БИХ-фильтры имеют обычно нели- нейную фазовую характеристику, особенно на границах полосы. • КИХ-фильтры будут гарантированно устойчивыми, в то время как это нельзя утверждать для БИХ-фильтров. • БИХ-фильтры лучше подходят в случае, если требуется крутой скат (при небольшой ширине переходной области). Для такого крутого ската необ- ходим очень высокий порядок КИХ-фильтра. Фильтры высокого поряд- ка также характеризуются большой задержкой. Результатом их приме- нения является то, что фильтры более высокого порядка имеют больше коэффициентов и, следовательно, требуют больше пространства (памя- ти) для хранения коэффициентов и характеризуются большими вычис- лительными затратами. Необходимо отметить также, что ЦОС схемы оптимизированы для осуществления операций, необходимых для БПФ и свертки, и, таким образом, реализация КИХ-фильтров происходит очень эффективно.
Разработка фильтров с бесконечной импульсной характеристикой 203 • Относительно просто разработать КИХ-фильтры при использовании произвольных частотных характеристик. Однако аналоговые фильтры могут быть без труда преобразованы в эквивалентные БИХ-фильтры с подобными спецификациями. Это является преимуществом для тех разработчиков, которые хотят преобразовать существующие аналоговые приложения в цифровые. КИХ-фильтры не имеют прототипов. • БИХ-фильтры являются более чувствительными к ошибкам округления и ошибкам квантования, чем КИХ-фильтры. Поэтому в случае, если нам необходим фильтр с крутым скатом с высокой про- пускной способностью (малой задержкой), то более удобным в применении является БИХ-фильтр. Он должен быть разработан с использованием аналоговой эллиптичес- кой аппроксимации, которая дает меньше коэффициентов. С другой стороны, если крайне важна точная линейная фаза, целесообразно использовать КИХ-фильтры. Обычно КИХ-фильтры выбираются для случаев, когда число коэффициентов невелико в силу их высоких числовых характеристик. 7.6. Дальнейшие исследования Разработка БИХ-фильтров значительно более сложная по сравнению с разра- боткой КИХ-фильтров. Для формулировки и решения проблем разработки требу- ются более глубокие знания математики. Это является одной из причин, почему мы не рассматривали более подробно разработку БИХ-фильтров, так как рассмотрели КИХ-фильтры. Заинтересованному читателю, который решит разобраться в данной проблеме глубже, рекомендуется изучение следующих великолепных классических учебников по ЦОС: • L.R. Rabiner and В. Gold, Theory and application of digital signal processing, Prentice-hall, 1975. • A.V. Oppenheim and R.W. Schafer, Digital signal processing, Prentice-hall, 1975. • J.G. Proakis and D.G. Manolakis, Digital signal processing: principles, algorithms and applications, second edition, Maxwell Macmillan, 1988. • A. Antoniou, Digital filters: Analysis, design and applications, second edition, McGraw-Hill, 1993. В литературе периодически появляются статьи, рассматривающие современные методы разработки. Для получения последней информации о разработке цифровых фильтров читателю рекомендуется обратиться в журнал IEEE transactions.
Реализации цифровых фильтров После того как были определены коэффициенты цифрового фильтра, проблема аппроксимации решена. Следующим этапом процесса разработки фильтра являет- ся процесс, называемый реализацией, или построением фильтра. Когда мы будем говорить о реализации, мы будем подразумевать структуру, которая соотносит вход и выход фильтра и представлена структурной схемой. Это называется структурой фильтра. Отдельные блоки внутри этой структурной схемы могут быть реализованы как элементы аппаратной схемы либо как программа, которая будет исполняться в ЦОС-процессоре. Мы опишем несколько структур фильтров. Рассмотрение процедуры выбора структуры фильтра включает простоту программирования отдельных ЦОС элементов и систематичность разработки СБИС (сверхбольших интегральных схем). Некоторые структуры более чувствительны к ошибкам (квантования) при определении коэффи- циентов. В некоторых случаях, таких, например, как БИХ-фильтры, устойчивость фильтра может зависеть от соответствующей реализации. 8.1. Прямая форма 8.1.1. БИХ-фильтры Рассмотрим простой БИХ-фильтр второго порядка с передаточной функцией B(z) b'+b^+b^2 Н \z) —----—-------------~г • A(z) l + a}z + a2z Входные и выходные отсчеты соотносятся посредством выражения у{п) = -аху(п -1) - а2у{п - 2) + bQx(ri) 4- bxx(n -1) + Ь2х(п - 2). Прямая форма реализации — это просто реализация, основанная на непос- редственном исполнении этого разностного уравнения. Это проиллюстрировано на рис. 8.1.
Реализации цифровых фильтров 205 На этом рис. символ z1 представляет собой задержку на один отсчет. В реальном исполнении он является сдвиговым регистром или элементом памяти в ОЗУ. Три основных элемента структуры показаны на рис. 8.2. Рис. 8.1. Прямая форма реализации БИХ-фильтра х(п) х(п-1) Задержка на 1 период дискретизации х(п) х(п) + w(n) w(n) Сумматор/аккумулятор Перемножитель Рис. 8.2. Три основных элемента при реализации к х(п) Эти структуры включают в себя 4 блока задержки, 5 умножителей и 4 сумматора. Отметим, что правая часть уравнения содержит две основные операции: сложение и умножение. Каждый отсчет выходного сигнала у либо входного сигнала х умножается на некоторый коэффициент. После этого результат сохраняется либо аккумулируется
206 Цифровая обработка сигналов для инженеров и технических специалистов для дальнейшего сложения. Мы называем эти две основные операции прямой струк- турной формы «умножение и накопление» (УИН). На рис. 8.1 также показаны две части структуры фильтра. Все числители пока- заны в левой части блока суммирования — это элементы прямой связи. Знаменатели, которые зависят от предыдущих значений выходных отсчетов, — это элементы об- ратной связи. Эта прямая реализация называется прямой реализацией 1 или просто прямой реализацией. 8.1.1.1. Каноническая форма Существует также и структура 2 прямой реализации. Она также известна как каноническая форма. Чтобы увидеть, как мы можем получить структуру прямой ре- ализации, рассмотрим разностное уравнение фильтра второго порядка. Члены в правой части перегруппируем следующим образом: у(п) = [/>ох(и) 4- b{x(n -1) 4- Ь2х(п - 2)]4- “ 1) “ а2У(п ~ 2)] • х(п) Рис. 8.3. Альтернативная структура прямой реализации Эта перегруппировка проиллюстрирована на рис. 8.3. Теперь мы имеем два сумма- тора в схеме вместо одного, как было на рис. 8.1. Мы можем рассматривать эту структуру как каскад из двух фильтров: один — с прямой связью, а другой — только с обратной связью. Тогда цифровые передаточные функции этих двух фильтров будут Я2(7) =
Реализации цифровых фильтров 207 таким образом, их каскад будет A(z) что и является исходной передаточной функцией. Порядок расположения этих двух фильтров может быть изменен без влияния на общую передаточную функцию, так как они оба являются линейными системами. На рис. 8.4 показан каскад фильтров с измененным порядком следования. Рис. 8.4. Изменение порядка следования каскадов Выход фильтра Я2(г) теперь является входом фильтра Выход Я2(г), обоз- наченный как w(h), задержан также обоими фильтрами. Таким образом, нам нет необходимости в разделении на два набора задержек; они могут быть соединены в одну так, как это показано на рис. 8.5. Это является канонической формой. х(п) У(п) Рис. 8.5. Каноническая форма
208 Цифровая обработка сигналов для инженеров и технических специалистов Несложно увидеть, что каноническая форма представляет собой исходное дифференциальное уравнение БИХ-фильтра. Мы имеем от первого сумматора слева: 2 w(n) = -^2 ak w(n ~ k) + х(п) k=i - -axw(n -1) - a2w(n - 2) + x(n). Выходной эффект второго сумматора будет 2 y(n) = ^bkw(n-k) Л-0 = b{iw(n) + l\w(n -1) + b2w(n - 2) Подставляя значения для w(ri), w(n — 1) и w(n — 2) в полученное выше уравнение, получим: у(п) = b0 [~ауг(п -1) - a2w(n - 2)]+ bax(n) + Ьх [-<2^(7? -2) -a2w(n -3)]+ ЬуХ(п -1) + b2 [-<7,w(n - 3) - <72w(« - 4)]+ b2x(n - 2) 2 ~ ax [60w(n -1) + bxw(n - 2) + b2w(n - 3)] - a2 [bow(n - 2) + bxw(n - 3) + b2w(n - 4)] 2 = bkx(n -k)- a}y(n -1) - a2y(n - 2), k=0 что и является исходным дифференциальным уравнением. Хотя в качестве примера мы использовали БИХ-фильтр второго порядка, эти структуры могут быть с легкостью обобщены на передаточные характеристики филь- тров более высокого порядка. Пример 8.1. Дана передаточная функция цифрового фильтра 2-3z~'+4z~3 l + 0.2z’’ -0.3z“2 +0.5z 4 ’ Построить схемы 1 и 2 прямой реализации этого фильтра. Решение: Смотри рис. 8.6 и 8.7.
Реализации цифровых фильтров 209 2 Рис. 8.7. Прямая реализация 2 8.1.1.2. Относительная метрика Каноническая реализация широко используется в силу следующих особен- ностей: требует минимум места для хранения; хорошее свойство округления шума.
210 Цифровая обработка сигналов для инженеров и технических специалистов Недостатком является то, что она восприимчива к внутреннему числовому пе- реполнению, Входное воздействие фильтра может быть отмасштабировано с целью избегания переполнений. С другой стороны, структура в виде прямой реализации 1 не требует масштабирования, так как тут присутствует только один сумматор. Таким образом, если масштабирование нежелательно, предпочтительно использовать пря- мую реализацию 1. 8.1.1.3. Транспонированная структура Альтернативная структура, основанная на канонической форме, может быть получена путем транспонирования. Результат транспонирования структуры показан на рис. 8.8. Рис. 8.8. Транспонированная каноническая структура Она получена путем: • обращения всех направлений движения сигналов; • изменения выводов (точек соединения) в сумматорах и выводов из сум- маторов; • взаимной замены входа и выхода. Транспонированная структура прямой реализации 1 может быть получена путем применения того же способа. Результат показан на рис. 8.9. В обоих случаях переда- точная функция после выполнения операций транспонирования остается той же. Влияние конечной длины слова для исходной и транспонированной структуры различно. Это показывает то, что на основе одних и тех же соотношений могут быть получены различные структуры, которые имеют влияние на реализацию.
Реализации цифровых фильтров 211 Рис. 8.9. Транспонированная прямая реализация 1 8.1.2. КИХ-фильтры Для КИХ-фильтра полином знаменателя просто равен 1, то есть A(z) = 1. Таким образом, существуют только элементы прямой связи. Это обычно представляется в несколько отличном способе отображения, так, как показано на рис. 8.10. Рис. 8.10. Структура КИХ-фильтра Это соответствует уравнению КИХ, которое мы использовали для фильтров второго порядка 2 у(«) = h(m)x(n - т); т-0 где h(n) — это импульсная характеристика, или коэффициенты фильтра. Еще одно название для прямой реализации структуры КИХ-фильтров — это трансверсальная структура, или линия задержки с отводами.
212 Цифровая обработка сигналов для инженеров и технических специалистов Для КИХ-фильтров с линейной фазовой характеристикой эти коэффициенты фильтра могут быть симметричными либо асимметричными. Таким образом, для фильтра TV-го порядка число умножений может быть уменьшено с TV до TV/2 для четного TVh до (TV+l)/2 для нечетного TV. На рис. 8.11 показана прямая реализация КИХ-фильтра нечетного порядка с линейной фазовой характеристикой, которая использует преимущества такого уменьшения. х(п) У(п) Рис. 8.11. Прямая реализация КИХ-фильтра нечетного порядка с линейной фазовой характеристикой Интересно отметить, что транспонированная структура КИХ-фильтра может быть получена также путем применения метода, который рассматривался для транс- понирования БИХ-структур. Результирующая структура для фильтра второго поряд- ка показана на рис. 8.12. 8.2. Каскадная форма Общая передаточная функция H(z) при условии, что порядок N> 2, может быть факторизована до ^функций второго порядка так /=1 1 + ai{z ' + anz
Реализации цифровых фильтров 213 где Сбудет равно N/2 для четных ТУлибо (7У+1)/2 для нечетных N. Мы можем рассмот- реть каждую секцию второго порядка с передаточной функцией H.(z) как подсистему всей системы H(z) и, таким образом, представить всю систему как созданную из кас- када этих подсистем, рис. 8.13. H(z) = H0(z)H1(z)...Hk.1(z) Рис. 8.13. Каскад передаточных функций Отметим, что, когда мы говорим «секция второго порядка», в действительности мы подразумеваем «секция до второго порядка». Некоторые из коэффициентов Ь.2 и а 2 могут быть равны нулю. Таким образом, действительные порядки полиномов чис- лителя и знаменателя могут быть меньшими, чем 2К. Также коэффициенты каждой секции являются реальными величинами. Каждая секция второго порядка может быть исполнена путем использования прямой, канонической либо транспонированной формы, которые были рассмотрены в предыдущем разделе. 8.2.1. КИХ-фильтры Для КИХ-фильтров передаточная функция секции второго порядка имеет вид Hi(z) = bi()+ bilZ~l + bj2z~2, так как A(z) = 1. Постоянный член полной передаточной функции фильтра опреде- ляется выражением = ^10^20 •• А: о • Они могут быть эквивалентно распределены для каждой секции либо назначены одной секции. Для того чтобы увидеть, каким образом получается эта передаточная функция второго порядка, мы должны сначала факторизовать H(z) по его корневым множи- телям. H(z) = b\\ + — z~' + — z~2 +--- + ~z~^ I b. b0 ) = Z)0(l-r1z’1)(l-r2z’2)---(l-rNz^N) . Некоторые из корней г. являются комплексными, а другие — реальными. Ре- альные величины могут быть скомбинированы в пары либо их можно оставить в
214 Цифровая обработка сигналов для инженеров и технических специалистов исходном виде. Комплексные корни всегда будут иметь комплексно-сопряженные пары. Например, если является комплексным корнем, то г2 = г{+, комплексное сопряжение гх также должно быть корнем. Когда мы формируем секции второго порядка, желательно сгруппировать пары этих комплексных корней таким образом, чтобы коэффициенты ЬА и Ь.2 были реальными. (l-r1z~1)(l-ri+z"1) = 1-(7"1 + l\+)z~} = l-2Re(r1)z’1+|r1|2z“2. Здесь реальная часть гх обязательно является реальной, и величина квадрата гх — также реальная величина. Для КИХ-фильтров с точной линейной фазовой характеристикой уменьшение вычислительной нагрузки может быть получено путем использования секций филь- тров четвертого порядка с симметричными коэффициентами в каждой из секций. Н\ (z) = с/о 4- Ci}Z~} 4- Ci2Z~2 4- Ci}Z~3 4- Z~4 . При использовании данного метода число умножений для каждой секции умень- шается наполовину. 8.2.2. БИХ-фильтры Секция второго порядка для передаточной функции БИХ-фильтра может быть составлена подобно тому, как это было сделано для КИХ-фильтров. В этом случае мы имеем два полинома — A(z) и B(z). Эти два полинома могут быть раздельно фак- торизованы до членов второго порядка (квадратичных). Каждый квадратичный член числителя может быть сдвоен с квадратичным членом знаменателя в форме секции второго порядка. Отметим, что нормируемая передаточная функция второго порядка H.(z) не является единственной. Но общая передаточная функция H(z) остается той же. На практике составление пар и упорядочивание секций второго порядка могут влиять на числовую точность результирующего фильтра. Внутренние умножения в пределах каждой секции могут создавать определенную величину ошибки округления. Эта ошибка затем поступает в следующую секцию. Ошибка округления окончательно- го выходного эффекта различна для каждой комбинации секций второго порядка. Естественно, мы хотим достичь минимальной величины ошибки округления. Это достаточно сложная проблема. На практике необходимо использовать метод проб и ошибок. К счастью, большинство БИХ-фильтров не требуют высокого порядка, так что число возможных комбинаций не будет велико. При этом необходимо принять за правило сдваивать квадратичные пары с кор- нями, которые близки по значению друг к другу. Еще одно правило — это помещать секции с определенным значением корня к блоку предыдущей секции с близкой к значению величиной.
Реализации цифровых фильтров 215 8.3. Параллельная форма Альтернативой каскадной форме построения БИХ-фильтров является парал- лельная форма. При этом передаточная функция H(z) расширена с использованием простейшей дроби Я(г) = С + ХЯДг), к=\ где С — \-рк2 для функции TV-го порядка. В этом случае передаточные функции отдельных подсис- тем суммируются и образовывают общую передаточную функцию. Таким образом, подсистемы соединяются параллельно, а не последовательно, как в каскадной форме. Это показано на рис. 8.14. Результирующий БИХ-фильтр теперь состоит из блока параллельных фильтров первого порядка. х(п) Рис. 8.14. Реализация в параллельной форме Величины Ак и рк могут применять комплексные значения. Если рк — комплек- сная величина, то будет присутствовать и ее комплексное сопряжение. Мы можем комбинировать пары комплексно сопряженных членов для того, чтобы избежать вычислений с комплексными числами. Таким образом, передаточная функция под- систем — это секции второго порядка, которые могут быть созданы таким же образом, как и рассмотренные в предыдущем разделе.
216 Цифровая обработка сигналов для инженеров и технических специалистов H(z) = C + £Hk(z) k=l = , Ь‘”+У l + + ak2z где Нравно N/2 для четных Nn (7V+ 1)/2 для нечетных N. Отметим, что в этом случае коэффициент числителя при г-2 в каждый второй отсчет будет равен нулю. Преимуществом параллельной формы по сравнению с каскадной формой для БИХ-фильтров является то, что порядок подсистем не имеет значения, так как они соединены параллельно. Масштабирование при этом осуществляется более просто, так как может быть выполнено для каждого блока отдельно и независимо. Более того, ошибки округления в каждом блоке не распространяются в другие блоки. Однако каскадная реализация все еще является предпочтительным методом исполнения. Если БИХ-фильтр определяется на основе классического аналогового фильтра с использованием билинейного преобразования, то от 25% до 50 % коэффи- циентов фильтра являются простыми целыми числами (0, ±1 и т.д.). Это делает вычис- ления более простыми, особенно в случае, если процессор не слишком мощный. Пример 8.2. Осуществить каскадную и параллельную реализацию КИХ-фильтра, передаточ- ная функция которого определяется выражением Решение: Каскадная реализация может быть получена путем составления пар из комплек- сно сопряженных членов в знаменателе. Члены в числителе могут быть соединены в пары произвольным образом. Одно из возможных решений будет следующим: я,(^)= 1 + -Z-Z-2 = —1--;-- 2 с
Реализации цифровых фильтров 217 Для параллельной реализации нам необходимо разложить передаточную функ- цию на элементарные дроби. Она будет иметь следующий вид: Я(г) =...j...- + , Лз <----+ , . l--z“‘ 1 —— z’1 l-fl + ylV1 1-f 1-/-Oz’1 4 8 {2 2) I 2 2J Найденные значения констант числителя будут равны Д = 2.93 А2 =-17.68 Д =12.25-у14.57 Они могут быть скомбинированы в секцию второго порядка следующим образом: ТТ/ ч -14.75-12.90z’1 24.5 + 26.82Z’1 Я (z) =----------------+--------*-----• 1 —— z’1+-~z’2 1-Z_1+-Z’2 8 32 2 Очевидно, что в каскадной реализации будет больше коэффициентов, чем целых. 8.4. Другие структуры Есть еще ряд структур реализации КИХ- и БИХ-фильтров. Рассмотрим кратко некоторые из них. 8.4.1. Решетчатая структура Решетчатая структура наиболее широко используется в задачах цифровой обра- ботки речи и в задачах адаптивной фильтрации. Для того чтобы получить решетчатую структуру, рассмотрим КИХ-фильтр первого порядка. Выходной эффект этого филь- тра определяется выражением = h(0)x(n) + h(l)x(n -1) = *(«)+a j (l)x(z7 — 1) Здесь мы положили, что значение Л(0) =1 без потери общности. Выходной эф- фект может быть получен путем использования одного элемента решетчатой струк- туры, как показано на рис. 8.15. Рис. 8.15. Реализация в форме решетчатой структуры
218 Цифровая обработка сигналов для инженеров и технических специалистов Отметим, что решетчатая структура дает два выхода f\n) = x(n) + Kxx(n-\), gx(n) = Кхх(п) + х(п-1) . Первый выход//и> такой же, как и выход у(п) КИХ-фильтра первого порядка, в случае если мы выберем ^=а,(1). Этот параметр называется коэффициентом отражения. Он имеет такое же свойс- тво, как и для устойчивого фильтра Рис. 8.16. Каскад из двух элементов решетки для формирования фильтра второго порядка Если нам необходим КИХ-фильтр второго порядка, мы можем использовать два элемента решетки, как показано на рис. 8.16. Выходные эффекты второго элемента будут определяться выражением: g2(n) = K2fx(n) + gl{n-\') = х(п) + Кхх(п -1) + К2 -1) + х(п - 2)] = х(п) + Кх (1 + К2 )х(п -1) + К2х(п - 2). Выходной эффект/^л) будет идентичен выходному эффекту КИХ-фильтра, оп- ределяемому выражением: у(п) = х(п) + а2(1)х(и -1) + а2(2)х(и - 2), Если мы выберем К2=а2(2) к а2(П 1 1 + а2(2) Индекс коэффициента а показывает порядок фильтра.
Реализации цифровых фильтров 219 Аналогично мы можем расширить это выражение до КИХ-фильтра А-го поряд- ка путем использования дополнительных элементов решетки, выбирая корректные значения коэффициентов отражения. Эти коэффициенты отражения должны быть рассчитаны рекурсивно. Если мы обозначим уравнение КИХ-фильтра А-го порядка как Я«) = 1 + Л(2)’ то мы немедленно получим, что *N=aN(tf) Чтобы найти KNd нам необходим полином Таким образом, мы имеем следующий алгоритм: For т - N -1 down to 1 begin К =а(т') m m v z am-.(0) = l for к -1 to m -1 begin am(k)-am(rn)am(m-k) a m-i W =-------i---ГГ\-------- end end Этот алгоритм известен как рекурсивный алгоритм Дурбина-Левинсона (Durbin- Levinson). Похожая решетчатая структура может быть получена для цифрового БИХ-филь- тра. Если числитель в передаточной функции БИХ-фильтра равен 1, то мы имеем так называемый полюсный фильтр. На рис. 8.17 показана решетчатая структура для полюсного фильтра А-го порядка. Рис. 8.17. Решетчатая структура БИХ-фильтров
220 Цифровая обработка сигналов для инженеров и технических специалистов Отметим, что теперь мы имеем верхний путь, который является прямым направ- лением, и нижний путь, который является обратным направлением. Более общая передаточная функция БИХ-фильтра может быть реализована пу- тем использования лестнично-решетчатой структуры, рис. 8.18. Рис. 8.18. Более общая схема решетчатого БИХ-фильтра Верхняя часть решетчатой структуры для полинома знаменателя и нижняя по- ловина — это лестничная структура, которая реализовывает полином числителя. Решетчатая структура в общем случае менее чувствительна к ошибкам кванто- вания коэффициентов, чем к прямым формам. Изучение коэффициентов отражения может показать степень устойчивости фильтра. 8.4.2. Волновой цифровой фильтр Структура волнового цифрового фильтра рассчитывается из аналогового LC фильтра без потерь. Существуют различные типы волновых фильтров с различными требованиями к вычислителю и памяти. Они характеризуются низкой чувствитель- ностью к ошибкам квантования коэффициентов фильтра. Вообще говоря, чем более сложная структура цифрового фильтра, тем меньше он чувствителен к ошибкам задания коэффициентов. Волновые цифровые фильтры могут работать с низким числом бит для представления коэффициентов. Если число доступных бит будет недостаточно, то для получения того же уровня точности будет необходима более сложная структура. 8.4.3. Быстрая свертка Метод быстрой свертки применяется к КИХ-фильтрам. Дифференциальное уравнение КИХ-фильтра, по сути дела, является сверткой между отсчетами входной последовательности и последовательностью, представляющей собой отсчеты импуль- сной характеристики фильтра. Вместо того чтобы выполнять эту операцию непос- редственно, мы можем преобразовать две последовательности в частотную область
Реализации цифровых фильтров 221 путем использования БПФ. Две преобразованные таким образом последовательности перемножаются, а затем для получения выходной временной последовательности фильтра используется обратное БПФ. Как импульсная характеристика, так и вход- ная последовательность должны быть дополнены нулями так, как это обсуждалось в главе 4. Для КИХ-фильтров высокого порядка экономия в вычислительных затратах будет весьма существенной. Детали этой особенности уже обсуждались ранее. Не- достатком является то, что при этом будет присутствовать существенная задержка между моментом поступления входного воздействия и моментом появления выход- ного воздействия. Для некоторых приложений этот факт является критическим, для некоторых — нет. 8.4.4. Структура частотной дискретизации Структура частотной дискретизации — это еще один альтернативный метод обра- ботки в КИХ-фильтрах. Вместо того чтобы использовать импульсную характеристику h(n) цифрового фильтра, используются отсчеты требуемой частотной характерис- тики D(w). Для КИХ-фильтров с узкой полосой пропускания большинство отсчетов требуемой частотной характеристики будут равны нулю. Таким образом, потребуется меньший объем вычислений. 8.5. Реализация в программном виде Теперь мы кратко обсудим некоторые детали построения структур как програм- мных алгоритмов, рассмотренных в предыдущих разделах. Мы будем предполагать, что у нас есть непрерывный поток входных отсчетов и запишем алгоритм обработки отсчета - алгоритм для обработки единичного входного отсчета. 8.5.1. Алгоритмы обработки отсчета Алгоритм обработки отсчета для структуры 1 прямой формы является наиболее простым. Рассмотрим общую передаточную функцию БИХ-фильтра с числителем в виде полинома порядка М и знаменателем в виде полинома порядка N. Для каждого входного отсчета х выполнять wo = -«1 wi---амн’м + bQv0 + b}vt + • • • + Z)N vN У = Щ> i = N,N w; - мк1, i = M,M. Входной отсчет обозначен x, а выходной — у. Коэффициенты b. и а. числителя и знаменателя соответственно. Все внутренние переменные v и w. в начальном состо-
222 Цифровая обработка сигналов для инженеров и технических специалистов янии равны нулю. Отметим, что обновление внутренних переменных должно быть выполнено в обратном порядке, чтобы избежать перезаписи предыдущих значений. Алгоритм обработки отсчета для структуры 2 прямой реализации фильтра также будет иметь непосредственный вид. Используя те же обозначения, что и выше, мы получим: для каждого входного отсчета х выполнять w0=x-a^-a2w2---------а^м y = bowo+b1Wl+--- + bNwN wi ~ wi4, z - К,К . Здесь К равно М или N, в зависимости от того, какая величина больше. Это означает, что K = max(M,N). Снова внутренние переменные w. в начальном состоянии равны нулю, и об- новление их значений должно выполняться в обратном порядке. Отметим, что в этом случае необходим только один набор внутренних переменных по причине более простой структуры. Способ, в соответствии с которым обработка отсчетов в этом методе может быть оптимизирована в цифровом процессоре, будет показан в следующей главе. 8.6. Представление чисел Краткий обзор некоторых способов представления чисел с фиксированной точ- кой приведен в приложении Б. В этом разделе мы раскроем и рассмотрим представле- ние чисел в форме с плавающей точкой и с фиксированной точкой. Фиксированное число бит, предназначенных для записи каждого числа, приводит к конечной число- вой точности вычислений. Это означает, что наличие ошибок округления и усечения неизбежно. Эти эффекты, в частности, важны в построении систем с фиксированной точкой. 8.6.1. Формат с фиксированной точкой Общий формат с фиксированной точкой, в общем, такой же, как и тот, что мы используем при десятичном представлении чисел. Он состоит из строки цифр с де- сятичной точкой. Цифры слева от десятичной точки — это целая часть, а те, которые находятся справа, — дробная часть числа. Х = (^В^В-1 • • • ^0 • Ь-\Ь-2 •' •Ь-А )г В = 0</>i<r-l, i=-A где b. — знаки, аг - основание системы счисления, или база.
Реализации цифровых фильтров 223 Пример 8.3. (12.34)10 =1х10‘ +2x10° 4-3x10"’ +4х10"2 (110.01)2 =1х22+1x2' +0x2° +0x2“' +1х22 Основное внимание уделим двоичному представлению, так как это именно с этим форматом работает большинство цифровых процессоров. В этом случае знаки будут битами. Самым младшим битом (СМБ) будет b , а Ьв — самым старшим битом (ССБ). Естественно, что бинарная точка (в противоположность к точке в десятичном числе) между Ь[}иЬ физически не существует и интерпретируется исключительно пользователем. Неотрицательные целые могут быть с легкостью представлены n-битной ком- бинацией двоичных разрядов (В= п — 1, А = 0). Так как нам необходимо работать с дробными числами, обычно используется дробный формат (В= \,А=п — 1). Это позволяет нам представлять числа в диапазоне от 0 до 1—2П. Причина этого заклю- чается в том, что произведение двух чисел, которые меньше 1, даст нам результат, который будет меньше 1. Положительные дроби определяются выражением Л' = 0АА2-*_,=Х4,2‘ i=-l = 0.6Д- -6п гдеХ>0. i=l Здесь для удобства биты обозначены положительным индексом. Отрицательные дроби могут быть представлены одним из следующих спосо- бов: 1. Знак-величина: Х = гдейГ<0; 2. Обратный код числа: X = 1Д62 •••£„, где X <0 Если X — положительное число, тогда соответствующее отрицательное число определяется путем обращения всех бит. 3. Дополнительным кодом числа: Здесь выполняется та же операция, что и при формировании обратного кода числа, за исключением того, что старший бит подвергается логической операции, исключающей ИЛИ (ИЛИ-HE) с 1. В качестве альтернативы СМБ складывается с 1 по модулю 2.
224 Цифровая обработка сигналов для инженеров и технических специалистов Пример 8.4. 7 - = 0.111 8 = 1.000 = 1.001 знак-величина обратный код числа дополнительный код числа 8.6.1.1. Арифметические операции Сложение (а значит, и вычитание) в обратном и дополнительном коде вычисля- ется непосредственно. При использовании дополнительного кода, если бит переноса изменяет ССБ, то он сбрасывается. При работе в обратном коде перенос в ССБ, если он присутствует, переносится обратно в СМБ. Важное свойство суммирования в дополнительном коде заключается в том, что, если результирующая сумма последо- вательности чисел , Х2,.. .А^вне диапазона отображения, она будет корректно посчи- тана, даже если частные суммы будут вызывать переполнение. Мы можем определить переполнение, если сумма двух чисел в дополнительном коде с одинаковыми знаками приводит к числу с противоположным знаком. Например, - + - = 0100 + 0011 2 8 = 0111 _ 7 " 8 --- = 0100 + 0011 2 8 = 0001 ~8 Сложение с использованием формата знак-величина требует проверки знака, дополнения и генерации бита переноса. Это намного более сложная операция, чем аналогичная в предыдущих двух форматах. Именно по этой причине широко исполь- зуется дополнительный код. Умножение двух чисел с фиксированной точкой, каждое из которых занимает и бит, в общем случае даст результат с длиной 2п бит. Следовательно, произведение должно быть усечено или округлено до и бит, что будет причиной появления ошибок округления или усечения.
Реализации цифровых фильтров 225 8.6.2. Представление с плавающей точкой Представление с плавающей точкой позволяет записать значительно большее число величин. Обычно это представление содержит в себе мантиссу М, которая яв- ляется дробной частью числа и экспоненты £, которая может быть положительной либо отрицательной. Таким образом, число ^определяется так: Х = М-2е, где -<м<\. 2 Как мантисса, так и экспонента требуют собственных знаковых бит. Для заданного числа бит, которыми будет представлена величина, могут быть использованы различные форматы чисел с плавающей точкой. В прошлом каж- дый из производителей компьютеров использовал для собственных продуктов свой формат. Единый стандарт представления чисел с плавающей точкой был принят Институтом инженеров по электротехнике и радиоэлектронике (ИИЭР; IEEE), который обычно относится к стандарту IEEE754. Он определяет способы пред- ставления нуля, выбор М и £, обработку переполнений и другие моменты. Для 32-битного представления нормальная (одинарная) точность представления числа определяется так: X = (-1)s-2e’I27(A/), где S— знаковый бит, £занимает 8 бит, а М — 23 бита в виде, показанном на рис. 8.19. 0 1________8 9_______________________________31 Is! Е I м I Рис. 8.19. Формат представления числа с плавающей точкой IEEE-754 Используются следующие правила: • Если Е= 255 и 0, то X— это не число (определяется NaN). • Если Е = 255 и М= 0, то X— это бесконечность (определяется как EnF). • Если 0 < £< 255, то = (-l)s* 2126 (l.M). • Если Е = 0 иМф 0, то (-l)s * 2126 (0,AQ. • Если £= 0 и М= 0, тоХравно нулю. Здесь 0,М— это дробь и 1 — это число с одним битом, представляющим целую часть числа, и 23 битами, представляющими дробную часть числа. 8 44^
226 Цифровая обработка сигналов для инженеров и технических специалистов Пример 8.5. |о|1 0 0 0 0 0 1 0|1 0 1 о ... о о| S Е М Представление числа, показанное выше, имеет значение X = -1° х2130~127 Х1.1010...0 = 13 Вполне естественно, что представление числа в формате с плавающей точкой может отобразить значительно большее число величин, чем при использовании фор- мата фиксированной точки. Однако необходимо отметить, что разрешение не будет одинаковым для всего этого диапазона. Это означает, что расстояние между двумя числами с плавающей точкой увеличивается при увеличении этих чисел. С другой стороны, разрешение при использовании формата с фиксированной точкой посто- янно во всем диапазоне. 8.6.2.1. Арифметические операции При умножении двух чисел с плавающей точкой мантиссы перемножаются, а экспоненты складываются. Но если мы хотим сложить два числа с плавающей точкой, их экспоненты должны быть одинаковыми. Число с меньшим значением экспоненты изменяется путем увеличения экспоненты и уменьшения мантиссы. Это изменение приводит к потере точности мантиссы. Ошибки переполнения возникают при умножении, когда сумма двух экспонент превышает динамический диапазон представления экспоненты. 8.7. Влияние конечной длины слова Число бит, которое используется для представления чисел, называется длиной слова, часто оно определяется архитектурой процессора цифровой обработки. В слу- чае если разработана специализированная СБИС, то мы можем более эффективно управлять длиной слова. В обоих случаях мы должны выбирать между точностью вычислений и затратами на вычисления. Не важно, как много бит отведено на пред- ставление чисел, все равно их не будет хватать для всех ситуаций, и потребуется выполнение операций округления либо усечения. Для цифровых КИХ-фильтров влияние конечной длины слова имеет следующие последствия: • Ошибки квантования коэффициентов Коэффициенты, которые мы получили на этапе аппроксимации при раз- работке фильтра, подразумевают бесконечную их точность. На практике, однако, мы имеем ограничения длительности слова такие же, как и для
Реализации цифровых фильтров 227 отсчетов сигнала. Точность задания коэффициентов фильтра влияет на частотную характеристику созданного фильтра. * Ошибки округления и усечения при выполнении арифметических операций Арифметические операции, такие, как сложение и умножение, часто дают результаты, которые требуют представления большим числом бит, чем то, которое задано длиной слова. По этой причине необходимы опе- рации округления или усечения. Некоторые структуры фильтров более чувствительны к таким ошибкам. * Арифметическое переполнение Переполнение происходит, если некоторые промежуточные результаты превышают диапазон чисел, который может быть представлен при ис- пользовании данной длины слова. Переполнение можно избежать путем тщательной разработки операций масштабирования в алгоритмах. Для БИХ-фильтров при анализе влияния конечной длины слова необходимо включить еще один фактор — результат ошибок округления. Ошибки округления или усечения выходных отсчетов в некоторый момент времени будут влиять на ошибки формирования следующего отсчета по причине рекурсивного характера БИХ-филь- тров. В некоторых случаях могут возникнуть предельные циклы. Рассмотрим эти влияния конечной длины слова более подробно. 8.7.1. Ошибки квантования коэффициентов Рассмотрим КИХ-фильтр низких частот, который был разработан при исполь- зовании окна Кайзера, в разделе 6.4.4. Полученные коэффициенты приведены в табл. 8.1. В таблице также показаны значения коэффициентов для случая, когда они квантованы восемью битами. Амплитудные характеристики фильтров до и после квантования его коэффициентов показаны на рис. 8.20. Рис. 8.20. Амплитудная характеристика КИХ-фильтра низких частот перед и после квантования коэффициентов 8*
228 Цифровая обработка сигналов для инженеров и технических специалистов Табл. 8.1. N Коэффициент 0 -0,0016 1,21 0,0022 2,10 0,0026 3,19 -0,0117 4,18 0,1270 5,17 0,0071 6,16 -0,0394 7,15 -0,0466 8,14 0,0117 9,13 -0,1349 10,12 0,2642 11 0,6803 Квантованный фильтр нарушает требования спецификации в пределах полосы задержки. Очевидно, что в этом случае потребуется представление коэффициентов фильтра числом бит, большим, чем 8. Минимальное число бит, необходимых для задания коэффициентов фильтра, может быть определено путем вычисления частотной характеристики фильтра с кван- тованными значениями коэффициентов. Для этого может быть использован метод проб и ошибок. Однако всегда полезно иметь некоторые рекомендации для оценки требований к длине слова для конкретного фильтра. Значения квантованных и неквантованных коэффициентов соотносятся пос- редством выражения /?q(n) - h(n) + e(n\ п - 0,1,..., JV-1. И показаны на рис. 8.21. Рис. 8.21. Модель квантования коэффициентов
Реализации цифровых фильтров 229 Это соотношение также может быть установлено в частотной области, рис. 8.22. Рис. 8.22. Модель квантования коэффициентов в частотной области Здесь Я(со) — частотная характеристика исходного фильтра, а Е(со) — ошибка в формировании частотной характеристики, появляющаяся вследствие квантования коэффициентов. Для структур прямой реализации фильтров, например, при округлении, наибо- лее часто используются следующие границы для величины спектра ошибки: |£(®)| = N2“B |£(®)| = 2’в^/3)1/2 |£(со)| = 2“в |(#lnW) где В — число бит, которое используется для представления коэффициентов фильтра. Первая граница — наихудшая абсолютная величина, и обычно она является слишком большой. Другие две основаны на предположении, что ошибка е(п) является равно- мерно распределенной величиной с нулевым средним. В общем случае они позволяют получить более точную оценку для требуемой длины слова. Пример 8.6. Для фильтра низких частот, разработанного в разделе 6.4.4, мы показали, что длина слова в 8 бит недостаточна для задания коэффициентов. Порядок фильтра N=22. Затухание в полосе задержки в соответствии со спецификацией должно быть не ниже 50 дБ. Таким образом, нам необходимо как минимум 10 бит для представления коэф- фициентов. Результирующая амплитудная характеристика показана на рис. 8.23.
230 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 8.23. Характеристика фильтра с квантованным коэффициентом Для БИХ-фильтров еще одним эффектом ошибок квантования может быть не- устойчивость. Устойчивость фильтра зависит от положения корней полинома зна- менателя передаточной функции. Рассмотрим секцию второго порядка (так как она является основным единичным блоком при построении фильтров более высокого порядка) в БИХ-фильтре с передаточной функцией Я(2) = l + atz +a2z Корни полинома знаменателя, либо полюса передаточной функции, располо- жены в 1Г Pi = 2L 1 + -4а2 Pi ~ 2 ai • Они могут быть либо комплексно сопряженными парами, либо реальными ве- личинами. Если это комплексно сопряженные пары, то они могут быть представлены путем использования их амплитуды и угла: а = rze p2=rZ-Q,
Реализации цифровых фильтров 231 где г = О = cos-1/-—I. к 2г) Для обеспечения устойчивости величина этих полюсов должна быть меньше единицы. Это относится к реальным и комплексным значениям полюсов. Таким образом, проверка на устойчивость для второго коэффициента будет О < |а2| < 1. Из приведенного выше уравнения для угла аргумент арккосинуса должен иметь величину, меньшую либо равную 1. Таким образом, проверка на устойчивость для первого коэффициента будет Ы-1+а2- Обе эти проверки должны давать положительный результат для того, чтобы БИХ-фильтр был устойчивым. 8.7.2. Округление и усечение Представление некоторых чисел меньшим числом бит, чем требуется для их точного отображения, неизбежно. Например, когда мы перемножаем два «-битных числа, мы получаем результат, который имеет длину, практически равную 2п бит. Этот результат также должен быть представлен с использованием п бит. То есть необходимо выполнение операций округления либо усечения. Характеристики возникающих при этом ошибок зависят от того, каким образом представлены эти числа. Рассмотрим представление числа х посредством формата с фиксированной точ- кой и длиной п бит, причем необходимо пу. бит для точного представления и «<«и. Для положительных чисел представление знак-величина и в дополнительном коде идентичны. Ошибка, возникающая при усечении, будет следующей: -(2"п - 2~Пи) < Д < 0 . с наибольшей величиной ошибки (п — nv) бит (все равны единице). Для отрицательных чисел, представленных в формате знак-величина, усечение уменьшает значение числа, и, таким образом, ошибка усечения будет положитель- ной. 0< Д <(2П-2~П‘). Таким образом, ошибка усечения для формата знак-величина будет находиться в пределах -(2“п-2~Пи)< Д <(2~п-2~Пи). При использовании дополнительного формата представления усечение отрица- тельного числа увеличит значение числа, и, следовательно, ошибка усечения будет иметь отрицательное значение. -(2-п-2-Пи) < Д <0.
232 Цифровая обработка сигналов для инженеров и технических специалистов Следовательно, ошибка усечения при записи числа в дополнительном формате будет находиться в диапазоне -(2“n-2~nu)<Et <0. Теперь рассмотрим ошибки округления для рассмотренных выше форматов записи чисел с фиксированной точкой. В этом случае ошибка не зависит от вида представления и может быть как положительной, так и отрицательной, кроме того, она симметрична относительно нуля. -|(2’n -2“п")<£'/ <|(2~п-2“п“). При использовании формата с плавающей точкой разрешение не будет равно- мерным, что было рассмотрено выше. Таким образом, ошибки округления и усечения будут пропорциональны самому числу. С этой точки зрения более удобно использо- вать относительную ошибку, определенную посредством с £?(*) - х X где Q(x) — число после выполнения операций усечения или округления. Если мантисса представлена в дополнительном коде с использованием п бит, то относительная ошибка усечения будет находиться в следующих пределах: -2~п+| < е, < 0, где х > 0 0 < et < 2“n+1, где х < 0 Относительная ошибка округления будет находиться в интервале -2~п < ег < 2~п. 8.7.3. Ошибки переполнения Ошибки переполнения возникают в случае, когда два больших числа с одним и тем же знаком складываются и этот результат превышает длину слова. Если мы используем представление в дополнительном коде, пока конечный результат будет находиться в пределах длины слова, переполнение частичных результатов не имеет значения. Если конечный результат вызывает переполнение, это может привести к серьезным ошибкам в системе. Переполнения можно избежать путем определения и корректировки ошибки в случае, когда она возникает. Однако это достаточно требо- вательный подход. Лучшим способом устранения переполнения является масшта- бирование данных либо коэффициентов фильтра. Рассмотрим КИХ-фильтр TV-го порядка. Выходной отсчет в момент времени п определяется выражением N-1 у(т?) = h(m)x(n - т). т=0
Реализации цифровых фильтров 233 Положим, что величина входа и коэффициенты фильтра меньше единицы. Тогда величина выходного эффекта будет ш=0 В худшем случае т=0 Масштабирующий множитель G может быть выбран следующим образом: Gi =Н п Все коэффициенты фильтра отмасштабированы с помощью этого коэффици- ента G В этом случае максимальная величина выходного эффекта фильтра будет всег- да меньше либо равна 1, и, таким образом, возможность переполнения полностью устраняется. Однако этот метод масштабирования излишний в плане защиты от перепол- нения. Даже на практике редко будет присутствовать «наихудший сигнал». Обычно используются два менее излишних в плане защиты значения масштабирующего ко- эффициента. Первый из них определяется так: 1/2 G2 =И2 = 22 Л2(л) Это масштабирование улучшает отношение сигнал/шум квантования, что про- исходит за счет того, что становится возможным возникновение ошибок перепол- нения. Еще один масштабирующий коэффициент, определяемый выражением =||Я|с=тах|Я(®)| <114, гарантирует, что в установившемся состоянии системы по отношению к синусои- дальной волне не будет переполнения. Часто более предпочтительным является использование масштабирующего мно- жителя в частотной области. Масштабирование имеет более важное значение для БИХ-фильтров, так как переполнение в текущем отсчете может повлиять на более чем один отсчет. В ряде случаев переполнение может вызвать осцилляции и существенно снизить полезность фильтра. Эти осцилляции могут быть устранены только путем сброса фильтра. В КИХ-фильтрах может быть использован тот же набор масштабирующих ко- эффициентов, который и описан выше. Однако измерения в частотной области при- менимы в большей степени по той причине, что длительность импульсной характе-
234 Цифровая обработка сигналов для инженеров и технических специалистов ристики в этом случае бесконечна. Эта процедура проиллюстрирована на примере ниже. Пример 8.7. Разработанный КИХ-фильтр основывается на эллиптическом фильтре низких частот 4-го порядка. Передаточная функция определяется выражением 1 +1.621784z-1 + z’2 1 + 0.715 8956z“1 + z’2 H(z) = . . l-0.04030703z+0.2332662z“2 l + 0.0514214z4+0.7972861z'- = ^(z)//2(z). которое может быть представлено в виде каскада из двух секций второго порядка. Транспонированная структура секции 1 показана на рис. 8.24. Рис. 8.24. Транспонированная структура секции 1 Импульсная характеристика и амплитудная характеристика этой секции пока- заны на рис. 8.25. Рис. 8.25. Импульсная и амплитудная характеристики секции 1
Реализации цифровых фильтров 235 В табл. 8.2 представлены три различных масштабирующих коэффициента, ко- торые могут быть использованы. Независимо от выхода этой секции выход каждого внутреннего сумматора в сек- ции должен быть также проверен. Импульсные функции уп и у12 и соответствующие им частотные характеристики X(z) 0.766733805-0.781377681z~‘ 1 - 0.4030702997Z’1 + 0.766733805z’2 #12(*) = 2,024854296 + 0.766733805z'' 1 - 0.4030702997z4 + 0.2332661953z2 ‘ показаны на рис. 8.26 и 8.27 соответственно. Рис. 8.26. Частотная характеристика Нп
236 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 8.27. Частотная характеристика Н12 Соответствующие им масштабирующие коэффициенты также приведены в табл. 8.2. Выбрав определенный тип масштабирующего множителя, должен быть выбран больший из представленных в соответствующем столбце Табл. 8.2 Выход G. g2 G3 У1 5,30748 2,7843 4,38 Уп 1,7715 0,9774 1,28 У12 4,30748 2,5985 3,67 Та же процедура может быть продолжена для определения масштабирующего коэффициента для второй секции. 8.7.4. Предельные циклы Хотя мы рассматривали цифровые фильтры как линейные системы, на самом деле они являются нелинейными. Это обусловлено квантованием, округлением, усе- чением и переполнением. Фильтр, разработанный как линейная система, которая является устойчивой, может войти в режим осцилляции при наличии переполнений. Этот тип осцилляций называется предельным циклом. Предельный цикл, возника-
Реализации цифровых фильтров 237 ющий по причине округления/усечения и переполнения, показан в двух примерах, представленных ниже. Пример 8.8. БИХ-фильтр первого порядка описывается следующим дифференциальным уравнением: у(п) = х(п) + ау(п -1) . Для а = 0,75 выходные отсчеты у(п) могут быть получены при начальном усло- вии у(0)=6 и нулевом значении входа х(п) = 0 для п > 0, как показано в табл. 8.3 и на рис. 8.28 (а). Тут показано, что выходной эффект быстро спадает до нуля. Если у(п) округляется до ближайшего целого, то после некоторого времени выходной эффект будет постоянно равен 2. Это показано на рис. 8.28 (б) и в табл. 8.3. Рис. 8.28. Выходной эффект до и после округления Табл. 8.3 п у(п), абсолютная точность у(п), округление 0 6 6 1 4,5 5 2 3,38 4 3 2,53 3 4 1,90 2 5 1,42 2 6 1,07 2 7 0,80 2 8 0,60 2 9 0,45 2 10 0,3375 2
238 Цифровая обработка сигналов для инженеров и технических специалистов Табл. 8.4 п у(п), абсолютная точность у(п), округление 0 6 6 1 -4,5 -5 2 3,38 4 3 -2,53 -3 4 1,90 2 5 -1,42 -2 6 1,07 2 7 -0,80 -2 8 0,60 2 9 -0,45 -2 10 0,3375 2 Для ос = —0,75 выходной эффект быстро осциллирует и стремится к нулю при аб- солютной точности. Если результат округляется до ближайшего целого, то выходной эффект осциллирует между —2 и +2. Эти сигналы показаны на рис. 8.29 и приведены в табл. 8.4. Рис. 8.29. Выходной эффект с и без округления Пример 8.9. Фильтр с передаточной функцией Я(*) = 1 z2-z + 0.5 является устойчивым. В структуру фильтра добавлена нелинейность от переполнения в дополнительном коде, рис. 8.30.
Реализации цифровых фильтров 239 Рис. 8.30. Структура КИХ-фильтра с добавлением нелинейного переполнения Передаточная функция введенной нелинейности показана на рис. 8.31. Рис. 8.31. Передаточная функция нелинейного переполнения В соответствии с данными рис. 8.30, если входное воздействие равно нулю, Xj (п 4-1) = х2 (п) х2 (/7 4-1) = NL [-0.5х1 (/7) 4- х2 (/?)]. При начальном условии х}(0) = 0.8 х2(0) = -0.8. В следующий момент времени мы получим: хх(п) = (—1)п0.8 х2(и) = (-1)п+10.8.
240 Цифровая обработка сигналов для инженеров и технических специалистов Учитывая, что п > 1, х,(1) = -0.8 х2 (1) = NL [-0.5х, (0) + х2 (0)] = NL[-1.2] = +0.8. Таким образом, выходной эффект будет осциллировать между 0,8 и —0,8. Отметим, что предельный цикл начнется только в случае, если ранее было пе- реполнение. Если в системе не возникает переполнения, она будет оставаться ли- нейной.
Цифровые процессоры сигналов Большинство востребованных приложений ЦОС требуют отдельно спроекти- рованных СБИС для того, чтобы аппаратным образом внедрить соответствующие алгоритмы, однако множество общих приложений могут быть выполнены при ис- пользовании доступных в свободной продаже сигнальных процессоров. Например, похоже, что большинство людей используют как минимум один ЦПС в настольном компьютере, наиболее вероятно, как часть звуковой карты. Учитывая его всеобщее применение, он будет рассмотрен в данной главе с целью дать описание основных характеристик этих процессоров. Мы также попытаемся описать некоторые особен- ности ЦПС фирм Texas Instruments и Analog Devices. 9.1. Характерные особенности Несколько компаний по производству полупроводниковых приборов произ- водят набор микросхем ЦПС с различными возможностями. Большинство ЦПС являются простыми процессорами. Существуют микросхемы, которые интегрируют в себе несколько ЦПС, такие, например, как Texas Instruments TMS320C8x. Другие сочетают в себе ЦПС и микроконтроллер, например, Motorola DPS568xx. Некоторые фирмы предлагают ядро микропроцессора, включающее только ЦП, который может использоваться как строительный блок при создании полузаказных ИС. Это позволяет разработчику интегрировать программируемый ЦПС и другие заказные цепи в единую проблемно-ориентированную интегральную схему (заказная ИС, ASIC). Наличие ядра микропроцессора уменьшает время разработки и наиболее полезно при производстве больших объемов для специализированных областей при- менения, таких, например, как телекоммуникации. В ряде случаев производитель, который производит ядро, также может производить и проблемно-ориентированные интегральные схемы. В противном случае производитель просто передает лицензию на производство ядра потребителю, который и выбирает соответствующую произ- водственную фирму. Большинство этих процессоров имеют некоторые общие особенности, которые содействуют эффективному вычислению алгоритмов ЦОС.
242 Цифровая обработка сигналов для инженеров и технических специалистов 9.1.1. Быстрое умножение-накопление В наших обсуждениях в предыдущих главах было указано, что операции типа умножение-сложение или умножение и накопление (УИН) являются одними из основных составляющих функций ЦПС. Эти функции включают в себя филь- трацию, БПФ и вычисление корреляции. Таким образом, все ЦПС разработаны для очень эффективного выполнения операций типа УИН. В действительности они способны выполнять УИН-операции за единичный цикл. Чтобы достичь такой скорости, умножитель и накопитель интегрированы во внутреннюю шину данных процессора. Регистр накопителя может сохранять дополнительные биты, полученные при выполнении арифметических операций, с целью избежать пере- полнения. 9.1.2. Архитектура памяти с множественным доступом В большинстве традиционных микропроцессоров оперативная память (ОЗУ) может быть использована как для хранения программ, так и для хранения данных. Например, для того чтобы выполнить сложение, микропроцессор должен уметь из- влекать команду и затем данные, которые должны быть просуммированы. Таким об- разом, общая операция выполняется в несколько циклов. Большинство ЦПС, однако, имеют раздельную память инструкций и память данных. Это позволяет процессору извлекать команду и соответствующие данные одновременно. Для того чтобы обеспечить одновременный доступ к различным ячейкам па- мяти, ЦПС должен иметь несколько внутрипроцессорных шин, независимые банки памяти и/или многопортовое встроенное ОЗУ. Это означает, что некоторым образом программа и данные должны быть переданы из внешней памяти во внутреннюю память микросхемы. 9.1.3. Специальные режимы адресации ЦОС-алгоритмы обычно требуют суммирование по набору индексов. Например, при фильтрации КИХ-фильтром соответствующее уравнение N-1 у(п) - h(m)x(n - т) т=0 представляет собой суммирование членов, являющихся умножением элементов с индексами п и n-ш. Эти индексы соотносятся с ячейками памяти. Чтобы выпол- нить эффективную адресацию, ЦПС обычно включает в себя специально для этого предназначенные блоки генерации адресов. Эти блоки работают в фоновом режиме, генерируя следующий адрес параллельно с выполнением текущих инструкций про-
Цифровые процессоры сигналов 243 граммы. Специальные режимы адресации, таким образом, способны выполнять такие действия, как адресация с реверсированием бит для выполнения БПФ и круговая адресация для кольцевых буферов. 9.1.4. Специальное управление программой Для формирования циклов встроены специальные инструкции, которые до- статочно часто необходимы для алгоритмов ЦОС. Другие специальные инструкции включают в себя инструкции поблочного перемещения данных с внешней памяти во внутреннюю, низкоуровневые прерывания для быстрого осуществления операций ввода/вывода. 9.1.5. Периферийные интерфейсы Большинство ЦПС включают в себя параллельный и последовательный интер- фейсы связи с другими устройствами, такими, как ЦАП и АЦП. ЦПС часто исполь- зуется как сопроцессор для другого микропроцессора, который работает как хост. Некоторые ЦПС имеют специальные регистры для соединения с хост-процессором. Некоторые версии ЦПС имеют другое интегрированное периферийное оборудование для специальных приложений. Аппаратная архитектура, включая разработку шин данных и архитектуру па- мяти, будет обсуждаться более подробно в следующих разделах. Примеры того, как специальные инструкции и методы адресации могут быть использованы, приведены в разделе 9.3. 9.2. Аппаратная архитектура В этом разделе мы раскроем некоторые аспекты архитектуры ЦПС. Сначала рассматриваются общие вопросы, связанные с шинами данных и организацией па- мяти. Затем они показаны посредством описания архитектуры двух специфичных семейств ЦПС. 9.2.1. Тракты обработки данных Тракты обработки данных относятся к шинам данных арифметической обра- ботки, включая умножители, аккумуляторы, другие регистры и специализированные модули, такие, как генераторы адресов. Шины данных ЦПС с фиксированной точкой (Texas Instruments TMS320C6x) и ЦПС с плавающей точкой (Lucent DPS32C) показа- ны на рис. 9.1 и 9.2 соответственно.
244 Цифровая обработка сигналов для инженеров и технических специалистов Рис. 9.1. Шины данных TMS320C6x Отметим, что семейство TMS320C6x — одно из последних в ЦПС микросхемах. Устройства обработки чисел с фиксированной точкой состоят из двух параллельных шин данных вместо одной шины данных, которая присутствует в других ЦОС-процессорах. Рис. 9.2. Шины данных DSP32C Lucent Technologies
Цифровые процессоры сигналов 245 9.2.1.1. Умножители Умножение является одной из основных операций в ЦОС-алгоритмах. По этой причине все ЦПС имеют умножитель, который может умножать два соответствен- ных по размеру числа за единичный цикл. Однако различный дизайн приводит к их различным характеристикам. Некоторые из них, которые относятся к ЦПС с фикси- рованной точкой, рассмотрены ниже. В Motorola DPS5600x в блоке УИН умножитель интегрирован с сумматором. В некоторых других процессорах, таких, например, как Lucent DSP16xx, умножитель и сумматор разделены. Результат умножения сначала сохраняется в регистре произведе- ния, до того как он посылается в сумматор для накопления. Результат УИН-операций будет, таким образом, задержан на один командный цикл, перед тем как он может быть использован в следующей команде. Мы знаем, что произведение двух n-битных чисел в формате с фиксированной точкой требует 2п бит для хранения результата с целью избежать любой потери точ- ности. Большинство умножителей для чисел с фиксированной точкой дают результат, который в два раза больше длины слов участвующих операндов. Таким образом, умно- житель сам по себе не является источником ошибок. Однако некоторые умножители дают результат, который является усеченным. Примером последних является Zilog Z893x, который использует 16-битные операнды и дает 24-битные результаты. Некоторые умножители используют конвейерную обработку с целью увеличения скорости. Конвейерная обработка — это метод, который позволяет двум или более операциям перекрываться в процессе их выполнения. Задача разбивается на набор раздельных подзадач, которые перекрываются в процессе их исполнения. Таким об- разом, задержка между входными воздействиями поступает на умножитель тогда, когда будет известен результат. Он может быть длиннее, чем один цикл команды, даже если процесс умножения занимает именно это время. Эта задержка называется латентностью. Преимуществом конвейерной обработки является то, что длинные серии умножений выполняются более эффективно по отношению к аналогичному умножителю, но без конвейерной обработки. Латентность будет наибольшей (на- ихудшей), когда выполняется только одно умножение. Ядро ЦПС CD2450 фирмы Clarkspur Design использует конвейерное умножение. 9.2.1.2. Аккумулятор Так как основной операцией в алгоритмах ЦОС является операция УИН, акку- мулятор (сумматор) может стать узким местом архитектуры. Это особенно важно, если присутствует только один аккумулятор, и он используется для хранения как одного из первичных операндов, так и для хранения результата. Много ЦПС имеют более одного аккумулятора. Разрядность аккумулятора должна быть на несколько бит больше, чем разряд- ность выхода умножителя. Эти дополнительные биты, известные как сторожевые биты, позволяют сохранять набор результатов без риска переполнения. Аккумулятор с п сторожевыми битами имеет возможность сохранять значения до 2П без необходи- мости их промежуточного масштабирования. Так, например, DSP16xx фирмы Lucent Technologies имеет 4 сторожевых бита, a ADSP21xx фирмы Analog Devoces имеет 8 сторожевых бит.
246 Цифровая обработка сигналов для инженеров и технических специалистов Многие другие ЦПС, вместо того чтобы использовать сторожевые биты, делают выходной регистр умножителя масштабируемым посредством сдвига на несколько бит. Эта операция выполняется до суммирования в аккумуляторе и обычно в преде- лах единичного числа команды. TMS320C2x и TMS320C5x фирмы Texas Instruments, например, могут выполнять автоматический сдвиг результата умножения влево до 6 бит. Однако использование сторожевых бит более предпочтительно, так как при этом не будет потерь в точности. 9.2.2. Архитектура памяти Тракты обработки данных достаточно важны при ускорении процесса вычисле- ний, в то время как хорошая архитектура памяти хранит данные, необходимые для вычислений, что также весьма важно. Большинство ЦПС используют так называ- емую гарвардскую архитектуру. На рис. 9.3 показана типичная архитектура микро- процессора, известная как архитектура Неймана, на рис. 9.4 - общая гарвардская архитектура. Рис. 9.3. Архитектура Неймана В то время как общая архитектура микропроцессора имеет только одну шину для данных и для команд, гарвардская архитектура имеет одну для программных команд и две для данных. Памяти программ и данных разделены. Таким образом, допускается перекрытие выборок инструкций (извлечение следующей инструкции из памяти) и выполнения (включая чтение и запись данных в память). Большинство ЦПС в той или иной форме являются построенными по гар- вардской архитектуре. Это такие, как серия TMS320 фирмы Texas Instruments, серия ADSP2100 фирмы Analog Devices и серия DSP16xx фирмы Lucent Technologies. Ин- тересно отметить, что для процессоров DSP16xx не реализован полный потенциал
Цифровые процессоры сигналов 247 двойного банка памяти, и запись в память занимает два командных цикла. Есть ряд процессоров, которые содержат три банка памяти, а не два. Таким образом, возможны три независимых доступа к памяти за одну команду. Такие процессоры — это Z893x фирмы Zilog, D950-CORE фирмы SGH-Thompson, DSP6500x, DSP 563хх и DSP96002 фирмы Motorola. Рис. 9.4. Гарвардская архитектура Такая структура с множеством шин является дорогостоящей для использования ее с внешней (находящейся вне микросхемы) памятью. Обычно доступен только один адрес и один элемент данных вне процессора. Таким образом, необходимо, чтобы данные могли быть эффективно перемещены из внешней памяти во внутреннюю память процессора. 9.2.2.1. Память с множественным доступом Еще одним способом достичь множественного доступа к памяти за один ко- мандный цикл является использование памяти с множественным доступом. Доступ к такой памяти может быть получен за часть инструкции, что в результате позволяет получить раздельный множественный доступ по одной шине. DSP32xx фирмы Lucent Technologies может выполнить четыре раздельных доступа к памяти процессора за единичный цикл команды. Память с множественным доступом может быть использована совместно с гарвардской архитектурой для получения большей производительности. Процессор
248 Цифровая обработка сигналов для инженеров и технических специалистов ZR3800x фирмы Zoran имеет память программ с единичным доступом и память дан- ных с множественным доступом. 9.2.2.2. Многопортовая память Еще один тип памяти, который может быть использован, — это многопортовая память. Она имеет набор независимых шин адресов и данных, что позволяет парал- лельный множественный независимый доступ к памяти. Таким образом, в этом слу- чае нам нет необходимости в разделении банков памяти данных и программ, так как доступ к ним может быть получен одновременно в пределах одного банка. На рис. 9.5 показана гарвардская архитектура с двухпортовой памятью данных и однопортовой памятью программ. Эта архитектура используется в процессорах DSP561xx фирмы Motorola. Недо- статком многопортовой памяти является необходимость в большей площади крем- ниевой подложки. Рис. 9.5. Гарвардская архитектура с двухпортовой памятью данных 9.2.2.3. Кэш программа Кэш программа — это малый объем памяти, предназначенный для хранения команд программы в ядре процессора. Он уменьшает количество извлеченных инс- трукций из памяти программ, ускоряя, таким образом, работу. Он (кэш программ) обычно намного проще, чем тот, который встречается в микропроцессорах общего назначения.
Цифровые процессоры сигналов 249 Наиболее простым типом кэш-программ является буфер повторения единичной команды. Он используется совместно с командой повторения. Команда, которая должна быть выполнена несколько раз, загружается в этот буфер. После этого такая же команда извлекается из кэша, а не из памяти программ. Такая схема присутствует в семействе процессоров TMS320C2x и TMS320C5x фирмы Texas Instruments. Так как при таком выполнении не требуется доступ к памяти программ, память программ может быть использована для чтения или записи данных. В течение этого времени процессор имеет еще одну дополнительную доступную шину данных. Буфер повторения может быть создан для хранения более чем одной инструк- ции. В этом случае блок команд может быть загружен в кэш и затем повторяется, что освобождает шину данных программ для данных. Такой механизм весьма полезен для алгоритмов, содержащих циклы из нескольких команд. Такие циклы часто использу- ются в преобразованиях, перемещениях блоков данных и при фильтрации. Более общей формой многокомандного буфера повторения является односек- торный кэш команд. Он сохраняет набор последних выполненных команд. Если в процессе выполнения программы происходит шаг назад на одну инструкцию в кэше (называется «удачное обращение к кэшу»), то инструкция выполняется из кэша. Очевидно, что эффективность такого типа кэша определяется числом «удачных об- ращений к кэшу», который, в свою очередь, зависит от алгоритма. В ряде случаев разработчик программного обеспечения может приспосабливать свой алгоритм для получения как можно большего числа «удачных обращений к кэшу» с целью ускоре- ния работы алгоритма. Такой тип кэша присутствует в ZR3800x фирмы Zoran. Также в ряде процессоров присутствует многосекторный кэш команд. Он работа- ет как односекционный, за исключением того, что там могут быть сохранены два или более независимых сегментов команд. Так, например, процессор DSP320C3 фирмы Texas Instruments имеет два сектора по 32 слова каждый. Каждый сектор хранит ко- манды с различных областей памяти программ. Кэш обновляется, когда происходит «неудачное обращение к кэшу» (событие, противоположное «удачному обращению к кэшу»). В этом случае, если внешний адрес является присутствующим в одном из двух секторов, который в текущий момент ассоциирован с кэшем, то инструкция сохраняется в соответствующем месте кэша. Если адрес находится вне того, который отслеживается кэшем, то все содержимое сектора обнуляется, и отслеживаться будет новый набор адресов. Алгоритм, который принимает решение, какой сектор кэша бу- дет обнулен, называется алгоритмом удаления самых последних элементов (алгоритм СПЭ). Как подразумевает его название, кэш самых поздних используемых «удачных обращений к кэшу» сохраняется, а остальные обращения обнуляются. Некоторые ЦПС дают программисту больший контроль над использованием кэша. В некоторых случаях программист может зафиксировать содержимое кэша в некоторой точке программы либо отменить использование кэша. Осуществление руч- ного управления кэшем позволяет разработчику обеспечить соответствие программы граничным временным условиям исполнения. Даже в случаях, когда физический кэш не присутствует, программист может в ручном режиме переместить для исполнения часть кода программы с более медлен- ной внешней памяти в более быструю память программ. Этот процесс называется «кэширование в ручном режиме» и часто позволяет существенно повысить скорость выполнения программ.
250 Цифровая обработка сигналов для инженеров и технических специалистов 9.2.2.4. Прямой доступ к памяти Прямой доступ к памяти (ПДП) — это процесс передачи данных без привлече- ния микропроцессора. Он часто используется для передачи данных с/на устройства ввода/вывода. Для управления такой передачей необходим отдельный контроллер ПДП. Контроллер уведомляет процессор ЦОС о готовности к передаче. После этого процессор передает управление этой шиной внешних данных и передает управление шиной ПДП-контроллеру. ПДП-контроллер затем передает требуемое количество данных и процессору по окончании передачи. Серии TMS320C3x, TMS320C4x фирмы Texas Instruments, DSP96002 фирмы Motorola и ADSP2106x фирмы Analog Devices — наиболее сложные процессоры ЦОС — имеют внутренний контроллер ПДП. 9.2.3. Архитектура TMS320C5X Функциональная структурная схема серии цифровых процессоров TMS320C5x фирмы Texas Instruments показана на рис. 9.6. Шина данных Рис. 9.6. Функциональная структурная схема серии TMS320C5x
Цифровые процессоры сигналов 251 Центральный процессор (ЦПУ) состоит из двух арифметико-логических уст- ройств (АЛУ), параллельного логического устройства (ПЛУ) и регистров. Первый АЛУ называется центральным АЛУ (ЦАЛУ). Он используется для арифметических вычислений в дополнительном коде и состоит из следующих элементов: • умножителя 16x16 бит, результат представлен в формате 32 бит; • 32-битный аккумулятор; • 32-битный буфер аккумулятора; • сдвигающие устройства на выходе обоих аккумуляторов и регистра ре- зультата. Второе АЛУ называется вспомогательным регистром арифметико-логического устройства (ВРАУ). Это 16-битный беззнаковый арифметический модуль, который производит вычисления непрямого адреса путем использования входа вспомога- тельных регистров, регистров индексов и вспомогательного регистра регистр-срав- нения. Масштабирующее сдвиговое устройство используется для предварительного масштабирования. У него есть 16-битный вход, который связан с шиной данных, и 32-битный выход к АЛУ. Он обеспечивает сдвиг входных данных влево от 0 до 16 бит. Сдвиговые устройства также связаны с входом регистра результата умножения и аккумулятора для постмасштабирования. Они позволяют ЦАЛУ выполнять цифровое масштабирование, извлечение отдельных бит, арифметические действия с повышен- ной точностью и предотвращение переполнений. ПЛУ работает независимо и параллельно АЛУ. Оно выполняет булевы вычисле- ния и операции с битами. Оно может установить, очистить, проверить или переклю- чить биты в регистре статуса, регистре управления либо любых данных в памяти. Эти операции не влияют на содержимое аккумулятора и регистра результата. Существуют 8 регистров с распределением памяти, которые могут быть использованы для непря- мой адресации. Также здесь присутствуют два кольцевых буфера. Буфер управления кольцевого регистра управляет им. Начальный и конечный адреса двух буферов хранятся в разде- льных регистрах; эти буферы могут быть включены либо отключены. Они могут быть использованы для инкрементального (увеличивающегося) или декрементального (уменьшающегося) обновления данных. Четыре внутренних шины позволяют иметь одновременный доступ к программе и данным. Они включают в себя: • шину данных программы (ШДП); • шину адреса программы (ШАП); • шину чтения данных (ШЧД); • шину чтения адреса данных (ШЧАД). ШАП обеспечивает адресацию в область памяти программы для чтения и запи- си. Шина данных программы передает код команд и непосредственные операнды из памяти программ в центральный процессор. ШЧД связывает различные элементы центрального процессора с областью памяти данных. Шины программ и данных могут работать одновременно, совместно передавая данные из внутренней памяти данных и внутренней или внешней памяти программ к умножителю для выполнения единичного цикла инструкций УИН.
252 Цифровая обработка сигналов для инженеров и технических специалистов В процессоре имеется 4-битный конвейер для отложенных ветвей, команд вы- зова и возврата. Для заданной последовательности команд вторая команда может осуществлять чтение данных одновременно с тем, когда первая команда осуществляет запись данных. Также он обеспечивает формирование адреса индекса при реверси- ровании бит для БПФ по основанию 2. С5х ЦПС содержит оперативное запоминающее устройство с доступом по двум каналам на 1056 слов по 16 бит. Область памяти разделена на 3 отдельных селективных блока памяти: • 512 слов данных или программ; • 512 слов данных; • 32 слова данных. Оперативное запоминающее устройство с доступом по двум каналам предна- значено только для хранения данных. Однако оно также может быть использовано для хранения команд программы. Две шины данных (ШЧД и ШЧАД) позволяют центральному процессору читать и записывать в память с доступом по двум каналам в один командный цикл. В микросхеме также присутствует оперативная память с одним каналом доступа. Она может быть сконфигурирована как память данных и/или программ. Эта опера- тивная память может быть разделена на блоки размером 1К или 2К. Доступ к каж- дому блоку может осуществляться параллельно с доступом к другому блоку. Однако возможен только один доступ в определенный блок за цикл. Если центральному про- цессору потребуется множественный доступ к одному и тому же блоку, управляющие логические схемы ОЗУ запланируют доступ для различных циклов. 9.2.4. Архитектура ADSP21xx Рис. 9.7. Внутренняя архитектура семейства ADSP21xx
Цифровые процессоры сигналов 253 Внутренняя архитектура серии ADSP21xx фирмы Analog Devices показана на рис. 9.7. Для этой серии существуют незначительные вариации во внутренней орга- низации функциональных блоков. Но в общем случае они содержат три независимых блока: арифметико-логическое устройство (АЛУ), блок типа умножитель-накопитель и параллельный сдвигатель. Эти блоки обрабатывают 16-битные данные. Также имеет- ся два генератора адреса и определитель последовательности выполнения команд. Характеристика пяти внутренних шин приведена ниже. * Шина данных программ (ДП) Шина ДП используется для передачи команд с внешней памяти во внут- ренний регистр команд. Команды извлекаются и загружаются в регистр в течение одного цикла, после чего они выполняются в течение следую- щего цикла, пока последующие команды не будут извлечены. Она имеет такую же ширину, как и слово команды процессора, то есть 24 бита. * Шина адреса программ (АП) Адрес следующей команды генерируется определителем последователь- ности выполнения команд и зависит от текущей команды и внутреннего состояния процессора. Определитель последовательности выполнения команд обрабатывает ответвления счетчиков циклов и служебные пус- тые циклы. Затем этот адрес помещается на шину АП. Шина ФП имеет ширину 14 бит, что позволяет в прямом виде задавать адреса 16К слов программного кода. * Шина адреса памяти данных (АПД) Ширина шины АПД также составляет 14 бит, что позволяет в прямом виде задавать адреса 16К слов данных. * Шина данных памяти данных (ДПД) Шина ДПД служит для передачи за один цикл содержимого из одного регистра в другой регистр или во внешнюю память. Существует также устройство обмена между шинами ДП и ДПД, которое позволяет данным передаваться с одной шины на другую. • Шина результата (Р) Соединяет вычислительные модули. Каждый вычислительный модуль имеет собственный набор входных и выходных регистров. Эти регистры обслуживают точки останова для данных между внешней памятью и вычислительными модулями. Это эффективно представляет один уровень конвейера на входе либо на вы- ходе. Вычислительные модули чаще выстраиваются параллельно, чем последовательно. Чтобы избежать существенных задержек в конвейере при выполнении серии различных операторов, шина Р разрешает ис- пользовать любой из выходных регистров напрямую без задержки как вход для другой вычислительной операции. Также тут присутствует кэш команд. Он содержит 16 слов. Команды, загружен- ные в регистр команд, также записываются в кэш-память. При извлечении допол- нительных инструкций они по принципу кольца переписывают текущее содержание кэша. Когда текущая команда совершает доступ к памяти программ, кэш автома- тически выполняет проверку регистра команды на достоверность его содержания. Кэш наиболее эффективен в случае, когда выполняется программный цикл, и все
254 Цифровая обработка сигналов для инженеров и технических специалистов инструкции этого цикла могут быть размещены в кэш-памяти. Операции с кэшем полностью прозрачны для пользователя. 9.3. Специальные инструкции и режимы адресации 9.3.1. Кольцевой буфер Для того чтобы получить выходной отсчет с КИХ-фильтра TV-го порядка, необхо- димо (N+1) УИН-операций. Эти соответствующие 2VH-1 циклов команд каждого УИН- оператора требуют для выполнения один цикл. Служебные команды для вычисления результата фильтрации включают в себя перемещение входного отсчета с входного порта во внутренний регистр, время, необходимое для обновления содержимого ре- гистров, и время для вывода результата фильтрации в память. Независимо от оптимизации УИН-операций при разработке аппаратного обес- печения служебные команды также должны быть минимизированы с целью дости- жения максимальной пропускной способности. Рассмотрим общую архитектуру ЦПС, которая показана на рис. 9.8. Память данных Память данных Рис. 9.8. Общая архитектура ЦПС Алгоритм обработки отсчетов для КИХ-фильтра N-ro порядка следующий: Для каждого входного отсчета х выполнить: У = ^NWN for i = do: wi+i = y = y + hiWl .
Цифровые процессоры сигналов 255 Отметим, что регистры w. используются для хранения предыдущих входных от- счетов. Эти регистры должны обновляться в процессе выполнения алгоритма. В пер- вом поколении ЦОС-процессоров операции вида w1+i = у=y+h^ выполнялись с использованием двух инструкций: один — для сдвига данных и второй — для УИН-операций. Учитывая, что в процесс оптимизации УИН-операций были вложены большие усилия, дополнительный цикл, необходимый для обновления зна- чения регистра, является потерей времени. Таким образом, в современных ЦПС эти две операции должны выполняться путем одной единичной инструкции. Еще одним способом эффективного выполнения внутреннего обновления за- ключается в использовании кольцевых буферов. Некоторые ЦПС имеют встроенное аппаратное обеспечение для упрощения реализации кольцевого буфера. Их примеры включают в себя ADSP2101-21020 фирмы Analog Devices, TMS320C30-C60 фирмы Texas Instruments, DSP56001 и DSP96002 фирмы Motorola. Основная концепция сле- дующая: предварительно при обновлении мы переместили данные из одного место- положения в другое. Теперь данные остаются зафиксированными в соответствующем месте памяти, а обновляется только их адрес. Рассмотрим КИХ-фильтр третьего порядка с 4 входными отсчетами, которые должны быть буферизованы. Вместо того чтобы помещать их в прямую линию, как мы делали на рис. 9.9, теперь мы построим их в виде кольца, как показано на рис. 9.10. Рис. 9.9. Линейный буфер для данных
256 Цифровая обработка сигналов для инженеров и технических специалистов Как видно из этой схемы, указатель р указывает на первую УИН-операцию. На рис. 9.10(a) показано, как 4 входных отсчета сохраняются в отдельный момент времени п. В следующий момент времени доступен новый входной отсчет. Вместо того чтобы сохранять его в w0, как это мы делали ранее, теперь он сохраняется в w3, и указатель перемещается по часовой стрелке на одно положение, как показано на рис. 9.10(6). Это означает, что данные в остальных трех регистрах остаются на своих позициях. На рис. 9.11 показаны положение указателя и содержание регистра для 8 после- довательных моментов времени, начиная с п = 0. Рис. 9.11. Указатели и содержание регистра для 8 последовательных моментов времени
Цифровые процессоры сигналов 257 При использовании кольцевых буферов количество перемещаемых данных ми- нимизируется. Именно поэтому обновление регистра и УИН-операции могут осу- ществляться в одном цикле команд. Таким образом, общее число циклов команд, необходимых для операции фильтрации КИХ-фильтра У-го порядка, остается 7V+1. В ЦПС должно быть аппаратное обеспечение, поддерживающее кольцевую или мо- дульную адресацию. Кольцевая буферизация особенно полезна при использовании ее в цифровых ау- диоэффектах. Реверберация в 100 мс с частотой дискретизации 44.1 кГц соответствует кольцевой буферизации на 4410 отсчетов. В главе 5 мы уже рассматривали, как ис- пользуется кольцевая буферизация для синтеза звука с помощью волновых таблиц. 9.3.2. Примеры кодов Некоторые примеры реальных кодов помогут проиллюстрировать отдельные специальные инструкции и доступные методы адресации. Мы обсудим коды для выполнения операций свертки или КИХ-фильтрации с использованием кольцевого буфера и операции типа «бабочка» при БПФ. Для этого мы будем использовать ко- манды TMS320C5x фирмы Texas Instruments. Вся секция кодов включена для полноты изложения. Длинные программы не должны отпугивать читателя. Ему нет необходимости понимать каждую часть кода. 9.3.2.1. КИХ- фильтрация КИХ-фильтрация будет выполняться с использованием кольцевой адресации пос- редством использования кольцевого буфера. Регистр ВК инициализируется на длину фильтра N. Положение буфера данных и коэффициентов фильтра должно начинаться с области памяти с адресами, которые будут кратными наименьшей степени 2, которая больше N. Например, если N= 7, первый адрес данных должен быть кратен 8 (23). Та- ким образом, самые меньшие четыре бита стартового адреса должны быть равны нулю. Организация памяти данных показана на рис. 9.12. Начальные входные отсчеты Младший адрес h(N-1) Самый старый x[n-(N-1)J h(N-2) x[n-(N-2)] • • • • • • Старший адрес h(1) Самый новый x(n-1) h(0) x(n) Рис. 9.12. Организация памяти данных для программы КИХ-фильтрации Конечные входные отсчеты 9 445
258 Цифровая обработка сигналов для инженеров и технических специалистов Коды для N= 16 приведены ниже. ; Implements a 16-th order FIR filter .mmregs .include ‘main.inc’ ; The filter coefficients COEFFSTART .sect ‘coeff fir’ ;filter coefficients .word 6Fh .word 0F3h .word 269h .word 50Dh .word 8A9h .word 0C99h .word 0FF8h .word HEBh .word HEBh .word 0FF8h .word 0C99h .word 8A9h .word 50Dh .word 269h .word 0F3h .word 6Fh COEFF_END FIRDP .usect ‘fir_vars’,0 d_filin .usect ‘fir_vars’,l dfilout .usect ‘fir_vars’,l fir_coeff_table .usect ‘fir_coeff,20 d_data_buffer .usect ‘fir_bfr’ ,40 ;buffer size .def fir init initialize filter ; This routine initializes circular buffers for both ; data and coefficients. .asg ARO, FIRINDEXP .asg AR4, FIR DATA P .asg AR5, FIR COEFF P .sect ‘fir_prog’ fir_init: STM #fir_coeff_table,FIR_COEFF_P RPT #K_FIR_BFFR-1 ; move coeffs from MVPD #COEFF_FIR_START,*FIR_COEFF_P+;program to data
Цифровые процессоры сигналов 259 STM #K_FIR_INDEX,FIR_INDEX_P STM #d_data_buffer,FIR_DATA_P ;load cirbfr address ;for recent samples RPTZ A,#K_FIR_BFFR STL A,*FIR_DATA_P+ ;reset the buffer STM #(d_data_buffer+K_FIR_BFFR-l),FIR_DATA_P RETD STM #fir_coeff_table,FIR_COEFF_P 5 ; This subroutine performs FIR filtering using MAC instruction. ; Accumulator A (filter output) = h(n)*x(n-i) for i=0,1,..., 15 .asg AR6,INBUF_P .asg AR7,OUTBUF_P •asg AR4,FIR_DATA_P .asg AR5,FIR_COEFF_P .sect ‘fir_prog’ firtask: LD #FIR_DP,DP STM #K_FRAME_SIZE-1 ,BRC ;repeat 256 times RPTBDfir_filter_loop-1 STM #K_FIR_BFFR,BK ;circular buffer size LD *INBUF_P+,A ;load the input value fir_filter: STL A,*FIR_DATA_P+% ;replace oldest sample with ;new RPTZ A,(K_FIR_BFFR-1) MAC *FIR_DATA_P+0%,*FIR_COEFF_P+0%,A filtering STH A,*OUTBUF_P+ ;replace oldest buffer value firfilterloop RET Отметим, что здесь присутствует специальная команда FIRS, которая помогает построению КИХ-фильтра со строго линейной фазовой характеристикой, с симмет- ричной импульсной характеристикой. 9.3.2.2. БПФ Теперь рассмотрим кодирование 256-точечного БПФ реальной последователь- ности. Это алгоритм размещений по основанию 2. Распределение памяти для этой программы показано на рис. 9.13. 9*
260 Цифровая обработка сигналов для инженеров и технических специалистов Память программ 0080h 015Fh Область программы (около 224 слов) FF80h FFFFh Таблица векторов прерывания и зарезервированные положения d_grsp_cnt d_twid_idx d_data_idx Sine Cosine FFT_data real_fft_output Память данных OOOOh 005Fh Регистры с распределением памяти 0060h Групповой счетчик 0061 h Индекс таблицы настроек 0062h Индекс данных буфера обработки 0070h 007Fh Стек 0400h 05FFh Таблица синусов 0800h 09FFh Таблица косинусов OCOOh 13FFh Буфер обработки данных (максимум 2К слов) Нижняя половина сначала работает как реальный входной буфер для БПФ 1400h 17FFh Выходной буфер спектра мощности (1К слов максимум) Рис. 9.13. Распределение памяти для программы БПФ Существуют четыре основные части: • Уплотнение в памяти и реверсирование бит входных данных Вход представлен с реверсированием бит, что приведет к естественному по- рядку бит на выходе. Исходная последовательность из 2N точек реальных данных копируется в смежные секции памяти (real_fft_input) и интерпретиру- ется как TV-точечная комплексная последовательность d(n). Реальные отсчеты с четными индексами формируют реальную часть d(n), а нечетные отсчеты формируют мнимую часть. Этот процесс называется уплотнением данных. Комплексная последовательность после этого подвергается операции ревер- сирования бит и сохраняется в буфере обработки данных (fft_data).
Цифровые процессоры сигналов 261 ;Bit Reversal Routine .asg AR2,RE0RDERED_DATA .asg AR3,ORIGINAL-INPUT .asg AR7,DATA_PROC_BUF .sect ‘rfft_prg’ bitrev: SSBX FRCT ;tum fractional mode on MVDK d_input_addr,ORIGINALJNPUT ;AR3-> 1st original input STM #fft_data,DATA_PROC_BUF ;AR7->data proc buffer MVMM DATA_PROC_BUF,REORDERED_DATA;AR2->lst bit-reversed data STM #K_FFT_SIZE-1 ,BRC RPTBD bit_rev_end-l STM #K_FFT_SIZE,ARO ;AR0->half size of cir buf MVDD *ORIGINAL_INPUT+,*REORDERED_DATA+ MVDD * ORIGIN AL-INPUT-,* REORD ERED_DATA+ MAR *ORIGINAL_INPUT+OB bit_rev_end: RET .end • N-точечное комплексное БПФ Комплексное TV-точечное БПФ выполняется естественным образом в буфере обработки данных. Настраиваемые параметры хранятся в двух раздельных таблицах, соответствующих синусу и косинусу. Каждая таблица содержит 512 величин, соответствующих диапазону углов от 0 до почти 180 градусов. Схе- ма индексирования, которая приведена здесь, позволяет использовать те же самые таблицы настраиваемых параметров для различных размеров входных данных. Кольцевая адресация индексирует таблицу, причем начальные адреса каждой таблицы необходимо начинать с адреса с нулями в восьми младших битах. ; There are log(N)-l stages •asg ARI,GROUP_COUNTER •asg •asg •asg •asg •asg AR2,PX AR3,QX AR4,WR AR5,WI AR6,BUTTERFLY_COUNTER •asg AR7,DATA_PROC_BUF ;for stages 1 and 2 •asg AR7,STAGE-COUNTER ;for remaining stages .sect ‘rfFt_prg’ fft: •*****Stage J***** STM #K_ZERO_BK,BK ;BK=0 so that LD #-l,ASM ; ARn+0% == *ARn+0 ;outputs div by 2 at each stage
262 Цифровая обработка сигналов для инженеров и технических специалистов MVMM DATA_PROC_BUF,PX ;PX->PR LD STM STM *PX,A ;A := PR #fft_data+K_DATA_IDX_l ,QX ;QX -> QR #K_FFT_SIZE/2-l,BRC RPTBD stage 1 end-1 STM SUB ADD #K_DATA_IDX_1+1 ,ARO *QX,16,A,B ;B := PR-QR *QX,16,A ;A:=PR+QR STH ST LD SUB ADD STH ST LD stage lend: A,ASM,*PX+ ;PR’ := (PR+QR)/2 B,*QX+ ;QR’ := (PR-QR)/2 * PX,A ;A := PI * QX,16,A,B ;B := PI-QI * QX,16,A ;A:=PI+QI A,ASM,*PX+O ;РГ := (PI+QI)/2 B,*QX+O% ;QI’ := (PI-QI)/2 * PX,A ;A := next PR ******StQgg 2***** MVMM DATA_PROC_BUF,PX ;PX->PR STM #fft_data+K_DATA_IDX_2, STM #K_FFT_SIZE/4-l,BRC QX ;QX->QR LD *PX,A RPTBD stage2end-l STM # K_DATA_I DX_2+1, ARO ; 1st bufferfly ;A := PR SUB *QX,16,A,B ;B := PR-QR ADD *QX,16,A ;A := PR+QR STH A,ASM,*PX+ ;PR’ := (PR+QR)/2 ST B,*QX+ LD *PX,A SUB *QX,16,A,B ADD *QX,16,A STH A,ASM,*PX+ STH B,ASM,*QX+ ; 2nd butterfly MAR *QX+ ;QR’ :=(PR-QR)/2 ADD *PX,QX,A ;A := PR+QI SUB *PX,*QX-,B ;B := PR-QI STH A,ASM,*PX+ ;PR’ := (PR+QI)/2 SUB *PX,*QX,A ST B,*QX LD *QX+,B ST A,*PX ADD *PX+O%,A ;A:= PI-QR
Цифровые процессоры сигналов 263 ST LD stage2end: A,*QX+O% *PX,A ;*****Stage 3 thru Stage logN-1***** STM ST STM STM STM STM ST STM ST stage: #K _TWID_TBL_SIZE,BK ;BK=twiddle table size #K_TWID_IDX_3,d_twid_idx jinit index of table #K_TWID_IDX_3, ARO #cosine,WR ;initial WR pointer #sine,WI #K_L0GN-2-1 ,STAGE-COUNTER #K_FFT_SIZE/8-1 ,d_grps_cnt #K_FLY_COUNT_3-1 ,BUTTERFLY_COUNTER #K_DATA_IDX_3,d_data_idx;init index for data STM LD ADD #fft_data,PX ;PX->PR d_data_idx,A *(PX),A STLM A,QX ;QX->QR MVDKd _grps_cnt,GROUP_COUNTER group: MVMD BUTTERFLY_COUNTER,BRC RPTBD butterflyend-1 LD *WR,T MPY *QX+,A ;# of butterflies MACR *WI+0%,*QX-,A ;A := QR*WR+QI*WI ;QX->QR ADD *PX,16,A,B ST B,*PX SUB *PX+,B ST B,*QX MPY *QX+,A MASR *QX,*WR+0%,A ADD *PX,16,A,B ST B,*QX+ SUB *PX,B LD *WR,T ST B,*PX+ MPY *QX+,A butterflyend: ; Update pointers for next group PSHM ARO MVDK d_data_idx,ARO MAR *PX+0 MAR *QX+0 ;B :=(QR*WR+QI*WI)+PR BANZD group,*GROUP_COUNTER- POPM ARO MAR *QX- ; Update counters and indices for next stage LD d_data_idx,A
264 Цифровая обработка сигналов для инженеров и технических специалистов SUB #1,А,В STLM В, BUTTERFLYCOUNTER STL А, 1 ,d_data_idx LD d_grps_cnt,A STL A,ASM,d_grps_cnt LD d_twid_idx,A STL A,ASM,d_twid_idx BANZ D,stage,*STAGE_COUNTER- MVDK d_twid_idx,ARO fft_end: RET .end • Разделение четных и нечетных частей Разделяет выход БПФ на четыре независимых последовательности: ЧР, HP, ЧМ, НМ, которые являются четной реальной, нечетной реальной, четной мнимой и нечетной мнимой частями соответственно. * Формирование окончательного выхода Еще один набор операций типа «бабочка» необходим для генерирования 2А-точечной комплексной выходной последовательности, соответствующей ДПФ исходной 2А-точечной последовательности реальных данных. Выход- ной результат хранится в буфере обработки данных. Коды для последних двух частей не включают в себя новых команд и по этой причине не приводятся. 9.4. Микропроцессоры общего назначения для задач ЦОС Микропроцессоры общего назначения постоянно повышают свою мощность. Часто персональные компьютеры или встроенная система имеют достаточные ре- зервные возможности. Эти резервные возможности могут быть использованы для применения в менее требовательных приложениях ЦОС. В то же время последние микропроцессоры, такие, например, как Motorola/IBM PowerPC бхх, MIPS R10000, Sun UltraSPARC, Hewlett-Packard PA-7100 и Intel Pentium MMX, имеют встроенные особенности, присущие ЦПС. Некоторые способны выполнять УИН-операции над числами с плавающей точкой за один цикл команды в определенных средах. Они также содержат специальные инструкции для обработки мультимедийных сигналов, что является необходимым в современных компьютерах. Intel принял инициативу, предназначенную для обработки сигналов средствами центрального процессора (ООСЦП), которая использует центральный процессор в персональных компьютерах для выполнения таких задач, как сжатие и декомпрессия аудио, синтез звука и другие. При увеличении мощности центрального процессора и повышении его тактовой частоты может быть выполнено большее число ЦОС- функций.
Цифровые процессоры сигналов 265 9.5. Выбор процессора Хотя многие ЦПС схожи между собой, они имеют тонкие различия. Мы вкратце описали некоторые различия в их схемах. Сравнить между собой различные процессо- ры не так просто. Надеемся, что эти фундаментальные знания помогут пользователям верно выбрать устройство для приложения по обработке. Множество производителей классифицируют свои процессоры по параметру МКС (миллионов команд в секунду). Но это достаточно субъективная величина, которая зависит от архитектуры устройства. Рейтинг по МКС не отражает произво- дительности алгоритма на различных процессорах. При использовании программ тестирования производительности убедитесь в том, что используете алгоритмы, сход- ные с используемыми в реальном приложении. Наиболее важна производительность ЦОС-системы в целом при использовании в конкретном приложении. Критерии выбора должны учитывать сложность системы, стоимость и время разработки. Другие учитываемые факторы следующие: • Объем внутреннего ОЗУ: так как время доступа во внутреннее ОЗУ обычно меньше, чем во внешнюю оперативную память, производительность ваших программ может изменяться в зависимости от размера внутреннего ОЗУ. • Если требуется большая пропускная способность для данных, необхо- димо учесть число контроллеров ПДП (прямого доступа к памяти) для обработки движения потоков данных через систему без загрузки цент- рального процессора. • Некоторые ЦПС имеют встроенные высокоскоростные порты связи для передачи данных от и к другим устройствам в системе. Относительно высокая стоимость устройств, способных работать с плавающей точкой, не позволяет получить им широкое распространение. Большинство систем используют ЦПС, предназначенные для выполнения операций с фиксированной точкой. Однако существует множество проблемно-ориентированных версий этих устройств. Они имеют такие специфические области применения, как мобильная сотовая связь, кодирование видео и речи, управление и др. Время разработки всей системы в существенной мере зависит от качества до- ступного программного и аппаратного инструментария. Это будет темой следующего раздела. 9.6. Дальнейшие исследования Сравнение различных цифровых процессоров не является целью данной гла- вы. Весьма подробный отчет о производительности был выполнен в Berkeley Design Technology Inc. Их контактная информация находится в табл. 9.1. Сравнение между отдельными процессорами также можно найти во всемирной сети. Подробности относительно ЦПС можно найти на сайте производителей: Texas Instruments http://www.ti.com Analog Devices http://www.analog.com Motorola http://www.mot.com
IO Средства разработки аппаратного и программного обеспечения В этой последней главе мы рассмотрим ряд средств разработки как для аппарат- ного, так для программного обеспечения систем ЦОС. Некоторые из этих средств являются общедоступным ПО, большинство других - коммерческими. Очевидно, что мы не сможем описать абсолютно все существующие средства. Но те, что мы опишем здесь, являются наиболее популярными. Необходимо также отметить, что мы не рекламируем ни одного из производителей или их продукцию. Подбор правильных средств для эффективной работы нельзя недооценивать. Некоторые ЦПС и системы могут выглядеть впечатляюще в силу их характеристик. Но, в конце концов, разработчик ЦОС все еще нуждается в хороших и эффективных средствах для своевременного создания систем в рамках выделенного бюджета. Сначала мы вкратце рассмотрим процесс разработки системы ЦОС. Затем вкрат- це обсудим доступные средства производителей ЦПС, средства программного моде- лирования и другие средства разработки. 10.1. Процесс разработки системы ЦОС Упрощенный процесс разработки системы ЦОС показан на рис. 10.1. Упрощен- ным он считается, поскольку мы полагаем, что конечный продукт будет использовать- ся с ЦПС на специализированном аппаратном обеспечении. Как мы уже упоминали в предыдущих главах, можно применять и другие подходы. Например, целая система может быть частью программного обеспечения, работающего на специализированном микропроцессоре. С другой стороны, может возникнуть необходимость разработать специализированное СБИС-устройство для применения алгоритма в критичных ко времени приложениях. Процесс разработки состоит из нескольких основных этапов: • Определение системных требований. • Разработка алгоритма. • Выбор ЦПС.
Средства разработки аппаратного и программного обеспечения 267 • Разработка аппаратного обеспечения ЦОС. • Разработка программного обеспечения ЦОС. • Интеграция системы. • Отладка и тестирование системы. Конечный продукт Рис. 10.1. Процесс разработки системы ЦОС 10.1.1. Определение системных требований Хорошая инженерная разработка требует глубоких знаний текущей проблемы. Важно, чтобы в начале проекта были сформулированы все требования. За этим про- цессом часто не следят должным образом. Об успехе конечной системы судят по тому, насколько удовлетворяют изначально и порой даже превосходят необходимые основ- ные требования. Определения обычно включают в себя по меньшей мере следующие: • входной и выходной сигналы или требования к данным; • спецификации интерфейса разработки (СИР); • спецификация на разработку основных элементов (СРОЭ).
268 Цифровая обработка сигналов для инженеров и технических специалистов СИР определяет все характеристики интерфейса, такие как скорость данных, длина данных, протоколы управления и передачи сообщений. Она может включать также типы используемых коннекторов и электрических характеристик. СРОЭ оп- ределяет все требования для сигнальной и несигнальной обработки. Требования к обработке сигналов могут включать ширину полосы, задержку пропускной способ- ности и режимы обработки. Несигнальная обработка может включать в себя фактор размера и конструктивные характеристики конечного продукта, вес, требования к энергопотреблению, надежность и требования к охлаждению. 10.1.2. Разработка алгоритмов Следующим шагом процесса разработки является создание или выбор подходя- щего для обработки сигнала и получения требуемого выходного сигнала алгоритма. Для того чтобы подобрать подходящий алгоритм, нам необходимо сначала иметь четкое понимание характеристик сигналов, которые будут подвергаться обработке. Интересующие нас характеристики сигналов включают следующее: * Число каналов или датчиков (сенсоров) В некоторых приложениях сигналы собираются одновременно с набора датчиков. Они должны быть некоторым образом скомбинированы для того, чтобы извлечь требуемую информацию. Такими приложениями являются, например, сонар (гидролокатор) подводной лодки, который принимает надводные акустические сигналы для определения наличия другого судна, а при наличии такового — его местоположение и рассто- яние до него. Антенная решетка также все шире используется в ком- мерческих сотовых системах связи для увеличения ее емкости. В таком случае несколько антенн, прикрепленных к базовой станции соты, будут одновременно излучать и принимать информацию. * Аналоговый или цифровой Если используется аналоговый сигнал, то необходимо применять соот- ветствующий АЦП для того, чтобы получить содержание сигнала. * Диапазоны ширины полосы и диапазоны частот Данная информация используется для определения частоты дискрети- зации и для задач фильтрации. • Спектральные составляющие Даже в рамках ширины полосы сигнала фазовые и амплитудные харак- теристики могут варьироваться. • Динамический диапазон (число бит) Влияет на выбор при реализации с фиксированной точкой и плавающей точкой. • Устойчивое или переходное состояние или оба состояния Длительность целого сигнала обычно очень высока для того, чтобы обра- батывать весь сигнал одновременно. Сигнал обычно подвергается обра- ботке или отсчет за отсчетом, или блок за блоком. Если сигнал находится в устойчивом состоянии, границы эти блоков не будут сильно влиять на выходной эффект обработки. Однако для сигналов в переходном состо-
Средства разработки аппаратного и программного обеспечения 269 янии длительность перехода обычно относительно короткая, и границы блоков могут иметь влияние на выход. * Детерминированный или случайный Случайные сигналы — это такие сигналы, которые подчиняются опреде- ленным статистическим свойствам, таким, например, как распределение амплитуды. Для цифровых сигналов с конечным алфавитом1 вероятность появления каждого алфавита может быть различна или мы можем считать, что вероятность является равномерно распределенной. Большинство сигналов, особенно цифровые сигналы, моделируются как случайные. Сигналы, отличные от случайных, называются детерминированными. Сигнал может быть как полностью детерминированным, так и полностью случайным, а также тем и другим одновременно. Это зависит также от того, на каком уровне мы моделируем сигнал. Например, тоновый (DTMF) сигнал конкретной клавиши клавиатуры телефона может рассматриваться как детерминистский, поскольку при каждом нажатии на эту клавишу будет генерироваться конкретный сигнал. Во время передачи будет добавляться случайный шум, и принятый сигнал в этом случае будет представлять собой комбинацию как детерминистского, так и случайного сигнала. Передатчик имеет информацию о том, какая клавиша на клавиатуре была нажата, однако этой информации нет у приемника. То есть что касается приемника, сигнал, который он принимает, может быть любым DTMF сигналом. Следовательно, полученный сигнал может быть смоделирован как чисто случайный сигнал. Обработка случайных сигналов является очень важной и интересной областью в рамках широкого применения ЦОС. • Тйпшума Шум (помеха) — это такой компонент системы, который является неже- лательным. Шум может быть аддитивным или мультипликативным, что означает, что он либо добавляется в требуемый сигнал, либо умножается на этот сигнал. Большинство шумов являются аддитивными. Примером служит шум, добавленный к переданному по каналу сигнала. По теле- визору мы иногда видим помеху в виде крапинки, отображенную в виде черных и белых точек, расположенных на экране случайным образом. Мультипликативный шум возникает в результате встряски камеры или размывания изображения вне фокуса. * Формат данных, мультиплексирование и кодирование Для цифровых сигналов, особенно тех, которые подвергаются кодиро- ванию и мультиплексированию, нам необходимо знать формат, чтобы восстановить исходную последовательность символов. • Скорость передачи данных * Требуемая информация Иногда довольно просто забыть то, какую информацию мы пытаемся извлечь из сигнала. Требуемая информация может быть просто исход- 1 Сигнал с конечным алфавитом — сигнал с конечным множеством принимаемых значений. (Прим, пер.)
270 Цифровая обработка сигналов для инженеров и технических специалистов ным сигналом, то есть сигнал, в котором присутствует по возможности минимальное количество шума. Мы также можем извлекать информа- цию из цифрового сигнала, представляющего собой последовательность символов. В системах распознавания речи требуемая информация — это цепочка слов, которые были произнесены. Вышеперечисленный список не является исчерпывающим. Но в нем присутс- твуют базовые характеристики сигналов, которые будут обрабатываться, и после этого мы сможем начать поиск подходящего алгоритма. В большинстве случаев алгоритм уже доступен, и его необходимо лишь привести в соответствие текущим нуждам. Например, алгоритмы фильтрации КИХ- и БИХ-фильтрами широко изучены, о чем уже упоминалось в предыдущих главах. Необходимо только разработать подходящий фильтр, который зависит от частотных характеристик сигнала. Если подходящий алгоритм недоступен, его необходимо разработать, а это может занять от нескольких дней до нескольких лет. В некоторых случаях функциональные характеристики алгоритма известны за- ранее. В противном случае необходимо будет задать также и эти характеристики. Критерии функциональности зависят от конкретного приложения. Некоторые кри- терии включают в себя пропускную способность задержки, отношение сигнал/помеха и точность извлеченной информации. Критерии также могут быть субъективными, например, качество изображения после обработки часто нуждается в оценке челове- ком. Качество и ясность речи, сгенерированной компьютером, также нуждаются в человеческой оценке. 10.1.3. Реализация системы Диаграммы блоков обработки Прототип Рис. 10.2. Процедура реализации системы ЦОС
Средства разработки аппаратного и программного обеспечения 271 Этапы реализации системы показаны на рис. 10.2. Весь процесс сначала показан в виде структурной схемы, с точки, где сигнал или данные приняты системой до мо- мента, когда данные покидают систему. Диаграмма может быть получена исходя из определений системных требований. Затем осуществляется анализ ресурсов, которые необходимы для любой части всего процесса. Анализ включает следующие пункты: * Анализ ресурсов процессора Период времени, необходимый ЦПС для обработки единицы данных (возможно, блока данных или единичного отсчета). Это будет зависеть от алгоритма. • Анализ ресурсов памяти Объем необходимой внутренней и внешней памяти. * Анализ ресурсов обмена данными Период времени, необходимый для сдвига данных из внешней памяти во внутреннюю и наоборот. Необходимо также учитывать обмен данных между ЦПС и управляющим процессором в случае наличия такового. * Анализ ресурсов управляющего процессора Если в системе присутствует отдельный управляющий процессор, то необходимо учитывать вычислительные требования к процессору. На- пример, в некоторых системах связи ЦПС может осуществлять единич- ную модуляцию и демодуляцию, в то время как отдельный процессор управляет протоколом и внешним интерфейсом. • Анализ ресурсов входного/выходного процессора В некоторых системах используются входные и/или выходные процес- соры, которые управляют внешними интерфейсами. К данным процес- сорам также относятся процессоры, которые управляют параллельным или последовательным интерфейсом. Затем может быть проанализирована пропускная способность системы. Она сравнивается с системными требованиями, и если какие-либо требования наруша- ются, то необходимо будет настроить конфигурацию системы. 10.1.4. Отладка и тестирование системы Как только система была создана, ее можно проверить на соответствие специ- фикациям. Установка определенного набора тестов в соответствии с необходимыми спецификациями требует четкого и ясного понимания самих спецификаций и теку- щего состояния. В идеальном варианте отладка системы осуществляется командой разработчиков, в то время как тестирование системы — отдельной командой, которая не задействована напрямую в подробной разработке. Таким образом, существует боль- шая вероятность того, что ошибки, которые не определила команда разработчиков, определит команда, тестирующая систему. Отладка обычно производится при помощи внутрисхемного эмулятора, логичес- кого анализатора и программами-отладчиками. Все производители ЦПС предлагают ряд внутрисхемных эмуляторов и других средств разработки для данных целей.
272 Цифровая обработка сигналов для инженеров и технических специалистов 10.2. Средства разработки Поиск через Интернет покажет многочисленные источники для разработки сис- тем ЦОС. Некоторые из них доступны от производителей схем для конкретной схемы. Другие являются коммерческими или условно бесплатными продуктами сторонних фирм. Доступны также и программные продукты для общего пользования, хотя они большей частью используются для некоммерческих образовательных целей. 10.2.1. Средства разработки на языках высокого уровня Первое поколение ЦПС программировалось в основном на языке ассемблера. Средств разработки на языках высокого уровня (компиляторы и т.д.) на самом деле не существует. Тем не менее, использование такого языка высокого уровня, как «С», для разработки программных продуктов в ЦОС-приложениях находит более широкое применение. Это происходит по нескольким причинам. • Производительность Написание программ на языках высокого уровня значительно проще, чем написание на языке ассемблера. Довольно часто алгоритмы разра- батываются и тестируются именно на языках высокого уровня. Затем эти программы могут быть скомпилированы для соответствующего ма- шинного кода процессора напрямую и в большинстве случаев без изме- нений. • Обслуживание Любой, кто разрабатывал программы на языке ассемблера и языке вы- сокого уровня, согласится с тем, что коды языков высокого уровня зна- чительно легче обслуживать. • Мобильность При необходимости несложно перекомпилировать программу, написан- ную на языке высокого уровня, для различных целей ЦПС. • Эффективность Существует очевидное отношение, касающееся скорости выполнения. Наиболее эффективные коды запрограммированы вручную на языке ассемблера. Но с увеличением скорости ЦПС некоторая неэффектив- ность ряда приложений вполне допустима. На самом деле наиболее кри- тичные ко времени выполнения части программы могут программиро- ваться вручную на языке ассемблер, а остальные — на языках высокого уровня. Большинство редакторов связей имеют возможность связывать объектные коды, сгенерированные ассемблерами и компиляторами для воспроизведения исполнимой программы. Для того чтобы создать компиляторы языка высокого уровня, которые бы эф- фективно работали с ЦПС, необходимо обратиться к нескольким областям. • Использование памяти Как мы уже упоминали в предыдущей главе, большинство ЦПС имеют встроенную и внешнюю память. То, каким образом она используется,
Средства разработки аппаратного и программного обеспечения 273 часто определяет эффективность программы. Область памяти ЦПС так- же обычно разделяется особым образом. Программист особым образом может сказать компилятору, куда задать конкретные переменные или программные коды. Компиляторы в основном создают коды, требую- щие больше памяти по сравнению с ручным кодированием. Это может касаться процессоров с небольшим адресуемым пространством. • Использование специальных команд ЦПС имеют специальные команды для чрезвычайно эффективного вы- полнения таких задач, как команды умножения и суммирования. Ком- пилятору необходимо распознать такие элементы и использовать эти специальные команды вместо общих. Это особо эффективно при работе с системами ЦОС с фиксированной точкой. Во-первых, ЦПС с фикси- рованной точкой часто используются в приложениях, которые имеют большую стоимостную эффективность. Таким образом, эффективное использование памяти является еще более важным. Во-вторых, алгорит- мам с фиксированной точкой необходимы особые условия для масшта- бирования и округления, как обсуждалось выше. Большинство языков высокого уровня не поддерживают типы данных с фиксированной точ- кой, таким образом, программирование алгоритмов с фиксированной точкой становится значительно более сложным. В общем случае условия эффективности для систем ЦОС с плавающей точкой менее жесткие. • Доступность языков Среди языков программирования высокого уровня С, по-видимому, является наиболее популярным. Все производители микросхем ЦПС или ядер ЦПС, которые поддерживают разработку с помощью языков высокого уровня, имеют компиляторы С. До настоящего времени только DSP16xx компании Lucent Technologies и AR3900x компании Zoran не имеют компиляторов на С. Существует С компилятор общего назначения очень высокого качества, называемый GNU С, который доступен в сети Интернет. Он разрабо- тан компанией Free Software Foundation. Некоторые разработчики сде- лали модификации так, что определенные версии могут генерировать коды для ЦПС. В особенности это относится к одной версии для серии DSP5600x компании Motorola. Тем не менее язык С является языком программирования общего назначения. И ему не хватает некоторых важных свойств, которые позволили бы упростить процесс кодирования алгоритмов ЦОС. Например, типы данных с фиксированной точкой будут чрезвычайно полезны для процессоров с фиксированной точкой. Многие про- изводители добавили собственные расширения стандартному языку С для поддержки ряда этих команд. Эти расширения позволяют назначать конкретные переменные к конкретным областям памяти и включать сегменты языка ассемблера в исходный код языка С. Компания ANSI Numerical С Extension Group (NCEG), которая представляет собой комитет Американского национального института стандартов, работает в на- правлении стандартизации расширений для языка С, относящихся к поддержке чис- ленных расчетов. Ожидается, что если по стандартам будет достигнуто соглашение, то
274 Цифровая обработка сигналов для инженеров и технических специалистов производители будут обеспечивать их компиляторы по меньшей мере сокращенным вариантом расширений. Другим языком программирования высокого уровня, который приобретает популярность, является C++. Способность создавать новые типы данных и опе- рации с использованием C++ делает его более гибким по сравнению с языком С. Использование этих данных и операций, определяемых пользователем, дает компилятору больше возможностей для оптимизации. Кроме того, могут быть ис- пользованы объектно-ориентированные методы программирования, которые уп- рощают сопровождение программы. В настоящее время только серии TMS320C3x и TMS320C4x ЦПС компании «Тексас инструменте» имеют компиляторы C++ от сторонних производителей. Библиотеки рабочих программ, которые полезны для ЦОС-приложений, до- ступны у производителей. В них включаются библиотеки математических функций, функций обработки сигналов, обработка векторов и библиотеки прикладных про- грамм для кодеков речи, модемов и обработки изображений. 10.2.2. Средства разработки языком ассемблер Типичная среда программирования языком ассемблер для ЦОС-систем вклю- чает следующее: • ассемблер; • редактор связей; • программа моделирования набора программ; • отладчик; • макетная плата; • внутрисхемный эмулятор; • библиотеки программных приложений. На рис. 10.3 показаны отношения между различными частями среды разра- ботки. • Ассемблеры и редакторы связей Ассемблеры для ЦПС не отличаются от ассемблеров для процессоров общего назначения. Большая часть из них является макроассемблерами со стандартными функциональными возможностями, такими, как ус- ловная компоновка программы. • Общий формат объектных файлов (ОФОФ) является стандартным фор- матом для комбинированных объектных кодовых файлов. ОФОФ позво- ляет делать аннотации объектных кодов с информацией об отладке при необходимости. Этот стандартный формат также упрощает интеграцию сторонних библиотек. • Программы моделирования Программы моделирования набора программ моделируют процесс ис- полнения процессором набора команд на хост-компьютере. Пользова- тель может увидеть изменения в различных регистрах, памяти и флагах во время выполнения программы. Пользователь может выполнять про- грамму пошагово. Это очень важно для процесса отладки и оптимизации
Средства разработки аппаратного и программного обеспечения 275 алгоритмов. Ограничение таких программ моделирования заключается в том, что они моделируют один процессор и не поддерживают модели- рование периферийного оборудования или других процессоров ввода- вывода. II III II II I II III III II III III IIIII Рис. 10.3. Среда разработки системы ЦОС • Внутрисхемный эмулятор Внутрисхемный эмулятор (ВЭ) — это система аппаратного обеспечения, которая находится между хост-компьютером и системой ЦОС. Програм- мное обеспечение на главном компьютере позволяет пользователю сле- дить и управлять процессором целевой системы во время выполнения программ. Пользователь может запустить пошаговый режим выполнения программы и выборочно модифицировать содержание ячейки памяти
276 Цифровая обработка сигналов для инженеров и технических специалистов или регистров. ВЭ является важным средством отладки, поскольку он позволяет разработчику видеть, что происходит, когда программы вы- полняют в реальном времени на целевой системе. Существуют три основных типа ВЭ: • Эмулятор с переходным устройством ЦПС удаляется из целевой системы. У ВЭ есть переходное устройство, которое встроено в сокет ЦПС в целевой системе. Эмулятор содержит специальную версию целевого ЦПС, который моделируется. Этот спе- циальный процессор имеет дополнительное аппаратное обеспечение для управления ими. Недостатком является его цена. Обычно они достаточно дорогие, а сами процессоры достаточно специфичны. Также переходное устройство эмулятора изменяет электрические харак- теристики схемы, что может привести к возникновению определенных проблем во времени. По этой причине эмуляторы с переходным устройс- твом не работают на полной скорости. • Эмулятор на основе сканирования Такой тип эмуляции стал довольно популярным в последние годы. При- чиной этому является тот факт, что новое поколение ЦПС имеет встроен- ный отладчик логических схем со специальным последовательным пор- том для доступа к этому отладчику внешними устройствами. Некоторые из этих процессоров используют последовательный совместимый порт, стандарт IEEE JTAG1 (Стандарт 1149.1). Доступ к свойствам отладки схемы может быть осуществлен просто путем подключения главного процессора к этому порту, используя специальный адаптер. Внутри- процессорный отладчик логических схем следит за выполняющимися операциями в реальном времени, останавливая их при достижении точ- ки прерывания. В этом случае отладочная информация доступна через последовательный порт. Существуют три основных преимущества эмуляции на основе сканирования по сравнению с использованием переходного устройства. Первое преимущество заклю- чается в том, что нет необходимости удалять процессор из целевой системы, поэтому нет влияния на электрические характеристики. Другим преимуществом является то, что число сигнальных линий, выходящих из целевой системы, достаточно мало (5 для системы JTAG), потому что связь идет через последовательный порт. Такие сигналы могут действовать при значительно меньшей скорости, чем другие сигналы процес- сора. Третьим преимуществом является то, что он поддерживает операции ЦПС на максимальной скорости. • Эмулятор, основанный на мониторинге Это одна из самых недорогих типов эмуляции. Программа контроля, называемая монитор, работает на ЦОС-процессоре. Монитор, исполь- зующий один из последовательных портов на ЦПС, осуществляет связь между целевой системой и хост-компьютером. Программа-отладчик ра- ботает на хост-компьютере. Преимуществом данного подхода является 1 JTAG — система отладки JTAG, встраивается в ядро процессора средств отладки и их связи с внешними отладочными средствами. Пятипроводная диагностическая система, которая является частью стандарта IEEE 1149.1. (Прим, пер.)
Средства разработки аппаратного и программного обеспечения 277 то, что нет необходимости в особом аппаратном обеспечении. Этот тип эмуляции из трех является самым дешевым. Но обычно невозможно установить точки прерывания в реальном времени. Также, так как мо- нитор работает на самом ЦОС-процессоре, состояние процессора изме- няется до того, как у пользователя появляется возможность проверить его. Данный подход обычно используется для макетных плат с низкой стоимостью или демонстрационных плат. • Макетные платы Большинство производителей ЦПС производят макетные платы или демонстрационные платы, которые имеют невысокую стоимость. Они очень полезны для изучения конкретных микросхем и их возможностей, экспериментирования с разработкой алгоритмов и простых систем. Су- ществует также целый ряд автономных и сменных плат для персональных компьютеров или рабочих станций. Обычно они более мощные, с боль- шим объемом памяти, а некоторые из них можно подключить в слот рас- ширения ПК. Они полезны для разработки программ. Стоимость таких систем варьируется от нескольких сотен долларов США до нескольких тысяч, в зависимости от конфигураций процессора и памяти. Некото- рые из подобного рода плат имеют встроенные наборы процессоров для параллельной обработки. 10.2.3. Другие средства разработки Существует большое число программного обеспечения, которое поддерживает разработку и программирование алгоритмов ЦПС. Некоторые из них имеют очень хорошую визуальную среду программирования, и программирование может осу- ществляться блок-схемами по принципу «перетащить и оставить» и соединением блок-схем. Они имеют средства моделирования, анализ операций с фиксированной точкой, а ряд из них — даже генераторы кода ЦПС. Некоторые из них перечислены ниже: • MATLAB Программный пакет разработан компанией Mathworks Inc. Програм- ма очень популярна в высших учебных заведениях, поэтому она стала промышленным стандартом программ моделирования и разработки алгоритмов обработки сигналов. Многие учебники по ЦОС использу- ют MATLAB в качестве примеров. В пакет встроен анализ вычислений с фиксированной точкой и генератор кода ЦПС. Также используется визуальная среда программирования, которая называется Simulink. Бо- лее подробную информацию можно получить по адресу: http://www. mathworks.com • DADiSP DADiSP — это интерактивная графическая рабочая таблица, визуально ориентированный программный пакет для отображения, управления, анализа и представления научных и технических данных. Программа имеет возможность собирать, управлять, редактировать, сокращать, пре-
278 Цифровая обработка сигналов для инженеров и технических специалистов образовывать, отображать и анализировать данные. Более подробная информация доступна на корпоративной Интернет-странице, посвя- щенной разработке ЦПС: http://www.dadisp.com Доступна бесплатная версия для студентов и 30-дневная коммерческая пробная версия, которую можно скачать на их веб-странице. • MatrixX MatrixX представлена на рынке компанией Integrated Systems Inc. Она разработана как программа моделирования и имитации среды с исполь- зованием стандартных блоков графической среды разработки. Поддержи- ваются математический анализ и разработка визуальных средств для блоч- ной модели. Доступны автоматический программный генератор кода и ко- мандная кнопка конфигурирования аппаратного обеспечения в реальном времени. Подробная информация доступна по адресу: http://www.isi.com • Signal processing worksystem (SPW) Система SPW от компании Alta Group — это средство моделирования и разработки, которое ликвидирует разрыв между моделированием на уровне системы и реализацией элементов системы. SPW поддерживает реализацию с цифровыми процессорами сигналов и с аппаратным обес- печением. Подробности на: http://www.altagroup.com Данный программный пакет доступен только для рабочих станций UNIX. • COSSAP COS SAP — инструментальная система/система программирования циф- ровой обработки сигналов, обеспечивающая единую среду в процессе разработки. Она использует систему потокового моделирования (СПС), которая работает с потоком данных через системы, таким образом, у разработчиков не будет необходимости определять архитектуру до непос- редственной разработки алгоритмов. Так как это в основном самосинх- ронизирующаяся схема, определение систем с различными скоростями передачи сигналов и асинхронных систем — процесс не более сложный, чем определение систем с постоянной скоростью передачи сигналов. Согласно данным компании Synopsis In, этот подход также влияет на значительно меньшие потери моделирующего процессора, обычно поз- воляя выполнять операции в 8—16 раз быстрее, чем моделирование, ос- нованное на потактовых вычислениях. Программные продукты COSSAP включают в себя библиотеки обработки сиг- налов и генератор кодов на языке HDL для динамической разработки и разработки схем уровня RTL на языке VHDL или Verilog, генератор кодов ЦПС для оптимальной генерации С и средства разработки ЦОС для совместного моделирования ЦПС с помощью ЦПС компании TI и Lucent Technologies. Веб-страница компании Synopsis расположена по адресу: http://www.synopsis.com Данный программный пакет доступен только для рабочих станций UNIX. • Hypersignal Hypersignal — это графическая ЦОС-среда для разработки ЦОС-прило- жений в реальном времени с использованием ЦПС и схем сбора дан-
Средства разработки аппаратного и программного обеспечения 279 ных. В нее также включается автоматический исходный генератор кодов языка С для генерирования исходного кода на языке С из визуальных разработок. Подробная информация находится на странице компании Hyperception Inc.: http://www.hyperception.com • Scilab Scilab — это язык высокого уровня для многочисленных расчетов с дру- жественной к пользователю средой. Scilab разработан INRIA1 и доступен бесплатно через анонимный FTP-сервер в исходном и двоичном форма- те. Scilab работает под Windows 95/NT, Linux и большинством рабочих станций UNIX. Scilab можно загрузить через анонимный FTP-сервер с ftp.inria.fr (Интернет 192.93.2,54), в папке /INRIA/Scilab. Конечно, это список неисчерпывающий. Мы не рекламируем ни один из опи- санных продуктов. Материал представлен для ознакомительных целей. 10.2.4. Операционные системы, работающие в реальном времени Операционные системы контролируют доступы к ресурсам системы и управляют порядком выполнения программ на процессоре. Операционные системы, работа- ющие в реальном времени (ОСРРВ), — это такие системы, которые обеспечивают латентность (задержку во времени) прерываний. Другими словами, задержка во вре- мени между моментом, когда имеет место прерывание, и временем, когда активиру- ется специальная программа обработки прерываний, ограничивается программой прерываний. ОСРРВ будут особо полезными, когда появляются многочисленные прерывания в неопределенный промежуток времени. Операционные системы, работающие в реальном времени, наиболее часто ис- пользуются с универсальными процессорами. Несколько из них доступны сейчас для ЦОС-процессоров. Обычно это адаптированные системы для универсальных процес- соров. До настоящего времени только один изначально разработан для использования с ЦПС. Он называется SPOX от компании Spectron Microsystems. Существуют версии ЦПС с плавающей и фиксированной точкой от компаний Texas Instruments, Motorola и Analog Devices. 1 INRIA — Национальный институт исследований в области компьютерной обработки данных и автоматики. (Прим, пер.)
Приложение А Двоичное кодирование уровней квантования Допустим, что мы представляем диапазон R л-битным числом. Другими сло- вами, диапазон R квантуется с 2П уровнями квантования. Если R униполярное, то квантованная величина xQ находится в диапазоне [О,R]. В случае если величина xQ биполярная, то она находится в диапазоне [-R/2, R/2]. Запишем л-битную модель как вектор b = [йп_р bn 2, й0], где ЬпХ называется самый старший бит (ССБ), а Ьо— самый младший бит (СМБ). Существует множество способов, с помощью которых можно использовать л-битную модель для кодирова- ния xQ. Три наиболее распространенных из них. • Униполярный обычный двоичный код x0=R(b {2~'+К 22“2+... + &! 2ЧхЧ)+Z>02~x). • Биполярный смещенный двоичный код xQ=R(bxA2~l + 6Х_2 2 2 +... + Л, 2<х| ’ + V х -0.5). • Биполярный двоичный дополнительный код х() = R(к-12“' + 6v2 2~2 +... + 2~(к~1) + Ь02~к -0.5). Здесь Ьп ] означает двоичное число bn г
Двоичное кодирование уровней квантования 281 Пример А.1. При R = 2 Ии 3 бит (8 уровней) квантования соответствие между бинарным представлением и квантованной величиной можно записать в виде следующей таб- лицы. Ь2 Ь1 Ь0 Обычный двоичный код Смещенный двоичный код Двоичный дополнительный код 111 1,75 0,75 -0,25 по 1,50 0,50 -0,50 101 1,25 0,25 -0,75 100 1,00 0,00 -1,00 011 0,75 -0,25 0,75 010 0,50 -0,50 0,50 001 0,25 -0,75 0,25 000 0,00 -1.00 0,00 Униполярное представление обычного двоичного сигнала кодирует уровни в диапазоне от 0 до 2 К Смещенный двоичный код и двоичный дополнительный код представляют величину вдиапазонеот—1 Идо 1 К
Приложение Б Практическая часть Практическая часть книги предназначена для того, чтобы улучшить понимание читателем лекционных материалов. Для заинтересованных читателей некоторые за- дания в практической части более расширены по отношению к изученному лекцион- ному материалу. Таким образом, читатель не только улучшит, но и расширит знания, полученные при изучении теоретической части. Большая часть практических заданий основана на использовании протраммного обеспечения. Для этого используется широко распространенный программный про- дукт MATLAB компании Mathworks Inc. В другой части заданий для экспериментов используются ЦОС-схемы компании Texas Instruments. Читатель может заниматься исследованиями столько времени, сколько ему необходимо. Ниже представлено краткое изложение практической части. Более подробно каждая часть рассматривается позже. • Введение в MATLAB Целью этой практической части является вводное изучение программно- го продукта MATLAB: как использовать программу, что можно делать с ее помощью и т.д. Это необходимо сделать до того, как мы перейдем к другим заданиям, которые используют данный программный продукт. • Введение в SIMULINK Simulink — это программный продукт, в котором используется интерфейс типа «перетащи и оставь» и другие графические возможности исполь- зования визуального программирования. Для работы с программой не требуются знания MATLAB, все происходит на интуитивном уровне. Целью данной практической части является способность использовать SIMULINK для моделирования простых операций ЦОС. • Разработка КИХ-фильтров Целью является углубление понимания процесса разработки КИХ-филь- тров. Будут использоваться различные методики, представленные в лек- циях. Читатели могут самостоятельно разработать фильтры, которые используются в их сфере деятельности. • Разработка БИХ-фильтров Так же как и для разработки КИХ-фильтров, целью является углубление понимания разработки БИХ-фильтров. Затем мы сможем сравнить БИХ-
Практическая часть 283 фильтры с КИХ-фильтрами. Читатель также будет иметь представление об их относительных преимуществах. • Реализация фильтров В этом практическом эксперименте будут использоваться программный продукт Simulink и набор блоков ЦОС с различными методами реализа- ции цифровых фильтров, которые обсуждались в лекциях. Также будет произведен эксперимент с эффектами конечной длительности слов и коэффициентом квантования. • Обработка изображений Процесс обработки изображений по своей сути является операцией об- работки двумерного сигнала, однако он часто считается одномерным (1-D). В этой практической части 1-D ЦОС будет применяться для об- работки изображений. В этом нам поможет инструментарий обработки изображений, встроенный в программу MATLAB. • Дискретизация и квантование Целью этой части является наблюдение за эффектами дискретизации и квантования частотного спектра сигналов. Будет создана имитационная модель передатчика системы ERMES, которая обсуждалась в 5-й главе. Будут представлены различные эффекты дискретизации и квантования и рассмотрен результат. • Реализация ЦПС Для обработки речи и анализа задач будет использоваться ЦПС ТМ- S320C5x. Целью будет являться получение первичных знаний в компи- лировании, ассемблировании, загрузке и отладке программ, написанных для процессора. Непосредственно процесс программирования задейст- вован не будет. Читатель будет иметь представление об эффективности ряда средств разработки, которые обсуждались в лекциях. Введение в MATLAB Цели Представить краткий обзор функциональности и основных свойств програм- много продукта MATLAB. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленный инструментарий обработки сигналов. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y)
284 Цифровая обработка сигналов для инженеров и технических специалистов Краткое описание программы MATLAB и инструментария обработки сигналов MATLAB MATLAB — это мощное средство разработки алгоритмов, их расчета и визуа- лизации. Программа сочетает в себе управление и гибкость традиционного языка программирования высокого уровня. Кроме того, программа MATLAB проста в ос- воении и очень компактна. Это позволяет создавать алгоритмы в сжатом и хорошо написанном виде. Программа также имеет расширенный набор готовых функций, включая математи- ческие операции и операции над матрицами, управление графикой, цветом и звуком. MATLAB — это идеальное программное средство для изучения цифровой обра- ботки сигналов (ЦОС). Язык программы имеет множество функций, необходимых для создания и обработки сигналов. Графические возможности MATLAB можно с легкостью использовать для просмотра результатов расчетов и визуализации проис- ходящих процессов. Коллекция инструментариев, встроенных в численно-расчетную среду MATLAB, поддерживает широкий ряд специфических операций — от обработки сигналов до моделирования систем управления, обработки изображений и экономического моде- лирования. Упражнения с основными свойствами Эти простые упражнения помогут освоить основные командные структуры MATLAB. Таким образом, вы сможете понять команды, которые будут использоваться позже в других упражнениях. Запустите программу MATLAB, нажав на иконку MATLAB на рабочем сто- ле. В MATLAB должно быть открыто командное окно с индикацией командной строки Простая математика Так же как и калькулятор, MATLAB может осуществлять простые математичес- кие действия. Наберите >> 4+2+5 (без командной строки). В ответе будет дан идентификатор. Вопрос 1. Какой идентификатор переменной ответа? Попытайтесь выполнить умножение (*) и деление (/). Векторы и матрицы Программа MATLAB расшифровывается как «MATrix LABoratory» (дословно лаборатория матриц). Все расчеты в программе MATLAB осуществляются над мат- рицами. Скалярным значением является матрица 1x1.
Практическая часть 285 Построим вектор. В командной строке введите: linspace А' Эта команда создает вектор А, содержащий 201 элемент со значением между 0 и 100 (включительно). Команда «linspace» делает вектор «линейным», например, 201 эквидистантных точек с начальным значением 0 и конечным значением 100. Одиночная кавычка после командной строки является командой транспонирования. Команда «linspace» генерирует вектор-строку. Использование одиночной кавычки преобразует ее в вектор-столбец. Обратите внимание, что результат команды будет выведен на экране. Теперь попробуйте поставить точку с запятой (;) в конце строки и выполните ее снова. (Под- сказка: вы можете использовать клавишу стрелки вверх для возврата к предыдущей команде.) На этот раз результат не будет отображаться на экране. Создайте еще одну вектор-строку В с 201-м линейным элементом, расположен- ным между 25-й и 75-й без отображения результатов. Затем наберите В в командной строке, чтобы увидеть вектор. Сложение векторов выполняется в прямой форме. Вопрос 2. Каков результат введения следующей команды? >> С=А+В Вопрос 3. Каков результат введения следующей команды? >> D=A*B Помните, что А и В являются матрицами. Необходимо обратить внимание на размерность матриц при осуществлении процедуры умножения. А и В являются мат- рицами 201 х 1. Размер всех переменных в текущей сессии можно проверить путем ввода: >> whos Должно работать следующее умножение: >> D=A'*B Возможно также поэлементное умножение. Формат команды следующий: >> Е=А. *В Вопрос 4. Какова размерность матрицы Е? Существуют два способа построения матрицы: (1)>> М=[1 2 3;4 5 6;7 8 9] ; (2) >> N= [А В] . Вопрос 5. Какова размерность М и N? Обратите внимание, что значения А и В перенесены в N. Поэтому если значения А и В изменяются после создания N, то N будет иметь старые значения А и В.
286 Цифровая обработка сигналов для инженеров и технических специалистов Помощь Возможно, одной из самых полезных команд в MATLAB является «помощь», «help». Введите следующее: >> help В ответ вы получите список тем, по которым в программе есть файлы помощи. Попробуйте ввести следующее: >> help elfun Вы получите список с элементарными математическими функциями в MATLAB. Для получения более подробной помощи для конкретного типа функции (например, for) >> help for Вы также можете нажать на иконку «?» в командном окне. Появится новое окно, и теперь вы можете нажимать на конкретное интересующее содержимое для показа соответствующей консультативной информации. Попробуйте выполнить эти дейс- твия. Выполнение файла Вы можете расширять доступные команды MATLAB путем создания собствен- ных команд. Эти команды или функции обычно хранятся в так называемом М-файле. Синтаксис этих файлов — это простая последовательность операторов, которые могут быть выполнены из командной строки MATLAB и находятся в отдельном файле, каждая строка которых оканчивается точкой с запятой. В выпадающем меню пункта «Файл» командного окна выберите Новый-» М-файл. Появится новое окно (редактор MATLAB/окно отладчика). Введите в окно следующие строки: t = linspace(0,2*pi,100); х = sin(t); plot (t,x); title (,Sine Function'); xlabel (,radians'); ylabel (,amplitude'); Сохраните файл, выбрав Файл -^Сохранить в выпадающем меню окна редакто- ра/отладчика MATLAB. Введите имя файла по вашему усмотрению (например, test 1). Файл будет сохранен с расширением .ш. Теперь вернитесь в командное окно MATLAB и введите это имя файла в коман- дную строку. В этом файле будут выполнены команды и создан график (один период синусоидальной функции). Такой тип М-файлов называется М-файлы сценария. Другой тип М-файлов на- зывается М-файлы функции. Они отличаются от М-файлов сценария тем, что имеют входные аргументы — входные данные, а выходные данные выводятся в выходных аргументах. В окне редактора/отладчика выберите Файл^Новый для создания нового М-файла. Введите следующее и сохраните его с именем файла ‘flipud’.
Практическая часть 287 function у = flipud(x) % FLIPUD Flip matrix in up/down direction % FLIPUD (X) returns X with columns preserved and rows % flipped in the up/down direction. For example, % % % X = 1 4 becomes 3 6 % 2 5 2 5 % 3 6 1 4 % if ndims(x) ~ = 2, error('X must be a 2-D matrix.'); end [m, n] = size (x) ; у = X (m:-1:1,:). После сохранения файла вернитесь в командное окно. Создайте матрицу X, как это показано на примере, приведенном в этом файле, путем введения >> X = [1 4;2 5;3 6] ; Затем примените функцию ‘flipud’. >> Y = flupid(X) Проверьте, что результат будет соответствовать написанному Обратите внима- ние, что имя файла функции М-файла всегда такое же, как и само имя функции. Дополнительные упражнения Эти упражнения необходимо выполнить, если у вас есть время и заинтересован- ность в том, чтобы узнать больше о программе MATLAB. • Введите tour в командной строке. Появится отдельное окно «MATLAB tour». • Передвиньте курсор к «Введение в MATLAB» в левой части окна и на- жмите на него. • Ознакомьтесь с введением, нажимая на кнопку «Далее» по готовности. • Подобным же образом, который указан выше, ознакомьтесь поочередно со следующими категориями: матрицы, числа, визуализация и язык/гра- фика. • Вы можете выбрать просмотр примеров каждой категории, нажав на соответствующую кнопку при подсказке появившегося текста. • В качестве рекомендуемой альтернативы, при появлении команд в тексте слева, вернитесь в командное окно MATLAB, кликнув один раз на это окно. Затем введите команду, как показано, и увидите работу MATLAB. Команды показываются с помощью ‘>>’ в текстовом окне «слайд-шоу проигрывателя». Вам необходимо вернуться назад и дальше между окном «слайд-шоу проигрывателя» и командным окном MATLAB. • Когда вы закончите со всеми категориями и примерами к ним, как ука- зано в первом пункте, нажмите на кнопку «Главное окно» внизу окна для возврата в главное окно «MATLAB tour».
288 Цифровая обработка сигналов для инженеров и технических специалистов • Когда вы закончите со всеми примерами, нажмите на кнопку «Главное окно» внизу окна для возврата в главное окно «MATLAB tour». • Затем нажмите на кнопку «Выход» в нижнем правом углу главного окна «MATLAB tour» для выхода из обзора. • Введите quit в командном окне MATLAB для выхода из программы. Введение в SIMULINK Цель Обеспечить: • краткий обзор функциональности и применимости программы SIMU- LINK; • обучение использованию программы SIMULINK для создания имита- ционных моделей; • обучение наборам блоков ЦОС. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, 2.1 версия SIMULINK, а также установленный набор блоков ЦОС. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y) Краткое описание программы SIMULINK и наборов блока ЦОС SIMULINK SIMULINK — это программный пакет для моделирования и анализа динами- ческих систем. Он поддерживает линейные и нелинейные системы, непрерывные во времени и дискретные во времени модели или комбинации обеих этих систем. Сис- темы также могут быть мультискоростными, то есть иметь различные части, которые дискретизуются или обновляются с различной скоростью. SIMULINK представляет собой графический интерфейс пользователя (GUI) для создания моделей в виде блок-схем с использованием операций мыши типа «нажать и потянуть». С помощью такого интерфейса вы можете рисовать модели так же, как вы делаете это при помощи карандаша и бумаги. Программа имеет набор стандартных библиотек блоков, состоящих из приемников, источников, линейных и нелинейных компонентов и коннекторов. Возможно также создание и определение блоков поль- зователем. Программа работает в среде MATLAB.
Практическая часть 289 Набор блоков ЦОС Набор блоков ЦОС — это набор библиотек блоков для использования с динами- ческой средой моделирования Simulink. Эти библиотеки разработаны специально для применений ЦОС. Они включают в себя такие операции, как классическая, мульти- скоростная и адаптивная фильтрации, комплексные и матричные арифметические операции, трансцендентные и статистические операции, свертка и преобразования Фурье. Создание моделей Сейчас мы попытаемся создать три модели в среде SIMULINK, начиная с самой простой. Модель SIMULINK интегральной синусоидальной волны Процедура создания Сейчас мы попытаемся создать простую модель с использованием программы SIMULINK. Вам необходимо закрыть все демонстрационные окна и оставить только окно MATLAB. Модель, которую мы будем создавать, будет просто интегрировать синусоидальную волну и отображать входные и выходные формы сигнала. • Для запуска SIMULINK наберите Simulink (последующим нажатием кла- виши ввод) в окне подсказок программы MATLAB. Появится окно под названием «library: simulink». • В окне «library: simulink» в выпадающем меню «Файл» выберите «Новый>Модель». Появится новое окно с пустым экраном. Вы можете по желанию передвинуть окно новой модели в правую сторону экрана, так, что вы сможете видеть его содержание и содержание библиотек блоков одновременно. • В этой модели вам необходимо взять следующие блоки из этих библи- отек: Библиотека исходных блоков: блок синусоидальной волны. Библиотека приемников: блок осциллографа. Библиотека линейных блоков: блок интегратора. Библиотека соединений: блок мультиплексора. • Откройте библиотеку исходных блоков для доступа к блоку синусои- дальной волны. Для открытия библиотеки блоков дважды щелкните на иконку библиотеки. Далее Simulink отобразит все блоки в данной библи- отеке. В библиотеках исходных блоков все блоки являются источниками сигнала. • Теперь добавьте блок синусоидальной волны в вашу модель путем уста- новления курсора над этим блоком с последующим нажатием и удержа- нием кнопки мыши. Перетащите блок в окно модели. Когда вы будете двигать блок, вы увидите контур блока и его название, двигающееся вслед за курсором.
290 Цифровая обработка сигналов для инженеров и технических специалистов • Поместите блок в окно модели, отпустив кнопку мыши, когда она будет находиться в нужном для вас месте. Таким же образом скопируйте ос- тальные три блока в окно модели. • Символ >, указывающий на блок, является выходным портом, если сим- вол указывает на блок, — это входной порт. Сигнал выходит из выходного блока, идет во входной порт другого блока через линию соединения. • Блок мультиплексора имеет три входных порта. Для нашей модели не- обходимы только два порта. Для того чтобы изменить число входных портов, откройте диалоговое окно блока мультиплексора двойным на- жатием на блок. Измените значение параметра «числа входных блоков» на 2. Затем нажмите на кнопку «закрыть». • Теперь нам необходимо соединить блоки. Соедините блок синусоидальной волны с верхним входным портом блока мультиплексора: установите ука- затель над выходным портом блока синусоидальной волны, удерживайте кнопку мыши и двигайте курсор к верхнему входному порту блока муль- типлексора. Если кнопка мыши удерживается, то соединительная линия будет пунктирной. Отпустите кнопку мыши, блоки будут соединены. • Соедините: выходной порт блока интегратора с другим входным блоком мульти- плексора; выходной блок мультиплексора к блоку осциллографа. • Единственное, что осталось соединить, — это блок синусоидальной волны с интегратором. Мы сделаем это, проведя линию от линии, соединяющей синусоидальную волну и мультиплексор. Следуйте следующей схеме: установите курсор на линии; нажмите и удерживайте клавишу CTRL на клавиатуре. Нажмите на кноп- ку мыши; потяните курсор к входному порту блока интегратора; отпустите кнопку мыши и клавишу CTRL. • Откройте блок осциллографа для того, чтобы видеть результат модели- рования. Оставьте это окно открытым. • Установите параметры моделирования, выбрав «параметры» из выпада- ющего меню «моделирование». В появившемся диалоговом окне устано- вите «время остановки» на 15.0. Закройте диалоговое окно. • Выберите «старт» из меню «моделирование». Следите за трассой на ос- циллографе. • Процесс моделирования прекратится тогда, когда закончится отведенное время или когда вы выберете «остановить» в меню «моделирование». • Вы можете сохранить модель, выбрав «сохранить» в меню «файл». Вопросы 1. Объяснить сдвиг фазы между интегрированной и синусоидальной формой волны. 2. Считаете ли вы, что такой фазовый сдвиг можно увидеть на практике? Поче- му?
Практическая часть 291 Аудиоэффекты - реверберация Второе моделирование покажет взаимодействие между MATLAB и SIMULINK. Мы будем моделировать аудиореверберацию. Имитационная модель показана ниже. Создайте новую модель SIMULINK, как показано на рисунке. Обратите внима- ние, что блоки «коэффициента усиления обратной связи» и «смеситель задержки» на самом деле блоки «коэффициента усиления» линейной библиотеки. Блоки могут быть переименованы довольно просто — путем нажатия на их названия и редактирования. Измените значение коэффициента усиления блоков усиления на те, что показаны на рисунке. Также установите следующие параметры блока: 1. Сигнал из рабочей области: имя переменной = х время дискретизации = 1/fs 2. К рабочей области: имя переменной = у max. число рядов = бесконечный децимация = 1 время дискретизации = -1 3. Задержка: целое число задержек дискретизации = 1800 начальное условие = 0. Когда модель будет создана, сохраните ее под любым выбранным вами име- нем. ю1/,*
292 Цифровая обработка сигналов для инженеров и технических специалистов Выберите моделирование —> параметры и установите параметры моделирования такие же, как на рисунке выше. Теперь вернитесь в командное окно MATLAB и введите следующее: >> load reverbsrc >> fs = 16000;
Практическая часть 293 Данные из файла «reverbsrc.mat» будут загружены в рабочую область. Проверьте, что данные были загружены в переменную, которая называется х (используя команду whos). Вы также можете услышать звук, используя команду: >> sound(х, fs) Теперь запустите моделирование. Результат можно услышать, используя команду в MATLAB >> sound(yz fs) Подавление адаптивного шума Системы удаления адаптивного шума были описаны вкратце в главе 1. Сейчас мы попытаемся построить модель для изучения ее действия. Для такой модели необ- ходимы блоки с набора блоков ЦОС. Имитационная модель показана на рисунке ниже. Подробности блоков данной модели и их параметры даны ниже: 1. Сигнал: фактическое число используемых блоков: генератор сигналов; форма волны = синус; амплитуда = 1.0; частота = 0,345573; единицы измерения = рад/сек.
294 Цифровая обработка сигналов для инженеров и технических специалистов 2. Шум: фактическое число используемых блоков: белый шум, ограниченный неко- торой полосой; мощность шума = 1; время дискретизации = 1; начальное число = [23341]. 3. Фильтр шума: фактическое число используемых блоков: разработка цифрового КИХ-фильтра; метод = классический КИХ; тип = низкочастотный; порядок = 31; нижняя граница полосы = 0,5; верхняя граница полосы = 0,6. 4. Адаптивный фильтр с минимальной СКО: длина КИХ-фильтра= 32; размер шага, mu = 0,5; начальное условие = 0,0; время дискретизации = 1. 5. Диапазон БПФ: единицы измерения частоты = герц; диапазон частоты = половина; масштабирование амплитуды = дБ; длина БПФ = 256; имя оси Y = характеристика фильтра, дБ. 6. Отводы фильтра: фактическое число используемых блоков: настройка вектора ЭЛТ ; имя оси Y: коэффициенты адаптивного фильтра. Когда модель будет создана, сохраните ее под любым выбранным вами именем. Установите параметры моделирования, как показано ниже.
Практическая часть 295 Теперь запустите моделирование и сравните следующие процессы: входной, входной + шум и выходной. Вопросы 1. Повышается ли эффективность системы, если изменить длину адаптивного фильтра минимальной СКО на 64? 2. Что произойдет, если изменить длину адаптивного фильтра минимальной СКО на 24? Дискретное преобразование Фурье и цифровая фильтрация Цель Закрепить концепции, изученные в лекциях в следующих областях: • ДПФ и БПФ. • Наложение спектров. • Свертка и фильтрация. • Методы наложения-добавления и наложения-сохранения.
296 Цифровая обработка сигналов для инженеров и технических специалистов Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, 2.x версия SIMULINK, а также установленный инструментарий обработки сигналов. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y) ДПФ, обработка окном и наложение спектров: 1. Запустите MATLAB, нажав на иконку MATLAB на рабочем столе. Командное окно MATLAB должно быть открыто с командной строкой ‘»’. 2. Введите >> sigdemo1 3. Должен появиться экран, представленный ниже, в котором указаны времен- ное и частотное представление синусоиды. Вы видите дискретные отсчеты синусо- идальной волны и абсолютное значение ее ДПФ, полученное путем использования алгоритма БПФ.
Практическая часть 297 Вопрос 1. Соответствует ли максимум частотного спектра частоте синусоиды? Вопрос 2. Изобразите графически спектр синусоидального сигнала. Соответству- ет ли тому, что вы ожидали, изображенное на графике? Если нет, то почему?1 4. Для увеличения частоты синусоиды нажмите на кривую в верхней части окна и, удерживая кнопку мыши, перетяните указатель к левому полю. После того как вы отпустите кнопку мыши, вы увидите, что основная частота синусоиды увеличилась и отображена в окне «основной». Вопрос 3. Как изменяется спектр в случае увеличения частоты синусоиды? Вопрос 4. Что произойдет со спектром, если частота синусоиды превысит 100? Объясните, что произошло. Вопрос 5. Какова частота дискретизации для данного представления? 5. Исходное окно, применяемое к исходному сигналу, — прямоугольное окно. Это означает, что синусоиды внезапно обрезают с двух сторон сигнала. Можно при- менять различные окна путем выбора окна в выпадающем меню «окно». Выберите «окно Хэмминга». Вопрос 6. Соответствует ли максимум частотного спектра частоте синусоиды? Вопрос 7. Как отличается спектр сигнала от спектра, полученного с помощью прямоугольного окна? Вопрос 8. Посмотрите на график функции окна Хэмминга на рис. 6.20 в руко- водстве. Сравните его с прямоугольным окном (рис. 6.13). Как вы думаете, что влияет на разницу в результирующем спектре? 6. Попробуйте все доступные окна и сравните результирующий спектр. Вопрос 9. Какое окно дает наименьшие боковые лепестки (артефакты с обеих сторон от максимума)? 7. Измените форму сигнала, открыв выпадающее меню «Сигнал» и нажав мы- шью на «прямоугольник». Исследуйте соответствующие временные и частотные представления. Вопрос 10. При изменении сигнала с синусоидальной на прямоугольную волну, что вы заметили в изменениях гармоник (максимум спектра)? 8. Нажмите на кнопку «ЗАКРЫТЬ» для завершения сессии. Фильтрация сигнала Здесь приведены примеры фильтрации с помощью инструментария обработки сигналов. 1. Сначала создайте сигнал с тремя синусоидальными компонентами (на час- тотах 5, 15 и 30 Гц). Fs=255; t=(0:255)/Fs; sl = sin(2*pi*t*5) ; s2 = sin(2*pi*t*15) ; s3 = sin(2*pi*t*30) ; s=sl+s2+s3;
298 Цифровая обработка сигналов для инженеров и технических специалистов 2. Синусоиды дискретизованы частотой 1/Fs и 256 точек. Сейчас изобразите графически такой сигнал. plot(t,S); xlabel('Time (seconds)'); ylabel('Time waveform') 3. Для разработки фильтра при синусоидальном входном воздействии в 15 Гц, которым необходимо избавиться от синусоид 5 и 30 Гц, мы создали КИХ-фильтр 50-го порядка с полосой пропускания от 10 до 20 Гц. Фильтр был создан командой FIR I. b=firl(50, [20/Fs 40/Fs] ) ; a=l Используйте команду помощи firl, чтобы видеть, как используется функция firl. Коэффициенты фильтра содержатся в переменных Ь. Для того чтобы увидеть их значение, просто наберите b в командной строке, b также является импульсной характеристикой фильтра. 4. Отобразить ее частотную характеристику [Н,w]=freqz(b,а,512); plot(w*Fs/(2*pi),abs(H) ) ; xlabel('Frequency (Hz)'); ylabel('Mag. of frequency response'); grid; 5. Отфильтровать сигнал, используя команду фильтрации. Коэффициенты фильтра и вектор сигнала используются в качестве аргументов. sf=filter(b,a,s) 6. Отобразить профильтрованный сигнал (sf) - plot (t,Sf) ; xlabel('Time (seconds)'); ylabel ('Time waveform' ); axis([0 1-1 1]) Вопрос 11. Похоже ли это на отдельную синусоиду? 7. Наконец, отобразить содержимое частоты сигнала до и после фильтрации. S = fft (s,512) ; SF=fft(sf,512); w= (0:255)/256*(Fs/2) ; plot(w,abs( [S (1:256) ' SF(1:2 56) ' ] ) ) ; xlabel('Frequency (Hz)'); ylabel('Mag. of Fourier transform'); grid Вопрос 12. Какие частоты были удалены из комбинированного сигнала?
Практическая часть 299 Линейная и круговая свертка Вышеупомянутая операция цифровой фильтрации осуществляется с использо- ванием фильтр-функции. Вопрос 13. Используя команду whos, найдите размерность b, s и sf. Фильтрация — это, по сути, линейная свертка между импульсной характерис- тикой фильтра и входного сигнала. Таким образом, выходной сигнал фильтра может быть получен функцией линейной свертки conv. Вопрос 14. Исходя из размерности Ь и s, какова будет длина последовательности в результате линейной свертки s и Ь? Проверьте свои ответы, осуществив линейную свертку и проверив размерность результата: sc = conv(bzs) whos Вопрос 15. Верным ли является ваш ответ на вопрос 14? Вопрос 16. Является ли sf усеченным вариантом sc? Проверьте значения обеих последовательностей. Круговая свертка Ь и первый 51 элемент s (si) для получения cl: B=fft(Ь); S1 = S(1:51) ; Sl = fft(si) ; С1=В.*S1; Cl=ifft(Cl); Обратите внимание, что Cl получено путем поэлементного умножения в и S1. Вопрос 17. Сравните значения cl со значением sc . Вы заметили какую-либо разницу? Теперь осуществите операцию круговой свертки b и вторых 51 элементов s (s2). s2 = s(52:102) ; S2=fft (s2) ; C2=B.*S2; C2 = ifft(C2) ; Вопрос 18. Ожидаете ли вы, что значения в с2 будут эквивалентны от 52 до 102 элементам sc? Объясните, почему. Методы наложения-добавления и наложения-сохранения Мы не можем получить корректные результаты линейной свертки путем просто- го соединения результатов круговой свертки. Для получения корректных результатов
300 Цифровая обработка сигналов для инженеров и технических специалистов линейной свертки нам необходимо использовать методы наложения-добавления и наложения-сохранения, описанные в разделе 4.7.2 этой книги. Мы разделим сигнал на 2 блока с длиной 128 каждый. Введите следующее: si = s (1:128) ; S2 = S (129:156) ; Вопрос 19. Каковы значения L и М (обратитесь к разделу книги 4.7.2 ) в этом случае? Мы начнем с метода наложения-сложения. Вопрос 20. Какое количество нулей необходимо для добавления после каждого блока? Создайте вектор из этого множества нулей. nz= % подставьте это в значение вашего ответа на вопрос 20 z = zeros(1,nz); Теперь добавьте нули к si и s2 : SZ1 = [si z] ; SZ2 = [s2 z] ; Осуществите круговую свертку, используя ДПФ: B=fft(b, 128+nz); SZl=fft(szl); SZ2 = fft (sz2) ; R1=B.*SZ1; R2=B.*SZ2; rl=ifft(Rl); r2=ifft(R2); Теперь сопоставьте два результата и сложите их. z2=zeros(1,128); rl = [rl z2) ; r2 = [z2 r2] ; г = rl+r2; Вопрос 21. Является ли результирующий вектор г идентичным вектору, полу- ченному путем линейной свертки (sc)? На основе упомянутых выше кодов программы MATLAB выполните метод на- ложения-сохранения. Также разделите сигнал s на два 128 элементных блока. Запишите код программы MATLAB здесь: Вопрос 22. Являются ли идентичными результаты методов наложения-добавле- ния и наложения-сохранения?
Практическая часть 301 Разработка КИХ-фильтра Цель Обеспечить: • более глубокое понимание КИХ-фильтра; • понимание использования программных средств при разработке фильтров; • проверку примеров лекции. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленный инструментарий обработки сигналов 4 версии. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y) Упражнения: Начало работы с sptool Sptool — это графическая среда анализа и управления цифровыми сигналами, фильтрами и спектрами. Посредством sptool вы получаете доступ к четырем допол- нительным инструментам, которые представляют собой интегрированную среду для просмотра сигналов, разработки, анализа и реализации фильтров. • Запустите MATLAB, нажав на иконку MATLAB на рабочем столе. Ко- мандное окно MATLAB должно быть открыто со строкой ‘>>’. • Введите sptool в командной строке. Появится отдельное окно ‘SPTool’. Сейчас запущено окно sptool. Мы будем использовать его для разработки не- которых фильтров и для фильтрации сигналов. Мы также воспользуемся браузером сигналов и спектров для анализа свойств как нефильтрованных, так и прошедших фильтрацию сигналов. 5РТоо1 unIHted жр! ГЛо|У1 Fite Edi H»k> Wndow Окно SPTool
302 Цифровая обработка сигналов для инженеров и технических специалистов Использование разработчика фильтров Используя разработчик фильтров, вы можете разработать КИХ- и БИХ-фильтры различной длины и типов со стандартной конфигурацией полосы частот. 1. Откройте разработчик фильтров, нажав кнопку новой разработки в окне SP- Tool. Теперь разработчик фильтров активирован в отдельном окне, как показано ниже. Окно разработчика фильтров 2. Окно разработчика фильтров имеет следующие компоненты: • область амплитудной характеристики; • панель разработки для просмотра и изменения параметров текущего фильтра; • управление масштабом для более близкого рассмотрения свойств филь- тра; • линии спецификации для настройки ограничений. 3. Когда впервые появляется разработчик фильтров, он содержит спецификации и амплитудную характеристику с порядком 22, КИХ-фильтр низких частот Чебышева
Практическая часть 303 (разработанный с использованием алгоритма перестановки Ремеза), как показано на рисунке выше. 4. Вернитесь обратно в окно SPTool под выпадающем меню «редактировать», выберите частоту дискретизации. Измените частоту дискретизации на 7418 Гц. Теперь обратите внимание на то, что ось частоты отклика фильтра изменяется соответству- ющим образом. Вопрос 1. Какая максимальная и минимальная частота показана на оси часто- ты? 5. Перейдите в окно разработчика фильтра панели разработки, нажмите на «стрелку вниз» рядом со словом «низкая частота». Появится список конфигураций частоты. Вопрос 2. Какая частотная конфигурация доступна? 6. Выберите полосу пропускания, нажав на слово. 7. Затем установите fsl на 1200, fpl на 1500, fp2 на 2500 и fs2 на 2800. Эти поля оп- ределяют ширину перехода от полосы пропускания до полосы задержки, в герцах. 8. Установите Rp (колебания полосы пропускания) на 4. Установите Rs (затуха- ние полосы задержки) на 30. Величины измеряются в децибелах. 9. Теперь определите метод разработки фильтра. Нажмите на «стрелку вниз» ря- дом со словом «КИХ-фильтр низких частот Чебышева». Отобразится список методов разработки. Вопрос 3. Какой из представленных методов разработки используется для КИХ- фильтров? 10. Нажмите на окно Кайзера. Сейчас должен быть разработан новый фильтр с новыми спецификациями и отображены результаты. Вопрос 4. Каков порядок разработки фильтра? 11. Установите курсор на ограничивающем условия (прямые линии) на диаграм- ме отклика фильтра. Нажмите на кнопку мыши и передвиньте вверх или вниз. Когда вы отпустите кнопку мыши, для расчета нового фильтра будет использоваться новое ограничивающее условие. Использование средств просмотра фильтра 1. Вернитесь обратно к окну SPToll и нажмите на кнопку просмотра (прямо над кнопкой новой разработки). Теперь появится окно средства просмотра фильтра с амплитудными и фазовыми характеристиками разработанного фильтра. Вопрос 5. Имеет ли фильтр линейную фазовую характеристику?
304 Цифровая обработка сигналов для инженеров и технических специалистов Вопрос 6. Что происходит с возмущениями в полосе задержки, как показано в окне разработчика фильтров? Программа просмотра фильтров 2. Программа просмотра фильтров имеет следующие компоненты: • Основные графики отображают область для просмотра одного или более графиков в частотной области выбранного фильтра. • Панель графиков для выбора отображения подграфика. • Панель оси частоты для определения масштаба оси х в основной области графика. • Панель определения фильтра, которая отображает информацию о теку- щем выбранном фильтре. • Управление масштабом для возможности более близкого просмотра гра- фиков. 3. Перейдите к амплитуде на панели графика. Нажмите на «стрелка вниз» рядом со словом «линейный». Это определяет масштаб оси у графика амплитудной харак- теристики. Теперь нажмите на слово «децибел».
Практическая часть 305 Вопрос 7. Каким образом выглядит график амплитудной характеристики с ис- пользованием децибел относительно предыдущих линейных масштабов при сравне- нии блоков амплитуды? 4. Не так просто сказать, является ли фазовая характеристика линейной из-за «заворачивания» углов. Это становится более ясным при использовании групповой задержки отклика. Нажмите на tick box рядом с групповой задержкой. Вопрос 8. Имеет ли фильтр линейную фазовую характеристику? Обратите внимание: групповая задержка определяется как производная фазы относительно частоты. Таким образом, линейный фазовый фильтр имеет постоянную групповую задержку отклика. 5. Нажмите на tick box рядом с фазовой и групповой задержкой для удаления тех графиков. 6. Нажмите на tick box для импульсной характеристики, чтобы увидеть график импульсной характеристики данного фильтра. 7. Затем нажмите на tick box для переходной характеристики, чтобы увидеть график отклика этого фильтра, когда на вход подается единичный скачок. Использование браузера сигналов 1. Сейчас мы получим сигнал из файла, сохраненного ранее средствами MATLAB. Вернитесь в окно SPTool. Нажмите на файл для появления выпадающего меню, затем нажмите на импорт. 2. Появится окно «Импортировать в SPTool». Нажмите с диска, затем нажмите на кнопку «Обзор». 3. В окне «выберите файл для открытия» под папкой инструментария/сигнала дважды щелкните на mtlb. 4. Теперь в панели содержания файла окна «Импортировать в SPTool» будет видно название переменной mtlb и Fs. Сначала нажмите на mtlb. Затем нажмите на стрелку впра- во, ведущую к текстовому окну данных. Окно будет выглядеть следующим образом: Импортирование сигнала в SPTool Н 445
306 Цифровая обработка сигналов для инженеров и технических специалистов 5. Теперь нажмите на Fs, а затем нажмите на стрелку вправо, ведущую к тексто- вому окну частотной дискретизации. Нажмите ОК. 6. Нажмите на кнопку просмотра под текстовым окном сигналов. Теперь браузер сигнала активирован. Окно браузера сигнала 7. Окно браузера сигнала имеет следующие компоненты: • Основная область отображения для графического просмотра сигналов. • Панель для отображения графика текущего сигнала. • Управление дисплеем (вверху слева) с массивом сигналов и реальными сигналами. • Управление масштабом для возможности более близкого просмотра. • Линейки и управление линейным отображением для измерения сигналов и их сравнения. 8. Передвиньте курсор над одной из вертикальных линий дисплея сигналов. Сейчас тип курсора изменится и приобретет форму руки. Удерживая кнопку мыши, передвиньте вертикальную линию назад и вперед. Обратите внимание, что число линеек и управление линейным отображением изменяют свое значение, отражаясь на положении вертикальной линии. Вы можете проделать эти действия с другой вер- тикальной линией. 9. Нажмите на кнопку «Увеличить X» 2—3 раза. Обратите внимание на вид сиг- нала. Также обратите внимание на то, что ниже панели появится окно, показывая положение текущей отображенной группы сигналов. 10. Нажав на «Уменьшить X», мы получим противоположный эффект.
Практическая часть 307 Использование программы просмотра спектра 1. Вернитесь в окно SPTool. Нажмите на кнопку «создать» под текстовым окном спекгра. 2. Программа просмотра спектра активирована. 3. В окне программы просмотра спектра нажмите на кнопку «применить» снизу слева. Должно появиться следующее изображение. Окно программы просмотра спектра 4. Отображается спектр сигнала mtlb. 5. Окно программы просмотра спектра имеет следующие компоненты: • Основная область отображения для просмотра спектра. • Система параметров для просмотра и изменения параметров, или метод подсчета спектра. • Управление масштабом. • Линейки и управление линейным отображением для измерения спектра и его сравнения. • Кнопки управления спектром: унаследовать из, вернуться к предыдуще- му состоянию и применить. • Панель идентификации сигнала. 11
308 Цифровая обработка сигналов для инженеров и технических специалистов 6. Линейки и управление линейным отображением идентичны браузеру сигна- лов. Две вертикальные линии для измерения можно передвигать вперед и назад. Вопрос 9. Какова частота пика спектра, который ближе всего расположен к 2 кГц? (Используйте линейку для осуществления измерений.) 7. В системе параметров откройте меню окна (нажмите на «стрелку вниз»). Вопрос 10. Какие окна доступны в этом меню? 8. Выберите окно Хэмминга. 9. В совмещенном текстовом окне введите 100. Теперь между последующими окнами сигнала для БПФ задано 100 отсчетов наложения. Нажмите «применить». Вопрос 11. Существует ли разница между текущим спектром и спектром, который был отображен ранее? Какой из них выглядит более сглаженным? Применение фильтра к сигналу 1. Вернитесь в окно SPTool. Нажмите на кнопку «применить» под фильтрами. В окне «применить фильтр» нажмите ОК. 2. Сигнал sig 1 профильтрован flit 1 для генерации sig2. Выделите sig2. и просмот- рите профильтрованный сигнал, используя браузер сигналов. 3. Создайте новый спектр и примените его к sig2, который был уже выбран. Вопрос 12. Соответствует ли вид спектра тому, что вы ожидали? Необходимо разработать фильтры низких и высоких частот для разделительного фильтра (кроссовера) громкоговорителя, как указано в руководстве. Частота разде- лительного фильтра составляет 1 кГц с возмущением в полосе пропускания 0,1 дБ и затуханием в полосе задержки по меньшей мере 60 дБ. Переходная область начина- ется и заканчивается при ±200 Гц частоты разделительного фильтра. Используйте разработку окна Кайзера. Вопрос 13. Каков порядок фильтра, который необходимо использовать? Примените этот фильтр к sig 1 и отобразите спектр профильтрованного сигнала. Разработайте разделительный фильтр, используя перестановочный алгоритм Ремеза (разработка фильтра низких частот Чебышева). Вопрос 14. Каков порядок фильтра, который необходимо использовать? Примените этот фильтр к sig 1 и отобразите спектр профильтрованного сигнала. Вопрос 15. Значительно ли отличается спектр от спектра, полученного ранее. Если да, то каким образом?
Практическая часть 309 Разработка БИХ-фильтра Цель Обеспечить: • более глубокое понимание характеристик БИХ-фильтров; • понимание использования программных средств при разработке филь- тров; • проверку примеров лекции. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленный инструментарий обработки сигналов 4 версии. Предварительное условие Вы должны изучить дискретное преобразование Фурье и цифровую фильтрацию до того, как приступите к решению этих задач. Мы полагаем, что вы уже знакомы с sptool. Упражнения 1. Разработка БИХ-фильтра с использованием разработчика фильтров. • Разработчик фильтров позволяет вам разрабатывать цифровые филь- тры на основе классических функций, включая функции Баттерворта, Чебышева (Чебышева I), обратную функцию Чебышева (Чебышев II) и эллиптические фильтры. • Запустите SPTool и создайте новый проект. (Обратитесь к упражнению по разработке КИХ-фильтра, если вы не совсем уверены в том, как это делать). • Выберите БИХ-фильтр Чебышева типа I и высокочастотный фильтр в качестве конфигурации. • Установите частоту дискретизации на уровне 2000 Гц, используя частоту дискретизации ... из меню «правка» в окне SPTool. • В разработчике фильтра установите fs (частота на границе полосы за- держки) на 700. Установите fp (частота на границе полосы пропускания) на 800. • Установите Rp (возмущения в полосе пропускания) на 2,5. Установите Rs (затухание в полосе задержки) на 35. Единица измерения — децибел. • Снимите галочку в tick-box минимального порядка и введите 7 в тексто- вом окне для фильтра 7-го порядка. Нажмите на кнопку «применить». • Сейчас должен быть рассчитан новый фильтр. Вопрос 1. Удовлетворяет ли данный фильтр спецификациям? • Введите 6 в текстовом окне порядка.
310 Цифровая обработка сигналов для инженеров и технических специалистов Вопрос 2. Удовлетворяет ли данный фильтр спецификациям? • Попробуйте использовать фильтр более низкого порядка. Вопрос 3. Какой самый низкий порядок фильтра, который удовлетворяет спе- цификациям? • Нажмите на просмотр под фильтрами в окне SPTool для активирования программы просмотра фильтров. Посмотрите на фазовую характеристи- ку. Нажмите на tick-box для групповой задержки для получения лучшего изображения. Вопрос 4. Является ли фазовая характеристика линейной? (Или, если сказать иначе, является ли постоянной групповая задержка?) Вопрос 5. В случае если ответ на вопрос 4 отрицательный, то в какой частотной области наибольшему изменению подвергается групповая задержка? • Теперь выберите БИХ-фильтр Баттерворта. Пусть спецификации будут такими же, как и для прошлого фильтра. Вопрос 6. Каков самый низкий порядок фильтра Баттерворта, который удовлет- воряет спецификации? • Перейдите к программе просмотра фильтра. Вопрос 7. Имеет ли фильтр линейную фазовую характеристику? (Или, другими словами, является ли постоянной групповая задержка?) Вопрос 8. Если ответ на 4-й вопрос отрицательный, то в какой частотной области наибольшему изменению подвергается групповая задержка? • Выберите БИХ-фильтр Чебышева 2-го типа. Вопрос 9. Каков самый низкий порядок фильтра Чебышева II, который удов- летворяет спецификации? • Перейдите к программе просмотра фильтра. Вопрос 10. Имеет ли фильтр линейную фазовую характеристику? (Или, другими словами, является ли постоянной групповая задержка?) Вопрос 11. Если ответ на 4-й вопрос отрицательный, то в какой частотной об- ласти наибольшему изменению подвергается групповая задержка? • Теперь выберите эллиптический БИХ-фильтр. Вопрос 12. Каков самый низкий порядок эллиптического фильтра, который удовлетворяет спецификации? • Перейдите к программе просмотра фильтра. Вопрос 13. Имеет ли фильтр линейную фазовую характеристику? (Или, другими словами, является ли постоянной групповая задержка?)
Практическая часть 311 Вопрос 14. Если ответ на 4-й вопрос отрицательный, то в какой частотной об- ласти наибольшему изменению подвергается групповая задержка? Проверьте соответствие примеров разработок руководству 1. Разработайте БИХ-фильтр Баттерворта, как указано в примере раздела 7.2.1 руководства. Вопрос 15. Является ли характеристика фильтра идентична той, что показано на рис. 7.4? 2. Разработайте фильтр Чебышева I, как указано в примере раздела 7.2.2. Вопрос 16. Является ли характеристика фильтра идентична той, что показана на рис. 7.7? 3. Разработайте обратный фильтр Чебышева (Чебышев II), как указано в при- мере раздела 7.2.3. Вопрос 17. Является ли характеристика фильтра идентична той, что показана на рис. 7.9? 4. Разработайте эллиптический фильтр, как указано в примере раздела 7.2.4. Вопрос 18. Является ли характеристика фильтра идентична той, что показана на рис. 7.9? БИХ-фильтрация 1. Импортируйте сигнал mtlb, используя процедуры (4) упражнения дискрет- ного преобразования Фурье и цифровой фильтрации. 2. Вернитесь в окно SPTool, находящееся под меню «правка», выберите частоту дискретизации. Измените частоту дискретизации на 7418 Гц. 3. Разработайте полосовой фильтр с использованием эллиптических характе- ристик. 4. Установите fsl на 1200, fpl на 1500, fp2 на 2500 и fs2 на 2800, 5. Установите Rp (возмущение в полосе пропускания) на 4. Установите Rs (за- тухание в полосе задержки) на 30. 6. Нажмите на «Авто» в панели параметров разработчика фильтра, чтобы про- грамма выбрала соответствующий порядок фильтра автоматически. Вопрос 19. Какой порядок фильтра необходим? Вопрос 20. Сравните его с уже разработанным КИХ-фильтром, используя экви- валентные спецификации, какой из них имеет более низкий порядок?
312 Цифровая обработка сигналов для инженеров и технических специалистов 7. Профильтруйте сигнал sig 1, нажав на кнопку «применить» под фильтрами в окне SPTool. Нажмите ОК для генерации sig2. 8. Просмотрите sig2, используя браузер сигналов. 9. Нажмите на «создать» под спектром в окне SPTool для просмотра спектра сигнала sig2. Вопрос 21. Является ли профильтрованный спектр таким, каким вы ожидали? 10. Разработайте КИХ-фильтр, используя окно Кайзера с эквивалентными спе- цификациями. Профильтруйте сигнал sig 1, используя этот КИХ-фильтр. Затем про- смотрите спектр выходного сигнала sig3. Вопрос 22. Как сравнить спектр сигналов sig2 и sig3? Реализация фильтра и влияние длины слова Цель Обеспечить более глубокое понимание и представить графически: • влияние длины слова; • каскадную реализацию БИХ-фильтра. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленный инструментарий обработки сигналов 4 версии. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y) Упражнения Эффекты квантования АЦП Помните, что программа MATLAB проводит все вычисления с плавающей точ- кой. Для моделирования эффектов квантования мы создадим две функции fpquant и coefround, которые не являются стандартными функциями MATLAB. 1. Сначала запустим программу MATLAB. Под командным окном выберите: файл—>новый—>ш-файлы. Затем в окно редактора/отладчика введите следующее: function X = fpquant(s,bit) %FPQUANT simulated fixed-point arithmetic %--------
Практическая часть 313 % Usage: X = fpquant( S, BIT ) % % returns the input signal S reduced to a % word-length of BIT bits and limited to the range % [-1,1). Wordlength reduction is performed by % (1) rounding to nearest level and % (2) saturates when input magnitude exceeds 1. if nargin ~= 2; error('usage: fpquant( S, BIT ).'); end; if bit <= 0 | abs(rem(bit,1)) > eps; error('wordlength must be positive integer.'); end; Plusl = 2^(bit-1); X = s * Plusl; X = round(X); X = min(Plusl - 1/X); X = max(-Plusl,X); X = X / Plusl; 2. Сохраните это под именем файла fpqant.m (которым обозначается квантова- тель с фиксированной точкой). Теперь введите функцию coefround и сохраните ее в coefround.m. function [aq,nfa]=coefround(a,w) % COEFROUND quantizes a given vector a of filter % coefficients by rounding to a desired % wordlength w. f=log(max(abs(a)))/log(2); % Normalization of a by n=2^ceil(f); % n, a power of 2, so that an=a/n; % l>an>=-l aq=fpquant(an,w); % quantize nfa=n; % Normalization factor 3. Сгенерируйте линейную возрастающую последовательность v и получите ее квантованные значения, используя 3-битный квантователь: v=-1.1:le-3:1.1; vq=fpquant(v,3); dq=vq-v; figure(1), plot(v,vq) figure(2), plot(v,dq)
314 Цифровая обработка сигналов для инженеров и технических специалистов 4. Среднеквадратическое значение, дисперсия и плотность вероятности ошибки квантования могут быть получены таким образом: mean(dq) std(dq) [hizx]=hist(ez 20) ; plot(xzhi/sum(hi)) Вопрос 1. Какой интервал распределения ошибок? Вопрос 2. Является ли это распределение равномерным? Спектр мощности ошибки можно отобразить с помощью команды spectrum(dq). Вопрос 3. Отличается ли этот спектр мощности от теоретического? Если да, то как они отличаются? Влияние длины слова на коэффициент фильтра 1. Разработайте линейный фазовый КИХ-фильтр низких частот и покажите его частотную характеристику: f= [0 0.4 0.6 1] ; m= [1 1 0 0] ; hl = remez(30, f, m) ; [H, w]=freqz(hl,1,2 56) plot(w, 20*logl0(abs(H))) xlabel('Normalized Frequency'); ylabel('Magnitude squared (dB)') Вопрос 4. Каковы спецификации разработанного фильтра (порядок, полоса про- пускания, полоса задержки, возмущения и др.). 2. Выполните 10-битное квантование коэффициентов: wlen=10; hlq=coefround(hl,wlen); 3. Теперь покажите частотную характеристику фильтра: [Hqz wq]=freqz(hlqz1,256) hold on, plot(wq,20*logl0(abs(H))) Вопрос 5. Как отличается характеристика фильтра с квантованными значениями коэффициентов от исходного?
Практическая часть 315 Вопрос 6. Не происходит ли нарушение линейности фазовых характеристик фильтра вследствие квантования его коэффициентов? 4. Измените число бит (wlen) на 8 и повторите предыдущий пункт. Вопрос 7. Чем отличаются возмущения в полосе задержки этих трех вариантов фильтра? 5. Затем используйте эллиптический низкочастотный БИХ-фильтр с граничной полосой пропускания 0,4 Гц (приведенная) и затуханием в полосе задержки 40 дБ. [b,a]=ellip(7,0.1,40,0.4); [Н,w]=freqz(b,а,512); figure(2) , plot(w,20*logl0(abs(H))) 6. Выполните 10-битное квантование коэффициентов: w0=10; [bq,nb]=coefround(b,wO); [aq,na]=coefround(a,wO); [Hq,w]=nb/na*freqz(bq,aq,512); hold on, plot(w,20*logl0(abs(Hq))) Сравните частотную характеристику с характеристикой фильтра с некванто- ванными значениями коэффициентов. Попробуйте использовать другую длину слов (например, 12, 13, Мбит). Вопрос 8. Какое минимальное число бит необходимо для того, чтобы минималь- ное затухание в полосе задержки оставалось ниже 40 дБ? Каскадная реализация БИХ-фильтров 1. Реализуйте разработанный в предыдущем разделе БИХ-фильтр, используя каскадную структуру. Сначала найдите полюса и нули: p=roots(а) z=roots(b) 2. р и z являются либо комплексно-сопряженной парой, либо реальной. В этом случае для каждого многочлена существуют три комплексно-сопряженных пары и действительный корень. Выберите пару с наибольшей амплитудой из р и одну пару, близкую нулю из z. р1= [0.2841 + 0.9307i 0.2841-0.9307i] ; zl= [-0.3082 + 0.9513i - 0.3082-0.9513i] ; bl=real(poly(zl)); al=real(poly(pl)); [Hl,w]=freqz(bl,al,512); figure(3), plot(w,20*logl0(abs(Hl)))
316 Цифровая обработка сигналов для инженеров и технических специалистов 3. Повторите пункт выше для оставшихся двух пар р и z. Назначьте их перемен- ным р2, z2, Ь2, а2, Н2 и рЗ, z3, ЬЗ, НЗ соответственно. 4. Каскадная частотная характеристика может быть получена путем выполне- ния: Нс=Н1.*Н2; Нс=Нс.*НЗ; sf=H(l)/Нс(1); HC=Hc*Sf; hold on, plot(w,20*logl0(abs(He))) 5. Выполните 10-битное квантование длины слов для Ы, Ь2 , ЬЗ и al, а2, аЗ . Сравните результирующую каскадную частотную характеристику с квантован- ными коэффициентами с той, которая была получена в предыдущем разделе. Вопрос 9. Насколько чувствительна частотная характеристика к коэффициенту квантования, когда фильтр используется как каскад структур второго порядка? Лучше или хуже частотная характеристика, чем та, что получена с использованием коэффи- циентов квантованных одинаковым числом бит? Развитие систем ЦПС Цель • Представить некоторые свойства серии TMS320C54x ЦПС. • Показать, как может помочь простой ЦПС в развитии систем ЦОС. • Пройти процесс ассемблирования, загрузки и отладки ЦОС-программы на языке ассемблера. Требуемое оборудование • Пусковой комплект (DSK) TMS320C5x с кабелями и электропитанием. • ПК с установленными инструментальными программными средствами TMS320C5X. • Диск с примерами, поставляемыми компанией IDC. • Микрофон, громкоговоритель, генератор сигнала, осциллограф и ана- лизатор спектра (в случае доступности). Установка аппаратного обеспечения Проверьте, что плата DSK подсоединена так, как показано в документации, представленной в Приложении. Кабель принтера DB25 соединен с параллельным портом ПК с одной стороны и к плате DSK с другой. Источник питания подключен к разъему источника питания.
Практическая часть 317 Установка программного обеспечения Соответствующее программное обеспечение уже должно быть загружено. На- жмите на иконку «С54х code explorer» для запуска отладчика. Обратите внимание, что отладчик запустится только в случае, если плата DSK подключена к источнику питания и правильно присоединена. Папка C:\DSKPLUS — это место, где должно постоянно храниться необходимое программное обеспечение для данного практического задания. Загрузите файлы- примеры, необходимые для данного практического задания, в эту папку. Она должна идти как отдельный диск от фирмы IDC. Упражнения Ознакомление с макетной платой Некоторые релевантные главы из руководства пользователя TMS320C54x DSK plus и руководство аналоговой схемы интерфейса данных TLC320AC01C исполь- зуются в Приложении. При необходимости, пожалуйста, обращайтесь к ним. Ваш инструктор также должен иметь исходный вариант этих руководств. 1. Посмотрите внимательнее на макетную плату DSK plus. Определите на плате три основных устройства: ЦПС, программируемый аналоговый интерфейс и про- граммируемая матричная логика для интерфейса хост-порта. Вопрос 1. Какой процессор из серии TMS320C54x использует эта макетная плата? Таблица ниже демонстрирует внутреннюю программу и размеры памяти данных для различных процессоров в этой серии ЦПС. Тип памяти ‘541 ‘542 ‘543 ‘545 ПЗУ: 28К 2К 2К 48К Программа 20К 2К 2К 32К Программа/Данные 8К 0 0 16К ОЗУ с двойным доступом 5К ЮК ЮК 6К Вопрос 2. Какова конфигурация процессора на макетной плате DSK plus? Обратите внимание, что ОЗУ с двойным доступом может конфигурироваться как память данных или память программы/данных. 2. Аналоговая схема интерфейса АС01 обеспечивает один канал сбора данных о качестве данных и воспроизведения. Разрешение квантования составляет 14 бит. Час- тотная дискретизация по умолчанию составляет 15,4 кГц. Частотную дискретизацию можно изменять путем программирования регистров А и В АИЦ. Частота главных тактовых импульсов сейчас составляет 10 МГц. __________________/мськ________________ ‘ 5 2 х (register A value) х (register В value)
318 Цифровая обработка сигналов для инженеров и технических специалистов Вопрос 3. Каковы комбинации значений регистров А и В, которые выдают часто- ту дискретизации 15,4 кГц? А каковы они будут при частоте дискретизации 10 кГц? 3. Встроенный 10 МГц осциллятор обеспечивает процессор тактовыми импуль- сами. Однако С542 создает внутренние тактовые импульсы с частотой 40 МГц. Структура программы на языке ассемблера 1. Ассемблер, который поставляется с DSK plus, называется алгебраический ассемблер. Он дает пользователю возможность программировать на языке ассемблера, не имея обширных знаний набора команд на символическом языке. 2. Запустите ПК и откройте окно MS-DOS. Перейдите в папку C:\DSKPLUS путем ввода CD С:\ DSKPLUS 3. Запустите текстовый редактор, введя EDIT FIR.ASM. Теперь вы видите ис- ходный код программы упрощенной фильтрации КИХ-фильтра. Функция этой про- граммы будет обсуждаться позже. 4. Найдите директивы ассемблера .setsect в программных файлах. Вопрос 4. Какое там количество директив «setsect»? Вопрос 5. Какие адреса определяют эти директивы? Последнее число директивы «setsect» показывает, используется ли программа (0) или данные (1). 5. Директива .сору копирует исходный код с файла, имя которого находится в двойных кавычках. Вопрос 6. Из какого общего числа файлов состоит программа? Вопрос 7. Можете ли вы определить области данных и области программы в данной программе? Вопрос 8. Каков начальный адрес коэффициентов фильтра, входных данных и выходных данных? 6. Попытайтесь в общих чертах понять, что делает код. Комментарии к файлам должны прояснить картину. Вопрос 9. Найдите файл, который определяет начальные условия микросхемы аналогового интерфейса. Какая частотная дискретизация используется? (Подсказка: найдите величины регистров А и В.)
Практическая часть 319 7. Обратитесь к инструкции ЦПС TMS320C54x для прояснения того, что повто- ряется в инструкции и что делает macd. Это является центром программы фильтрации КИХ-фильтров. 8. Когда вы поймете программу, выйдите из текстового редактора, нажав на ALT-F после X. Теперь вы можете вернуться в MS-DOS. Использование ассемблера и отладчика 1. Выполните ассемблирование файла FIR. ASM, введя dskplasm fir.asm -1 Обратите внимание, что последняя буква вышеназванной команды — это буква L в нижнем регистре. Вопрос 10. Какие сообщения вы получаете после ассемблирования файла? 2. Проверьте, чтобы был создан файл FIR.OBJ. Вопрос 11. Какие файлы еще созданы? 3. Вернитесь к окнам. Нажмите на иконку программы анализа кода С54х в груп- пе программы анализа кода для запуска отладчика или используйте «пуск». 4. После загрузки программы нажмите на файл. 5. Перейдите к папке С: \DSKPLUS Вопрос 12. Какое количество файлов « . OBJ» находится в этой папке? 6. Дважды щелкните на FIR.OBJ 7. Код загрузился в микросхему С54х. Вы можете увидеть исходный код в окне обратного ассемблирования с левой стороны. Обратите внимание: если программа установлена некорректно, исходный код файла FIR.ASM не появится в окне обратного ассемблирования. В этом случае выйдите из программы анализа кода и сбросьте микросхему DSKplus путем отклю- чения от электропитания и последующего включения. Затем повторите пункты (в) и (е). Если все-таки проблема не решается, попросите инструктора провести тест микросхемы. 8. Отладчик состоит из четырех окон: обратный ассемблер, регистры ЦПУ, ре- гистры периферийного оборудования и окна памяти для хранения данных. Панель инструментальных средств вверху экрана включает в себя кнопки для пошагового изменения, запуска и сброса микросхемы DSKplus. Эти кнопки позволяют осущес- твить пропуск или вход в функции. Кнопка анимации поддерживает графическое
320 Цифровая обработка сигналов для инженеров и технических специалистов представление переменной или буфера. Данные можно просмотреть во временной или частотной области. Интерактивная помощь отладчика доступна через соответс- твующую кнопку интерфейса. Это полезно при получении ответов на типичные воп- росы в процессе использования инструментария. 9. Первая строка программы отмечена в окне обратного ассемблирования. Нажмите на кнопку «Шаг» вверху, чтобы выполнить одиночный шаг в программе. Пройдите одиночным шагом 3 строки программы. Вопрос 13. Какие регистры были изменены? Вопрос 14. Каким цветом стало отображаться содержание регистра? 10. Откройте окно памяти данных. Проверьте место сохранения коэффициентов фильтра, входных и выходных данных. Вопрос 15. Какое содержание области выходных данных до и после фильтрации? 11. Сбросьте программу, нажав на кнопку перезапуска, находящуюся вверху. 12. У вас есть возможность динамически изменять содержание регистров и памя- ти данных. Попробуйте увеличить самые последние входные данные на 100 h (шест- надцатеричной системы счисления). Снова выполните программу. 13. Вы также можете изменять место хранения этой памяти данных в процессе выполнения программы. Попробуйте сократить третьи входные данные на 100 h после пятикратного выполнения инструкций macd. Теперь вы прошли основные шаги ассемблирования и проверки выполнения программой операций с использованием отладчика. Это является обычной процеду- рой при разработке программ ЦОС для выполнения ЦПС. 14. Если доступен осциллограф или анализатор спектра, вы можете следить за выходным сигналом микросхемы. Программа генерирует случайный шум, который впоследствии фильтруется. Выходной сигнал должен показывать частотную характе- ристику низкочастотного фильтра. 15. Если доступен микрофон, посмотрите, сможете ли вы изменить исходный код программы для принятия входного сигнала из выходного порта (вместо отсчета случайного шума, сгенерированного в программе). Затем запустите программу, гово- рите в микрофон и слушайте отфильтрованный выходной сигнал. Разработка и реализация КИХ-фильтра (не обязательно) Сейчас мы рассмотрим процесс разработки КИХ-фильтра и введения коэффи- циентов в программу фильтрации КИХ-фильтра. Разработка будет осуществляться посредством программы MATLAB, мы сгенерируем коэффициенты фильтра и введем их в программу фильтрации КИХ-фильтра. 1. Разработаем КИХ-фильтр 80-го порядка с частотой среза 0,25 Гц (приведен- ной), используя окно Хэмминга. Используемая функция MATLAB — FIR1.
Практическая часть 321 Вопрос 16. Какова реальная частота среза? 2. Выполните квантование коэффициентов до 15 (16) бит. Выполните масшта- бирование результирующих квантованных коэффициентов на 215 (или 216). 3. Теперь вы можете ввести эти величины в качестве коэффициентов фильтра в файл коэффициента. Скопируйте исходный файл коэффициента и переименуйте файл, назвав его произвольным именем по вашему усмотрению. Скопируйте, пере- именуйте и измените исходный файл основной программы (FIR.ASM) для отобра- жения изменения имени файла коэффициента. Введите коэффициенты в соответст- вующее место файла. 4. Выполните ассемблирование и запустите программу КИХ-фильтра. Если доступен осциллограф или анализатор спектра, проверьте, функционирует ли про- грамма корректно. В противном случае прослушайте наличие профильтрованного белого шума, используя громкоговорители. Исходный фильтр имеет частоту среза 970 Гц. Разница с текущей частотой должна быть существенна. 5. Если позволяет время, попробуйте использовать другие частоты среза фильтра. Сигма-дельта метод Цель Укрепить знания концепции и методов, используемых в сигма-дельта преобра- зователях, а именно: • избыточной частоты дискретизации; • формирования псевдослучайного сигнала шума квантования. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленная программа Simulink версии 2.1. Упражнения Пожалуйста, обратитесь в раздел 2.4.4 руководства для изучения концепций и методов, которые используются в сигма-дельта преобразователях. Избыточная частота дискретизации Имитационная модель, которую мы будем использовать для изучения эффектов избыточной дискретизации, показана на рис. ниже. Обратите внимание, что модель использует функцию fpquant, которую мы определили в упражнениях по реализации фильтра и влиянию длины слов.
322 Цифровая обработка сигналов для инженеров и технических специалистов Рис. С.1. Имитационная модель для изучения эффектов избыточной дискретизации Исходный сигнал является (белым) шумом w(n), который имеет равномерный спектр. Данный сигнал фильтруется соответствующим образом для создания случай- ного сигнала v(n) с требуемой шириной полосы. Код MATLAB для этой операции следующий: [Ь0,а0]=ellip(7,0.1,60,0.195); w=(rand(l,8000)-0.5)*2) ; v=filter(ЬО,aO,w); Мы сгенерировали 8000 отсчетов сигнала. Используемый фильтр — эллипти- ческий низкочастотный фильтр с возмущениями в полосе пропускания 0,1 дБ и за- туханием в полосе задержки по меньшей мере 60 дБ. Частота среза — приведенная и составляет 0,195 Гц. Теперь v(n) — это сигнал, частота дискретизации которого увеличена в 4 раза. Дискретизованный на граничной частоте сигнал vc(n) сгенерирован путем понижения частоты дискретизации у(п) на 4 (оставляя 1 отсчет из 4). n=1:4:length(v); vc=v(n); Теперь v(n) и vc(n) квантованы до 10 бит. yc=fpquant(vc,10); vo2=fpquant(v,10); Мощность шума квантования (в дБ) для vc(n) рассчитывается и хранится как переменная dbel. ec=yc-vc; dbel=10*logl0(cov(el)); Фактически в системах сигнал с избыточной частотой дискретизации будет под- вергаться цифровой фильтрации, а затем понижению частоты дискретизации (смотри
Практическая часть 323 руководство для получения более подробной информации); здесь мы проделаем то же самое. Мощность шума квантования (в дБ) dbe2 рассчитывается с использованием только понижения частоты дискретизации. y2=decimate(vo2,4); v2e=decimate(v,4); e2=y2-v2e; dbe2=10*logl0(cov(e2)); Вопрос 1. В чем разница между dbell и dbel2? Вопрос 2. Каким числом бит квантования представляется соответствующее улуч- шение (в Q1)? Это приблизительно то, что вы ожидали? Формирование псевдослучайного сигнала шума квантования Второй метод, который используется при сигма-дельта преобразовании, — это формирование псевдослучайного сигнала шума квантования, используя обратную цепь по сигналу ошибки. На рис. С.2 изображена имитационная модель, которую мы будем использовать. Рис. С.2. Имитационная модель для изучения эффектов формирования псевдослучайного сигнала шума квантования Верхняя часть имитационной модели является сигма-дельта системой с исполь- зованием обратной цепи по сигналу ошибки. Нижняя часть создает значения опорного сигнала для расчета мощности шума (в дБ). Сначала мы сгенерируем последовательность выходных сигналов и(п). х=0 ; for n=l:length(v), u(n)=fpquant(x,10); ve=v(n)-u(n); x=ve+x; end
324 Цифровая обработка сигналов для инженеров и технических специалистов Вышеуказанный код может занять некоторое время для выполнения. Вам необхо- димо рассчитать выходной эффект, представляющий собой последовательность отсчетов вместо операций над всем вектором/матрицей, под которые оптимизирован MATLAB. Затем выходной сигнал подвергается децимации (фильтрации и понижению частоты дискретизации) для создания фактического выхода и соответствующей ошибки. y3=decimate(и,4); До того как мы подвергнем децимации входной сигнал, нам необходимо сдви- нуть последовательность вправо на единичную задержку отсчета, что представлено интегратором в контуре. vs(2:length(v))=v(1:length(v)-1); vs (1)=0; v3e=decimate(vs,4); Теперь может быть рассчитана ошибка квантования (в дБ). еЗ=уЗ-v3e; dbe3=10*logl0(cov(e3)); Вопрос 3. В чем разница между dbel2 и dbel3? Вопрос 4. Каким числом бит квантования представляется соответствующее улуч- шение (в Q3)? Это приблизительно то, что вы ожидали? Сигма-дельта АЦП преобразователь Запустите SIMULINK и создайте модель, которая показана ниже: Щ »iyiiiodcllo £dtt ЕкпиЫсп . l I IЛI - I Однобитный сигнал ошибки ГмкБЬрОвсгФ*»
Практическая часть 325 Для блоков используются следующие параметры: 1. Генератор сигнала: форма волны: квадратная; амплитуда: 1; частота: 80 Гц. 2. Аналоговый фильтр Баттерворта малой мощности: частота среза: 2*pi*400; порядок: 5. 3. Фиксация нулевого порядка: время дискретизации: 1/512000. 4. Дециматор 1: фактическое число используемых блоков: КИХ-децимация; коэффициенты КИХ-фильтра: firl(31,0,15); значение децимации: 4; время входной дискретизации: 1/512000. 5. Дециматор 2: фактическое число используемых блоков: КИХ-децимация; коэффициенты КИХ-фильтра: firl(31,0,15); значение децимации: 4; время входной дискретизации: 1/128000. 6. Дециматор 3: фактическое число используемых блоков: КИХ-децимация; коэффициенты КИХ-фильтра: fir 1 (31,0,15); значение децимации: 4; время входной дискретизации: 1/32000. 7. Интегратор: внешний сброс: нет; источник начальных условий: внешний; начальное условие: 0; верхний предел насыщения: бесконечный; нижний предел насыщения: бесконечный; абсолютное допустимое отклонение: авто. Параметры моделирования установлены так, как показано на рисунках ниже. Oimulotion parameters sigmadclta
326 Цифровая обработка сигналов для инженеров и технических специалистов Запустите моделирование. Выходной сигнал преобразователя является кванто- ванным видом входного сигнала. Вопрос 5. Понимаете ли вы, как работает преобразователь? Цифровая обработка изображений Цель • Ознакомление с областью ЦОС обработки изображений. • Проиллюстрировать линейную и нелинейную фильтрацию изображе- ний. Требуемое оборудование 486/Pentium ПК под операционной системой Windows95, 5.x версия MATLAB, а также установленный инструментарий обработки изображений и сигналов. Примечание Команда, которую пользователь должен ввести в соответствующее окно на ком- пьютере, обозначена следующим образом: plot(x,y)
Практическая часть 327 Упражнения Отображение изображений 1. Запустите MATLAB. Введите I = imread('ic.tif' ) ; J = imrotate(I, 35, ’bilinear'); imshow(I) figure, imshow(J) Отобразится изображение интегральной схемы, повернутое на 35° против часо- вой стрелки. 2. Для отображения последовательности изображений load mri mont age(D,map) Анализ изображения 1. При анализе изображения мы обычно хотим получить некоторые значения пикселей или их статистику. Введите следующее: imshow canoe.tif impixel Нажмите на две или три точки изображения на экране, а затем нажмите «вер- нуться». Значения пикселей отображены. Обратите внимание, что так как это цветное изображение, то показываются значения палитры «зеленый, красный, синий». 2. Для получения интенсивности значений конкретной прямой линии: imshow flowers.tif improfile Курсор изменится на перекрестие, когда будет находиться над изображением. Определите сегмент линии, нажав на конечные точки. Затем нажмите «вернуться». 3. Контуры изображения могут быть получены: I=imread('rice.tif' ) ; imshow(I) figure, imcontour(I) 4. Гистограммы изображения очень полезны. Один из типов использования гистограмм обсуждался в лекции. I=imread('rice.tif' ) ; figure(l), imshow(I) figure(2), imhist(I,64) 5. Выделение краев также чрезвычайно полезная операция. I = imread('bloodl.tif ' ) ; BW=edge(I,' sobel'); f igure(1), imshow(I) figure(2), imshow(BW) Вы также можете запустить интерактивную демонстрацию edgedemo для про- смотра операции выделения краев.
328 Цифровая обработка сигналов для инженеров и технических специалистов Улучшение качества изображения 1. Настройка интенсивности I=imread('rice.tif'); J=imadjust(I,[0.15 0.9], [0,1]); f igure(1) , imshow(I) figure(2), imshow(J) Сравните эту настройку co следующей: J=imadjust(I,[0 1] , [0.3 0.8]) imshow(J) 2. Коррекция гистограммы I = imread('pout.tif') ; J=histeq(I); imshow(I) figure(2), imshow(J) Можно сравнить гистограммы двух изображений: figure(1), imhist(I) figure(2), imhist(J) 3. Медианная фильтрация Сначала считайте изображение и добавьте к нему шум. 1=imread('eight.tif'); J=imnoise(I,'salt & pepper',0.02); figure(1), imshow(I) figure(2), imshow(J) Теперь примените к изображению медианную фильтрацию: K=filter2(fspecial('average' ,3),J)/255; L=medfilt2(J,[3 3]); figure(1), imshow(K) figure(2), imshow(L) В первом изображении используется линейная фильтрация, а во втором — ме- дианная фильтрация. Какое из них лучше? 4. Адаптивная фильтрация I=imread('saturn.tif'); J=imnoise(I,'gaussian',0,0.005); K=wiener2(J,[5 5] ) ; figure(1), imshow(J) figure(2), imshow(K) Этот фильтр называется фильтром Винера.
Практическая часть 329 Преобразование Фурье 1. Создайте искусственное изображение: f=zeros(30,30); f (5 : 24,13:17)=1; imshow(f,'notruesize') 2. Рассчитайте ДПФ 256x256 F=fft2(f,256,256) ; F2=log(abs(F)); imshow(F2,[-1,5], 'notruesize'); colormap(jet); colorbar Коэффициент постоянного тока отображен в верхнем левом углу. Его можно переместить в центр следующим образом: F2=fftshift(F); imshow(log(abs(F2)),[-1,5]); colormap(jet); colorbar Это только некоторые операции, которые можно осуществить с помощью инс- трументария обработки изображения. Вы можете изучать этот инструментарий даль- ше, перейдя в демонстрационные программы MATLAB таким же образом, как мы это делали в упражнении при знакомстве с MATLAB.
330 Цифровая обработка сигналов для инженеров и технических специалистов Предметный указатель А Адаптивная дифференциальная импульсно- кодовая модуляция (АДИКМ) 15 Адаптивное дифференциальное квантование 15 Аккумулятор 245 Активное удаление шумов (АУШ) 101, 117, 118, 119, 120 Алгоритм удаления самых последних элементов (алгоритм СПЭ) 249 Амплитудная и фазовая характеристики 124 Амплитудная характеристика 198 КИХ-фильтр, полученный применением окна Кайзера 149 полосовой фильтр с длиной 21 168 пять фильтров в графическом эквалайзере 153 фильтр при обработке прямоугольным окном 137 фильтры Баттерворта 178, 179, 186, 190 фильтры Чебышева 180, 182, 184, 185, 186, 188,190 Аналого-цифровое преобразование (АЦП) 37, 38 Аналого-цифровые преобразователи 47, 48, 49, 50,51,52,55,56, 57,61,62, 63 Аналого-цифровое преобразование (АЦП) 26, 35 АЦП двойного интегрирования 50 ограничение шума квантования 54, 55 параллельный АЦП 51 последовательное приближение 48, 49, 50 сигма-дельта АЦП 52 типичная система цифровой обработки 26 Аналого-цифровое преобразование (АЦП): АЦП двойного интегрирования 50 Аналоговый фильтр 196 Арифметико-логическое устройство (АЛУ) 250, 251 Арифметические операции 224, 226 Архитектура Неймана 246 Б Блоки фильтров с идеальными восстановителями (БФИВ) 173 Быстрое преобразование Фурье (БПФ) 25, 80, 87, 88, 90, 91, 259, 260, 261, 264 другие быстрые алгоритмы 91 В Внутренние шины адрес программы (АП) 253 данные в памяти данных (ДПД) 253 результат (Р) 253 Восстановление аналогового сигнала 26, 57 идеальный реконструктор 58, 59, 60 ступенчатый реконструктор 57, 59, 60, 61 фильтры подавления зеркальных компонент 61 Вычисление свертки посредством ДПФ 95 длинных последовательностей данных 98 метод наложения-сложения 98, 99 метод наложения-сохранения 99, 100 Г Гарвардская архитектура 246, 247 двухпортовая память данных 248 Генерация периодических сигналов 102 генерация целых гармоник основной частоты 104 генерация цифровых форм сигналов с использованием волновых таблиц 102 генерирование произвольных частот 104 пример DTMF 105 частота дискретизации 103 Генерация периодической цифровой формы сигнала с использованием цифровых фильтров 103 Двухтональные многочастотные сигналы (DTMF) 102 Дельта-функция Дирака 36 Дискретизация 27 интерпретация в частотной области 30 математическое представление 36 наложение спектров 32 теорема отсчетов 28 фильтр перекрытия спектров 34 Дискретное преобразование Фурье (ДПФ) 25, 80, 82, 83, 85, 87 апериодические сигналы 82 задержка во времени 85 корреляционная функция 85 линейность 84 модуляция 86
Предметный указатель 331 периодичность 84 последовательности реальных чисел 85 свертка 85 свойства ДПФ 84 сдвиг по частоте 86 формула Парсеваля 84 четные и нечетные функции 85 Дискретные во времени системы 12, 75, 113, 122 Дискретный временной ряд Фурье периодические сигналы 81 Дискретный временной ряд Фурье (ДВРФ) 81 Дополнение нулями 78 Доступ к программе и данным 251 шина адреса программы (ШАП) 251 шина данных программы (ШД П) 251 шина чтения адреса данных (ШЧАД) 251 шина чтения данных (ШЧД) 251 Е Естественные и искусственные сигналы 100 И Идеальные частотные характеристики фильтров 133 Идеальный фильтр нижних частот его импульсная характеристика 58 Избыточная дискретизация 52,54 Импульсно-кодовая модуляция 15 Институт инженеров по электротехнике и радиоэлектронике (ИИЭР; IEEE) 225 Интервал Найквиста 47, 132, 165 Использование окон 132 окно Блэкмана 143, 144 окно Кайзера 144, 147, 148 разработка окна Кайзера 146 разработка фильтров высоких частот 150 этапы разработки 148 окно Хэмминга 141,144 оценка эксплуатационных характеристик 137 функция Бесселя 154 Использование окон: прямоугольное окно другая интерпретация 140 Исходный и квантованный сигналы 44 К Каноническая форма 206, 207, 209, 210 Квантование 37 добавление псевдослучайного сигнала 44 неравномерное квантование 41 равномерное квантование 38 фиксация отсчета 37, 47 КИХ-фильтры 126,211,212,213,214 КИХ-фильтры в сравнении с БИХ- фильтрами 202 КИХ-фильтры Чебышева 162 Классификация систем 71 линейные и нелинейные 71 устойчивые и неустойчивые 72 физически реализуемые и физически нереализуемые 72 Классификация систем: инвариантные и неинвариантные во времени 72 Классификация цифровых фильтров 122 Кольцевой буфер 254, 255, 256, 257 Компандирование 42 процесс компандирования 14 Компандирование или неравномерное квантование 14 Конечная импульсная характеристика (КИХ) 122 линейная фазовая характеристика 129 разработка путем использования отсчетов частоты 158 структура с добавлением нелинейного переполнения 239 частотная характеристика 127 Конечная импульсная характеристика (КИХ): характеристика линейная фазовая характеристика 202 Концепция сигма-дельта преобразователей 52 Коэффициент отражения 218,220 Коэффициенты автокорреляции 77 периодические последовательности 77, 79 применение 79 Коэффициенты фильтра 122 Круговая свертка 85, 95, 96 Кэш-программа 248 Л Латентность 245 Линейная прогнозирующая модель 113 Линейная свертка 75, 79, 85, 95, 97 Линейная фазовая характеристика 198 Линейное предсказание 16 Линейные инвариантные во времени (ЛИВ) системы 72 Линейный буфер для данных 255 М Мгновенные значения 27 Метод дискретизации в частотной области 156
332 Цифровая обработка сигналов для инженеров и технических специалистов аналитические соотношения для расчета 156 переходная область 158 Метод линейного программирования 170 Метод Паркса-МакКлелланда 162 перестановочный алгоритм Ремеза 165 проблема аппроксимации 162 решение с эквивалентными искажениями 164 соотношения для разработки 166 Многоканальная система АУШ 120 Многопортовая память 248 Модель аналогового дискретизованного сигнала с аддитивным шумом квантования 40 критическая частота и избыточная дискретизация 53 спектр шума квантования с учетом добавления псевдослучайного сигнала 47 спектр шума квантования формированного с учетом сигма-дельта метода 56 Модель квантования коэффициентов 228, 229 Модель речеобразования 16 Н Найквиста предел 33 Найквиста частота 29 Наложение спектров эффект 33 Нерекурсивные фильтры 123 О Обзор классических аналоговых фильтров 176 аппроксимация Чебышева 180 обратная аппроксимация Чебышева 183 функция Баттерворта 177 эллиптическая функция 186 Области применения адаптивная фильтрация 18 обработка голоса и звука восстановление изображений 17 кодирование речи 14 распознавание речи 17 синтез речи 16 обработка изображений и видео 17 компрессия и кодирование изображений 18 повышение качества изображения 17 подавление шумов 18 управление приложениями 21 частотная коррекция канала 20 эхоподавление 19 Области применения ЦОС 13, 101 обработка голоса и звука 13 Области применения ЦОС (продолжение) обработка в антенных решетках или решетках сенсоров 21 приемник и передатчик цифровой системы связи 23 Обработка сигналов средствами центрального процессора (ООСЦП) 264 Обратное дискретное преобразование Фурье и его вычисление 83 Общий формат объектных файлов (ОФОФ) 274 Одноканальная система АУШ 117 Операции над дискретными во времени сигналами 69 задержка или сдвиг 69 представление в виде структурной схемы 71 скалярное сложение и умножение 69 сложение и умножение векторов 70 Операционные системы, работающие в реальном времени (ОСРРВ) 279 Операция типа «бабочка» 88, 89, 90, 91,92, 93 Операция типа «умножения и накопления» (УИН) 95, 206, 242 Определение частоты 11 Основные определения 10 Особенности практической реализации 91 вычисление БПФ для реальных данных 93 вычислительная сложность 95 реализация для чисел с фиксированной точкой 92 реверсирование бит 91 Относительная метрика 209 Оттенки серого 114 П Память с множественным доступом 247 Параллельное логическое устройство (ПЛУ) 251 Параметры формы 146, 147, 155 Передаточные функции каскад передаточных функций 213 передаточная функция нелинейного переполнения 239 Переменная комплексная частота 190 Перемножающий ЦАП с источниками напряжения 63
Предметный указатель 333 Повышение частоты квантования в ЦАП последовательного приближения 64 Полосовой фильтр 11, 171, 172 Полюсный фильтр 219 Последовательность единичных импульсов 67 последовательность, представляющая единичный скачок 68 Предел Найквиста 52, 58 Преимущества цифровой обработки сигналов 10 Преобразование, улучшающее контрастность 115 Преобразование Виноградова-Фурье 91 Применение беспроводного передатчика 106 другие преимущества 110 реализация ЦОС 108 технические требования 106 Примеры разработки 171 Принцип суперпозиции 71 Процесс разработки 266 аналоговый или цифровой 268 входной и выходной сигналы или требования к данным 267 выбор ЦПС 254, 266 детерминированный или случайный 269 диапазоны ширины полосы и диапазоны частот 268 динамический диапазон 268 интеграция системы 267 определение системных требований 266, 267 отладка и тестирование системы 267 разработка алгоритма 266, 268 разработка аппаратного обеспечения ЦОС 267 разработка программного обеспечения ЦОС 267 скорость передачи данных 269 спектральные составляющие 268 спецификации интерфейса разработки (СИР) 267 спецификация на разработку основных элементов (СРОЭ) 267 тип шума 269 требуемая информация 269 устойчивое или переходное состояние или оба состояния 268 формат данных, мультиплексирование и кодирование 269 число каналов или датчиков (сенсоров) 268 Процесс разработки фильтра 123 анализ эксплуатационных характеристик 126 аппроксимация 123, 124 исполнение 126 синтез и реализация 125 Прямая задача 170 Прямой доступ к памяти (ПДП) 250 Прямоугольное окно 135 импульсная характеристика 133,136 Р Равномерная дискретизация 28 Разработка БИХ-фильтров из аналоговых фильтров 188 метод билинейного преобразования 192 метод импульсной инвариантности 189 подход 177, 195 частотное преобразование 195 Разработка дискретизации в частотной области 199 Разработка фильтров с бесконечной импульсной характеристикой (БИХ-фильтр) методы прямой разработки 198 уравнение среднеквадратической ошибки 200 частотной дискретизации 198 характеристики БИХ-фильтров 175 Распределение плотности вероятности псевдослучайного сигнала 46 Расчет характеристики БИХ-фильтра 198 Рациональная функция Чебышева 186 Реализация в параллельной форме 215 Реализация цифрового фильтра влияние конечной длины слова 210, 226, 227 округление и усечение 231, 232 ошибки квантования коэффициентов 226,227 ошибки переполнения 232, 233 предельные циклы 236, 240 другие структуры 217 быстрая свертка 220 волновой цифровой фильтр 220 решетчатая структура 217, 218, 219, 220 структура частотной дискретизации 221 каскадная форма 212, 215 параллельная форма 215,216 представление чисел 222 представление с плавающей точкой 225 формат с фиксированной точкой 222 прямая форма 204, 205, 206, 211 БИХ-фильтры 204, 205 реализация в программном виде 221
334 Цифровая обработка сигналов для инженеров и технических специалистов алгоритмы обработки отсчета 221, 222 Рекурсивные фильтры 123,174 Ручное управление КЭШем 249 С Самый младший бит (СМБ) 223 Свертка, концепция 73, 75 Сверточные фильтры 127 Сигма-дельта АЦП первого порядка 55 Синтез волновой таблицы 103 Синтез речи 111 классификация звуков 112 механизм речеобразования 111 модель речеобразования 113 Синфазный и квадратурный сигналы 110 Система условных обозначений 67 Системы ЦОС 12 анализ ресурсов обмена данными 271 анализ ресурсов памяти 271 анализ ресурсов управляющего процессора 271 блочная обработка 13 последовательная обработка 12 процедура реализации 270,271 процесс разработки реализация системы 270 среда разработки системы 275 Спектр 11 Спектр квантованного сигнала 45 Специализированная интегральная микросхема (СИМ, ASIC) 126 Сравнение фильтров 188 Средства разработки 272 ассемблеры и редакторы связей 274 другие средства разработки 277 COSSAP 278 DADiSP 277 Hypersignal 278 MATLAB 277 MatrixX 278 Scilab 279 signal processing worksystem (SPW) 278 макетные платы 277 средства разработки на языках высокого уровня 272 внутрисхемный эмулятор 275 доступность языков 273 использование памяти 272 использование специальных команд 273 обслуживание мобильность 272 эффективность 272 программы моделирования 274 эмулятор с переходным устройством 276 средства разработки языком ассемблер 274 эмулятор, основанный на мониторинге 276 эмулятор на основе сканирования 276 Средства разработки: средства разработки на языках высокого уровня обслуживание 272 производительность 272 «Сторожевой» двоичный разряд 92 Структура программного радио 23 Структура прямой реализации 206 Структура фильтров 204, 211 Схема фиксации отсчета 37 Т Теорема отсчетов ВКШ (WKS) 30 Типичные дискретные во времени сигналы 67,81 единичный импульс 67 единичный скачок 68, 69 случайный сигнал 68 Транспонированная структура КИХ-фильтра 210,212 У Улучшение качества изображения 114 улучшение контраста 114 устранение шумов 116 Ф Фильтрация наложения спектров 34, 35 Фильтр верхних частот 11 Фильтр Кауэра 188 Фильтр наложения спектров 35 Фильтр низких частот 143, 144, 171 Фильтр с бесконечной импульсной характеристикой (БИХ) 123, 174, 214, 215 Фильтры с максимальной плоской характеристикой 177 Фонемы 112 Форманты 112 Функции многочлена Чебышева 180,181 X Характеристика фильтра 161 Характеристика фильтра разделения звукового спектра на каналы (кроссовер) 150,151
Предметный указатель 335 Характеристика фильтра с квантованным коэффициентом 230 Характеристика фильтров Чебышева 180, 181 Характеристики КИХ-фильтров 126 ц Центральный процессор (ЦПУ) 251 Цифроаналоговое преобразование (ЦАП) 26,61,62,63,64 перемножающий ЦАП 62, 63 ЦАП последовательного приближения 63 Цифровой фильтр 197,198 Цифровые видеодиски (DVD) 18 Цифровые процессоры сигналов аппаратная архитектура 243 архитектура TMS320C5x 250 архитектура памяти 246 тракты обработки данных 243 выбор процессора 265 использование частотного модулятора 109 метод избыточной дискретизации 54 микропроцессоры общего назначения для задач ЦОС 264 примеры кодов 257 КИХ-фильтрация 257 специальные инструкции и режимы адресации 254 характерные особенности 241 архитектура памяти с множественным доступом 242 быстрое умножение-накопление 242 периферийные интерфейсы 243 специальное управление программой 243 специальные режимы адресации 242 Ч Частотная область дифференцирование 86 Частотное искажение 193 Ш Шеннона теорема дискретизации 28, 29 Широтно-импульсно-модулированный (ШИМ) сигнал 64 Электротехника/электронная техника 10 Эллиптические функции Якоби 186 Е ERMES 106 ERMES (Европейская система передачи радиосообщений) 108,109, 124,125,156 спецификации 125 фильтр премодуляции 107 М METEOR 171 N Numerical С Extension Group (NCEG) 273 P POCSAG 106, 110
Переводное издание Эдмунд Лэй ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ ДЛЯ ИНЖЕНЕРОВ И ТЕХНИЧЕСКИХ СПЕЦИАЛИСТОВ ПРАКТИЧЕСКОЕ РУКОВОДСТВО Перевод Соголюб Н. С. Выпускающий редактор Т. А. Рыбакова Верстка Н.М. Понятовская Художник Е.А. Егорова Корректор Е.Б. Фрунзе ООО «Группа ИДТ» 123182, Москва, пл. Ак. Курчатова, д.1, стр.З Главный редактор Стась К. Н. Исполнительный директор Фионичев А. В. Тел./факс (495) 609-68-99 www.techizdat.ru Подписано в печать 27. 02. 07 г. Формат 70x100 ‘/16. Печать офсетная. Бумага офсетная № 1. Усл. печ. л. 27,3. Тираж 1000 экз. Заказ № 445. Отпечатано с предоставленного оригинал-макета на ОГУП «Областная типография «Печатный двор» 432049, г. Ульяновск, ул. Пушкарева, 27.
Серия Безопасность и системы промышленной автоматизации Опыт практического применения ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ ДЛЯ ИНЖЕНЕРОВ И ТЕХНИЧЕСКИХ СПЕЦИАЛИСТОВ Практическое руководство Эдмунд Лэй • Издание охватывает все практические аспекты применения цифровой обра- ботки сигналов (ЦОС), особое внимание уделено их реализации, расчетам и диагностике. ® Основы ЦОС представлены на практических примерах с подробными объяснениями и минимумом формул. ® Рассмотрено использование ЦОС в различных отраслях промышленности - от управления процессом до техники связи. Книга входит в серию «Безопасность и системы промышленной автоматизации», издаваемую ООО «Группа ИДТ» по лицензии издательства ELSEVIER. Эта серия предоставляет на профессиональном уровне практическую информа- цию по новейшим ключевым технологиям. Она предназначена, главным образом, для инженеров и специалистов, которые желают повысить свой уровень знаний, чтобы продуктивно работать с новыми технологиями или обновить свои знания, необходимые для текущей работы. Книги этой серии являются идеальными помощниками для профессионального роста специалистов. Они подходят как для самостоятельного изучения в домаш- них условиях, так и для корпоративных тренингов. Кроме того, эти книги обеспечи- вают всеобъемлющее рассмотрение материала, необходимого профессиональ- ным инженерам, нуждающимся в удобном подручном справочном материале. Для студентов практическая инженерная информация является совершенно необходимым дополнением к теоретическим курсам. Опубликовано в оригинале под названием Practical Digital Signal Processing for Engineers and Technicians. Настоящий перевод публикуется по договору с Elsevier.