Текст
                    В. Бондарев, Г. Трёстер, В. Чернега
ЦИФРОВАЯ	’
ОБРАБОТКА СИГНАЛОВ:
методы и средства

В. БОНДАРЕВ, Г. ТРЁСТЕР, В. ЧЕРНЕГА ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ: МЕТОДЫ И СРЕДСТВА Рекомендовано Министерством образования Украины в качестве учебного пособия для студентов вузов, обучающихся по направлению 0804 - “Компьютерные науки” Отсканировал н преобразовал в DjVu Александр Богомаз albom85@yandex.ru http://albom85.narod.ru 2001
ББК 32.811.3+32.973.2 Б811 УДК 621.391.26.083.92+681.325.5-181.4 Рецензенты: манд. техн, наук доцент Новацкий А.А., д-р физ.-мат. наук Суворов А.М. Бондарев В.Н., Трёстер Г., Чернега В.С. Б 811 Цифровая обработка опалов: штодн и средства. Учеб, пособие для вузов. 2-е изд. - X.: Конус, 2001.- 396 с.:ил. ISBN 966-7836-14-3 Книга содержит обширную информацию по методам и программно- аппаратным средствам цифровой обработки силилов. В первой части книги изложены элементы теории сигналов и систем, основы цифрового спектраль- ного анализа и синтеза цифра вых фильтров, методы цифровой обработки речевых и аудиосигналов, методы обработки изображений Во второй части книги рассмотрены архитектурные особенности цифровых процессоров обработки сигналов (ЦП ОС). подробно освещаются вопросы програм- мирования ЦП ОС с фиксированной запятой TMS320C2x фирмы Texas Instruments. На примере ЦП ОС фирмы Analog Devices оиноны возможности 32-разрядных ЦПОС с плавающей запятой Книга предназначена в качестве учебного пособия для студентов вузов, обучающихся по направлениям: “Компьютерные науки”, “Компьютерная инженерия”, “Компьютеризированные системы автоматики и управления” ндр., а также для широкого круга лиц, интересующихся вопросами построе- ния подсистем цифровой обработки сигналов в распределенных .информа- ционных мультимедиа системах. ISBN 966-7636-14-3 © Бондарев В.Н., Трестер Г., Чернега В.С. Оригинал-макет Бондарев В.Н., Чернега В.С. © Конус, 2001
ПРЕДИСЛОВИЕ Современный этап развития информационных технологий характе- ризуется бурным развитием распределенных информационных мультиме- диа систем (РИМС) РИМС революционизируют обрю жизни человека Их развитие направлено на создание электронного мира, в котором люди смо- гут эффективно работать, учиться, отдыхать, решать ежедневные задачи своего жизнеобеспечения. Сегодня РИМС предоставляют доступ к элек- тронным библиотекам, позволяют смотреть н слушать видео и радио про- граммы, обеспечивают проведение видеоконференций и многое другое На очереди создание интерактивных РИМС, в которых предусматриваются голосовые интерфейсы, интерактивное видео и игры и пр. РИМС интегрируют телекоммуникационные, вычислительные и ин- формационные ресурсы и предназначены для сбора, хранения, обработки и передачи информации в самых разных формах ее представления - текст, чи- словые данные, изображения, аудио, видео и пр. Примером РИМС являются сети ПЭВМ и рабочих станций, соединенные с серверами мультимедиа ин- формации посредством Internet Использование в РИМС, наряду с традиционными информационными архивами, мультимедийных баз данных требует введения в учебные планы подготовки специалистов в области информационных технологий дисцип- лин, изучающих как методы цифрового представления и обработки различ- ных сигналов, так и вычислительные средства, с помощью которых данная обреботта выполняется. Совместное рассмотрение методов и срслста циф- ровой обработки сигнахов (ЦОС) должно способствовать более глубокому пониманию сути процессов, протекающих в РИМС, и формированию необ- ходимых практических навыков по разработке конкретных технологиче- ских цепочек преобразования информации в РИМС на базе ЦОС Учебные пособия на эту тему на территории СНГ практически нс из- давались Имеющаяся учебная литература ориентирована преимущественно на спештахнетов радиотехнического направления и была издана до начала 90-х годов, т е почти 10 лет назад Она не в полной мере учитывает специ- фику подготовки специалистов в области информационных технологий, а также современный уровень развития средста ЦОС В ией не описываются современные методы обработки звуковых енгнахов и изображений, отсут-
стэует последовательное изложение вопросов программирования цифро- вых процессоров обработки сигналов СЦПОС) - важных элементов РИМС реального времени. Цель издания учебного пособия - дать систематический обзор основ- ных методов ЦОС, включал современные методы обработки звука и изо- бражений, н изложить вопросы их практической реализации на основе СБИС ЦПОС, выпускаемых ведущими фирмами мира Книга базируется на соответствующих курсах лекций, читаемых ва- терами в федеральной высшей технической школе (ЕТН) г.Цюриха и в Се- вастопольском государственном техническом университете Книга будет полезной студентам, обучающимся но направлениям "Компьютерные науки”, "Компьютерная инженерия”, "Компьтериэированные системы ва- тематмки и управления’’, а также специалистам, занимающимся разработ- кой разнообразных систем с ЦОС. Введение, главы 2,3,4,7 написаны В.Н. Бондаревым, главы 1 и 6 напи- саны В Н. Бондаревым и Г. Трвстером,. глваы 5 и 8 - 0.С. Черне гой. Авторы выражают признательность администрации Института элек- троники ЕТИ за предоставленную возможность работы над книгой, а также рецензентам - доценту кафедры автоматики и управления в технических системах Напиоиахьного технического университета Украины (Киевский политехнический институт) канд. техн, наук А А. Новаикому и заведующе- му отдал ом морских информационных систем и технологий Морского гид- рофизического института НАН Украины д-ру физ.-мат. паук А.М Суворову за доброжелательную критику и полезные замечал ия, которые способство- вали улучшению книги. Особую благодарность авторы выражают д-ру техн, наук, проф. В.К. Маригодрву за его большой труд по редактированию руко- писи. Отзывы и предаожения просьба направлять по адресу: Украина, 335053, г Севастополь, Студгородок, Севастопольский государственный технический университет, НМЦ. Цюрих-Севастополь Июнь 1999г
ВВЕДЕНИЕ Под сигналом в общем случае понимают физический процесс, который осуществляет перенос информации во времени и простралстве. Сигналы описываются математическими моделями, отражающими общие свойства различных по физической природе процессов Обработкой сигнала называется преобразовал не сигнала с целью представления информации, содержащейся в сигнале, в наиболее удобной форме. Обработка сигналов может осуществляться с помощью различных технических средств: алахоговых (непрерывных), цифровых, гибридных (представляющих комбинацию аналоговых и цифровых средств) Первоначально обработка сигналов осуществлялось с помощью алалоговых средств. Примерно с конца 80-х годов в лидеры выходит цифровая обработка. Цифровая обработка сигналов (ЦОС) основана на представлении сигналов в виде последовательностей чисел и может осуществляться либо с помощью универсальных цифровых ЭВМ, либо с помощью специальных цифровых процессоров обработки сигналов (ЦПОС). Реализация ЦОС в реальном масштабе времени требует, как правило, применения ЦП ОС. Обработка сигналов в ЭВМ и ЦПОС выполняется на основе алгоритмов нан процедур Причины использования цифровых методов обработки сигналов вряд ли нуждаются в перечислении. Цифровые системы мало чувствительны к параметрам окружающей среды. Они мечут быть адаптивными и их легко пере программировать. Цифровые сигналы можно хранить в неизменном виде неограниченное время Цифровые алгоритмы легко переносятся с оборудования одного изготовителя на оборудование другого изготовителя и пр. ЦОС развивается уже свыше 50 лет За это время созданы эффективные алгоритмы обработки сигналов, прогрессивные технологии производства КИС ЦПОС, расширено применение ЦОС. Если на первых этапах ЦОС применялась в основном в военных системах, то сегодня диапазон приложений ЦОС весьма широк Он охватывает следующие области: распознавание и синтез речи, сжатие речи, засекречивание речи, идентификация дикторов по голосу, сжатие и редактмровалне аудио сигналов, синтез аудио сигналов, передача данных, подавление шумов.
6 Вклсняе сжатие изображений, синтез и распознавание изображений, сжатие и обработка видеосигналов, спектральный анализ, подавление эхо-сигналов в системах телекоммуникаций, управление приводами магнитооптических дисков, акустика, сейсмика, робототехника и др. В течение последних 10 лег наблюдается н1ттенснвиое внедрение технологий ЦОС в компьютеризированные системы обработки информации Благодаря этому последние становятся мультимедийными, те. наряду с классическими типами данных, хранящимися и обрабатывающимися в таких системах, появляется возможность хранения и обработки аудио и видео данных. Ото способствует кардинальному изменению взаимодействия человека с информационными системами. Они становятся по настоящему “дружественными", значительно расширяется перечень и повышается качество предоставляемых ими информационных услуг. Выход ЦОС на рынок мультимедийных информационных систем стимулирует дальнейшее развитие производства ЦПОС Начинал с 1988 года объем производства ЦПОС увеличивался каждый год на 40% По прогнозам к 2007 году объем продаж БИС ЦПОС составит 20 мирд долл Вышесказанное предполагает детальное знакомство специалистов в области компьютерных информационных технологий с методами и средствами ЦОС. По этой причине в последние время дисциплина "Цифровал обработка сигналов” вводятся в учебные планы подготовки специалистов по информационным технологиям во многих вузах. Однако до настоящего времени не издавалось учебного пособия, ориентированного на эту категорию читателей. Цель данной книги - дать систематический обзор основных методов ЦОС н нх практической реализации на основе БИС ЦПОС Книга ориентирована на студентов старших курсов, обучающихся по направлениям: «Компьютерные науки'’, "Компьютерная инженерия". В ней широко используются математические модели сигналов Олнако описание методов ЦОС ведется скорее на качественном и содержательном уровне, чем на уровне строгих математических доказательств Содержащийся в книге учебный курс следует рассматривать как начальный этап на пути к специализации в области технологий ЦОС Кинга состоит из введения и восьми глав. В первой главе вводятся основные понятия н определения ЦОС. В данную главу включены некоторые вопросы теории непрерывных сигналов н систем, важные с точки зрения последующего изучения методов ЦОС В главе рассматриваются основополагающие вопросы теории ЦОС, такие как: дискретизация, спектральные преобразования, цифровая фильтрация, квантование и масштабирование , многомерные цифровые сигналы и системы.
Ваедеяш 7 Во второй главе описываются наиболее важные методы цифрового спектрального анализа, которые позволяют выявить частотный состав исследуемых сигналов Третья глава посвящена рассмотрению методов синтеза одномерных и двумерных цифровых фильтров. Приводятся примеры синтеза конкретных фильтров н фрагменты соответствующих программ. В четвертой главе подробно рассматриваются основные методы обработки речевых и аудио сигналов Описываются особенности слуховой системы человека и его голосового аппарата, используемые при кодировании, сжатии и синтезе речи и аудио снгиелов Пятая глава посвящена рассмотрению вопросов обработки изображений. Здесь рассматриваются вопросы представления изображений и операции над ними, сегментация и сжатие изображений. В шестой главе рассматриваются основные характеристики ЦПОС и их архитектурные особенности. Приводятся сравнительные данные наиболее популярных семейств ЦПОС Седьмая глава посвящена изучению ЦПОС с фиксированной запятой на примере СБИС TMS32OC25 фирмы Texas Instruments Подробно рассматривается архитектура и система команд, технология написания программ с использованием типовых алгоритмических конструкций и структур данных - массивов, стеков, очередей. Приводятся многочисленные примеры и программы цифровой фильтрации и быстрого преобразования Фурье. В восьмой главе рассматриваются архитектурные особенности и система команд ЦПОС с плавающей запятой на примере СБИС ADSP2lxxx фирмы Analog Devices. Приводится система команд, примеры программ осноаных алгоритмов ЦОС и примеры построения многопроцессорных систем.
Глава 1 ЭЛЕМЕНТЫ ТЕОРИИ СИГНАЛОВ И СИСТЕМ 1.1 Классификация сигналов Слово “сигнал" ведет свое происхождение от латинского слова "signum" (знак). Знаки используются для передачи н хранения информации. Совокупность знаков, представляющих ту или иную информацию, называют сообщение.». Сигнал - это некоторый физический процесс, являющийся носителем сообщения. Примерами сигналов могут служить ток в цепи микрофона, воспринимающего речь, яркость луча электронно- лучевой трубки телевизора при приеме изображения н др. В теории сигналов обычно рассматривают не сам физический процесс, переносящий сообщение, а его математическую модель, являющуюся формой аналитического описания сигнала. Чаще всего сигналы представляют функциональными зависимостями, в которых аргументом является время / или некоторая пространственнал переменная s. Функции, описывающие сигналы, могут принимать как вещественные, так и комплексные значения. В дальнейшем для обозначения сигналов будем использовать функциональные зависимости вида и(г),/(т) и т.п. Сигнал, описываемый функцией одной переменной, называется одномерным, а сигнал, описываемый функцией М независимых переменных (Л/г 2), - многомерным. Например, яркость изображения Цх,у) - двумерный сигнал. Иной признак классификации сигналов основан на возможности или невозможности точного предсказан ил значений сигнала в любой момент времени или в любой точке пространственной координаты. Соответственно сигналы, для которых возможно указанное предсказание, называются детерминированными, а сигналы, для которых невозможно точно предсказать значения, называют случайн ы.ии Случайные сигналы описываются случайными функциями, значения которых при каждом данном значении аргумента представляются случайными величинами. Случайную функцию времени называют случайным процессом. При одном наблюдении случайного процесса получают определенную функциональную завис им ость, которую называют реализацией. Примером реализации случайного процесса может служить отрезок сигнала и(0.
3wctw ттор— сигналов и смгтгм v зарегистрированный на выходе микрофона при произнесении какого-либо шипящего звука ("с", “ш" и т.п.). Примером детерминированного сигнала является гармоническое колебание и(г) = A cos( он), для которого можно точно определить значение в любой момент времени. Сигналы, значения которых изменяются непрерывно при изменении непрерывной временной t нян пространственной переменной j, называются непрерывными сигналами (рис I 1,а). Непрерывные сигналы часто называют аналоговыми (континуальными) сигналами. Наряду с непрерывным способом передачи н преобразования сигналов, в настоящее время широко применяют дискретные способы, в которых в том или ином виде используется дискретизация сигналов. Дискретизация сигналов состоит в замене ‘‘непрерывных” значений теми или иными дискретными значениями и может быть осуществлена по времени (нян пространственной переменной), по уровню, нян по времени и уровню одновременно. Дискретизация сигнала по времени соответствует выделению значений сигнала при фиксированных значениях /(рис.].1,6) Обычно моменты взятия значений (отсчетов) сигнала отстоят друг от друга на величину Т„ (или 5,), называемую соответственно интервалом или шагом дискретизации Сигнал, получаемый в ходе указанного процесса, называется дискретным сигналом. Рис I I Дискретизация и квантование сигналов
10 Глава 1 Дискретный сигнал представляется множеством точек л7^, в каждой нэ которых определено отсчетное значение сигнала ырН = “(л7») Таким образом, дискретизация по времени заменяет непрерывную функцию и(/) решетчатой, которая определяется совокупностью выделенных ординат нян дискрет м[и], следующих через равные интервалы Го. Отметим, что для различия обозначений непрерывных н дискретных функций в литературе используются соответственно круглые () и квадратные () скобки. Дискретизация сигнала по уровню, которая чаще называется квантованием по уровню (рис 1.1,в), соответствует выделению эняченнй сигнала при достижении нм заранее фиксированных уровней. Уровни обычно отстоят друг от друга на постоянную величину, называемую шагом квантования по уровню. Одновременная дискретизация сигнала по времени и по уровню соответствует выделению в заданные моменты времени значений сигнала, ближайших к заранее фиксированным уровням (рис. 1.1, г). Сигналы, дискретизированные как по времени, так и по уровню, называются цифровыми. Цифровые сигналы отличаются от дискретных тем, что д ля ник отсчетные значения представлены в виде чисел. Для формирования цифровых сигналов применяют аналого-цифровые преобразователи (АЦП), которые выполняют дискретизацию аналогового сигнала по времени и уровню, а затем кодируют уровень сигнала, используя ту нян иную систему счисления Цифровые сигналы находят все большее применение при решении различных задач, поскольку могут обрабатываться с помощью программируемых цифровых вычислительных устрой ста, обладающих известными достоинствами [31]. 1.2 Преобразования Фурье непрерывных сигналов 1.2.1 Разложение периодических сигналов в ряд Фурье В теории и практике обработки сигналов часто встречаются сигналы, которые могут рассматриваться как периодические. Сигнал x(f) называется периодическим, если для него выполняется условие х(/) = x(t + nT)' . (1.1) где л- целое число, а Т- период сигнала. Примером простейшего периодического сигнала является гармоническое колебание х(г) = A cos( oil - р), (12)
гы теории turnup» н свете»11 Такой сигнал представляет гармонику, которая характеризуется амплитудой А, круговой частотой й) и начальной фазой ф Нетрудно убедиться, что гармоника имеет период Т = 2 я / й) Сложение гармоник вила (1.2) с кратными частотами й), 2й), Зй», приводит к образованию периодического сигнала ХП с периодом, равным периоду первой гармоники Т=2л!а}. В качестве примера рассмотрим сигнал x(t) = cos/ + cos2/ + 0,5cos3/. (1.3) Суммарный сигнал ХО будет периодическим (рис 12). Периодическим будет и сигнал *(О = X Л* COS(*<W -Л ), (1.4) «и состоящий из бесконечного числа гармоник Период тгоги сигнала также равен 7* Гармоники,образующие x(t) Рис. 1.2. Разложение периодического сигнала В теории сигналов доказывается, что любой периодический сигнал ХЛ. имеющий на периоде конечное число точек разрыва первого рода, может быть представлен в виде (1 4) [1,5]. Иными словами, периодический сигнал х(/) сложной формы может быть разложен на элементарные гармонические колебания с амплитудой At, частотой и начальной фазой Здесь а>, круговая частота первой гармоники.
Если учесть, что 4соз(1^-зд) = 4+ ЛsinJtaysin^ и ввести обозначения ак = Д cosp, ,bt = A, sinp(, то выражение (1.4) можно переписать в более удобной форме: х(1) = сц, / 2 + ^(0^ cosAoy + Min*a0. (1,5) id Здесь А = я,/2 представляет нулевую гармонику Выражение (1.5) представляет разложение периодического сигнала *(>) в ряд Фурье При этом коэффициенты ряда Фурье могут быть определены по следующим формулам (1,5]: 2 7/3 а о = — f х(0Л ( ' -ТП (1.6) 2 at = — jz(r)C0S koj'tcif. 7" -th (17) Т/2 bt = — j x(/)sin ktUftdi -T12 (1.8) Легко заметить, что амплитуда Ак и начальнал фаза в разложении (1.4) равны: Л = № + $ и pi = aratfbt /ак). Если х(/) является четной функцией на интервале [~Т!2,Т12), то произведение xfOcosAo»,; будет представлять собой четную функцию, а произведение 4г)зтА<цг - нечетную. В лом случае коэффициенты bk ряда Фурье равны нулю, так как интеграл (18) от нечетно-симметричной функции будет равен нулю. И наоборот, если х(0 является нечетной функцией на интервале {-Т!2,Т/2], то равны нулю коэффициенты ак. Это свойство коэффициентов a t и Ь , широко используется на практике. Совокупность коэффициентов А, и р, разложения (1.4) представляет амплитудный и фазовый частотные спектры периодического сигнала з(/). Графическое построение, наглядно интерпретирующее коэффициенты ряда Фурье, называется спектральной диаграммой (рис. 1.3). Различают амплитудные и фазовые диаграммы. На рис 1.3 по осн абсцисс отложены номера (частоты) гармоник, а по осн ординат значения коэффициентов Ль ия и р* .
JkMIIU ттори ежгкядов систем п Рис 1.3. Спектральные диаграммы периодического сигнала Отметим важное свойство системы функций СО5Ш/, sin «у,/, со5 2й>,/, sin 2й(|1, .... cosia>|f. smioy, (1.9) используемых в разложении (1.5). Ого свойство состоит в том, что интеграл, взятый от произведения любых двух функций на периоде Т=2я7<ц, равен нулю, т е. | cos katjdt = О, J sin ka^tdt = 0;. j sin ka>yt - sin la>,ldl = 0; ppp j cos к a>yt cos loi^dl = 0; J” sin ka\t cos Ia>ttdi = 0, i> p где p - действительное число; i - натуральное число. Указанное свойство называется ортогональностью, а разложение (1.5) называют разложением x(f) по ортогональному базису функций вида (1.9). Базис (19) не является единственным. Возможно разложение сигнала и по другим ортогональным базисам. Способы построения ортогональных базисных функций исследуются в математике Рассмотрим разложение х(О по системе ортогональных комплексных экспоненциальных функций [1.5] Перепишем (1.5) в компактной симметричной форме, воспользовавшись представлением гармонических функций в виде суммы комплексных экспонент в соответствии с формулами Эйлера Тогда получим д0 ( е^'+е-^' L е^' ,W)-T+^b——
Введем новые коэффициенты ct =(ot -jbk)l2T Коэффициенты можно определить и при отрицательных индексах к. Причем c-i =(at + так как коэффициенты ot четны, а Л, нечетны относительно индексов. Распространив суммирование в (1.5) и на отрицательные индексы и обозначив с0 = ц, /2, получим *(') = L с*е (1.10) Формула (1.10) представляет комплексный ряд Фурье. Коэффициенты Cj такого ряда определяются выражением т_ «* = 7" f л(/)е '‘•'Л ' _ т_ ~ 2 (111) В общем случае коэффициенты Ск имеют комплексные значения. Представим эти коэффициенты в экспоненциальной форме: ct = и С-4 =Ае ''*1 Тогда q = с1, где * - обозначает комплексно-сопряженное значение В этом случае пара слагаемых разложения (110) с положительными и отрицательными значениями индексов представляет гармонику + = 24cos(*(Ulr + ^), которая характеризуется амплитудой 2Ate'* = Ct. Отметим, чти Ct = 2ct, /г» 1,2,.. и Со = с0 Совокупность коэффициентов С4 или образует комплексный частотный спектр сигнала. Такне спектры обычно строят только для положительных значений индексов к . Формулы (1.10) и (1.11) образуют пару преобразований Фурье. Формула (1.10) представляет произвольный сигнал *(г) в виде суммы гармоник с комплексной амплитудой 2ck Формула (111) позволяет выполнить обратные преобразования Иными словами, между периодическими енгнляами и их частотными спектрами существует взаимно однозначное соответствие Выражение (1.10) позволяет перейти от спектра к сигналу, а выражение (1,11) - от сигнала к спектру. Поэтому при решении различных задач можно операции над периодическими сигналами Х0 заменять
Эл(—чы ттор— сигналов и аггем операциями над частотными спектрами, характеризующими эти сигналы. Эго дает возможность исследовать свойства сигналов не только во временной области, анализируя непосредственно сигнал ХС, но и в чистотой, оперпруя коэффициентами с t . Рис. 1.4. Периодическое продолжение непериодического сигнала В виде суммы гармонических составляющих могут быть представлены не только периодические сигналы, но и непериодические сигналы, заданные на интервале [-Т/2.Т/2] Разложение в ряд Фурье непериодического сигнала совладает с разложением в ряд Фурье сигнала, периодически продолженного за пределы интервала [-Т/2.Т/2]. Сигнал, полученный в результате такого продолжения, будет периодическим с периодом Т. На интервале [-Г/2,Г/2] этот сигнал совпадает с исходным непериодическим сигналом х(г) (рис. 1.4). Пример 1.1 Найдем спектр последовательности видеоимпульсов (рис 1.5) Воспользуемся формулой (I 11) Выполнив необходимые подстановки, получим
16 Глава 1 . sin i<u. - . . ш л 2 2 _ мл kn;q Г ka>t xq kjq ,. 2* r/ гм l - — и q = у «важность последовательности ш, г г Перепишем полученное выражение а аиле A sin кх,д Я Форма спектра последовательности видеоимпульсов соответствует функции sin (г)/а, которая обозначается unc(t) и имеет вид. показанный на рис I 6. Рис 1 7 Спектр последовательности видеоимпульсов Найденный спектр валяется дискретным и существует только для частот А<и, Ам- плитуды частотных составляющие спектра пропорцнонедьны значениям функции sin с {кя/q) и являются действительными значениями Отметим, что последовательность более коротких импульсов (с большных значе- ниями q) имеет более насыщенный спектр Снактр послсдовятельносш видеоимпульсов для д-4 и q = 8 показам на рис 1 7 1.2.2 Интегральнее преобразование Фурье Рассмотренное выше представление сигналов в виде ряда Фурье спра- ведливо для периодических сигналов. На практике нередко приходится рас- сматривать непериодические сигналы. Обобщим ряд Фурье на случай не- периодических сигналов. Рассмотрим сигнал хр(0, который представляет собой периодиче- скую последовательность импульсов произвольной формы *(<), следую- щих с периодом Т. Тогда *,(0 = ^л(Г-лГ) (1.12)
Элементы теория сигналов систем 1? где функция ХО описывает один импульс Согласно (1.11) коэффициенты ряда Фурье для *,(0 на интервале (-Г2. 7'2] равны 1 771 С. =Нх,«)е-""Л. (,.|3) 1 -г/1 Учитывая, чти сигнал *,(0 на интерваяе (-Т/2. Т/2) представлен одним импульсом ХО, а за пределами этого интервала Х)=0. перепишем (1.13) в виде <1-14) Из (114) следует, что при 'Г = const коэффициенты с, зависят только от интеграла Х(Лш|)= Jх(/)е'Л4”г dl (115) Комплексная функция частоты A^fey,) является спектральной харак- теристикой одиночного импульсах^. Из сравнения (1.14) и (115) следует, что Х(кси1) (1.16) Пределы интегрирования в (1 15) являются бесконечными. Это можно трактовать как разложение в ряд одиночного импульса на бесконечном ин- тервале времени Н.®). Тогда сигнал x(i) можно записать в форме (1.10), если положить Т -»® X')=lim = lim X (1 17) Подставляя значение Т = 2л1й>, получаем x(f) = lim — £ X (fctu, )e/*“l'tul г-*в 2/г (ИВ)
18 hiul При T—ых> час [Gia первой гармоники о*, = 2д/Г становится беско- нечно малой. Приращение частоты а> , при переходе к соседней гармонике можно отождествить с дифференциалом dai Под знаком суммы в (1.18) частоты гармоник принимают дискретные значсиия. Если же Т —> ® , то частоты гармоник становятся бесконечно близкими. Введем обозначение В этом случае в выражении (118) операция суммирования перехо- дит в операцию интегрирования. Выражения (1.15) н (1.18) принимают вид. Х(ш)= ]х(/)-е-^Л (119) -о xlO-jj-JX («)•«"'*» (| 20) Формулы (1.19) н (1.20) представляют непериодический сигнал •*(/), заданный на интервале (-*,«), соответственно в частотной н временной об- ластях и называются прямым и обратным интегральным преобразованием Фурье. В теории сигналов доказывается, что интегральное преобразование Фурье существует не для всех сигналов, а только для абсолютно интегри- руем ыт, т.е, 0 f|x(r)|rfr < *> Функция A'foi) характеризует спектральный состав сигнала ХО и на- зывается спектральной плотностью сигнала * (l) . Такое название обу- словлено тем, что для непериодического сигнала ХО (те. при Т —> ) час- тотный нигер ван между смежными гармониками стремится к нулю, следо- вательно, преобразование (1.20) предо валяет собой разложение сигнала на сумму бесконечного числа гармоник, амплитуды которых бесконечно малы. Таким образом, если с помощью ряда Фурье можно периодический сигнал разложить на бесконечное число гармоник с частотами, принимаю- щими дискретные значения, то интегральное преобразование Фурье пред- ставляет непериодический сигнал в виде бесконечного числа гармоник, час- тоты которых бесконечно близки. Пример 1.2 Определим спектральную плоти ость прямоугольного импульса ам- ил иту до П А н длительностью г (рис I В.я) Воспользуемся формулой (I 19)
Элементы теория скгиалои и систем 19 После подстановки значений получим Х(ы) = f Ae^dt = \Ae^dt=—— е* = — • sin(a>г/ 2) = А г 5и^Уг/^ Д *, - ja> '*7а 6) шг/2 (121) Таким образом, спектральная платность пряюуголького импульса - вещественная функшш частоты и имеет вид, показанный на рис I 8,6. Пример 1.3 Определим спектральную плотность сигнала, заданного выражением х(/) = Ае’*" .где aiO, Г20 ц 22) Используя интегральное преобразование Фурье, получаем ад= ------------------------------(| 2)) I a+jat 1 a+jat 1 9 Спектральная плотность экспо ней ишльиого импульса - комплексная функция частоты. Модуль и аргумент функции соответственно равны 1ЛИ = -Г^=Т • = (I 24) Va’+ш1 а Прммер 1.4 Определим спектральную плотность сигнала, описываемого дельта- фушцией Дирака Такая функкдя широко используется в теории сигналов и вводится следующим образом <?(') = {о’;'Л° 0 25) Дельта-функция вводу рвана нулю, за не ключей нем точки t - 0, в которой она обращается в бесконечность Делиа-функция обладает двумя важными свойствами I) интеграл от двоьта-функинн равен елиниие т е
то Глаш I р(г)Л = 1; (126) —* 2) интеграл от произведения дельта-функции и некоторого непрерывного сигна- нят(г) равен значению сигнала г(г) в той точке, где сосредоточена 6 -функция = (127) Указанное свойство называется фильтрующим свойством дельта -фу и кил и Дм нахождения спектральной плотности сигнала т(г) - /I <?(/) найдем преобра- зование Фурье X ((о) = j A6(t)e~”'dl (1 28) В соответствии с фильтрующим свойством дельта-функции приведенный интеграл будет равен значению функции Ае'1* в тачке t = 0 , т е Х(а>) = А Отсюде следует, что сигнал, описываемый дельта-функцией, имеет равномерный спектр Приведем еще два важных соотношения для дельта-функции. Обратное преобразование Фурье дм дельта-функции (А - I) 1 * <*(') = — [e'*'da (I 2?) 2 я Д Формально заменив переменную интегрирования <и ня г, получим I " 6(а) = — je'9'dt (|30) Z7T _ 1.2.3 Свойства интегрального преобразования Фурье Преобразование Фурье устанавливает взаимосвязь между представле- нием сигналов во временной и частотной области. При этом желательно знать как изменится представление сигнала в частотной области, если сиг- нвл подвергнуть некоторым преобразованиям во временной области, и на- оборот. Указанные соответствия устанавливаются с помощью свойств пре- образования Фурье. Приведем их без доказательств [1,2,18] I Свойство вещественной и мнимой частей спектральной плотности действительны* сигналов. Вещественная часть спектральной платности является четной функцией частоты, а мнимая часть X,(щ) - нечетной функцией, те. Хя(-а>) = Х„(а>) и Х1(~а>)=-Х1(а)) (I 31)
Эдемгнты теории смгиалои систем 11 Это легко показать, подставив в интеграл (1.20) и заменив комплексную экспоненту суммой тригонометрических функций. 2 Свойство линейности Спектральная плотность линейной комбина- ции нескольких сигналов л(/)=О|Л1(/)+аг^(/) (1.32) представляет собой такую же линейную комбинацию спектральных плотно- стей Х(су) = а1Х|(су)+агА'2(су). (1.33) 3 Свойство запаздывания Преобразование Фурье сигнала , запаз- дывающего на время г(, равно Х(й))е',тв . (1.34) Иными словами, задержка сигнала на время г5 приводит к умножению его спектральной плотности на комплексное число . Так как это число имеет единичный модуль, то при сдвигах сигнала во временной области амплитудный спектр нс изменяется, а фазовый спектр получает прираще- ние air,, линейно зависящее от частоты. 4 Свойство масштабирования. Преобразование Фурье сигнала Х0 при изменении масштаба времени в * раз равно 4*0«Дл,(2!). (1 35) Отсюда следует, что “сжатие" исходного сигнала во времени в к раз (к>/) приводит к “растяжению” спектральной плотности по оси частот в к раз. Например, спектральная плотность прямоугольного импульса длительно- стью г "сжатого” в к раз определяется выражением „. . Ac sin to г,(2к) Х(а>)= ----------гтт-2. к шг/(2я) Если частота, соответствующая первому нулю спектральной плотности ис- ходного импульса, равна a^2n}ct то частота первого нуля спектральной плотности “сжатого” импульса равна 2як}г, те в к раз выше, А это означа-
и Гмм I ст, что при “сжатии" сигнала во времени происходит расширение спек- тральной пл (ли ости сигнала. 5 Спектральная плотность производной. Интегральное преобразова- ние Фурье производной сигнала ХО определяется соотношением x\t) ч-> )й)Х(й)) (1.37) Из (1.37) следует, что дифференцирование сигнала приводит к росту значе- ний спектральной плотности в области высоких частот 6 Спектральная плотность интеграла сигнала x(i) определяется соот- ношением р(г)^г ч-> X{co)ljco (13g) Интегрирование сигнала приводит к уменьшению значений спектральной плотности исходного сигнала в области высоких частот. 7 Преобразование Фурье произведения сигналов определяется соотношением х(0-ц(0^^}вд Utf-coW (1.39) Интеграл, стоящий в правой части, называют сверткой функшгй ^(<u)h U(щ) и обозначают X (й>) • U(а>). Тогда jc(O u(f)-^^-X(C0)*U((d) (140) 2я 1 Таким образом, произведению сигналов во временной области соответству- ет свертка спектральных плотностей сигналов в частотной области. В Преобразование Фурье свертки сигналов во временной области оп- ределяется с помощью выражения <-> X{(O){J{a>) (up или х(/) ♦ ы(/) ч-> X (ту) U{o>). Аналогичные свойства могут быть установлены и для ряда Фурье.
Iiimijiu теории tintnoi систем В заключение рассмотрим вычисление спектральных плотностей неко- торых сигналов. Првмер 1-S Определим спектральную плети ость комплексного эвспо йен цикл ьно- rv сигнал* j(f) = екр(у<1»,/) Элл* сигни не является абсолютно интегрируемым, поото- цу к нему неяш применить ноюсредственко прямое преобразование Фурье Чтобы найти спектральную плотность Х(<и) аомплексного экспоненциального сигнала, вос- нлилуеысл следующим прнеюм Запишем обратное преобразование Фурье от Х(а») — ( Х(й>)е'“4ш = 1 ЧТ J 1л и подберем функцию Х(о)так, чтобы приведенное равенство превратилось тождество Равиным обращается в тождество, если предположить, что Х(ш) = 2e<J(<u -о»,) Дей- етжжгежьио , выполнив указанную подстановку , получим — j2mS«y-a»e)e^ =е'”‘ 2*?. Таким образом, спектральная плотность комплексного экспоненциального сигнала Отображается дельта-функцией, сосредоточенной в точке си,, т е 2л<5(а» - о,) Прая ер 1.6 Найдем спектральную плотность гармони чес кого колебания х(0“ ^cosoigf Гармонический сигнал не валяется абсолютно интегрируемым. Поэто- му найдем его спектральную платность, используя результат предыдущего примера В соответствии с формулой Эйлера х(<) = А созшб( = A(ew + е'^У? Отсюда следует, что спектральная плотность гармонического сигнала равна сумме т , f - /*в/ втектральиыж плотностей комплексны! экспоненциал ьныя сигналов е ив. А'(ту)=Л/г{£(«У-<Ц))+£(й'+<Ц))] (1«) рис. I 9 изображен график спектральной плотности гармонического сигналя *(«)♦ Рис. I 9. Спектральная плотность гармонического сигнала
и Гми 1 Пример 1.7 Найдем спектральную плотность сигнала x(r)coso>0i Вослользуемсв свойством лреобраэомннв Фурье х(() -и(/) — Л'(са) «l/tca) 2/г В рассматриваемом случае u(f) = COS и И (<р) = д[<5(о> - ш0) + 8(a) + <we)] Тогда спеггральни плотность прею ведения равна /*(<) [<У«-(ш-Ч»+<у«-(й’ + Ч))Р< = ^л'(й'-Ч)+А'(<и + Ч)) (1 43) Таким образом, при умножении сигнале i(<) ня с<на>вг спеггральнел плотность Х(а>) сметается влево и вправо на зиячение а>. Отметим, что умножен на сигнала r(t) ня cosa>s/ соответствует амплитудной модунаиии 1.2.4 Обобщенный ряд Фурье н системы базисных функций Рассмотрим разложение сигнала х(() на интервале [-772,7/2] в ряд Фурье х (О = с ке ' ’ (1.44) i . — В общем случае выражение (1.44) представляет собой разложение сигнала х(/) по некоторой системе функций [р*(0)= (exp(-yoTlt»)| и может быть записано в форме обобщенного ряда Фурье *(')=£ (145) а Если предположить, что сигнал Д(0- это вектор, то выражение (I 45) можно интерпретировать как разложение вектора по некоторому базису, а коэффициенты q можно рассматривать как проекции вектора на координатные осн, заданные системой функций {?*(')}, образующих базис. Для того чтобы разложение (1 45) было возможно, система функций {₽*(/)} должна удовлетворять определенным условиям. Во-первых, сигнал л(О должен принадлежать множеству квадратично-ннтсгрнруемых на отрезке Т сигналов, т.с.
Змжлы т»ор»м СИППЛ о» сисчтм и J [ х (Г)] 1 А < со (1 г Такое множество сигналов образует пространство сигналов и обозначается i-3(T). Отметим, что в качестве отрезка квадратичной интегрируемости могут рассматриваться как конечные, так н бесконечные интервалы. Соответствен ко образуются различные виды пространств: L’(-®,®), £?(-1,1] н т.д. Пространство I.1 замкнуто относительно линейных операций, те если x,(i)eL: н >,(/) е i.‘, то а -х,(т) + Р х,(0 е А’, поэтому его называют линейным векторным пространством. Сигналы хД/) и хдг) рассматриваются как векторы в линейном пространстве, дня которых определено скалярное произведение (*!.*,) = Jx,</)^2 </)<* < +® Г норма (диина вектора) f [*(,)]’ <ti (1-47) (I 48) Для скалярного произведения справедливо соотношение, называемое неравенством Кошн-Буняковского: Отношение |(х,, г j )| S ||ж, || - |]х, (I 49) (1.50) представляет косинус угла между сигналами (векторами) хД/) и хДт). Два сигнала (вектора) хД/) и хД/) будут являться ортогональными, если солярное произведение этих сигналов равно нулю, т е (Ху. xj)**O Во-вторых, функции {pt(r)} должны быть попарно ортогональны, т.е (₽<.₽*) = 0, { * к 1. < = к Система функций (1.51) имеет единичную норму и ортонормированный базис. (1.51) образует
26 ГлВМ 1 Если указанные выше условия выполняются, то коэффициенты обобщенного ряда Фурье могут быть найдены следующим образом. Умножим левую и правую часть (1.45) на базисную функцию р,(0 и проинтегрируем произведение на интервале Т В результате этого получим Jx(r) p,(r)rff = G /рЛО рЛ'И (1.52) г * f или f х(Ор, (/)rf/ = £ с( (₽ » .₽,) . (153) т * Скалярное произведение функций (Р( ,Ф,) равно нулю для всех i и к , кроме । = к , Коэффициенты обобщенного ряда Фурье могут быть найдены из выражения С* = ;-----ЛХ(')Р.('И = (|.54) Ik «И Для ортонормирование го базиса ск - (х,^() Обобщенный ряд Фурье (1.45) содержит бесконечное число членов. На практике приходится ограничивать ряд конечным числом членов N Это приводит к появлению ошибки аппроксимации *(0 = *(') - £ <-.?>.('). (1.55) Обычно рассматривают норму ошибки J к(<)Г ** и= (1 56) Одним из важных свойств систем базисных функций является полнота. Базисные функции образуют полную систему, если норма ошибки аппроксимации представляет убывающую функцию от N, Для полной системы базисных функций, выбирал N достаточно большим, можно снизить норму ошибки до приемлемой величины. Рассмотренное ранае разложение енгинла в ряд Фурье по системе тригонометрических функций с кратными частотами не является единственно возможным Можно построить и другие системы ортогональных функций Интерес к поиску других систем функций обусловлен тем, что норма ошибки аппроксимации для иных систем
Элежемты теории с я гклло» с нети 17 базисных функций может стать меньше при одном и том же числе членов ряда Кроме того, тригонометрический базис не всегда удобен с точки зрения технической реализации. Выбор базиса в значительной степени обусловлен спецификой решаемых задач Рассмотрим примеры систем ортогональных функций. Пример 1.8 Система мультипликативно - ортогональны! функций Рассмотрим последовательность не перекрывающихся прямоугольных импултюов, имеющих значения в диапазоне от 0 до 1 (рис 1.10). Та» как любые два прямоугольных импульса не перекрываются по вря иен и, то рассматриваемая с неге на функций ортогональна Действительно, (Р. .₽,) = f Р» (')₽,(')<* =0 (1 57) О Ы Т йлк Jb Kf =(Л>Л) = /₽*2(0Л= J lrf/ = A/ = V (158) 0 AfU-lj Коэффициенты рада Фурье » мульти пл нкдтмвно-^ртогондльноы би нее будут равны ib.ii т J.,;' с«> С помощью рассматриваемого базиса сигнал т(/) может быть представлен в виде рада л’ *(') = X с*р * (') (1.60) 1.1 Система мульти на и катив ио-орто гонял ьиых функций ляпается полной только для подмножества ступеичятых сигналов с шириной ступени Д|
28 Глава 1 Пример 1,9 Пояинамиачмые cwc/пе.иы базисных функций Такие системы строят на основе ортогональных полиномов На практике широкое распространение получили системы базисных функций, построенные на основе полиномов Чебышева, Лежандра, Л а герра и др [18] Рассмотрим систему базисных функции, построенную на основе полиномов Чебышева. Эта система функций обеспечивает быстрое уменьшение нормы ошибки аппрокенмецин е ростом N Обозначим через ^(0 - полином Чебышева к - го порядка, задаваемый с помощью рекуррентного выражение Г» (О = 2/ /,.,(/)- Л.,(() , (161) где То(/) = 1 и Т,(1) = 1 Ниже приведены примеры полиномов Чебышеве: W-I.W-IJ.WaZl’- 1, 7“,(2) з 4/’-It ,П(г)»вг"-а/1 +1, (162) Полиномы Чебышева обладают важным свойством нз всех многочленов к-м степени с одинаковыми коэффициентами при старшей степени вргумс)гга они менее всего уклоняются ст куля на интервале 1.1) В то же вряил при |/|» I полиномы Чебышева резко увелнчинаят свои значения (рис 1 II) Рис III Поведение ноли||омов Чебышеве На интервале (-1,1) полиномы Чебышева описываются соотношением 7»(») = cos(A arccos/), (I 63) те значения полиноме не превышают единицы и представляют косинусную функцию Число полуослн полиноме на интервале (-1, Она единицу наньше порядка полинома. При 2 » 1 значения полиноме асимптотически равны Г.(2) = 2*-'/*. (1.64) На основе полиномов Чебышева строится система ортогональных функций Чебышева Функции Чебышева образуют полную систему ортогональных функций на интервале (-1,1) с весом А') = й=Ц (165) VI-/ Системе ортогональных функклй Чебышева представляет множество
Эижгтм теории сигналов и сыпем (166) Условие ортогональности функций Чебышев*. 1 (Л .?>.)=[ --------Л (0^(0Л = -iVl-r1 (167) Отсюда следует, что коэффициенты обобщенного рад* Фурье с учетом нормировки вычисляете* ло формулам с‘ Сигнал ХО в ттоы случае представляется в виде ряд* X') = со (169) Функции Чебышева удовлетворяет условию иаилучшей аппроксимации x(t) в смысле минимума среднего квадрата ошибки с весом 1/Vl -I1 Аппроксимация прокзвлльного сигнала функциями Чебышева позволяет добиться равномерного распределения погрешности и избежать ее накопления к койку интервала разложения Пример 1.10 Непрерывные базисные системы функций Valuta Функции Уолша валяются кусочно-постов ины ни знало первые иным и функциями, которые определяет кв интервале [-0,5,0,5] или (0,1] Интервал определения функций Уолша задается совокупностью N = 2 , п - |, 2,... равных подынтервалов Функции Уолша образует базисную систему (Z)] , где а - номер функции Уолша, а = 0,1,2,. Ze [-0,5,0,5] инн [0.1) Cymeci вуют различные системы функций Уолша, отличающиеся способом упорядоченности Наиболее часто ня практике применяют следующие системы функций Уолша Пэли, Аламара и Хармута Для описания различны* систем функций Уолша использует функции Радемахере М=)= >. rt[z) = Jign(sin2'nz) (170)
ю Глава 1 Функции Радемахера ортогональны и корыирокдны, но нс образуют полную сис- тему Дополни систему функций Радемахера определенными пронзведениимн тли ж< функций, можно построить полные системы функций Уолша Рассмотрим систему функций Уолша - Пэли Любую функцию такой системы можно записать в форме (z) = Й г* (*)“* . (1 71) -I где а, = 0 млн 1 н соответствует коэффициентам двоичного разложение номера функ- ции Уолша « = S а 1 2* ' (I 72) 1*1 В тех случках, когда а гтредставдвег степень числа 2 (т.е. содержит только один единичный коэффициент а,), функция Уолша совпадает с одной из функций Раде- миера Рассмотрим систему функций Уолша - Пэли дял Л/ = 8 и z € [О,1] в этом слу- чае »U«)-'.U). HJ(:) = r,(z). И'Дз) = ra(z). и',(2)’ r,(z)-r,(z). V»U)-'i(z)-r,(a), (1 73) mU)er,W-sW. Графкен функций Уолша-Пэли изображены не рне 1 12 Рис. 112 Функции Уолша - Пэли Рва Фурье - Уолша сигнала х(г), заданного ил интервале [О, Г], будет нкть вид (17«) где
Элементы теории сдгаддо» и енота 31 -“/•»«) И'. (175) Так ик функция Уолша имеет N участков с постоянными значениями, то = уЕ Jj(/)•"'-(г)* = гЕж-(£“] (176) ' i«0 t \ * / ' 1*0 х z где i - определяет номер участи постоя нети функции Уолша 13 Непрерывные системы 1.3.1 Импульсная н частотная характеристики системы В системах обработки сигналов можно выделить: вход, предназначен- ный дня подачи сигналов; выход, откуда обработанные сигналы поступа- ют для дальнейшего использования; внутренние переменные, характери- зующие состояние системы. Входной x(f) и выходной сигнал (реакция системы) y(t) системы обычно представляют собой скалярные функции времени. Однако в общем случае входные и выходные сигналы представ- ляются в виде векторов: X(0 = fa(0> *1 (0>...»хж(0), (1.77) ПО» (МО.З'ЛО, ,Z,(0) (178) Система обработки сигналов, имеющая т входов и л выходов назы- вается многомерной. Если входной и выходной сигналы, а также состояния системы опре- делены в каждый момент времени / и время непрерывно, то система на- зывается непрерывной. Если указанные сигналы и состояния определены в дискретные моменты времени, система называется дискретной Ниже рас- сматриваются основные понятия непрерывных систем. Такне системы исторически первыми применились для обработки сигналов. Многие поня- тия, которые будут введены, имеют аналогию в дискретных и цифровых системах обработки сигналов. Связь между сигналами x(i) и у(1) можно задать посредством систем- ного оператора СМ ), выполняющего преобразование входного сигнала в выходной y(t) = О (Х(Г)) . (1.79) Система называется стационарной, если ее выходная реакция не за- висит от момента подачи входного сигнала х(т), т е.
J2 Глава! yV = 0(-г(/ ±4>)), при любом t. (1 80) Если оператор системы таков, что выполняется принцип суперпозиции О(х,(г) + л/г)) = О(х,(/)) +О|хД/)) (1.81) И О(ах(0) = ^О{х(0). (1.82) где а - произвольное число, го система называется линейной. Для линей- ной системы реакция на сумму сигналов х,(г) и Xj(O равна сумме реак- ций на каждый из указанных сигналов. Строго говоря, все системы обработки сигналов являются нелиней- ными. Однако при определенных допущениях, они могут описываться ли- нейными уравнениями. Замечательная особенность линейных систем со- стоит в гом, что для них, благодаря принципу суперпозиции, легко опре- деляется выходной сигнал по заданному входному сигналу. Импульсной характеристикой системы называется функция , представляющая реакцию системы на входной сигнал, заданный дельта- функцией Дирака, т.е. = (1.83) Знал не Л(1) позволяет формально решить любую задачу о прохождении детерминированного сигнала через линейную систему. Для линейной сис- темы связь между входным и выходным сигналами при известной им- пульсной характеристике н нулевых начальных условиях задается инте- грала» Дюамеля [ 1,5,18 ]: < = J л<г)Л{г - г)</г (LM) или y(t) = Jx(r - r)ft(r)dr (185) - Из (1 84) и (1.85) следует, что выходной сигнал линейной системы пред- стааляет свертку входного сигнала ХО и импульсной характеристики h(i) Для физически реализуемых систем h(i) =0, г<0. Это означает, чго реакция системы на дельта-импульс не может возникнуть до момента по- дачи этого импульса на вход системы. Легко видеть, чго для физически реализуемых систем интеграл Дюамеля обращается в ноль при г > t, по- этому (1 84) можно переписать в виде:
Элементы теории огмьло» и систем И y(t) = J х(г)Л(/ - r)dr = х(/) ‘ Л(г) (1.86) Формула (1.86) имеет ясный физический смысл: линейная система выполняет взвешенное интегрирование всех мгновенных значений сигнала x(t). поступивших на вход к моменту времени /. Поэтому импульсную ха- рактеристику часто называют весовой функцией системы. Импульсная характеристика линейной стационарной системы полно- стью определяет ее поведение и позволяет исследовать систему во времен- ной области. Для исследования линейных систем в частотной области ис- пользуют частотную характеристику Частотная им- пульсная характеристика h(t) линейной стационарной системы связаны менту собой парой преобразований Фурье [1.5,18): // (Jo)) = j h(t)e'JV'dt (] .87) h(t) = f H (jeo }eia‘do) (1.88) 2/r .. Для линейных систем гармонические сигналы являются собственны- ми, т.с при прохождении гармонического сигнала через линейную систему он не изменяет своей формы. Иными словами, реакция линейной системы на гармонический входной сигная есть тоже гармонический сигнал По- этому функция Н(уш) имеет простую интерпретацию. Она представляет коэффициент передачи гармонического сигнала с частотой ш со входа ли- нейной системы на ее выход. D общем случае М(/о>) имеет комплексные значения и связывает спектральные плотности входного и выходного сигнаяа простой зависи- мостью Yfje»= (189) Частотная характеристика может быть записана в показательной форме H(ja>) = , (I 90) где |//()a>)j-ачплитудно-частотная характеристика <р(а>) -фаза- ~ частотная характерист ика (Ф Ч X). Так как импульсная характеристика h(j)- вещественная функция, то из свойств преобразования Фурье следует, что (191)
Глядя 1 Таким образом, АЧХ является четной, а ФЧХ - нечетной функцией частоты. Пример 1.10 Определим импульсную характеристику Л<т)енстемы по идейной частотной характер истине Частотная характеристика определяется уравнением (рис 1 13) Рис ) 13 АЧХ 0, а> < -а>„ *, -а>„ £ ш £шн О, ш > а>н (I «) и соответствует идеальному фильтру ннжиил час- тит Применив a обратное лреобраэоаа- ине Фурье, получим L т * *(') “ — 2 я к ш „ sin <о „ г й) = ---------— ------------— я а> „ t (193) Таких Л(0 симметрична относительно точки 1 = 0„ то это свидетельствует о физической нереалкзуеыости линейной системы с частотной характеристикой (I 92) Далеко не каждая функция соответствует физически реали- зуемой системе. Существует критерий Пэли - Нинера, который устанавли- вает, что для физически реализуемой системы должен существовать инте- грал [) ]: У In |Я (у<г> )J [ 1 + а>т < +<ю (194) Отсюда следует, что системы, АЧХ которых обращаются в нуль при некоторых частотах, физически нсреаяиэусмы 1.3.2 Преобразование Лапласа и передаточная функция системы Иная возможность описания линейных стационарных систем основа- на на использовании днфференцнаяы|ых уравнений, которые также уста- навливают соответствие между сигналами на входе н выходе системы. Для решения днфференцнаяьных уравнений широко применяют опе- раторный метод, основанный иа преобразовании Лапласа. Преобразование
Эмм* и гы теории сигналов и систем и jftvuactf аналогично преобразованию Фурье и задастся парой уравнений! 1,5,18] X ( Р ) = J JU )е *dt (i.96) О *0) = т— (Х(р)е^р (i 97) 2*7,.'. где р = [S + /го) - комплексная частота. В этом случае сигнал х(/) назы- вают оригиналом, а функцию Х(р) - его изображением по Лапласу. Боль- шинство свойств преобразования Лапласа соответствует аналогичным свой- ствам преобразования Фурье. Преобразование Лапласа определено только ди сигналов, тождественно равных нулю при I < 0 и удовлетворяющих условию |a(/)|s А ев', А, а - положительные числа (1.98) Взяв преобразование Лапласа от обеих частей (1.95) с учетом х(/)я->рЛ(/т), получим (^+а₽|₽г'+ = + +f\p+bt))X{p) (1 99) Отсюда отношение Y(p) к Х(р) равно Цр) _ Ь-Р‘ *Ь^р~1¥...+Ьй * ( ’ 100) Х{р) а„р + а„.,р +..+о0 Данное отношение является важнейшей характеристикой линейной системы я называется передаточной функцией. Корин уравнений ^РУ = а.р" +а^\Р^ + +aypl +aQ =0 (1.101) я М(р) = b_p" + b_,p~''+...+btp' +bt = 0 (1102) называются соответственно полюсами и нулями передаточной функции Передаточная функция представляет собой оператор, который преоб- разует входное воздействие линейной системы в выходную реакцию систе- мы. при згом т £ л. Если входное воздействиеx(t) предстваляет собой дельта-нмпульс <5(<), ТО с учетом того, что его изображение по Лапласу равно единице, получаем следующее выражение
36 Глш1 i-{*>U)} = Y(p) = H(p), (1.103) где I. () - оператор преобразования Лапласа Отсюда импульсная характеристика будет равна А (г ) = I. ' {Н ( р ) }. (1.104) Таким образом, импульсная характеристика определяется через пере- даточную функцию с помощью обратного преобразования Лапласа £''{}, т е h(t) является оригиналом дая Н(р). На практике для нахождения й(т) по известной передаточной функции обычно используется формула (’’fr,7T77 (|1°” гдер* - полюсы передаточной функции Я(р). Формула (1.105) справед- лива, когда полюсы рд не являются кратными, Возможен также переход от передаточной функции Н(р) к частотной характеристике . Для это- го необходимо учесть, что р = ст + и положить ст = 0 Устойчивой называется система, которая способна возвращаться в ис- ходное состояние после всякого выхода из него в результате какого-либо воздействия. Системы, используемые на практике, должны быть устойчи- выми. Устойчивой является линейная система, у которой вса полюсы пе- редаточной функции имеют отрицательные действительные части, Нули передаточной функции могут иметь как отрицательные, так и положитель- ные действительные части. Белк все полюсы и нули передаточной функ- ции имеют отрицательные или равные нулю действительные части, то сис- тема называется минимально-фазовой. Мнннмаяьио-фазовые системы да- ют минимальный фазовый сдвиг <р при любой частоте <о по сравнению с системами, имеющими такую же АЧХ и у которых указанное выше усло- вие в отношении полюсов и нулей передаточной функции не выполняется (такие системы называются неминимально-фазовыми). Между АЧХ и ФЧХ минимально-фазовой системы имеется взаимно однозначное соответствие. Для иемниимаяьно-фазовых систем такого соответствия не существует. 1.3.3 Аналоговые фильтры Теория линейных стационарных непрерывных систем широко исполь- зуется при построении различных частотно-избирательных цепей. Анало- говым фильтрам называется частотно-избирательная цепь, обеспечиваю- щая пропускание сигнаяов в определенных полосах частот и подавление в
Элементы теории сигнала» снег гм J7 других. Область частот, в которой фильтр пропускает сигнал, называют полосой пропускании, а область частот, в которой ослабление входного сигнала велико - полосой задерживания. Фильтры применяют для выделения требуемого сигнала нз смеси по- лезных и нежелательных сигналов. В зависимости от взаимного располо- жения полосы пропускания и полосы задерживания различают следующие виды фильтров: нижних частот (ФНЧ), верхних частот (ФВЧ). полосовые (ПФ), режекторпые (зшраждающие) АЧХ указанных фильтров изображе- ны на рис. 1.14 в порядке упоминания, Кроме этих четырех основных ти- пов фильтров при обработке сигналов находят применение: амплитудные корректоры (АК), способные в некоторой полосе частот осуществлять как усиление, так и ослабление сигналов; фазовые корректоры (ФК), у которых АЧХ не зависит от частоты, а ФЧХ может меняться по заданному закону. Потребности практики предъявляют различные требования к форме АЧХ и параметрам фильтров. При проектировании фильтров задают границы полос пропускания а> । (рис. I 15) и задерживания <V]. затухание в полосе задержи ван ия Нз и коэффициент передачи в полосе пропускании И/, допуск на отклонение АЧХ от желаемого вида в полосе пропускания а,. Отклонение реальной АЧХ фильтра от желаемой в полосе пропускания называют неравно- мерностью АЧХ. Закон изменения АЧХ в переходной области Д’,... «и, не задается, обычно коэффициент передачи Ht рааен I.
Глам I В некоторых случаях задание на проектирование может содержать дополнительные требования к фазо-частотной характеристике фильтра в полосе пропускания. Требуемая частотная характеристика фильтра в виде кусочно- линейной аппроксимации, показанная на рис. 1.15, нереализуема. Поэтому при синтезе фильтров на первом этале выполняют аппроксимацию желае- мой АЧХ, подбирая передаточную функцию фильтра таким образом, что- бы она была реализуемой и удоалетворала требованиям, заданным при проектировании (6,13.19]. На практике широко применяют аппроксима- цию АЧХ полиномами Баттерворта, Чебышева и Бесселя. С целью унифи- кации общепринято применять нормирование по частоте, приводящее рас- чет различных типов фильтров (ФВЧ, ФНЧ, ПФ. РФ) к нормированному фильтру нижних частот с граничной частотой пропускания (частотой сре- за) <и, = I, В дальнейшем переход от низкочастотного фильтра-прототипа к требуемому фильтру выполняют с помощью специальных преобразова- ний частоты. Обычно при проектировании фильтров неравномерность в полосе пропускания R и затухание в полосе задерживания А задают в логарифми- ческом масштабе (децибелах): Я = 20 log Г 1 I (1.106) I * * “ 1 J и Л = 201од (1.107) J Рассмотрим различные способы аппроксимации аналоговых фильтров (6,13,19). ФНЧ Баттерворта имеет АЧХ, которая определяется соотношением (рис. 1.16) |//(;й>)|1= '—л? . (1.108) 1 + (й)/й),) ' где - частота среза фильтра; л - порядок фильтра. На частоте коэффициент передачи фильтре Баттерворта равен l/Уз . В логарифмическом масштабе это соответствует ослаблению в 3 дБ Производные от функции (1.108) по частоте в точке й> = 0 равны нулю Поэтому фильтр Баттерворта называют фильтром с максимально плоской АЧХ. Порядок л фильтра Баттерворта при заданных значениях R и А можно определить из соотношения (13):
Элементы теории сигналов и смете» J9 log J(10OM-l)/(l0° '"-l) к£(й»2/й\) (1.109) Передаточиал функция нормированного фильтра нижних частот л - го порядка описывается с помощью соотношения Я(р) = 1/ад = /П(р-р*)> (1.110) где N(p) - полином Баттерворта п -го порядка, р1 - полюсы передаточной функции И(р). Полюсы Ра дяя фильтров Баттерворта определяются из соотношения [5]: л - I + 2 к п - ] + 2- к Pi =СО5Л--------------+ ^51ПЯ--------------> (1-111) 2Л В табл. II приведены некоторые полиномы Ы(р} нормированных фильтров Баттерворта. Таблица I I - Полиномы Баттерворта Порядок №). 1 1'Р 2 1^1.414р-рг 3 (!’р)(1~р~р:) 4 (1 ♦ 0 76 Чр-р1)^- i.Mfy р*) Фильтр Чебышева нижних частот имеет АЧХ, которая определяется соотношением (рис.1.16) 1 + £ (ш / tu t) (412) где Та(х) - полином Чебышева п - го порядка; £ - постоянный коэффици- ент, определяющий амплитуду пульсаций АЧХ в полосе пропускания По- линомы Чебышева обеспечивают равноволновые пульсации АЧХ в полосе пропускания и более резкий спад ее за граничной частотой <о,, чем поли- номы Баттерворта. Передаточная функция ФПЧ Чебышева также описывается соотноше- нием (1.110), но полюсы р^ рассчитываются по другим формулам:
40 Глава 1 Pt = ^.(cosCaJcosht Д )->sin(ajsinh( Д (1,113) где at = t2* + 1)Я ; Д =- arsh(l/E) In n Коэффициент пульсаций £ при заданном значении R определяется по формуле Е = Ло"° 1 . <1-11-1) Порядок фильтра определяют из соотношения [13] _ Arch (J(10°M - 1)/( 10°|Н ^7) Arch (й), /й),) (I 115) Инверсный фильтр Чебышева имеет АЧХ, которая определяется со- отношением (рис I 16) \Н (jv )Г £ Т,1 (01 1 i <t>) 1 + е *Т; (о . / а?) (I 116) ЛЧХ такого фильтра монотонно изменяется в полосе пропускания и пуль- сирует в полосе задерживания. Полюсы инверсного ФНЧ Чебышева определяются по тем же форму- лам, что и для "прямого" ФНЧ Чебышева, но с заменой <У, на w, Коэффициент пульсаций равен _ I а/10 014 - 1 (1.1П) 11 о рядок фильтра вычисляется по формуле (1.115). Эллиптические фильтры (фильтры Кауэра) имеют АЧХ, которая имеет вид |« ( /«*)Г = :---,-----------г. (1.118) 1 1 + с Ч'; /<ц,) АЧХ эллиптического фильтра пульсирует как в полосе пропускания, так п в полосе задерживания (рис 1.16).
Элементы теории сигналов и систем 41 Рис. 1.16. ЛЧХ ФНЧ 4-го порядка (I - Баттерворта; 2- Чебышева; 3- инверсный Чебышева; 4- Кауэра; 5- Бесселя) Функция Ч'Дш/су,) называется рациональной функцией Чебышева н для четных п имеет вид (д: - ухг1 - *?) ( *2 - л-) (*2*2 - I X - !)..-( *2*2 - 1) ’ (1.119) где к = п/2 ; х[. ..., xt - параметры, значения которых лежат в диапазоне от 0 до !. Параметры xt. . , xt выбираются таким образом, чтобы обеспе- чить раановолновые пульсации функций Ч'Д х) между нулем и некоторым значением д . При этом в полосе пропускания квадрат ЛЧХ эллиптическо- го фильтра пульсирует между значением 1 н 1/(1 + . а в полосе за- держивания - между значением 0 и 1/(1 + гг’/Д’). Соотношение между по- рядком фильтра » и величинами Л, R, £ является более сложным, чем у фильтров Чебышева и поэтому здесь не приводится. 13 [19] приведены пс- обходимыс таблицы для расчетов фильтров Кауэра Фильтр Бесселя имеет ФЧХ. приближенную к линейной зависимо- сти. Эго позволяет сигналам, проходящим через такой фильтр, не менять своей формы. Передаточная функция фильтров Бессели определяется фор- мулой
41 Гл»»» I 0120) где D.{p) - полином Бесселя п - го порядка, который может быть найден с использованием рекурсивных соотношений О.(Р) = (2п-1)О,н(р) + р!О^(р), (1-121) Ц(р)яР+1; Щр)-= р1+3р+3 Важным свойством фильтров Бесселя, помимо избирательности их АЧХ н линейности ФЧХ, является уменьшение колебательных выбросов на переходной характеристике по сравнению с фильтрами Баттерворта и Чебышева. 1.4 Основные характеристики случайных сигналов Случайные сигналы описывают случайными функциями. Значение случайной функции при каждом данном значении аргумента - случайная величина. Случайной величиной называется величина, которая принимает случайные значения из некоторого множества возможных значений. Слу- чайную функцию времени называют случайным процесса.» Условно слу- чайный процесс можно представить в виде совокупности реализаций (рис 1.17). Рис. I 17. Реализации случайного процесса х(I) Сечение случайного процесса x(i) в момент времени t it представляет случайную величину х, которая полностью характеризуется одномерной функцией плотности вероятности р(х) Произведение p(x)dr - вероятность того, что значение случайной величины будет находиться в интервале (х.
Эвеждты тгории Гипмлов и систем x*dx). Используя одномерную плотность вероятности, можно определить важные характер нети хи случайных сигналов. Математическое ожидание случайной величины определяется выра- жением [2] т, = М {х}= (| )22j - х Математическое ожидание, как и другие рассматриваемые ниже ха- рактеристики. не является случайной величиной. Оно соответствует сред- нему значению случайной величины х. Математическое ожидание квадрата (средний квадрат) случайной ве- личины х равно м{х2}= р2р(дг)Л (|123) Дисперсией D, случайной величины х называется срадний квадрат от- клонения этой величины от се математического ожидания Dr =м{(дг-/пг)2}. (1.124) Среднеквадратическое отклонение случайной величины л равно о, =7^Л- Если рассмотреть сечения случайного процесса х(1) в моменты време- ни I/ и о, то получим две случайные величины x(tJ xj н xfrj xj. Они пол- ностью характеризуются двумерной плотностью вероятности р(х/. xj Произведение pfxi. x^diidx^ - вероятность того, что значения случайной величины хг будут находиться в интервале (ii. xt < dry). а х2 - в интервале fli. хт' dx J Характеристикой взаимосвязи двух случайных величии является дууь реляционный момент к^: = KJ; - т.: ))= J J(*| - Х*2 - )P<*i .x^dx, _(М 25) Если учесть, что случайные величины xt и х> определены для двух сечений одного и того же процесса x(t), то можно ввести функцию ,l2) = WkX'i) - m,(f, )XXf2) - т,(12))), (и 26) которую называют корреляционной функцией случайного процесса. Часто рассматривают нормированную корреляционную функцию
4-1 Глава 1 q |27) Случайный процесс x(t) называют стационарным я широком смысле, если его статистические характеристики, рассмотренные выше, не зависят от начала отсчета времени, те т, (Г) = т £»,(/)= D,- KA^h^ (1 128) где r=/;-f| - произвольный сдаиг времени. Легко заметить, что для таких процессов корреляционная функция обладает следующими свойствами [2): К,(0) = D, > 0; К,(-т) = К,(г); К\(0) £ ]А\(г)|, (1.129) |Я.(т)|< 1. Если /С\(г) = 0 при г * 0, то случайный процесс яаяяегся некоррелиро- ванным. Связь двух случайных процессов xfrj и y(i) характеризуется взаимной корреляционной функцией *,,(' Л) = ) - «Л )XHG) - m/G ))l (1.130) Так как функция характеризует взаимосвязь сечений одного и того же случайного процесса, то се обычно называют автокорреляционной функцией, Рассмотрим стационарный в широком смысле процесс x(t) Введем случайную величину I Т Ут - zrj (1131) ‘ о Если Л/(]<-) = т1, О(гг}->0 при (1.132) то можно записать приближеннее равенство । г (1.133) * о
Элементы террин сигналов и систем 0 Случайный процесс x(ij, для которого выполняются условия (I 132). называется эргсиЗическим по отношению к математическому ожиданию. Для эргодического процесса автокорреляционная функция и дисперсия могут быть вычислены по формулам: 1 г Кж(г) = -f МО - тжХх(/ - г) - т, М/ (IJ 34) * о ^(0)=О,=у|(М0-»я,)2Л. (1.135) * о Величину , г = (1 136) * о называют мощностью сигнала i(i). Определим спектральные характеристики стационарного процесса x(t) с математическим ожиданием т,-0. Найдем спектральную плотность кор- реляционной функции $,(*>)= /к, (г (1)37) Функция S,(co) называется спектральной плотностью мощности (СПМ). Соответственно справедливо и обратное преобразование K,(r) = ^js,(to)e,~'da/ (НМ) Пара преобразований (1137) и (1.138) называется преобразованиями Нин ера Хин чина Выясним физический смысл СПМ. Из (1.138) следует, что при т = О I D> = , (1139) т.с. дисперсия случайного процесса х(1) пропорциональна площади под кривой \(<Д). С другой стороны, при m,=Q дисперсия равна средней мощ- ности процесса x(i) ] г = P’W*. (I МО) ” ' о
м Глава I Поэтому величина 5\(й>) представляет удельную мощность, прнходащуюся на спектральную составляющую сигнала х(1) в окрестности выбранной час- тоты ш. Можно показать, что |*7 М1 $,(£у) = lim М ? -»® (1.141) где - представляет непосредственное преобразование Фурье реализа- ции сигнала x(t) на интервале [0, 7]. Формула (1 141) позволяет вычислять СПМ через спектральную плотность реализации *г(М. Поскольку К,(г) - четная функция, то соответствующая спектральная плотность 5,(а*) будет также четной функцией частоты. Тогда пара преоб- разований (1 137) и (1.138) может быть записана в форме I " К\(г) = — |Sr(£y)cos arda (1.142) Я о $,(£у)= 2j*M(r)cos cordr (1.143) и Здесь функция определена только для положительных частит По аналогии с (1.137) и (1 38) можно ввести взаимную спектральную плотность мощности ф ^(r)= fK^T^dT () |44) где = 2я & (1 MS) Преобразования Винера - Хинчина играют огромную роль в прикладной теории случайных сигналов, позволяя решать разнообразные задачи. 1.5 Дискретные сигналы н системы 1.5.1 Преобразование спектра при дискретизации сигналов Рассмотрим равномерную дискретизацию сигнала i(l), выполняемую с помощью импульсного элемента (ИЭ) (рис. 1.18). Как видно из рис. 1.18,a импульсный элеме1гт представляет собой ключ, который периодически за- мыкается через интервалы времени 7~0. Время замкнутого состояния кон-
Элемеяты теория сигналов систем----------------------------И тактов ключа бесконечно мало. В результате на выходе импульсного эле- мента формируются отсчеты входного сигнала (рис 118,6) Рис 1.18. Дискретизация непрерывного сигнала Дискретный сигнал на выходе ИЭ можно представить в виде произве- дения исходного сигнала i(t) н дискретизирующей последовательности им- пульсов p(t) (рис 1 18,в): Xa(t)=x(t)p(t) (1146) Дискретизирующая последовательность (рис.) .18,г) Р(1)= ^<£(/“Л7о) (1147) л=-х состоит из дсльта-им пульсов, которые следуют с периодом То. Разложим р(/) в ряд Фурье по системе комплексных экспоненциальных функций Р (t ) = X С1,е * (1.148) Коэффициенты ct определятся из соотношения:
4 К Гл1м 1 Тогда импульсный сигнал хя(/>, получаемый п результате дискретизации, можно описать следующим образом: лл<')= X —Л(Г)еА2я 7’ (| |50) Д U Воспользовавшись И1гге1ральным преобразованием Фурье, находим выра- жение дня спектральной плотности дискретного сигнала хя(1) л (")=:“£ Л’“ А (1151) ‘ 111. -r, I " где Х(ш) - спектральная плотность исходного иедискрстизированпого сиг- нала x(t). Таким образом, спектральная плотность Л\(ш) дискретного сигнала хл(г). соответствующего непрерывному сигналу х(/Д равна сумме спектраль- ных плотностей Л/ш), сдвнлупдх на величину А2л7«, т. е. спектр дискретно- го сигнала является периодичоскнм по частоте с периодом шы 2к То (рис. 1.19) Рис. I 19 Соотношение спектров непрерывного и дискретного сигналов
Элементы теории сигналов пгттм 49 Для изображенного на рис. I 19. случая, когда граничная час юга спек- тра исходного непрерывного сигнала удовлетворяет условию Wn^Wo'2 , не происходит наложения соседних членов ряда (1.151). D том случае, когда соотношение ш»<шо2 нс выполняется, возникает наложение спектральных составляющих, что приводит к погрешностям при обработке сигналов (рис.120) Wq/I Wq/I «о Рис. 1.20 Наложение спектральных составляющих Для исключения наложения спектральных составляющих обычно перед дискретизацией спектр исходного непрерывного сигнала ограничивают по частоте, пропуская его через аналоговый ФНЧ, который задерживает все со- ставляющие, частоты которых превышают значение ш»'2. 1.S.2 Теорема Котельникова Теорема Котельникова определяет условия, при которых непрерывный сигнал может быть восстановлен по своим отсчетам без потери информа- ции. Теорема Котельникова формулируется следующим образом: 1) сигнал x(t). спектральная плотность которого не содержит состав- ляющих с частотами выше а»ц, полностью определяется своими мгновенны- ми значениями, отсчитанными в дискретные моменты времени через шпер- вал = п 1о>н где = 2/1 я 2) сигнал х(1) может быть точно восстановлен по своим отсчетным зна- чениям с помощью выражения
0,4-пТ„) (1152) где jfn/'g) - отсчеты непрерывного сигналах^ в точках г- п'1'о Выражение (1.152) можно интерпретировать как ряд Фурье. В этом случае (1.152) соответствует разложению непрерывного сигнала x(i) по сис- теме базисных функций . _ . sin £УЯ(/ - пТ о) £УЯ(Г- пГ о) (1153) ортогональных на интервале (-««) (I). Коэффициенты в разложении (1.152) равны значениям восстанавливаемого сигнала в точках дискретиза- ции. Каждая из базисных функций <р„ (I) сдвинута относительно функции с номерами л+1 или л-1 на время То, соответствующее временному интервалу дискретизации, который называют интервала» Найквиста В* точках п'1д сигнал х(1) определяется лишь одним слагаемым ряда (1.152), все остальные члены ряде в этих точках имеют нулевые значения. Следовательно, в мо- менты времени t~ пТо непрерывный сигнал восстанваливается точно. Меж- ду отсчетами (г хл7'д) сигнал х(1) восстанавливается точно только в том слу- чае. если суммируются все члены ряда (1.152) н соблюдается условие Т0-к<ов. Представление (1.152) справедливо для бесконечных во времени сигналов с конечным (финитным) спектром, ограниченным частотой wg . В процессе цифровой обработки реальные сигналы всегда ограничивают во времени. Если сигнал ограничен интервалом наблюдения 7*. то он лишь приближенно описывается рядом (1.152), состоящим из конечного числа членов N = Т1Т0 = 21-tT Перепишем (1.152) в виде *(0= S пТ о) (1154) Выражение (I 154) можно рассматривать как сумму реакций некоторого фильтра на импульсный сигнал ifn'I'tj 6(1 - n'i'rf В этом случае <?„ (I) соответ- ствует импульсной характеристике фильтра Отсюда следует, что для восстановления непрерывного сигнала x(t) по дискретным значениям i(nTa) необходимо воздействовать импульсами x(n'!'af6(f - n'f'q) на устройство с импульсной характеристикой виде (1.153). Подобную импульсную характеристику имеет идеальный фильтр нижних частот с частотой среза сов. Следовательно, восстановление непрерывного
Эяемекты теории сигналов и систем Л сигнала по его отсчетам в соответствии с теоремой Котельникова должно выполняться идеальным ФНЧ. Однако, как было показано в примере 1.10, такой фильтр нерсализуем Поэтому на практике восстановление непрерыв- ного сигнала по его дискретным отсчетам всегда выполняется с некоторой погрешностью. 1,5.3 Дискретно-непрерывное и дискретное преобразования Фурье Рассмотренное ранее разложение непрерывного сигнала xft) в ком- плексный ряд Фурье может быть распространено на дискретный сигнал, описываемый решетчатой функцией х[л], который, в частности, может быть получен в результате дискретизации непрерывного сигнала x(t) В этом слу- чае значения дискретной последовательности х(л] будут совпплать с отсче- тный х(пТо) = я(01,мГ1 . Спектром последовательности я[л] называют комплексную функцию *(е"Г’) = X х(пТ0)е~ = X (И55) я-0 льО Выражение (1.155) адекватно разложению спектральной функции в комплексный ряд Фурье (110). Прн этом коэффициенты ряда соответству- ют последовательности ж(л) и могут быть вычислены с помощью соотноше- ния * х[л) = х(лто) = A. tx(e-^)e^rf® 2гг U 1 тГ Формулы (1.155) и (1.156) представляют пару преобразований Фурье Бу- дем называть их дискретно-непрерывным преобразованием Фурье (ДНПФ) [11]. Подчеркивая, что ж[л ] - дискретная (решетчатая) функция, аЛ^е'-1*)- непрерывная функция частоты й>, -я £ со £ к !Тв. В литературе часто ДНПФ записывают в иной форме . (1157) я О j(n)=-LfX<e")e'-rf<»’ (||5„
Преобразования (1 157) и (1.158) могут быть получены из (1155) н (II56) заменой <у'= а> 7‘0 С налью упрощения записи в преобразованиях (1.157) и (1.158) <й' записывают гак а> При этом полагают, чти частота со изменяется от - я до тг . Обычно это не вызывает недоразумений, поскольку диапазон изменения со легко усматривается из контекста. Если в формулах присутствует произведение й>Г0, то а> принадлежит интервалу [-я ! Тй,я !Тй |, Если же в формулах преобразований не фиксируется период дискретизации , то со € [—тг, тт ]. Преобразован ня (1.157) и (1.158) обычно применяются в тех случаях, когда не акцентируется внимание на периоде дискретизации . В дальнейшем будем использовать обе формы ДНПФ , Пара преобразований *(*1 = S *Иехр( - jlxkn/N) , () )59) 4я) = ^Ё*1*)«Ри'2я*я/*) , (1.160) 7» *-о где х[л| - ^точечная последовательность данных; А]А) - ^точечная последовательность спектральных коэффициентов, называется дискретным преобразованием Фурье (ДПФ) (4,16). Преобразование (1.159) называют прямым ДПФ, а преобразование (1.160)- обратным ДПФ (ОДЦФ) Введем обозначение И^=е'у1"л Тогда ЛЧ*1 = х'и'ИИ'Л , (1.161) я * О х1"1* (1.162) ДПФ выполняется над конечной периодической последовательностью дан- ных х[л], у которой период состоит из N дискретных значений. Посладова- тельность А]А) представляет собой спектр дискретного сигнала х[л) и в со- ответствии с (1 151) тоже яадяется периодической, т.е. Apt]- Л)* - А/]. Основные свойства ДПФ соответствуют рассмотренным ранее свойст- вам интегрального преобразования Фурье и приведены в твбл. 1.2 [ 10]. Из табл.1.2 видно, что если х[л] - действительная последовательность, то спектральные отсчеты А|А], номера которых располагаются симметрично относительно А=0, образуют комплексно сопряженные пары. Следователь-
Элементы теории стныов систем но, для анализа амплитудного спектра можно использовать только первую половину отсчетов Л]А] Табл и ня 12- Свойства ДПФ Последовательность конечной диины ДПФ ОТх([л]+ адЯл] оЛ[А]+ аЛ;[А] х[л »-jw] х*[л] х*(-л] Jf[-A] Jf[A] х[п] действительны последовательность Re V[A]=Re Л{-А] Im Л]А]=-1т Л1-А] ШИ 1.5.4 Быстрое преобразование Фурье В соответствии с формулой прямого ДПФ для вычислении М значений спектральных отсчетов У[А] требуется выполнить примерно N1 умножений и N1 сложений. С ростом N значительно возрастает, время вычисления АГ[Дг]. Такая ситуация наблюдается н при вычислении ОДПФ. Для ускорении вы- числений ДПФ разработаны алгоритмы быстрого преобразования Фурье (БПФ) Рассмотрим алгоритмы БПФ с основанием 2, которые применяются к последовательностям длины N-2\ it - целое. Ос нов ива идея БПФ состоит в следующем. Последовательность х[л] разбивают на две N-2 - точечные последовательности х,[л] и хДл], и наво- дят для них Jr'f(A) и ЛДА]. Затем по значениям Л'ДА] и ^[А] определяют тре- буемое N - точечное ДПФ Л{А]. Если последняя операция будет выполнять- ся просто и не потребует сложных вычислений, то для вычисления N - то- чечного ДПФ потребуется выполнить (№2)г+(№ 2)2=-№г 2 операций. Если продолжить процесс разбиения последовательностей хДл[ и хДл) на две части и находить для каждой из них свои ДПФ, то можно существенно со- кратить количество операций. Рассмотрим ДПФ последовательности х[н]: *[*] = X ' х [ п Г (1163) я - О
я Глява I Разобьем х[л] иа две части х,[л] и Х][л], содержащие соответственно четные и нечетные члены х[л): х/[л]=х[2п]. л=0,|,2, ,(Nf2 - I), х;[л]=х[2п+1], л=0,1,2, .(W2-1). Тогда А'-1 V/2-) У/1-1 Вд = £х[п] И\ь=£х[2л] I?” + £ 42И + 1] и*гя,>* rtH) л*«0 rtH) -г и/2 - _ иг Так как <*.v - е ~ е ~ "уи , то ад=- £ х(2п] Здесь выражения в фигурных скобках представляют прямые N/2 - точечные ДПФ от последовательностей х,(л] и хДл]. Тогда *[*]= *,[*] + *,[*]<* ,0S*SJV/2-l . (1.164) Из формулы (1.164) следует, что N - точечное ДПФ ЛфЦ может быть вычис- лено через два №2 - точечных ДПФ А'ДА] и А'ДА]. Следует иметь в виду, что отсчеты ДПФ дня последовательностей хДл] и х2[л] повторяются с пе- риодом №2, Поэтому A'i[A+W2]=A'|[A] w Х2[к+НП]=Х2[к]. (1.165) Учитывая равенство = -И'*-, из (1.164) получаем выражение дия определения второй части последовательности спектральных коэффициен- тов Л]А]: л[*+№2]вад-ад-и* . (1.166) Формулы (1.164), (1.166) предстввляют базовую операцию БПФ (так называемую «бабочку»). Схематическое изображение “бабочки" показано на рис.1.21. Здесь кружок в центре обозначает операцию сложе- ння/вычитання. Стрелка обозначает операцию умножения на ИV Жирные точки обозначают регистры, содержащие входные и выходные значения дня отдельных этапов БПФ. На рис. 1.22 показана схема вычисления 8 - точечного БПФ с использо- ванием даух 4 - точечных преобразований
Э-ваяеиты тторнм гтиядоя и систем JS 40]=х,[0| 42]=х,[1] <НРх.[2] K6]^[3] Рис. 1.21. Основная операция БПФ -“бабочка” -------Il [0] тми Я» ----42] ----М3) Ц1]=х,(0)---- H3I4J1]----- Ц5ВД-------- <71=iJ3]---- я» «,Ю1 «ЯП М2] М3| Рис. 1.22. Вычисление 8-точечного БПФ В свою очередь. 4 - точечные преобразования могут быть определены через 2 - точечные, которые вычисляются по формулам: Aioj=х[0]+и£ч 41]=х(0]+x(i] (и 67) xii]=40]+^-4i]=40]-42]. (1.168) На рис. 1.23 показан результирующий граф 8 - точечного БПФ. Описанный алгоритм БПФ называется алгоритмом с прореживанием по времени, так как здесь требуется перестановка входных значений х[л] (см. рис. 1.23). Алгоритмы, при реализации которых требуется перестановка отсчетов Л|Л], называются алгоритмами с прореживанием по частоте. Поскольку произведение <¥;[£)-можно после вычисления запомнить, то дня каждой базовой операции БПФ необходимо выполнять только одно умножение на множитель Входные и выходные значения базовых операций обычно хранят в одних н тех же ячейквх памяти. На одну
Глава! базовую операцию приходится одна дополнительная ячейка для хранения произведения Л'Д] №/. Полому входная т|л] и выходная А]А] последова- тельности, а также промежуточные результаты могут размещаться в одном и том же массиве ячеек памяти. Алгоритм БПФ, использующий указанные возможности, называют алгоритмом с замещением. Рис. 1.23. Результирующий граф 8-точечлого БПФ Особенностью рассматриваемых алгоритмов БПФ является необходи- мость перестановки входных или выходных значений Элементы входной последовательности для алгоритма с прореживанием по времени должны быть расположены в памяти в бит-ннверсном порядке. Бит-инверсный по- рядок задается путем «зеркального» отображения двоичных разрядов вход- ной последовательности (табл. 1.3). Таблица I 3 - Бит-инверсный порядок N Двоичный номер бит инверсия бит-инверсный номер 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 На всех этапах выполнения БПФ используются коэффициенты fc=0,l,...N-1. Обычно указанные коэффициенты вычисляют до выполнения БПФ и хранят в таблице, к которой можно обращаться в процессе счета.
Элементы теории сигналов и систем J7 Количество этапов БПФ равно количество “бабочек" на каждом этапе - N/2. Так как в процессе БПФ используются комплексные числа, то каждая «бабочка» БПФ сопровождается четырьмя операциями умножения и сложения. Поэтому количество парных операций умножение-сложение рав- но 2N logjiV. При больших N применение алгоритма БПФ существенно со- кращает количество операций, требуемых для вычисления ДПФ 1.5.5 Дискретное косинусное преобразование Ряд Фурье для любой непрерывной действительной и четной функции содержит только действительные коэффициенты, соответствующие коси- нусным членам ряда (см.§ 1.2). Распространение данного результата на ДПФ приводит к дискретному косинусному преобразованию (ДНП) ДКП широко применяется в системах сжатия сигналов, базирующихся на методе ортогональных преобразование!. Суть этого метода поясняет рис 1.24. )К0Дар911ня> 6) Д»«о дарении» Рис ) .24. Сжатие сигналов на основе ортогональных преобразований Здесь входной аналоговый сигнал х(0 преобразуется с помощью АЦП в Цифровую последовательность я(л], погорал запоминается в буферной па- мяти. Накоплен нал выборка дайны N поступает на блок прямого ортого- нального праобраэования, где вычисляется последовательность . Пря- мее ортогональное преобразование должно обладать такими свойствами, чтобы последовательность Л*[А] имела малое число значимых членов. Ко-
м Глявя I дировению подвергаются только члены Л"[А], которые переносят сущест- венную информацию. За счет этого и достигается, е основном, сжатие сиг- нала После кодирования последовательность У[А) поступает в канал связи ня и в устройство хранен ня информации. В декодере выполняются обратные процессы. Ключевым моментом в реализации метода является выбор ортого- нального преобразования, а также выбор способа кодирования коэффициен- тов Л"[А]. Ортогональное преобразование считается эффективным, если оно обладает быстрым вычислительным алгоритмом, обеспечивает наи- большую концентрацию энергии спектральных составляющих в небольшом числе членов последовательности и малые искажения при их кодиро- вании и декодировании. Наиболее полно сформулированным требованиям отвечает ДКП [20]. Прямое и обратное ДКП последовательности х[л]имеют вид У-1 лг(и]с°в я.0 (2 л + 1 )Ая 2N (1 169) Ф] = £ Л[*] А-[*] со5Г где N - дайна выборки э[л); Л]*] - коэффициенты ДКП, Л[Л]- совокуп- ность весовых фунюшй, причем Л[*] = при k - I, 2,... N - I при к = 0 (1.171) Множество базисных функций ДКП (2 л + I }кк (I 172) соответствует множеству полиномов Чебышева Покажем эго, для чего най- дем нули полинома Чебышева (1.63) степени N. Для этого перепишем его в форме: TK(z) = cos(jV arccos z). Отсюда cos(N arccos z) = 0 ъ если N arccos z = Л"/2 + пл и
Эл№WTM TtOpMH СШИ1Л01 систем 59 я/2 + пл (2я + 1)я z = cos-----= cos------ 2N (1.ПЗ) N Выполним нормировку многочленов Чебышева в соответствии с (1 171) Л>(2) = Tt{2) = arccos z), к = 1, 2,.. N - 1 (1 174) Подставим (1.173) в (1,74) (т е. вычислим значения полиномов степени £=1, 2» ..., Л<-1 в тех точках, в которых полином jV-ой степени дает нули). С уче- том этого получим (I 175) Множество полиномов (1.175) эквивалентно множеству базисных функций ДКП, т.е. - это множество полиномов Чебышева порядка 0, 1,2, ... jV-l. вычисленных в точках, в которых полином jV-ой степени дает нули. Рис. 1.25 Преобразование входной последовательности Обратим внимание на то, что коэффициенты в (1.169) ие являются комплексными Они имеют действительные значения. Кроме этого, в соот- ветствии с общим принципом построения ДКП, последовательность х[л] Шнегся действительной и четной Поэтому ДКП как бы применяется нс к исходной выборке Я л) (рис. 1.25,а), а к преобразованной последовательно- сти Д'(л), являющейся четным растиранием х(п]
Глям 1 M«) |ф»1. при n = 0,1,... N - I, |i[2W-l-n], л =/V,/V +1 2JV-1 (1.176) Последовательность ЯЛ1 должна рассматриваться как периодическая с периодом 2N (рис. 1.25,6). Данное обстоятельство необходимо учитывать при синтезе сигналов в соответствии с (1 170). Значения коэффициентов ДПФ Хр(к) 2№точечной последовательности ЯЛ1 определяются по формуле: 1Л -1 1«Ь т* \ -I «*(!..!) JM*1= X =е lfJYx^e 1V (1.177) -0 я-0 Из (1.169) н (I 177) следует, что коэффициенты ДКП могут быть вычислены через коэффициенты ДПФ Л\(*] = Л(*]Ке- (1178) Наличие связи между коэффициентами Фурье н ДКП позволяет вычис- лять ДКП с использованием алгоритма БПФ. Достоинством ДКП является то, что по своей эффективности оно мало отличается от оптимального преобразования Карунена - Лоэва и сущест- венно превосходит преобразование Фурье [12,20]. 1.5,6 Дискретнве преобразование Лапласа и Z - преобразование Для дискретной последовательности х[л) вводится понятие дискретно- го преобразования Лапласа в соответствии с формулой [ 1 ] £ х[л]е“'"г* (|)79) л г О Здесь, как и в случае непрерывного преобразования Лапласа, ком- плексная величина р реви а о - yw Если g<x, то ряд (1 179) сходится, и по- сле до вагельп ости х[п] соответствует изображение X (е fT 1 ) т являю- щееся функцией величины efT* При анализе и синтезе систем дискретной обработки сигналов большое распространение получило Z -преобразование, которое связано с дискрет- ным преобразованием Лапласа и вытекает из него
Эяемпгты тстри сигналов и систем 61 Прямое Z преобразование X (?) последовательности л[л] определя- ется формулой [ 1,4.5) ^(з)= Z{x[n]} = £х[п]<" (1 180) п-О где z = efT,‘ . Z-преобразованис практически совпадает с дискретным преобразова- нием Лапласа и отличается только аргументом изображения. При такой за- мене трансцендентные функции от аргумента р преобразуются в рацио- нальные функции от аргумента Z . Благодаря этому упрощается анваиз. Рассмотрим Z -изображения некоторых дискретных сигналов. Специ- альным входным сигналом для дискретных систем является единичная им- пульсная функция 1 при п = О, п - л (1.181) О при п * 0. Эта функция играет в дискретных системах такую же роль, как и 8-фуикция Дирака в непрерывных системах. Подставляя (1.181) в (I 180), получаем *(--)=!. Дискретный сигнал <J(n называют единичным скачком. Подставляя (1.182) в (1.180), получаем бес- конечный ряд X (z) = I + z'1 + z'2 + ... . (1183) Ряд (1183) является геометрической прогрессией и сходится, если 12 1 |< I. Суммируя прогрессию, получаем X ( z ) = -----5-_ (1.184) 1 - z Анваогнчно находится Z -преобразование простой экспоненциальной последо вагел ьности а О , п "г 0, л < 0, (1.185) где а - вещественное число. Подставив (1 185) в (1.180), получим
62 Гл» и 1 X^ = ia z'" = i(az *) = ~ (1.1вб) и.о ин» i- az Ряд (I.) 86) сходится, если | az”' |< I или Iг 11< 1/а. Отметим, что комплексна* плоскость z = ерТ° = х + jy является кру- говой. При движении точки р-плоскости вдоль осн Jta, соответствующая точка z-плоек ости опишет окружность единичного радиуса. Один полный оборот соответствует изменению частоты ш от 0 до 2х/То. Левая р- полуплоскость отображается внутрь единичного круга. Правая р- лолуплоскость преобразуется во всю 2-плоскость, исключен единичный круг (рис. 1.26). Рис. 1.26 Соответствие р-плоскости и 2-плоскости Обратное : -преобразование определяется формулой x[n\ = Z-'{X(:)}=^-jX(:)z’-ldz (|187) где обход замкнутого контура интегрирования в z-плоскости проводится против часовой стрелки. Контур интегрирования должен охватывать все по- люсы функции X(z)z"'. Существует возможность вычисления г[л] по бо- лее простой формуле:
Элементы теории сигналов и систем 6) (1.188) Рассмотрим бет доказательств основные свойства г-преобразований. I Линейность. Пусть х[л] = а,л,[л] + ajjrJ/j] . (1.189) Тогда z-преобраэованне линейной комбинации нескольких дискретных сигналов представляет такую же линейную комбинацию их z- преобразован и Й X (z) = а( A'.(z) + a, X,(z) . (1.190) 2 Z-преобразовлнне смещенного сигнала. Рассмотрим сигнал х[л-/п], запаздывающий на целое число тактов т. Тогда Z{x(n-лт]} = z"X(z) . (1191) Таким образом, задержка сигнала во временной области приводит к умно- жению его ^^преобразования на множитель .Множитель z соот- ветствует задержке на один такт 3 Ъ-преобразование свертки. Применительно к дискретным сигналам но аналогии с непрерывной сверткой вводится дискретная свертка последо- вательностей х[п] и h(n) jh] = £ к JMп " *J . (I 192) i-D Вычислим Z -преобразование свертки = (U9J) toll Га(| Таким образом, z -преобразование свертки двух дискретных сигналов равно произведению их z -преобразований.
1.5.7 Дискретная свертки и ее вычисление Цифровая обработка сигналов выполняется над последовательностями конечной длины. Свертка двух конечных последовательностей х(п] и Л[л] . длиной Nt н Л/д определяется соотношением £ Я* JM" " *1 (I 194) *•0 или H"J= £*), (1 195) > >о где л=0,!,2,....,Л/г-Л/г2. Последовательность у|п] также является конечной и имеет длину Лб+Л/j-l Выражен ал (1.194) и (1.195) определяют линейную свертку. Если рассматриваются периодические последовательности х[п] и h(n) с периодами по N отсчетов, то вводят понятие круговой свертки, определяе- мой соотношениями Я*) = X (1.196) или >'[«)= £ - к ) (| .197) 1 .о Последовательность у|л] также будет периодической с периодом в N отсче- тов, поэтому достаточно ее вычислять на одном периоде Вычисление непосредственно по формулам (1.196) или (1.197) требует выполнения N(N-l) операций умножения, что является ограничивающим фактором при реализации свертки. Уменьшить число умножений можно с помощью БПФ. Действительно, если для исходных периодических последо- вательностей х(п) и h(л] вычислены в соответствии с (1.159) их ДПФ AJA) и //(А], то, учитывая свойство(1.193), можно показать, что У [А 1 = X [* ]Н [* ] (1.198) Выполнив обратное преобразование Фурье для последовательности ЦА], получим Я") = (1.199)
Элементы теории сыпало» м систем 65 Последовательность у[п] есть искомая свертка. Применяя алгоритмы БПФ для реализации прямого и обратного ДПФ, можно значительно сокра- тить количество операций при вычислении круговой свертки Такой метод вычисления свертки эффективен для последовательностей, длина которых превышает 32, и называется методом быстрой свертки. Линейная свертка также может быть вычислена с помощью БПФ Для этого исходные последовательности х[л] и й[л] длиной Ni и Nj дополняют нулями до Ni Nj-\ отсчета. Тогда линейная свертка непериодических по- следовательностей л[л] и Л[п] будет соответствовать круговой свертке £4*]Л(л-*1 ." = 0,1........м + ^-2 (|200) и может быть вычислена с использованием (Nl - A/j - I) - точечного БПФ Имеются и другие методы быстрого вычисления свертки, использующие теоретико-числовые преобразования и модульную арифметику в кольце по- линомов [4]. 1.5.8 Линейные дискретные системы н цифровые фильтры Важную роль в цифровой обработке сигналов играют линейные дис- кретные системы. Такие системы преобразуют входную последовательность >(п] ------ Ип]=х(п-1| >—ш—* Э) х[л] в выходную Дискретная сис- тема считается заданной, если для лю- бой допустимой входной последова- тельности х[л) может быть найдена вы- ходная последовательность. Среди все- возможных дискретных систем наи- больший интерес представляют систе- мы, которые могут быть заданы компо- зицией из следующих трех элементов: а) сумматора последовательностей (рис. 1.27, а) у[п) = Xi[n) + х?]л) ,(| 201) Рис. 1.27. Элементы ЛДС б) умножителя на постоянный ко эффнциент/1 (рис 1 27,6) у[п) = Лх[п] ; (1.202)
66 Глш 1 в) задержки (рис.127,в) у [п ] = л(л - I ] . (1.203) Системы, состоящие из указанных элементов, называются линейными дис- кретными системами (ЛДС) или линейными дискретными фильтрами (ЛДФ). Е(ли обозначить оператор преобразования ЛДС через /., то для ли- нейной системы справедливы соотношения: yi(n] = L{лг|[л]} ; уг[л] = L{л(л]} , aiyi(n) + azyi[nj = L{aixi(n] + агл[м]} ’ (1 2М> где а/,а/ - константы. Инвариантной к сдвигу называется такал система, дня которой сдвиг входной последовательности на т тактов приводит к соответствующему сдвигу выходной последовательности, т е Ял-/п) = £[л(л-т]) (1.205) Покажем, что для инвариантной к сдвигу ЛДС входная и выходная после- довательности связаны соотношением свертки Реакция ЛДС на единичный импульс назывхегся импульсной характеристикой Л[л], т е. й[л] = L {<5[л]} . (1.206) Единичный импульс <5[л], действующий только при л-0, вызывает на выходе системы отклик Л[л]. Следовательно, реакция ЛДС на произвольный входной отсчет х[Л], действующий в точке Аг* 0, будет предстввхятъ им- пульсную характеристику Л[л], сдвинутую на к тактов и умноженную на значение хрг], т.е. х[Лг]Л[л-Лг]. Реакция ЛДС на всю последовательность от- счетов х [А] равна сумме реакций на каждый из входных отсчетов [4,10,16]: У ( п ] = £ д[* ]Л[* - л ] (1 207) Импульсная характеристика полностью определяет свойства ЛДС при нуле- вых начальных условиях. Большое значение имеют физически ревхнзусмые и устойчивые ЛДС ЛДС является физически реализуемой, если Л[л]-0 при л<0. В злом случае значение отклика ЛДС при п=пд зависит только от входных отсчетов с но- мерами л s л0
Элементы теории сигиио» систем 67 ЛДС является устойчивой, если се импульсная характеристика удовле- творяет условию [4,16]: £ 1А(п !| < ® (1.208) Для устойчивой ЛДС ограниченная Рис. 1 28 ЛДС первого порядка по значениям входная последователь- ность х(п| вызывает ограниченную выходную реакцию у[п1 ПРИ любых начальных условиях Рассмотрим инвариантную к сдвигу ЛДС, образованную из базовых элементов (рис I 28) Уравнение функци-онирования рассматриваемой системы имеет вид: у[л] = х[л]+ ау[п - I]. (1 209) Данное уравнение является разно- стным уравнением первого порядка Разностное уравнение позволяет рас- считать выходную последовательность по входной. Пусть .г[л]=г)[л] н у(л]=0 при л< 0 Тогда в соответствии с (1.209) получаем: у[0] = х[0) + ay [- I ] = ), у[1] = х[1] + ау [0 ] = а, у[2] = х[2] + ay [1 ] = а?; (1.210) у [ п ] = х[л]+оу[л-1]=а’. В общем случае инвариантная к сдвигу ЛДС, построенная на основе базовых элементов, функционирует на основе разностного уравнения обще- го вида [4,10,16] \-i н-i Ял] = Е*[*И"-*]- 22<4*]ур» - * J, (1,211) 4.0 4.1 гдео[4], &[£] - постоянные коэффициенты. Цифровое устройство, реализующее выражение (1.211), называется Цифровым фильтрам (ЦФ) В ЦФ все операции выполняются нал отсчета- ми, представленными двоичными числами ограниченной разрядности. Очевидно, что конечная разрядность обуслоаянвает погрешность ЦФ. Эта погрешность может быть уменьшена путем увеличении разрядности ЦФ. Ниже вводятся основные характеристики ЦФ в предположении, что разряд-
ба Галва I ность ЦФ достаточно велика и погрешностями вычислений можно пренеб- речь Это позволяет для синтеза и исследования ЦФ использовать теорию ЛДС. Эффекты, связанные с конечной разрядностью представления отсче- тов, рассматриваются в § 1.6. Если известны коэффициенты о(А) и отсчеты входной последова- тельности х[п) и начальные значения И*И> у[-2],.., У(’АЛ- то> используя (1.211), можно вычислить выходной сигнал Я"] при ллО. Фильтр, функцио- нирующий на основа (1.211), называется рекурсивным фильтром (РФ). Структурная схема РФ изображена на рис. 1 29. Рис I 29 Структурная схема рекурсивного цифрового фильтра Если в уравнении (1.211) все коэффициенты а[Л]=0, то Я"] = j b[k ]х[л - Л] * «и (1212) фильтр, функционирующий на основе уравнения (1.212), называется нере- курсивным фильтром (НРФ) и имеет конечную длительность импульсной характеристики Такие фильтры также называют фильтрами с конечной им- пульсной характеристикой (КИХ-фияьтрами). Фильтры, реализующие (1.211), характеризуются бесконечной импульсной характеристикой и назы- ваются БИХ-фнльтрамн. Из (1.212) и (1.207) следует, что для НРФ Л[А]=й[4], т е. коэффициенты КИХ-фнльтра совпадают с отсчетами его импульсной харакгеристи ки.
Элементы теории сигналов и систем 69 Важной характеристикой рассматриваемых фильтров является переда- точная функция Н(:), которая представляет отношение z-образов выходной Цг) и входной последовательности Х(:) фильтра при кулевых начальных ус- ловиях: Н (z) = Y {z)/X (z) . (1213) Выполнив Z преобразование над левой н правой частями (1.211) и (1.212), получим передаточные функции для рекурсивного и нерекурсивно- го фильтров соответственно: Еы*к’* -1.0___________ | + Е'а]*к-* ' "2,<> * -I ( z ) = t)[k ]z (1.215) W z = Используя передаточные функции, можно подучить комплексные частотные характеристики фильтров. Для ттого выполняют подстановку : Модуль комплексной частотной характеристики H(exp(j ш'1'q)) назы- вается амплитудно-частотной характеристикой. Аргумент комплексной частотной характеристики <p(<u)^arglH(exp(j tuTo))! называется фам- частот-ной характеристикой (ФЧХ) Так как частотные харакгеристиин фильтров - функции аргумента exp(j шТа). то они являются периодическими по частоте с периодом, равным частоте дискретизации ш^-2кТо Для фильтров, характеризуемых действительными коэффициентами, АЧХ явля- ется четной функцией частоты ш, а ФЧХ - нечетной. С учетом периодичности требования к частотным характеристикам фильтров задают на интервале частот [0, ж То] При этом для сопоставления фильтров используют нормирование Существует два способа нормирова- ния [4]. В первом случае вводится нормированная частота w = шТ, Тот-да при шЛ = 2я fTt.w = 2я и требования к фильтрам задают на ин- тервале [0, я ] Во втором случае используют нормировку по частоте oil'd 2к При ш~ нормированное значение равно I В этом случае требо- вания к фильтрам задают на интервале [0; 0,5]. Импульсная />[л] и частотная характеристики H(exp(j o>Tq)) связаны между собой парой ДНПФ (1.156) Пример 1.11 Определим АЧХ РФ первого поряди (рис 1 28) Выполнив г- нреобриомние (I 209), иелучнм У(з) ~X(z) a Z'¥(z) Отоода
70 Подставке 7. -expQwTd. получим Следовательно, АЧХ равна (i + a cos ш Т о)1 + (a sin а> Г о)1 Существует несколько различных форм реализации РФ фильтров Вы- деляют четыре основные формы: прямую, каноническую, последовательную и параллельную. Прямая форма реализации РФ показана на рис 1.29 и соответствует непосредственному использованию выражения (1.211) Каноническая форма (случай, N-M) получается из (1.214). Представим H(z) в виде -A АМТ (1.216) где НК?). НК?) - передаточные функции соответственно РФ и НРФ, вклю- ченных последовательно. Передаточным функциям WjfzJ и НК:) соответст- вуют разностные уравнения и[л]= х[п] - а[Л ]и| л - *] (1217) (I 218) которые можно реализовать в соответствии с рис 1.30. Расположенная слева от элементов задержки часть схемы (рис. 1.30) со- ответствует уравнению (1.217). Реализация уравнения (1.218) основывается на том, чти отсчеты ы[л),ь[п-1 ],...,u[n-jV] вспомогательного сигнала уже по- лучены и хранятся на выходах элементов задержки. Поэтому для реализа- ции второго уравнения не требуются дополнительные элементы задержки. Введение вспомогательной последовательности и[л) позволяет уменьшить число элементов задержки в два раза по сравнению с прямой формой реали- зации РФ. Существуют и другие виды канонических форм реализации, об- ладающие указанным свойством
Эимпгш тторяи сигналов систем 71 Рис. 1.30. Каноническая форма реализации РФ (1) В частности, при реализации ЦФ с использованием ЦПОС часто ис- пользуют каноническую форму, изображенную на рис.1 31. Рис. 1.31. Каноническая форма реализации РФ (2) Данная форма реализации РФ удобна с вычислительной точки зрения. Дм каждого значения л выходная последовательность вычисляется с по- мощью выражения Я" 1 = 6[0 ]х[л ] + в* . (1.219) В свою очередь, значение сигнала и., действующего на выходе л-го сумма- тора, равно ы. = i[lpr[n-l)-a[l]y[n- 1]+м..|, (1.220) где w.-i = Ч2]4л - 21 - 421Я" - 2] + и.., (1.221)
72 Глава! и т д В итоге вычисления по приведенным формулам соответствуют выра- жению (1211) Как правило, реализация цифровых РФ высокого порядка в прямой или канонической форме из-за ошибок вычислений, обусловленных конечной разрядностью, нецелесообразна В этом случае предпочтительнее реализо- вывать фильтры с использованием простых звеньев второго порядка ЦОЬЦЦг'1 +6[2]z'J I * ofllz'1 + fl(2]z ’ (1.222) Такне звенья называют биквадратными блоками Последовательном форма реализации ЦФ (рис. 1.32) представляет собой последовательное соединение однотипных звеньев, соответствующих (1.222) В этом случае H(z) представляется в виде произведения W(z)= И А/<(2) I В I (I 223) где H,(z) соответствует (I 222). При этом каждый биквадратный блок реали- зуется в канонической форме <п| ------1 I----71 ---- " 1 )------Н,(2) |------|НД tZ)-------->|nL(Zl ---- Рис J.32. Последовательная форма реализации ЦФ Параллельная форма реализации (рис. 133) соответствует представле- нию передаточной функции H(z) в виде суммы НО = £ //.(:). (1224) где Hrfz) соответствует (1.222) при i(2]=0. Нерекурсивные фильтры также могут быть реализованы в различных формах. Прямая форма (рнс.) .34) соответствует реализации фильтра в соот- ветствии с (1212). НРФ также могут быть реализованы в эквивалентной форме (рнс.1 35), соответствующей структуре , показанной на рис. 1.31.
Элементы теории сигналов и систем 73 Рис. 1.34 Прямая форма реализации НРФ Нерекурсивный фильтр всегда устойчив. Эго следует из (1.208). Дейст- вительно, £ И* 1| < ® (1.225) 1 • О
74 Г1Ш I Для определения устойчивости РФ рассмотрим частный случай (1.211), когда л[л]=0 для всех п. Тогда м Яп] = -&АЬ<Л“Л) (1.226) 4-1 Разностное уравнение (1.226) называется однородным н определяет собственное поведение РФ при ненулевых начальных условиях. Общее решение уравнения (1 226) имеет вид 4/ Я"] = £ , (I 227) i ! где 41 ], 42], .,с(к] - числа, определяемые начальными условиями; 7.г, Z], Zt - полюсы передаточной функции H(z) (1.214). Предполагается, что все полюсы простые Выходная последовательность у(л], определяемая с помощью (1.226), будет ограничена по значениям, если выполняется условие |zj< 1 , к = 1,2, М , (1.22В) те полюсы передаточной функции должны налодиться внутри единичной окружности на комплексной z-плоскостн. Рекурсивный фильтр устойчив, если устойчиво решение соответствующего однородного разностного уравнения Следовательно, критерий (I 228) является также критерием устойчивости РФ. Рассмотренные критерии устойчивости (1.208) и (I 228), строго говоря, относятся лишь к ЛДС, в которых отсутствует квантовение коэффициентов Реальные ЦФ из-за ограниченной разрядности вычислений требуют дополнительных исследований устойчивости. 1,5.9 Системы с повышением и понижением частоты днекрепазаинн При решении задач ЦОС иногда возникает необходимость в изменении частоты дискретизации. Эго сопряжено с повышением эффективности обработки сигналов н обеспечивает возможность обработки с минимально допустимыми частотами дискретизации. Основными элементами систем, использующих различные частоты дискретизации, являются децимвторы и интерполяторы (3,4,21). Дециматор - это элемент, понижающий частоту дискретизации входного сигнала. Уравнение функционирования дениматора имеет вид yjn] = х[Мп] М - целое. (1 229)
Элементы теории сиги и о» и систем 75 Значение выходной последовательности децимвтора в точке л равно значению входной последовательности в точке Мп, т.е. на выход дециматора поступают только входные отсчеты с номеремк, кратными М. •Hi) ут,= м , м Рис. 1.36. Дениматор и пример дсиимядни Если входные отсчеты дециматора следуют с периодом Th то выходные отсчеты - с периодом Тг TtM (рис. 1.36) Операция, выполняемая децимнтороы, называется прореживанием Рассмотрим соотношение спектров сигналов х|п) и у^л]. Спектр сигнала х[л] периодичен с частотой дискретизации (i>i '2ivT>. Спектр сигнала у<Яп1 яалясгся периодическим с частотой дискретизации <о}~ 2к'Т1=2х (Т1 М). toi '-ui!. Из-за уменьшения частоты дискретизации при децимации возможно неложен не повторяющихся спектров, что приводит к потере информации Рис 1.37 иллюстрирует эффект наложения для случал. М*=2 Для исключения наложения необходимо'ограничивать полосу частот входного с и гн ел а дециматора значением Для этого перед дениматором устанавливают фильтр нижних частот, идеализированная АЧХ которого должна удовлетворять требованиям: 1 Н (<")! = 1 , |а> | < я / Т, О , |а> | к я / Т j (1 230)
Глава I Последовательное соединение ФНЧ и дециматора образует простейшую нисходящую дискретную систему (ПНДС) (рис. 1.38) (4]. В ПНДС понижение частоты дискретизации производится однократно. Рис 1.38. Простейшая нисходящая дискретная система ФНЧ, нрименяемый в ПНДС, должен иметь малую ширину переходной лолоеы и большое подавление в полосе задерживания. Эти требования лроше реализуются при использовании рекурсивной схемы построения фильтра. Одиаяо в РФ для вычислении очередного выходного отсчета необходимо знать значения предыдущих отсчетов. Поэтому такой фильтр должен работать на частоте дискретизации входного сигнала. В случае применения НРФ нет необходимости в вычислении всех отсчетов последовательности л(л] (рнс. 1.38), так как для вычисления очередного выходного отсчета не трабуюгея значения предыдущих выходных отсчетов.
Эжненты теория сигналов м систем 77 Поэтому НРФ, используемый в схеме ПНДС, работает на пониженной частите дискретизации, что уменьшает количество операций, необходимых для вычисления 4ПГ Кроме того НРФ, обладающий линейной фазовой характеристикой, обеспечивает сохранение формы сигнала Интерполятор - это элемент, повышающий частоту дискретизации входного сигнала. Уравнение функционирования интерполятора имеет вид ,если л кратно (1 231) О , в остальных случаях . Выходная последовательность интерполятора уДл] получается в результате ввода между соседними отсчетами последовательности л[л] дополнительных L-1 отсчетов с нулевыми значениями. На рис. 1 39 показан интерполятор и последовательности х[л] н уДл] при 1=2 1= пТ, Рнс. I 39 Интерполятор и пример интерполяции Определим спектр выходного сигнала У, [л] В соответствии с ДНСкрепЮ-непрерывным преобразованием Фурье спектр выходного сигнала интерполятора равен у^"г,)-Ё япт, )<'•”'. (1.232) и » О Последовательность yfnTJ отлична от нуля только для значений л, кратных I.. Поэтому, заменив л на л/., получим
7Я Глвм 1 Г(е'-Г’)- = Expinje'-'- = Х(е’-Т‘\ (।.233) те. спектры входного и выходного сигнала интерполятора совпадают (рис. 1.40), Рис. 1.40. Преобразование спектров при интерполяции Спектр сигнала j^[n), отсчеты которого следуют с частотой 2х/Т), периодичен с частотой дискретизации входного сигнала 2гс'Т1. Если предположить, что некоторый сигнал получается путем непосредственной днекрешзаинн исходного аналогового сигнала с частотой дискретизации 2x/Ti, то он будет иметь спектр, показанный на рис. 141. Рис. I 41. Спектр сигнала ylfiTi]
Элементы теории сыпало» степи Из сравнения спектров сигналов ЯЛЪ1 и ЯяГз], следует, что сигнал на выходе интерполятора имеет в основном интервале "лишние" спектральные составляющие. Требуемый сигнал Я5’?'1] может быть получен из Яп^) путем исключения их из основного интервала. Для этого на выходе интерполятора устанавливают ФНЧ Идеализированная АЧХ такого фильтра должна удовлетворять требованиям: L, |й>|<Я'/Т|. О, (1.234) Отличие значенал АЧХ фильтра от единицы в полосе частит |с?| < ^/'/^объясняется тем, что спектр сигнала Яп^] имеет масштабный множитель / 7), а спектр сигнала Ял? ]1 должен иметь масштабный множитель I 7} (см. рис. 1.42). Последовательное соединение интерполятора и ФНЧ образует простейшую восходящую дискретную систему (ПВДС, рис 1.42) (4). В ЛВДС повышение частоты дискретизации производится однократно. Г|"Т»| Рис. 1.42. Простейшая восходлшая днекретнал система В ПВДС пре имуществе и ное применение находят нерекурсивные фильтры, так как они, благодаря линейности ФЧХ, позволяют сохранить форму сигнала. Кроме этого, НРФ, применяемые в ПВДС, требует меньшего количестве операций умножения, поскольку во входном сигнале хНпТ)] только каждый /,-й отсчет отличен от нуля. Последовательное соединение ПВДС н ПНДС позволяет построить систему, выполняющую преобразовал не частоты дискретизации в соотношении, выражаемом нецелым числом Ml. |3] На рис. 1.43 изображена структурная схема системы, выполняющей дробное прсобразо-
so Глявя I Рис. 1.43. Дробное преобразование частоты ванне частоты днскрстызаиин. Здесь Ti-{MIL)Tt. Если М/„ то час- тота дискретизации последовательности J выше, чем у последователь- ности х[лГ|] н полоса пропускания идеального ФНЧ определяется гранич- ным значением |<и| = я /Т\ Если М то частота дискретизации последо- вательности у[л7’>] ниже, чем у т/лЛ] и идеальный ФНЧ должен иметь гра- ничную частоту пропускания |й>| = л" !Тг Системы с дробным преобразованием частоты дискретизации находят широкое применение в цифровой обработке аудиосигналов. 1.6 Эффекты квантования в цифровой обработке сигналов 1.6.1 Формы представления чисел В предыдущих разделах алгоритмы цифровой обработки сигналов рас- сматривались в предположении о неограниченной длине разрядной сетки вычислителя Однако на практике число разрядов всегда ограничено, что приводит к появлению ошибок вычислений. При определенных условиях эти ошибки можно не учитывать, например, когда шаг квантования мая по сравнению с уровнем полезного сигнала В общем случае ошибки вычисле- ний могут накапливаться до значительной величины. Оценка результирую- щей ошибки вычислений представляет большой практический интерес. Ре- зультирующая ошибка вычислений зависит от особенностей вагоритма об- работки, а также от формы представления чисел в вычислителе Обычно применяются две формы представления чисел: с фиксирован- ной и с плавающей запятой (точкой) [4,10,16]. При использовании формы с фиксированной запятой считается, что положение запятой, отделяющей
Элементы ттюрнн сиги клок и систем BI дробную часть числа от целой части, фиксировано и неизменно а процессе вычислений. В вычислителях, использующих эту форму представления чи- сел, возможны несколько вариантов представлений, отличающихся положе- нием запятой (справа от младшей значащей цифры или слева от старшей значащей цифры) н способом представления отрицательных чисел Процессоры цифровой обработки сигналов, оперирующие числами с фиксированной запятой, обычно используют 16-раз рядные двоичные кодо- вые слова. Когда положение запятой фиксируется спрваа от младшей значащей цифры, то каждое число представляется в виде положительных степеней числа 2. в -1 Х = Z а-2’ , (1.235) । • и где Н - разрядность кодового слова; а, - двоичная цифра 0 или 1. Пример 1.12 Приставим десятичное число 243<1О, в двоичной форме с фиксированной запятой 243(lO) = I 2’ +1-2* +1-2’ +1 2* +0-2’ +0 2* +1-21 +1 2" = 11II 0011(1| Числа, представленные в соответствии с (1.235), являются положительными я при й=16 лежат в диапазоне от 0 до 216-1=65536. Для представления отрицательных чисел используют: абсолютное зна- чение со знаком (прямой код со знаком), обратный код или дополнительный код. В каждом из зтих случаев старший разряд числа кодирует знак (обычно 0 - положительный знак, I - отрицательный). В табл. 14. привалены примеры кодов 3-х разрядных двоичных чисел. Таблица 1.4 - Примеры 3-х разрядных кодов Десятичное число Прямой код Обратный код Дополнительный код +3 011 011 011 +2 010 010 010 + 1 001 001 001 +0 000 ООО ООО -0 100 III - -1 101 110 II! -2 ПО 101 ПО -3 III 100 101 -4 - - 100
>2 Глккв 1 Положительные числа для каждого из трех кодов совпадают, т.е. пред- ставляются в виде прямого кода со знаком. Отрицательные числа представ- ляются по-разному. В прямом коле со знаком старший разряд предназнача- ется для знака, а остальные разряды соответствуют абсолютному значению числа. Отрицательные числа в обратном коде образуются путем инверсии цифр, соответствующих двоичному представлению модуля числа. Отрица- тельные числа, представляемые в дополнительном коле, вычисляются с по- мощью выражения я -1 Х = 2 “ " £ а- 2" . (1.236) .-о Пример 1.13 Определим дополнительный юл числя -625цо) для случая Яс16 Выполним вычис- ления а двоичной системе а соответствии с выражением (I 236) В двоичной системе число 625(10) запишется в виде 1001110001 Тогда 1 0000 0000 0000 0000 * _ - 0000 0010 0111 0001 ~ 1111 1101 1000 1111 Единица в старшем разряде кодирует знак числа. Из примера вид- но, что незначащие позиции числа в дополнительном коде заполняются би- том знака (тго называется знакорасширеннем), т.е. единицей. Для нахожде- ния дополнительного кода отрицательного числа при выполнении действий в двоичной системе счисления часто используют более простой способ Сначала находят обратный код модуля двоичного числа, а затем увеличи- вают его на единицу, т.е. = Хибр +1 (1.237) Пример 1.14 Определим дополнительный код числа -625(|», при В-16 Двоичный аод 0000 0010 0111 0001 Обратный код 1 111 1101 1000 1110 Добавление I 111) 1101 1000 НИ- X Можно показать, что представление чисел в дополнительном коде яв- ляется циклическим (рис. 1.44), т.е. если начать с 0 и увеличивать каждое значение на 1. то получатся все положительные числа от 0 до 2°-1. Приба- вив еще единицу, получим отрицательное число, поскольку знаковый разряд станет равным I, а значение числа будет соответствовать 2° Продолжая прибавлять I. получим все отрицательные числа, а затем получим число 0. Отсюда следует важное свойство такой системы записи чисел. Если оконча-
Элементы теории сигналов и <ncrti из тельный результат сложения нескольких чисел (положительных или отрица- тельных) можно представить имеющимся количеством двоичных разрядов, то этот результат будет являться точным и ие зависящим от порядка выпол- нения сложений, даже если в процессе выполнения операций имело место переполнение. Рис. 1.44. Циклическое расположение целых чисел в дополнительном коде Пример 1.15 Рассмотрим сложение 4-х разрядных представлений чисел - 4 - 6 + 7 - J Здесь - 4 - 6 - 10 даст переполнение Однако конечный результат будет правильным 1100 -4 1011 -6 0111+7 1101 " -3 Рассмотренные кодовые представления целых чисел находят широкое применение в системах цифровой обработки сигналов. Прямой код исполь- зуют в аналого-цифровых преобразователях и умножителях. Применение прямого кода позволяет упростить множительные устройства Обратный и прямой коды имеют недостаток, состоящий в том, что числа +0 и -0 пред- ставляются по-разному (см. табл 1.4) Поэтому в системах цифровой обра- ботки сигналов чаще всего применяют дополнительный код. Использование дополнительного кода для представления в памяти вычислительного уст- ройства отрицательных значений позволяет все арифметические операции свести к серии сложений и сдвигов. Нвлример, операция вычитании даух чисел X-Y может быть заменена сложением: X+Y„, где Y*., - дополни- тельный код числа Y. Пример 1.16 НаЙцем разность X - Y, где Хж71(|», и Y“6J[le,
Глава 1 X = 0000 0000 0100 0111 + =1111 nil HOP 0001___________ X + Y^ = 0000 0000 0000 1000 - 8rI„ При суммировании и вычитании двух произвольных чисел может воз- никнуть переполнение разрядной сетки, что приводит к неправильному ре- зультату, который без соответствующей коррекции нс может быть исполь- зован в дальнейших вычислениях. Процессоры обработки сигналов имеют специальный бит в регистре состояний, который фиксирует случай пере- полнения. В системах ЦОС обычно полагают, что значения обрабатываемых сиг- налов представляются дробными числами в диапазоне от -1.0 до 1.0. В этом случае условно считают, что запятая (точка) расположена справа от знако- вого бита (рнс. I 45), те. предполагается, что все числа масштабированы с коэффициентом 2(Л,). Тогда наибольшее число, представимое в указанном формате, становится равным (2<в'|,-1)/2<я‘|) -1-2'<в1), те. меньше единицы. Дробные числа, соответствующие рис. 1.45, лежат в диапазоне от -1 до 1 - 215. О 12 3 4 5 6 3 8 9 10 11 12 13 И 15 Рис. 1.45. Формат представления дробных чисел Дробные отрицательные числа хранятся в дополнительном коде До- полнительный код числа в этом случае определяется путем вычитания мо- дуля исходного числа из числа 2. Так ках модуль исходного числа меньше 1, то в результате получается число, первый бит которого всегда равен I. Пример 1.17 Представим число -0,635 Дополнение числа 0,625 до числа 2 равно 2 - 0,625 ’ 1,375 или в двоичном представлении в соответствии с рис I 45 -0,625,10)“ 1,0110000 0000 0000, ь Запятая в двоичной форме записи числа является условной и отделяет знак. Для перевода полученной двоичной записи дробного числа в десятич- ную систему счисления используют формулу в -1 N = + S а‘2' , (I 238) /I
Элементы тторни с ч гнело» систем где 5 - значение знакового бита числа, а, - значение битов дробной части Пример 1,18 Найдем десятичный эквивалент числа 1,011 0000 0000 0000,3, Подставлял значе- ния битов в формулу (1 31В), получаем \e-hl-2 : + I 2 ' = -1* 0,25 ♦ 0,125 = -0,625 Применение дробных чисел с фиксированной запятой позволяет избе- жать переполнения при умножении. Основные проблемы применения тако- го представления связаны с ограниченным-динамическим диапазоном. По- этому следует особое внимание уделять масштабированию переменных. Можно показать, что представление дробных чисел также является циклическим (рнс. 1.46) Рис. 146 Циклическое представление дробных чисел Сравнивая рис 1.45 и рнс. 1.46, приходим к выводу: одни и те же ко- довые комбинации представляют различные числа - целые и дробные. Та- ким образом, значение кодовой комбинации определяется способом ее ин- терпретации Наряду с представлением чисел в форме с фиксированной запятой, в ЦПОС широко используется форма с плавающей запятой В этом случае число представляется в виде комбинации мантиссы и порядка А' = тР", (1.239) где m -мантисса числа, л - порядок числа; Р- основание системы счисле- ния. Например 103.45-10° = 10,345-101 = 1.0345-10’ При использовании (1.239) в памяти вычислителя запоминают мантис- су н порядок. Мантисса называется нормализованной, если \/Р S т < I 0. D
этом случае в старшем числовом разряде мантиссы стоит цифра, отличная от нуля. Например, 0,10345-10’ Мантисса обычно представляется в памяти в виде дробного числа со знаком, а порядок - в виде целого числа бот знака Па рис. 1.47 показан Э2-разрядный формат представления чнСел с пла- вающей запятой, соответствующий стандарту IEEE/ANSI 754 (26,31 ]. 31 30 3 22 О S е. Зка< Cipwiiii бит Запятая Рис 1 47 32-разрядный формат представления чисел с плавающей запятой Число в 7юм формате включает знаковый бит N, 23-битовую мантиссу т». . т0 и 8-битовую экспоненту с?. . е<> Мантисса дополнительно включает скрытый единичный бит. который на рис 1 47 показан условно Данный бит расширяет точность представления мантиссы с 23-раэрядов до 24-разрядов Соответственно в этом случае значения мантиссы лежат в диапазоне от 1,0 до 2,0 Значения экспоненты находятся в диапазоне от 1 до 254. Экспонента с сои1ве1С1вует смещенному значению порядка п. т с е п + 127 Смеще- ние необходимо для того, чтобы нс хранить знак порядка Пример 1.19 Пределе им число (86.6249712)|0 е 32- рюредиом формате с пл«Ы№щей залггой 86,6249712,1(1| -+110101.001101,1,-+(|,)10101(Ю1101 2’ Мантисс* 101010011010 00000000 000 (23 бит*) Эняк 0 Экспонент* 10000)00 (+127+5) а а о I 1 0 О О О I 0 0 10'0 100 1 10 1000000000000 Диапазон представления чисел с плавающей запятой намного шире, чем диапазон представления чисел с фиксированной запятой. Поэтому представление значений в формате с плавающей запятой увеличивает точ- ность вычислений. Однако реализация арифметики с плавающей запятой сложнее. Действительно, чтобы сложить два числа в форме с плавающей запятой, необходимо сначала выровнять порядки (нормализовать числа), а затем выполнить сложение. Для умножения двух чисел в форме с плаваю- щей запятой требуется перемножить мантиссы и сложить порядки.
Элементы г горим с яги «лов систем в? . Важную роль при выборе формы представления чисел играет динами- ческий диапазон, который определяется как отношение наибольшего числа соответствующего формата к наименьшему числу Сравним динамические диапазоны 32-разрядного представления дробных чисел с фиксированной и с плавающей запятой Для формата с фиксированной запятой минимальное значение равно 2' J1, а максимальное можно записать в виде 1 2'Дина- мический диапазон равен 2” * 2,15 10’ или в логарифмическом масштабе -187 дБ Для формата с плавающей запятой (24 -разрядная мантисса и 8- разрядная экспонента) минимальное и максимальное значения примерно равны 5,88-10'“ и 3,4 10м. Соответственно динамический диапазон будет 'равен 5.79-1 О’* или 1535 дБ. Таким образом, числа с плавающей запятой обеспечивают более широкий динамический диапазон при одной и той же разрядности кодового слова Различные приложения цифровой обработки сигналов требуют разных значений динамического диапазона Для большинства телекоммуникацион- ных приложений достаточным является диапазон в 50 дБ Для высококаче- ственной обработки аудиосигналов требуется динамический диапазон в 90 дБ. 1.6.2 Квантование сигналов При реализации алгоритмов цифровой обработки числовые значения переменных из-за ограниченности разрядной сетки вычислителя представ- ляются конечным числом разрядов Я. Данная операция соитвегсiвует заме- не непрерывных значений дискретными и назыавется квантованием. Олера- шя квантован пл Q(J валяется нелинейной, те (?|л + У) * •+ Q ( У I <1 240) и вносит ошибку квантования е „ = Q ( х | - х (I 241) Эта ошибка зависит от числа используемых двоичных разрядов, формы предстэаленпл чисел и способа квантования Квантование выполняют с ис- пользованием округления или усечения При округлении исходное /п-разрядпос число заменяется ближайшим ^-разрядным числом(лп Я) Максимальная ошибка округления рвана поло- вине шага квантования Шаг квантования ч соответствует весовому коэф- фициенту младшего разряда числа, т е <р2^ Ошибка округления ео Q»(x} х удовлетворяет неравенству - Ч /2 5 ео < V/2 и не зависят от
w Глявя I формы представления чисел. Характеристига нелинейности, соответствую шая операции округления, показана на рнс I 48,а Рнс I 48 Характеристики нелинейности квантователей При усечении исходное /п-раэрядное число заменяется Я-разрядиым числом путем отбрасывания младших т-8 разрядов. Максимальная ошибка усечения меньше или рваиа шагу квантования q. Значение ошибки усечения зависит от формы представления отрицательных чисел Если используется представление в прямом коде со знаком, то ошибка усечения еу = Qy !*} - х удовлетворяет неревенствам - q <, еу < 0, если лХ), О < еу < q ,если х<0. (I 242) т.е. знак ошибки всегда противоположен знаку числа Соответствующая ха- рактеристика нелинейности квантователя показана на рис. 1.48,6. Если ис- пользуется представление в дополнительном коде, то ошибка усечения все- гда отрицательна и удовлетворяет неравенству (рис ) .48,в) - q 5 еу < О (1 243) В том случае, когда выбрено представление с плавающей запятой, квантование выполняется только для мантиссы числа. Однако абсолютное значение ошибки квантования будет зависеть также и от поралка числа По- этому прн квантовании чисел, представленных в форме с плавающей запя- той, рассматривают относительную ошибку квантования
Элементы теории см гни о в и систем »Ч £ - (I 244) Если при кеш пом ни и мантиссы используется округление, то абсолют- ная ошибка округления удовлетворяет неравенству -1.2” S(?W-,<i.2-. ц.245) где w - порядок числа Тогда, учитывая неравенство 2* 1 < х < 2”. получаем границы относительной ошибки квантования [ 16] -q < £ <q (| 246) Аналоговый сигнал х(0. подлежащий цифровой обработке, должен быть преобразован в цифровую форму Такое преобразование выполняется аналого-цифровым преобразователем (АЦЛ) в дм этапа. На первом этапе формируется дискретам последовательность = Па втором этале значение каждого отсчета х[п| квантуется и представляется числом с конечным количеством двоичных разрядов. Кмитомиие отсчетов х[л] обычно выполняется устройством, имеющим одну из характеристик не- линейности, изображенных на рис. I 48 В этом случае ошибка квантования представляется лоследомтелькостью е[л] = Q (x[nj) - х[п]. (1 247) значения которой находятся в диапазоне ~ ?/2 S е(nJ < q 2 при округлении и < 0 или 0 £ e[n] < q при усечении. Цифровые значения отсче- тов 0А1л1/ в дальнейшем подлежат обработке Из (I 247) следует, чти =Ф] + Ф] (1.248) В соответствии с (1.248) цифровые значения (7/х[л]/ представляются в виде суммы отсчетов неограниченной точности х[л] и шума кваитомння е[л] Относительно шума кваптомния обычно делают следующие допуще- ния 14,16]: е[л] является стационарным процессом, последовательность с[л| не коррелировала с последовательностью х[л]; е(л] представляет собой бе- лый шум; закон распределения е[п) является равномерным. Необходимо отмстить, что указанные допущения не всегда верны. Например, если кван- гомнию подвергается постоянный сигнал, го все ошибки е[л] будут одина-
Глава 1 ковы Тем не менее, для большинства сигналов, встречающихся на-практи- ке, они применимы [16| На рис. 1 49 изображены функции плотности ве- роятности ошибок квантования для различных способов квантования: а) для округления; б) для усечения н представления отрицательных чисел в пря- мом коде со знаком; в) для усечения и представления отрицательных чисел в дополнительном коде а) б) в) Рис 1.49 Функции плотности вероятности ошибок квантования Для приведенных распределений легко можно вычислить среднее зна- чение н дисперсию ошибки квантования Так, прн округлении /п(=0 и !) , = ч ' /12 Прн рассмотрении ошибок квантования АЦП часто используют о/пло- шение сирнал-шул! (ОСШ) ОСШ = 10 log дБ (1.249) Подставляя в (1 249) значение D. и учитывая что </=2Л получаем ОСШ = 6в + 10 log 12 . (J 250) Из (I 250) следует, что добавление одного разряда АЦП (увеличение В на единицу) улучшает отношение сигнал-шум на 6 дБ. 1.6.3 Квантование и масштабирование сигналов в цифровых фильтрах Прн реализации алгоритмов цифровой фильтрации выполняются две основные операции: сложение и умножение При сложении двух Л-разряд- ных чисел с фиксированной запятой максимальная разрядность суммы бу- дет равна В+1. При умножении двух в-разрядных чисел произведение будет иметь разрядность 2Д-1. На рис 1.50 изображен нерекурсивный фильтр, в
Элементы теории сиги ил о» и енгття 91 котором операции сложения и умножения выполняются с указанной точно- стью. 2В1 | | 20 1 2В *1П1 Рис. I 50 Разрядность в различных точках нерекурсивного фильтра. На практике нэ-за конечной разрядности регистров цифрового фильтра результаты арифметических операций представляются в-разряднымн кодо- выми словами При этом выполняются операции квантования (Q). о>ранн- чення (Р) и масштабирования. Операция квантования Q имеет место па выходе умножителей. При умножении двух дробных чисел произведение всегда будет меньше едини- цы. Представление произведения в-раэрядным кодовым словом вместо тре- буемых 2Й-1 разрядов соответствует квантованию, которое выполняется ли- бо с помощью округления, либо усечения. Операция ограничения имеет место на выходе сумматора. При сложе- нии в сумматоре двух Л-разрядных чисел их сумма может превысить мак- симально допустимое значение для Я разрядов. В этом случае происходит переполнение разрядной сетки Если числа представлены в дополнительном или обратном кодах, то переполнения в процессе многократного суммиро- вания допустимы, если результирующая сумма не превышает 1,0 Это объ- ясняется цикличностью представлений чисел в дополнительном и обратном кодах (рнс. I 46) Однако на циклической диаграмме наибольшее положи- тельное число I-2"0 н наименьшее отрицательное число -1.0 находятся ра- дом. Из-за этого характер переполнения сумматоров имеет пилообразный вид, показанный на рнс. 1.51. Рис. 1.51. Пилообразный характер переполнения сумматора
Глям I Переполнение происходит тогдв, когдв сумма входных значений сум- матора выходит за пределы интервала (-1,0; 1,0). Переполнения создают ко- лебания в фильтре и превращают его в нелинейное устройство, поэтому они крайне нежелательны и их необходимо устранять. Одним из простых спосо- бов борьбы с указанными колебаниями является использование сумматора, который имеет характеристику с насыщением (рнс. 1.52) Рнс. I 52 Характеристика сумматора с насыщением В этом случае значения на выходе сумматора ограничиваются на уровне либо 1,0, либо -1,0. Ограничение выходных значений сумматора широко применяется в цифровых фильтрах для предотвращения колебаний. С учетом изложенных особенностей операций умножения и суммиро- вания в схему цифрового фильтра, изображенную на рнс. 1.50, необходимо внести нелинейные операции квантования Q н ограничения Р (рнс. 1.53) Так как сумматор на рис. 1.53 является линейным устройством, то опе- рацию квантования можно учесть после выполнения суммирования (рнс. 1 54)
Элемгиты теории сигналов и систем VI Рис. I 54. Квантование после суммирования Пример учета операций квантования и ограничения в структурной схе- ме рекурсивного фильтра показан на рнс. I 55. Таким образом, в схемах реальных цифровых фильтров кроме линей- ных операций могут выполниться и нелинейные Иногдв это может приво- дить к возникновению в цифровых фильтрах предельных 1рмс?ок[|0,16) Предельные циклы наблюдаются на выходе рекурсивных фильтров, когда входной сигнал имеет амплитуду, близкую к нулю. Рассмотрим рекурсивный фильтр первого порядка Ял] = 4/’]-оу[л-1] , а = 0,91, (1251) в кагором выполняется квантование произведения — (рис. I 56) Определим значения выходного сигнала фильтра у[л] при нулевом сигнале ил Ьходе х[л]я0 и начальном условии где 9 * шаг квантования. Ре- зультаты вычислений приведены в таблице 1.5. Здесь произведение а ’>'(n " 1 ] округляется до целого числа уровней квантования.
Глава I Yin] Рис I 56. Рекурсивный фильтр первого порядка Таблица 1.5 - Возникновение предельным циклов ____ n -a M"l = vpl«l -1 - -7q 0 -0,91 7?- (>J7q -6q I -0,91 -6? = +5,46? +5q 2 0,91-5?---4.55? -5q 3 -0,91 5?=H,55? -5q 4 0,91 5? = -4,55? -5q L_ и Т.Д. Из приведенной таблицы видно, что через определенное число тактов в цифровом фильтре возникают колебания Амплитуда колебаний равна 5q, а частота колебаний равна половине частоты дискретизации Предельные циклы весьма нежелательны, так как на выходе фильтре должны быть нуле- вые значения при отсутствии входного сигнала Одним из эффективных приемов исключения переполнений и умень- шения ошибок квантования в системах, используюших арифметику с фик- сированной запятой, является масштабирование Масштабирование выпол- няется умножением чисел иа константу так , чтобы их значения по модулю не превышали единицы Рассмотрим цифровой фияьтр (рис. 1 57) с переда- точной функцией H(z)=b° + b':'+blZ l + atz + a,z (I 252) Передаточной функции (1.252) соответствует разностнве уравнение Ял] = Мл1 + Мп-1] + Мп-2]-цИп-1]-а1И'>-2) (I 253) При реализации данного уравнения в системах ЦОС, используюших ариф- метику с фиксированной запятой, его масштабируют (27]: лИ = ^,1л]+^д,И-,]+^Мл"2Ь<и'Ял-Ч-ЛзЛ1л-2]> (| 254) J. Ji J.
Элокяты тгоряи «гнало» и систем VJ где [л] - масштабированные последовательности у(л1 и х1л) При этом yjn] = >{n]/S, a XjJ«] = xfn]/5'3 и S = Sj -S,. Здесь х(л] подвергается масштабированию в отношении до фильтрации, а коэффициенты числи- теля масштабируются в отношении 3). Части масштабные множители пред- ставляются в виде степени числа 2, тогдв масштабирование сводится лишь к сдвигу значений При выборе масштабных множителей руководствуются некоторой мерой, определяющей общие требования к масштабированию. Обычно для этого используют L, или Li - норму, которая накладывает огра- ничения на импульсную характеристику й»[л] от входа фильтра до выяодв к- го сумматора м„ £1*. i"i|" г/м М=\,2 (1-255) Рис 1.57. Рекурсивный фияьтр второго порядка Иногдв используют норму Чебышева, которая накладывает ограничения на амплитудно-частотную характеристику Я t (д>) от входе фильтра до выходе i-ro сумматора ||//а (&>)| = шах |Л/В (&>)|. (1.256) Для фильтра, изображенного на рнс. 1.57, указанные АЧХ соответст- вуют передаточным функциям /7(2) = И*) ад’ /7,(z) = ад ад’ /72(2) = ад X(z) (1.257) Вычисленные максимальные значения меры (1.255) или (1.256) исполь- зуются в качестве масштабного множителя. При вычислении значений меры
м Глава 1 (1,255) требуется вычислять импульсные характеристики й*[л], которые яв- ляются реакциями на входной дельта-импульс <Япк фиксируемыми на вы- ходе сумматоров (рис. 1.57). Данные вычисления для /,гмеры можно вы- полнить с помощью следующего алгоритма: for /!= 0 to Мкоп уО = /1 +Л0-4л) у] = х|л]+л1 у0+у2 у2=Ь2- х|п] + о2 уО h = Л+^у| Ы = Л1 +]у1| Л2 = й2+|у2| next ft Здесь для каждого такта л вычисляются реакции уО, у !,у2 на выходе сумма- торов на входной дельта-им пульс в соответствии со структурной схемой фильтра (рис. 1.57). Вычисленные значения каждой из реакций суммируют- ся по модулю и формируются значения Л. hl. h2. Длина последовательно- стей ограничивается значением Nkon, выбираемым экспериментально. . Вычисление значений меры Чебышева можио выполнить с помощью следующего алгоритма: Р х[л) = сш( тгТ ) Р w = *0 Начммое мягчение частоты /• <Л» = <Л»0 Шаг по частоте for 1 i О to Ккоп Р к - индекс по частоте W а V + Ле for п = 0 to Nkon Р п - индекс по времени х[п] = со*( пчгТ ) Р реакции уО - у! + ЙО х[л] /1 = 61 х(п) + al -yO » у2 у2 - 62 х[п) ♦ а2 уО Р поиск максимума if 0 у0|> Н~)Леп -|/0| / U yl l> УЧмп Н1_ -|/1| ‘f (I >2|> Я2_ )then Н2~ -| у! | леи п next к
Элементы теории сигналов и систем Пример. 1.20 Пусть £(1=2,0595, £1=0,4262, £7“ -1,6324, аг* -0,9524, а7’Ч),7(М7 В результтге вы- числений получаем iMi'16.5 ||A,|h-M,4 ll*;i:i-U,J и |Wi=I2,3 |[//,||=IO,5 ИН-=10,J Выбрав нт полученных значений максимальное и округлив его до ближайшего числа, валяющегося степенью двух, получим масштабирующий коэффициент 5*16 F.c- ли Предположить, что входная последовательность хр>] формируется с поьюшью 12- разрядного АЦП, а фильтр использует 16-разрядную арифметику с фиксирован ной запа- той, то при размещении 12-рвзрядного слова в младших разрядах 16-раз рядно го слова, получим масштабирующий коэффициент 51=9-2* Тая как 5 = 5, 5,, го 5\=2 Коэффи- циенты фильтра после масштабирован их будут равны £(Г1,0293 ,£1’0,2131 . £,” -0,9162, о,- -0.9524 , <>,=0,7047 Коэффициент Ьа не ьюжет быть представлен в форме дробного числа с фиксиро- ванной запятой Поэтому ои дополнительно масштабируется £( =£(/2 = 0,5147 Для того чтобы значение произведения £'д-л(л] сои iseivi кокало £„ л[л], требуется до- полнительная коррекция После вычисления Ьа х(/>] необходимо сдвинуть полученное произведение влево их одни раз рвя 1.6,4 Масштабирование сигналов при вычислении БПФ Покажем, что при вычислении БПФ в процессорах с фиксированной запятой также возможны переполнения Из теоремы Парсеваля [I] следует, что *[*л2 л <» 1 <! (1 258) Перепишем (1 258) в виде N-IJ/N ^x3[«)] = [l/N-£|A'[*)l4. лМ' (I 259) т е. средний квадрат спектральных составляющих в N раз больше, чем сред- ний квадрат отсчетов входного сигнала д{л] Поэтому при вычислении БПФ в процессорах с фиксированной запятой могут происходить переполнения
Luu 1 Для того чтобы выяснить как могут возникать переполнения, рас- смотрим базовую операцию БПФ - "бабочка”, выполняемую на m-ом этапе БПФ (рис 1.5 В.): Q-.y = P-~W*Q., (1260) С целью упрощения выражения (1.260) ик- дексА при переменных Ри Q не показан Все переменные, входящие в выраже- ние, являются комолекснымн. Введем сле- дующие обозначения для действительных и мнимых частей переменных выражения (I 260) =С05(2лА/N}-_/sin(2rtA/tf) = cos(x)-ysin(x). (1.261) Ря=РЯ + уР/. Q„=QR* jQ! ч (1 262) где х = 2лА / N „ PRhQR обозначают соответственно действительные части переменных Р и О .Pi и (2/ -мнимые части переменных Р» Q Подставив (I 261) н (1 262) в (1.260), получим Pit,, =(PP+IPPcos(T)+^/sin(T)])+y{P/+I^/cos(T)-^/!sin(T)]), (1.263) G/H=(p/?-(C>PcosW+C>/sinW])+;(P/-Ip/cos(c)-^/isinW]). (1.264) Если при вычислении “бабочки” в ЦПОС с фиксированной точкой значения входных переменных PR,Pi.()R,()i представляются в форме дроб- ных чисел, лежащих в диапазоне от -1 до +1, то действительные и мнимые части результирующих переменных в (1.263) н (1,264) могут иметь макси- мальные значения, выходящие за указанный диапазон. Например, макси- мальное значение действительной части переменной Ряи равно: [PR+IQR-cos(T)+£/-sin(r)]}=l + l cos(r/4) + l sin(r/4)«2,4142 Аналогичные максимальные значения могут иметь н другие состав- ляющие в выражениях (I 263) и (1 264) Чтобы исключить указанные переполнения, на каждом этапе БПФ не- обходимо выполнять масштабирование с коэффициентом 2 Так как при вы- числении БПФ реализуется М-этапов, то выходные значения спектральных коэффициентов будут уменьшены в 2“ = Ураз , где N- длина последова- тельности Эго соответствует общему требованию к масштабированию, оп-
Элементы теории сигналов и систем 99 определяемому выражением (I 259). Конкретный пример реализации мас- штабирования сигналов при вычислении БПФ будет рассмотрен при реали- зации алгоритмов БПФ для ЦПОС с фиксированной запятой TMS32OC2x. 1.7 Многомерные дискретные сигналы и системы 1.7.1 Двумерные дискретные сигналы Многомерный сигнал описывается функцией М независимых перемен- ных (М а 2). В настоящем разделе речь пойдет о двумерных сигналах, кото- рые получили широкое распространение на практике. Дальнейшее повыше- ние размерности сигналов в большинстве случаев может быть выполнено формальным расширением приведенных ниже формул. Двумерный дискретный сигнач - это функция x[n;,nj |, определенная на множестве упорядоченных пар целых чисел л/ и л;, -х<л,.л;<х Такне сиг- налы часто называют двумерными последовательностями или массивами Двумерный дискретный сигнал может предстаалятъ собой дискретизи- рованный непрерывный двумерный сигнал xfti.ttf, т е х[и>, т] = х[ Л1Гп2Т z] = x(/i, / г )|„=Я1 U .265) Значения отсчетов в точке [п/'Г^пД J могут быть вещественными или ком- плексными. Интервалы дискретизации 7) и Т? могут отображаться про- странственными пли временными переменными. Существует несколько способов дискретизации двумерных сигналов [7]. Рассмотрим наиболее простой способ дискретизации по прямоугольно- му растру. В этом случае последовательность х(и/.Л1] получается из непре- рывного двумерного сигнала путем взятия отсчетов в узлах прямо- угольной сетки, отстоящих друг от друга соответственно иа интервалы дис- кретизации Т; н Т; Рассмотренная ранее теорема дискретизации одномерных сигналов может быть обобщена на случай двумерных сигналов. Функция двук пере- менных t). для которой двумерное преобразование Фурье равно нулю прн Ш1 >й>}8 и >д>ш. однозначно определяется своими значениями в рав- номерно отстоящих точках плоскости fl/.tj. если интервалы дискретизации удовлетворяют условиям Tlsx/a>te, Тцк/<й]в- Аналогично одномерному случаю спектр дискретного сигнала х[пу,л;] будет периодической функцией частот a>i и <oj. Повторяющиеся копии спектров не будут накладываться, если соблюдаются условия теоремы дис- кретизации.
100 I jmm I Рассмотрим некоторые двумерные последовательности, которые часто используются на практике. Единичный двумерный импульс определяется следующим образом: <S(nitniJ= <S(ni = 1, m = ni = 0, 0, в остальных случаях. (1266) Условное графическое представление двумерного импульса показано на рис. 1 59. < Рис 1.59. Двумерный импульс cSpif.nj] Единичный скачок u[ni, П1] = u[ni] • u[ni) = I, о, к при П1,П2 > О в остальных случаях. (1 267) Единичный скачок отличен от нуля в одном квадранте плоскости (л;,л?). Экспоненциальная последовательность определяется следующим об- разом х[П1,П2] = fl"1 • Ь"2 _ -т<я;.л7<*. (1268) где a, h - комплексные числа. В частном случае, когда а — ‘ и О = е , экспоненциальная последовательность представляет комплекс- ную синусоиду. Любую двумерную последовательность, которую новою представить в виде л[л I, п г J = х[п i] х(П| J , (1.269) называют разделимой. Последовательности (1.256)...(1.268) являются раз- делимыми.
Заемемты теория сигналов и систем 101 Диапазон значений индексов nt и л>, для которого двумерная последо- вательность отлична от нуля, называют опорной областью Обычно на прак- тике рассматривают последовательности конечной протяженности, которые ОТЛИЧНЫ ОТ НуЛЯ ВНуГрН ПрЯМОугОЛЬНИКа OS л, 0<n(<W»-l или крута радиусом Я 2 7">* *"1 Важным классом двумерных сигналов являются периодические дву- мерные последовательности Периодический двумерный скгная должен по- вторяться сразу в двух направлениях. Периодом последонательности х на- зывается область плоскости (л/.лД содержащая N, отсчетов, если зна- чения отсчетов, входящих в эту область, периодически повторяются. Наи- более простой формой периода на плоскости (л/.л?) является прямоуголь- ник. Однако период может иметь и другие формы [7]. 1.7.2 Двумерные дискретные системы Двумерная дискретная система выполняет преобразование входной по- следовательности xpij.nJ в выходную последовательность у|л,.л.] Обоэпа- Ш оператор преобразования системы через /.(.). Двумерная система линейна. если соблюдается принцип суперпозиции, Ve. ?' Ца, хДл,,п2] + а, х^п,,%]) = а, Д(хДл;,л,]) + о, L(дг2[л;,л,]).(| 270) ;Она является инвариантной к сдвигу. если Ип, -fflj} (I 271) Входная х[л/.л;] и выходная ИлллЯ последовательности инвариантной вумерной линейной дискретной системы (ИДЛДС) связаны уравнением вертки ИЛрЛ11= S £*[«,.«21 Л1",-«!.«!-"М, (1 272) где Л[ллл2] - импульсная характеристика двумерной системы, являющаяся откликом ИДЛДС на единичный импульс (1.266). Выражение (1,272) путем замены переменных можно переписать в симметричной форме: Z Z(1.273)
102 Г ЛА» I Операцию двумерной сеертки иногда обозначают двойной звездочкой ** Тогда выражения (1.272) н (1.273) можно записать в виде: 3'1л,.л1]= й[п1,п]]*’х[л,,л1] . (1274) Разделимой называется ИДЛДС, импульсный отклик которой является разделимой последовательностью Л[л, ,л, ] = й[л, ]Л[П; ] . (1.275) Большой интерес представляют устойчивые двумерные дискретные системы. ИДЛДС устойчива, если се выходная последовательность остает- ся ограниченной для любой ограниченной входной последовательности Необходимым и достаточным условием устойчивости ИДЛДС является ог- раниченность суммы ® в X X ® .. (1.276) Л| т —в л j —® Несмотря на сходство соотношений (1.276) н (1.208), исследование ус- тойчивости двумерных систем значительно сложнее, чем одномерных Частотные характеристики ИДЛДС можно получить, рассматривая ИДЛДС с импульсной характеристикой Apij.n;] и входным сигнаяом, пред- ставляющим комплексную синусоиду вида ехР< (1.277) где а>1. и>з - соответственно горизонтальная н вертикальная пространствен- ные частоты. Выходной енгная ИДЛДС можно выразить через свертку (1.273) как Я",.".]- Ё .....' = х . (1 278) где я(г'-,«'-)- Ё . (|2М) Ж| —® /Я j частотная характеристика ИДЛДС. Такны образом, выходной енгная ИДЛДС представляет собой комплексную снпусоиду, умноженную па час-
Элементы теории тнгихло» систем 10) тотную характеристику Я(е/<“',е;“:) Частотная характеристика является - периодической функцией двух переменных . По каждой из указанных переменных период равен 2л. Выражение (1 279) представляет разложение непрерывной двумерной функции ,е/а>‘) в двумерный ряд Фурье. Возможно и обратное преобразование, те. импульсная характеристика может быть найдена по частотной характеристике Н (eJW| ,е'а') с использованием выражения для определения коэффициентов ряда Фурье (1280) На рнс.'3.8 показан пример импульсной и частотной характеристики дву- мерного фильтра нижних частот. Аналогично одномерным системам выходной и входной сигналы ИДЛ ДС связаны разностным уравнением .V1-IV14 .Vi-I.VH где «[и/./п;], />[л7;,т;] - матрицы коэффициентов, которые определяют пе- редаточную функцию двумерного рекурсивного фильтра Передаточная функция ИДЛДС определяется выражением w(-i.-i)= X '-1 ' . (1.282) Формула (1.282) представляет двумерное Z-преобразованис функции те. W(z,,z2) (1.283) Выполнив двумерное Z-преобраэованне выражения (1.281), получим где Afa :г). H(:t. zj - z-преобраэования матриц коэффициентов о[т,.тг] н Если все коэффициенты за исключением а[0,0]=1, то из (1281) следует ^[Я1.Л21= £ S Ь[«1.«2 ] «2 ] (1.285) -0-J (!
1IU Глава! Уравнение (1 285) определяет нерекурсивный двумерный фильтр В общем случае пределы суммирования в (1.281) и (1 285) определяют- ся выбранными опорными областями. Заданная в (I 281) опорная область, соответствующая положительным значениям индексов mi. т,. называется каузальной опорной областью. Ранее рассматривались физически реализуемые одномерные ЛДС. для которых выполнялось условие Л[л] < 0 при л < 0 Эго было физически обосновано, так как координата п соответствовала времени. Для двумерных систем, где обе координаты л/ и л.> могут являться пространственными переменными, на значение Л[л(, mj] при л,. nj < 0 может не накладываться ограничение Л[л(. п;] = 0. В этом случае получают опорные области, отличные от каузальной. Для ИДЛДС, определенной в каузальной опорной области, условие устойчивости записывается следующим образом * * Z Z |Л[п,,лЛ < « (UM) rf ( ? f| ft J : <1 Если рассматривается нерекурсивный фильтр (1 285). то условие (1.286) выполняется всегдв Для рекурсивных двумерных фильтров можно сформулировать услоаня устойчивости, сходные с условиями устойчивости одномерных фильтров Впервые эти условия были сформулированы Шэнксом в виде теоремы [7] Пусть пера даточная функция W(zi.zi)= l/5(zi,z:) соответствует ре- курсивному фильтру, определенному в каузальной области. Такой фильтр устойчив тогдв н только тогдв, когда S(?i, zi)^0 для любой ТОЧКИ (ZpZj), такой что |zi| I или |гз| 2 I Однако практическое применение этой теоремы затруднено Поэтому в общем случае исследование устойчи- вости двумерного рекурсивного фильтра является достаточно сложной за- дачей Ряд тестов проверки устойчивости приведен в [7] 1.7.3 Дискретно-непрерывное преобразование Фурье двумерных сип голов Введенное ранее выражение (1.280) для определения импульсной ха- рактеристики можно применить для представления произвольной периодической последовательности х[лг. nJ.
Элементы теории сапилое w систем 105 ^,«J = j(1287) Здесь комплексная функция Л((е;‘и',ву“1) определяет ваучерное оис- кретно-непрерывнос преобразование Фурье (ДДНПФ) х(е"'.«'-')- 2 . (|.2М) Л» “ -X П . = X Для двумерного преобрази ван ня Фурье характерны следующие основ- ные свойства, которые во многом аналогичны свойствам одномерного пре- образования Линейность: fllxJnpn2] + fl1x2[npnJ]wfllA'l(^0',ey,u,)+a2A'2(ey“'.eye,i). и 289) Пространственный сдвиг: x[n, - /и,,л2 - /л, I <-> Л'(е'“,,е": ) (1.290) Задержка последовательности х[л/.л;| па пц н т2 отсчетов по каждому из измерений соответствует умножению ее преобразования Фурье на /"Im2 множитель с Модуляции: х[л|,л2]-е"11'"’'4’'’' ох(е'1*' (1.29]) Умножение последовательности х(лг.л2] на комплексную экспоненту соот- ветствует сдвигу преобразования Фурье. Свсрткв: ЛКЛуГМярЯ,]** Н(е'\е'ш‘)-х(е'\е/вг>) (1 292) Свертке последовательностей лД н х[л;,nJ соответствует умножение их преобразований Фурье Т ранелопнрованне: x[n2,nj<+ x(e,a'1 (1.293)
106 Глава I Для естественной последовательности x[nr.nj справедливы следую- щие соотношения: (12«) КеЩе'*',<>'"’)]= Re[x(e'"'.e'“’)j, (1ЭТ5> (I 296) Вещественная часть преобразования Фурье обладает четной симметри- ей, мнимая часть - нечетной 1,7.4 Двумернее дискретное преобразование Фурье Рассмотрим двумерную периодическую последовательность х[л(.л2] с периодом Nt в одном измерении и - в другом, т е, XflpHjs л[п, + /V,,n2 +/VJ (I 297) Для последовательности, полностью определенной в опорной области 05П]£Л/|-1 и 0< Л; SA\ - I, двумерный дискретный ряд Фурье мож- но записать следующим образом: У' ' , (,298) где коэффициенты ряда ЛЦ/.АЯ определяются с помощью выражения 1 ’Vi1 ~1" ~ я1*‘ * “я‘1 £ £ xh.-nj-e (1.299) », я|) л. -о Соотношение (1 299) называют Лву.черлым дискретным преобразова- нием Фурье (ДДПФ), а (1.298) двумерным обратным преобразованием Фурье (ДОДПФ) Двумерная последовательность АЦ/.А?] является периодической с пе- риодами Л\. А; в соответствующих измерениях. Для вычисления всех зна- чений последовательности АЦ/,*;] требуется выполнить (А/ЛА)3 комплекс- ных операций сложения и умножения С целью сокращения количества операций можно применить одномерные алгоритмы БПФ Перепишем (I 299) в виде
Элемент» тторнн гигикпов и сясттм 107 Л,-| .,21 •*'[*,.*21= ' л, еО £ х[я,,я2J-е (1.300) Сумма в квадратных скобках представляет одномерное дискретное преобра- зование Фурье одного столбца массива х[л;.п,] Обозначим сумму в квад- ратных скобках через ЛЦлД;|, тогдв Х[*,Д2]= N> (ПОП л,-U Соотношение (1.301) также представляет одномерное дискретное пре- образование Фурье, но в другом измерении Таким образом, для определе- ния значений необходимо вычислить N3 одномерных ДПФ по столбцам массива исходных данных, а затем одномерных ДПФ по стро- кам промежуточного массива Л'Дп'./н). Применив для вычисления каждого одномерного ДПФ алгоритм БПФ. можно сократить число операций до NtNjlog 3 NfNj. Большинство свойств одномерного дискретного преобразования Фурье легко обобщаются па случай ДДПФ и соответствуют свойствам двумерного дискретно-не прерывного преобразования Фурье. При этом необходимо учи- тывать периодичность х(п<п;]. В частности, для ДДПФ справедлива тео- рема о циклической свартке. Если A]Af,h] и являются ДДПФ после- довательностей х[л(. Л;] и h[nt. п,<] и 0 £ А,,п, £ - 1 0< *;.л, < N2 - I то Г(*,.*2]= (, 302) соответствует циклической двумерной свертке, задаваемой формулой \'i -1¥, I -«мЛ, - mJ (1 303) а, Здесь последовательность у^л,.л;| будет периодической с периодами Nt и Nj. Отсюда следует, что двумерная циклическая свертка, аналогично одно- мерному случаю, может быть вычислена с использованием (1 302) по мето- ду быстрой свертки на основе алгоритма БПФ Линейную свертку можно получить на основе (1.302), дополнив масси- вы x[nj,nJ и А[л/.л;] необходимым числом нулей
Глава 2 ЦИФРОВОЙ СПЕКТРАЛЬНЫЙ АНАЛИЗ 2.1 Назначение спектрального анализа Спектральный анализ - это метол обработки сигналов, который позволяет выявить частотный состав сигнала. Поскольку анализируемые сигналы во многих случаях имеют случайный характер, то важную роль в спектральном анализе играют методы математической статистики. Частотный состав сигналов определяют путем вычисления опенок спектральной плотности мощности (СПМ). Задачами вычисления СПМ являются обнаружение гармонических составляющих в анализируемом сигнале и оценивание их параметров. Для решения указанных задач требуется соответственно высокая разрешающая способность но частоте н высокая статистическая точность оценивания параметров Оги два требования ггротиворечивы Аргументы в пользу выбора высокого разрешения или высокой точности оценки СПМ зависят от того, что интересует исследователя: устойчивые оценки в лределвл всего диапазона частот или высокая степень обнаруживаем ости периодических составляющих. Пусть последовательность х[п] представляет собой дискретный случайный процесс Обозначим через /: действительное значение некоторого параметра случайного процесса х[л] D результате обработки случайного процесса вычисляется не действительное значение Е параметра, а его оценка, обозначаемая Е. Оценки являются случайными величинами и характеризуются следующими свойствами. Смещением оценки называют математическое ожидание отклонения оценки Ё от действительного значения Е [2]: Ь\Ё} = М{Ё-Е\. (2.1) Оценка F. является смешенной, если » 0.
Цифровом спектральный пилю ЮТ Квадрат среоисквааратическои ошибки оценивания определяется С помощью формулы ? = W((£-Е)1) = ОД + *31£] (2.2) Оценка, которая сходятся по вероятности к оцениваемой характеристике прн бесконечном увеличении длины W анализируемой последовательности, называется состоятельной, т е р(| Е- Е)|-> I при Л/ -> со , (2 з) где р - вероятность того, что модуль отклонения оценки от действительного значения оцениваемого параметра будет меньше сколь угодно малого положительного числа ь> Для выполнения этого требования достаточно, чтобы среднеквадрэтическва ошибка стремилась к нулю при М -> о> В соответствии с (2 2) оценка будет состоятельной, если ее дисперсия стремится к нулю при №-*<*> и опа является несмещенной. Прн оценивании параметров случайных последовательностей желательно использовать состоятельные опенки Все методы цифрового спектрального анализа можно разделить на две группы [II]: классические методы, базирующиеся на использовании преобразований Фурье, н методы параметрического моделирования, в которых выбирается некоторая линейная модель формирующего фильтра и оцениваются его параметры К первой группе относят корреляционный и периодограммные методы Ко второй группе относят методы оценивания СПМ на основе авторагрессни скользящего среднего и др Рассмотрим некоторые из указанных методов спектрального анализа 2.2 Периодограммный метод Периодограммкый метод обеспечивает вычисление оценки СПМ непосредственно по числовой последовательности х(лГв], формируемой путем дискретизации стационарного эргодического случайного процесса xfi). Периодограммная оценка СПМ равна [II] 5x(<U) = (2.4) Выражение (2.4) соответствует рассмотренной ранее возможности вычисления СПМ с помощью преобразования Фурье непосредственно по реализации исходного сигнала (1. 141)
ПО Глды Z Вычисленная с помощью (2.4) еще юга С Г ГМ является несостоятельной, т.е с увеличением N она не улучшается. Для получения состоятельной оценки се необходимо сглаживать Кроме этого, при выполнении преобразования Фурье последовательности х[л70] конечной длины Л' происходит «размывание» спектра, которое также оказывает влияние на состоятельность оценки СПМ. Ограничение последовательности х[л7^ конечным числом значений равносильно умножению исходной бесконечной последовательности х^и/о) на другую последовательность I, osn<;v-i ЦлТо) = [О, в остальных случаях. (25) которую называют прямоугольным окном Тогдв можно записать: л[лТо] = Хо[лТо]и]лТи] (2,6) Преобразование Фурье последовательности х[л7'0) равно свертке преобразований Фурье последовательности хо[л/е] и прямоугольного окна 1*(л7о]: %(й>) = Хо(й>) • И^(а>)' где №(&) = Тое - /«Г sin(A'a?7\>/2) sin(d> Ти/2) (2.7) (28) Функция W(tu), называем вл ядром Дирихле (рнс22,а), искажает преобразование Фурье Хо(ш\ Поэтому Х(ш) является искаженной копией преобразования Фурье Xtfw) бесконечной последовательности Хф(л7'0] Влияние прямоугольного окна на определение спектра дискретной косинусоиды с частотой показано на рнс. 2.1. Из рнс,2 ) видно, что острые спектральные пики последовательности Ъ(я7'о] расширились за счет их свертки со спектром окна н^и], а также появились дополнительные составляющие, те. происходит утечка знергнн спектральных пиков в боковые лепестки [2,11]. Боковые лепестки изменяют (искажают) амплитуду соседних спектральных пипов, что приводит к смещению оценки и к маскировке слабых спектральных составляющих. С целью устранения указанного явления необходимо применять меры по локализации энергии у спектральных пиков. Для этого х»[пТ0] умножают на соответствующим образом подобранное окно ж(л], которое позволяет
Цифровой спектряльвый ЯНЯЯНТ III снизить уровень боковых лепестков по сравнению со случаен прямоугольного окна. Однако это приводит к расширению основного лепестка, что ухудшает разрешение спектральных составляющих. Поэтому должен существовать компромисс между шириной основного лепестка и Рис. 2.1. Размывание спектра: а) нсходиал бесконечная последова- тельность; б) модуль преобразования Фурье от хо[пТо]; в) последова- тельность Хо[пТо], умноженная на прямоугольное окно; г) модуль преобразования Фурье последовательности х(пТ0] Ниже приведены определения часто используемых оконных функций ж(п], где - Njl N'2- I (2,4,6,11]. Треугольное окно (рис. 2.2,6) иЛ]=1-И (2.9) Окно Ханна (косинус квадрат) (рис 2 2,в)
IH Г лям 2 При выборе оконных функций используются следующие параметры ширина основного лепестка, максимальный уровень боковых лепестков, скорость спадания уровня боковых лепестков. В табл 2.1 приведены основные параметры окон, применяемых в спектральном анализе [6,11]. Таблица 2.1 - Параметры окон Окно Максимальный уровень боковых лепестков, дБ Скорость спадания, дБ/октава Ширина основного лепестка Прямоугольное -13,3 -6 0,89 Треугольное _ _ -26,5 -12 1,28 Окно Хална -31,5 -18 1.44 Окно Хеммннга -43 -6 1,30 Окно Блэкмана -58,2 -18 1,64 Окно Гаусса 42 -6 1.33 Здесь ширина основного лепестка определена на уровне 3 дБ ниже его максимума и измерена в единицах разрешения преобраэованал Фурье, т е. 2nlN, где N - длина окна. Для повышения состоятельности оценки (2.4) выполняют сС сглаживание. Имеется несколько методов сглаживания: Даньелла, Бартлетта, Узлча[11]. Метод Даньелла основан на осреднении значений СПМ в пределах смежных спектральных частот. В соответствии с методом Картлетта состоятельность оценки СПМ повышают усреднением оценок СПМ коротких реализаций, полученных из одной реализации длиной N отсчетов. Пусть дана реализация длиной У отсчетов Она разбивается на п, неперскрывающнхся сегментов, длиной N,-Nn, отсчетов. Для каждого сегмента по формуле (2 4) вычисляется выборочная оценка СПМ. Сглаженная оценка СПМ получается путем усреднения по всем л, сегментам > = (2 16) ,.1 Если последовательность х[л] представляет нормальный стационарный эргодический процесс, то сглаженная оценка имеет дисперсию обратно пропорциональную числу сегментов л,. Спектральное разрешение оценки задается приближенным равенством
Цифровой спектральный анализ 115 fias Д<= 1/(МТп) (2 ]7) В методе Уэлча подход Бартлетта применяется к перекрывающимся сегментам исходной последовательности х|п], и каждый сегмент взвешивается с помощью оконной функции для уменьшения смещения оценок из-за эффекта «просачивания» энергии в боковые лепестки Цель перекрытия сегментов - увеличить число усредняемых участков прн фиксированной длине последовательности и тем самым повысить точность опенок СПМ. Метод Уэлча - один из самых распространенных периодограммных методов [II]. Обозначим через AN величину сдвига между сегментами, которая должна удовлетворять условию AN ~ г еия/Ти. где г п« - максимальное время корреляции анализируемого процесса. При выполнении этого условия получим Р = ш1[(Л/ - A/.)/iV +1] слабо коррелированных сегментов Отсчеты каждого сегмента взвешиваются окном wpi] х4л1 = -+ pAN\. О < л < .V. - I, О S р < Р - 1 (2 18) Выборочное значение СПМ сегмента р оценивается по формуле $/"(*) = -тЦН* ‘'‘М’- (2.19) где У , - I - I “ яТ о X < ' ' (ш ) = Т X , [ п 1 е (2 20) я ft « = Т ° X * 1 [я 1 . (2 21) я о Сглаженная оценка периодограммы Уайча вычисляется по формуле S,(<y) = . (2 22) Введение перекрытия сегментов в методе Уэлча позволяет уменьшить изменчивость оценки СПМ. Так же как н в методе Бартлетта, дисперсия оценки СПМ по методу Уэлча обратно пропорционляьна числу сегментов Но благодаря большему числу сегментов, значение дисперсии будет меньше.
IH Г лям 2 При выборе оконных функций используются следующие параметры ширина основного лепестка, максимальный уровень боковых лепестков, скорость спадания уровня боковых лепестков. В табл 2.1 приведены основные параметры окон, применяемых в спектральном анализе [6,11]. Таблица 2.1 - Параметры окоп Окно Максимальный уровень боковых лепестков, дБ Скорость спадания, дБ/октава Ширина основного лепестка Прямоугольное -13,3 -6 0,89 Треугольное _ _ -26,5 -12 1,28 Окно Хална 31,5 -18 1,44 Окно Хемминга -43 -6 1,30 Окно Блэкмана -58,2 -18 1.64 Окно Гаусса 42 -6 1.33 Здесь ширина основного лепестка определена на уровне 3 дБ ниже его максимума и измерена в единицах разрешения преобразованал Фурье, т е. InJN, где N - длина окна. Для повышения состоятельности оценки (2.4) выполняют ее сглаживание. Имеется несколько методов сглаживания: Даньелла, Бартлетта, Уэлча [I1]. Метод Даньелла основан на осреднении значений СПМ в пределах смсятных спектральных частот. В соответствии с методом Бартлетта состоятельность оценки СПМ повышают усреднением оценок СПМ коротких реализаций, полученных из одной реализации дииной N отсчетов. Пусть дана реализация длиной N отсчетов Она разбивается на п, нсперскрывающихся сегментов, длиной отсчетов. Для каждого сегмента по формуле (2 4) вычисляется выборочная оценка СПМ Сглаженная оценка СПМ получается путем усреднения по всем л, сегментам ) = —£ 5т(й) ) (2 16) Если последовательность х[п] представляет нормальный стационарный эргодлческий процесс, то сглаженная оценка имеет дисперсию обратно пропорциональную числу сегментов л,. Спектральное разрешение оценки задается приближенным равенством
Цифровой спектральный янялит 115 Д<= 1/(МТо) (2 17) В методе Уэлча подход Бартлетта применяется к перекрывающимся сегментам исходной последовательности xpi], и каждый сегмент взвешивается с помощью оконной функции для уменьшения смещения оценок из-за эффекта «просачивания» энергии в боковые лепестки Цель перекрытия сегментов - увеличить число усредняемых участков при фиксированной длине последовательности и тем самым повысить точность .опенок СПМ. Метод Уэлча - один из самых распространенных периодограмм ных методов [II]. Обозначим через величину сдвига между сегментами, которая должна удовлетворять условию ДМ = гш/7'и до г«« - максимальное Время корреляции анализируемого процесса. При выполнении этого условия получим Р = int((W - +1] слабо коррелированных сегментов. Отсчеты каждого сегмента взвешиваются окном *|и|- *4Л] = 4Л + Р^\. 0<я<У,-|, 0 < р < Р - I (2 18) Выборочное значение СПМ сегмента р оценивается по формуле 5?',,“,=^и,'’,а’>г (2”> где Л , - I лГ X 1 ” (а> )= Т х,[п ]е (2 20) я • О “ = Т w 1 (2 21) ft - о Сглаженная оценка периодограммы У алча вычисляется по формуле 5Д<у ) = $/'*(« ) . (2 22) Введение перекрытия сегментов в методе Уэлча позволяет уменьшить изменчивость оценки СПМ. Так же как и в методе Барт лен а, дисперсия оценки СПМ по методу Уэлча обратно пропорциональна числу сегментов Но благодаря большему числу сегментов, значение дисперсии будет меньше.
116 Глава 2 2.3 Спектральный анализ, основанный на параметрическом моделировании В соответствии с методами параметрического линейною моделирования [4.11) случайная последовательность х[л] может быть достаточно хорошо представлена (аппроксимирована) другой последовательностью л[п] Г У Ял] = -£о[*Мп-*] + £ВДи(п-*] л(0]=1. • (2 23) 1*0 Уравнение (2.23) соответствует уравнению линейного дискретного фильтра. Поэтому х[п) обычно интерпретируют как процесс на выходе фильтра, на вход которого подается ненаблюдаемая последовательность и[л]. Обычно полагают, что м[л] является белым шумом с нулевым средним значением и дисперсией 1\. Выражение (2.23) называют моделью авторегрессии со скользящи.» средни.» (APCС - моделью) Здесь параметры <т[&] характеризуют авторегрессионную (АР) часть модели, а параметры 6 [/с] - соответствуют скользящему среднему (СС). Задача оценивания СПМ с помощью (2.23) состоит в опредаяенни параметров модели apt] и A[jt] таким образом, чтобы ошибка е(л] = |4п]-$[л]| (2 24) была мала. Тогда СПМ последовательности х[л] можно вычислить по формуле S»(<y) = D* В(а>) А(ш) (2.25) где В(йз) = |B(z)|, .4(<у) = |4(z)| при z =схр(У(УГо). Если в уравнении (2.23) положить все АР-коэффииненты равными нулю, то получим модель Я") = - *). (226) ь *и которую называют .моделью скользящего среднего (СС-модель). Полагая, чти в уравнении (2 23) равны нулю все коэффициенты Apt] (за исключением Л[0]=1), получим авторегрессионную модель (АР-модель)
Цифроч>Д спектральный ihlihi 117 Мл] = -£ а(*)-'(л- 4] + и[л] . (2 27) А-I СС-модель и АР-модель могут быть использованы для вычисления СПМ последовательности i[n|, если в (2 25) соответственно положить А(а>)=1 или В(ш)=\ Все три модели могут применяться в задачах спектрального анализа, но схемы вычислений с использованием АР- моделей являются наиболее простыми Потгому ниже рассмотрим определение только параметров АР-модели Умножим обе части уравнения (2 27) на у]л-/п] и определим мате магическое ожидание обеих частей. Прн зтом получим A/{MnJs[n - /п]} = mH" - *]} + Л/(ц[лИп - я]} (2.28) Поскольку М{4п1Мп " ">]) = Ч">1 (2 29) н Л/(з[л - - ">]) = rt]m - А], (2 30) где г,[п>] - автокорреляцноннал функция последовательности s(n], то п[/п] = -£а[*]гфя - А] + г„,[т] з-| (231) где ru|n] - взаимная корреляционная функция между аяодом и выходом АР-модели (2.23) Поскольку и[л] - белый шум, то г 1 /0. г«[т]= т > 0 т = 0 (2.32) Отсюда получасы уравнение, связывающее автокорреляционную последовательность с параметрами АР-моделн: ы < . *-i т > 0, т = 0. (2.33)
не Глава 2 Записав (2.33) для различных значений индексов т (О^т^Р), получим систему линейных алгебраических уравнений, которую можно представить в матричной форме: >40] г,[1] ч-n 40] /[р] Г‘[р -1] (2.34) Уравнения, образующие систему (2.34), называются нормальными уравнениями Юла Уолкера для АР-модалн [4,]]). Если известна автокорреляционная последовательность г,[тя), то АР-ларамстры могут быть найдены из (2.34), Матрица, входящая в (2.34), является симметричной и тбплнцевой (матрица называется тбплнцевой, если все ее элементы, расположенные на каждой диагонали, равны). Это позволяет использовать для рашення системы (2.34) эффективный алгоритм, называемый алгоритмом Левинсона [II]. Отметим, что решение системы (2.34) требует предварительного вычисления автокорреляционной последовательности г,[т]. Рис 2 3 СПМ сигнала, состоящего из 4-х спектральных составляющих Одна из причин применения параметрических моделей - возможность построения оценок СПМ в виде функциональных зависимостей, а также возможность получения более гладких оценок. Однако этими оценками необходимо пользоваться весьма осторожно, так как их свойства в
Цифровой спектральный янвант 119 значительной степени определяются адекватностью выбранной параметрической модели (2.27) анализируемому процессу В качестве примера на рис.2 3 изображены графики СПМ сигнала, содержащего четыре спектральные составляющие. Вычисление СПМ выполнялось на основе решения системы (2 34) Из рис.2 3 следует, что в случае р=11 АР-модель является неадекватной исследуемому сигналу, так как по графику СПМ нельзя правильно восстановить структуру сигнала. Все четыре составляющие обнаруживаются, если р=31 Правильный выбор порядка модели требует дополнительной информации о характере исследуемого сигнала. В дальнейшем рассмотрим применение параметрических моделей при анализе речи.
Глава J СИНТЕЗ ЦИФРОВЫХ ФИЛЬТРОВ 3.1 Синтез нерекурсивных цифровых фильтров 3,1.1 Основные виды н свойства нерекурсивных фильтров Синтез нерекурсивных фильтров (НРФ) состоит в определении им- пульсной характеристики фильтра Й[А], обеспечивающей выполнение тре- бований, предъявляемых к фильтру Обычно эти требования задаются в ви- де желаемых частотных характеристик. Импульсная характеристика й[А] НРФ является конечной и определяется для значений к , лежащих в диапа- зоне [О,N -I]. Синтез НРФ предусматривает выполнение следующих ос- новных этапов; I) определение числа коэффициентов фильтра N , 2) выбор метода синтеза, минимизирующего отклонение между желае- мыми и реальными характеристиками фильтров, 3) вычисление коэффициентов НРФ в соответствии с выбранным мето- дом. Напомним, что для НРФ коэффицие1гты фильтра Ь[1г] равны отсчетам импульсной характеристики й[А ]; 4) анализ результатов синтеза и принятие решений относительно свойств синтезирован и ого фильтра. Если результаты синтеза не удовлетво- ряют заданным требованиям, то выполняют повторный синтез при других значениях N или выбирают другой метод синтеза. Основным преимуществом НРФ по сравнению с РФ является возмож- ность получения линейной ФЧХ. Поэтому выбор между рекурсивными и нерекурсивными фильтрами выполняют, ориентируясь на указанное свойство НРФ Существует четыре вида НРФ с линейной ФЧХ [4,10,16]: 1) \ - нечетное и коэффициенты симметричны 6[А] = b[N - к - 1], 2) N - четное и коэффициенты симметричны М* ] = h[N - к - I], 3) N - нечетное и коэффициенты антисимметричны 4*1 = '-*-1]. 4) N - четное и коэффициенты антисимметричны 6(Л] = -ЦЫ - к -1]. Фильтры с четными значениями W вносят в выходной сигнал задерж- ку, равную половине периода длскретизации. Поэтому ниже будут рас-
Смит цифровых фильтре! Л смотрены примеры синтеза НРФ первого и третьего видов с нечетными значениями № Приведенные результаты легко распространяются на слу- чай НРФ с четнымн N Определим частотную характеристику НРФ первого вида и покажем, что он обладает линейной ФЧХ Рассмотрим сначала некаузалькый НРФ с симметричной импульсной характеристикой Л„Н1 = Л„[/) , I - 0,1,..., -1)/2, Л/ - нечетное . (3 1) Частотнал характеристика такого фильтра запишется в виде i-t = ^,[0]+ ^2Л,Д/1СО5(/£У)= £c[/]cos(/£W) (32) /Г1 /Ю где с(0] = [0), c[/J - 2й„(/] Таким образом, частотнал характери- стика иекаузального НРФ яаляется действительной функцией и характери- зуется нулевым сдвигом фазы Импульсная характеристика каузального НРФ первого вида может быть получена из (3 1) путем задержки на (JV - I)/2 тактов. В частотной области эта задержка соответствует сдвигу фазы, определяемому множите- лем е 11/1 Поэтому частотнал характеристика НРФ первого вида за- пишется в виде [N-W1 £d/]cos((w) /С Множитель е'/*”обеспечивает линейную зависимость фазы от час- тоты. Для фильтров третьего вида с антисимметричной импульсной харак- теристикой выражение, определяющее частотную характеристику, анало- гично (3.3), ио вместо cos(/o>) необходимо подставить sin(/<u). Фильтры с антисимметричными коэффициентами используются для построения пре- образователей Гильберта. Для фильтров второго и четвертого видов в вы- ражение для частотной характеристики необходимо дополнительно внести задержку на половину такта и вместо функций cos(/<u) или sin(/<w) ис- пользовать соответственно функции cos(/ + 0,5 )<у или sin( / + 0,5 )<у
122 Глава 3 3.1.2 Синтез НРФ с использованием окон Поскольку коэффициенты 6(А] НРФ равны отсчетам его импульсной характеристики А[А] и частотная характеристика любого цифрового фильтра является периодической функцией, то коэффициенты НРФ можно вычислять разложением в ряд Фурье заданной (желаемой) частотной харак- теристики [4,21]. Рассмотрим сначала применение указанной возможности дня синтеза нерекурсивных ФНЧ, а затем распространим полученные результаты па синтез нерекурсивных ФВЧ и нерекурсивных ПФ. Задан нал часплнал характеристика идеального цифрового ФНЧ оп- ределяется соотношением Я,(<и) = 1, |бУ|<бУ,, О, (Dt <| й) |< Я (3.4) Используя разложение в ряд Фурье частотной характеристики (3 4) . опре- делим импульсную характеристику НРФ = Jw,(35) Учитывая , что является четной функцией частоты перепишем (3.5) в виде I * й,(А] =— [я Д(У)со5(йМс)</(у -361 2тг ! Для ФНЧ после подстановки (3.4) в (3.6) и выполнении интегрирования по- лучаем h, [А ] = sin( й>гк) Цлк) (37) Импульсная характеристика (3.7) определена прн любых целых зна- чениях А и является бесконечной. Физически реализуемый НРФ обладает конечной импульсной характеристикой. Поэтому необходимо ограничить значения А. Пусть [A|S К, где К =(W-l)/2 для фильтров с нечетными значениями N и K = N12 для фильтров с четными значениями N . Тогда конечная импульсная характеристика, соответствующая (3 7), запишется в виде [АДА], - К S к £ К, A-i*]= ’ o s) О, при других к Импульсная характеристика (3.8) является некаузальиой, так как име- ет ненулевые значения при А<0. Чтобы получить каузальную характери- стику необходимо задержать ЛДА] на К тактов, т е.
Синто цифровы» фильтра» 123 Л[ А ] = Л, [А - К) , 0 < к £ N - I . (3 9) Синтезированный -таким образом НРФ будет иметь значительные пульса- ции АЧХ в районе частоты среза (рнс.З I). Указанные пульсации представ- ляют эффект Гиббса, проявляющийся в вблизи точек разрыва заданной час- тотной характеристики. Эффект Гнббса обусловлен ограничением длитель- ности бесконечной импульсной характеристики Л,[А]. Рнс.З 1. Импульсная характеристика 1(3.9) и АЧХ ФНЧ при Л"=20 Конечная нмпульсивл характеристика получаемая из АДА], может быть также представлена в виде Л[А] = Л,(А - К ]w[A ] , (3.10) где *[А]- прямоугольное весовое окно длиной N отсчетов Умножение за- данной импульсной характеристики на прямоугольное окно приводит к ис- кажению частотной характеристики синтезируемого фильтра Частотная характеристика, соответствующая (3.10), будет равна свертке заданной час- тотной характеристики с частотной характеристикой прямоугольного окна, описываемой выражением (2.8). Такны образом, эффект Гиббса связан с пульсирующим поведением частотной характеристики прямоугольного ве- сового окна. Для уменьшения отрицательного влияния эффекта Гнббса применяют весовые окна, отличные от прямоугольного. Здесь имеет места влвлогия со
124 Глава 3 спектральным анализом, когда для уменьшения утечки энергии в боковые лепестки применяют оконные функции (2.9X2.14), С целью обеспечения линейности ФЧХ указанные оконные функции должны быть симметричны- ми = h\N - к -1] и определены для значений А , лежащих в диапазоне OS* S И- 1. Пример 3,1 Определим коэффициенты нерекурсивного ФНЧ 41-го лорика с частотой среза W, ~0,Зя Ди уменьшения иикнив эффекта Гиббса будем использовать окно Хэм- минга Иснольэуя (3 10) н (J.7) , получаем выражение для импульсной характеристики требуемого нерекурсивного ФНЧ в виде я-(*-д) Д’-l где к = 0,1,.. ., N - 1 и К = (N - 1)/2 . После подстановки конкретных значений N и К нолучим выражение, определившее коэффициенты фильтра М*] = Л(* ] = «пй>с(*-20) 2^ 1 11 «(*-20) 40 Рнс.З 2 АЧХ ФНЧ, синтезированного С нозюшыо овна Хеннинга АЧХ данного фильтра, вычисленная с нозюшыо формулы (3 3), изображена на рнс 3 2 На этом же рисунке изображена АЧХ фильтра в логарифмическом масштабе Если выбрать граничную частоту прдпуспина =1,27 рад и граничную частоту задержания ш, = 1,87 рад (енжзрично относительно частоты среза), то неравномер- ность в полосе пропускай на R и ослабление в полосе задержи ван и А будут соответст- венно равны: 0,0|6дБ и -56,24 дБ. Из сравнения рис 3 I и рис.З 2 видно, что приьмиенна овна Хеммннга позволило значительно уменьшить уровень нульсаиий
Смит цифровт фильтров I» Синтез НРФ верхних частот или полосовых НРФ выполняется анало- гично. Частотная характеристика идеального ФВЧ описывается соотноше- нием О, | а> |< (i)c, I, &>t <] й) [< /г. (З-Н) Данная характеристика является обратной по отношению к частотной ха- рактеристике идеального ФНЧ Н™'1 (ту) и может быть предстааясна в ви- де Я^,'(<у)=)-ЯГ"ч(<у) (3.12) Выражению (3.12) соответствует следующее соотношение импульсных ха- рактеристик ФВЧ и ФНЧ OhWbOl, (3 13) где единичная импульсная функция. Подставив в (3 13) выражение (3.7), получим [М = - sin(atrk)/(nk) (3.14) Частотная характеристика ндеаяьйогб полосно-пропускающего фвльтра может быть представлена в виде разности частотных характеристик двух идеальных ФНЧ с различными частотами среза и й>2 (-* ^2) /7;ФМ = /7ГЛМ-^НЧ1М (315) Выполнив разложение в ряд Фурье частотной характеристики (3 15), полу- чим выражение, определяющее импульсную характеристику полосового фильтра лГИ) = лТ,[*]-л.ф",'11*] (3.16) С учетом (3.7) выражение (3 16) можно переписать в виде Л,"ф[А| = 5т(й2|А)/(яА)-51п(й>2А)/(яА), (3 17) Для уменьшения аяняння эффекта Гиббса при синтезе ФВЧ ня и ПФ трабуегся также выполнять умножение бесконечных импульсных характе- ристик (3.14) нян (3.17) на конечное весовое окно (2.9)-(2.14).
1)6 ГдшЗ Рассмотренный метод синтеза НРФ характеризуется следующими достоинствами: не требует сложных вычислений; точность аппроксимации повышается простым увеличением порядка фильтра; позволяет получать аналитические выражения для определения значений коэффициентов фильтров Основной недостаток метода состоит в сложности определения граничных частот н в неравномерном распределении ошибок аппроксимации по частотному диапазону, 3.1.3 Метод частотной выборки Пусть W ,(&>) является заданной (желаемой) частотной характеристикой НРФ. Обозначим через ее отсчеты (выборки) для различных частот а>к = / N , принадлежащих интервалу [0.2я], т е k-0.1».. .N-I. (318) По отсчетам частотной характеристики, используя ОДПФ, можно определить импульсную характеристику синтезируемого НРФ (соответственно и коэффициенты 5[А ]) = 'е>1Я*Я ,n=O,l,...,N-l (3 19) Нерекурсивный фильтр с импульсной характеристикой (3.)9) будет иметь частотную характеристику, определяемую выражением N -I «(<»]= £/.(» 1е'" (320) Исследуем свойства (320). Подставив (3.19) в (3 20), получим я>0 L ” 6-0 Поменяем местами знаки сумм в выражении (3.21) (3.21) . N-l N-1 (3.22) '* де де где = 2лА / N . Внутреннюю сумму в выражении (3.22) можно переписать в виде
Cum цифровых фмьтроа т _g-jiN-iHti-Bti)/i sin[(N/2)(&> &4)J sin[l/2((i> - )] (3 23) При t» = a>t значение выражения (3 23), являющегося ядром Дирихле, равно N и ) = At. Следовательно, частотная характеристика синтезируемого НРФ. коэффициенты которого вычисляются в соответствии с (3 19), в точках взятия частотных выборок будет иметь значения, совпадающие со значениями желаемой частотой характеристики, т.е )= Н,(д>4) Однако между точками взятия выборок реальная частотная характеристика НРФ будет отклоняться от W (ту,) (рнс.3.3). АЧХ НРФ, синтезированного таким образом, будет подобна АЧХ фильтра, построенного с помощью прямоугольного окна методом разложения в ряд Фурье (рис.3.1). Рнс.3.3 Заданная и реаяьная АЧХ НРФ Пульсации АЧХ здесь также обуслоаяены тем, что заданная частотная характеристика имеет разрыв на частоте среза. Улучшить поведение АЧХ НРФ можно, если задать переходную полосу для состоящую из нескольких дополнительных частотных выборок. Эго позволяет перераспределить энергию пульсаций и уменьшить ил уровень в полосе пропускания и полосе подавления. На рис. 3.4 показана АЧХ НРФ после добавления одной частотной выборки со значением 0,5 в переходной полосе.
I» Глава 3 Уровень пульсаций в полосах пропускания и подавления стал значи- тельно ниже по сравнению с рис 3.3 Рис. 3 .4 АЧХ НРФ с добавленной выборкой в переходной полосе Часто желаемую частотную характеристику задают в аналитической форме с помощью функций, дифференцируемых в переходной полосе На- пример, Н,(й>) = Г 1 1 0,5 + 0,Scos . L J о, О £ й) £ <УИ tw, < а> < й>3, (i)2 £&>£?. (3.24) В этом случае поведение частотной характернсгния в переходной полосе определяется с помощью функции, представляющей приподнятый косинус Данная функция имеет непрерывную производную, что обеспечивает по- лучение гладких АЧХ НРФ. Необходимо помнить, что коэффициенты фильтра, вычисленные с помощью (3.19), соответствуют иекаузальиой импульсной характеристике Поэтому дня физической реализации фильтра необходимо обеспечить со- ответствующую задержку импульсной характеристики, например на (N-1 У2 тактов, если У-нечетное. Благодаря возможности оптимизации значений дополнительных от- счетов, вводимых в переходной полосе, метод частотной выборки позволя- ет получать фильтры с очень хорошими карактернстнками, При этом поиск оптимальных значений выполняют с помощью ЭВМ иа основе программ, использующих методы линейного программирования [4,10,16].
Свмттз мфровыя фм яг трои IM ЗЛ.4. Метод нанлучшей равномерной аппроксимации Метод наилучшей равномерной аппроксимации основан на минимиза- ции максимального отклонения частотной характеристики синтезируемого НРФ от заданной. Частотная характеристика синтезируемого фильтра пред- ставляется в виде функции двух аргументов Я(й>,с). где <у- нормнрованнал частота, а с - вектор параметров фильтра, связанных с его жоэффициектами. Например, _ /- Н (" .С) = X С[/]^,((У ) (Э25) I Е U где ^((<у) = СО5/<у нян p((<y) = sin/a» В этом случае (3.25) соответствует частотной характеристике НРФ с симметричными или антисимметричными коэффициентами (см. 3.3). Задача синтеза состоит выборе вектора С , ми- нимизирующего выражение тах( И7 (<о) | Н t(<i)) - Н(й>,с) |) -► min (3 26) где И' (<а>) - весовая функция, используемая для выделения отдельных диапазонов частот в ходе процесса оптимизации. Чец меньше должно быть отклонение Н (а> ,с) от заданной частотной характеристики А/,(*и)при оп- ределенной частоте a> = n>ti тем больше должно быть значение №(&),) Обычно для задания весовой функции ,(Р(дэ) весь интервал частот разби- вают на поддиапазоны и в каждом из них задают допустимую ошибку ап- проксимации £, I Н г(й> ) - Н (й> ,С) |£ £, (3 27) Тогда для 1 -го поддиапазона №(&)- о/с,, где а- произвольная константа , обшая для всех подлнваазоиов Поиск вектора параметров фильтра, минимизирующего (3.26) выпол- няется численно с помощью алгоритма Ремеза Суть алгоритма Ремеза со- стоит в последовательной модификации вектора параметров с с помощью ЭВМ Коэффициенты вектора модифицируются до тех пор, пока не будет получено приближение с эхэаппон точностью Прн лом поиск вектора па- раметров выполняется с использованием обобщенной теоремы Чебышева, определяющей условия получения функции ti (<w . с ) наплучшею равно- мерного приближения Функция Н (ю* будет являться функцией паи-
110 Глава 3 лучшего равномерного приближения к функции Н г (&>) с весом tF(a>), ес- ли текущая ошибка аппроксимации принимает равные друг другу наибольшие абсолютные значения , чередующиеся по знаку на L+2 часто- тах , т е. ,,й)Ь1. Данные частоты называют частотами альтернанса. Метод наилучшего равномерного приближения позволяет синтезиро- вать НРФ заданного порядка N , для которого ошибка аппроксимации в по- лосах пропускания и подавления будет минимальна по сравнению с мето- дами .рассмотренными выше. Описание программ, выполняющих синтез НРФ в соответствии с ука- занным методом приведены в [4,10,)6]. Пример 3.2 Синтезируем методом наилучшей равномерной аппроксимации полосевой НРФ со следующей частотной характеристикой Н,(й)) = - О, I 0. О £ (D 5 0,1я, 0,2/г £ й) £ 0,4я, 0,5я £ й) £ я. (3 28) При этом отклонения реальной АЧХ фильтр* от (3 28) не должны превышать я аллосе пропускания 0,01 и я нолосая нолавленив 0,0003 Два синтез* воснользуемся пакетом программ Mailab 5 2, в состав которого мо- лит большой набор функций, рмяизуюшия различные методы синтеза цифровых фильтров Рвосматриваемый метод ршизуегс* фу нацией remezfN.FO.AO.W), которая ваеврашвет в качестве роультктов синтеза вектор коэффициентов фильтра Параьетры функции N-поршюк фильтра, F0- вектор .определяющий частотные полосы фильтра, АО- вектор, определяющий значения заданной частотной характеристики в частотных нолосая, W- весе вад функция. Для опрекяеннл порядна фильтра можно воспользоваться функцией remeeord(F,A,DEV,FSX где DEV дапустнмые отклонения рольной АЧХ в за- данных ил лотах, F5- частота дискретизации (нормирована значения FS в паяете Mxt- Itb равно 2) Фуикцна remezord в качестве регул ьтета возвращает вектор [N.FO A0.W], iirncimj которого используются как модные пораьютры функции тешет Ниже приае- лан текст программы, выполняющей необходимый синтез фильтра (синтез НРФ методом наилучшей равномерной аппроксимации f-[О.1 0.2 0.4 0.5); (задание вектора частот а-(0 1 0); (задание АЧХ в полосах dev-(0.0005 0.01 0.0005); (задание отклонений в полосах I n, f 0, аО, w]-remezord (f, a, dev, 2); вычисление порядка b-retnez tn, f 0, а0, w); ( определение коэф.фильтра (отображение результатов subplot (1,2,1) k-1;1:так(si ze(b)); stemtk,b,•.•); (h ww)-t reqz (b, 1,200);
Сито пвфровыя фильтров 131 subplot 11,2,2) plot(ww,20*log labs(h)3/2.3026) раулътвты вычислений прецстжвлены на рис J 5 Порядок фильтра, вычисленный с квюшью фумяции remezord , равен 54 № рисунка в на но, что метод обеспечивает рав- ммыноаые пулшшн 3.2 Синтез рекурсивны! цифровых фильтров Решение задачи синтеза рекурсивным фильтров (РФ) сводится к нахо- ждению коэффициентов Л[А] и а[1г] (1.211). Известны прямые и косвенные методы синтеза рекурсивных фильтров [4,10]. Прямые методы основаны на непосредственном определении параметров цифровых РФ по заданным ременным или частотным характеристикам. Косвенные методы синтеза РФ основаны на дискретизации аналогового фильтра , удовлетворяющего за- данным требованиям. При этом предполагается выполнение двух этапов. На первом этапе выбирают подходящий аналоговый фильтр-прототип, удовлетворяющий условиям обработки сигнала. Основные типы аналого- вых фильтров были рассмотрены в § 1.3.3. На втором этапе осуществляется переход от аналогового фильтра-прототипа к цифровому фильтру. Наибо- лее распространенными методами дискретизации аналоговых фильтров яв- ляются следующие методы инвариантности импульсной характеристики; согласованного z-преобрхюваиня; билинейного преобразования; отображе- ния дифференциалов [ 4 ]. В настоящем параграфе рассмотрим одни из нан-
in Глава 3 более простых и удобных косвенных методов синтеза РФ - метод билиней- ного преобразования В соответствии с методом билинейного преобразования непрерывная комплексная переменная Р передаточной функции аналогового фильтра- прототипа Н(р) заменлется на комплексную переменную z = eJV , яв- ляющуюся аргументом передаточной функции цифрового фильтра H(z) Этим обеспечивается переход от аналогового фильтра -прототипа к цифро- вому фильтру. Указанная замена выполняется с помощью различных фор- мул для фильтров разных типов. Для фильтров нижннх частот замену переменной Р выполняют в со- ответствии с формулой 1-2'1 ₽ = г. (3.29) Использование (3.29) обеспечивает однозначное преобразование Н(р) в H(z). Я(г)=Я(р)|,.>(,(3.30) В ходе преобразования (3.30) выполняется нелинейная трансформа- ция частот Соотношение между частотами p-плоскости (аналоговыми час- тотами Л) и частотами z-плоскости (цифровыми частотами о)) определяет- ся выражением П = у tg(X0)) . (3 31) Обычно аналоговый фильтр-прототип выбирают по справочнику, со- держащему характеристики фильтров с нормированной аналоговой часто- той среза, равной единице. Тогда коэффициент преобразования /в (3 29) можно определить из (3.31) с помощью выражения у = etg яа) , , (3.32) где о\- нормированная (во отношен ню к частоте дискретизации ) граничная частота пропускания синтезируемого цифрового рекурсивного ФНЧ. При синтеза цифровых фильтров верхних частот и полосовых фильтров исполь- зуют формулы, приваленные в табл 3 1 [4] . В табл.3.1 частоты о^н ш,. встречающиеся в формулах для полосового и реженторного фильтров . обозначают соответсвенно первую и еторую граничные частоты полосы пропускания. Применение метода билинейного преобразования рассмотрим на при- мерах.
1)3 Синтез цифровые фвльтров i; и ^ Таблица 3 1 - Формулы преобразований • Цифро- вой фильтр Формула замены Параметры Связь аналоговых и цифровых час- тот > Верхних частот 1 + :" r = lg>aot Q = у егдяд) | Полосо- 1 вой 1 - 2аг' + Р"Г Г-а” j^cignia^ -to,) cosn^to, +to,) COS3T(to, -to,) „ a-cosl^to П = у—— sin 2яш ‘ Режен- ; торный 1 1- z'1 Р^Г 1-2^^ У = W/r(to, - to,) cos я (to, + w,) a cosfl-(to, -to,) _ sin 2гга> о Г _ a - cos 2/гйл Пример 3.3 Определим коэффициенты цифрового рекурсивного полосового фильтр* с ьюно- £ томно убывающей АЧХ со следующими граничными частотами пропускании frn, =1200 Гц, /,1(1 = 1800Гц и граничными частотами мдержнканил 5. /Л1 = 500 Гц. /л, =25ООГц Частота дискретизации /,(=8кГц Максимальное зггухкние (нерв в не мерность) в полосе пропускай на не более Я = J дБ Ма ас и мал ь ное гузатуханне в полосе задерживание не менее Л = 40дБ f:l Определим нсрмироваиныс граничные частоты по формуле to = / //л , тогда = 1200 /8000 = 0.15 ,toml =1800/8000 = 0,225. = 500/8000 = 0,0625 . tonj =2500/8000 = 0,3125 2 По формулам дна полосового фильтра (табл ) I) вычислим аараметры У и Я Y = <г/рг(0.225 -0,15) = 4,165301. а = [со$л(0,225 + 0.l5))/[cos я(0,225 -0,15)] = 0,393557 3 Наводим по формулам , приведенным а табл ) I , аналоговые граничные частоты за- ржнвамна: П =yo-cos2gtoaL=5772267 sin 2яа>П1 n„l-r-c”2ro"--3.499673 sin 2/ra>ni 4 Там как АЧХ сиитстируемого фильтра должна быть мнипоине убывающей, то выве- рена качестве аналогового фильтра - прототни ФНЧ Баттерворта По формуле (I 109) вычислим порядок ФНЧ Прн этом вместо значение 1 формуле (I 109) будок ис- пользовать минимальную по ьюдулю аналоговую граничную частоту задерживали log5/(10OJ*-))/U0ou-l) Л -1 4?Й log(3.499673)
114 Гии! Выбираем порядоа фильтр* - прототипа пЧ 5 По табл 1 I определяем передаточную фунацию нормированного аналогового фильтра Баттерворта четвертого поряди* [13.19] Я(Р) = !/[(! + 0.765р+ р1) (| + |,М8р + р’)]. 6 Находим передаточную фу нацию цифрового полосового фильтра . осуществляя заьшну переьенной р в соответствии с табл 3 1 Получаем H„(z)=H1(z)H,(z).w н ...__________________0.М643Э (I-.- Ъ1_______________ ' " l-l.SMfiTzi’' + 2,017464;-'-1.151752;° +0,704408: ' ‘ н , ___________________О.ОЗВЗО а-;-1)1________________ 1 * I - 1,281183;"' + 1,668067;-’ -0.815967;-’ +0,408960;’' Тааим образом , шаровой колосовой фильтр ролкзуегса в виде послаяоввталыю- го соединенна двух фильтров с передаточными фумяшшми Н, (z ) и /7а(;). которые могут быть представлены в обшей виде н , _ ЦОЬ+ЦЦ,-- l + ajll,-’-' +«12),-- J +«[Э],:-’ +a[4J,r- где коэффициенты при переькнных Z соответствуют яоэффишкнтвм раэюспюго уравнеяия(|.2Ц) АЧХ сннтсм ровен ного полосового фильтра нзобраятеия но рис 3 6 Числовые значения АЧХ соответствуют заданным требованиям. В частности. за- тухание в полосе пролусвания нс превышает J дБ, затухания ил частотах ниже 500 Г и составляет 60 дБ и более, затухания ия частотах выше 2500 Гц составляет более 43 дБ Рис 3 6 АЧХ полосового фильтра
Синтез цифровых фильтров I» Пример 3.4 Определим коэффициенты цифрового рекурсивного ФНЧ с рав ново л новыми пуль- сациями АЧХ в полосе пропускания . удовлетворяющей следующим требованием R“0.1 дБ, А=ЗО дБ. /л = 12 кГц. /пи = 1000 Гц, fгн = Гц 1 Определим нормированные граничные частоты по формуле СЛ = f I f, тогдв w = 1000 /12000 = 0,0833 . arn = 4000/12000 = 0,3333 2 Вычислим коэффициент / . г = Cig (лгу ГП1) = etg (л -0,0833 ) = 3,7321 3 Определим аислогоаую граничную частоту задерживании = У ) = 3.7321 /й(л 0,3333) = 6.4641 4 Поскольку требуется выполнить синтез ФНЧ с равноволновой АЧХ в нолосс пропус- кания, то выбираем а качестве фильтра-прототипа аналоговый фильтр Чебышева По формуле (I 115) определяем требуемый порядок аналогового фильтра-прототипа /4/-<rAJ(I0olw-))/(l0ol<,l-l) л 2------1-----------------------2 та ЛгсЛ(6,4641) Принимаем п=3 По табл 7 3 ( 13), иснолыул значение порядка п*3 и заданное значение нерав- номерности R“0,1 дБ. выбираем полином эпаменктелл передаточной функннн (I ПО) аналогового ФНЧ Чебышева tf(p) = (0,969 + pXI,690 + 0,969 р+ р1) Передаточная функция аналогового фнньтра-протипа будет равна Н (/») = К / N (р), где К- нормирующий коэффициент , значение которого определяет- а из условна | Н(0) |= I ( К-1,0376) 5 Находим передаточную функцию цифрового рекурсивного ФНЧ , осуществляя замшу перемен вой р в соответствии с(3 29) Получаем 1 + z"1 I + 2 z '1 + z ‘J //(а)-0,01 II , _0 5g78 z-i ' ! 2725 2-> + 0,6240 z1 Требуемый цифровой ФНЧ может быть реализован в виде двум звеньев первого и второ- го лорядвов, соединенных последовательно АЧХ синтезирован кого фильтра изображена на рис 3 7 Неравномерность АЧХ в полосе пропускания не превышает 0,1 дБ Уровень затухания на частоте 4000 Г и более 31 дБ
136 Гии! Рис.3.7. АЧХ цифрового ФНЧ Чебышева J3 Синтез двумерных цифровых фильтров 33.1 Обшне сведения о истоде! синтеза двумерных ЦФ При цифровой фильтрации двумерных сигналов в основном приме- няют фильтры с конечной импульсной характеристикой . Обусловлено это двумя обстоятельствами . Во-первых, двумерные КИК-фильтры имеют ряд преимуществ по сравнению с двумерными БИХ-фнльтрами. Во - вторых, методики синтеза двумерных БИХ-фнлЬтров достаточно сложны из-за трудностей обеспечения устойчивости синтезируемых фильтров. Поэтому ниже будут рассматриваться только методы синтеза двумерных НИК- фильтров Одно из важных преимуществ КИХ-фнльтров перед БИХ-фнльтрами состоит в возможности синтеза фильтров с нулевым фазовым сдвигом. Это свойство очень важно для многих приложений двумерной обработки сигна- лов. Налрныер, при обработке изображений фильтры с ненулевой фазой мо- гут привести к разрушению линий и границ на изображении [7]. Двумерный К ИХ-фильтр будет обеспечивать нулевой сдвиг фазы, ес- ли его частотная характеристика является действительной функцией , т е Н(й),,й)2) = Н'(й),,й)2) , (3.33)
Cl то цвфровыя фмьтров 137 иди если импульсная характеристика будет симметрична относительно на- чала координат Й(л|,Л1] = А*[-'»|-Я2]. (3.34) Существует несколько методов расчета двумерных КНХ фильтров [7,)6): метод оконных функций, метод частотной выборки, метод частотных преобразований. Приведем краткую характеристику каждого из указанных методов и продемонстрируем особенности синтезируемых с их помощью двумерных фильтров. 3J.2 Метод оконных функций Метод оконных функций, используемый для синтеза двумерных фильтров, имеет много общего с аналогичным методом синтеза одномер- ных фильтров. В соответствии с данным методом заданная (желаемая) дву- мерная частотная характеристика фильтра представляется.в виде ряда Фурье Я* где коэффициенты А2[л,,л2] ряда определяются с помощью выражения = J(<0l,<02)eja,'n'eJt,^d6)td<01 (3 36) Здесь ЛДл^л,]- бесконечная импульсная характеристика двумерного фильтра, соответствующего заданной частотной характеристике Для реализации двумерного КИХ-фнльтра необходимо ограни- чить пределы суммирования в (3.35). Аналогично одномерному случаю это приводит к ухудшению сходимости усеченного ряда (3 35) к заданной час- тотной характеристике в точках ее разрыва Для улучшения сходимости усеченного ряда коэффициенты ^[л^л,] умножают на конечную двумер- ную оконную функцию «'(л,,л,] # т.с в качестве коэффициентов фильтра используют значения h (л|,л1] = й3(л|,л2] «(ц.л^ (3.37) Чтобы получить фильтр с нулевым фазовым сдвигом, оконная функция Должна удовлетворять условию:
I» ГлмаЗ wfffl,fl2] = ,-"’1 (3 38) Для сннтеи двумерных КНХ - фильтров применяют двумерные оконные весовые функции , определяемые на прямоугольной или круговой опорной области. В случае прямоугольной опорной области двумерное весовое окно формируется как прямое произведение двух одномерных окон: (3 39) В случае круговой опарной области весовое окно формируется путем вра- щения одномерного весового окна вокруг осн симметрии с помощью выра- жения +Л1!), (3 40) где *()- функция одномерного непрерывного окна С помощью (3 40) можно получить двумерные дискретные окна Хемминга. Ханна. Кайзера и др, обладающие круговой симметрией. Круговая симметрия желательна при обработке изображений, когда любое направление в плоскости изобра- жения является равноценным. Пример 3.5 Синтезируем му мерный КИХ-фнльтр ними их частот , определяемый частотным откликом , заданным на прямоугольной опорной области 1, [й», |£<а(,|та, |£о>г. 0, в остальных случаях (341) где й>, - нормированная частота среза (й>г £ Я ) Из (3 36) следует, что идеальный им- пульсный отклик представляет разделяемую последовательность и равен .44 .4 ] Ч Л,fa, nJ:—Т f =— J^d^ -a>r sin^ n, sino^n, jm । xm 2 (3 42) Для усечения ряда Фурье применим двумерное прямоугольное окно
СиЖТО ЦИфрМЫ! фильтра! IW Ч^-л1)= t, ъ£(Р-\)/2, О, в остальньиелучаш (3 «> гж Р- нечетное число, опредеаяюшее порш» фильтра На рис. 3.8 представлены им- пульсная (ИХ) Л [л|,л))=Л1[л1,л)]-н(/1|,л)] и частотны характеристики (ЧХ) синте- зированного двувирного ФНЧ (Р~Ц. ту, =0,5л) ЧХ фильтра имеет значительные пульсации вблизи частот , где минная частотны характеристика ивжсг разрыв Рис 3 8 ЮС н ЧХ ФНЧ, синтезированного с номошью прямоугольного овна Улучшить поведения ЧХ южно, если применить весовую функцию, отличную от пря- моугольной На рис 3.9 показана импульсная ырактернстика н ЧХ двумерного ФНЧ, см ктезиря ванного с применениям окна Хайна. Двумерны о воины функция Хаима фор- ыиря валясь с помощью алл венную щей одномерной функции на основе выражений (3.39) и (2 10) Импульсная карактеристмка фильтра вычислялась умножением (3 42) на даувирную оясиную функцию Ханна Порядок фильтра и частота среза оставались прежними
I4o Глава 3 Рис 3 9 ИХ и ЧХ ФНЧ снкшироикного с использованием овив Ханка Пример 3.6 Синтезируем двумерный КИХ-фнльтр нижних частот , заданный частотной жарактсри- сгнкой с круговой симметрией Импульс ни хярактернсгивк фильтра определяется с ноьюшью выражения (3 36), но ин- тегрирования здесь выволияетса не во прямоугольной области, л во круговой Это тра- бует замены пере>«нных гы, и <и. на переменные в полярных координатах, что услож- няет рашение задачи по сравнению с предыдущим примером После интегрированна по- лучим [7]. -М =-------- Г Г “ <’ «> Я ijtl'i +П'2 где Jiix) - фуикцвк Бесселя первого роле первого порядка Импульсная характери- стика (3 45) квхяется бесконечной и требует ограничения. Ограничим ее с ноьюшью кру- гового двумерного окна
Синто ЦДфрОВЫ! фжльтров 141 ). л’| + Л1! S гг , 0. в остальных случаях , (3 46) где г«(/'-1)/2- радиус окна На рис) 10 изображены импульсная и частотные характеристики снитеэироваиного фильтра (/’ II. а», = 0.3л ) Рис 3 10 ИХ и ЧХ ФНЧ с круговой симметрией Как видно из рис 3 10 частотная яарагтсристикв синтезированного ФНЧ имеет необжо- димую тру голую симметрию Из-за приме кв и кв кругового овил (3 46). близкого ко сво- им свойствам к прямоугольному окну (3 43), синтезированная ЧХ имеет значительные пульсации вблизи частоты среза Для уменьшение пул тщаний следует применять иные весовые окна. 3.3.3 Метод частотной выборки Данный метод использует для синтеза двумерных КИХ-фнльтров пря- мое и обратное двумерные дискретные преобразования Фурье (ДДПФ) В соответствии с (1.260) импульсная характеристика ЦФ может быть вычис- лена с помощью ОДДПФ по заданной (желаемой) частотной характернстм-
HI Гдыа 3 А1"'-Л>1= ГПГ £ £ *1*|-*1* ' : ' <3.47) " | ' " J I, -0»; -0 Если подставить (3 47) в (1.244), то можно получить выражение 116] Л/(со, ,соа) = 2^ X.Hlk^kj]-A^k^a),,^) (348) А, -О А,-О определяющее частотный отклик фильтра в любой точке (a>(,<Wj). В выражении (3.48) член Alk^k^a) представляет интерполирующую функцию, которая определяет поведение частотной характеристики между точками с частотами о>ц - kt 2я/Nt, a»tJ = А,2яIN}. В точках <и, = 0»,,, частотная характеристика синтезированного фильтра совладает с желаемой частотной характеристикой, заданной своими отсчетами Н[ки к2 ] . В качестве примера ив рис.3.11 показаны результаты синтеза двумерного КИХ -фильтра ннжнил частот с частотной характеристикой , определяемой выражением (3.41). Из рис.3 11 видно, что реальная ЧХ имеет значительные пульсации. Рис 3.11. ИХ и ЧХ ФНЧ, синтезированного методом частотной выборки
Синтез цифре ВЫ 1 фильтров 141 Аналогично одномерному случаю для уменьшения пульсаций ЧХ можно вводить дополнительные отсчеты в переходную полосу. Введение дополнительных отсчетов позволяет перераспределить энергию пульсаций, сосредоточив ее в переходной полосе На рис.3.12 изображены заданная и реальная ЧХ ФНЧ, синтезированного методом частотной выборки Заданная ЧХ содержит дополнительные отсчеты в переходной полосе. Амплитуда дополнительных отсчетов равна 0.75. Видно, что по сравнению с рис.3.11 уровень пульсаций в полосе пропускания стал значительно ниже. Метод частотной выборки позволяет выбирать значения отсчетов в переходной полосе в соответствии с некоторым критерием оптимизации, что обеспечивает возможность синтеза оптимальных двумерных фильтров Го- рне.}. 12. Заданная и реальные ЧХ ФНЧ с дополнительными отсчетами 3.3.4 Метод частотных преобразований Прямой синтез двумерных оптимальных КИХ-фильтров затруднен из- за большой размерности задачи и невозможности распространения теоремы Чебышева на двумерный случай. Поэтому был разработан метод частотных преобразований, позволяющий выполнять преобразование оптимальных одномерных КИХ-фняьтров в квазноптимаяьные двумерные фильтры. Метод частотных преобразований обеспечивает сохранение основных свойств одномерных фильтров в процессе преобразований. В частности, сохраняется ширина полос пропускания н заданные уровни пульсаций в
U4 Глава 3 полосах. Теоретическое обоснование метода приведено в [16]. Возможности методе рассмотрим на примере. Пример 3.7 Выполним синто двумерного КИХ-фильтра нижних частот, желаемы частотная характеристика которого определяется выражением йЛ Siu’rt. (У1! £ йЛт , где й>г, >^>Г2- частоты, определяющие переходную область (отг| = О,45я\агг1 =0.65д) Пусть также требуется, чтобы реальная частотная характеристика фильтра имела релповоляовые пульсации и уровень пульсаций в области пропускали и подавления был аютэегсвенно не более 0,05 Синтезируем сначала одноьсриый фильтр Чебышева с заданными характеристиками Для этого воспользуемся модифицирован пой программой, приведенной в примере 3 2 Получим вектор коэффициентов Л одномерного ФНЧ. удовлетворяющего заданным требоканнлм После чего еннтаируем двумерный КИХ- фильтр с помощью функции йгал$2 пакета Mai lab 5 2 . Данная функция реализует метод частотных преобразований и вызывается следующим образом: h-ftrans2(b) В качестве результата функция возвращает матрицу коэффициентов h двуьсриого фильтра На рис. 3 13 показана АЧХ синтезированного одномерного КИХ фильтра и ЧХ соответствующего двуьжрного фильтре Частоты нормированы относительно Л" Рис j 1.1 ЛЧХ одномерного ФНЧ и ЧХ соотвстстиуюшего двумерного Ф114
Глава 4 ОБРАБОТКА РЕЧЕВЫХ И АУДИОСИГНАЛОВ 4.1 Основные свойства рсчевыт сигналов Голосовой аппарат человека представляет собой акустическую систему, состоящую из ротового и носового каналов, возбуждаемую квази периодическим и импульсными колебаниями голосовых связок и турбулентным шумом. Турбулентный шум образуется путем проталкивания воздуха через сужения в определенных областях голосового тракта Голосовой аппарат, возбуждаемый указанными источниками, действует как линейный фильтр с изменяющимися во времени параметрами, на выходе которого формируется речевой сигнал На коротких интервалах времени речевой сигпая можно аппроксимировать сверткой возбуждающего сигнала с импульсной характеристикой голосового тракта. На рис.4.1 изображена упрощенная модель формирования речевого енгнаяа [15,17]. В соответствии с згой моделью вокализованные (звонкие) звуки формируются с помощью генератора импульсной последовательности, а фрикативные (шумовые) - с помощью генератора случайных чисел Рис.4.1. Цифровал модель формирования речевого сигнала
1*6 Г лам 4 Период следования импульсов на выходе генератора импульсной последовательности соответствует основному периоду возбуждения голосовыми связками. Генератор случайных чисел формирует шумовой сигнал с равномерной спектральной плотностью. Цифровой фильтр (ЦФ) с переменными параметрами аппроксимирует передаточные свойства голосового тракта. На временном интервале порядка 5-20 мс форма голосового тракта не меняется, поэтому характеристики ЦФ на данном интервале остаются постоянными. Амплитуда входного сигнала и[п) цифрового фильтра определяется коэффициентом усиления G. Вокализованные звуки представая ют собой квази периодические сигналы (рнс. 4.5,а), гармонически! структура которых хорошо видна на графике кратковременного спектра. Фрнвативные звуки имеют случайный характер (рис. 4.5,6) н занимают более широкий частотный диапазон. Энергия вокализованных звуков речи намного больше, чем энергия фрикативных звуков. Структуре кратковременного спектра вокел изованн ых участков речи (рис. 4.5,а) харектеризуется наличием медленно меняющейся и быстро меняющейся составляющих. Быстро меняющаяся или пульсирующая составляющая обусловлена квазнперноднческимн колебаниями голосовых связок. Медленно меняющаяся составляющая связана с собственными (резонансными) частотами голосового тракта - формантами. В среднем насчитывяется 3-5 формант. Первые три форманты оказывают существенное влияние на синтез и восприятие вокализованных участков речи. Их частоты и ал ода тс я ниже 3 кГц. Форманты с более высокими частотами оказывают влияние на синтез и представление фрикативных звуков. Рассмотренная цифровал модель формирования речевого сигнала характеризуется следующими параметрами: наличием классификатора вокализованных и невокалнзованнык звуков (переключатель тон/шум), периодом основного тона, коэффициентом усиления G, параметрами (коэффициентами) ЦФ. На рассмотренной модели базируются многочисленные способы представления речевых сигналов: от простейшей периодической дискретизации речевого сигнала до оценок параметров модели, представленной на рнс.4.1. Выбор того или иного способа представления речевого сигнала определяется решаемой задачей, которые разделяются на три класса. К первому классу относят задачи, связанные с анализом речи. Анализ речи является неотъемлемой частью систем распознавания речевых сигналов, а также систем идентификации дикторов по голосу. Ко второму каассу относвт задачи, связанные с синтезом речи по тексту. Задачи такого типа возникают в многочисленных информационно-справочных системах В задачах, относящихся к третьему классу, выполняется как анализ
Обработка peinui и аудиосигналы 147 системы сжатия речевых сигналов с целью передачи речи по компьютерным сетам или по традиционным линиям связи Одним из перспективных направлений применения обработки речевых сигналов являются системы распознавания речи в сети Internet В этом случае пользователь сети, используя телефон, может соединиться с программой распознавания речи, находящейся на сервере и транслирующей диалог в команды Web-сервера. Это позволяет получить доступ к распределенным ннформакионным ресурсам сети по телефону. Даниил технология, использующая методы цифровой обработки сигналов, базируется на использовании специального языка программирования Web-серверов VoxML (Voice Markup Language) В дальнейшем рассмотрим основные способы цифрового представления и обработки речевых сигналов, применяемые как в задачал анализа речевых сигналов, так и в задачах синтеза 4.2 Дискретизация и квантование речевых сигналов Простейшее цифровое представление речи заключается в непосредственной дискретизации непрерывного речевого сигнала в соответствии с теоремой Котельникова Такое представление речевого сигнала соответствует имлулы.7ю-кгх)овой модуляции (ИКМ) Выбор частоты дискретизации зависит от конкретных условий решаемой задачи. Фрикативные звуки речи занимают сравнительно широкую полосу частит (примерно до 10 кГц) Вокализованные звуки, значительно влияющие на разборчивость речи, занимают полосу частот до 3 кГц. Таким образом, обычно используемая частота дискретизации выбирается в пределах от 6 до 20 кГц, Следует отметить, что количество операций, выполняемое при обработке речи, находится в прямой зависимости от частоты дискретизации. Поэтому в соответствии с условиями решаемой задачи необходимо по возможности снижать частоту дискретизации. Для этого перед дискретизацией речевой ситная предварительно обрабатывают с помощью аналогового ФНЧ, устраняя нежелательные высокочастотные составляющие. Выбор числа двоичных единиц В для кодирования одного отсчета речевого сигнала определяется задачей обработки, Объективной характеристикой точности представления сигнала посредством ИКМ является шум квантования Ф»] = . «о где х(л] - исходнва речевая последовательность, (2|х[л)| - оператор квантования
Гдвм 4 Можно показать, что при равномерном квантовании отношение сигнал шум (ОСШ), выраженное в децибелах, будет равно [17) ООП =6 Д-7,2. (4-2) Например, если Д=|1, то <Х’Ш»60 дБ, что служит мерой качества хорошего телефонного канала связи. Добавление одного двоичного разряда для представления отсчета речевого сигнала увеличивает (Х'Ш на 6 дБ Таким образом, для представления речевых сигналов посредством ИКМ требуется скорость передачи в пределах от 66 000 до 220 000 бнт/с Это необходимо учитывать при компьютерном хранении и обработке речи Налример, речевой сигнал длительностью 15 с будет занимать объём памяти примерно в 1 Мбайт Для снижения скорости передачи речевых сигналов и, соответственно, уменьшения объемов требуемой памяти сокращают чнело двоичных единиц, выделяемых на один отсчет Ключом к решению задачи является учет того обстоятельства, что для вокализованных участков речи, имеющих большую амплитуду, можно использовать большой шаг квантовании, а для невокалнзованных - мелкий, тс квантование должно выполняться с неравномерным шагом Это стабилизирует отношение сигнал/шум и делает его не зависящим от уровня сигнала. Чтобы относительная ошибка квантования оставалась постоянной при изменении амплитуды речевого сигнала, уровни квантования должны быть распределены по логарифмическому закону. Вместо распределения уровней квантования по логарифмическому закону можно выполнять квантование логарифма речевого сигнала. В этом случае перед квантованием речевой енгная обрабатывают в компрессоре, а при восстановлении исходного речевого сигнала используют экспандер Совокупность этих двух устройств называют компандером Оддой из часто используемых характеристик компрессии является функция. У = sgn(x) ( |х| -In 1 + /т -L-L- X пмх (4.3) 1п(]+/т) I Хт» Функция компрессии (4.3) называется p-законом. Экспандер реализует соответствующую обратную функцию г/-1* Я.|(, + „)и_,] («> При использовании компрессора, функционирующего иа осноас (4.3), для обеспечения ОСШ*60 дБ достаточно 7 бит на одни отсчет речевого сигнала, те. скорость перадачн может быть снижена по сравнению с
Обряботкя рея гем» н аудиосигналов Н9 равномерным квантованием в 1,57 раз Отметим, что формулы (4 3) и (4.4) требуют, чтобы все отсчеты х[л] находились в интервале (-х„,.х„,| Любой отсчет, не принадлежащий указанному интервалу, полагается равным Значения константы у обычно равны 30; 100. 254 Кроме у- закона, часто используют А - закон компандирования [ 14] Другой подход к снижению скорости передачи основан на учете избыточности речевого сигнала. Соседние отсчеты речевого сигнала, дискретизированного в соответствии с теоремой Котельникова, имеют сравнительно высокую корреляцию. Это позволяет по предыдущим отсчетам предсказать текущее значение речевого сигнала Предположим, чго Sfn) является предсказанным значением речевого сигнала х[п] Если зто предсказание является достаточно точным, то ошибка предсказания </[л] = ф]-?[л] (4 5) должна иметь небольшую величину, и, следовательно, дисперсия ошибки квантования разностного сигнала будет меньше, чем дисперсия ошибки квантования отсчетов речи х[л]. Таким образом, квантователь с заданным количеством уровней обеспечит меньшую погрешность при квантовании разностного сигнала, чем при квантовании исходного сигнала. Позтому для представления разностного сигнала требуется меньшее число двоичных разрядов. । Квантователь, построенный на использовании указанного подхода, называется дифференциальным (разностным) импульсно-кодовым модулятором (ДИКМ). Схема его показана на рис.4.2 Здесь х[л] представляет восстановленный сигнал, образуемый путем добавления квантованного разностного сигнала к х[п]. Кодер Декодер Рнс. 4.2. Общая схема АДИКМ
IM Глям 4 Покажем, что восстановленный сигнал х(л] будет отличаться отх(л] на величину шума квантования разностного сигнала фт]= rf(n]-rf[n] (4.6) Заметим, что </[л] = л(л]-?[п] (4 7) Тогда, подставляя (4 7) и (4 5) в (4 6), получим искомый результат е[л] = л(л]-х(л] (4.8) Для предсказания значений речевого сигнала в схеме используется нерекурсивный ЦФ с передаточной функцией А(:), реализующий уравнение /* . (4 9) В простейшем случае для предсказания используется фильтр первого порядка В том случи, когда для кодирования разностного сигнала используется один бит, рассматриваемый модулятор называют делыпа-модулятором. Обычно дельта модулятор функционирует па более высоких частотах дискретизации, чем ДИКМ, Для уменьшения ошибки квантования в ДИКМ может применяться адаптивное изменение шага квантования и коэффициентов предсказывающего фильтра Такие модуляторы называются адаптивными дифференциальными импульсни-кодовычи модуляторами (АДИКМ) Коэффициенты предсказывающего фильтра вычисляются в устройстве оценивания (VO) так, чтобы минимизировать дисперсию ошибки предсказания (4.5) Оценивание коэффициентов предсказывающего фильтра возможно как по входной речевой последовательности х[л], так и по восстановленной последовательности Дл] в первом случае, коэффициенты предсказывающего фильтра должны кодироваться и передаваться в декодер, так как последовательность л[л] отсутствует в декодере Во втором случае такой необходимости нет Коэффициенты предсказателя могут быть вычислены в декодере по восстановленной последовательности х(л]. Основные принципы вычисления коэффициентов линейного предсказания будут рассмотрены ниже АДИКМ позволяет снизить скорость передачи до 16 Кбнт/с. Благодаря этому АДИКМ широко применяется для представления речевых сигналов в
О4р»ботк» речевых н аудиосигнала» 151 компьютерных системах Детально вопросы реализации алгоритмов АДИКМ оговорены рекомендацией МККТТ G.726 [28] В соответствии с этой рекомендацией на вход АДИКМ поступает стандартный ИКМ-сигнал с частотой дискретизации 8 кГц. Для представления квантованных разностных значений используется 5-. 4-, 3- и 2-разрядные двоичные коды Это обеспечивает соответственно получение скорости передачи со значениями: 40, 32. 24, 16 Кбнт/с. 4.3. Анализ речевых сигналов во временной области При решении многих задач обработки речи интерес представляют временные характеристики речевых сигналов Поскольку речь является нестационарным процессом, то ее принято анализировать па коротких участках (10 - 30 мс), где спектрально-корреляционные характеристики остаются примерно постоянными [14]. Одним из важных параметров речевого сигнала является его энергия Е = X jlln] 0.10) Энергия может служить хорошей мерой отличия вокализованных и исвокализованных участков речи Энергия невокалнэованных участков речи намного меньше, чем вокализованных Иной способ обнаружения вокализованных и невокализованных участков речи основан па измерении среднего числа переходов через ноль речевого сигнала Это измерение является грубой оценкой частотного состава речевого сигнала. Известно, что энергия вокализованных звуков конце) ггрн русте я в диапазоне ниже 3 кГц, тогда как энергия фрикативных звуков сосредоточена, в основном, на частотах выше 3 кГц Поэтому, если среднее число переходов через ноль велико, то это свидетельствует о нево кал и зова и ном характере речи, и наоборот. Важной задачей анализа речевых сигналов во временной области является оценивание периода основного тона Период основного тона может быть определен как временной интервал между соответствующими пиками вокализованного участка речевого сигнала Однако главная трудность здесь состоит в том, что даже на коротких интервалвл времени речевой сигнал не имеет строгой периодической структуры Иной способ определения периода основного тона во временной области основан па вычислении функции кратковременной аятокорреляпии
131 f ull 4 Ф«1 = — N Л-I + /и], 0 < т < Л/о-1 (4 11) л «О где Л/р - максимальная задержка сигнала При выявлении периода основного тона Р по автокорреляционной функции необходимо учитывать условие Р. Для вокализованных участков речи на графике r(m] прослеживаются пики с интервалом, равным периоду основного тона. С целью обострения пиков на графике гр”! сигнал х(п] клиппируют [17]. Суть этой нелинейной операции показана на рис.4 3,а На рис 4 3,б представлена автокорреляционная функция клиппированного сигнала Рис 4 3 Операция клиппирования Недостатком рассматриваемого метода определения периода основного тона является то, что для вычисления автокорреляционной функции требуется выполнить большое число арифметических операций 4.4 Анализ речевых chiub.tob в частотной области Одним из основных способов обработки речи в частотной области является кратковременный спектральный анализ На выполнении кратковременного спектрального анализа основана работа mhoihx систем распознавания речи, спектрографов, вокодеров |15| Кратковременный спектральный анализ может быть реализован с использованием гребенки полосовых фильтров (рис 4 4) юти с помощью дискретного преобразования Фурье Полосы пропускания фильтров выбираются гак. чтобы перекрыть весь частотный диапазон речи Средние
ОбсиВотк» речей ел и аудиосигнала» Ш значения модулей выходных сигналов фильтров будут представлять значения спектральных коэффициентов в полосах. Рис .4.4. Г ребенка фильтров Иногда частотный диапазон разбивают на неравные полосы с учетом особенностей слухового восприятия человека. Экспериментально установлено, что so внутреннем ухе человека высота тона (частота) звукового сигнала преобразуется в механические колебания определенных участков базилярной мембраны При этом линейным приращениям координаты вдоль тела мембраны соответствуют логарифмические приращения частоты звука, т с частота звука, воспринимаемого человеком, нелинейно зависит от действительной физической частоты 'Это приводит к неодинаковой разрешающей способности по частоте и к восприятию звуков в соответствии с механизмом критических частотных поме. Сложный звук постоянной громкости, состоящий из нескольких тонов, лежащих в пределах критической полосы, воспринимается человеком с таким же субъективным ощущением, как одно-топ альный звук, соответствующий центральной частоте критической полосы Ширина критических полос .тля области частот до 500 Гн составляет примерно 100 Гц Выше 500 Гц ширина критических полос увеличивается примерно на 20% по сравнению с шириной предыдущей полосы. Ширина критических полос аппроксимируется зависимостью [36] Д/ = 25 + 75[1 + 1,4(//1000): ]°'м [Л/ ] Для характеристики субъективных частот, воспринимаемых человеком, предложено несколько шкал: барк-шкала, мел-шказа Функция b = 13 агс(ап(0,00076 /) + 3,5 агс<ап[( f / 7500); | [ Нарк | используется для перевода частот, заданных в герцах, в барки Гребенка (банк) фильтров с неравными полосами пропускания, заданными в герцах и соответствующими критическим полосам слуха (табл
154 Т.н bi 4 4.1), будет иметь равномерное распределение центральных частот и равные значения полос пропускания, измеренных в барках. Таким образом, применение барк-шквлы соответствует равномерному разбиению оси субъективных частот. Мел-шкала вводится с аналогичной целью н имеет незначительные отличия от барк-шквлы (36]. Таблица 41- Критические полосы слухового восприятия Ь.Карк Централь)! вл частота, Гц Полоса, Гн 0 50 0-100 1 150 100-200 2 250 200-300 3 350 300-400 4 450 400-510 5 570 510-630 6 700 630-770 7 840 770-920 8 1000 920-1080 9 1170 1080-1270 10 1370 1270-1480 11 1600 1480-1720 12 1850 1720-2000 13 2150 2000-2320 14 2500 2320-2700 15 2900 2700-3150 16 3400 3150-3700 17 4000 3700-4400 18 4800 4400-5300 19 5800 5300-6400 20 7000 6400-7700 21 8500 7700-9500 22 10500 9500-12000 23 13500 12OOO-I55OO И 19500 15500- Кратковременный спектральный анализ речи может быть также выполнен на основе ДПФ. Кратковременное дискретное преобразование Фурье определяется следующим образом N - I .¥,(«)= 7',^ („ |2) Л в и
OCpi&QTKi речевы» и 1удносигндло 195 где *,[л] представляет отрезок речи, взвешенный окном *[//]. длиной .V отсчетов: х,[п) = и4л)х[п + /Д'). I = О, I. 2...... (4 13) На рис.4.5 показаны кратковременные спектры Фурье и соответствующие реализации вокализованного и фрикативного участков речи. Спектры представлены в логарифмическом масштабе При построении спектров использовалось окно Хеммикса длительностью примерно 23 мс. Заметим, что кратковременный спектр вокализованной речи имеет высокое разрешение и характеризуется пульсациями, обусловленными квази-пери одическим и импульсами основного тона Поэтому по кратковременному спектру вокализованной речи можно оценить частоту основного тона. ВД|- Реаиэаш v- Л1 >?. реализация । <1 __ ___ Реализация и» и* и "Кик ^^овремениЛ стегто ’ •< (китсовхиенгай спеяр Jll "Il Illi 'll" rill -III Mil Illi Iltfl a) 6) Рис 4 5 Вокализованный (а) и фрикативный (б) речевые сигналы и их спектры Олин из алгоритмов определения частоты основного тона основан па вычислении произведения |17] к ’ F,(<y) = [J (4М) 3 = 1
IM Глявж -1 Значения, вычисляемые с помощью (4.14). могут быть весьма большими Для уменьшения значений вычисляют логарифм от (4.1-1) Зависимость представляет произведение функций , сжатых по частоте В вокализованной речи сжатие частоты в к раз должно привести к совпадению гармоник основного тона Благодаря этому в спектре Ft(tt>) появляется максимум на частоте основного тона Невокалнзованная речь характеризуется существенно меньшими значениями /ч(<и)и ина нс имеет максимума в спектре Fi(d)) на частите основного тона Данный способ определения частоты основного тона устойчив к шумам, поскольку шумовые комн0не|гты в спектре Fi{Ct>) не регулярны На рис 4 6 показаны графики здя вокализованной и невокалнэованной речи, полученные прн К-5 По расположению пика «а графике спектра /'(/) вокализованной речи легко опредвлястся частота основного тона Рис 4 6 Спектр произведения гармоник вокал изовен нон и нсвокализовани ой речи 4,5 Г омо морфия а обработка речи В соответствии с рис.4.1 речевой сигнал является сверткой функции возбуждения (случайного шума либо квазипсрноднческой последовательности импульсов) и импульсной характеристики голосового тракта Гомоморфный анализ речи позволяет разделить эти компоненты Поэтому, используя гомоморфный анализ, можно определить период основного тона и частотные свойства голосового тракта. Общая схема гомоморфной обработки приведена на рис.4.7.
Обработки речевых н вудноенгныов 157 Рис -1 7 Общая схема гомоморфной обработки В соответствии с стой схемой сначала выполняется нелинейное преобразование Д[ | сигнала .г|л), которое определяется соотношением Л--) = log/(г) (4 15) Затем выполняется оператор Т| ), который соответствует линейной инвариантной системе В конце реализуется преобразование Д'1 ( |, являющееся обратным по отношению к преобразованию Д| } Пусть сигнал х[л] является сверткой двух последовательностей х,[л] и jj[n) Тогда X(z) = Xi(z) .¥:(?) (4 16) Подставив (4.16) в (4.15), получим X(z) = log Xi(z)+ log Xi(z) = Xt(z) + Xt(z) (4 17) Лнпсйцвл инвариантная система пропускает на выход только одну из компонент Xf(z) или Л"/?) Соответственно обратное преобразование Д '( | 'дает ypi)=X|[n] или у(п]=х2[л] Следовательно, гомоморфны обработка разделяет входные компоненты Х|[м) и х2[п], содержащиеся во входном сигнале. Рис.4.8 Гомоморфная система анализа речи Гомоморфная система анализа речи показана на рис 4.8 Здесь на первом этапе вычисляется логарифм модуля кратковременного преобразования Фурье. Если предположить, что сигнал в точке А является сверткой функции возбуждения и импульсной характеристики голосового "факта, то в точке С мы получим сумму логарифмов спектра функции
IM Глаш 4 возбуждения н импульсной характеристики голосового тракта Сигнал в точке D. полученный с помощью обратного дискретного преобразования Фурье, называется кепстром Кепстр в точке D равен сумме кепстров функции возбуждения н импульсной характеристики голосового тракта Покажем зто В общем случае, комплексный кепстр сигнала х(н] определяется как обратное преобразование Фурье от логарифма комплексного спектра Х(ш) Для модуля кратковременно!о спектра |-V(ty)|, который является четной н периодической функцией, можно использовать разложение в ряд Фурье io6|X(W)|= , И18) я '4 где с|п] - кепстралыме коэффициенты и С]Я]=11 jlog|X(W)|.e^^<y (4|9) Если речевой сигнал является сверткой функции возбуждения и[л| и импульсной характеристики Л[л] голосового тракта х|я) = и[л1*й(л]. (4.20) то модуль спектра |A4a>)| равен произведению модулей Ц/(л>)| и |H(tu)| - |Х(®)| = |СЧ<|/М. (4 21) Взяв логарифм от обеих частей (4.21), получим !og|A4<w)| = l0gjt/(A>)| + l0gjH(A>)| (4.22) Так как обратное преобразование Фурье является линейной операцией, то из(4.22) следует, что Сг[л] = С4л]+ с«[л], (4 23) где с.р>) и с.[п) - кепстры последовательностей ufn) и Л(л| В схеме обработке речи, изображенной на рнс.4.8 , вместо дискретно- непрерывного преобрезовання Фурье по непрерывной перемененной а> используется дискретное преобразование Фурье, определяемое на
Ойряботкя речевых и идногигияло! 15V фиксированных частотах Рис.4 9 иллюстрирует указанные преобразования для вокализованной речи. Рис 4.9 Гомоморфный анализ вокализованной речи Пульсирующая кривая С (рис.4 9) соответствует логарифму модуля кратковременного спектра Она содержит медленно меняющуюся составляющую, соответствующую амплитудно-частотной характеристике голосового тракта, и быстро меняющуюся составляющую, обусловленную периодической функцией возбуждения Выполнив ОДПФ логарифма спектра, получим кепстр, который является функцией времени. Медленно меняющаяся составляющая спектра соответствует области малых времен кепстра, а быстро меняющаяся периодическая составляющая спектра соответствует удаленному пику а кепстре (рис.4.9), возникающему через интервал времени, равный периоду основного тона. Для невокализованной речи указанный пик будет отсутствовать Поэтому кепстр может использоваться для опрсделеиия'псрнода основного тона и характера речи (вокализованная или цсвокалнзованная). Амплитудно-частотная характеристика голосового тракта получается низкочастотной фильтрацией сигнала, действующего в точке С (рис 4.8). В результате этого будут подаалены быстро меняющиеся элементы
iw Глава 4 на кривой С (рис. 4 9) Фильтрация может быть выполнена по методу быст- рой свертки. Для этого вычисляется ОДПФ сигнала С, полученный кепстр умножается на подходящую функцию окна, пропускающую лишь область малых времен кепстра, и затем выполняется ДПФ В результате такой обра- ботки получим сглаженный спектр (рис. 4.9, кривая Е) Резонансные пики на кривой Е позволяют определить формантные частоты. Используя оценки формантных частот голосового тракта и период основного тона, можно син- тезирован» речь на основе модели, изображенной на рис 4.1 4.6 Анализ речи на веиове линейного предсказание Анализ речи на основе линейного предсказания базируется на исполь- зовании модели речевою сигнала, представленной на рис.4.1 Основная за- дача метола состоит в том, чтобы по наблюдениям последовательности от- счетов речевого сигнала л[п) определить коэффициента <з(/г] цифрового фильтра указанной модели [14,15,17]. Найденные значения коэффициентов, которые называют коэффициен- тами чинейиого предиктивного кодирования (ЛПК), могут применяться при определении частоты основного тока, при кодировании речи в соответствии с АДИКМ. в задачах распознавания и синтеза речи Главное допущение метода линейного предсказания сосюнт в том. чю речевой отсчет на выходе голосового тракта л[л| может быть предсказан по линейной комбинации своих предыдущих значений и значению сигнала и|п| г = -£<4*J s(n-*] + G «[л] (4.24) *-i где (j - коэффициент усиления; /’ порядок линейного предсказателя В этом случае передаточная функция предсказатсзя соответствует переда- точной функции рекурсивного фильтра 1.1 Определение коэффициентов линейною предсказания речи имеет пря- мое отношение к спектральному анализу, основанному на использовании ЛР-модели Вместе с тем, использование модели, приведенной на рис.4 1, вносит некоторую специфику Поэтому рассмотрим оценивание ЯПК речи подробнее
Обрвботк» рея; вы 1 и аудиосигналов 161 Так как отсчеты возбуждающей последовательности ы[л) неизвестны, то последовательность *[п] может быть предсказана только по своим пре- дыдущим значениям р ?!«] = -£<4*) (426) 1*1 Ошибка предсказания в этом случае будет равна Р = Ф’]- ?["]= s["l+ Е я[/ф[л- А] (427) 1 = 1 Определим коэффициенты таким образом, чтобы сумма квадратов ошибок предсказания была минимальна £ = = Е + (42В) Для минимизации (4.28) найдем частные производные (4.28) по яр) и приравняем их к нулю “_.О, да[к) 1 < к 5 Р (4 29) В результате получим систему уравнений /* ЕАмЕ^^нл-дан-Е^М"-'»]. Нэе» А I п л где 11R] - оценки коэффициентов а[А]. В обшем случае суммирование в (4 30) должно выполняться по всем значениям л Однако на практике суммирование но л в уравнении (4 30) вы- полняют для ограниченного числа отсчетов л[л]. чтобы соблюдалось усло- вие стационарности л[н|. Для этого ограничивают последовательность j(hJ с помощью окна н[н) |\(л] н(л] , 0 < п < N - L 0 для других п (4 31) Тогда систему уравнений (4 30) можно переписать в виде /г . l<m<P д-L Н 32) где
161 Глав» 4 *•[/»]= £ Ф]ф + «1 (4 33) fl - —X автокорреляционная функция ограниченной последовательности л'р>] Так как автокорреляционная функция является четной, тс фл]=г[-лг], то (4.32) можно записать в матричной форме 40) -(1) 421 - r[P-lf о[1) ' Г4П' 44 г(0] 44 г(Р-2] а[2| = -Г121 Г|Р-1| dP-2] 4°1 /ЦР). |/И. Матричное уравнение (4.34) имеет структуру аналогичную уравнению (2.35) и может быть решено с помощью рекурсивного алгоритма Левинсона - Дарбииа. В соответствии с этим алгоритмом решение для предсказателя m-го порядка получается на основе решения для предсказателя ?м-1 порядка Формально алгоритм определяется следующими соотношениями [4,14,15,17): Го,=г[0]. (4.35) фн)+ £ а,Ф>1 - у] Ctm' — кт , (4 37) а/"' = с/"4’ + кто* - у'"’1*, 1 < у < т - 1 (4 38) Е1т> = (]-кт*)Е'т’" , (4 39» Уравнения (4 35 4 39) решаются рекурсивно для т-1, 2. Отмс- тим, сто для /н-I параметр ffi'” = £» = 44/4^1 м = (I _ )40| Лля конечною решения порядка /' коэффициенты линейного предсказания бу- дут равны ci[y| = а/1 ; , I < j < Р (4.40) Коэффициенты к„ называются коэффициентами отражения. Н" представляет сумму квадратов ошибки предсказания для предсказателя lit- re порядка Автокорреляционную функцию последовательности <(н| оцени- вают на основе соотношения:
Обработка pwhix н аудиосигналов 161 = L5'l/’l'5'trt+"Н но) Линейное предсказание речи можно использовать для определения частотной характеристики голосового тракта // <е'~г-) =--------------------- l + £a[fr]e Лш"“ (442) tri Данная характеристика соответствует медленно меняющейся состав- ляющей кратковременного спектра речевою сигнала. На рнс 4 10 представлен кратковременный спектр речевого сигнала и АЧХ голосового тракта, вычисленная с помощью (4 42) Порядок фильтра Р=28 На графике АЧХ хорошо представлены форманты. ISCOL 1Ж/)| t£ 50 0 -50 -100 0 2000 4000 6000 6000 10000 /.Л Рис 4 10 Кратковременный спектр и АЧХ голосового тракта Недостатком рассмотренного метода определения ЛПК является необ- ходимость вычисления матрицы автокорреляций Кроме этого, если вычис- ленные значения ЛПК применяются при синтезе речи в соответствии со схемой, покатанной на рнс 4 1, то возникают вопросы обеспечения устойчи- вости цифрового рекурсивного фильтра высокою порядка В настоящее время развит класс методов, которые оценивают ЛПК не- посредственно по отсчетам последовательности sfn] и которые лучше при- способлены для решения задач синтеза речи Эти методы базируются на ис- пользовании лестничною фильтра [ 17] Рассмотрим алгоритм Левнисона-Дарбнна Параметры а»'"' пред- ставляют коэффициенты предсказывающего фильтра m-го порядка Опре- делим передаточную функцию
IM Г лям 4 (4 44) (4 45) (4 46) Л'-'(з) =1 + £ш-.’ • (W i -1 Эта передаточная функция соответствует инверсному физыпру н яаяяетс» обратной по отношению к передаточной функции предсказателя (4 25) I- соответствии с (4 27) на вход инверсного фильтра поступает речевой сигна; л(п]. а на выходе формируется ошибка предсказания. Ошибка предсказания для предсказателя гп-го порядка будет равна Г[я]=4л] + £(Л[лЧ] Найдем г-преобразование (4 44 у Тогда D*"*(z) = /1m(z)S(z) Подставив (4.38) в (4.43). получим А '"*( = )= 1 + £ + к..а~ .**- 11 Отсюда получаем рекурсивное выражение для вычисления Подставляя (4 47) в (4.45), получаем выражение для ошибки предсказания D‘-’(z)= Л<—’(2)S(2)+ (4 48) Первый член в (4.48) соответствует ошибке предсказания для предсказателя (т-1)-го порядка Для второго члена в (4.48) без Л. ваедем обозначение г-"Л,я"(2'1)5(2) (4.49) Выражению (4 49) соответствует разностное уравнение 61>и[л] = - т] + ' т] (4,50) Данное уравнение соответствует обратному предсказанию, т е оно позво- ляет предсказать отсчет .т[п-от] по предстоящим отсчетам у[(л-гл)+А] (рис.4.11).
Обработка рсчевыя и вуджкигнялоя 16» Отс<«ты для грают 'мдшаьм* OtCMIkl дпяобримго рддимя Рис. 4 11. Прямое и обратное предсказание Сравнивая (4.50) и (4 44), отмечаем, что А*"[н] соответствует ошибке обрат- ного предсказания Таким образом, ошибка прямого предсказания (4.48) может быть представлена в виде <Г-’[л] = 4/,и-"[л ] + Ь61" "[п - 1 ] (4 51) Выполнив аналогичные преобразования для (4.50). получим симмет- ричное выражение для ошибки обратного предсказания 6'"’[п] = 6‘"-”р| - 1] + 4-ст,’""[п] (4 52) Уравнения (4 51) н (4 52) являются рекуррентными и определяют ошибки предсказаний для предсказателя т-го порядка через ошибки пред- сказания для предсказателя (т-/)-го порядка При этом для предсказателя нулевого порядка е/"(л] = 6°[п] = $[л] (4.53) Уравнения (4 51) и (4 52) соответствуют лестяличхо.иу фильтру и могут быть представлены в виде структурной схемы, изображенной на рнс.4.12 Коэффициенты отражения А. могут вычисляться в соответствии с уравнениями (4 35 - 4 39) Однако имеется и иная возможность В {11,36| показано, что коэффициенты отражений можно вычислять через ошибки предсказания тГ[л] и А"[л) в соответствии с соотношением "(л - 1] А. = __________________________________________ 4*0 л * и
16b Гл1м 4 z' Рис .4.12. Структурная схема лестничного фильтра Выражение (4 54) является нормированной корреляционной зависимо- стью и показывает степень корреляции между ошибкой прямого предсказа- ния и ошибкой обратного предсказания Поэтому коэффициенты иногда называют коэффициентами частной корреляции. Уравнение (4.54) может использоваться вместо уравнения (436) при оценивании коэффициентов линейного предсказания Оценки коэффициентов кя лестничного фильтра, вычисленные с помо- щью (4.54), будут находиться в диапазоне -1 £ Л. £ I Достоинством лест- ничного фильтра является низкая чувствительность к шумам округления Соответственно коэффициенты лестничного фильтра допускают более гру- бое квантование. Благодаря этому гарантируется получение устойчивого фильтра Важное отличие оценивания ЛПК с использованием лестничного фильтра от автокорреляционного подлода состоит в том, что коэффициенты А „ оцениваются непосредственно по речевому сигналу без вычисления ав- токорреляционной функции Обратим внимание па то. что лестничный фильтр. изображенный на рнс 4 12. в соответствии с (4 45) имеет передаточную функцию А(:) При этом A(z) является обратной по отношению к передаточной функции пред- сказывающего фильтра (4 25) Поэтому, при подаче па вход лестничного фильтра речевого сигнала -Ф’]. на выходе формируется сигнал и[л|, т е функция возбуждения Иными словами, ошибка предсказания ^[п] соот- ветствует функции нозбуждения 4.7 Сжатие речевых сигналов Наиболее важными областями применения рассмотренных способов обработки речевых сигналов являются системы низкоскоростной передачи
Обработка речевые н аудиосигналов 167 речи и компьютерные мультимедийные системы. Непосредственное коди- рование речи по методу ИКМ требует значительных объемов памяти для хранения речевых сигналов Поэтому при обработке речи в компьютерных системах не обойтись без сжатия речевых сигналов Многие методы сжатия речевых сигналов основаны на линейном пред- сказании речи В частности, линейное предсказание используется при сжа- тии речи по методу АДИКМ. Стандарт G726. определяющий алгоритмы АДИКМ, устанавливает для данного типа сжатия речевых сигналов ниж- нюю скорость передачи 16 Кбит/с Дальнейшее снижение скорости пере,дачи возможно при использовании схем ацалнз-сюгтез речи, учитывающих особенности цифровой модели формирования речи (рис 4.1) Применяют два варианта таких схем - без об- ратной связи и с обратной связью [36] На рис 4 13.а приведена схема сжатия речи бет обратной связи, осно- ванная па анализе по метолу линейного предсказания и синтезе речевого сигнала в соатвететэнн с моделью, представленной па рис 4 I Здесь рече- вой сигнал л[п] разбивается на сегменты длительностью 20-30 мс На каж- дом из сегментов с помощью устройства оценивания (УО) определяются коэффициенты линейного инверсного фильтра-анализа Ф1 10-го порядла Кроме этого, на этапе сжатия с помощью выделителя основного тона (ВОТ) и анализатора тон-шум (Т-Ш) определяются соответствующие параметры функции возбуждения В колере выполняется кодирование коэффициентов фильтра и параметров функции возбуждения, которые затем передаются по каналу связи или сохраняются в памяти В восстанавливающем устройстве (рнс 4 13,6) сначала происходит де- кодирование коэффициентов фильтра и параметров функции возбуждения, а затем выполняется синтез речевого сигнала т[л] в соответствии с моделью, изображенной на рис 4.1 Для этого в зависимости от значения признака тон-шум (TUI) на вход фильтра-синтеза Ф2 подается сигнал либо с выхода генератора топа (IT), либо с выхода генератора шума (П11). В технике свя- зи устройство, выполняющее сжатие и восстановление речевых сигналов по приведенной схеме, называют нокооерпм Для кодирования периода основ- ного тона используют 6 бит. хзя коэффициента усиления - 5 бит, для при- знака тоЮшум - I бит, для коэффициента усиления - 5 бит. для коэффици- ентов линейного предсказания - 8-10 бит С учетом того, что для каждого сегмента речи оценивается десять коэффициентов предсказания, получим 97-117 бит на один сегмент Скорость передачи при хтителыгости сегмента 30 мс составит примерно 3000 бит/с В схеме, изображенной на рис. 4.13.6, параметры возбуждения (частота основного тона, признак тоть'шум, форма сигнала возбуждения) формиру- ются без учета их аяняння на качество синтезированной речи Поэтому вое-
IM Гл1и 4 становленная речь воспринимается как механическая и не обеспечивает узнаваемости голоса.) Рис 4.13 Сжатие речевых сигналов в схеме без обратных связен Для повышения натуральности речи используется схема анализа- синтеза с обратной связью фнс.4 14) В пой схеме возбуждающая последо- вательность формируется путем минимизации ошибки восстановления ре- чевого сигнала, те разности между исходным речевым сигналом ,т(лJ и вос- становленным сигналом .vfn) Восстановленный речевой сигнал формирует- ся с помощью фильтров Ф1 и Ф2, на вход которых подается сигнал с выхо- да генератора функции возбуждения (ФВ) Фильтр Ф1 учитывает кватнце- риодическне свойства вокализованных участков речи, а фильтр Ф2 модели- рует формантную структуру речи Инверсный фильтр, соответствующий фильтру Ф|, является фильтром долговременного предсказания, а инверс- ный фильтр, соответствующий фильтру Ф2, называется фильтром кратко- временного предсказания.
Обработка ргчг»ы1 н аудиосигналов 169 Фильтр долговременного предсказания описывается передаточной функцией ft(z)= I - (4 55, где (z)= az и Г - задержка, соответствующая периоду основного тона, равная 20-150 интервалам дискретизации. Если на вход фильтра дол- говременною предсказания подать сигнал ошибки кратковременного пред- сказания «/*-[«]. го в соответствии с (4.55) ошибка долговременного пред- сказания будет равна <*л ["1 = dK Р>1 - adx [л - г ] (4 56) Рис 4 14 Сжатие речевых сигналов в схеме анализ-синтез Данная ошибка по своим свойствам близка к белому шуму с нормаль- ным законом распределения Это упрощает формирование сигнала возбуж- дения. так как при синтезе последовательности Лл] ошибка долговременно- го предсказания выступает в роли сигнала возбуждения Фняьтр с передаточной функцией W(z) (рис <1 14) позволяет учесть особенности слухового восприятия человека Для человека шум наименее заметен в частотных полосах сигнала с большими значениями спектральной плотности Этот эффект называют маскировкой (см §4 в) Фильтр W(z) учитывает эффект маскировки и придает ошибке восстановления различный вес в разных частотных диапазонах. Вес выбирается гак, чтобы ошибка вос- становления маскировалась в полосах речевого сигнала с высокой энергией Принцип работы схемы, изображенной па рнс 4 14. состоит в выборе- функции возбуждения (ФВ), минимизирующей квадрат ошибки (МКО) вос- становления Существует несколько различных способов формирования функции возбуждения многонм пульс ное, регулярно-импульсное н векторное (кодо- вое) возбуждение |36| Соответствующие алгоритмы представляю! много- импульсное (MJ.PC). регулярно-импульсное (RPE-LI*C) и шлейное туд-гмьп-
I7<1 Гл»»» 4 зание с киймы возбуждением (code excited linear prediction - CELP). MLPC использует функцию возбуждения, состоящую из множества нерегулярных импульсов, положение и амплитуда которых выбирается так. чтобы мини- мизировать ошибку восстановления. Алгоритм RPE-LPC является разно- видностью ML PC, когда импульсы имеют регулярную расстановку В пом случае оптимизируется амплитуда к относительное положение всей после- довательности импульсов в пределах сегмента речи. CELP представляет способ, который основывается па векторном квантовании В соответствии с этим способом из кодовой книги возбуждающих последовательностей вы- бирается каазислучайный вектор, который минимизирует квадрат ошибки восстановления. Кодовая книга используется как на этапе сжатия речевого сигнала, так и на этапе ею восстановления. Для восстановления сегмента речевого сигнала необходимо знать номер соответствующего вектора воз- буждения в кодовой книге, параметры фильтров Arf') и А(:у коэффициент усиления (I Восстановление речевого сигнала по указанным параметрам выполняется в декодере только с помощью элементов, входящих в верхнюю часть схемы, изображенной на рис.4.14 В настоящее время применяется несколько стандартов, основываю- щихся на рассмотренной схеме сжатия: 1) RPF.-l.PC со скоростью передачи |3 Кбкт.'с используется в качестве стандарта мобильной связи в Европейских странах; 2) CELP со скоростью передачи 4,8 Кбнт/с. Одобрен в США федераль- ным стандартом FS-IO16. Используется в системах скрытой телефонной связи; 3) VCELP со скоростью передачи 7,95 Кбнт/с (vector sum excited linear prediction). Используется в цифровых сотовых системах в Северной Амери- ке. VCELP со скоростью передачи 6,7 Кбнт/с прнпкт в качестве стандарта в сотовых сетях Японии; 4) LD-CELP (low-delay CELP) одобрен стандартом МККТТ С 728 Н данном стандарте достигается небольшая задержка примерно 0,625 мс (обычно методы CELP имеют задержку 40-60 мс). используются короткие векторы возбуждения и не применяется фильтр долговременного прсдскаш- пня с передаточной функцией Яг/с> Необходимо отметить, что рассмотренные методы сжатия речи, нс- пользующие линейное предсказание с кодовым возбуждением, хорошо при- способлены для работы с речевыми сигналами в среде без шумов. В случае шумового воздействия на речевые сигналы синтезированная речь имеет плохое качество Поэтому в настоящее время разрабатывается ряд методов линейного предсказания с кодовым возбуждением для использования в шу- мовой обстановке (ACELP. CS-CELP)
Обработка речевых н вудносигналов 17] 4.8 Сжатие аудиосигналов 4.8.1 Пснхоакустнческан модель восприятия звука По сравнению с речевыми сигналами аудиосигналы характеризуются более широким частотным диапазоном (Ю-2.!ОООГц), большим динамиче- ским диапазоном, большей изменчивостью сш игральных свойств, многока- нальностъю (стерео звук). Частота дискретизации аудиосигналов обычно равна 44,1 кГц. Данная частота используется при обработке звука в цифро- вых магнитофонах, при записи звука на компакт диски. Каждый отсчет зву- кового сигнала предстааляется 16-ти разрядным двоичным кодом. В случае стерео звука это создает цифровой поток со скоростью передачи 2 х44,1 х 16х 1000 = 1,41 Мбит/с. На практике из-за наличия дополнительной служебной информации скорость передачи оказывается существенно выше. Так. при считывании отсчетов звуковою сигнала с компакт диска формиру- ется цифровой поток со скоростью 4.32 Мбит/с Ограниченная пропускная способность каналов связи, ограниченная емкость запоминающих уст- ройств требуют сжатия аудиосигналов. Сжатие аудиосигналов основано на учсте особенностей слуха челове- ка. Ухо человека воспринимает звуковой сигнал в изолированном от внеш- них шумов помещении, если звуковое давление превышает некоторый по- рог, называемый абсолютны.и порогом слышимости (АЛС) Зависимость ЛИС от частоты аппроксимируется нелинейной функцией (рис. 4 15) [36]. 7(/') = 3.64(//100(^s-6.5е uwplutM,''1) + 10 '(//I00Q)' дБ (4.57) Как отмечалось выше, внутренне ухо человека выполняет кратковре- менный спектральный анализ на основе механизма критических частотных полос (табл 4 1) Если в критической частотной полосе находится несколь- ко спектральных составляющих, то наблюдается явление частотного маски- рования Суть его состоит в том. что спектральная состааляющал (тон) с низким уровнем может нс прослушиваться, если в этой же критической по- лосе имеется спектральная составляющая звука с более высоким уровнем (рис.4,15) Спектральная составляющая с высоким уровнем повышает порог слышимости и маскирует присутствие составляющих с низким уровнем Повышенный порог слышимости называется порогом маскирования. Все спектральные составляющие, уровень которых ниже порога маскирования, не прослушиваются. Зависимость порога маскирования от частоты определяется уровнем и частотой маскирующей составляющей, а также уровнями и частотами маскируемых спектральных составляющих. Порог маскирования имеет .максимальное значение на частоте маскирующей спектральной с оста ал я кэ- шей и снижается при уменьшении или увеличении частоты. При уменьше-
Глава 4 ннн частоты относительно частоты маскирующей составляющей порог мас- кирования снижается быстрее, чем при ее увеличении, те составляющие, частоты которых лежат выше частоты маскирующей частотной составляющей, маскируются в большей степени Рис.4 15 Абсолютный порог слышимости и порог маскирования Качественный характер изменения порога маскирования показан на рис 4 16 Разность между уровнем маскирующей составляющей и порогом маскирования называется отношением сигнал-маска (ОСМ) ОСМ имеет максимальное значение для левой границы критической полосы (точка А на рис. 4.16). На рис. 4.16 также показан уровень шума m-разрядного кванто- вателя Если отношение енгиал-шум (ОСШ) больше, чем ОСМ. то шумы квантования будут маскироваться основной спектральной составляющей Разность ОШМ(/и)=ОСМ-ОСШ(/и) называется отношением шум-маска (ОШМ) Шумы квантования не будут прослушиваться, если ОШМ будет иметь отрицательные значения. Учет этого обстоятельства позволяет уменьшить количество двоичных разрядов, отводимых для представления спектральных составляющих На рис 4 15 показана маскирующая составляющая только в одной критической полосе. На практике наблюдается присутствие маскирующих спектральных составляющих во многих полосах Такие составляющие ока- зывают взаимное влияние на пороги маскирования в соседних полосах В результате этого образуется суммарный порог маскирования Частотные со- ставляющие, уровень которых ниже суммарного порога маскирования, не воспринимаются на слух н, соответственно, могут быть исключены из спек- тра сигнала при его записи и хранении в запоминающих устройствах или при передаче по каналам связи. Это позволяет снизить требования к емко- сти запоминающих устройств ияи пропускной способности каналов связи
Обрвботкв речевых и вудногигналов 173 полоса полоса Рис 4 16 Отношение сигнал-маска Помимо частотного маскирования, описанного выше, важную роль в восприятии звука играет временное маскирование. Временное маскирова- ние наблюдается в том случае, когда два звука появляются через короткий интервал времени Тогда звук, характеризующийся большим уровнем зву- кового давления, может частично или полностью маскировать присутствие звука с меньшим звуковым давлением, даже в гом случае, если маскируе- мый звук предшествует маскирующему Это связано с переходными про- цессами во внутреннем ухе, которые формируются маскирующим звуком Продолжительность эффекта временного маскирования до воспри- ятия маскирующего звука равна примерно 5 мс Продолжительность маски- рующего эффекта после окончания восприятия маскирующего звука равна 50-300 мс. Временное маскирование используется для подавления предва- рительного эхо, которое наблюдается прн восстановлении сжатых звуковых сигналов. Предварительное эхо прослушивается до появления восстанов- ленного звукового сигнала и обусловлено шумами квантования, распро- страняющими свое действие на весь блок данных, подвергшийся сжатию, в гом числе и на ту его часть, которая предшествовала звуку Сжатие аудиосигналов с учетом рассмотренных особенностей вос- приятия звуков человеком называют перцептивны.» кодированием, т е ко- дированием, основанным на восприятии. 4.8.2 Перцептивное кодирование аудивенгналов Алгоритмы перцептивного кодирования обеспечивают снижение кор- реляционной зависимости между отсчетами аудиосигнал а, а также исклю- чение элеме)ггов сигнала, не воспринимаемых человеком на слух. Достига-
174 Глава 4 егся это вычислением слабо коррелированных спектральных составляющих аудиосигналов и адаптивным квантованием только тех составляющих, уро- вень которых выше порога маскирования Применяются два основных подхода для построения перцептивных кодеров: кодирование с использованием гребенки полосно-пропускающи.х фильтров и кодирование с применением ортогональных преобразовании [33] Оба подхода основаны па выполнении кратковременного спектрально- го анализа входных аудиосигналов В первом случае входной аудиосигнал поступает на блок фильтром анализа, состоящий из М полосовых фильтров, каждый из которых пропус- кает соответствующую частотную полосу аудиосигнала Полосы пропуска- ния фильтров-аналнза частично перекрываются и выбираются так. чтобы сумма выходных полосовых сигналов соответствовала исходному аудио- сигналу Выходной сигнал каждого из фильтров децимируется с коэффици- ентом М и подвергается адаптивному квантованию Алгоритмы адаптивно- го квантования учитывают свойства слуховой системы человека [3 декоде- ре выполняются обрашые процессы полосовые сигналы сначала интерпо- лируются с коэффициентом М, а затем восстанавливаются с помощью бло- ка полосовых фияьтров-с интеза. Из-за перекрытия полос пропускания фильтров в процессе децимации могут возникать искажения. Данные иска- жения обусловлены шумами наложения. Шумы наложения могут быть по- давлены, если в качестве полосовых фильтров использовать квадратурные зеркальные фильтры |3,33]. Однако последующее квантование выходных сигналов фильтров не позволяет исключить их полностью. Это снижает ди- намический диапазон восстановленного сигнала. □о втором случае на основе ортогональных преобразований вычис- ляются слабо коррелированные спектральные коэффициенты, которые за- тем подвергаются адаптивному квантованию Обычно а качестве ортого- нального преобразования применяется дискретное преобразование Фурье или днскрспюе косинусное преобразование (ДКП). каждое из которых мо- жет вычисляться па основе алгоритма БПФ. □ декодере реализуются обрат- ные процессы При этом конечная длина преобразований приводит к появ- лению краевых эффектов в восстановленном аудиосигнале. Краевые эффек- ты проявляются в точках сопряжения блоков отсчетов, полученных с по- мощью обратных ортогональных преобразовании Для снижения уровня краевых эффектов применяется модифицированное дискретное косинусное преобразование (МДКП) МДКП основано на 50%-ом перекрытии блоков отсчетов входного аудиосигнала при выполнении спектрального анализа Часто спектральный анализ и последующий синтез аудиосигналов выполняется с помощью гибридною банка фильтров, который использует как линейную фильтрацию, так н ортогональные преобразования. Основ- ным преимуществом такого подхода является возможность выполнения спектрального анализа с большей разрешающей способностью, что нозво-
Обработка речевых и 1удноснгия.к>1 175 ляет полнее учесть особенности слуховой системы человека Высокая раз- рашающая способность спектрального анализа аудиосигналов может быть получена с помощью гребенки фильтров, выходные сигналы которых под- вергаются дальнейшему анализу с помощью МДКП Такой подход исполь- зуется при сжатии аудиосигналов в соответствии со стандартами, предло- женными экспертной группой MPEG (Moving Piciure Experl Group) Одним из отрицательных эффектов, который проявляется при исполь- зовании рассмотренных подходов к сжатию аудиосигналов, является пред- варительное эхо Предварительное эхо прослушивается, когда в пределах одного сегмента аудиосигнала, подвергающегося ортогональному преобра- зованию, имеется участок молчания и участок со значительным уровнем звука (рис 4 17,а). 1 (аличне участка с высоким уровнем звука приводит к росгу шага квантования н, соответственно, росту ошибки квантования При выполнении обратного ортогонального преобразования полученная ошибка квантования распространяет свое действие па весь сегмент (рис 4 17.6 N=IO24) Предварительное эхо может быть частично подавлено за счет явления временного маскирования, если продолжительность эхо неве- лика Продол Ж1пельность эх о* можно сократить, если выполнять ортого- нальные преобразования коротких сегментов аудиосигналов (рис4 17,в N-256) Однако преобразование аудиосигналов па коротких сегментах уве- личивает общее число анализируемых сегментов и, следовательно, приво- дит к росту скорости передачи Решение проблемы состоит в динамическом изменении (переключении) длины сегментов Типовое значение длины сег- мента лежит в диапазоне от N=64 до N=l024 Указанное переключение воз-
176 Глава 4 можно на основе анализа стационарности участка аудиосигнала Короткие сегменты используются на нестационарных участках аудиосигнала. На ста- ционарных участках выполняется переключение на длинные сегменты Рис.4.18 Перцептивный кодер на основе ДКП На рнс. 4.1 в изображена упрощенная схема перцептивного кодера ау- диосигналов, основанного на применении ДКП D рассматриваемой схеме входной сигнал разбивается на сегменты, длиной 512 отсчетов Каждый сегмент отображается в частотную область с помощью ДКП. Затем выпол- няется масштабирование и адаптивное квантование коэффициентов ДКП на основе психоакустического анализа ДКП-спсктра Спектральные состав- ляющие, уровни которых ниже порога маскирования (рис 414). исключают- ся из дальнейших преобразований Квантование спектральных составляю- щих, с уровнем выше порога маскирования, осуществляется в соответствии со значением ОСМ Чем больше значение ОСМ в соответствующей полосе, тем большее число двоичных разрядов отводится для представления спек- тральных составляющих данной частотной полосы Эта операция выполня- ется в блоке динамического назначения разрядности Кодированные значе- ния спектральных составляющих и информация пснхоакустнческого ана- лиза мультиплексируются и передаются в кацап связи или запоминаются в устройстве хранения информации В декодере выполняются обратные опе- рации 4.8.3 Сжатие аудиосигналов в соответствии со стандартами ISO/MPEG Экспертная группа MPEG совместно с международной организацией стандартов ISO разработана серию стандартов для сжатия звука и изобра- жений, обозначаемых MPEG-I, MPEG-2, MPEG-4. Стандарт MPEG-1 поддерживает передачу цифрового видео со скоро- стью 1.2 Мбттт/с (с качеством аналогового видеомагнитофона) и цифрового звука со скоростями 32-192 Кбнт/с (моно режим) и 64-384 Кбит'с (стерео режим с качеством компакт-диска) Стандарт MPEG-2 (IS 13818) в своей видео части поддерживает пере- дачу высококачественного видео (включал телевидение высокой четкости)
OflpiSoTKi речевых и вудиоеигняло» 177 со скоростью от 3 до 15 Мбит'с, а в звуковой части низкоскоростное ко- дирование многоканального звука со скоростью 64 Кбит/с и ниже MPEG-2 поддерживает от 2-х до 5-ти широкополосных звуковых каналов Стандарт MPEG-4 предназначен для применения в области мультиме- диа систем MPEG 4 предусматривает широкий набор средств, позволяю- щих выполнять передачу звуковых и речевых сигналов с низкими скоро- стями от 2 до 64 Кбит/с. В звуковую часть стандарта включены следующие возможности параметрическое низкоскоростное кодирование речи (2-10 Кбит/с). среднее корост н ос кодирование речи на основе схем анализ-синтез (6-16 Кбит/с); кодирование аудио и речевых сигналов с использованием гибридных банков фильтров и ортогональных преобразований (ниже 64 Кбит/с) Стандарт MPEG-4 обеспечивает высокую степень сжатия и охва- тывает широкий диапазон звуковых сигналов от HF стерео звука до кодиро- вания речи, включая синтез речи. На основе зтого стандарта обеспечивается сопряжение звуковых каналов различного качества. Стандарт предусматри- вает дополнительные функции, такие как временное масштабирование, упрааяенне частотой основного топа, доступ к базам данных Стандартом MPEG-1 предусматривается сжатие аудиосигналов с по- мощью систем трех уровней сложности Системы сжатия верхних уровней сложности включают возможности систем нижних уровней. Структурная схема системы сжатия аудиосигналов, соответствующая первому и второ- му уровню сложности, показана па рис 4 |9 Система может функциониро- вать с частотами дискретизации 48 кГц, 44.1 кГц. 32 кГц Ехид ЬмНК |- ; аорм.1 лизаими [ | МуЛкТИ- плексор - Я Рис 4 19. Кодер и декодер аудиосигналов MPEG-1 (уровни I н II) Входной аудиосигнал с помощью банка анализирующих фильтров разделяется на 32 полосовых сигнала Фильтры обладают полнфазной структурой |3) и их импульсная характеристика задастся 512 коленицисп- тамн При частоте дискретизации 48 кГц полоса пропускания каждого фильтра равна 24000/32 -750 Гц Спектральный анализ, выполняемый с по-
I 7* Глава 4 мощью такого набора фильтров, характеризуется недостаточным частотным разрешением в области нижних часто!, так как полоса пропускания одного фильтра перекрывает несколько крнтичежих частотных полос (габл ! li Выходные chi налы филыров децимируЮ1СН с коэффициентом 32. т е час- тота дискретизации понижается до критического значения, равного 1500 Гц Импульсная характеристика фильтра, пропускающего сигналы к -он частотой полосы, получается путем умюжения импульсной характери- стики Л[п] ФНЧ, выступающего в качсстлс фильтра-прототипа, на модули- рующую функцию, которая обеспечивает требуемое смещение полосы про- пускания ФНЧ /\(и] = A[n]cos[(2* - I)/(2Л/) + ]], (1 58) гдеМ-32. Л--1.2...32. «=1.2..512 АЧХ низкочастотного фильтра прототипа характеризуется ослабле- нием 3 дБ в полосе пропускания и 96 дБ в полосе подавления Переходные полосы фильтров существенно перекрываются. В результате этого возмож- но появление шумов наложения [33], которые исключаются соответствую- щим выбором фазового сдвига р[*] Выходные сигналы фильтров разбиваются на блоки по 12 отсчетов (уровень I) и 36 отсчетов (уровень II) в каждой полосе Над каждым блоком выполняются операции нормализации и квантования Нормализация вы- полняется таким образом, чтобы максимальный отсчет в каждом блоке имел единичное значение В пределах блока сохраняется одно и то же рас- пределение уровнен квантования по частогным полосам. Для целей психоакустического анализа и определения суммарного порога маскирования используется БПФ гр 512 точек (уровень I) и па 1024 точки (уровень II). В каждом из указанных случаев входной сигнал взвеши- вается с помощью окна Ханна В блоке психоакустического анализа хзя каждой маскирующей составляющей вычисляется индивидуальный порог маскирования Суммарный порог маскирования получается путем сложения индивидуальных порогов и абсолютного порога слышимости Отношение сигнал-маска определяется как разность между уровнем маскирующей со- стааяяющей в полосе и минимальным значением суммарного порога маски- рования в этой же полосе Число уровней квантования для каждой полосы определяется в блоке динамического распределения разрядности, в котором используется итера- ционный алгоритм минимизирующий отношение шум-маска в каждой час- тотной полосе. Эго обеспечивает получение минимально допустимой раз- рядности Представления полосовых сигналов В кодере, относящемся к уровню I, квантованию подвергается блок из 12 отсчетов в каждой частотной полосе. При частоте дискретизации 48 кГп это соответствует 8мс аудиосигнала (384 отсчета). В кодере, опюсящемся к
Обряботкя Р*ЧС»Ы1 и вудност налов (7У уровню II, квантованию подвергаются одновременно три блока по 12 отсче- тов (т е. 36 отсчетов), что соответствует 24 мс звукового сигнала При этом для всех трех блоков используется одно и тоже распределение разрядности квантования по чаетотпым полосам Однако коэффициенты нормализации для каждого нэ блоков вычисляются индивидуально. 13 зависимости от из- менчивости коэффициентов нормализации в канал могут передаваться 1.2 или 3 значения коэффициентов нормализации Квантованные значения ука- занных блоков совместно с информацией о распределении разрядов по по- лосам передаются в цифровой канал Когда уровни спектральных состав- ляющих в частотной полосе оказываются меньше суммарного порога мас- кирования в данной полосе, отсчеты соответствующего полосового сигнала ие передаются, г.е. для квантования сигнала данной полосы выделяется О бит. 13 декодере выполняется восстановление выходных сигналов полосно- про пуска ют них фильтров и синтез исходного аудиосигнала. Для этого сна- чала выполняется приведение квантованных значений отсчетов в каждой полосе к исходной разрядности и их масштабирование Выполняется это па основе имеющейся информации о распределении разрядности кваотования по частотным полосам Если в какой либо частотной полосе разряды кван- тования не распределялись, то соответствующие отсчеты считаются нуле- выми Когда кодер и декодер реализуются в виде одного устройства, банк фильтров может быть обшнм для кодера и декодера. 13 кодере и декодере звуковых сигналов, относящемся к уровню 111, с целью повышения разрешающей способности по частоте и более полного учета особенностей слухового восприятия человека применяется гибрид- ный банк фильтров В этом случае предусматривается выполнение МДКП н адаптивное переключение длины анализируемых сегментов аудиосигнала для подавления предварительного эхо Высокое частотное разрешение достигается выполнением дополни- тельного спектрального анализа выходных сигналов полосовых фильтров Такой анализ выполняется с помощью 6-ти или 18-ти точечного МДКП Так как МДКП использует 50%-ое перекрытие анализируемых сегментов, то максимальное число спектральных компонент по всем полосам равно 32x18=576 Следовательно, раз решаю и (ал способность спектрального ана- лиза будет равна 24000/576=41.67 Гц Короткое МДКП (6 точек) применя- ется в случае необходимости подавления предварительного эхо Результаты МДКП подвергаются неравномерному квантованию и ко- дированию Хаффмана Чтобы шумы квантования были ниже суммарного порога маскирования, распределение разрядности по полосам выполняется на основе итерационной схемы анализ-синтез. Рассмотрен нал схема сжатия звуковых сигналов позволяет снизить скорость передачи аудиосигнала до 14 Кбит/с
Глава 5 ОБРАБОТКА ИЗОБРАЖЕНИЙ 5.1 Устройство компьютерных снсгем обработки изображений Под обработкой изображений понимак>1 совокупность компьютер- ных методов обработки цифровых chi налои изображений Гпноная схема обработки изображений показана на рис 5 1 В общем случае система может обрабатывать сигналы нескольких каналов, выбор которых осуществляется видео мультиплексором Для цветных изображений используются три цве- товых компоненты, красная R (Read), зеленая G ((jreen) и синяя R (Hluei Вместо грех цветовых составляющих могут быть использованы |рн черно- белых камеры или другие источники ПЭВМ Рис 5 1. Типовая схема усзройства обработки изображений С целью согласования уровней видеосигналов со входом последую- щего аналого-цифрового преобразователя применяется блок нормировки уровня, прслстааляюший собой программно управляемый усилитель В ка- честве стандартных источников видеоинформации используются аналого- вые или дискретные камеры Последние построены на базе матрицы свето- чувствительных злементов па основе приборов с зарядовой связью (ПК.') н в зарубежной литературе называются CCD-камерамн
Обработав нэображгннй На рис 5.2. приведены параметры и вид видеосигнала одной строки телевизионного черно-белого изображения, соответствующие европейским нормам, регламентируемым международным консультативным комитетом по радио (((Ш) Кроме информации о распределении яркости вдоль строки в сш нале присутствуют импульсы строчной и кадровой синхронизации, ко- торые определяют начало строки н кадра текущего изображения Эти им- пульсы могут быть выделены схемой синхронизации видеокарты и исполь- зованы для формирования импульсов внутренней синхронизации. Основ- ные параметры телевизионных сигналов в соответствии с европейскими (ССЦ1) и американскими (№-170) нормами приведены в табл.5 1 Рнс.5 2 Параметры телевизионного черно-белого изображения Видеосигнал преобразовывается в цифровую форму аналого- цифровым преобразователем (АЦП), в котором происходит дискретизация и квантование видеосигналов Стандартом установлена частота дискрети- зации 10 МГц н 256 1радаций уровней квантования (8-битовое слово) При этим изображение представляет собой матрицу размером 512x512 элемен- тов изображения (пикселов) Новое поколение систем обработки изображе- ний является более гибким В них количество строк развергкн и частота Дискретизации могут быть заданы программно, что позволяет оцифровы- вать нестандартные видеосигналы, поступающие, например, с электронных микроскопов, ультразвуковых и инфракрасных датчиков, а также обрабаты- вать видеосигналы европейского (СС1Н/ и американского (№-170) стандар- тов. Так например, в видеокарте VISTA, работающей в стандарте CCIR мо- жет быть установлено количество строк 592 при числе элементов в строке 578 Частота дискретизации при этом составляет 14,1875 МГц При работе в стандарте /6-170 эти параметры соответственно равны 756. 486 и 14,3182 МГц
I Bl Глава 4 При цифровой обработке необходимо учитывать следующие осо- бенности оцифровки телевизионных изображений I) из 576 видимых строк изображения европейского стандарта ССИ< большинство видеокарт оцифровывают только 512 Причем стандартом не установлено, какие из 576 строк используются, в связи с чем в видеокартах различных производителей выделяются не одни и те же группы строк; 2) пикселы имеют не квадратную, а прямоугольную форму, что ока- зывает влияние на процесс съема и фильтрации данных; 3) в системах с С( 73-камерами такговал частота дискретизации не соответствует тактовой частите считывания с чувствительных элементов камеры. Поэтому элементы изображения нс соответствуют чувствительным элеме)гтам, что приводит к появлению вертикальных мешающих полос на экране монитора. В салзи с эти необходимо предусматривать внешнюю синхронизацию генератора строчной развертки синхроимпульсами (.'(/)• камеры; 4) обычные видеокамеры работают в режиме чересстрочной разверт- ки, при которой полное изображение представляется а виде двух полукал- ров, состоящих из нечетных н четных строк соответственно. Оба полукадра считываются с камеры последовательно с интервалом 20 мс В связи с этим оба полу кадра имеют разную освещенность, чго приводит к мерцанию не- подвижных изображений Поэтому при обработке следует использовать только один пол у кадр, либо обеспечить одинаковую освещенность четного и не чел юго полукалров. Таблица 5 1 - Параметры телевизионных сигналов Параметры CCIR RS-170 Частота строк Гс, кГц 15.625 15.7343 Время строчкой развертки (с, мкс 64 63.5556 Нерабочее время 1, мкс 11.8414 10.7556 Частота кадров Гк, Гц 50 59.9401 Время кадровой развертки (к, мс 20 16,6833 Нерабочее время 1, мс 1.5360 1,2711 Количество строк всего 625 525 Количество активных строк 576 485 Оцифрованное изображение до занесения его в видеопамять подвер- гается. как правило. предварительной обработке, в холе которой осуществ- ляются гомогенные операции над пикселами Для этой цели используется одна ияи несколько (8 - 16) таблиц перекодировки, так называемых !.<><& Up-Table (I.UT).
Обработка изображений IH1 Видеопамять является одним из важнейших блоков системы обработки изображений, в которой хранятся один или несколько кадров изображения Каждая ячейка памяти служит для хранения 8 или 16 битов Большинство систем позволяют запоминать от 2-х до 16 кадров, в связи с чем емкость видеопамяти должна быть в пределах от 0,5 до 16 Мбайт Видеопамять име- ет сложную внутреннюю структуру, обеспечивающую одновременную за- пись и отображение изображения. Использование двухпортового интерфей- са (dual-ported memory) обеспечивает одновременный доступ к памяти как со стороны видеопроцессора, так и со стороны процессора ПЭВМ Гибкая система адресации памяти позволяет автоматически осуществлять инкре- мент/декремент адресов строк и столбцов после каждого цикла доступа к ней, а также оперативно получать или модернизировать адреса В ряде ви- деокарт предусмотрена возможность сегментации памяти, при которой осуществляется доступ к строке или некоторому фрагмешу изображения. Последнее является очень важным для повышения быстродействия выпол- нения операций дискретно-косинусного преобразования при сжатии изо- бражений В вычислительном блоке (видеопроцессоре) производятся все опера- ции над изображениями или отдельными его фрагментами Типичная по- следовательность операций видеопроцессора сводится к 'пению изображе- ния из одной или нескольких страниц видеопамяти, выполнения операций над изображением и записи результатов обработки в дручую страницу па- мяти Основными операциями, выполняемыми в вычислительном блоке, являются: - изменение яркости и контрастности. - усреднение, - пороговая обработка. - выделение контуров; - различная фильтрация, - преобразование координат, - сжатие и воссгановление изображений и др Главной особенностью видеопроцессора является высокая скорость обработки, которая достигается за счет реализации ряда операций аппарат- ным способом, выполнения нескольких операций одновременно, использо- вания таблиц, применения специализированных процессоров В выходном блоке осуществляется преобразование выбранных из видеопамяти цифровых данных в видеосигнал и выдачи его па монитор или вндеорскордср Как правило, блок состоит из трех идентичных канвлов, в которых производится обработка красной II, зеленой 6’ и синей Н состав- ляющих цветного видеоизображения Значения отсчетов каждой из цвето- вых компонент могут быть перекодированы с помощью соответствующих /.(/'/-таблиц. Использование таблиц позволяет модифицировать выходное
1Я6 Глям •! где лк - количество элементов изображения с уровнем g Очевидно, что О £ W $ 1 Статистика распределения полутонов и. следовательно, гистограммы являются основой для так называемых точечных операций, которые могул изменять это распределение В зависимости от вила гистограммы различаю! (Рнс 5 4,а) - унимодальные (одногорбовые), (Рис 5 4,б) - бимодальные (лву- горбовые) и мультимодальные распределения (Рнс 5 4,в) Вид распределе- ния играет существенную роль в задачах изменения контрастности и сег- ментации изображений. Рис. 5 4 Гистограммы рас пределен ня уровней элементов изображения: а) унимодальное, б) бимодальное, в) мультимодальное Для оценки среднего информационного содержания изображения используется его энтропия Н = K-U Если в состав некоторого фрагмента изображения входят элементы с одинаковым уровнем, то его называют гомогенным. Для гомогенного изо- бражения справедливо соот ношение /’/Х) 1 при д - л : /‘/(ц) О в противном случае Прн выполнении многих операций над изображениями часто исполь- зуются точки цифрового изображения, окружающие данный пиксел Мио-
ОСрвботкв юобрьжений ПР жество точек, соседних по отношению к заданной, называются окрестно- стью №ii Здесь буквой i обозначается количество точек окрестности З ак например, 4-точечная окрестность Л'51 (Рис. 5 5,а) определяется выражением Д54(д ,>) = [(л - 1,у),(х + 1,у).(л,) + 1),(т,>' - I)], (5.2) а 8-точсчная окрестность (Рнс. 5 5,6) NSS-вы ражен нем №И(*.У)« [(х - l,y+ I).(т - ।,хХт- 1,г- 1),(л,у + 1), (л J’- l).(jr + l.y + 1),(х+ l,j).(x + l.j- I)} x-lj-1 JT.J-1 x-l.y-l X-I..F x.y x Lj x-l.r 1 Kr-1 б) Рис 5.5 Иллюстрация видов окрестностей опорной точки а) 4-точечная окрестность; б) 8-точечная окрестность Приведенные выше определения окрестностей нс включают цен- тральной точки (х,у/. В ряде случаен целесообразно включать в рассмотре- ние и сс. Тогда имеем №>4(*Э')'-' {(л j )} н Л'59(х,у) = Л38(л.>)с ((х,у)] Аналогично можно определить и другие окрестности Множество всех входящих в окрестность пикселов вместе с цен- тральной точкой представляют собой фрагмент нзображения, который на- зывают чипом Функция окна h задала в пределах его размеров т*п, где т- число строк, а н-чнело столбцов окна, при этом т Мил- N h ~ ((у) I £ I £ ш л 1 £j £ w ) (53)
IU Глава 4 Форма окна может быть произвольной, хоти на практике в большинстве случаев используется квадратная или прямоугольная форма. Для определе- ния местоположения окна задаются координаты опорной точки (Ы). вы- бранной внутри окна В случае прямоугольного окна в качестве опорной выбирают точку с координатами / = /лгср.-Я I и J =/ил.хи4 —- I (5 Ji Позиционирование окна Л можно описать посредством движения опорной точки 0J) Позиционирование окна h на относительную опорную точку (г.*/ соответствует сдвигу окна на вектор (г-/, v-J), Операцией над изображением называется процедура, в результате которой исходное изображение fix.y) преобразуется в другое - fix у) Анали- тически она записывается в виде Г Iff). (5 5) где - оператор преобразования исходного изображения Операция им изображением называется локальной, если/'(х.у) зависит от значения J(x.y) в' точке (х.у) множесгва NSfx.y). Если NSfx.y)-(fx.y)} и f'(x.y)-T(ffxy)), то Т называется точечной операцией. Она яаяяется специальным случаем ло- кальной Линейные локальные операции можно представить в виде 2 ЛХ'У^Л) (56) где hiijy локальный оператор (или оператор окна), который определен я окрестности \!$(х.у) Поведение функции А в окне А:Х может быть задано пользователем путем указания ее значений в клетках окна Выражение (5 6) представляет собой дискретную свертку / и А В области пространственных частот эго выражение может быть за- писано как произведение спектров/ н А, тс АжН. Поэтому локальный опе- ратор хФжно рассматривать как фильтр пространственных час гот На и|>фекгивностъ алгоритмических решений существенное аяиянне оказывает предстааяенне данных. Наиболее целесообразным является цко- нцческос прслсзааяение, при котором атеисты полутонового или бинарного изображения, образующие двумерный массив, хранятся в памягн в вектор- ной форме Для изображения / размером значение элемента изображе- ния ffx.y) с координатами (х.у/ заносится в память с индексом (5 7) (у \)М х.
ОбряОоткя ммбщжсннй ISV где х - индекс столбца (слева направо), а у - индекс строки (сверху вниз) Строка изображения соответствует при лом обычно одной записи (record) файла При Л/-Л-512 и G-256 полутоновое изображение занимает в нако- пителе 256 кбайт. В некоторых изображениях формат видеоданных задается т о., что первая запись резервируется для обшей управляющей информации, а первая строка изображения записывается, начиная со второй записи Векторные (многоканальные) изображения могут быть однозначно представлены последовательностью скалярных изображений fij?. . /„ От- дельные матрицы изображений /<,/;. .. . t„ образуют в итоге одну трехмер- ную матрицу размером МхМхп, элементом которой является значение изо- бражения f,(x.y). соответствую шее координатам (х.у.о. Линейное потнцио- нироваинс i.iL-ментов трехмерной матрицы изображения можно осущест- вить несколькими способами, располагая пикселы в памяти а) построчно, б) поканально. в) канально-строчным способом. При построчном формате одна запись состоит нз строки элементов изображения, принадлежащих одному скалярному изображению /, При этом в памяти последовательно располагаются п записей .тля отдельных строк векторного изображения Элемент f.fx.yy изображения располагается на позиции (у I) пМ (i 1/А/ х (5 8 ) В поканальном формате в накопитель последовательно заносятся значения элементов сначала первою канала затем второго /_• и наконец с- го /. Элемент изображен ня//х.у) располагас1ся па позиции (у 1/AW (у-1}М -х (5.9) В канально-строчном формате л-я запись состоит нз А/ групп по л значений в каждой одноименных пикселов одной из строк векторного изо- бражения f 11ри этом с канальных значений frfx.y). f:(x.y/, . fdx.y) распола- гаются непосредственно друг за другом Прн обработке изображений из видеобуфера выбираются фрагменты изображения, которые заносятся в рабочую память, а после обработки они снова возррашаются в исходный буфер Размер и форма фрагмента зависят от используемого алгоритма Для обработки изображений целесообразно выделять в памяти две области данных В первую записывается исходное изображение, а во вторую - результирующее (выходное) Такое решение по- зволяет производить быстрое сравнение изображений, а также применять параллельную обработку с помощью локальных операторов Передача дан- ных нз буфера исходного изображения в рабочую память осуществляется обычно построчно Применяемые для операторов окна покрывают по высоте несколько строк. Поэтому при переходе от одной строки к следующей необходимо
iw Глава 5 обеспечить быстрое пополнение требуемых данных. В конце каждой строки необходимо кроме этого занести в буфер результирующего изображения обработанные значения. При ширине окна п строк и расположении опорной точки в середине окна необходимо вначале считать первые п строк в буферный накопитель BVF(\ М. j). ft -1, ... п). расположенный в рабочей памяти При считывании видеоданных исходного изображения, попавших в окно размером пхл, значения пикселов записываются в одномерный массив, причем индекс : изменяется от 1 до а. где а п' На рис 5.6 показана последовательность нумерации ячеек окна, обычно принятая в литературе [29]. м 33 32 31 30 29 28 31 ts 14 13 12 11 10 36 16 4 3 2 10 26 зт 17 5 |д) 1 9 25 38 >8 6 7 а 24 48 3» J9 20 21 22 23 47 40 41 42 43 44 45 46 Рнс 5 6 Индексация ячеек окна 5J Предварительная обработка информации 5.3.1 Линейная фильтрация изображений Целью предварительной обработки видеоданных является уменьшение зашумленности информации, повышение ее контрастности. резкости, подчеркивание контуров На этапе предварительной обработки осуществляется также фильтрации сигналов изображении Качество изображения во многом определяется его контрастипапып, которвл представляет собой разность между максимальным и минимальным уровнями полутонов в некоторой области изображения, например, в окне (локо.тыгоя контрастность') или всего изображения (глобальная контрастность) Путем усиления контраспюсти можно улучшить рахличнмость отдельных структур изображения или уменьшить искажения, вызванные влиянием условий получения изображений в оптико- электронных преобразователях
ОСряботкя изображений 141 Слабый контраст - наиболее распространенный дефект фотографических н телевизионных изображений, обусловленный ограниченностью диапазона воспроизведения яркое! ей, нередко сочетающийся с нелинейностью характеристики передачи уровней (градационной характеристикой) Одним из эффективных путей улучшения качества изображения является использование метода контрастного растягивания, прн котором заданный диапазон изменения яркости входного изображения f(x.y) линейно растягивается на всю шкалу уровней полутонов [0 - (6-1)] В результате этого расширялся диапазон изменения яркости выходного изображения Г(х.у) и тем самым изображение становится более контрастным. Наиболее распространенным и простейшим способом контрастного растягивания (градационной коррекции) является линейное преобразование /'(J.y)=0 для f(x.y) щ. f (л,>')= u _ u (6 - О для м, <d(x.y) Zltj . (5 К» /'(*>у) ~ G - I для t(x.y) к,, где ur. Uj - минимальное и максимальное значения яркости входного изображения Результирующая кусочно-лниейиал градационная характеристика, построенная по (5 10), показана на рис 5 7.а Во многих случаях контрастность можно повысить, изменяя яркость каждого элемента изображения с помощью некоторого нелинейного оператора преобразования, который связывает яркость изображения на выходе с яркостью входного изображения. Математически операция преобразования представляется в виде степенной функции Пх.у) = (С-1) “г ’ 6 - I (5 11) или S- образной функции преобразования и = (G-1)-771 5 для 0 S u S s ; v: = (G- 1) ДЛЯ SS11S 1, (5 12) где и /(х.У) (6-1) - нормированное значение функции входного изображения, v Г(*.У) (6-1) - нормированное значение функции
19 J ГлаваS выходного изображения, х - 5 (CAI) - нормированное значение точки перегиба характеристики изображения, г- показатель степенной функции Нелинейные характеристики преобразования показаны на рис 5 ?.б Изменяя показатель г, можно получить выпуклую (г I) или вогнутую (г I) характеристику преобразования. В первом случае при высоких уровнях яркости изображения в результате преобразования растягиваются уровни светлых элементов, а при низких уровнях • сжимаются темные элементы Во втором случае наблюдается обратная картина Прн 5-образной характеристике при г I происходит растягивание шкалы уровней серого около точки перегиба 5 и сжатие на обоих концах шкалы. В случае г I происходит обратное действие. а) б) Рис.5.7. Характеристики преобразования изображения а) кусочно-линейная, б)нелинейные Линейная фильтрация изображений имеет свои особенности по сравнению с фильтрацией радио- и аудиосигналов Эти особенней;in связаны с двумерной природой самого изображении, которая приводит к тому. что вместо одномерных фильтров, предназначенных для фильтрации сигналов одной переменной, при фильтрации изображений прнмспянн двумерные фильтры Двумерная фильтрация осуществляется с использованием оконных функций. Последователь кость значений выходного изображения О [(юрмируется путем дискретной свертки входного поля / с функцией окна дли задания которой используются локальные операторы Фильтрация производится путем перемещения слева направо (или сверху вниз) окна (апертуры) на одни пиксел При каждом положении окна осуществляется перемножение весовых коэффициентов с соответствующими значениями исходного изображения, суммирование полученных произведений, нормирование результата суммирования и присвоение центральному элементу окна полученного значения Эти однотипные операции многократно повторяются для каждого положения окна Наиболее часто применяются окна размером 3x3 и 5x5 Функция окна определяется
Обрлботтса изображений ИЛ множеством весовых значений h(i.j), задаваемых для каждого (ij)-ro элемента окна Пусть окно имеет размер m*n элементов, текущий элемент, которого задается координатами (tj) t = 1,2,..., т - текущая строка; j - 1,2,.... п - текущий столбец Позиционирование окна на изображении определяется с помощью условного центра (LJ) окна (в системе координат окна) Условный центр определяется таким образом, что он при нечетных размерах окна совпадает с его центральным элементом: I =Г(т+1У21 , 7 = Г(Д+1У21, где Гх1 обозначает целую часть от числа х Леку шее положение окна на неходком изображении f обозначим через (r.qj Отклик фильтра присваивается той же точке (r,qj профильтрованного изображения Q Массив пикселов выходного изображения формируется путем дискретной свертки входного изображения f и функции окна h(ij) = £ £ f(r - I + t,q - J + y)A(j,y) /-I Формула справедлива лишь при условии, что функция окна не выходит за пределы исходного изображения, т с. выполняются условия 15 г £ N т - t, J iif -п j. где М. N- размеры изображения Пример 5.1 Пусть имеется прямоугольное окно размером 3*3 вида Л, - 1/10 I I 2 I I I Т огда выходное значение фильтра определяется как = +Jr“l? +х'-' ’+ 2jr,; +v'*'+JC'^-' где z ,f - элементы входного (исходного) изображения, попавшие в окно фильтра При линейной фильтрации с помощью оконных функций различают два случая:
гм I) сумма коэффициентов A'A' оконной функции отлична от нуля Импульсный отклик такого фильтра имеет низкочастотный характер и поэтому содержит постоянную составляющую, т.е. фоновую компоненту Для получения этой компоненты значения коэффициентов следует делнгь на величину ,SK, 2) сумма коэффициентов SK=0. Фильтр имеет высокочастотный характер и служит для выделения верхних пространственных частот (повышения резкости изображений, выделения контуров и т д.) Импульсный отклик содержит отрицательные составляющие. которые не могут быть представлены в результирующем изображении с положительными значениями полутонов Поэтому при воспроизведении результирующего изображения необходимо сдвинуть уровень черного на величину G72 и уменьшить динамический диапазон изменения яркости до <7/2. 5,3.2 Подавление шумов и сглаживание Изображение может искажаться помехами различного происхождения Их влияние можно минимизировать, используя классические методы линейной локальной фильтрации (24]. Для подавления шума часто применяются фильтры, использующие следующие оконные операторы (Рис 5 7) h2 1У9 I I I I I I I I I Рис 5.7 Шумоподавляющие операторы Функция h2 осуществляет усреднение по всем элементам, попавшим в окно С помощью функции />ь благодаря большим весам, подчеркиваются (выделяются) четырехсвязные элементы исходного изображения, т.е горизонтальные н вертикальные линии Если необходимо подчеркнуть диагональные лнннн. то следует выделить восьмнсеязные элементы исходного изображения, не являющиеся чегырехсвязнымн Для этого целесообразно применять окопную функцию представленную на рис 5 8 ha - 1/16 2 1 2 I 4 I 2 I 2 Рис 5 8 Шумолодавляюший оператор с выделением диагональных линий изображения
Обработке изображений 1И Нормирующий коэффициент оконных функций выбирается то., .чтобы процедура подавления шума не вызывала смещение средней интенсивности обработанного изображения. Существенным недостатком линейной фильтрации изображений является го. что наряду с уменьшением шумов одновременно происходит размывание контуров изображения Это вызвано тем. что все элементы исходного изображения обрабатываются с одинаковым коэффициентом, т е. линейные фильтры являются независимыми от структуры элеме)гтов н поэтому они не могут определить разницу между зашумленными и контурными элементами. Чтобы уменьшить размывание изображения. целесообразно использовать метод селективного сглаживания В ряде случаев, если яркость пикселов входного изображения распределена по нормальному закону, весьма эффективной при проведении предварительной обработки может оказаться сигма-фильтрация, при которой учитываются только те элементы входного изображения (находящиеся внутри окна), яркость которых находится в пределах Ах ±2 о Здесь Ех - математическое ожидание, а ст - среднсквадратнчсское отклонение яркости пикселов изображения 5,3.3 Нелинейная локальная фильтрация Основное отличие нелинейной фильтрации от линейной заключается в том, что выходной сигнал формируется нелинейным образом от данных исходного изображения, а для рекурсивной фильтрации - нелинейным образом or отфильтрованного иа предыдущих шагах изображения В системах обработки изображения наиболее широкое применение находят два класса нелинейных фильтров Фильтры, относящиеся к первому классу, используются для подавления шумов, а фильтры второго класса - для подчеркивания перепадов яркости Весьма эффективным методом для подавления шумов является медианная фильтрация, в процессе которой сначала производится сортировка по величине пикселов, попавших в окно филыра, а затем имена значения опорной точки (х.у) величиной яркости пиксела, расположенного в середине (на медиане) этого ряда В связи с этим медианный фильтр нс оказывает влияние на ступенчатые и линейно- изменяющиеся сигналы Прн лом медианный фильтр подавляет импульсные выбросы исходного изображения, если длительность импульса составляй менее половины ширины окна Так. например, если фрагмент изобреження. попавший в окно фильтра, имеет вил (Рис 5 9,а), то после медианной фильтрации его опорный элемент принимает значение 39 вместо исходного 28 (Рнс 5 9.6) Для медианной фильтрации med (./) справедливо следующее правило вычисления, которое описывает суммирование константы со значением
11* Глям 5 последовательности и умножение последовательное!и па некоторый коэффициент с med|c-yil>| -С’ тесЦ/^), и tncd|c/?Ay| с medj/M) 51 19 47 42 28 161 33 21 39 а) После обрабо!ки med {Г] - 39 51 19 47 42 39 161 33 21 39 6) Рис 5.9 Иллюстрация медианной обработки фрагмента изображения Однако нс является справедливым. что медиа!гное значение суммы двух последовательностей равна сумме их медианных значений Поэтому медианный фильтр является нелинейным Медианные фильтры нередко применяются итеративно, причем обработка повторяется до тех пор, пока на профильтрованном изображении нс прекратятся изменения 5.4 Подчеркивание перепадов яркости и границ Сглаживающие фильтры подавляют верхние частотные компоненты изображения. что приводит не только к уменьшению влияния шума, но и к потере мелких объектов изображения Во многих задачах распознавания образов необходимо выделять границы объектов, подчеркивать перепады яркостей, селектировать мелкие объекты Для реализации таких задач используются гак называемые дифференциальные операторы В гик их операторах сумма элсмс!пов оконной функции h равна нулю, что свидетельствует о том, что в зонах изображения с постоянной яркостью они дают нулевой отклик Дифференциальные опера юры используются .зля вычисления гралне!гга функции Операция взятия I ради ей та преобразует исходное изображение в новое с подчеркнутыми границами Классическая функция |раднента имеет вид ) = —---—-cos & + -г-:—— sin 0 c.t cy Абсолютное значение функции градиента определяется как
Обработки изображай ий 197 а угол & равен в = arcig df /ду\ df ! дх J На практике применяют различные аппроксимации абсолютного значения градиента s = у/s; + s , а для уменьшения затрат на вычисление градиента можно воспользоваться формулой Г = Р . I+ |У | или S = max (|Sj,|Sr|) а направление границы определять следующим образом 6 = arcig (5 г / 5 t). Здесь 5’, н - приращения функции изображения по направлениям т и у, которые вычисляются по формулам X f(x \yj 5, J(x.y \/ f(x,y/ Соответствующие окна для определения направлениям х ну изображены на рис 5.10. первой производной в 0 0 0 0 0 0 ft . = 0 -1 0 0 -1 1 0 1 0 0 0 0 Рис.5.10 Дифференцирующие операторы по направлениям хну Существует много операторов, полученных из градиентных и служащих хья обнаружения грации Одним из простейших является оператор Робертса, который определяется следующим образом h&.y) - max{\f(i.y)-j(X' l.y)l ,\j(x- \y)-J(x.y 1)1 ], или приближенно ?/x.y> #r-l.yl)l -Iffxl.yf f(xy 1)1
J 98 Глава 5 Так, например, полагая, что после обработки фрагмента изображения (рис.5.11,а), который окружен нулями, с помощью оператора Робертса Рис.5 11. Обнаружение границы посредством оператора Робертса Кроме этого,широко применяются операторы Превита (Рнс.5.12,а), Собела (Рнс5.|2,б), рад операторов Кирша (Рнс.5 |2,в ) I О -I к = I I О О -I -1 -1 О I -I О I -I 0 1 к а) к к I О -I 2 1 О О -2 -1 h, 1 О -I 2 0-2 I О -I б) I О -I I 1 О О -I -1 h, -I О I -I О I -I О I I I О h. I О О -I -I -I а) Рнс.5 12 Градиентные операторы: а) Превита, б) Собела в) Кирша Рассмотренные выше дифференциальные операторы выделяют более сильно вертикальные или горизонтальные линии, т е они зависимы ог направления
Овряботкя и1оВр1ж«иий iw Другим видом зависимых от направления операторов являются так называемые компассираднснтиые (Рнс.5.13). Название географического направления говорит о направлении перепада, которое вызывает максимальный отклик фильтра. север ссверо- ВОСТОК юго й = восток II ) 1 I -2 1 ; А - -1 -2 1 -I -I dll ВОСТОК -III -1-11 -1-2 I ; й - -1 -2 I -111 III h юг юго- запад запад I -1 -1 I -2 -I I I 1 I -1 -2 -1 1 -1 северо- запад I I I I -2 -I I -1 -I й ’ | 1 Рис.5.13. К ом пасс-градиентные операторы Для обнаружения линиА или для фокусировки изображений во многих случаях целесообразно использовать оператор Лапласа (лапласиан), который вычисляет вторую производную функции Для непрерывных функций он представляется в виде v’ = = cos в + е. дх &у На практике лапласиан вычисляется по приближенной формуле A(jr.y> " Щх.у) - Ц&У U - J(x \,у) - f(x-1.y) f(x,y-\)| (5 13) Оконная функция Лапласиана имеет вид, представленный на рис 5 14,а. Часто вместо нее используют также функции рис 5 14,6 н рис 5 14,в 0-10 -1 -1 -1 1 -2 1 Л/л “ -1 4 -1 , М = -1 8 -1 -2 4 -2 0-10 -1 -1 -1 1 -2 1 а) 6) в) Рис 5 14 Оконные функции Лапласа
Оператор Лапласа обладает инвариантностью к повороту изображений, те на одном и том же изображении он лает один и тот же результат независимо от ориентации этого изображения Лапласиан (5)3) можно представить в несколько ином виде, который позволяет более наглядно объяснить процесс улучшения резкости изображения f(x.y)-V2f(xy) lf(xy) - f(xi.У) • t(x-i,у) J(xy!) - J(xyl)\-5f(xy) (5 14) Те его эффект достигается за счет того, чти сначала изображение усредняется, а затем из него вычитается исходное В результате линии границ на изображении становятся более резкими Если вычесть лапласиан из изображения, то получим ffx.y) - V-'f/x.y; -\f(x-\,y) f(x-1, yj flx.y V Л*)-Ы ftx.yj 4{/fr.v/ -0,25 [/(T 1.» f(xAyy f(x.y I; ~ ffx.y-l)]', (5 15) Следовательно, на исходном изображении границы усиливаются, г к к ним прибавляются высокочастотные компоненты Поэтому вычитание лалласснаиа из исходного изображения приводит к улучшению фокусировки последнего Обычно такой же эффект дает вычитание из исходною изображения взвешенного среднего 5,5 Сжатие полу тоновых черно-белых и цветных изображений 5.5.1 Кодирование изображений с частичной потерей информации Сжимаемые изображения предназначаются для восприятия их чело- веком, либо для обработки автоматическими устройствами Если изображе- ние кодируется язя передачи зрителю, то уменьшить объем передаваемой информации можно, используя особенности восприятия зрительного анали- затора [12] Поскольку точность восприятия зрительного анализатора чело- века ограничена, то это позволяет считать некоторые искажения изображе- ния незаметными или незначительными Эта особенность даст возможность сжимать исходное изображение за счет потери части малозначительной ин- формации. т. е , вносить определенные искажения. При декодировании, ес- тественно. исключенная информация нс может быть восстановлена и изо- бражение воспроизводится с некоторой потрешностъю Различные методы кодирования вносят искажения разной степени. Поэтому при разработке системы компрессии изображений необходимо выбрать такой метод преоб- разования, который вносит наименее заметные искажения В настоящее
Обработка изображений 201 время большинство систем сжатия черно-белых и цветных неподвижных и подвижных изображений являются системами с потерей части информации. В то же время имеются области применения обработки изображений с ис- пользованием автоматических анализаторов, где потери какой-либо части изображений не допускается При проектировании и оценке эффективности методов сжатия изо- бражений необходимо иметь достоверную количественную меру качества изображения К сожалению, не существует лнвлктической объективно адек- ватной меры качества изображения для разданных систем сжатия изображе- ний Поэтому для характеристики качества применяются шкалы субъектив- ной оценки качества изображения, испытательные изображения, численные зависимости качества от искажений [8,12]. Любая «хорошая» мера качества изображен вл должна быть коррслирована с субъективными оценками каче- ства изображения, представленными в виде шкалы Существуют две шкалы субъективной оценки: шкала качества и шкала ухудшения изображения Обычно используется пятибалльная система оценок Каждая ступень каче- ства шкалы характеризует качество рассматриваемого изображения с учетом некоторого множества испытательных изображений По шквле ухудшения можно оценить степень искажения кодированного изображения по отноше- нию к некоторому исходному изображению 13 табл 5 .2 приведены шкалы качества и ухудшения, принятые в технике передачи изображений Таблица 5.2 - Шкала качества и ухудшения изображения Качество Оценка в баллах Ухудшение Отличное 5 Незаметно Хорошее 4 Заметно, но не ме- шает Удовлетворительное 3 Слегка мешает Плохое э Мешает Очень плохое 1 Очень мешает Процедура оценки качества изображения осуществляется методом эксперт- ной оценки До эксперимента экспертам предъявляется неискаженное испы- тательное изображение 13 течение эксперимента периодически показывают неискаженное изображение, сменяющееся с оцениваемым или рядом с ним Числовые оценки качества изображений делятся па два класса одно- мерные и двухмерные Одномерные используются только для одного изо-
202 Г/iim S Сражения и измерительная шкала калибруется с помощью сравнения оце- ниваемого изображения с исходным Двухмерные являются дифференциаль- ными показателями качества изображения ло обработки и после Одномер- ные методы, как правило, основываются на пространственном спектре изо- бражения. Типичные меры качества изображения включают общую или среднюю энергию сигнала на всех частотах Другой класс одномерных чи- словых мер основан на использовании статистических характеристик изо- бражения, в частности, математического ожидания н дисперсии отсчетов дискретного изображения или гистограммы полутонового изображения. Од- номерная гистограмма показывает распределение в изображении пикселей с определенным уровнем яркости Такую гистограмму можно рассматривать как аппроксимацию одномерной плотности распределения вероятностей изображения. По эе форме можно судить о контрастности изображения Аивлогично двумерная гистограмма - это аппроксимация двумерной плот- ности распределения вероятностей изображения. Ширина такой гистограм- мы в днагонвльном направлении указывает на пространственную корреля- цию изображения. Двухмерные меры качества изображения применяют наиболее часто при оценке качества сжатого изображения, поскольку они указывают на от- носительные искажения закодированного изображения по сравнению с ис- ходным. Самой распространенной мерой является с редне квадратическая ошибка, представляющая собой разность между значениями соответствую- щих пикселей исходного н искаженного изображения К сожвленню, сред- не квадратическая ошибка часто слабо коррелировала с субъективными оценками качества изображения [9]. 5.5.2 Кодирование изображений методом И КМ н ДИ КМ Прн импульсно-кодовой модуляции (ИКМ) сигнал изображения дис- кретизируется, каждый отсчет квашуется и кодируется двоичным кодом О отличие от факсимильной передачи, где сигналы квантуются на два уровня белый и черный и колируются с точностью ! бит па отсчет (нулем или еди- ницей), количество уровней квантования полутоновых изображений уста- навливается от 64 до 256, для кодирования которых затрачивается 6 8 бит Цветное изображение обычно представляет собой комбинацию трех цветов: красного (R), зеленого (Ci) н синего (Н) Каждый нз этих цветов об- рабатывается независимо от других и для кодирования каждого из них вы- деляется от 6 до 8 битов на отсчет Кодирование методом ИКМ является своего рода эталоном кодироавиня. Поэтому степень снижения скорости передачи за счет сжатия исходного сообщения одним нз предлагаемых ме- тодов обычно оценивается по отношению к ИКМ. Снижение числа уровней
Обрябеткя ишДряжений ZU1 квантования при кодировании методом ИКМ не целесообразно, гак как это вызывает появление ложных контуров, которые возникаю! та счет скачко- образных изменений уровней на участках изображения с плавными измене- ниями яркости или цвета В то же время энтропия полутонового изображе- ния составляет 4 6 бит на пиксел, что свидетельствует об избыточности кодирования сигналов изображения метолом ИКМ Для уменьшения избыточности сигналов изображения применяется дифференциальном импулымо - кодовом модуляция (ДИКМ). При твком спо- собе модуляции кодируется не полное значение отсчетов, представляющих уровень яркости элементов изображения (пикселей), а разность между те- кущим и предыдущим отсчетами сигнала Еще в большей степени уменьша- ется избыточность в системах с ДИКМ. в которых кодированию подлежит разность между предыдущим отсчетом и предсказанным значением яркости последующего пикселя. Гамой вид обработки видеосигналов является раз- новидностью кодирования с предсказанием, который наиболее широко ис- пользуется в современных системах передачи изображений При этой мо- дуляции используется то обстоятельство, что непрерывно нэмсняюшвлся яркость изображения f(x,y) может быть предсказана для различных л. Ого используется для сжатия сообщения за счет передачи только той информа- ции, которая требуется для коррекции предсказания Поскольку предска- занное значение каждого отсчета вычисляется на основе только предшест- вующих значений, то оно имеется как в кодере, так и в декодере Восста- новление отсчетов в декодере производится пугем суммирования ошибки предсказания с предсказанным значением этого отсчета Структурная схема цифровой ДИКМ изображена на рис 5 15 Рис 5.15 Структурная схема цифровой ДИКМ
км Глава $ Входным сигналом цифровой ДИКМ является ИКМ сигнал непод- вижного изображения или последовательности телевизионных кадров От- счеты исходного сигнала изображения кодируются метолом 8-разрядной равномерной ИКМ Для каждого входного отсчета яркости Л точки Л' пред- сказатель по Л'-1 предыдущим отсчетам определяет предсказанное значение f< Наибольшее распространение получили методы линейного предска- зания В этом случае предсказанное значение яркости X - го пиксела опре- деляется по формуле * 'л Л=2Л,Л-, , (516) где а, - соответствующие весовые коэффициенты Разность между предсказанным и истинным значениями АЛго отсче- та «м = А,~ /о ( 5.17 ) называют ошибкой предсказания , а соответствующий ей сигнал ошибки - разностным сигналом Весовые коэффициенты а, выбираются таким обра- зом, чтобы минимизировать дисперсию ошибки предсказания. Ошибка предсказания квантуется неравномерным оптимальным квантователем, ко- торый обеспечивает либо минимальную среляеквалратнческую ошибку квантования, либо согласуется со свойствами восприятия шумов квантова- ния зрительным анализатором человека. Затем квантованные значения ко- дируются одним из способов, позволяющим дополнительно сжать переда- ваемое сообщение Кодирование с предсказанием базируется па использовании как ста- тистических свойств сигнала изображения, так и свойств зрительного ана- лизатора В общем случае отсчеты значений яркости соседних в простран- стве пикселов коррелированы В зелевизиопиом сигнале, кроме того, суще- ствует временная корреляция между элементами изображений в последова- тельных кадрах Корреляция, или линейная статистическая зависимость, указывает па го, что'при линейном предсказании отсчета на основе сосед- них пикселов ошибка предсказания будет иметь меньшую дисперсию, чем исходный отсчет Сигнал ошибки имеет больший динамический диапазон, чем исходный он может иметь нс только положительные по и отрицатель- ные значения Однако распределение вероятностей для сигнала ошибки вы- годно отличается от распределения вероятностей исходного сигнала Ус- ловные распределения вероятностей, характеризующие связи между близ- кими элементами изображении, а вместе с тем и распределения вероятно- стей сигнала ошибки, весьма неравномерны Возникает резкий пик вокруг
Обрябеткв тобряжений нуля в распределении для разностного сигнала. так как ошибка предсказа- ния, благодаря сильным связям между соседними элементами, как правило, мала Хотя и в разностном сигнале остаются корреляционные связи (напри- мер, конгуркые лини» объектов), в целом эти связи значительно ослабева- ют. что и лает возможность утверждать о декорреляции изображений при замене исходного сигнала разностным, полученным прн линейном предска- зании В качестве критерия декорреляции обычно используют минимум среднего кнаората ошибки предсказания. Весовые коэффициенты а„ мини- мизирующие средний квадрат ошибки предсказания, могут быть вычислены, если известна корреляционная функ- ция изображения Чтобы осуществить оптимизацию линейного предсказания для ансамбля изображений, нужно знать усредненную по ансамблю функ- цию корреляции. Прн этом телевизи- онные сообщения упрощенно полага- ют стационарным случайным процес- сом т В зависимости от того, как вы- Рнс 5 16. Схема размещения пнк- бираются элементы изображения, по селов ,ю JPi.G которым ведется предсказание, все системы с ДНЕМ деляг на три (руппы одномерные. двухмерные и трехмерные. В алгоритмах одномерного пред- скатаг-;:я используется корреляция соседних элементов изображения вдоль строки развертки (строчная корреляция). Такне алгоритмы часто применя- ют на практике, так как они просты в реализации и достаточно хорошо со- гласуются со статистическими характеристиками сигнала изображения Алгоритмы двухмерного предсказания предполагают учет значений яркости пикселов, расположенных в текущей и предыдущей строках В этом случае уменьшается ошибка предсказания не только по координате х но и по у. что приводит к субъективному улучшению качества изображения Ал- горитмы одномерного и двухмерного кодирования относят к внутрикаоро- иому кодированию, ток как при этом учитываются элементы изображения только текущего кадра В алгоритмах третьей группы предсказание осуществляется сразу по трем осям, то есть, кроме пикселов, используемых в двухмерном предсказа- нии, учитываются значения отсчетов эгнх пикселов в предыдущем кадре Такое предсказание получило название межоукааровога кодирования Как правило, междукадровая избыточность достигает большой величины и ко- дирование с междукадровым предсказанием может быть весьма эффектив- ным.
206 Глям 5 Однако трудность его применения связана с необходимостью хране- ния отсчетов предыдущих кадров, чти требует огромных затрат памяти На практике используют различные формулы расчета предсказанного значения яркости Х-го пиксела /г. При сжатии неподвижных изображений в соответ- ствии с рекомендациями международного стандарта JPEG [37] для прогно- зирования отсчета текущего пиксела можзт быть использовано значение от- счета одного из соседних элеме|гтов изображения, расположенного в теку- щей ия и предыдущей строке, либо линейная комбинация отсчетов этих элементов. При учете одного пиксела яркость текущего элемента может быть определена по одной из следующих формул: fx = Jj’ fx ~ /в или fx = /< Здесь буквенными индексами А, К к С обозначены пикселы, схема расположения которых показана на рис.5.)6. Для более точного предсказа- ния значения стандартом рекомендуется использовать одну из формул fx = fx* fu~ fe - (518) А =/.+(/Д"Л )/2 , (519) Л =/«+(А-Л )/2 : (5 20) Л=(Л+Л)/2 (521) В подвижных (телевизионных) изображениях применяется чересст- рочная развертка, при которой кадр изображения состоит из двух полей, строки которых перемежаются, то есть строки второго поля кадра (четные) располагаются между строками первого (нечетными). В таких системах ре- комендуется определять предсказанное значение V-ro пиксела по формулам 18]: Jx ( 5 22 ) Л =(/|+A)/2 , ( 5 23 ) 7т’3(Л + Л-)/4-/я/2 ; (5 2-1) Л=(Л + Л)/2; ( 5 25) Л =Л + <А + А)/2-(Л-+ZJ/2 , .( 5 26) ( 5 27 J
ОбраОотка изображений Ш Схема размещения пикселов для текущего и предыдущего кадров показана на рис 5 )7 Штриховой линией обозначены перемежающиеся строки чересстрочной развертки. Рис.5 17 Схема размещения пикселов телевизионных изображений Выбор формулы (5 18 - 5 27) для расчета Д определяется характе- ром изображения и его статистическими характеристиками, а также требуе- мым качеством восстанавливаемого изображения. Зачастую выбор той или иной формулы осуществляется экспериментальным путем. Do muoihx слу- чаях целесообразно использовать различные формулы предсказания в зави- симости от характеристик сжимаемых изображений. 5.5.3 Кодирование изображений с преобразованием Кодированием с преобразованием называется процедура, при кото- рой получаемый с помощью ИКМ видеосигнал до передачи подвергается некоторому обратимому преобразованию с последующим квантованием и кодированием. Целью преобразования является превращение статиетиче-
20® Глявя 5 ски зависимых элементов изображении в независимые коэффициенты. Примечательным свойством преобразования является то, что все «важные» коэффициенты сосредоточиваются в определенной зоне Менее значимые коэффициенты преобразованного изображения отбрасываются Тем самым уменьшается объем исходного изображении. Коэффициент сжатия зависит от числа сохраняемых коэффициентов и может достигать |0. Входной сиг- нал Ли, который представляет собой оцифрованные отсчеты элементов изо- бражения, вначале разбивается на блоки (фрагменты) размером М к N * К Здесь М и N- количество элементов изображения в строке и столбце соот- ветственно, а К - количество кадров изображений. Для неподвижных изо- бражений К= 1 Структурная схема кодирования с преобразованием показа- на на рис 5 18 Отсчеты Рнс 5.18 Структур!|ал схема кодирования с преобразованием Двумерному преобразованию подвергается все изображение цни его области, называемые фрагментами. Типичный фрагмент изображения со- стоит из 8 х 8, 16 х |6 или 32 х 32 отсчетов, хотя для некоторых изображе- ний он может быть увеличен до 256 х 256 Выбор такого размера фрагмента обусловлен тем, что интервал корреляции в изображениях не превышает 8 32 отсчетов. В то же время, увеличение размера фрагмента резко уведи-
Обработка отображений чивает необходимый объем памяти, и затраты времени вычислителя на его обработку Прн сжатии изображений широко применяется преобразование Фу- рье, косинусное и синусное преобразования, преобразования Адамара. Хад- ра и Карунена-Лоэва [12]. В результате преобразования создастся некорре- лированный ряд чисел, называемый трансформантами При этом число относительно больших трансформант невелико, в связи с чем трансформан- ты могут быть закодированы гораздо эффективнее, чем информация о са- мом изображении Полученные трансформанты разделяются для последующей обра- ботки Разделение базируется на зональном или пороговом принципе Прн зональном разделении отбираются только тс трансформанты, которые нахо- дятся в заранее определенной зоне (обычно в области нижних пространст- венных частот) и оказывают существенное алняние на субъективное качест- во изображения. В случае порогового разделения отбираются трансформанты, пре- вышающие некоторый пороговый уровень. Затем производится квантование и кодирование отобранных трансформант, а остальные приравниваются к нулю За счет отбрасывания части трансформант осуществляется сжатие исходного изображения. Очевидно, что при этом происходит искажение пе- редаваемого изображения Поэтому очень важным является исключение только тех трансформант, которые мало сказываются на качестве воспроиз- водимого изображения Квантование является отображением области не- прерывных коэффициентов в область их целочисленных значений, которые далее преобразуются в кодовые слова Следует заметить, что квантование является вторым источником искажений при сжатии изображений, так как это процесс необратимого преобразования аналогового источника в его квантованный эквивалент В некоторых схемах сжатия изображений отбра- сывание несущественных трансформант производится после процесса кван- тования Квантование трансформант осуществляется в два этапа I) трансформанты нормируются измеренной дисперсией, которая определяется путем оценки большого числа фрагментов, 2) нормированные трансформанты обрабатываются квантователем, оптимальным для данной модели сигнала; число битов, необходимых для представления квантованных трансформант, определяется исходя из пред- полагаемой дясперсии трансформант до квантования и допустимого уровня искажений, выходная целочисленная последовательность квантователя по- ступает в канал и затем на вход приемника, где происходит обратное преоб- разование последовательности цроквантованных трансформант и восста- новление исходного изображения
210 Гл»м 5 Наилучшим способом преобразования сигналов изображения, обес- печивающим минимальную среднеквадратнческую ошибку, является пре- образование Карунсна-Лоэва (К-Л). На практике эти преобразование не на- шло применения в связи с тем, что для его реализации требуется знание статистических характеристик ансамбля обрабатываемых изображений Кроме того, для этого преобразования нет алгоритма быстрого вычисления. Наиболее близко по эффективности к преобразованию К-Л приближается дискретное косинусное преобразование, имеющее быстрый алгоритм вы- числений Дискретное косинусное преобразование (ДКП) яаляется родствен- ным дискретному преобразованию Фурье Однако ДКП работает не с дву- мерным сигналом (яркость f. время г), а с трехмерным (координаты изобра- жения х, у и яркость/). В соответствии с алгоритмом ДКП последователь- ность отсчетов яркости пикселей преобразуется из трехмерного пространст- ва в идентичное предсгааление в частотной области. Другими словами, по- средством косинусного преобразования осуществляется преобразование пространственной информации в частотную (спектральную). Осн х и у представляют собой пространственные частоты сигнала преобразования в двух различных измерениях При этом пространственные частоты изобре- жения по координатам х и у опредаляются числом черных штрихов (разде- ленных белыми промежутками такой же ширины, как черный штрих) в изо- бреженни. укладывающиеся в отрезке длиной I мм, перпендикулярной к этим штрихам прямой, совпадающей с н^праалениями х и у соотвегстваино Отсюда следует, что пространственные частоты имеют размерность мм'1 Дискретное косинусное преобразование яаляется обратимым, то есть, посредством обратного косинусного преобразования осуществляется перенос сигнала из частотной области в пространственное предсгааление Косинусное преобразование оперирует .с квадратной матрицей отсчетов яр- кости элементов изображения f(x.y) размером NxN пикселов Результатом преобразования яаляется квадратная матрица NxN частотных коэффициен- тов (трансформант) l'(i, j) Формулы для прямого и обратного ДКП пред- ставлены соответственно выражениями: _ . I г (2х + 1)|л- (2 у +1 )/я = tJt>y)C°S 2N ~C°S 2JV----- ' <5 28> Z/ Y 1 ГГл-чччгг -ъ (2х + 1>л- (2у + 1))7Г /(j^) = ^££CWy)F(,-y)C0S IV C0S за/ (5 29) Здесь ( Yf) н ('(j) равны 1/Уздля t.j - 0 н C(i), C(/) 1 при t.j>d,j(x.y) - зна- чение яркости пиксела фрагмента изображения с координатами х и у.
На первый взгляд формулы представляются довольно громоздкими, однако вычисления по ним программируются с помощью несложных про- цедур Отдельные выражения этих формул могут быть заменены простыми табличными операциями. Например, произведение двух косинусов целесо- образно вычислить заранее и сохранить результаты в памяти Аналогично составляется таблица значений коэффициентов ( Ь) и ('()) 5,5.4 Стандартная процедура кодирования изображений JPEG Для обобщения опыта разработки и использования методов сжатия неподвижных полутоновых изображений и разработки международного стандарта МККТТ и МОС в 1991 году была создана организация, состоя- щая из группы экспертов, которая получила название JPEG (Joint Photographic Expert Group) Разработанный комиссией стандарт алгоритма обработки изображений получил название JPEG, который определяет пра- вила сжатия многоградационных как черно-белых, так и цветных изобра- жений Стандарт состоит из ряда частей, включающих как сжатие данных без потерь, так и с частичным искажением преобразуемой информации Компрессия без потерь базируется на основе ДИКМ с предсказанием, адап- тивных алгоритмов Хаффмена нлн арифметического кодирования. Ком- прессия изображений с потерями использует метод косинусного преобразо- вания с последующим квантованием. Вносимые искажения информации при ее компрессии в соответствии с алгоритмом JPEG нс должны приводить к заметному ухудшению качества восстанавливаемого изображения, в частности, качество изображения по сравнению с оригиналом должно оцениваться на «отлично» или «хорошо» Кроме этого метод должен быть применим для любых многоградациоиных изображений, а также быть достаточно простым в реализации [34]. Структура компрессора и декомпрессора видеоинформации по стан- дарту JPEG показана на рнс. 5 19 Обратите внимание иа то, что оиа мало отличается от схемы сжатия с преобразованием, показанной на рнс.5.18. Рассмотрим подробнее некоторые особенности процедуры обработ- ки изображений JPEG. Кодируемое изображение разбивается на блоки раз- мером 8x8 элементов (пикселов) Каждый блок представляет собой 64- точечный дискретный сигнал, состоящий из последовательности целых чи- сел в диапазоне [0, 2* - 1], которые затем преобразовываются в знаковые числа диапазона [-2’1, 2*J - I] . Так, при 256 градациях яркости количество разрядов для кодирования отсчета изображения к = 8 Яркость пиксела пу- тем масштабирования переносится из интервала 0 - 255 в диапазон от - 127 до 127 В блоке прямого дискретного косинусного преобразования EDCT осуществляется вычисление в соответствии с выражением (5 28) 64-х ко-
212 Гл»»S эффицнентов преобразования (трансформант), состоящих нз последова- тельности целых знаковых чисел в диапазоне [-210, 21с - 1 ]. Пых одной сигнал блока FDCT предстааляет собой Ы-элементный мас- сив, организованный в матрицу 8x8 Амплитуды трансформант однозначно определяются исходным блоком отсчетов видеосигнала н представляет со- бой коэффициенты при дискретных частотах. Коэффициент прн нулевой частоте определяет амплитуду постоянной составляющей (IX'/, а остальные коэффициенты - амплитуды переменных составляющих (АС). В связи с тем. что элементы изображения во входном блоке изменяются слабо, то за счет косинусного преобразования удастся сгруппировать трансформанты в об- ласти нижних пространственных частот. Следует еще раз подчеркнуть, что косинусное преобразование является обратимым и не приводит к сжатию сообщения. Оно осуществляет только подготовку данных к процедуре сжа- тия, нагорал осуществляется в квашоватслс Рнс. 5.19. Компрессор и декомпрессор JPEG Целью квантования является компрессия изображения путем задания точности квантования нс большей, чем это необходимо для получения же- лаемого качества воспроизведения изображения. При сжатии трансформант можно снижать их точность квантования, причем тем больше, чем дальше расположена трансформанта от постоянной состааляюшей ZX ', находящей- ся в матрице с индексами (0,0). Снижение точности отображения трансфор- мант уменьшает количество требуемых для их представления битов. Эле- менты, которые расположены ближе к постоянной составляющей, кодиру- ются большим числом битов, а более удаленные - меньшим.
Обряботкд нюврвжеиий 21) В алгоритме JPEG операция квантования реализуется с помощью матрицы квантования Для каждого элемента матрицы трансформант имеет- ся соответствующее ему значение кванта расположенное в матрице квантования Квантование осуществляется делением каждой трансформан- ты E(tjj на соответствующий ей квант Q(t.j) и выделением целой части чис- ла =* (5.30) Значение ()(i, j) находится в диапазоне от I до 255. Величина Q(ij) । обес- печивает наибольшую точность. По мере удаления от верхнего левого угла матрицы значения квантов увеличиваются. Нетрудно заметить, что, начинал с некоторых значений, когда Q(tj) 'E(ij) кантованное значение /*'q (ij) об- ращается в нуль, т. е. происходит невозвратимая потеря части информации. Выбор величины изменения квантов Qfij) от пиксела к пикселу определяет степень сжатия и качество воспроизведения информации. Несмотря на на- личие стандартной таблицы квантов, JPEG предоставляет пользователям определенную свободу выбора элементов матрицы квантов в зависимости от желаемого качества воспроизведения В [37] предложено определять зна- чения квантов по формуле Q (', 7 1 = । + (। + • + J У * У . ( 5 40 ) где i и j - индексы элементов матрицы квантов, прн г, j I. 2 N. у- ко- эффициент качества воспроизведения изображения, задаваемый пользова- телем. Величину этого коэффициента рекомендуется выбирать в диапазоне от I до 25. Большие значения коэффициента качества также возможны, од- нако прн этом качество воспроизводимого изображения резко ухудшается. В табл.5.3 представлена матрица квантов, расе читан нал по (5.40) прн коэф- фициенте качества у ~ 2 Таблица 5.3 - Коэффициенты квантования 3 5 7 9 И 13 15 17 5 7 9 11 13 15 17 19 7 9 II 13 15 17 19 21 9 11 13 15 17 19 21 23 11 13 15 17 19 21 23 25. 13 15 17 19 21 23 25 27 15 17 19 21 23 25 27 29 17 19 21 23 25 27 29 31
JR Глвм 5 При деквантовании производится операция умножения, т с /' '(IJ) f:' q(‘J) х (5.41) Величина /'’« j) является входной для обратного косинусного преобразова- ния В табл 5 4, в качестве примера, приведены значения трансформант на выходе косинусного преобразователя произвольного фрагмента изображе- ния, а в табл.5.5 - значения на выходе квантизатора. В связи с тем, что мно- гие трансформанты приобрели нулевое значение, объем передаваемой ин- формации существенно уменьшится. 'Габлнца 5 4 - Значение трансформант перед ква1гговаписм 92 3 -9 -7 3 -1 0 2 -39 -58 12 17 -2 2 4 2 -84 62 1 -18 3 4 -5 5 -52 -36 -10 14 -10 4 -2 0 -86 -40 49 -7 17 -6 5 -62 65 -12 -2 3 -8 -2 0 -17 14 -36 17 -II 3 3 -1 -54 32 -9 9 22 0 1 3 Таблица 5.5 - Значение трансформант после квантования 30 0 -1 0 0 0 0 0 -7 -8 1 1 0 0 0 0 -12 6 0 -1 0 0 0 0 -5 -3 0 0 0 0 0 0 -7 -3 3 0 0 0 0 0 -4 4 0 0 0 0 0 0 -1 0 -1 0 0 0 0 0 -3 1 0 0 0 0 0 0 Дальнейшим шагом JPE(/-процедуры является кодирование, кванто- ванного изображения. Сначала разделяются трансформанты постоянной (ZX.’) и переменной (/1С) составляющих. Трансформанта постоянной состав- ляющей является мерой среднего значения 63-х отсчетов изображения. Так как соседние блоки изображения обычно имеют сильную корреляционную
06р»бот Ki изображений связь, то постоянная составляющая последующего блока в большинстве случаев мало отличается от IX' - составляющей предыдущего блока. Она преобразуется нз абсолютного значения в относительное, и затем кодирует- ся приращение текущей IX -составляющей по отношению к предыдущей (ДИКМ) Трансформа! гты переменных составляющих преобразуются в после- довательность способом «Зигзаг» (рнс 5 20) Последовательность трансфор- мант ЛС'ш А( '-п можно сжать методом кодирования длин повторяющихся символов (так как в образованной последовательности имеется большое число нулей), либо хаффменовскнм или арифметическим кодированием. Для сжатия последовательности -трансформант фрагмента изображения рекомендуется использовать так называемое ?>imponuwioe кодирование. При этом способе амплитуды ненулевых /К'-сосгавляюшнх отображаются не- равномерным кодом, не обладающим свойством разделимости кодовых комбинаций Поэтому для их разделения перед каждой нз комбинаций ста- вится индикатор, указывающий длину текущей кодовой комбинации. Длин- ные группы нулей , расположенные между ненулевыми трансформантами, сжимаются методом кодирования длин последовательности одинаковых символов. В соответствии с рекомендацией JPh'G отрезки энгзаг- послсдовательности, состоящие нз группы нулевых н одной ненулевой трансформа1гт, кодируются двумя символами: SYMI и 5KW2 Рис.5 20 Схема считывания отсчетов фрагмента изображения
116 ГлмаЗ HYMI представлен одним байтом, старший полубайт которого указы- вает длину ряда нулевых трансформант кодируемого отрезка, а младший - размер (количество битов) второго символа SYM2, отображающего ампли- туду ненулевой трансформанты, завершающую отрезок последовательно- сти пулевых трансформант. Очевидно, что полубайт может закодировать длину отрезка, состоящего из I ... 15 нулевых трансформант Па практике длина отрезка может быть больше 15 В этом случае длинная последова- тельность нулей представляется SYMI с кодом (15,0), отображающим груп- пу, состоящую из 16 нулей Таких символов при величине кодируемого фрагмента изображения 8x8 может быть до 3-х. Затем следует SYMI с ко- дом длины, дополняющей последовательность до действительного числа нулевых трансформант Значение SYMI с кодом (0,0) используется для ин- дикации конца кодирования текущего фрагмента отсчетов размером 8x8 Для кодирования амплитуды ненулевых трансформант используются целые двоичные знаковые числа, содержащие различное число битов (табл 5.6) Таблица 5.6 - Кодирование амплитуды трансформант Количество битов Значение амплитуды 1 -1 1 2 ОТ -3 до -2, ОТ 2 до 3 3 от -7 до -4, от 4 до 7 4 от -15 ДО -в. от 8 до 15 5 от -31 до -16. от 16 до 31 6 от -63 до -32. от 32 до 63 7 от -127 до -64, от 64 до 127 8 от -255 до -128. от 128 до 255 9 от -511 до •256. от 256 до 511 10 от •1023 до -512, от 512 до 1023 Каждая группа битов кодирует симметричный диапазон амплитуд, со- стоящий из положительных и отрицательных значений. Старший бит чисел отображает знак, а остальные - значение амплитуды Постоянная состав- ляющая трансформант /X' кодируется неравномерным кодом и представля- ется посредством двух символов. Первый символ SYMI указывает' длину, а второй SYM2 - амплитуду /Х.-составляюшсЙ В связи с тем, что посто- янные составляющие кодируются дифференциальным способом, диапазон
\ Обработка изображений 217. ИХ представления увеличивается вдвое и изменяется от -2 " до 2й - I По- этому в табл 5 6 добавляется дополнительнвл строка, a SYMI принимает 'значение от I до 11- Такой неравномерный код по степени сжатия несколь- ко уступает хаффмеиовскому или арифметическому кодам. Однако он зпа- чителыю проще в реализации и является достаточно эффективным, когда ^большинство трансформант состоит из малых значений, что чаще всего на- блюдается на практике. В процессе исследований процедуры сжатия установлено, что кодо- вые комбинации SYMI, отображающие длину нулевых последовательностей амплитуду трансформант, характеризуются большой неравномерностью вероятности появления Поэтому JPEG рекомендует производить дополни- тельное сжатие информации путем хаффмеиовского кодирования символов \SYMl Л Пример 5.2 Закодировать способом энтропийного кодирования про квантование трансфор- манты блока, приведенного в табл 5 7 Таблица 5 7 - Значение трансформант после квантования 86 -5 3 0 0 2 0 -1 12 -3 0 0 0 0 0 0 -1 17 0 0 0 -2 0 0 0 0 •1 0 0 0 0 0 0 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -7 0 0 0 0 0 0 0 0 0 0 0 0 0 На основе зигзагообразной развертки блова (рис 5 20) запишем последователь- ность значений трансформант W -5 12 -1-3 300 17 000000200 -1 21 00000000 -10 -2 000000 -7 0000000000000000000 0 О 0 0 0 0 0 Используя описанный выше способ кодирования и данные табл 5 6, получкам последовательность символов SYMI и SYM2 (7X86) (О.ЗМ-5) (0,4X12) (0,1X-1) (О.2Х-3) (0,2X3) (2,5X17) (6,2X2) (2.IX-I) (0.5X21) (8.IK-I) (1.2Х-2) (6.3Х-7) (0,0)
318 Глава 5 Рассмотренный .//•’AG-алгоритм относится к монохромным изобра- жениям Цветные изображения обычно состоят нз трех компонент красно- го, зеленого и синего цветов (К(!В - формат сигнала) В этом случае JPT.iL алгоритм рассматривает изображение так, как будто оно состоит из трех от- дельных изображений При ЯОЯ-изображении сначала сжимается красная, затем зеленая и в конце синел компонента. Для каждой компоненты могут использоваться различные таблицы квантования и энтропийного кодирова- ния, которые определяются статистическими характеристиками составляю- щих изображения. В процессе компрессии и декомпрессии осуществляется синхронное переключение таблиц в соответствии с обрабатываемой компо- нентой. 5.6 Обработка изображений в системе MATLAB Прежде, чем приступить к разработке программ по обработке изобра- жений дня цифровых сигнальных процессоров, необходимо выбрать метод и алгоритм обработан, провести их всесторонние исследования н опреде- лить оптимальные параметры процедур Затем эти процедуры должны быть реализованы в виде программных модулей, написанных на языке С или ас- семблере конкретного сигнального процессора С практической точки зре- ния представляется наиболее целесообразным проводить вышеуказанные исследования в области обработай изображений с использованием системы МА’ПЛВ, которая является удобным н достаточно простым инструментом исследования и, кроме того, в ее состав входит компилятор языка МАТ1ЛВ на язык (' и библиотека математических функций на С- Таким образом, процедуры обработан изображений, написанные в системе МАТ1АВ. без особых трудностей преобразуются в исполняемые модули для цифровых сигнальных процессоров семейств /Л/.S' и ADSP Для исследования методов обработки изображений в системе МА'ПЛВ 5.2 разработан пакет Image Procexxing Toolbox, включающий широкий набор функций, который можег быть дополнен путем написания пользователем собственных нетнпоных функций Ниже рассматриваются преимущественно тальке функции, используе- мые для задач обработан, алгоритмы которых освещены в предыдущих па- раграфах С полным списком функций и особенностями нх использования можно ознакомиться в среде MA TLAB Command Window с помощью команд help image х и help илш функции. Базовым типом данных в МАТ!АВ является прямоугольная Матрица упорядоченного множества действительных аз и комплексных элементов изображения Поэтому доступ к произвольному пикселу изображения осу- ществляется как к элементу матрицы.
Обработка изображений 31» MATLAfi 5 2 поддерживает четыре типа изображений 1) цветное индексированное; 2) полутоновое яркостное; 3) бинарное изображение, 4) цветное Ж/Я Для индексированного цветного изображения требуется наличие двух матриц: таблицы цветности и матрицы индексов. Таблица цветности (colormap) представляет собой набор используемых в изображении цветов, а матрица индексов - набор номеров (индексов) от 0 до п-1 соответствующих цветов таблицы цветности Размер таблицы цветности зависит от количест- ва jVu используемых в изображении цветов и равен Nt[ хЗ Каждому индексу таблицы соответствуют значения трех Л67) цветов. Для отображения каждо- го из этих цветов используются действительные чиста с двойной точностью в диапазоне от 0,0 (уровень черного) до 1,0 (максимальная И1гтенснвностъ) D яркостном типе изображения используется только одна матрица, со- держащая значения интенсивностей (уровней серого) каждого из пикселов. Значения интенсивности представляются реальными числами с двойной точностью в диапазоне от 0 0 до I 0 , где уровень 0,0 соответствует черному а 1,0 - белому цвету В бинарном (черно-белом) изображении используется только два уров- ня: 0 - черный и I - белый цвет В системе MATf-Afi зги уровни представля- ются числами с двойной точностью. Бинарные изображения могут быть также представлены логической (булевой) матрицей. В этом случае при об- работке изображения применяются логические операции В цветном Яб'Я-нзображеиин используются три матрицы интенсивно- стей соответствующих цветов Интенсивности представляются реальными числами с двойной точностью в диапазоне 0,0 - 1,0 Цвет и интенсивность пикселов определяется комбинацией интенсивностей соответствующих им цветовых компонент Бели тип обрабатываемого изображения заранее не известен, то его можно определить с помощью функций /.S/fJF, ISGRAY. ISfNf) или fSRGf) Эти функции проверяют на истинность соответственно бинарные черно- белые, полутоновые, индексированные или цветные RGH изображения Об- щий синтаксис функции FLAG = 1SGRAY (А ) Функция возвращает I, ве- ли это изображение интенсивностей уровня серого, в противном случае воз- вращается 0. При необходимости изображения некоторых типов мо)ут быть конвер- тированы в другой тип, в частности, можно преобразовать индексированные изображения в полутоновые или цветные (функции fNI)2(rRAY. fNl>2R(ifi), либо произвести нх обратное преобразование в индексирован- ные (функции (iRA Y2f.W. RGH21NI))
-3U Глава 5 Например, чтобы прочитать на файла fitters nf /(б'Л-изображсние и преобразовать его в индексированный тки с матрицей интенсивностей X и картой цветности (палитрой) тар, содержащей 128 цветов следует включить в программу следующий фрагмент RGB=imread ('flowers пГ); [X, map]= rgb2ind(RGB, 128); imshow (X, map). Инструментальные средства MA'l7.ЯIf позволяют обрабатывать изобра- жения отдельными фрагментами (по терминологии МАПЛВ - блоками) с использованием оконных функций. Ото позволяет снизить расход памяти компьютера и повысить скорость обработки. При этом нет необходимости программно задавать перемещения окна (блока) по изображению. Заданная функция автоматически выполняется для каждого фрагмента всего обраба- тываемого изображения. Отдельные блоки поочередно покрывают матрицу изображения начиная с левого верхнего угла. Если блоки не укладываются в 1раницах изображения, то недостающие пикселы автоматически заполняют- ся пулями. Аналогичное заполнение пулями производится при обработке пикселов, расположенных на краях изображения. Для блочной обработки в Intake Processing Toolbox используется про- цедура BLKPROC, которая выделяет отдельный блок (фрагмент) изображе- ния и передаст его в функцию определенную пользователем. Затем BLKPROC собирает возвращенные функцией блоки для создания выходно- го изображения. Функция, используемая для обработки каждого блока, должна возвращать матрицу того же размера, что и блок Функция BLKPROC описывается следующим образом В = BLKPROC (A, [m n], fun’), где А - матрица исходного, а В - выходного изображения; [гл п| - размер фрагмента в пикселах; fun - функция обработки фрагмента. При использо- вании блоковой обработки изображения с помощью функции SIZ=BESTBLK([M N ), К) можно предварительно найти оптимальный раз- мер блока Здесь М, N - размер исходного изображения, а К - предельные размеры искомого блока Для чтения изображения из графического файла применяется функция 1MREAD. Ее синтаксическое представление А = IMREAD (FILENAME, FMT) или [X. МАР| = IMREAD (FILENAME, FMT). В первом случае производится чтение изображения из файла. Если изобра- жение полутоновое, то А предстзаляет собой двумерный массив значений
Обря Вотки изобряжгиий 221 интенсивности элементов изображения D случае трехцвет ноте (ЛОТ?) изо- бражения А является трехмерным массивом размером MxNxJ /-Л/7 специ- фицирует формат представления изображения Средн форматов представ- ления графических изображений используются bmp, jpeft, рсх, nf н ряд других Функция [X, МАР] - IMREAD (FILENAME, FMT) читает индексиро- ванное изображение из файла в X , а карту цветов - в МАР Функция IMWRITE (A, FILENAME, FMT) - записывает изображение ,4 в файл с именем FILENAME и форматом FMT , а IMWRITE (X, MAP, FILENAME, FMT) - записывает в файл индексиро- ванное изображение X и связанную с ним карту цветов шар Функция IMCROP (I, [XMIN YMIN WIDTH HEIGHT]) - вырезает фрагмент изображения заданного размера Здесь XMIN, YMIN задают на- чальные координаты прямоугольного фрагмента, a WIDTH. HEIGHT - ко- личество колонок и строк фрагмента соответственно Прямоугольник может быть также определен с помощью мыши Функция IMHIST(1,N ) - отображает гистограмму распределения ин- тенсивности пикселей изображения / с числом уровней н1гтснсивносгн N По умолчанию N принимается равным 256. Функция EDGE - определяет границы интенсивности изображения. При этом в качестве параметров функции указывается метол определения границы, уровень порога и ряд других Функция HISTEQ улучшает контраст изображения за счет выравни- вания гистограммы IMNO1SE ( I, TYPE,... ) добавляет к изображению интенсивностей ) аддитивный гауссовский или мультипликативный шум типа TYPE Для каждого типа шума дополнительно задаются его параметры Для фильтрации изображений используются функции FILTER2 и FSPECIAl(TYPE) Во второй функции спецификация TYPF задает тип ис- пользуемого линейного или нелинейного фильтра В частности может быть задан один из следующих типов 'gaussian' - гауссовский низкочастотный фильтр , 'sobcl* - выделение границ на оенове оператора Собела l 'previt' - выявление границ на основе оператора Превнта , 'laplacian' - с использованием оператора Лапласа 'average* - усредняющий фильтр Кроме этого используются и другие функции фильтрации Средн них MEDFILT2 - медианный фильтр, W1ENER2 - адаптивный шумопОдааляю- ший винеровскнй фильтр В составе MATI-A8 имеется широкий набор функций для различных преобразований изображений (Image transforms), в частности:
in Гл»»»5 DCT2 н 1DCT2 - вычисление даумерного прямого и обратного дис- кретно-косинусного преобразования соответственно; FFT2 , FFTn, 1FFT2 , IFFTn- прямое н обратное, двумерное и п-мерное быстрые преобразования Фурье; RADON - преобразование Радона и ряд других. Пример 5.3 В этом примере показано использование различных функций Images Processing для обработки изображений » I-imreadt'forest.cif'); (Чтение изображения из (файла » IC« interop (I, (50 100 40 60)),- (Вырез фрагмента с (указанием координат I его начала и размеров > > imshow(I),figure(2),imshowtICJ (отображение полного и % усеченного изображения > > J«imnoise([,'gauss 1 an',0,0.05); (воздействие иа (изображение гауссовской помехи (с нулевым средним и нормированным %среднеквадратическим отклонением (равным 0,05 > > figure(3),imshow(J) % изображение на экране 1 зашумленного изображения > > м-medfi1с2(J): I медианная фильтрация » W-wiener2।J,(3 3|); % Вииеровская фильтрация > > figure (4), imshow(М),figure(5),imshow(W) > > figure (6), imhist (I), figure ("?), imhisc (IO ; (Получение l и отображение на экране I гистограмм полного и ( усеченного изображений » BWsaedge(I,'sobel1); I выделение контуров с > > BWp-edge(I,1prewict1); I использованием операторов I Собела и Превита > > figure(11,imshow(Рнз),figure(2),Imshow(PWp) (отображение гистограмм. Обратите внимание иа изменение качестка изображения при кар наци и парампров помехи н затем при проведении различных видов фильтрации, а также на существенное отличие гистограмм полного изображен ка и его фрагмента Пример 5.4 Составить программу сжатия изображения с использованием дискретно- косинусного преобразокаиия н функций блочной обработки
Обработка шобрвженнД 223 » load trees l загрузка входного изображения >> 1ind2gray(X,map); l преобразование l индексированного l изображения в полутоновое >> J’blkprocd, [6 8), 'dct2'); l поблочное l дискретно-косинусное l преобразование с блоком 8*8 > > nz-fInd tabs{Jl< 10); l нахождение индексов (пикселов,интенсивность которых меньше ( 10 > > J(nz)- zeros(size(nz)I; l замена этих пикселов l нулевым значением % (собственно сжатие) > > K“blkproc(J,(8 8],’idct2'j; I поблочное (восстановление ( изображения > > itDshow(I), figure, imshow (KI ( просмотр исходного ( и восстановленного изображений
Глава 6 ЦИФРОВЫЕ ПРОЦЕССОРЫ ОБРАБОТКИ СИГНАЛОВ (ЦПОС) 6.1 Общая характеристика ЦПОС ЦПОС' представляют собой программируемые микропроцессоры, предназначенные для реализации алгоритмов цифровой обработки сигна- лов Спектр применений ЦПОС весьма широк. Например, ЦПОС применя- ют для реализации алгоритмов кодирования и декодирования речи, распо- знавания и синтеза речи, идентификации говорящего по голосу, профес- сиональной обработки звука, передачи данных, подавления шумов, сжатия и формирования изображений, формирования диаграмм направленности антенн, спектрального оценивания и др Основные серии ЦПОС, выпускаемые промышленностью, приведены в табл.6 I ЦПОС различаются типом используемой арифметики, разрядно- стью и быстродействием Г1о типу арифметики все ЦПОС подразделяются на две группы: с фиксированной и с плавающей запятой Рассмотрению особенностей ЦПОС с фиксированной и плавающей запятой посвящены соответственно главы 7 и 8 В настоящей главе рассматриваются общие ар- хитектурные особенности ЦПОС Отличительными характеристиками ЦПОС. поддерживаемыми на ап- паратном уровне, являются высокоскоростное выполнение операции ум- ножения с накоплением, многократный доступ к памяти, специальные ре- жимы адресации; управление циклами, наличие на кристалле дополнитель- ных устройств ввода-вывода цифровых и аналоговых сигналов. Многие ЦПОС способны выполнять операцию умножения < никои ie- нисм за один командный цикл Данную операцию обычно обозначают аб- бревиатурой MAC (Multiply Accumulate) Суть МАС операции выражается оператором: R *- R + a- х (6П В соответствии с оператором (6 1) сначала вычисляется произведение ша- чепий переменных а и л, а затем полученное произведение складывается со значением переменной R Результат вновь запоминается в переменной R К выполнению МАС-опсрации сводятся многие алгоритмы обработки сиг- налов КИХ и БИХ фильтрация, вычисление корреляционных функций-
Цифровые процессоры обработки сигналов (ЦПОС) 225 БПФ, умножение векторов н матриц и др. Например, уравнение линейной фильтрации Ял J = £ *['№ - d - X - П (6 2) 1ж| 1*1 предполагает вычисление суммы произведений Основная операция БПФ - “бабочка" также соответствует сумме произведений: U 4— и + w- V, И 4— v+ (-w-v) (6.3) где w - поворачивающий множитель. МЛС-операиия реализуется в ЦПОС с помощью аппаратного умножителя и аккумулятора. Таблица 6.1 - Основные серии ЦПОС Серия Тип ВрнфкСТИХИ Длина слова, бит Быстродей- ствие, 10* хоманд/с Производи- тель ADSP- 21кх Фикснров 16 333 Analog ADSP- 21кхх Плавают 32 400 Devices DSP 16хх ФихсироВ 16 700 AT&T DSP 32ххх Плав&юш 32 20 0 DSP 56001 ФихсироВ 24 400 Motorola DSP 561кх Фикснров 16 30 0 DSP 563кх Фи кем ров 24 еоо DSP 566кх Фикси рое 16/24 600 DSP 56Вхх Фикснров 24 200 DSP 96002 Плавают 32 200 -1 TMS32O Cli Фикснров 16 88 Texas TMS 320 С2л Фикснров 16 12 5 Instalments TMS 320 С2хх фикснров 16 400 TMS 320 СЭх Плавают 32 250 TMS 320 С4я Плавают 32 300 TMS 320 С5х Фиксирое 16 500 TMS 32ОС54х Фикснров 16 660 TMS 32ОС62х Фикснров 16 1600 0 TMS 320 СВх Фикснров а/16 5x50 0 ^PD770lx Фиксирое 16 33 3 NEC Многократный доступ к памяти позволяет ЦПОС обращаться к памяти несколько раз за время выполнения одной команды. Эго даст возможность совмещать выборку очередной команды из памяти с выборкой необходимых операндов или с сохранением результатов выполнения предыдущей команды.
226 Глава 6 Для повышения эффективности реализации алгоритмов цифровой об- работки сигналов ЦПОС используют специальные режимы адресации Наи- более часто используется косвенная регистровая адресация с иослелуюшнм инкрементом адреса. Обычно такал адресация используется при цикличе- ской обработке данных . размешенных в смежных ячейках памяти Кроме этого, некоторые ЦПОС аппаратно поддерживают режим модульной (коль- цевой/ адресации, что обеспечивает работу с кольцевой очередью данных (кольцевым буфером), большинство процессоров поддерживают бит- инверсную адресацию, применяемую в алгоритмах БПФ Многие алгоритмы ЦПОС предполагают выполнение циклических действий Для повышения эффективности управления циклами ЦПОС' аппа- ратно поддерживают выполнение операторов циклов С целью обеспечения возможности ввода данных большинство ЦПОС имеют встроенные порты ввода-вывода, средства прямого доступа к памяти (ПДП) Ряд ЦПОС имеют встроенные аналоговые и цифроаналоговые пре- образователи. Указанные особенности ЦПОС рассматриваются ниже на примерах конкретных серий ЦПОС 6.2 МАС - операция н другие операции обработки данных ЦПОС Рассмотрим особенности реализации основных операций обработки данных в ЦПОС. Ого позволит выяснить общие принципы построения арифметических устройств ЦПОС Пусть требуется реализовать уравнение нерекурсивной фильтрации у(л] = Л[0] д(п] + МП' •Т1П ~ 1] + Л[2| - - 2] + й(3] Мп _ 31 (б 4) В этом случае необходимо четыре раза выполнить МАС-операцию (рис 6.1). которая в ЦПОС реализуется в соответствии с обобщенной схе- мой, изображенной на рис 6.2 Аргументы МАС-операции хранятся в X и ¥ регистрах Загрузка регистров выполняется обычно с помощью команд пересылок данных В X-регистрах хранятся значения сигнала х[л]. , х[л- 3], а Y-рсгнстрах хранятся значения коэффициентов фильтра 6(0],.... 6[3| В каждый момент времени вычисляется произведение значений X и Y реги- стров. на которые ссылаются регистры-указатели, Произведения накапли- ваются в аккумуляторе, входащем в состав устройства, реализующею МАС-операцню. На рис. 6.3 - 6 6 детально показаны различные фезы вычислений вы- ходного сигнала фильтра (6 4) в обобщенном ЦПОС Здесь использованы следующие обозначения MUI.T - умножитель, ADD-устройство сложения. АСС аккумулятор (устройство хранения суммы значений). Фазе 0 соот-
Цифровые процессоры обработки си гни о» (ЦПОС) 2П ветствуег запись текущего значения сигнала х[п] в регистр Хо и вывод результатов вычислений выходного сигнала ЯЛ'Ч. соответствующих Рис.6 2 Реализация МАС-операции предыдущему шагу (жирные линии иа рис. 6.3). В фазе I обнуляется акку- мулятор, значение х[п) переписывается из регистра Ха в X-регистр по ука- зателю. указатель Y-регистров переводится из состояния, соответствующе- го указанию иа Л(3|, в состояние, соответствующее указанию на Л[0]. В фазе 2 выполняется первая МАС-оиерация В этом случае перемножаются значения по указателям Rx и Ry, те. 0ix(n]ft[0]. После выполнения опера- ции указатели переводятся в новое состояние. Фаза 3 сопряжена с выполне- нием второй МАС-опсрации: jr[n] /i[O] Lrpi-l] ft(l ]. В фазах 4 и 5 выполняет- ся третья и четвертая МАС-опсрации Значение, накопленное в аккумуля- торе, будет равно х(л]-й[О]+х(л-1 ] Л[) ]+х[л-2 ] й[2)+х|п-3)Л13) Фаза 6 соот- ветствует вводу нового зиачсиия входного сигнала х[/гн)) и выводу резуль- тата у(п] Фаза 7 соответствует фаза I, но сопряжена с подготовкой к вы- числению следующего значеннл выходного сигнала Ил+П
ЛИ Глам 6 Рисб.З Схема выполнения МАС -операции (фазы 0 н I) Фаза г Фаза з Рис.6.4 Схема выполнения МАС -операции (фазы 2 и 3)
Цифровые процессоры оОрвОоткн с немал о в (ЦПОС) 229 |ni| Фаза а X» 1 Рис,6 5. Схема выполнения МАС -операции (фазы 4 и 5) Фаза с Фаза т Рнс.6.6. Схема выполнения МАС-оперании (фазы 6 н 7)
Глава 6 Рассмотренные общие схемы выполнения МАС-операции характерны для многих ЦПОС Однако детали реализации могут отличаться для про- цессоров с фиксированной и плавающей запятой. В процессорах с фиксированной запятой произведение, формируемое на выходе умножителя MULT, имеет удвоенную длину (рис.6 7 ) Напри- мер, если перемножаются два л-разрядных числа, то произведение будет 2л- р аз рядным числом. Чтобы можно было использовать полученное произве- дение в других операциях с л-разрядным и аргументами, необходимо иметь возможность преобразования разрядности произведения к исходному зна- чению. ЦПОС с фиксированной запятой обеспечивают предстааленне вы- ходных значений умножителя или аккумулятора в виде двух л-раэрядпых слов, которые хранятся в двух отдельно адресуемых регистрах. Это позво- ляет программисту выбирать либо старшие, либо младшие разряды резуль- тата в зависимости от выбранной формы прелстааления чисел с фиксиро- ванной запятой. Рис .6.7. Изменение разрядности при выполнения МАС -операции Содержимое аккумулятора обычно используются в качестве одного из операндов сумматора (рис.6.7). Кроме этого, в аккумуляторе накапливается конечный результат выполнения серин МАС-операций. Поэтому разряд- ность аккумулятора должна быть на М разрядов больше, чем разрядность умножителя. Дополнительные разряды позволяют избежать переполнения аккумулятора прн накоплении суммы. Большинство ЦПОС имеют от 4 до 8 дополнительных разрядов. Например. AT&T DSPl6xx имеет 4 дополни- тельных бита (36-разрядный аккумулятор и 32-разрядиос произведение), ADSP-ZIxx фирмы Analog Devices имеет 8 дополнительных битов (40- разрядный аккумулятор и 32-разрядное произведение).
Цифровые процессоры обрдб<гткм сигналов (ЦПОС) 211 В процессорах, не имеющих дополнительных разрядов, промежуточ- ные результаты должны масштабироваться. Обычно тго выполняется путем сдвига выходных значений умножителя вправо на несколько битов Напри- мер, процессоры фирмы Texas Instruments TMS320C2x и TMS32OC5x обес- печивают сдвиг произведения право па 6 разрядов В общем случае такое масштабирование приводит к потере точности. Однако, если значение сум- мы, накопленной в аккумуляторе велико, то потери точности незначитель- ны. Наличие устройств сдвига н дополнительных битов аккумулятора не исключает возможности возникновения переполнений. Один из приемов борьбы с переполнениями основан па использовании рассмотренной ранее операции ограничения .максимальных значений сигнала, Такая операция мо- жетподдержнваться в ЦПОС с фиксированной запятой на аппаратном уров- не. В этом случае специальные схемы ЦПОС обнаруживают ситуацию пе- реполнения и ограничивают значения на уровне максимально возможных положительных иян отрицательных значений Важными операциями, выполняемыми в ЦПОС, являются усечение и окру.-ленис- Операция усечения сопряжена с простым "отбрасыванием" младших разрядов Позгому результат такой операции будет иметь посто- янное смещение (рис I 48) Округление основано на замене исходного зна- чения большей разрядности ближайшим к нему значением меньшей раз- рядности. Большинство ЦПОС поддерживают указанный тип операции ок- ругления Для реализации операции округления необходимо добавить к ис- ходному значению значение, соответствующее половине наименее знача- щего бита, а затем выполнить операцию усечения. Некоторые ЦПОС имеют специальные команды для загрузки в аккумулятор соответствующей кон- станты Когда такой команды нет, загрузка аккумулятора выполняется с помощью обычной команды пересылки Рассмотренная операция округления является несимметричной При округлении чисел, лежащих точно посредине между двумя допустимыми значениями округление выполняется в сторону большего значения Эго приводит к смещению результатов, что может вызвать проблемы при реа- лизации БИХ-фияьтров. Поэтому некоторые ЦПОС обеспечивают под- держку операции симметричного округления. В этом случае числа, лежащие точно посредине между даумя уровнями, могут округляться как в большую сторону, так н в меньшую Направление округления зависит от значения разряда числа, который будет являться наименьшим значащим разрядом после округления Если этот разряд (бит) имеет нулевое значение, то округ- ление выполняется вниз, в противном случае - вверх. Симметричнее округ- ление поддерживается в ЦПОС ADSP-2lxx и DSP5600x Для многих применений выбор способа округления ре гл аме> пируете я техническими стандартами (особенно в области телекоммуникации)
гп Глава 6 АЛУ ЦПОС выполняет основные арифметические и логические опе- рации за один цикл команды Важным параметром АЛУ является разряд- ность операндов, участвующих в логических операциях Некоторые ЦПОС позволяет выполнять логинеские операции над полной длиной слова, хра- нящегося в аккумуляторе, другие - только над словами, длина которых со- ответствует общей разрядности процессора. Например. ЦПОС DSPl6xx вы- полняет логические операции над 36-разряднымн значениями аккумулято- ра, в то время как ЦПОС DSP 5600х. имеющий 56-разрядиый аккумулятор, оперирует 24-разрядиымн словами при выполнении логических операций Если АЛУ не может выполнять логических операций над словами с раз- рядностью. соответствующей разрядности аккумулятора, то это значитель- но усложняет программирование. Некоторые ЦПОС имеют наряду с АЛУ, входящим в состав МАС-блока, дополнительное АЛУ Например. ЦПОС' ADSP-2lxx и др. Для ЦПОС с плавающей запятой схема обработки данных в целом со- ответствует рис.6 7 Однако имеются и некоторые отличия В большинстве ЦПОС с плавающей запятой допускается также обработка значений в фор- мате с фиксированной запятой Например, такой возможностью облапают ЦПОС фирм Texas Instruments, Analog Devices. Motorola В ЦПОС с плавающей запятой умножитель воспринимает 32- разрядные входные значения, но в отличие от ЦПОС с фиксированной за- пятой, здесь не требуется увеличивать в два раза разрядность результата Обычно разрядность мантиссы результата на В-12 разрядов больше, чем у входных значений. Для ЦПОС с плавающей запятой характерны переполнения и антипе- рс пол нения, которые называют исключительными ситуациями. Возникно- ванне исключительной ситуации приводит к установке соответствующих битов в регистре состояний процессора, а также может приводить к вызову соответствующих подпрограмм обработки прерываний В случае перепол- нения большинство ЦПОС с плавающей запятой устанавливают соответст- вующий флаг состояний и выполняют операцию ограничения уровня сиг- нала В том случае, когда возникает анти переполнение (т е получено слиш- ком малое значение), процессор обнуляет результат и устанавливает флаг анти перс пол нения в регистре состояний Анализируются также и другие исключительные ситуации, например, деление на ноль. Что касается операции округления, то большинство ЦПОС' с плавающей точкой обеспечивают несимметричное округление Исключе- ние составляет ЦПОС DSP 96002. который поддерживает все виды опера- ций округления в соответствии со стандартом IEEE 754: симметричное ок- ругление. округление в стирону +х, округление в стирону нуля, округление в сторону - х АЛУ ЦПОС с плавающей запятой позволяет выполнять сложения н вычитания, а также вычисление абсолютного значения, вычисление макси-
Цифровые процессоры оВр»6<ггкн гигнктов (ЦПОС) мума и минимума. Некоторые АЛУ ЦПОС с плавающей запятой обеспечи- вают дополнительные операции: определение начальных значений для ре- курсивных алгоритмов. вычисление функций l/x, V7, (ADSP 210хх, DSP 96002); одновременное вычисление суммы и разности двух значений н раз- мещение результатов в двух разных регистрах (ADSP-2IOxx. DSP 96002). преобразования форматов чисел с фиксированной запятой в форму с пла- вающей запятой н обратно (TMS 320CJx. TMS 32ОС4х. DSP 32хх) 6J Организация памяти ЦПОС и режимы адресации Рассмотренные выше схемы реализации МАС-опсрации образуют ядро ЦПОС. Для того чтобы эффективно выполнять МАС-операцню. требуется рациональное взаимодействие рассмотренных выше схем с памятью Обратимся к примеру нерекурсивного фильтра (рис.6 I). Вычисле- ние выходной реакции фильтра сводится к многократному выполнению МАС-операции. Прн этом в ходе выполнения одной МАС-операции необ- ходимо осуществить несколько обращений к памяти: - выбрать МАС-команду из памяти. - выполнить чтение аргумента X из памяти; - выполнить чтение аргумента Y из памяти. - осуществить перемещение значений сигнала вдоль линии задержки КИХ-фнльтра Следовательно, процессор за один никл команды должен че- тыре раза обратиться к запоминающему устройству Такое требование, предъявляемое к ЦПОС, называют многократным доступом к памяти. Классическая архитектура процессора с одним банком памяти не по- зволяет реализовать многократный доступ Поэтому ЦПОС строят на осно- ве Гарвардской архитектуры (рис 6 8), в соответствии с которой процес- сорное ядро взаимодействует с двумя банками памяти А и В Обращение к каждому из банков памяти выполняется с помощью двух независимых шин адреса и данных В Гарвардской архитектуре один из банков памяти используется для хранения программ, а другой для храме и ил данных Обычно используется модифицированная Гарвардская архитекту- ра. В этом случае один из банков хранит как программы, твк и данные, а другой - только двнные Гарвардская архитектура позволяет процессорному ядру за одни никл команды параллельно обращаться к памяти данных и па- мяти программ. Указанную архитектуру имеют многие ЦПОС Некоторые ЦПОС используют три банка памяти с тремя независимыми парами шин адреса-данных. Наличие трех банков позволяет за одни командный цикл выполнить три параллельных обращения к памяти: выбрать очередную ко- манду, выбрать аргумент X, выбрать аргумент У Подобной архитектурой обладают процессоры фирмы Motorola DSP 5600х, DSP 96002
Глава 6 Рнс. 6.8. Гарвардская архитектура Как было отмечено выше, дня реализации одной базовой МЛС- опсрацин в К. ИХ-фильтре требуется четыре обращения к памяти Поэтому в ЦПОС, наряду с Гарвардской архитектурой, применяют и другие меры, чтобы обеспечить многократный доступ к памяти. В частности, в ЦПОС применяют быстродействующую память, которая имеет возможность двух последовательных доступов за один цикл команды. Два таких банка памяти Moiyr обеспечить четыре обращен пи за командный цикл и соответственно реализовать требования к организации взаимодействия с памятью со сторо- ны алгоритма КИХ-фняьтрации Другой прием повышения эффективности взаимодействия с памятью состоит в применении памяти с несколькими партами доступа. Такая па- мять имеет обычно две независимых лары шин адреса и данных и обеспе- чивает параллельный доступ по двум адресам Комбинация Гарвардской архитектуры с быстродействующей и мно- гопортовой памятью позволяет реализовать требования к эффективной ор- ганизации взаимодействия с памятью, выдвигаемые со стороны алгоритмов ЦОС. Рассмотренные возможности относятся к памяти, располагаемой на кристалле Взаимодействие с внешней памятью обычно выполняется с по- мощью одной шины адреса и одной шины данных. Для этого внутренние шины ЦПОС мультиплексируются. Некоторые ЦПОС имеют специальный кэш команд, который пред- ставляет собой память небольшого объема, входящую в состав ядра процес- сора и предназначенную для хранения команд. Предварительная загрузка команд в кэш позволяет освободить шины процессора для доступа к дан- ным Возможности кэширования команд значительно отличаются разных семействах ЦПОС Простейшие ЦПОС имеют кэш на одну команду. В бо- лее сложных ЦПОС емкость кэш-памяти составляет IК-слое Для формирования адресов при обращении к памяти в ЦПОС исполь- зуются генераторы адреса. Генераторы адреса могут формировать один
Цифровые п pourer о ры обработки сигналов (ЦПОС)г:1; или несколько адресов данных за один цикл команды, не используя для это- го ресурсы основного арифметического устройства, реализующего обра- ботку данных Эго позволяет вычислять необходимые адреса данных па- раллельно с выполнением арифметических операций, что повышает произ- водительность ЦПОС. При выполнении любой команды процессор обращается к памяти программ или памяти данных Способ определения адреса операнда в ко- манде или адреса передачи управления называется режимом адресации О .ЦПОС используется широкий спектр режимов адресации прямая, непо- средственная , различные виды косвенной адресации. В случае л/тяиой адресации абсолютный адрес операнда содержится в кодовом слове команды. Например, команда ЦПОС ADSP-2lxx AXO=DM(0800) загружает значение, расположенное по абсолютному адресу 0800 памяти данных, в регистр АХО Непосредственная адресация предполагает, что значение операнда содержится в самой команде. Примером может служить следующая команда ЦПОС ADSP 21 хх АХО=1357 Здесь константа 1357 загружается в регистр АХО Если значение константы велико, то она не может быть размещена в одном кодовом слове команды. В этом случае она помещается в следующем после команды слове Это при- водит к необходимости чтения из памяти программ двух слов, что увеличи- вает время выполнения программы Косвенная адресация основана на использовании регистров указате- лей, содержимое которых является реальным адресом размещения данных в памяти В этом случае в команде содержится только ссылка на регистр ука- затель Так как количество регистров, используемых для косвенной адреса- ции, в ЦПОС нс велико, то длина команды косвенной адресации соответст- вует одному слову В ЦПОС используются следующие разновидности ре- жимов косвенной адресации: косвенная регистровая адресация; косвенная регистровая адресация с инкрементированием, косвенная регистровая адре- сация с модульной арифметикой; бит-инверенвл адресация Поясним эти режимы адресации с использованием нотации языка Си. Косвенной регистровой адресации соответствует следующий опера- тор присваивания языка Си A=A+*R; В соответствии с этим оператором значение, которое хранится по адресу памяти, содержащемуся в регистре R, складывается со значением аккумуля-
3J6 Гл»»»6 тора А Регистр R рассматривается как указатель, для этого используется обозначение *R. Косвенной регистровой адресации с инкементированием и декремен- тированием соответствуют следующие записи на языке Си a=a+("RH+; A=A+(*R)-; Здесь также значение, которое хранится по адресу памяти, содержащемуся в регистре R, складывается с аккумулятором А. После извлечения значения из памяти содержимое регистра-указателя увеличивается (++) или умень- шается (—) на единицу. Некоторые ЦПОС позволяют увеличивать или уменьшать значения регистра-указателя не на единицу, а на другую величину, значение которой хранится в дополнительном регистре. Кроме этого, ряд процессоров позволяет изменять значение регистров-указателей до обращения к памяти. Косвенная регистровая адресация с модульной арифметикой используется при организации в памяти кольцевых буферов Нуфер предсталяяет последовательность из однотипных элементов данных, размещенных в смежных ячейках памяти Если элементы данных обрабатываются в порядке их записи в память, то буфер соответствует структуре данных, называемой очередью. Для доступа к значениям, хранящимся в буфере используются указатели Каждый раз после обращения к буферу значение указателя изменяется с некоторым шагом При достижении конца буфера значение указателя изменяется на начальное Указанный механизм можно описать с помощью условного оператора if (pointer -т step < BkEnd) pointer - pointer + step; else pointer - Bk Begin. Здесь переменная BkBcgin — обозначает начальный адрес, a BkEnd — ко- нечный адрес области памяти, в которой размещен буфер. Переменная pointer является указателем, а переменная step соответствует шагу, с кото- рым изменяется значение указателя Приведсинвл схема адресации исполь- зуется. например, в ЦПОС TMS32OC5x Возможен и другой механизм адресации кольцевого буфера, исполь- зуемый в ЦПОС ADSP 21 хх, ADSP 2lxxx, TMS32OC3x, TMS320C4x В лих ЦПОС не задается конечный адрес области памяти, отведенной под буфер, а фиксируется .длина буфера в специальном регистре Значение, соответст- вующее длине буфера, называется модулем Прн увеличении начального адреса на величину модуля происходит переход к начальному адресу, что и составляет суть косвенной адресации с модульной арифметикой
Цифровые процессоры оДрвбопсн сигналов (ЦПОС) 217 Одл нм из особых способов адресации, используемых в ЦПОС, явля- ется бит-ииверсная адресация. Бит-ннверсная адресация позволяет выпол- нять переупорядочение входных или выходных данных в алгоритмах БПФ Суть бнт-ннверсной адресации описана в § I 5.4. 6.4 Архитектурные особенности основных семейств ЦПОС 6.4.1. ЦПОС фирмы Motorola Перечень основных типов ЦПОС. выпускаемых фирмой Motorola при- веден в табл.6.1, Рассмотрим структурные особенности данных процессоров на примерах семейств ЦПОС с фиксированной запятой DSP5600x н с вла- вающей запятой DSP96002. DSP56001. Упрощенная структурная схема ЦПОС DSP5600X приве- дена на рис. 6.9. ЦПОС этого семейства обладают следующими характери- стиками: Н EKTAl ХТА1 RESET RUKMOD tRQBMOOB Рис 6.9 Структурная схема ЦПОС DSP 5600х - 24-разрядное представление данных; - выполнение МЛС-операиии няд 24-разрядлыми данными за один цикл команды ;
Л* ['лам 6 - наличие двух аккумуляторов, - наличие двух блоков ОЗУ данных (X и Y). - наличие двух блоков ПЗУ (X н Y), предназначенных для хранения таблиц функций ( А- и я -законы компандирования, sm(x)); - возможность вычисления произведения с удвоенной точностью предста- вления данных (48x48 бит); - аппаратная поддержка выполнения циклических алгоритмов; - быстрая обработка прерываний (2 цикла), - наличие ПЗУ загрузки программ нз внешней памяти; - поддержка целочисленной и дробной арифметики; - аппаратная поддержка блочных операций с плавающей запятой Архитектура ЦПОС DSP5600x позволяет на аппаратном уровне под- держивать обработку простых структур данных, состоящих нз двух эле- ментов Пара элементов данных, входащих в структуру, может рассматри- ваться как значение сигнала и коэффициент фильтра, как вещественная и мнимая часть комплексного числа и т.п. ЦПОС DSP5600x обладают "Оуб.чированной " гарвароской архитекту- рой. В состав процессоров семейства входят (рис.6.9) по два блока ОЗУ данных, ПЗУ данных, генераторов адреса, аккумуляторов, устройств сдви- га. Процессор может одновременно обращаться к ОЗУ программ и даум блокам ОЗУ данных (X и Y). В состав процессора включены три шины адреса: две однонаправленные 16-разрядныс шины адреса блоков памяти X н Y, двунаправленная шипа адреса памяти программ. Для передачи и обмена данными внутри процессора используются четыре двунаправленные шины данных: шнна данных X; шина данных Y, шина данных памяти про- грамм; глобальная шнна данных Все шины данных являются 24-разрядиы- ми. В ЦПОС DSP 56ООх отсутствует кэш команд, так как три пары шип ад- реса / данных позволяют осуществлять одновременную выборку очередной команды и пересылку двух операндов по шинам данных X н Y Для взаи- модействия с внешними устройствами внутренние шины данных н адресов процессора объединяются с помощью мультиплексоров (переключателей) в одну пару внешних шнн адреса / данных (рис 6.9) Внешняя шипа адреса является 16-разрядной, а шнна данных - 24-разрядной Указанные шипы со- вместно с управляющими сигналами образуют порт А, имеющий 47 выво- дов В состав АЛУ процессора (рис.6.10) входит два 56-разрядиых аккуму- лятора с 8-ю дополнительными разрядами для исключения переполнений при циклическом выполнении МАС-опсрапнй Каждый аккумулятор пред- ставлен тремя регистрами А2, А1, АО и 02, ВI, ВО Аккумуляторы участ- вуют в МАС-опсрацнях в соответствии с общими схемами, изображенными на рис 6.3-6.6 При выполнении МАС-операшти для каждого из аккумуля- торов используется своя пара 24-разрядпых регистров . содержащих значе-
Цифровые npoutctopM oflpiGoTk'H сигналов (ЦПОС) ’V» пия X и Y операндов На рис 6.10 указанные пары регистров обозначены соответственно X0.Y0 h.XI.YI Если требуется сохранить 56-разрядпое значение аккумулятора в 24- разрядных регистрах или памяти, то с помощью сдай тающего устройства выполняются необходимые операции сдвига или ограничения (рнс 6 10) Блок манипуляции битами, входящий в состав АЛУ. выполняет про- стые операции преобразования битов 24-разрадных слов Блоки памяти данных X и У имеют иепересекающиеся адресные про- странства. каждое из которых включает в себя как область адресов ОЗУ данных, так и область адресов ПЗУ данных ЦПОС DSP 5600х имеет развитую систему дополнительных интерфей- сов для взаимодействия с другими процессорами. 0 состав ЦПОС входят последовательный коммуникационный интерфейс (SCI), поддерживающий режимы синхронного и асинхронного обмена в-,12-,16- и 24-разрядными словами, синхронный последовательный интерфейс (SSI), предназначенный для дуплексной связи Рис.6 10. Структурная схема АЛУ DSP5600x Процессор DSP 5600х имеет возможность обработки одного немаски- руемого и даук маскируемых внешних прерываний. Тактовая частота, на которой работает процессор, может выбираться в широких пределах от 12 2 кГц до 80 МГн Такой широкий диадазон возмо- жен благодаря синтезатору частот с фазовой автолодстройкой частоты, входящему в состав процессора.
2+0 Гл1ва6 Процессор поддерживает широкий спектр режимов адресации прямую адресацию регистров, прямую адресацию памяти, непосредственную адре- сацию, косвенную регистровую адресацию, бят-нпверсную адресацию Вес команды процессора можно разделить на шесть групп: - арифметических операций (AND, SUB,MUL,DIR,MAC,CMI’. ), - логических операций (AND, OR. LSR, OR, ); - манипуляции битами (BSET,DTST, К - управления циклами (DO, ENDDO); - адресации памяти (LUA,MOVE, ) Команды процессора имеют простой формат код операции операнд передача но Х-шипе передача поУ-шине Каждая команда параллельно с выполнением заданной операции пал операндом может выполнять пересылку данных по шине данных X и по шине данных Y Например, команда, записанная в обшей форме MAC XO,YO,A XRO-.XO YR4+.Y0 . выполняет I) MAC-операиию : А <- А + X О >' 0 , 2) пересылку данных по шине данных X из ячейки памяти, адресуемой ре- гистром-указателем R0, в регистр ХО с последующим инкрементом адреса, находящегося в R0; 3) пересылку данных по шипе данных Y из ячейки памяти, адресуемой ре- гистром-указателем R4, в регистр Y0 с последующим инкрементом адреса, находащсгося в R4. Возможности процессора DSP 5600х по реализации основных алго- ритмов ЦОС приведены в табл. 62. Таблица^ 2 - Параметры программ для DSP5600x Алгоритм : Длина иршраммы, _ . _ _ слов _ __ ; КИХ-фнльтр п-го порядка 7 (вешеств козфф.) Кол-во ЦИКЛОВ I "n+T” 4N+9 । КИХ-фнльтр п-го порядка (компл козфф) 12 i Биквадратное звено _ _ биквадратных звеньев ; БПФ по основанию 2 7 7 II 15 4N+8 6N+10 ЦПОС DSP96002 является 32-х разрядным процессором с плавающей запятой, архитектура которого подобна архитектуре ЦПОС DSP5600x. Процессор 96002 имеет семь внутренних шин В их состав входят шины па-
Цифровые процессоры оДрвботкн сигналов (ЦПОС) 2*1 Рис. 6.11. Структурная схема процессора DSP 96002, мкги программ, шины блоков памяти X н Y, а также глобальная шина дан- ных н шина данных ПДП Контроллер ПДП при пересылке данных не использует другие ресурсы ЦПОС. Аналогично DSP56OOO процессор DSP96002 имеет блоки ПЗУ и ОЗУ, которые обеспечивают хранение значений коэффициентов и переменных, используемых при выполнении МАС -Ьпераиин. Перед выполнением МАС-операиии данные должны быть размещены в регистровом файле, включающем десять 96 разрядных регистров. Вычислительная часть процессора представлена умножителем, сумма- тором (который может выполнять как сложение, так и вычитание при реа- лизации операции БПФ), блоком логических операций, кольцевым сдви- гающим устройством. Все эти устройства поддерживают целочисленную арифметику и арифметику с плавающей запятой При этом для представле- ния мантиссы отводится 32 разряда, а для представления порядка 11 разря- дов. DSP96002 поддерживает форматы IEEE для представления чисел с алавающей точкой ЦПОС 96002 имеет два генератора адреса, которые могут функционировать параллельно. В состав каждого из генераторов входят четыре набора 32-разрядных регистров Каждый набор состоит нз трех ре- гистров : указателя адреса, регистра смещения и регистра модификации ад- реса.
Гл*ва6 Доступ к этим регистрам осуществляется через глобальную шину данных. Процессор поддерживает прямую адресацию регистров, прямую адресацию памяти, различные виды косвенной регистровой адресации, непосредственную адресацию. Генераторы адреса также обеспечивают ре- жимы модульной и бит-инверсной адресации. Набор команд процессора включает команды' управления циклами, проверки значений битов двоичных слов; условного выполнения подпрограмм; преобразования целых чисел в фермат с плавающей запятой и обратно , формирования начальных значений прн вычислении квадратного корня и генерации случайных чисел Набор команд процессора не содержит команд условного выполнения инструкций. 6.4.2 ЦПОС фирмы Texas lotruments Фирма Texas Intruments выпускает Широкий спектр ЦПОС (табл 6 I) . которые в соответствии с терминологией Texas Intruments, называются поколениями Поколения процессоров группируются по четырем направлениям: - процессоры с фиксированной запятой: С1х, С2х, С2хх, С5х, С54х, С62х; - процессоры с плавающей запятой: СЗх. С4х. С67х, - мультимедиа-видеопроцессоры : СВх; - процессоры специализированных приложений: AV 7100. AV710 Процессоры с фиксированной запятой С1х. С2х. С2хх, С5х совместимы на уровне исходных кодов При этом множество команд процессора С1х является подмножеством команд процессора С2х и т д В главе 7 детально рассматривается архитектура и про1раммнроваиие процессоров с фиксированной запятой па примере семейства процессоров TMS320C2x. Поэтому здесь приведем в качестве примера архитектурные особенности процессоров с плавающей запятой TMS32OC3x и мультимедиа процессоров TMS32OC8x ЦПОС TMSJ28C3x Семейство процессоров СЗх является первым поколением 32-разрядных процессоров фирмы Texas Intruments с плавающей запятой Они предназначены для решения широкого спектра задач ЦОС в различных областях, включая цифровую обработку аудиосигналов, передачу данных, автоматическое управление и контроль Процессоры TMS320C3x характеризуются интеграцией фон- I[еймановской архитектуры с 32 разрядным ядром ЦОС (рис 6 12). аппаратно поддерживающим обработку значений в формате с плавающей запятой Отметим, что процессоры СЗх нс поддерживают формат данных с плавающей запятой, соответствующий стандарту IEEE
Цифровые npoutccopu обработки смгии-юв (ЦПОС) 141 Процессоры СЗх состоят из трех подсистем: центрального процессор- ного блока; подсистем доступа к памяти и ввода-вывода. Подсистема дос- тупа к памяти предоставляет отдельные шины для доступа к памяти про- грамм, памяти данных и выполнения ПДП. Контроллер ПДП имеет свою отдельную шипу данных и работает параллельно с центральным арифмети- ческим устройством (ЦАУ). Наличие отдельных шин для доступа к памяти программ и памяти данных позволяет осуществлять выборку очередной ко- манды и двух значений данных. При этом процессор может выполнять пе- редачу и прием данных нз подсистемы ввода-вывода Процессор имеет два блока ОЗУ емкостью IK-слов и ПЗУ емкостью 4К-слов. Внешняя шина адреса процессора яаляется 24-разрядной, что по- зволяет адресовать память емкостью 16М-слов Семейство процессоров СЗх включает три основные модели: СЗО, С31.С32 В микросхемах C3I и С32 вместо ПЗУ данных применяется ПЗУ загрузки программ. XRDY МЗТАВ IOSTRB XR/B ХА (12-0) XDO1-0) Рис.6 12 UIIOCTMS32QC30 ЦАУ содержит умножитель, АЛУ. устройства сдаига, 8 регистров для вы- полнения операций с повышенной точностью Оно имеет свои собственные шины для пересылки данных в процессе вычислений 'Зги шины позволяют пересылать данные между внутренними регистрами ЦАУ, умножителем, устройствами сдвига, АЛУ. ЦПОС семейства выполняют М АС-операцию за одни никл команды
14-1 Глава 6 Процессоры TMS32OC3x поддерживаю!' прямую адресацию регистров, страничную адресацию памяти, косвенную регистровую адресацию, непосредственную, кольцевую адресацию и бит-ннвереную адресацию ЦПОС TMS320C8x. Данный процессор ориентирован на применение я мультимедиа видео приложениях и состоит из четырех процессоров ЦОС и управляющего RISC процессора »УП) Процессоры ЦОС функционируют параллельно, обеспечивая общую производительность до 5x50 млн опера- ций в секунду (рис.6.13). Высокоскоростная шина соединяет процессоры ЦОС с шестнадцатью блоками ОЗУ емкостью 2К (II 4К блоков для TMS320C82). Любой из процессоров ЦОС может быть соединен с любым из блоков ОЗУ. Высокоскоростная шипа (коммутатор) обеспечивает от 9 до 12 одновременных обращений к памяти в пределах цикла команды (по три обращения для каждого нз процессоров ЦОС, два обращения для управ- ляющего процессора и одно для контроллера передачи) Максимальная ско- рость передачи по шннедостигаег4.2 Гбнт/с ЦПОС G L I ЦПОС G L I ЦПОС G L 1 ь зффф ЦПОС С L I RISC УП С/D I 'ЗД' 1ИИНЫЙ коммутатор 10 М а вт ЮКВшгт ЮКВажт 10КВЫИ ЮХВайт Рис.6.13 ЦПОС TMS32OC8x Порт JTAG Процессоры ЦОС, входящие в состав семейства С8х, управляются 64-к разрядными командами. Каждый процессор ЦОС имеет 32-разрядное АЛУ. 16-разрядный умножитель, два независимых генератора адреса. АЛУ можег быть разделено на два 16-разрядных или четыре 8-разрядных блока. Умно- житель может вычислять произведение двух 16-раэрядных слов или двух пар 8-разрядпых слов Дополнительно аппаратные средства поддерживают манипуляции битвми и обработку пикселов изображений. Управляющий процессор содержит 64-разрядное АЛУ с плавающей за- пятой и регистровый файл емкостью 31x32 бит. АЛ У состоит из умножите- ля, выполняющего операции с одинарной точностью, и сумматора, выпол- няющего операции с даойной точностью. АЛ У поддерживает векторную обработку на аппаратном уровне и обеспечивает накопление результатов
Цифровые процессоры обработки сигнал»! (ЦПОС) 245 векторной обработки в четырех аккумуляторах УП функционирует в кон- вейерном режиме Конвейер является трехэтапным В состав ЦПОС TMS320C8.X входит интегрированный контроллер пе- редачи данных для взаимодействия с различными видами внешней памяти Вндеоко1гтроллер минимизирует затраты на разработку видеоприложений 6,43 ЦПОС фирмы Aiielog Devices Фирма Analog Devices выпускает ЦПОС с фиксированной и с пла- вающей запятой (табл.6 1) Процессоры с плавающей запятой подробно рассматриваются в главе В Поэтому ниже рассмотрим только процессоры с фиксированной запятой Семейство процессоров ADSP-2lxx представляет собой набор однокристальных микропроцессоров с общей базовой архитектурой, оптимизированной для цифровой обработки сигналов и для других приложений, требующих числовых вычислений с высокой скоростью Все процессоры семейства используют ядро цифровой обработки сигналов, соответствующее СБИС ADSP 2100 Отличие процессоров семейства друг от друга определяется набором дополнительных устройств, расположенных на кристалле. К ним относятся' память, последовательные порты, интерфейсы прямого доступа к памяти (ПДП) и сопряжения с основным процессором (хост-интерфейс), таймер, аналоговый интерфейс [25] Рассмотрим обобщенную структурную схему процессоров семейства ADSP-2lxx (рнс.6 14) Структурные схемы конкретных процессоров отличаются от приведенной набором дополнительных устройств Каждый процессор семейства содержит три независимых вычислительных устройства: ар и фмети чес ко-логи чес кое устройство (АЛУ), умножитель с аккумулатором (УСА / МАС), и сдвигающее устройство (СУ ) Вычислительные устройства непосредственно оперируют 16- разрядными данными и могут поддерживать работу с данными расширенной точности АЛУ обеспечивает выполнение типового набора арифметических и логических операций, а также обеспечивает реализацию примитивов операции деления УСА позволяет выполнять операции умножения, умножения со сложением и вычитанием. СУ выполняет логические и арифметические сдвиги, нормализацию н деформализацию, операции нал порядком чисел СУ может быть использовано при выполнении операций нац числами, представленными в различных форматах, в том числе н над числами с плавающей запатой. Все вычислительные устройства работают параллельно. При этом выходные значения любого из устройств могут, благодари общей шине результатов (ШР), служить входными значениями для других устройств Все три
Глава 6 вычислительных устройства имеют входные и выходные регистры для хранения операндов и результатов выполнения операций Эти регистры доступны через шину данных памяти данных (ШД ПД) Рнс.6.14. UnOCADSP2lxx Эффективное использование вычислительных устройств обеспечивается многофункциональным счетчиком команд н двумя генераторами адресов данных (ГА). Многофункциональный счетчик команд поддерживает условные переходы, вызовы и возвраты из подпрограмм и формирует адрес следующей команды Он имеет внутренний счетчик циклов, стек циклов н может выполнять никлы без дополнительных команд перехода Генераторы адресов данных управляют указателями адресов Каждый нз генераторов управляет четырьмя указателями После использования указателя для доступа к внешним данным, он может автоматически модифицироваться значением, хранящимся в заданном регистре генератора Прн этом с каждым нз указателей может быть связана длина области памяти для автоматической реализации кольцевых буферов Наличие двух генераторов адресов позволяет процессору формировать одновременно два адреса для выборки операндов в одном цикле команды. Эффектней вл пересылка данных в процессоре обеспечивается пятью внутренними шинами: - шиной адреса памяти программ (ША ПП); - шиной адреса памяти данных (ША ПД).
Цифровые процессоры обработки сигналов (ЦПОС) Н7 - шиной данных памяти программ (ШД ПП); - шиной данных памяти данных (ШД ПД), - шнной результатов (ШР). Шины адресов предназначении для передачи адресов памяти программ или памяти данных, а также дополнительных устройств Шины данных обеспе- чивают передачу значений, извлекаемых из памяти по заданным адресам, между устройствами, расположенными па кристалле. Каждая пара указанных шин мультиплексируется в одну внешнюю шину адреса нлн данных с помощью соответствующего мультиплексора (MLUA- мультиплексор шины адреса; МШД-мультнплсксор шины данных) Эго обеспечивает взаимодейтвие процессора с внешней памятью. Ширина внешней шнны адреса 14 разрядов, что обеспечивает доступ к 16К-словам внешней памяти Внешняя шина данных является 24-разрядноЙ Это позволяет загружать через внешнюю шину данных как 16-разрядные данные, так и 24-разрядные команды. Процессор поддерживает прямую и косвенную адресацию памяти данных В случае прямой адресации адрес записывается непосредствекнпо в команде. Прн косвенной адресации используется указатель на адрес Память программ адресуется только с помощью косвенной адресации Прн этом в памяти программ могут храниться как команды, так н данные. Это позволяет процессору выбирать в одном цикле два операнда. Одни выбирается нз памяти данных, другой - из памяти программ. Коммутатор шин позволяет пересылать данные с ШД ПП па ШД ПД н обратно Практически все процессоры семейства имеют по два последовательных порта (за исключением ADSP 2105) с даойной буферизацией н с синхронной передачей данных. Последовательные порты поддерживают работу со словами длиной от 3- до 16-бит и компандированием по А нлн Ц -закону в соответствии с рекомендацией MKTTG7II Программируемый таймер обеспечивает периодическую генерацию прерываний Таймер содержит регистр - ечстчик Прерывание генерируется, когда значение в регистре - счетчике становится равным нулю. Дополнительно в состав некоторых моделей процессоров может входить контроллер прямого доступа к памяти (ПДП), обработчик прерываний, хост-интерфейс, аналоговый интерфейс ПДП имеет 16- разрядную шину адреса/данных и обеспечивает непосредственный доступ к памяти программ или памяти данных, расположенной на кристалле Обработчик прерыванийй реагирует па четыре внешних прерывания, которые имеют определенный приоритет Каждое нз прерываний может быть замаскированно и про граи но настроено на сребатывание по фрогггу нлн уровню сигнала Порт хост-интерфейса (HIP) - параллельный порт
24» Глав*б ввода-вывода, обеспечивающий взанмодейтвие с основным процессором (хост-процессором). Порт хост-интерфейса работает с 8- или 16- разрядными шинами данных. Аналоговый интерфейс включает аналого- цифровые и цифро-аналоговые преобразователи и предназначен для организации взаимодействия с аналоговыми подсистемами. На рис 6.] 5 приведена обобщенная схема однопроцессорной системы на базе ADSP 21хх, содержащая два последовательных устройства, байто- вое ППЗУ загрузки н внешняя ОЗУ памяти программ и памяти данных [25]. Рнс.6.15. Струкгурнва схема однопроцессорной системы на базе ADSP2I хх Синхронизация процессора выполняется ТТЛ-совместимыми синхроимпульсами, подаваемыми от генератора тактовых импульсов (ГТИ) на вход CLKIN Вход XTAL используется в том случае, если выполняется синхронизация с помощью кварцевого резонатора, который подсоединяется между входами CLKIN и XTAL. Выходкой сигнал CLKOUT формируется процессором для синхронизации внешних устройств. Период сигнала CLKOUT соответствует прцессорному циклу комманды Интерфейс с внешними устройствами и памятью поддерживается тремя шинами: управления, адреса (ША) и данных (ШД) ША позволяет непосредственно адресовать |6К-слов памяти. Для выбора соответствующего устройства памяти используются сигналы: BMS - выбор
Цифровые процессоры обработки сигналов (ЦПОС) 219 ППЗУ загрузки; PMS - выбор памяти программ; DMS - выбор памяти данных ППЗУ загрузки имеет 8-разрядиую шину данных, через которую может быть побайтно загружена внутренняя память программ процессора. Процессоры семейства ADSP 21хх имеют различные возможности взаимодействия с ППЗу загрузки, отличающиеся способом формирования адреса. На рис.6.15 адрес байта в ППЗУ формируется с помощью шины данных (разряды D23-22) и шины адреса (А 13-0) Это позволяет адресовать до 16К восьмиразрядных слов Данные возможности реализованы в ADSP- 2101, ADSP-2103. ADSP-2111, ADSP-2115. Другие модели процессоров мо- гут использовать дополнительные разряды шины данных для расширения адресного пространства. 6.5 Инструментальные средства разработки систем на основе ЦПОС ЦПОС, по существу, есть нс что иное как микропроцессор специаль- ного применения Как и для любого другого микропроцессора, создание систем на основа ЦПОС невозможно без инструментальных средств под- держки разработок Данные средства позволяют разрабатывать архитекту- ру аппаратных средств и осуществлять создание и отладку соответствую- щего программного обеспечения Они применяются па всех этапах разра- ботки - от исследований до изготовления и тестирования Во многом успех создания систем на основе ЦПОС определяется наличием развитых инст- рументальных средств поддержки разработок. В настоящее время практи- чески для всех выпускаемых ЦПОС имеются такие средства Инструментальные средства разработок систем на основе ЦПОС раз- деляются на программные и аппаратные [31]. Состав средств, входящих в каждую группу, различен для разных семейств ЦПОС. Типовой набор про- граммных средств разработки включает следующие программы' ассемблер, редактор связей (линкер), имитатор (симулятор), программатор ППЗУ, ас- семблерные библиотеки, оптимизирующий компилятор с языка Си. отлад- чики программ на языке Си, библиотеки программ на языке Си Ассемблер транслирует исходную программу на языке ассемблера в программу, подлежащую исполнению в объектном коде, т с коде непосред- ственно воспринимаемом ЦПОС. Обычно ассемблер генерирует переме- щаемый объектный код, который затем размещается в памяти системы ЦОС с помощью редактора связей. Редактор связей позволяет разрабатывать программу в виде автоном- ных модулей, связав которые воедино, можно получить полный код про- граммы Редактор связей выполняет объединение ассемблированных объ- ектных файлов и дополнительных объектных файлов, хранящихся в биб- лиотеках, в единую исполняемую программу.
Ito Глвм 6 Ассемблерные библиотеки содержат типовые арифметические под- программы и подпрограммы ЦОС Для создания библиотек используются специальные программы-библиотекари. Имитатор программным способом моделирует ЦПОС иа уровне системы команд, позволяя тем самым проверять и отлаживать программы без наличия аппаратных средств. Он использует объектный кол, вырабаты- ваемый ассемблером и редактором связей. Имитатор моделирует структур) памяти и возможности ввода-вывода в системе ЦОС Для этого он исполь- зует специальный файл, определяющий архитектуру разрабатываемой сис- темы. Обычно про грамма-имитатор имеет оконный интерфейс для взаимо- действия с пользователем. В-окнах имитатора отображаются содержимое внутренних регистров ЦПОС и состояние памяти. Имитатор представляет мошиос средство отладки, допускающее пошаговое выполнение команд, имитацию прерываний, установку точек программного прерывания, ото- бражение содержимого памяти Компилятор с языка Си переводит исходные тексты программ, напи- санные на стандартной (ANSI) версии языка Си либо в объектный код, либо в код из языке ассемблера Компилятор обычно допускает включение в программу, написалную на языке Си, разделов на языке ассемблера Можно также программировать отдельные функции непосредственно на языке ас- семблера и затем обращаться к ним иа программы на языке Си. Аналогично функции па языке Си можно вызывать из ассемблерных программ. Эго по- зволяет программисту самостоятельно оптимизировать критические участ- ки программы ЦОС. Отладчик программ, написанных на языке Си, обеспе- чивает отображение переменных и значений выражений, оценивание значе- ний выражений, пошаговое выполнение инструкций, расстановку точек программных прерываний, отображение дерева вызова функций и др Биб- лиотеки языка Си содержат все стандартные функции и функции, приме- няемые при обработке сигналов. Например, функции цифровой фильтра- ции, быстрого преобразования Фурье, матричных операций, обработки пре- рываний Программатор ППЗУ транслирует код, предназначенный для выпол- нения процессором ЦОС, в один из нескольких форматов для программиро- вания различных типов ППЗУ Аппаратные средства поддержки разработок базируются па использо- вании внутрисхемных эмуляторов. Ннутрисхемныи эмулятор позволяет выполнять отладку и оптимизацию приложения путем его исполнения на физической модели системы ЦОС Такне эмуляторы состоят нз специаль- ных плат, построенных на основе соответствующего ЦПОС н программною обеспечения Программное обеспечение загружается в ПЭВМ нлн рабочую станцию и управляет платой, которая представляет реконфигурируемую систему па основе выбранного ЦПОС Такал система может выполнять за- гружаемое в нее приложение ЦОС Внутрисхемный эмулятор позволяет
Цифровые процессоры обряВдгки сигичов (ЦПОС) выполнять пошаговое выполнение программ с отображением содержимого регистров ЦПОС н памяти. Эмуляторы отличаются между собой макси- мальной скоростью работы процессора, способностью выполнять трасси- ровку программ н отображать состояния выводов ЦПОС в реальном време- ни, способностью обрабатывать условные точки прерывания в реальном масштабе времени и др. Внутрисхемные эмуляторы могут быть также реа- лизованы с использованием специальной системы контроля и отладки, встроенной в ЦПОС. Такал система основана на стандарте JTAG (Joint Test Action Group), который определяет принципы построения 4-х проводного последовательного интерфейса для тестирования СБИС В настоящее вре- мя многие ЦПОС имеют порт JTaG, позволяющий получить доступ к внут- ренним ресурсам кристалла и тестировать систему на уровне процессора нлн уровне платы. Рнс.6.16. Общая схема разработки систем ЦОС Общая схема разработки системы ЦОС с использованием рассмотрен- ных инструментальных средств изображена на рис 6 16 По сравнению с программированием цифровых вычислительных устройств общего приме- нения программирование ЦПОС требует эффективной реализации алгорит- мов, работающих в реальном масштабе времени Традиционно программи- рование таких алгоритмов выполняется на языке ассемблера При этом большое внимание уделяется оптимизации программ. Такой подход являет- ся достаточно трудоемким и дорогим Процесс проектирования новых сис- тем ЦОС становится проще, если имеется весь арсенал срадств, указанных на рис.6.16. В частности, разработка систем ЦОС значительно упрощается.
JH Глава 6 если выполнять программирование на языке Си Однако в ряде случаев это приводит к потере быстродействия программ Поэтому на практике обычно используют комбинированную реализацию алгоритмов ЦОС: одна часть ал- горитмов программируется на языке Си. а другая - на языке ассемблера Программирование алгоритмов ЦОС на языке Си нс имеет каких- либо су- щественных особенностей Поэтому ниже, при описании ЦПОС с фиксиро- ванной и плавающей запятой, рассматривается программирование на языке ассемблера.
Глава 7 ЦПОС С ФИКСИРОВАННОЙ ЗАНЯТОЙ СЕМЕЙСТВА TMS320C2X 7.1 Назначение выводов процессора Второе поколение процессоров серин TMS320 включает следующие основные СБИС TMS32OC25, TMS32OC25-5O, TMS32OP25 Технические параметры СБИС приведены в табл .7 I В дальнейшем будем рассматри- вать СБИС TMS32OC25, являющуюся базовой. На рис 7 I приведены обо- значения выводов ЦПОС TMS32OC2x. Таблица 7 I 11арамстры ЦПОС TMS32OC2x Тип БИС 1 Час- ! тепа, МГц Цикл КОМАН- ДЫ' tit ОЗУ. слов ПЗУ. 1 . слов 2 j ПДП После- no ват iiupi Пар&Л' лельн [1Ор1 Тай 1 мер । IMS32OC25 ; 40 100 544 4К Внеш 1 ' 16x16 । TMS32OC25-5O ~Т~5о 80 544 4К Внеш 1 16x16 j_. 1 TMS32OP25 40 100 544 ] _ Внеш 1 16x16 i 1 Системную шину адреса образуют 16 выводов ЛО-.415, которые мо- гут находиться в трех состояниях единичном, нулевом и третьем состоянии, которое называют состоянием с высоким импедансом Выводы шины адре- са устанавливаются в высокоимпедансное состояние в режиме захвата шип (IIOLD-рсжнме) Выводы Z70 - /715 образуют системную шину данных, которая явля- ется двунаправленной и устанавливается в высокоимпедансное состоя- ние, когда нет ввода-вывода данных или когда действует сигнал сброса, а также в режиме захвата шип Направление передачи сигналов по шине определяется сигналом RIW R /H' -сигнал чтення/запнеи Он определяет направление передачи данных при взаимодействии процессора с внешними устройствами Исли на выводе R/И' действует сигнал высокого уровня, то выполняется чтение.
2Я Глям 7 если низкого то - запись. В режиме захвата шин вывод находится в треть- ем состоянии. D.S.PS./S - сигналы выбора пространства адресов; памяти данных, памяти программ, устройств ввода-вывода (соответственно). Обычно сиг- налы имеют высокий уровень, за исключением случаев обращения к внеш- ней памяти или к устройствам ввода-вывода. В режиме захвата шнн выво- ды переводятся в третье состояние. 11Ыла Дд№ЫК Преошшия. Передача упрмгенж. пр сягнвлы Псследом- гепышй порт 0 0 О 1 D15 ею INTO IN Г 1 IN Т 2 1АСК A 5 MSC и₽/м5 XF С1 кх CLKA од ОХ F SR F $Х CPU А 0 А 1 А 15 те РВ R/W STAS READY BR HOLD HOLD* CLKOUTi OJCUT2 X 1 Х2ЮКЖ адреса кигорфайс^н управлявшие СЯГНВ1Х Мутиппро ЦМХОрыу* сигналы Сигналы генератора Рнс. 7.1. Назначение выводов ЦПОС TMS32OC25 READY - сигнал готовности ввода данных. Высокий уровень сигнала информирует ЦПОС о готовности внешнего устройства для обмена дан- ными. Если сигнал READY будет иметь низкий уровень, то ЦПОС фор- мирует один цннл ожидания и затем опять проверяет уровень сигнаха READY Сигнал READY используется также для информирования о го- товности глобальной памяти к обмену (реакция на сигнал запроса шипы BR)________ STRH - стробирующий сигнал Имеет низкий уровень во время чтения/записн данных. В режиме захвата вывод STRB устанавливается в в ысоконм пелакс ное состояние. INTO- INT2 - входы внешних пользовательских прерываний, мас- кируемых с помощью регистра маски и управляемых битом режима преры- ваний. IACK - выходной сигнал подтверждения прерывания. Сигнал дол- жен анализироваться только при низком уровне на выходе CLKOUTI Сигнал информирует о том, что прерывание принято н чти произошла пс-
ЦПОС с фиксирояянной и пятой семсйстм TMS320C2» гзз радача управления вектору прерывания устаноаленному на шинах А0- А!5. /(5 - входной сигнал сброса Сигнал вызывает прерывание процес- сора и передает управление команде, расположенной в нулевой ячейке памяти программ Процессор начинает выполнение этой команды, когда ЯУ будет иметь высокий уровень f/fO - вход выбора ветви управления Данный сигнал обрабатывается командой BIOZ Если сигнал имеет низкий уровень, то процессор переда- ет упрааленне по адресу, указанному в команде BIOZ Л/5С - сигнал выполнения мнкросостояння. Сигнал является действующим только при низком уровне на выходе CLKOUT), когда ЦПОС завершает операции с памятью, например, выборку очередной команды нлн чгенне/запнсь данных. MSC может использоваться для формирования состояний ожидания сигнала READY при работе с медлен- но действующей памятью МР!МС сигнал выбора режима - микропроцес- сор^ и кроком пыогер. Если сигнал имеет низкий уровень, то процессор на- ходится в режиме микрокомпьютера и внутреннему ПЗУ отводится об- ласть младших 4 К адресов. 0 режиме ИР младшие адреса памяти про- грамм отводятся под внешнюю память XF - вывод внешнего флага Сигнал XF яалястся программно ус- танавливаемым. Используется для построен ал мультипроцессорных сис- тем. HOLD • вход запроса захвата шии для организации режима прямого доступа к памяти. HOLD А - подтверждение запроса захвата шин. Этим выходным сиг- налом ЦПОС подтверждает запрос захвата шин Процессор переводит шины данных, адреса и упрааления в высокоимпедансное состояние За- тем устройство, инициировавшее запрос, может управлять шинами ЦПОС BR ~ сигнал запроса шины Сигнал формируется, когда требуется доступ к пространству внешней глобальной памяти данных в мультипроцес- сорных системах Сигнал READY информирует ЦПОС, если глобальная память доступна SYNC - вход синхронизации, позволяющий выполнить синхрониза- цию двух или более процессоров TMS32OC25 .¥1- вывод внутреннего генератора для подключения кварцевого резонатора Если кварцевый резонатор не используется, то вывод должен оставаться свободным. XliCLKlN - входной вывод внутреннего генератора для подключе- ния кварцевого резонатора. Если резонатор не применяется, то вход ис- пользуется для подачи тактовых импульсов
256 Гляы 7 СI.КОНТ 1 - основной выходной тактовый сигнал Частота следования импульсов сигнала CLKOUT I равна CLKIN/4 CLKOUT 2- дополнительный выходной тактовый сигнал Этот сигнал сдвинут относительно CLKOUT ] на четверть фазы и имеет ту же частоту, что CLKOUT 1 Выводы ЦПОС CLKR, CLKX, FSR, FSX, DX, DR предназначены для работы с последовательным портом передачи и приема данных, встроенным в ЦПОС. 7.2 Структурная схема ЦПОС TMS320C25 Выполнение программ в ЦПОС сводится к циклическому повторе- нию следующих действий: выборке команды нз памяти; декодированию ко- манды, исполнению команды. В ЦПОС TMS320C2x с целью сокращении длительности командного цикла н повышения производительности используется модифицированном гарвардская архитектура и конвейерный режим работы, которые позво- ляют совмещать во времени указанные действия и обрабатывать одновре- менно несколько команд Гарвардская архитектура предполагает раздель- ное хранение программ н данных, что позволяет совмещать декодирование н исполнение команды с вычислением адреса н выборкой следующей команды. В ЦПОС TMS320C2x возможен обмен данными между шина- ми памяти программ и памяти данных. Это позволяет, при необходимости, рассматривать память программ как память данных В архитектуре процессоров второго поколения используется трех- зтапный конвейер. Процессор может одновременно обрабатывать три ко- манды, находящиеся на разных этапах выполнения: предварительной вы- борки, декодирования, исполнения (рнс. 7 2) CLKOUT | | || || I 1111 I’ll Вывчи i---Й-----i--------------------1 I I ‘ I Ис ноля а кне N * > м > n Рнс. 7.2. Временные диаграммы конвейерного режима Например, когда производится выборка N-ой команды, предыдущая ко- манда (N-1) находится на этапе декодирования, а команда N-2 - на этапе не-
ЦПОС с фиксированной запитой семейств» TMS320€li 257 пол нения. Конвейерный режим работы процессора остается для пользовате- ля незаметным, за исключением случаев команд передачи управления, ко- гда возникает необходимость перезагрузки конвейера. Структурная схема ЦПОС TMS320C25 представлена на рнс. 7.3. Процессор содержит: центральное арнфметическо-логическое устройство (ЦАЛУ), дополнительное арифметическое устройство (ДАУ), счетчик ко- манд (PC) и аппаратный стек на восемь ]6-раэрядмых слов, ОЗУ емкостью 544 слова, состоящее из трех блоков ВО, В! и 02, ПЗУ емкостью 4К слое, 14 регистров различного назначения Рис.7 3. Структурная схема ЦПОС TMS320C25 Основные блоки процессора связаны с шиной данных и шиной ко- манд. Шина команд обеспечивает передачу кодов команд и непосредствен- ных операндов из памяти программ Шина данных связывает ЦАЛУ и ДАУ с ОЗУ данных. Наличие даух шип позволяет считывать данные параллель- но из памяти данных и памяти программ и передавать их в ЦАЛУ для вы- полнения М АС-опсраций за одни цикл Благодаря наличию даух арифметических устройств возможна одно- временная обработка данных в ЦАЛУ и вычисление адреса в ДАУ Эго обеспечивает выполнение большинства команд за одни цикл. Прн обращении к внешней памяти (адресное пространство 64 К) про- грамм или данных адресация ияи считывание данных выполняются с по- мощью одной внешней шины алреса (AI5-A0) и одной внешней шины дан-
ных (DI5-D0). Поэтому обращения к пиешкей памяти программ и данных могут выполняться только Поспеловагельно С целью повышения быст- родействия процессора и возможности параллельного доступа к памяти программ и памяти данных в состав процессора включены внутрикри- стальное ОЗУ данных/программ и ПЗУ программ Адреса внутрикристального ОЗУ. соответствующие блоку ВО. могут быть распределены либо ла память данных, либо на память программ Для этого соответственно применяются команды CNFD/CNFP Программы, хранимые в блоке ВО, выполняются с максимально возможной скоростью Блоки BI и В2 всегда используются как память данных К внутрикристаль- ному ОЗУ данных относят также шесть регистров, распределенных на ад- ресное пространство памяти данных: регистры последовательного порта (DRR н DXR); таймер (TIM), регистр периода таймера (PRD). регистр мас- ки прерываний (IMR), регистр распределения глобальной памяти (GREG) Центральное арнфметическо-логическое устройство (ЦАЛУ) процес- сора оперирует 16-раэрядиымн словами, считываемыми из памяти данных или памяти программ. В состав ЦАЛУ входи: умножитель. сдвигающее устройство (СУ), арифметическо- логическое устройство (АЛУ), аккумуля- тор. Умножитель выполняет умножение 16-разрядных слов и формируег 32- разрядный результат за один цикл Умножитель содержит входной 16- разрядиый регистр временного хранения (Т-регнстр) одного нз операндов и 32-разрядный регистр произведения (Р-регнстр). Выходное слово Р- регнетра может быть сдвинуто влево на I или -4 разряда и вправо на 6 раз- рядов с помощью сдвигающего устройства Кроме этого,сдвигающее уст- ройство имеет 16-разрядный вход, связанный с шиной данных н 32- раэрядпый выход, связанный с АЛУ *>то позволяет выполнять масштаби- рование данных, извлекать значения отдельных битов, предотвращать пе- реполнения АЛУ процессора, выполнять арифметические и логические опсрацни над 32-разрядными словами Один из входов АЛУ связан с Р- регистром или сдвигающим устройством, другой - с аккумулятором Аккумулятор (АСС) предназначен для временного запоминания ре- зультатов операции, выполненных в АЛУ, и является 32-раэрядным ( старшее слово -биты 31-16 н младшее слово -биты 15-0) Дополнительное арифметическое устройство (ДАУ) состоит из восьми 16-разрядных вспомогательных регистров (AR0-AR7), 3- р азряд ною указателя вспомогательных регистров (ARP). указателя стра- ниц (DP), арифметического устройства вспомогательных регистров (ARAL!) ДА У обычно используется для формирования адреса операнда намети данных н функционирует параллельно с ЦАЛУ D процессоре используется несколько способов адресации Указатель страниц (DP) используется при прямой адресации, а вспомогательные регистры (AR0-AR7). указатель
ЦПОС с фи Kt и ромнной запятой семейстм TMS3MK?2i 2.4 вспомогательных регистров ARP, арифметическое устройство вспомога- тельных регистров (ARAU) - при косвенной регистровой адресации. Восьмиуровневый аппаратный стек предназначен для запоминания содержимого счетчика команд (PC) во время прерываний и вызова под- программ Внутренние прерывания генерируются 16-разрядным таймером (TIM) нлн последовательным портом Внешние прерывания формируются сигналами INT0-INT2 и могут маскироваться Встроенный последовательный порт обеспечивает связь с другими устройствами по последовательному каналу Два регистра RSR и XSR (сдвиговые регистры прнема/передачи) последовательного порта могут функционировать либо в 8-битовом, либо в 16-битовом режиме Для построения многопроцессорных систем предусмотрена возмож- ность использования глобальной памяти Взаимодействие с этой памятью осуществляется посредством сигналов BR (запрос шины) н READY Восьмиразрядный регистр GREG определяет каквя часть внешней памяти должна рассматриваться как глобальная. Если текущая команда адресует глобальную память, го сигнал BR запрашивает доступ к шине данных гло- бальной памяти Сигнал READY информирует о возможности доступа к запрашиваемой шине Управляющие операции поддерживаются в процессоре 16-разрядным таймером (TIM), счетчиком числа повторений (RPTC). регистрами состоя- ния ST0, STI и очереди команд (Q1R). регистрами команды (IR) и признаков прерываний (IFR). 7.3 Организация памяти Процессоры семейства TMS32OC2X обеспечивает работу с тремя ад- ресными пространствами' памяти данных, памяти программ н ввода- вывода. Процессор может выполнять действия над содержимым внутрен- ней (расположенной на кристалле) памяти, либо нал содержимым внеш- ней памяти Ниже будем выделять следующие вилы памяти |35) внутрен- нюю и внешнюю память данных, внутреннюю и внешнюю память про- грамм Внутренняя память данных представлена тремя блоками ОЗУ (ВО. BJ, В2) и шестью регистрами (DRR, DXR, TIM. PRD, |MR, GREG). Ем- кость ОЗУ 544 шестнадцатиразрядных слова Из них 256 слов (блок ВО) могут использоваться либо как память данных, либо как память программ Оставшиеся 288 слов (блоки BI и В2) всегда используются как память данных Общая емкость памяти данных 64К шсстнадцалира1рядиых слова Адреса, соответствующие внутренней памяти данных, не превышаю) 1024 (0400h) (рнс 7 4) Адреса регистров, отображаемых на память данных при- ведены в табл 7 2.
Внутренняя память программ представлена ПЗУ программ емкостью 4Кх16 н блоком DO, если он распределен на память программ командой CNFP (рнс. 7.4) Внутренняя память программ позволяет процессору функ- ционировать с максимальным быстродействием, при этом внешняя шнна данных D15-D0 остается свободной для обращения к памяти данных По- сле поступления сигнала блок ВО отображается на память данных. nporpiuu 3lp»IF) BJKS) BnttfHlI л«иать emjTEFF) сиияад Ьпо< 0 0* SW&FFfF) W/MC-1 П|Ы1ТЬ *Aptc» про'рши дач iW ПЗУ ижед Ekr>Pt">tt ПЭт *MWW) Ptlfpl ЯЛДОТТ) П|ЫЯТ| tanftrr) _ Бгк ВО* UfiBfFTTT) W/UC* О Замса rittiirb ОВД да) Рвгвотред да» яда) Ра>|р| Сои! *ВД TtffWF) Елаа В? «дач 5I1P1FF) Ратала Cipm* 13 овдя) WfOUFF) Ьлм ВО" 41 пред xghoff) 6flDl Bl Cipm* i? гвдач MM»Tb c*«*> 1-111 CfiSffFH) Рис.7.4. Карта распределения памяти Таблица 7.2 - Адреса регистров Регистр Адрес J Назначение Ре тетр приема последовательного порта DRR(I6) 0 DXR(16) 1 ' Регистр передачи последовательного порта TtM(l6) 2 Таймер PRJXI6) 3 Регистр периода таймера ГМ1Ц6) GREG(8) 4 5 Регистр маски прерываний . Регистр распределения глобальной памяти Распределение первым 4 К-слов памяти программ задается сигналом МР /МС Если МР! МС -|, то указанное адресное пространство отво- дится под внешнюю память программ Если МР /МС ~0, то адреса с 32 по 40)5 отводится под ПЗУ программ. Обращение к внешней памяти про- грамм/данных происходит при активных chi налах PSfDS.STRH Во время обращения к внутренней памяти эти сигналы неактивны Действия, выполняемые по той или иной команде, существенно за- висят от используемых видов памяти. При отом возможны четыре комби- нации видов памяти: РИЛ, Pl/DE, PE/DI, PE/DE Если учесть, что внут-
ЦПОС с фиксированной мпятой есиейстм TMS110CI1 гы рснняя память программ может быть представлена ПЗУ (PI) или блоком ВО (PR), то получим шесть различных комбинаций. Необходимо учитывать 7ГО обстоятельство при определении количества Шилов, требуемых для выполнения команды 7.4 Аппаратные средства адресации К аппаратным средствам адресации, входящим в состав ДАУ, отно- сят вспомогательные регистры AR0-AR7, указатель вспомогательною ре- гистра ARP, буфер вспомогательного регистра ARB, арифметическое уст- ройство вспомогательных регистров (ARAU), указатель страниц DP, муль- типлексоры (MUX). Схема соединения перечисленных блоков приведена на рнс. 7.5. ДевятмразрндныЙ регистр страниц DP используется прн прямой ад- ресации памяти данных Для этого 7 младших разрядов слова команды (на рнс. 7.5 - 7 м.р.к.) объединяются с содержимым DP. Вспомогательные регистры AR0-AR7 используются прн косвенной адресации памяти данных. В этом случае содержимое вспомогательных регистров рассматривается как шестнадцатиразрядный адрес памяти дан- ных. Для выбора одного из вспомогательных регистров используется трех- раз рядный регистр указатель ARP, в который загружается значение от 0 до 7. Процессор имеет специальные команды для первоначальной загрузки ре- гистров AR0-AR7 и ARP Указатель ARP может быть загружен значением. взятым либо нз памяти данных (через шину данных), либо нз 3-х младших разрядов команды (через шину команд) Каждый раз, когда ARP загружает- ся новым значением, старое значение сохраняется в буфере ARB (и ис- плючением команды LS I ). Рис. 7 5 Структурная схема ДАУ
’6? Гл»В17 ARAU позволяет после первоначальной загрузки выполнять индек- сацию вспомогательного регистра, на который указывает ААР Индекса- ция выполняется путем увеличения (уменьшения) содержимого ААп на единицу, либо путем сложения (вычитания) содержимого AR0 с содержи- мым ARn Индексация осуществляется параллельно с операциями, выпол- няемыми в ЦАЛУ Хотя ARAU разработано язя поддержания манипуляций с адресами, оно может также использоваться как арифметическое устройство общею назначения ARAU оперирует 16-разряднымн аргументами без знака, а также обеспечивает реализацию команды передачи управления (HANZ). основанную на сравнении содержимого AR0 со вспомогательным регист- ром, на который указывает ARP. Это позволяет реализовывать с помощью ARAU циклические алгоритмы В этом случае один нз вспомогательных регистров используется в качестве счетчика циклов, a AR0 содержит сю конечное значение. 7.5 Центральное, а р и фмети чес ко-логи чес кое устройство НАЛУ содержит 16-разрядныЙ сдвигающий регистр, паралельный умножитель 16x16. 32-разрядное арнфметическо-логическое устройство (ALU), 32-разрядный аккумулятор (АСС) и дополнительные сдвигающие устройства на выходах умножителя и аккумулятора Функциональная схема ЦАЛУ приведена па рис. 7.6 [35] Выполнение команды в ЦАЛУ обычно сводится к следующим дейст- виям; I) получению данных из памяти через шину данных, 2) обработке данных в масштабирующем сдвигающий региоре. умножителе. ALU, 3) сохранению результата в аккумуляторе. Одни >п входов ALU соединен с выходом аккумулятора (АСС). л другой может быть подключен либо к выходу масштабирующего сдвигаю- щего регистра, либо к выходу умножителя Масштабирующий сдвигающий регистр связывает шину данных с AI.U н обеспечивает сдвиг данных клево па 16 разрядов (SFU0-I6)) Младшие биты сдвигаемого слова -запол- няются пулями ияи битом знака (SX), если установлен бит режима знакорасширения (SXM) регистра состояния ST1. ЦАЛУ содержит дополнительное сдвигающее устройство на выхо- де умножителя, которое позволяет выполнять сдвиг вправо па шесть разрядов (SFR(6)) с учетом бита знака SX, или влево на I или 4 разряда ($FL( I 4)) Кроме этого, содержимое аккумулятора может быть сданную влево на 7 разрядов при выводе денных
ЦПОС с фи кг и ром нн Ой я питон ctwBcraa TMS3WC2» 263 ALU обеспечивает выполнение большого набора арифметических и поразрядных логических операций за одни командный никл Оно опери- рует 16-разрядными словами, извлекаемыми из памяти данных или непо- средственно из команды. ALU поддерживает операции с плавающей точкой. В систему ко- манд процессора включена команда NORM, позволяющая нормализовать число с фиксированной точкой, содержащееся в аккумуляторе. Эго дос- тигается путем удаления лишних знаковых битов Команда NORM реа- лизуется с помощью операции сдвига влево Команда LACT позволяет вы- полнить обратную операцию - денорывлнзашио числа с плавающей точкой за счет сдвига мантиссы В этом случае количество, сдвигов задается четырьмя младшими битами Т-рсгистра. Операции сдвига выполняются в масштабирующем сдвигающем регистре. Содержимое Т-регистра опреде- ляет значение экспоненты. Рнс.7.6. Функциональная схема ЦАЛУ Программирование режима переполнения аккумулятора может вы- полняться комаицамн SOVM и ROVM, устанавливающими или сбрасы- вающими (соответственно) бит режима переполнения OVM регистра со- стояния STl Если OVM=1 н происходят переполнение, то аккумулятор
загружается либо максимальным положительным числом (7FFF FFFFh), ли- бо минимальным отрицательным числом (8000 OOOOh) в зависимости от направления переполнения При ОУМ=0 результаты в аккумуляторе не модифицируются Следует отметить, что логические операции не оказыва- ют влияния на флаг переполнения ALU и аккумулятор позволяют выполнять широкий набор команд безусловного и условного переходов 1Ьпример, команду перехода при возникновении переполнения BV, команду перехода DZ, проверяющую на равенство нулю содержимое аккумулятора, команду безусловного перехода по адресу, содержащемуся в аккумуляторе (НЛСС) и др Аккумулятор процессора состоит из двух 16-разрядных регистров ЛССН (старшее слово аккумулятора) и ACCL ( младшее слово аккумулято- ра) Сдвигающее устройство на выходе аккумулятора обеспечивает сдвиг на 7 разрядов влево Сдвиг выполняется во время передачи данных в па- мять и поэтому нс оказывает влияние на содержимое аккумулятора Аккумулятор содержит бит переноса С, который позволяет более эффективно выполнять арифметические операции с повышенной точно- стью. Для этого могут применяться команды ADDC (сложить с учетом пе- реноса) и SUDD (вычесть с учетом заема). Бит переноса может изменять свое значение под воздействием многих арифметических команд и команд сдвига. На значение бита переноса не оказывают влияние логические ко- манды, команды загрузки аккумулятора, команды умножения MPY, MPYK. МРУи Значение бита переноса С анализируется в командах условного пе- рехода ВС и DNC Бит переноса С участвует в операциях сдвигов аккуму- лятора (команды SFL, SFR, ROL. ROR) В ЦПОС применен аппаратный умножитель 16 х 16 бит, который позволяет получять 32-разрядный результат с учетом или без учета знака операндов команды умножения Умножитель может находить произведение 2-х операндов, поступающих из памяти данных и памяти программ, либо только из памяти данных Результат операции умножения помешается в Р- регистр При передаче содержимого P-регистра в АЛУ или память данных может выполняться операция едянга произведения влево на I или 4 бита и вправо па 6 битов. Конкретное количество разрядов, на которое будет сдвинуто произведение, зависит от значения 2-х разрядного поля РМ реги- стра состояния STI Сдвиг вправо на 6 битов позволяет реализовать 128 ко- манд умножения с накоплением результата в аккумуляторе без опасности возникновения переполнения. Для управления умножителем имеются команды: LT- загрузка Т- регистра содержимым заданной ячейки памяти данных; МРУ- перемноже- ние операндов из Т-регистра и памяти данных; MPYK вычисление произ- ведения содержимого Т-рсгистра и константы, заданной в команде Кроме этого, в систему команд ЦПОС входят команды MAC, MACD, MPYA,
II ПОС с Аикстнюминой запятой семейства TMSJZOCx Ж MPYS. управляющие как умножителем, ток и АЛУ с аккумулятором Эти команды позволяют выполнить умножение с одновременным накоплением результатов в аккумуляторе. При выполнении команд МАС и MACD опе- ранды извлекаются из памяти данных и памяти программ за один никл Это позволяет командам МАС и MACD выполняться также в течение одно- го цикла, если они применяются совместно с командами КРТ или RPTK 7.6 Средст ва управлении Управление вычислительным процессом в 11ПОС осуществляется с помощью счетчика команд (PC), аппаратного стека, сигналов прерываний и сброса, регистров состояний, таймера, счетчика числа повторений [35] 7.6.1 Счетчик команд и стек ЦПОС содержит 16-разрядный счетчик команд (PC) и восьмиуровне- вый аппаратный стек Счетчик команд адресует память программ. Стек используется во время обработки прерываний и вызова подпрограмм Счетчик команд формирует адрес очередной команды и передает его на шину адреса команд. Команды из памяти программ загружаются в ре- гистр команды (IR) (рис 7.7). В момент загрузки pciнстра 1R счетчик команд содержит адрес следующей команды. Счетчик команд может также адре- совать память данных. Это происходит во время исполнения команды BLKD, которая выполняет пересылку блоков данных в памяти данных Счетчик команд саязан с шиной данных через мультиплексор (MUX) и может быть загружен содержимым аккумулятора. Это используется в ко- мандах передачи управления по адресу, находящемуся в аккумуляторе (ВАСС, CALA) В начале новою цикла выборки команды содержимое счетчика команд увеличивается на I или в пего эа1ружается адрес, по кото- рому следует передать управление Если происходит вызов п одп реп рам м ияи обработка прерываний, то содержимое счетчика команд сохраняется в стеке. Для работы со стеком используются команды PUSH (запомнить в стеке) и ГОР (извлечь из сте- ка). Когдв содержимое счетчика команд запоминается в верхушке стека, старое значение верхушки продвигается на уровень ниже; значение, нахо- дящееся внизу стека, теряется. Старое значение верхушки стека может быть потеряно, если до извлечения его из стека команда PUSH будет вы- полнена Враз При выталкивании значений из стека может произойти об- ратное переполнение стека, если применить команду POP более 7 раз В этом случае на всех уровнях стека будет находиться одно и то же значение
266 Глям 7 Рис.7 7. Счетчик команд и стек ЦПОС содержит дм дополнительные команды PUSl ID и POPO, кото- рые позволяют сохранять содержимое верхушки стека в памяти данных и извлекать его из памяти двнных Эти команды обеспечивают организацию стека произвольной глубины в памяти данных В ЦПОС TMS32OC25 каждая команда выполняется в течение трех машинных циклов: предварительной выборки, декодирования и исполне- ния. Счетчик предварительной выборки (PFC) содержит адрес следующей команды, которая должна быть выбрана Эта команда загружается в ре- гистр команды (IR), однако если ои будет занят исполняемой командой, то предварительно выбранная команда сохраняется в регистре очереди ко- манд (QlR). Затем инкрементируется содержимое PFC и после выполнения текущей команды содержимое Q1R загружается в [R Таким образом, счет- чик команд, хотя и содержит адрес следующей команды, но непосредствен- но в операциях выборки не применяется В действительности он является указателем текущей команды программы Содержимое PC инкрементиру- ется после того, как завершается выполнение команды Благодаря наличию трехтталного конвейера, в каждом машинном оикае обрабатывается три команды, находащисся на разных этапах выпол- нения. Конвейер становится даухзталным, если выполняемая программа считывается нз внутреннего ОЗУ При обращении к внутреннему ОЗУ вы- борка и декодирование команды выполняются в одном и том же машин- ном цнкае В качестве примера рассмотрим типовую временную диаграмму внутренних операций процессора (рис. 7 8)
ЦПОС с фиксированной мпятой семейства TMS32OC2I 267 лоск Цип 1 | О 1 CD I W ( О1 1 ® 1 ffl 1 0* । 01 1 ф 1 0) 1 Qi г Qi । UKOUT1 1 Il ! Il 1 || . Il 1 1| 1 |] j 1 1 Г 1 1 1 1 1 ‘ 1 l 1 якоит? Ч 1 |[ । J 1 1 1 У 1 1 1 г । SIRS ' 1 г || 1 Н Г 1 ; || 1 1. • ||_ । । [ 1 i * 1 АДРЕС 1 1ОЫ1ИА* 1 Н оивкд* 3 |— юнаада 1 Н _ । 1 1 । дыяаде -! 1™ ч| 1 1 1 —Lf?.?1. 1 ' 1 1 i 1 J- LriiJ Г 1 1 1 1 ЯК0Э1Ю- ( । г ВА«С [«ьчь-aaCJ ; 1F чтЕдае®/- 1 —i—i к в мВ* •3——L Я0М*Ы£,1Т| II;, 1 г < 1 ' I ‘ ИСПОГМЕМС| (ВИАНА* Н*СС 1 ^ДСс]- [leua-aa 1 ] ,АСС1 4 состоимся - I дми ля 1 I ЗАПИСЬ ОЗУ - Рис. 7 8 Временные диаграммы основных операций Машинный цикл процессора состоит из четырех тактов (фаз) сигна- ла CLOCK, обозначаемых Q1-Q4 Начало машинного цикла соответствует заднему фронту сигнала CLKOUTI В первом машинном цикле происхо- дит выборка команды I (фаза Q3) Во втором цикле в течение фаз Q2 и Q3 осуществляется декодирование команды, которое приводит к формирова- нию управляющих сигналов АЛУ н выборке операндов команды в фазе Q4 цикла 2 и Q1 никла 3. Параллельно с этим в цикле 2 в фазах Q3 и Q4 вы- числяется новое содержимое вспомогательного регистра в ARAL' (если ис- пользуется косвенная адресация) Загрузка вспомогательного регистра и ARP выполняется в фазе Q1 третьего цикла. Во время действия фаз Q2 и Q3 цикла 3 производятся необходимые вычисления в ЦАЛУ В фазе Q4 третьего цикла результаты вычислений помещаются в аккумулятор Биты регистров состояния обноаляются в фазе Q1 четвертого цикла Биты, за- гружаемые в регистр состояния, определяют текущее состояние АЛУ и но- вое значение ARP. соответствующее следующей команде. Временные диа- граммы, изображенные на рис 7 8, верны, если обращение к памяти нс тре- бует дополнительных циклов ожидания. При работе с "медленной" памя-
2Ы Г.тв* ? тъю цикл выполнения команды удлиняется на требуемое число циклов ожидания. 7.6.2 Таймер, регистр периода, счетчик числа повторений ЦПОС содержит 16-разрлдиын таймер (TIM) и регистр периода таймера (PRD . рис 7.3). отображаемые на память данных Таймер управ- ляется сигналом CLKOUTI, При сбросе в таймер Т|М и регистр периода PRD записывается максимальное число FFFFh. После того как сигнал сброса RS примет высокий уровень, содержимое таймера уменьшается на 1 при каждом поступлении импульса CLKOUTI. Начальное значение тай- мера определяется содержимым регистра периода. Как только значение в таймере станет равным нулю, формируется прерывание таймера TINT и он перезагружается значением, содержащимся в регистре периода PRD. Это происходит в течении первого машинного цикла после формирования пре- рывания TINT. Таким образом, прерывания будут происходить через ин- тервалы времени, равные [(РЯ£>) + И ।, где । - период СИ1 - нала CLKOUTI Обычно прерывание TINT используют для считывания выборок входного сигнала, обрабатываемого процессором. Таймер и регистр пе- риода могут быть инициализированы в любом машинном цикле. Нулевое значение регистра периода недопустимо. Если прерывание TINT не используется, то необходимо использовать маску или запретить прерывания командой DINT В этом случае регистр периода PRD может использоваться как обычнал ячейка памяти Если требуется вновь использовать прерывание TINT, то регистр PRD и тай- мер следует предварительно инициализировать, а затем разрешить преры- вание TINT. Счетчик числа повторений RPTC содержит 8-разрядное двоичное число N, которое определяет количество повторений некоторой команды Число повторений команды равно N i 1. С помощью команды RPT или RPTK счетчик числа повторений может быть загружен значением, находя- щимся в диапазоне от 0 до 255. Это позволяет повторять команду, находя- щуюся за командой RPT ияи RPTK, максимум 256 раз. Счетчик числа повторений может использоваться командами: ум- ножения с накоплением, пересылки блоков, ввода-вывода, чтения^записи таблиц. Те команды, которые требуют лая своего выполнения нескольких циклов , при записи их после команды повторений (RPT или RPTK) вы- полняются за один цикл Например, команда чтения таблицы TBLR обычно требует трех и более циклов конвейера При повторении с помощью RPTC ока выполняется за один цикл
ЦПОС с фиксированной запятой семейства TMS320C2a 26V 7.6.3 Регистры состояний ST0 и STI Регистры состояний ST0 и STI (рис. 7.3) предназначены для сохра- нения различных условий и режимов работы процессора. Содержимое реги- стров состояний может быть запомнено в памяти длнных. Это позволяет восстанавливать состояние процессора после обработки прерываний и вы- зова подпрограмм Все биты состояний могут быть запомнены и считаны из регистров состояний ST0 и ST I с помошью команд LST7LST1 (загрузить рагнетр состояния) и SST/SSTI (запомнить регистр состояния). Бит INTM (режим прерываний) не может быть установлен с помошью команды LST На рис 7 9 показана структура регистров состояний Рассмотрим на- значение отдельных полей регистров ST0 и STI. 15 14 В 12 II 10 9 В________________________________________О I ARJ* |ОУ |0УМ | I ! ГМТМ | "DP | 15 13 |2 II 10 9 8 7 6 5 4 3 2 I _ О i ARB | CNF | TC | SXM i С | I 1 I HM | FSM | XF ' FO ТД4 [~PM I Рис.7.9. Структура регистров состояний Поля ARP, ARB, DP копируют содержимое соответствующих реги- стров, показанных на рис 7.5 .Для указанных регистров нет специальных команд, сохраняющих ил значения в памяти После загрузки регистров STO и STI командами LST/LSTI регистры ARP, ARB. DP инициализиру- ются значениями соответствующих полей регистров состояний. Поля ОУ и QVM имеют отношение к переполнению АЛУ. Бит флага переполнения OV устанавливается в I, если прн выполнении операции в АЛ У произошло переполнение. Бит может быть установлен в 0 командами LST, BV. BVN или сигналом сброса Бит режима переполнения OVM опре- деляет способ аппаратной обработки переполнения Если 0УМ=1, то в случае возникновения переполнения в аккумулятор загружается макси- мальное положительное ияи минимальное отрицательное число Команды SOVM и ROVM позволяют соответственно сбросить и установить бит OVM Бит переноса С устанавливается в 1, если в результате выполнения суммирования в АЛУ происходит перенос, и устанавливается в 0, если при выполнеинн вычитания происходит заем В любом случае (когдл нет пере- носа ияи заема) после выполнения операции суммирования бит С уста- навливается в ноль, а после операции вычитания в - 1 (за исключением команд ADDH и SUBH) На бит переноса таюке воздействуют команды SC, RC, LST1, команды сдвигов. Имеются команды передачи управления ВС к BNC, реагирующие на значение бита переноса При поступлении сиг- нала сброса бит переноса устанавливается в I.
ITO Глава 7 Бит режима знакорасшнрення SXM разрешает (SXM-I) или подав- ляет (SXM=0) дополнение числа с левой стороны до требуемого формата битом знака Бит устанавливается н очищается командами SSXM и RSXM При поступлении сигнала сброс бит устанавливается в 1 Биг режима прерывания INTM разрешает или запрещает прерывания Если INTM’H), то все прерывания, на которые нс наложена маска, раз- решены В случае INTM=4 запрещены все маскируемые прерывания Бит INTM устаиавлнвае1ся и очищается соответственно командами DINT и EINT Сигнвлы RS и IACK устанавливают бит INTM в 1 Бит флага коктроль/упраалсиие ТС меняет свое значение под воз- действием команд BIT, BITT, CMPR, LST. NORM (см. ниже описание ко- манд) Имеются две команды условного перехода BBZ и BBNZ, реагирую- щие на значение бига ТС. Бит уггравиепия конфигурацией внутрикристального ОЗУ CNF опре- деляет размещение блика ВО Если CNFM), то ВО соответствует памяти данных, в противном случае - памяти программ Бит модифицируется ко- мандами CNFD, CNFP, LSTI Сигнал RS устанавливает CNF^O Бит режима захвата НМ определяет реакцию процессора на вход- ной сигнал HOLD. Если НМ°0, то после обработки сигнала HOLD про- цессор переводит шипы в третье состояние, но может при этом выпол- нять команды нз внутренней памяти программ. Когда НМ-1 процессор приостанавливает внутренние операции. Биты режима сдвига произведения РМ управляют сдвиговым уст- ройством при передаче данных из P-регистра в АЛУ или на шину данных Если РМ=ОО, то сдвиг не выполняется. Значения РМ=0| н РМ-10 соответ- ствуют сдвигу иле во на I и 4 разряда; значение РМ=1 I соответствуй! сдвигу вправо на 6 разрядов. Биты РМ устанавливаются командами SPM и LSTI. Сигнал RS обнуляет поле РМ. Бит состояния вывода XF используется в мультипроцессорных сис- темах. Бит устанавливается и сбрасывается командами SXF и RXF. Си1 нал RS устанавливает бит XF в единицу Биты FO. FSM и ТХМ управляют работой последовательного порта Бит формата FO определяй длину регистров порта Если FO-l.iopciH- стры 16-разрядиые , если FO-0, то 8-разрялпыс. Бит FQ модифицируется командами FORT и LSTI. Сигнал RS устанавливает бит FO в ноль. Бн< режима кадровой синхронизации FSM определяет использование импуль- сов кадровой синхронизации. Если FSM=1, то последовательный порт синхронизируется сигналами на входах FSX/FSR Сигнал RS устанавливает бит FSM в I Бит режима передачи ТХМ управляет назначением вывода FSX Если ТХМ=1, то I-SX - это выходной вывод, в противном случае - входной. Бит ТХМ устанавливается н сбрасывается командами STXM и RTXM Сигнал RS устанавливает бит ТХМ в ноль
ЦПОС с фикснромииой и питой семсйсгвв TMS3ZOC2» 771 7.6.4 Прерывания Процессор имеет три источника внешних маскируемых прерываний (INT2-INT0) и четыре источника внутренних прерываний, генерируемых последовательным портом (RINT и XJNT), таймером (TINT), программно с помощью команды TRAP. Сигнал RS также обрабатывается как прерыва- ние В табл 7 3 приведены векторы прерываний и их приоритеты Когда возникает запрос прерывания, он запоминается а 6-разрлдиом регистре признаков прерываний (IFR) Отдельные разряды этого регист- ра управляются внешними прерывснияыи/ЛТО- /Л'7'2 . а также внутрен- ними прерываниями XINT, R1NT и TINT. Каждое прерывание хранится в IFR пока не будет распознано, а затем автоматически очищается сигна- лом IACK или RS RS прерывание не сохраняется в 1FR Внешние и внут- ренние прерывания можно маскировать с помощью регистра маски пре- рываний IMR (рис 7 10). Прерывания RS и TRAP не маскируются Таблица 7 3 - Векторы прерываний Прерывание Вектор i Приоритет 0 j 1 (наивысший) INTO 2 L2 [Nil 4 1з I'Nfl 6 4 TINT 24 ' 5 RINT 26 : 6 XINT 28 ' 7 (низший) TRAP 30 Нет Если соответствующий разряд 1MR содержит 0. ю данное прерыва- ние замаскировано. Регистр маски прерываний распределен на область па- мяти данных и доступен для чтения и записи по адресу 4 Бит INTM реги- стра состояний ST0 разрешает нлн запрещает маскируемые прерывания Процессор имеет встроенный .механизм, запрещающий прерывания при выполнении "длинных" команд, требуюшнх нескольких машинных циклов Прерывание обрабатывается только после того, как завершается выполне- ние команды 15_________6 $ 4 3 2 _ 1 0 | Резерв ~ | X1NT | HINT ] TINT ЯГг2 ~Т [ 1&То I Рнс 7 |0 Регистр маски прерываний (1MR) Прерывания запрещены внутри процесса, связанного с обработкой команды RPT нлн RFTK. В этом случае прерывание сохренястся в регистре IFR, пока содержимое счетчика числа повторений RPTC не станет рав-
272 Г.ии 7 ным нулю Прерывание не может быть обработано между командой F.INT, разрешающей прерывания, и следующей по порядку командой Внешние прерывания, поступающие в процессор, синхронизируются ближайшей фазой Q2 сигнала CLKOUT и записываются в IFR в фазе QI следующего цикла. Рхлн прерывания разрешены, то формируется сигнал подтверждения прерываний IACK, который устанавливает бит 1NTM в I Пока бит INTM не будет сброшен (команда KINT), прерывания будут за- прещены На рис 7.11 приведена временная диаграмма обработки прерыва- ния. На диаграмме прерывание поступает в цикле выборки команды N Конвейер процессора функционирует сше в течение двух машинных цик- лов, пока команда N не будет обработана. При этом нз памяти выбираются команды N+1 н Nt2, которые будут находиться соответственно в регистрах JR и QIH Н цикле адресации команды N+3 выборки и исполнения не про- исходит. В следующем цикле сохраняется содержимое счетчика команд PC (оно соответствует адресу команды N+1) в стеке, в PFC загружается адрес, соответствующий вектору прерываний, и далее конвейер загружа- ется командами подпрограммы обработки прерываний (1,1+1. Ь2нтд) В момент выборки первой команды обработки прерываний при низком уровне сигнала CLKOUT1 формируется енгная IACK Внешнее устройст- во. сформировавшее запрос прерывания, может установить вид прерыва- ния путем "зашелкивания* адреса, действующего на линиях А1-А4, при совпядепни низкого уровня сигнала 1АСК и переднего фронта сигнала CLKOUT2 Этот момент соответствует выборке первого слова вектора пре- рывания. Рнс 7 ] ] Временная диаграмма обработки прерываний
ЦПОС с фикснроввикой пинтой семгйствв TMS320C21 27) Прерывание от сигнала RS не может быть замаскировано Длитель- ность импульса сброса должна быть не менее дтительностм грех периодов сигнала CLKOUT После положительного фронта RS процессор начинает выборку команд обработки сброса Поскольку конвейер пустой, то вы- полнение команды из нулевой ячейки произойдет спустя два машинных цикла Обычно в этой ячейке содержится команда передачи управления подпрограмме инициализации процессора 7.6.5 Мультипроцессорные средства и прямой доступ к памяти В мультипроцессорных системах решение задачи распределяется ме- жду несколькими параллельно работающими процессорами За счет этого достигается существенное увеличение производительности системы, а также повышается надежность и живучесть системы На основе процессоров TMS32OC2x можно проектировать мульти- процессорные системы различных конфигураций: с параллельными ЦПОС, использующими локальную память, с основным и вспомогательным про- цессорами ЦПОС, разделяющими глобальную память; с универсальным процессором, управляющим ЦПОС Ого возможно благодаря синхрониза- ции процессоров посредством сигнала SYNC, интерфейсу с глобальной па- мятью. режиму захвата шин Синхронизация нескольких ЦПОС выполняется сигналом SYNC. От- рицательный фронт сигнала SYNC переводит каждый процессор мульти- процессорной системы в фазу QI При этом имеет место задержка, равнял трем периодам сигнала CLKIN Обычно сигнал SYNC формируется во вре- мя действия сигнала RS Работа с глобальной памятью данных выполняется с помощью сигна- лов 0R (запрос шины) и READY Глобальная память - это память разде- ляемая между несколькими процессорами Для доступа к такой памяти используется арбитр При этом пространство адресов каждого процессора разделяется на два раздела - локальный и глобальный Локальный раздел используется процессором для выполнения внутренних функций, а глобальный раздел для связи с другими процессо- рами. Регистр распределения глобальной памяти (GREG) определяет часть памяти данных процессора как глобальную внешнюю память GREG это 8-разрядный регистр Содержимое регистра GREG определяет объем гло- бальной памяти (табл 7 4). Когда происходит обращение к пространству адресов глобальном памяти, вместе с сигналом DS формируется сигнал запроса доступа к гло- бальной памяти BR Внешний арбитр в ответ на BR вырабатывает сигнал READY для разрешения доступа
П* Глава7 Таблица 7 4 - Распределение глобальной памяти Содержим о eGREG Локальная память 1 лобальнал память Диапазон Объем , Диапазон Объем ООО 000 хх Ob-FFFFh 65536 10000000 Ob-7FFFh 32768 8000-FFFFh 32768 11000000 Ob-0FFFh 49152 COOOb-FFFFh 16384 11100000 Oh-DFFFh 57344 EOOOb-FFFFh 8192 11110000 Oh-EFFFh 614440 FOOOh-FFFFh 4056 11111000 0h-F7FFh 63488 FSOOli-FFFFh 2048 11111100 Oh-F0FFh 64512 FCOOb-FFFFh 1024 11111110 Oh-FDFFh 65024 FEOOh-H-'FFh |Я2 256 11111111 Oh-FEFFh 65280 FFOOh-FFFFh Процессор TMS32OC2x поддерживает режим прямого доступа к памя- ти данных и программ, пространству адресов ввода-вывода После поступ- ления сигнала HOLD от устройства, запрашивающего прямой доступ. ЦПОС переводит шину адреса А]5-АО. шину данных DI5-D0. управляю- щие выводы (PS, DS, IS, R/W, STR0) в высокоимпслансное состояние и формирует сигнал подтверждения доступа HOLDA Обычно требуется нс менее трех машинных няклов прежде, чем шипы перейдут в третье со- стояние В отличие от прерываний сигнал HOLD не запоминается, поэтому на выводе HOLD должен обеспечиваться низкий уровень до тех пор. пока внешнее устройство пс завершит прямой доступ к памяти Пели при по- ступлении сигнала HOLD процессор выполняет некоторую команду, то он сначала завершает выполнение текущей команды, а затем переводит шины в гретье состояние. После подачи на вход HOLD сигнала высокого уровня продолжается выполнение программы с той же точки, где она была приостановлена При этом синхронно с HOLD восстанавливается высокий уровень сигнала HOLDA. Требуется не менее двух машинных циклов для возобновления ра- боты ЦПОС. После перехода в режим прямого досгуца процессоры TMS32OC2x могут продолжать выполнение программы, находящейся во внутреннем ПЗУ или ОЗУ Для этого необходимо предварительно установить бит НМ регистра состояния STI в ноль. Если ИМ-1, то во время действия сигнала HOLD запрещены все прерывания Если НММ) . то прерывания обрабаты- ваются обычным образом
ЦПОС с фиксированной плитой се.мейстч TMS32OC21 275 7.7 Режимы адресации и форматы команд 7.7,1 Режимы адресации При выполнении любой команды процессор обращается к памяти программ или памяти данных, Память программ содержит команды, вы- полняемые процессором, а память данных - операнды, над которыми вы- полняются необходимые преобразования, задаваемые полем "код операции" (КОП) команды Способ нлн метод определения в команде адреса операнда нлн адреса передачи управления называют режимом адресации. Процессоры TMS320C2x поддерживают три режима адресации: прямой, косвенный и непосредственный. В режиме прямой адресации семь младших разрядов слова команды объединяются с девятью разрядами регистра указателя страниц (DP) дяя получения полного 16-разрядного адреса памяти данных (<1тарис7 12). Нулевое значение седьмого бита слова команды идентифицирует режим прямой адресации ХОЫЯНДТ 1$ а 7 i О (*н) Рис.7.12 Прямва адресация Указатель страниц позволяет выбрать одну нз 512 страниц памяти данных Каждая страница содержит 128 слов. Адрес слова на странице определяется младшими разрядами команды Загрузка указателя страниц DP выполняется командами LDP (загрузить указатель страниц DP) и LDPK (загрузить указатель страниц непосредственно). Необходимо отметить, что указатель страниц не инициализируется при сбросе процессора. В случае косвенной адресации адрес памяти данных определяется содержимым одного из вспомогательных регистров AR0-AR7 Выбор необ- ходимого регистра AR0-AR7 осуществляется с помощью трехразрядного указателя вспомогательного регистра ARP, в который помещается число, определяемое тремя младшими битами (NARP) команды (рис.7.13) При описании команд для обозначения текущего вспомогательного регистра, па который ссылается указатель ARP. используют запись - AR(ARP)
27(. Глава 7 <оиандз IS I 7 « $ 4 3 2 О Рис.7.13 Косвен) tea адресация Над содержимым регистров AR0-AR7 можно выполнять ариф- метические операции с помощью арифметичоского устройства всиомо1а- тсльпых регистров (ARAU). Указанное арифметическое устройство вы- полняет операции над содержимым AR0-AR7 параллельно с операциями, соответствующими выполнению текущей команды в ЦАЛУ Пваичис арифметического устройства вспомогательных регистров позволяет организовать семь различных вариантов косвенной адресации При запи- си команд с косвенной адресацией на языке ассемблера используют специальные обозначения, показанные в табл.7 5. Таблица 7.5 - Режимы косвенной адресации - Обозначение Название режима адресации ' • L-KARPJ Адресация бет изменения (AR) •- [,NARP] Адресация с уменьшением (AR) на 1 | : •• [.NARP) Адресация с увеличением (AR) на ) : [.NARP] Адресация с увеличением (AR) на (ARO) j •ot [,NARP] Адресация с уменьшением (ЛК) на (AR0) •BRO- [.NARP] Адресация с уменьшением (ЛК) ла (АКО) л образ ныи распространением переноса •HRO+I.NARP] Адресация с увеличением (AR) на (AR0) и ; обратным рас пространен нем переноса ; □ табл 7.5 операнд NARP соответствует новому значению указателя ARP, которое установится поеле выполнения команды Операнд, заклю- ченный в квадратные скобки, является необязательным и может быть опущен Запись (AR) обозначает содержимое вспомогательного регистра Следует отметить, что уменьшение или увеличение значения вспо- могательного регистра происходит после его использования текущей командой Режимы адресации, основанные на обратном распространении переноса, называют бит-иинерсной адресацией н применяют при упоря- дочении данных в программах быстрого преобразования Фурье .
ЦПОС t фиксированной мпиюй семейства TMS320C21 Как показано на рис 7.13, единичное значение седьмого разряда команды определяет косвенную адресацию Разряды 4, 5. 6 определяют одну но разновидностей косвенной адресации Разряд 3 определяет использование ноля NARP. Если значение этого разряда команды равно нулю, то поле NARP игнорируется и значение ARP остается неизменным Рнс.7.14 Непосредственная адресация Прн uenocpeifcmeeimoU адресации операнд содержится прямо в команде Различают однословные (короткие) команды с непосредственным операндом (8 и 13-разрядным) (рис 7 14,а) и двухсловные (длинные) команды с непосредственным операндом' В длинных командах в первом слове содержится код операции (рнс 7 14,6), а во втором непосредственный операнд 7.7.2 Формв описания команд Ц11ОС Для записи команд будем использовать расширенные формулы Бзкуса-Наура Формат ассемблерных команд процессора зависит от режима адресации: < команда с прямой адресацией ~ |<метка>] <мнемоиию> <ас> |,<сдвнг>] < ком айда с косвенной адресацией - [<метка>] <мнемоника> <ка> [,<сдвиг> [,<NARP>]) < команда с непосредственной адресаиией> (<мепса>] <миемоника> [<константа>] Метка представляет собой определяемое пользователем имя Значением метки яаляется текущее значение счетчика команд Метки
in l ЛЯМ 7 являются необязательными и используются в программах для передачи управления. Мнемоника представляет собой заранее определенное имя. которое идентифицирует код машинной операции (КОП) В качесик- мнемоннк используются сокращенные английские слова или аббревиатуры английских названий команд, передающих смысл основной функции команды Например, ADDH (add to high accumulator) - сложить co старшим словом аккумулятора, LAR (load auxiliary register) - загрузить вспомогательный регистр После мнемоники следуют операнды команд. Значениями операндов <ас>, <сдвиг>, <NARP>, <копстанта> являются целые числа. При зтом <ас> задает адрес слова на текущей странице памяти данных, 0 <- ас < 127 Необязательный операнд <NARP> определяет новое значение указателя вспомогательного регистра ARP. 0<=NARP <= 7 Операнд <конста1па> - целое 8-разряднос или 16-разряднос число Операнд <сдвиг> указывает на количество двоичных разрядов, на которое необходимо сдвинуть данное, участвующее в операции Значение этого операнда зависит от выполняемой команды Обычно значение поля <сдвиг> тто число в пределах от 0 до 15 Для команд с косвенной адресацией операнд <ка> определяется следующим образом: <ка>•! *+; ’0+] ’0RO4-; ’BRO- Прн записи ассемблерных команд операнды отделяются друг от друга запятой. Ниже приведены примеры записи команд в соответствии с введенными определениями: ADD DAT 1.3 ADD •.) ADDK 5h <7 I) (7 21 (7 >) Здесь ADD. ADDK мнемоники команд. □ команде (7 I) значение переменной DATI соответствует полю <ас> формата команды с прямой адресацией. Число 3 в командах (7.1) и (7.2) определяет сдвиг адресуемого операнда на три разряда влево. В команде (7.3) задана шести вл иатиричнва константа 5. 7.8 Команды аккумулятора 7.8.1 Команды арифметических операций Команды данной группы выполняют арифметические операции над содержимым аккумулятора (АСС) и содержимым заданной ячейки памяти двнных , либо над 8- или 16-раэрядной хонстантой Прн тгом может
-7V учитываться бит переноса и выполняться сдвиг содержимого заданной ячейки памяти. Сдвиг указывается либо непосредственно в команде, либо определяется содержимым Т-регистра Ниже приведены описания арифметических команд ЦПОС Для каж- дой команды'указывается формат н выполняемая операция, которая услов- но описывается в виде некоторого выражения, а также в текстовой форме. Для лучшего понимания действий, выполняемых командой, приводятся примеры. ADD (add to accumulator with shift) - сложить с аккумулятором co сдвигом Формат команды: ADD <ac> [ ,<сдвиг>] ; ADD <ка> [,<cjiBHr>[.<NARP>|] Операция: (ACC) + (dma)’ -> ACC Содержимое памяти данных, определяемое исполнительным адресом dma, сдвигается влево па число разрядов, соответствующее значению поля <сдвнг>, и затем суммируется с содержимым аккумулятора Результат помещается в аккумулятор. В результате выполнения команды устанавли- вается бит перекоса С и бит переполнения OV, если перед ттим были установлены бит режима переполнения OVM и бит режима зиакорасшпрения SXM Операция сдвига содержимою (dina) выполняется с использованием знакорасширсния, если был установлен бит SXM Диапазон значений поля ^сдвнг^ от 0 до 15. По умолчанию сдвиг равен нулю Пример 7 1 Здесь п далее заключение некоторого имени нлн адрес* в круглые скобки обо- значает содержиьюе (значение) области памяти, на которую ссылается кия или адрес Например, запись аила (AR(ARP)) обозначает значение намни, на которую ссылается текущий вспомогательный регистр, а запись вида (АСС) обозначает значение аккумуля- тора н т д Во всех рассматриваемым ниже примерах левый столбец показывает состояние регистров и памяти процессора до применение команды, правый столбец - после приме нс ниа (AR(ARP)) = 1025 (1025) ’ 4h (1025)-4h ADD *.3 (ACC)-28h (ACC) - 8h (C) - 0 Здесь содержимое ячейки памяти по адресу 1025 (те 4h) сдвигаете* влево на 3 разряда (получается 20h) и складывается с содержимым аккумулятора (20h18h-28h) ADDC (add to accumulator with carry) - сложить с аккумулятором c учетом перекоса Формат команды:
280 Глам 7 ADDC <ас> ADDC <ка> [ <NARP>) Операция: (АСС) 1 (dma) - (С) АСС В результате выполнения команды устанавливаются биты OV и С. если предварительно был установлен бит OVM Команда используется при выполнении арифметических операций с повышенной разрядностью Пример 7.2 .(AR(ARP)J- 1025 ADDC *,J (1025)- 4b (С) - I (l025)’ 4h (ACC) = 29h (C) - 0 ADDH(add io high accumulator) - сложить co старшим словом аккумулятора Формат команды: ADDH <ас> ADDH <ка> [,<NARP>] Операция: (АСС) + (dma) ‘I1* -> АСС Содержимое памяти складывается со старшим словом аккумулятора (разряды 3) 16). Значение младшего слова нс изменяется Команда воздействует на биты С и OV. Бит С может быть только установлен данной командой, но не сброшен Пример 7.3 (AR(ARP)) - 1025 ADDH * (1025) -4h (АСС)- 8b (С) ’ I (|O25)- 4h (ACC) -- 4ООО8И (C)= I ADDK (add (o accumulator short immediate) - короткое непосредственное сложение с аккумулятором. Формат команды: ADDK <константа> Операция (АСС) + 8-раэрядлвл константа -> АСС В результате выполнения команды устанавливаются биты С и OV Пример 7 4 (ACC)-A3l5h ADDK 4 h (ACC)-A)l9h (С) - О ADDS (add io accumulator with sign-extension supprcsscdhcnoweitHe c аккумулятором с подавлением знакорасширсния Формат команды; ADDS <ас>
ЦПОС с фи не и ров» и ной тл пятой семей ст в» TMSJ20C21 ’ftr ADDS <ка> [,<NARP>] Операция: (ЛСС) (dma) —> ACC. где (dma) - 16-разрядное число без знака В результате выполнения команды устанавливаются биты С н OV Аккумулятор рассмафнвается как число со знаком, содержимое по адресу dma - как число без знака. Пример 7.5 (AP(ARP))-1025 ADDS* (IO25)-Fll5h (1025) - FllSh (ACC)“FIIAh (ACC)-Sh (0-0 ADDT (add to accumulator with shift specified by T register) - сложить c аккумулятором co сдвигом, определяемым T-регистром Формат команды: ADDT <ас> ADDT <ка> [,<NARP>] Операция: (ACC) + (dma)* 2/W|!l1 -->АСС Содержимое памяти данных по адресу dma сдвигается влево на коли- чество разрядов, определяемое четырьмя младшими битами Т-регнстра. и затем суммируется с содержимым аккумулятора В остальном команда ADDT полностью аналогична команде ADD Пример 7 6 (ARZARP)) • 1025 ADDT* (1025) - 4h (IO25)-4h (T)BWh (ACC) =• 8h (ACC) 4Sh (T)-Wh (C)’O ADLK (add to accumulator long immediate with shift) - длинное непосредственное сложение с аккумулятором со сдвигом Формат команды ADLK <константа> [,<сдвиг>] Здесь <константа> - зто 16-раз рядное число в двоичном представлении. Прн выполнении команды константа слагается влево и затем суммируется с аккумулятором Если бит SXM=I. то константа интерпретируется как число со знаком в диапазоне -32768 -37767 Если 5ХМ=0, то значение константы лежат в диапазоне 0.65535 В результате выполнения команды устанавливается бит OV ( если предварительно были включены режимы OVM и SXM) и бит переноса С Длина команды два сло- ва Пример 7.7 (ЛСС)’ IJAFh ADLK 7,8 (ACC)-22FAK (С)’ О
2в1 Duu7 В группу арифметических комана входят семь команд вычитания, шесть из которых аналогичны первым шести рассмотренным командам сложения Отличие заключается в том, что вместо операции сложения выполняется операция вычитания Перечень этих команд и операции выполняемые процессором приведены в табл. 7 6 Таблица 7.6 - Аккумуляторные команды вычитания Мнемо- Описание команды | Операция инка Г SUB Вычесть ю аккумулятора со слвитом j (АСС>((11П1) 2'^ -»АСС SUBB Вычесть из аккумулятора с заемам I (АСС)-(<1гтш)-(С)->АСС SUBH Вычесть нэ старшего стока аккуму л кто- . .. ,, . ')|t> - 1 (ACCMd™) ->АСС SUBK Короткое непосредственнос вычитание | (АССl-3-разр конст ->АСС из аккумулятора j SUBS Вычитание из аккумулятора с подапле- (ACCMdmu)~>ACC инемзнйкорасшнреннв I SUBT Вычесть из аккумулятор, со сдвигом . I (АССwdmB)2^АСС определяемым Т -регистром j ' Ниже приведены примеры выполнения команд вычитания (табл 7 6) Пример 7 8 (ЛЩЛЯР»** 1041 (Т(М|) - 21h (АСС) - 45h SUB • (1041)- 2lh (ACC) - 24h (C) - 1 Пример 7 9 (AR(ARP)) - 1041 (1041) - 8h (АСС) - 8h (С) г- 0 SUBB • (1041) - 6h (ACC) - FFFFFFFFh (C)- 1 Пример 7 10 (AR1ARP))- 1041 (1041)= Oh (АСС)= ABOOJh SUBH • (IO4l)-6h (ACC) - 4BOO3h (C)--) Пример 7 11 (АСС) - 48h SUBK Uh (ACC)" 37h (C)- 1 Пример 7.12 (AR(ARP)) - 2000 (2000) - АООЗЬ (ЛСС) - A107h SUBS • (2000) - A003h (ACC) - IO4h (C) --1
ЦПОС с Авксяроминой мпггой семейств» TMS320CX Ж Пример 7 13 (AR(ARP)) = 2000 (2000) - 8h СП А*к (ACC) - EDA6h SUBT • (2000)' 8h (]’) ’ A96h (ACC)“EBAbh (С)’ J Седьмая команда вычитания нс имеет аналогов средн команд сложения и называется условным вычитанием: SUBC (conditional subslraci) Формат команды: SUBC <ас> SUBC <ка> [,<NARP>] Команда SUBC выполняет условное вычитание, которое используется при выполнении операции деления 16-разрядиое делимое помешается в младшее слово аккумулятора, а старшее слово аккумулятора обнуляется Делителем является содержимое определенной ячейки памяти данных Команда SUBC выполняется 16 раз при 16-раэрядном делении После выполнения команды SUBC частное от деления будет находиться в младшем слове аккумулятора, а остаток - в старшем слове Команда SUBC позволяет получить правильные результаты деления, если делимое и делитель положительны Бит SXM для этой команды связан с делителем Если SXM=I. то делитель должен иметь нулевой старший бит. Если SXM-О, го любой 16-разряциый делитель обеспечит получение требуемых результатов Делимое, находящееся а аккумуляторе, должно первоначально быть положите.!ьным и оставаться положительным в процессе сдвигов, обусловленных выполнением команды SUBC Если делимое содержит меньше 16 разрядов , то его можно предвари- тельно сдвинуть влево При згюм количество повторений команды SUBC сокращается на число выполненных сдвигов. Необходимо отмстить, что команда SUBC устанавливает бит OV Одяако эта возможность не управ- ляется битом режима OVM Поэтому не возникает отрицательных нлн по- ложительных переполнений во время выполнения команды SUBC Пример 7 14 (ЛР(АИР))- Ю25 RPTK II (1025)- 6h (1025)-6h SUBC ' (ACC)- 2000th (ACC) - 56h (C)-l В этом примере команда RPTK обеспечивает повторное выполнение команды SUBC 16 раз. ABS [absolute value of accumulator) - абсолютное значение аккумулятора. Формат команды.
JM Глава 7 ABS Операция (ACC); -> ACC Если содержимое аккумулятора равно нулю или больше нуля, jo значение аккумулятора остается неизменным. Если (АССК 0. то и аккумулятор помещается его двоичное дополнение. Hi приведенного правила имеется исключение В том случае, если (АССу- 8000 OOOOh и OVM-0, значение аккумулятора не изменяется Если OVM-1, то абсолютное значение 8000 0000b сеть 7FFF FFFF. В каждом нз этих случаев устанавливается бит OV Бит переноса после выполнения кома)ты ABS всегда устанавливается в ноль. Пример 7.15 (ЛСС) - 234111 ABS (АСС) - 234 lh (С)-0 (ACC) = AFFF FFF'F'h ABS (ACC) - 5000 OOOlh (С)-о NEG (negate accumulator) - отрицание аккумулятора. Формат команды: NEG Операция:-(ACC)--> ACC Значение аккумулятора замешается на его двоичное дополнение Команда устанавливает бит OV, когда аккумулятор содержит значение 8000 OOOOh Если OVMEl, то содержимое аккумулятора заменяется на 7FFF FFFFh. Если OVM-0, то в аккумулятор будет записано значение 8000 OOOOh Пример 7:|6 (ACC) - AFFF FF34h NFC (ACC) - 5000 OOCCh (C) = 0 NORM (normalize contens of accumulator) - нормализация содержимого аккумулятора Формат команды: NORM <ка> Команда используется для нормализации значения аккумулятора. Нормализация числа с фиксированной точкой требует выделения в нем мантиссы и порядка Для определения порядка необходимо определил* количество битов знакорасширения. Указанное действие внутри команды NORM выполняется с помощью операции (ACC(31))XOR (АСС( 30)) Если разряды аккумулятора 30 н 31 равны, то оба они являются знаковыми В этом случае содержимое аккумулятора сдвигается влево для того, чтобы удалить лишний знаковый бит
ЦПОС с фиксированной ипчой семейство TMSJ2OC21 185 Затем модифицируется значение вспомогательного регистра в соответствии с выбранным способом косвенной адресации для юго, чтобы получить в нем значение порядка Обычно оно инкрементируется Для полной нормализации 32-разрядного значения может по- требоваться многократное выполнение команды NORM. 7.8.2 Команды логических операций Данная ipynna команд реализует поразрядные операции булевой ал- гебры над содержимым аккумулятора и содержимым ячейки памягн данных, либо константой заданной непосредственно в команде AND (and with accumulator) - логическое И с аккумулятором. Формат команды: AND ^аО AND <ка> [,<NARP>] Операция: (АСС( 15-0)) AND (dma) -> АСС( 15-0) Команда выполняет поразрядную логическую операцию И над содержимым младшего слова аккумулятора и адресуемым словом памяти данных Старшее слово аккумулятора после выполнения команды всегда обнуляется Бит SXM не оказывает влияния на получаемые результаты Пример 720 DATl “ 16 ANDDATl (DATI)'FFh (DP) - 4 (ACC) - 0000 0078h (DATl) - FFh (ACC) = 5432 1678h ANDK (AND immediate with accumulator with shift) непосредственное логическое И с аккумулятором со сдвигом Формат команды: ANDK <констатгта> [,^сдвнг>] Операция: (АСС(ЗО-О)) AND (константа • 2 ) -> АСС(30-0) О -> АСС(31) 16-разряднвл константа, непосредственно заданнвл в команде, сдвигается влево на количество разрядов, определенных полем команды <сдвиг> Над константой н содержимым аккумулятора выполняется логическая операция И Биты, расположенные вне пределов, определяемых дяннон константы. считаются нулевыми и поэтому соответствующие разряды аккумулятора обнуляются после выполнения команды Старший разряд аккумулятора обнуляется всегда Длина команды два слова
ж I лава 7 Пример 7 21 (АСС) - 5423 16701т ANDK FFFFh.B (ACC) - 003’ I600h OR (OR wiih accumulator) - логическое ИЛИ с аккумулятором Формат команды: OR <ас> OR <ка> (,NARP>) Операция: (АСС( 15-0)) OR (dma) -> АСС(15-0) (АСС 31-16) -> АСС(3|-16) Данная команда позволяет осуществить поразрядную логическую операцию ИЛИ над содержимым младшего слова аккумулятора и адресуемым словом данных. Пример 7 22 (AR(ARP))- 1025 OR ' (1025) - (JFQOh (1025)-OFOOh (ACC)- l2F0lh (ACC) - l200lh ORK (OR immidiale with accumulator with shift) - непосредственное логическое ИЛИс аккумулятором со сдвигом Формат команды: ORK <констакта> [,<сдвиг>| Операция: (АСС(ЗО-О)) OR (константа 24 АСС(30-0) (АСС(3|))-> АСС(31) 16-разрадиая константа слетается аяево на количество разрядов, определяемое нолем <сдвиг>, и затем поразрядно выполняе1ся логическая операции ИЛИ с содержимым аккумулятора Биты, расположенные вне пределов длины константы, считаются нулевыми Старший бит аякумулятора не меняет своего значения Пример 7 23 (АСС) - 5432 16781т ORK FFFFh, 12 (АСС) - 5FFF F678h XOR (exclusive OR with accumulator) - исключающее ИЛИ с аккумулятором Формат команды: XOR <ас> XOR <Ka>[,<NARP>] Операция (АСС(15-0)) XOR (dma) -> (АСС( 15-0)) (АСС(3|-16))-> АСС(ЗМб) Выполняется поразрядная логическая операция исключающее ИЛИ над содержимым младшего слова аккумулятора и адресуемой памятью
ЦПОС с фиксированной платой семейпи ТМ&5ЮС21 187 Пример 7 24 (AR(ARP)) - 65000 XOR * (65000)= OFOOh (65000) - OFOFh (АСС) - 5412 1977h (ACC)- 5412 167Bh XOR К (XOR immediate with accumulator with shift) непосредственное исключающее ИЛИ с аккумулятором со сдвигом Формат команды XORK <констанга> [,<сдвнг>] Операция (АСС(ЗО-О)) XOR (константа* 2с<>1иг ) ->> АСС(ЗО-О) АСС 31 --> АСС 31 16-разряд нал константа сдвигается влево на количество разрядов, определяемое полем <сдаиг>, и затем поразрядно выполняется логическая операция исключающее ИЛИ с содержимым аккумулятора Биты, расположенные вне пределов длины константы, считаются нулевыми. Старший бит аккумулятора не меняет своего значения Пример 7 25 (АСС) =• 54321678b XORK FFFFh,l2 (АСС) - 5BCDE678h CMPL (complement accumulator) - дополнение аккумулятора Формат команды: CMPL Операция (ЛСС) -> АСС Содержимое аккумулятора заменяется его поразрядным логическим отрицанием. ROL (rotate accumulator left) - циклический сдаиг аккумулятора влево Формат команды ROI. Операция: АСС(31) -> С, (АСС(30-0)) -> АСС(31-1) ; (С) -•> АСС(0) Команда ROL обеспечивает выполнение циклического сдвига содержимого аккумулятора на один бит влево. Старший бит аккумулятора перемещается вбит переноса, бит переноса перемещается в младший бит аккумулятора Пример 7.26 (АСС) = 0А00 432lh ROL (АСС) 1400 B663h <0-1 <С)-0 ROR (rotate accumulator tight) - цикличссикий сдаиг аккумулятора вправо. Формат команды: ROR
2 ня Глава 7 Операция: АСС(О) -> С. (АСС(3 l-l I) АСС(ЗО-О), (С) АСС(31) Команда обеспечивает выполнение циклического сдвига содержимою аккумулятора вправо на один бит Пример 7.27 (ACC) - 0AOO432lh ROR (С)= 1 (ЛСС) “ 8500 2190 (С) - 1 SFL (shift accumulator left) - сдвиг аккумулятора влево Формат команды: SFL Операция: (ЛСС(ЗО))-> С; (АСС(ЗО-О))-> АСС(31-1), 0->АСС(0) Команда обеспечивает- выполнение сдаига аккумулятора на один разряд влево Младший бит заполняется нулем. Пример 7.28 (ACC) “ UA00432lh SFL (ACC) - 1400 8M2h (С)-0 SFR (shift accumulator right) - сдай г аккумулятора вправо. Формет команды: SFR Операция АСС(0) -> С; (АСС(31-1)) АСС(ЗО-О) Еслн5ХМ-0, то 0АСС(31), иначе (АСС(31)) -> АСС(31) Команда обеспечивает выполнение сдвига аккумулятора на одни разряд вправо Пример 7 29 SXM = 0 SFR (ACC)-SAOO 432 lh (ACC) - 4500 2190h (C)- I SXM - 1 ' SFR (ACC) ' BAQO 432 Ih (ACC) - C5002l90h (C)*l 7.8.3 Команды загрузки и запоминания содержимого аккумулятора Команды данном группы позволяют поместить в аккумуляюр значение, извлекаемое нз памяти данных или заданное непосредственно в команде, а также сохранить значение аккумулятора в памяти данных LAC (load accumulator with shift) - загрузить аккумулятор со сдвигом Формет команды: LAC <ас> (,<сланг>)
ЦПОС с фикс ирод виной >дпнтой семейства TMS320C2» 2S9 LAC <ка> (,<сдвиг> [,<NARP>]] Операция: (dma) * 2е'*'11 ->АСС Содержимое адресуемой памяти данных сдвигается влево и помещается в аккумулятор Прн сдвиге младшие разряды заполняются нулями, а старшие заполняются знаковым битом, если SXM-I. к нулями, если SXM=0. Пример 7.30 (AJ4ARP)) = 1027 LAC *,*1,5 (1027) • 3h (1027)- 3h (АСС) - 30h (АСС) = 5732 lb78h (ARP)-S LACK (load accumulator immediate short) - короткая непосредственная загрузка аккумулятора. Формат команды: LACK <константа> Операция 8-разрялная константа —> АСС 8-разрядная константа помешается в аккумулятор. Старшие 24 разряда аккумулятора обнуляются Пример 7.31 (АСС) = 43h LACK 25h (АСС) - 25h LACT (load accumulator with shift specified by T register) за1руэнть аккумулятор co сдвигом, определяемым T регистром. Формат команды LACT <ас> LACT <ка> [,<NARP>] Операция (dmaJ’S7"^’ *”—> АСС Команда I.ACT обеспечивает загрузку аккумулятора значением, считан- ным из памяти данных н сдвинутым влево на количество разрядов, определяемое четырьмя младшими разрядами Г регистра. Если бит режима энакорасн1нрения SXM-1, то значение, загружаемое в аккумулятор, дополняется слева до необходимого числа разрядов знаковым битом Пример 7 32 (AK(ARP)J |300 LACT" (!300)-276h (1300)- 276h (ACC) = 2760h (ACC) - 8412 lAB5h (T) - 2014 (T)= 20l4h I.ALK (load accumulator long immediate with shift) - длинная непосредственная загрузка аккумулятора со сдвигом Формат команды LALK <константа> [,<сдвиг>]
IM Глава 7 Операция: (16-разрядная константа) * 2fOUL -> АСС Сдвинутое влево значение 16-раэрядлон константы помешается в аккумулятор Количество разрядов, на которое сдвигается константа, определяется полем <сдвнг> Если бит SXM=I, то значение, загружаемое в аккумулятор, дополняется слева до необходимого числа разрядов знаковым битом Необходимо отмстить, что значение старшею бига аккумулятора может быть установлено в ) только в режиме SXM~I Тогдв в аккумулятор может быть загружено значение в диапазоне -32768 .32767 Если SXM~0, то загружаемое в аккумулятор значение находится в пределах от 0 до 65535 Длина команды-два слова. Пример 7.33 $ХМ " I LAl.K F6J4h,4 (АСС) - FFFF 6340h (ACC)-5J32 678)h Пример 7.34 SXM-O LALK F634h,4 (АСС) - 000F 634Qh (ЛСС)" 5432 678th ZAC (zero accumulator) - обнулить аккумулятор Формат команды: ZAC Операция: 0 АСС Данная команда соответствует команде LACK 0. ZALH (zero low accumulator and load high accumulator) - обнулить мл яд шее слово аккумулятора и загрузить старшее слово значением, извлекаемым из адресуемой памяти данных. Пример 7.35 (AR(ARP)) - 4033 ZALH • (4033) - 2AO)h (4033)- 2AOlh (ACC) - 2 AO I 0000 h (ACC) - FFFF FFFFh ZALR (zero low accumulator, load high accumulator with rounding) - обнулить младшее слово аккумулятора и загрузить старшее с округлением Формат команды: ZALR <ас> ZALR <ка> [,<NARP>] Операция 8000h -> АСС(15-0), (dma) --> АСС(31-|6) Команда ZALR позволяет загрузить в аккумулятор значение из памяти данных с точностью до I/2 младшего бига (старшего слова)
ЦПОС с фиксиромнной плитой семейств» TMS32OC2» 191 Пример 7 36 (AR(ARP)) -1033 ZALR • (4O33)-2AOlh (АСС) - AFAF AFAFh (4033) - 2A01h (АСС) - ZAO! BOOOh ZALS (zero accumulator, load low accumulator with sign extension suppressed) - обнулить аккумулятор и загрузить младшее слово с подавлением знакорасширення Формат команды. ZALS <ас> ZALS <ка> [ <NARP>] Операция: 0 -> АСС(31-!6), (dma)-> АСС(|5-0) Значение из памяти данных за1ружается в младшее слово аккумулятора. Старшее слово аккумулятора обнуляется Пример 7.37 (AR(ARP)) - 4033 ZALS • (4033) 2А01 (4033) - 2А01 (АСС) - 0000 2A0lh (АСС) = FAFA FAFAh 7.9 Команды вспомогательных регистров и указателя страниц 7.9.1 Команды арифметических операций и операций отношений Эта группа команд выполняет арифметические операции над содержимым вспомогательных регистров и операции сравнения вспомога- тельных регистров. ADRK(add io auxilary register short immediate) - короткое непосредственное сложение вспомогательного регистра Формат команды ADRK <копств1гга> Операция: (AI’(ARP)) । 8-разрядная константа AR(ARP) Содержимое текущего вспомогательного регистра складывается в ARAU с 8-разряди ой константой Результат помещается в текущий вспомогательный регистр Пример 7.38 (AR(ARP)) ' 234 |h ADRK 40h (AR(ARP)) - 238th SBRK (substract from auxilary register short immediate) - короткое непосредственное вычитание вспомогательного регистра Формат команды SBRK <константа>
292 Глава 7 Операция' (AR(ARP)) - 8-разрядная константаAR(ARP) Команда соответствует ADR К Пример 7.39 (AR(ARP)) Oh SBRK 03Fh (AR(ARP)) “ FFCIh MAR (modify auxilary register) - модификация вспомогательного регистра. s Формат команды: MAR <ас> MAR <ка> [,<NARP>] В случае прямой адресации команда соответствует пустой операции В случае косвенной адресации производится модификация вспомогательного регистра н указателя ARP, так как указано в команде Никаких операций с памятью данных не выполняется. Если в команде задано значение поля NARP, то старое содержимое ARP копируется в поле ARB регистра состояния ST 1 Пример 7.40 (ARP)-lh MAR"'.4 (ARI)~38h (ARl)-37h (ARP)-4 Следует отметить, что действия, выполняемые по команде MAR. можно также выполнить с помощью любой команды с косвенной адресацией CMPR (compare auxilary register with auxilary register ARO) - сравнение вспомогательного регистра co вспомогательным регистром ARO. Формат команды: CMPR <константа> Операция: if ARn <константа> ARO then 1 — > ТС else 0 ТС Команда выполняет сравнение содержимого текущего вспомогательного регистра с содержимым вспомогательного регистра AR0 Вид операции сравнения зависит от константы, которая может принимать значения в диапазоне 0 3 При этом имеет место следующее соответствие между значением константы и видом операции: О - (ARn = ARO). 1 - (ARn < АНО); 2 - (ARn > ARO); 3 - (ARn * ARO). Если результат сравнения будет иметь значение "истина", io устанавливается бит ТС регистра состояния ST1
ЦПОС с кс прочив ой плитой семейсгм TMS320C21 Пример 7 41 (АКО) - OOF7h CMPR I (AR(ARP)) = MAlh (ТС) ’ Oh (АКО) - Q0F7h (AR(ARP)) = MAlh (TC)“ Ih 7.9.2 Команды загрузки н сохранения значений регистров Команды данной группы позволяют загрузить заданные значения в регистры ARn, ARP, DP и производят обмен данными между вспомогательными регистрами н памятью данных. LARP(load auxiliary register pointer) загрузить указатель вспомогательного регистра Формат команды: LAR Р <константа> Операция 3-х разрядная кокоанта -> ARP. (ARP) ARB В регистр АКР загружается значение 3-разрядной константы, определяющей какой из вспомогательных регистров ARO. AR7 будет использоваться в дальнейших операциях Прежнее содержимое (ARP) сохраняется в буфере указателя вспомогательного регистра ARB Отметим, что содержимое ARP может быть изменено любой командой с косвенной адресацией. LDP (load data memory page pointer) - загрузить указатель страниц памяти данных. Формат команды LDP <ас> LDP <ка> [,<NARP>I Операция: (dma) --> DP Содержимое девяти младших разрядов памяти данных (dma) помещается в регистр DP. Пример 7 42 (AR(ARPJ) - 1025 LDP" (IO25)-CAEDh (IO25)-CAEDh (DP)-OEDh (DP) •* 1 AFh LDPK (load data memory page pointer immediate) - непосредственная загрузка указателя страниц памяти данных Формат команды: LDPK <консгаита> Операция: 9-тн разрядная константа —> DP Значение константы, заданное в команде, помещается в регистр DP
2*1 LAR (load auxiliary register) - загрузить всиомо1атсльный per не гр. Формат команды: LAR <ARn>, <ac> LAR e'ARn>. <ка> [,<NARP>] Операция (dma) — > ARn Содержимое адресуемой памяти данных помещаекя в регистр ARn. указанный в команде. Пример 7 43 (DP)-8h LARAR2.DAT (AR2)-A8h DAT-001 Hi dm*-041Hh (dm*) - ABh В случае косвенной адресации модификация вспомогательного регистра, заданная полем <ка>. не выполняется, если команда LAR загружает значение в текущий регистр ARn. используемый для косвенной адресации. Пример 7.44 (AR6)"IO25 LARP AR6 llO25)^.34h (1025) - 34h LAR AR6.** (AR6) - J4h LARK (load auxiliary register immediate short) - пепосредсвенпая короткая загрузка вспомогательного регистра Формат команды: LARK <АКп>.<констан|а> Операция: К разрядная константа --> ARn Значение восьми разрядной константы, заданное в команде, помещается в регистр ARn Старшие разряды регистра ARn заполняются пулями Пример 7 45 (AR2)-0h I.ARKAR2.20h (AR2) -20h I.RLK (load auxiliary register long immediate) - длинная непосредственная загрузка вспомогательного регистра Формат команды: LRLK <ARn>.<KDiicraHTa> Операция 16 разрядная константа ARn Значение шестнадцатиразрядной константы, заданное в команде, помещается в регистр ARn Константа должна быть целым положительным числим Пример 7 46 (АК2) = 7A80h LRLK AR2.5O73h (AR2) - 5O73h
ЦПОС с фиксированной >1 пято и ссмсмггв* TMS320C11 SAR (store auxiliary register) - запомнить вспомогательный регистр Формат команды SAR <ARn>.<ac> SAR <ARn> <ка>[,<NARP>] Содержимое вспомогательного регистра запоминается н памяти данных по адресу dma. Пример 7 А1 (AR(ARP)) - 103) (ARI) - I 5h (1031)-FAh Пример 7 48 (ARO) - 1031 (103 I) - Oh SAR ARI.’ LARP ARO SAR AR0/O+ (1031)~ ISh (1031) ~407h (ARO) - 80Eh 7.10 Команды T и P регистров, команды умножение 7.10.1 Команды загрузки, запоминания, сложения и вычитания Команды данной группы предназначены для обмена данными между памятью и регистрами умножителя Т и J*. Некоторые нз команд данной группы рве простран я юг свое действие не только па Т и Р регистры, но и на аккумулятор. Эго позволяет параду с передачей данных выполнять операции сложения и вычитания аккумулятора с регистрами Т и Р LPII (load high Р register) - загрузить старшее слово Р регистра Формат команды: LPII <ас> LPII <ка>,|,<NARP>) Операция (dma) —> Preg (31-16) Содержимое памяти данных по адресу dma загружается в старшее слово Р- ре г негра Младшее слове не изменяется Пример 7 49 (AR(ARP)) = 1025 I.PH ' (1025) "ЗАЫЬ (l025) = 3A04h (Р)-ЗАЫ 52Mh (К)- 3041 52|4h 1.1' (load Г register) загрузить Т регистр Формат команды LT <-ас> LT <ка>[ ,<NARP>) Операция: (dma) -> Treg Содержимое памяти данных по адресу dma загружает в Т регистр.
2» Глава 7 Пример 7 50 (AR(ARP)) - 1032 LT • (1032) - 4AFFh (T) - Oh (1032) * 4AFFh (T) - 4AFFh LTA (load T register and accumulate previor product) - загрузить Г регистр и сложить предыдущее произведение. Формат команды: LTA <ас> LTA <Ka>[,<NARP>] Операция: (dma)-> Treg, (АСС) т (Preg)" 2м""' ->ЛСС Содержимое памяти данных по адресу dma загружается в 1' регистр Содержимое Р регистра сдаигается в соот ветствии со значением битов РМ регистра состояния STI и складывается с содержимым аккумулятора Результат помешается в аккумулятор. Если РМ^ОО, то сдвиг содержимого Р регистра не производится. Если Ptv^OI или РМ=10, то содержимое Р регистра сдаигаетсв влево соответственно на I или 4 разряда При этом младшие биты заполняются нулями В случае, если РМ=11, то выполняется сдаиг вправо на 6 разрядов, старшие биты заполняются значением знакового бита Следует отметить, что сдаиг выполняется в процессе передачи содержимого Р регистра в аккумулятор, поэтому операции сдаюа не оказывают влияния на содержимое Р регистра Сдвиг влево используется для выравнивания значения произведения в операциям с дробными числами. Сдаиг вправо на 6 разрядов позволяет выполнить 128 операций типа ''умножение с накоплением’' без опасности переполнения Команда 1.ТЛ воздействует на биты С и OV Последний устанавливается, если залай режим OVM. Пример 7.51 (AR(ARP)) - 768 (76В) - JOh (Т) - 4h (Р)- АП1 (АСС) Jh РМ -00 LTA • (768) “ 30h (Т) =• 30h (Р) = AFh (АСС)~ B2h (С)-0 LTD (load Т register accumulate, previous product and move data) - загрузить T регистр, сложить предыдущее произведение, переслать данные Формат команды: LTD <ас> LTD <Ka>[,<NARP>]
ЦПОС с Фиксированной диетой семейства TMS320Cх_________________222_ Операция; (dma) -> Treg, (ACC)+(Prcg) * 2<м -> ACC, (dma) — > dma ‘ I Действия, выполняемые по данной команде, аналогичны действиям команды LTA Дополнительно выполняется пересылка данных ич ячейки с адресом dma в ячейку с адресом dma-H. Данная команда действительна только при работе с блоками памяти ПО. Bl, В2 Пример 7.52 (AR(ARP)) = 768 LTD' (768)=JOh (768) - JOh (769)v30h (769)-Oh (T) ‘ JOh (T) - 4h IP) - AFh (P)-AFh (ACC)-B2h (ACC)-Jh (C) - 0 PM -00 LTP (load T register and store P register in accumulator) - загручить T регистр и запомнить содержимое P регистра в аккумуляторе. Формат команды: I.TP <ас> LTP <Ka>[,<NARP>J Операция: (dma) Treg ; (Prog)* 2 ACC Содержимое памяти (dma) загружается в Т-рсгистр, содержимое Р-регистра помещается в аккумулятор. При этом выполняется сдвиг Р-регнстра на чис- ло разрядов, определяемых полем РМ . LTS (load Т register, subsract previous product)- загрузить Т-рсгнстр. вы- честь предыдущее произведение. Формат команды: I TS <ас> 1.Т5<ка> [,<NARP>] Операция: (dma)—> Treg, (ACC) - (Preg)* -->ACC Команда аналогична команде LTA Отличие заключается в том, что вместо сложения выполняется вычитание РАС (load accumulator with Р register) - загрузить аккумулятор содержимым Р регистра Формат команды: РАС Операция: (I’reg)* 2м' -> АСС Содержимое Р регистра, сдвинутое на I, 4 или 6 разрядов в соответствии со значением битов РМ, помешается в аккумулятор.
2’Л Глава 7 SPM (set Р register output shift mode) - установить режим слеша выхода Р регистра. Формат команды: SPM <константа> Операция: 2-х разрядная константа — > РМ Константа, заданная в команде, копируется в поле РМ регистра состояния ST 1 Поле РМ определяет сдвиг содержимого Р регистра при передаче его в аккумулятор. SPH (store high Р register) - запомнить старшее слово Р регистра Формат команды: SPH <ас> SPH <ка>[,<ЫАКР>] Операция: (Preg(3l-I6)) dma Содержимое старшего слова Р регистра, сдвинутое а соответствии с содержимым поля РМ ретстра STI, помешается в ячейку памяти данных по адресу dma. Приттом если еддиг выполняется вправо, то старшие биты заполняются знаковым битом. Если сдвиг выполняется аяево, то младшие биты заполняются соответствующими значениями нз младшего слова Р регистра Пример 753 (Р)" AF07 8354h SPH * (Р) - AF07 8354h (AR(ARP)) • 523 (523) " F078h (523) = 3041 h PM’2 SPL (store low P register) - запомнить младшее слово P регистра Формат команды: SPL <ас> SPL <Ka>[,<NARP>] Операция (Prcg(l5-0)) 2*^ ->dma Сданиутое на 1, 4 или 6 разрядов содержимое младшего слоая Р регистра помещается по адресу dma памяти данных. При сланге вправо (РМ~11) старшие биты заполняются соответствующими значениями нз старшего слоая Р регистра Если сдвиг выполняется аяево (РМЧП или 10). ю младшие биты Р регистра заполняются нулями АРАС (add Р register to accumulator) - сложить содержимое Р регистра с аккумулятором. Формат команды: АРАС
ЦПОС с фиксяровяниой плитой ссмгйстч TMS32OC2* гот Операция: АСС + (Preg)* 2“^ --> АСС Содержимое Р решстра сдангастся в соответствии со значением поля РМ регистра STI и затем складывается с содержимым аккумулятора Команда воздействует иа биты С и OV Последний устанавливается, если задан режим OVM SPA С (subctract Р register from accumulator) - вычесть содержимое Р регистра из аккумулятора Формат команды SPAC Операция (АСС) • (Preg) • 2"^ -> АСС Аналогично предыдущей команде. Только выполняется вычитание 7.10.2 Команды умножения Команды данной группы обеспечивают выполнение операций умножения, умножения с накоплением результатов я аккумуджоре. умножения с накоплением н пересылкой данных Обычно перемножаются аргументы, извлекаемые из памяти программ и данных, либо из Т регистра и памяти данных MAC (multiply and accumulate) - умножить и накопить Формат команды: МАС <рта>.<ас> MAC ‘-pma>,<Ka>|,<NARP>] Операция: (АСС) - (Preg) • 2“*“' АСС. (dma) -> Trcg (рта)* (dma) —> Preg По команде MAC вычисляется произведение содержимого памяти данных по адресу dma и памяти программ по адресу рта Команда также обеспечивает накопление предыдущего произведения в аккумуляторе При этом сдвиг содержимого Р-ресистра выполняется в соответствии с содержимым поля РМ регистра STI. Адрес памяти программ рта, задаваемый в команде, должен быть в диапазоне 0..65535 Команда МАС может использоваться совместно с командами никла RPT, RPTK В этом случае после каждого очередного выполнения МАС- опсрапнн модифицируется содержимое вспомогательного регистра в соответствии со значением поля <ка>. а также инкрементируется содержимое счетчика команд: (РГС) + I —> PFC Эго позволяет адресовать цепочку операндов из памяти прстрамм В общем случае команда МАС занимает два слова и для ее выполнения требуется два командных цикла Одиако в случае применения
joo Глам7 команд RPT, RPTK она выполняется за один цикл. Поскольку при повторении адрес рпмт более не считывается из памяти, а вычисляется так. как указано выше. В результате выполнения команды устанавливается бит OV, если задан режим OVM. . установить сдвиг вправо на 6 разрядов , ВО блок памяти программ . текущий регистр AR3 , JOOh - начальный адрес В| . повторять 256 раз . суммирование прям введений 3,3OOh 235 Пример 7.54 Ниже приведен фрагмент прогреты соемеспого использования команд МАС н ЯРТК SPM 5 CNFP LARP LRLK RFTK MAC FFOOX,*- Здесь 6л О я ВО сконфигурирован вяк память программ В качестве памяти данных используется блок В|. который адресуется с помощью регистра AR3 В приведенном примере выполняется суммирование произведений аргументов, извлекаемых из блоком памяти ВО и В1 Загрузка поля РМ регистра $Т1 константой 3 (команда SPM пиоколлег исключить переполнение аккумулятора, которое может возникнуть результате операции сложения I) MACD (multiply and accumulate with data move) - умножение и накопление с передачей данных Формат команды MACD <pma> ,<ас> MACD <pma>,<Ka>[,<NARP>) Операция: (АСС) > (Preg) 2"“*' -> АСС (рта) • (dma) — > lYeg (dma) —> dma з I Команда MACD аналогична команде МАС и дополнительно обеспечивает пересылку данных (dma) dma * ) Пересылка данных 6ynei выпол- няться. если в качестве памяти данных используются блоки ВО, Bl. D2 В противном случае команда MACD аналогична команде МАС MPY (multiply) - умножить. Формат команды: MPY <ас> MPY <Ka>[,<NARP>] Операция: (Treg) • (dma) Preg Содержимое Т регистра перемножается с содержимым памяти данных dma Результат помещается в Р регистр MPYA (multiply and accumulate previous product) умножить и накопить предыдущее произведение Формат команды.
ЦПОС с фшссмровяниой полой семейств» TMSJ2OC1» WI MPYA <ас> MPYA <Ka>[,<NARP>) Операция: (АСС) t (Preg) 2“**’ -> ACC (Treg) • (dma) -> Preg Предыдущее произведение сдвигается и суммируется с аккумулятором. Содержимое Т регистра перемножается с содержимым памяти данных dma. Результат помещается в Р регистр Команда воздействует на биты С н OV Пример 7 55 (AR(ARP)) - 737 МЕГА ' (737> ‘ 6h (737) - 6h (Т) - 7h (Т) - 7h (Р) - 2Ah (P)-34h (ACC) < 8Bh (ACC) = 57h (C) - 0 (PM) = 0 MPYK (multiply immediate) - непосредственное умножение. Формат команды MPYK <консганта> Операция: (Treg) (13-разряднан константа) — > Preg. Содержимое Т регистра перемножается с 13 разрядной константой, имеющей значение в диапазоне -4096..4096 Перед умножением константа выравнивается но правой границе, старшие биты заполняются битом знака. Пример 7.56 (Т) - 9h MPYK -9 (Т) = 9h (Р) - 3Ch (Р) - FFFF FFAFh MPYS (multiply and subs tract previous product) - умножить и вычесть предыдущее произведение Формет команды MPYS <ас> MPYS <ка>[ <NARP>] Операция: (ACC) - (Preg) • 2м" -> АСС (Treg) ’ (dma) -> Preg Команда аналогична команде MPYA Отличие заключается в том. что по команде MPYS выполняется вычитание, тогда каи в команде MPYA - сложение MPYU (multiply unsigned) - беззнаковое умножение Формат команды' MPYU <ас>
______________ _____________ ______________ ______________ Славя 7 MPYU <ка>[ <NARP>] Операция' Usgn(Trcg) • Usgn(dma) — > Preg Команда выполняет умножение беззнакового содержимого Т регистра и памяти данных dma Напомним, что умножитель перемножает 17-битцыс аргументы В случае команды MPYU старшие биты каждою из операндов, поступающих на вход умножителя, считаются нулевыми. С командой MPYU не следует использовать режим РМ-3, поскольку при ттом происходит знакорасшнренис. Команда MPYU может использоваться для вычисления произведения 32-разрядных аргументов SQRA (эдваге and accumulate previous product) - возвести в квадрат it накопить предыдущее произведение Формат команды: SQRA <ас> SQRA <Ka>[,<NARP>| Операция. АСС * (Preg) * 2td~ ••> АСС (dma) х (dma) -> Preg Содержимое P регистра сдвигается в соответствии с содержимым поля РМ регистра ST1 и добавляется к аккумулятору. Затем значение (dma) загружается в Т регистр возводится в квадрат и помещается в Р регистр Команда воздействует на биты С и OV SQRS (square and subs tract previous product) - возвести в квадрат и вычесть предыдущее произведение. Формат команды: SQRS <ас> SQRS <Ka>|,<NARP>] Операция: (АСС) - (Preg)" -> АСС (dma) х (dma) --> Preg Команда SQRS аналогична команде SQRA. Однако в отличие от последней команда SQRS выполняет вычитание 7.11 Команды переходов н вызова подпрограмм В программах линейной структуры выполняется последовательная выборка команд из смежных ячеек памяти программ В программах с разветвляющейся и циклической структурой необходимо выполнять не следующую по парадку команду, а команду, находящуюся в другой ячейке памяти программ Для этого в счетчик команд загружается адрес ио вой ячейки памяти программ, называемый адресом перехода Команды, реахнзуюшис указанную процедуру, называют командами передачи
ЦПОС с фикси ро инном и питон семейств» TMS32tM'2i управления и подразделяют на комвлды переходов и вызова подпрограмм В сис1еме команд ЦПОС TMS320C2x предусмотрен обширный перечень команд передачи управления Большинство команд данной группы занимают в памитн два слова В (branch unconditionally) - безусловный переход. Формат команды: В <pma>[.<xa>[,<NARP>]] Операция: рта —> PC Текущий вспомогательный регистр ARn и указатель ARB модифицируются так. как указало в команде. Управление перелается команде, находящейся по адресу рта, 0 < рта < 65535. Команда занимает в памяти два слова. ВАСС (branch on adress specified by accumulator) - переход по адресу, заданному аккумулятором Формат команды ВЛСС Операция: (АСС(15-0)) --> PC Управление программой передастся команде, адрес которой определяется младшим словом аккумулятора. Команда занимает в памяти олно слово BANZ (branch on auxiliary register not zero) - переход по ненулевому значению вспомогательного регистре Формат команды: BANZ <pma>,[<Ka>[,<NARP>]] Операция: if AR(ARP) <> 0 then рта -•> PC else (PC) + 2 PC Если содержимое текущего вспомо1ательного регистра не равно нулю, то управление передастся команде, находящейся по адресу рта R противном случае выполняется следующая команда Следует отметить, что по умолчанию, если нс указано попе <ка>, содержимое текущею вспомогательного регистра уменьшается на единицу, те выполняется инструкция Это сде-лаио дяя совместимости с процессором TMS320C1X Команду BANZ можно нспользомть дзя программирования циклических алгоритмов. В этом случае вспомогательный регистр выступает в качеств» счетчика циклов. Пример 7 57 (AR(ARP)) - lh BANZ 40ti,*- (AR(ARP))-0 (PC) - 58h (PCJ - 40h Приведенные ниже команды условного перехода нмекэт общий формат мнемоника <pma>[<Ka>,[,<NARP>)] н выполняют передачу
ич Глава? управления команде, находящейся по адресу рта, если выполнятся некоторое условие В противном случае управление передастся следующей команде. Затем модифицируется содержимое вспомогательного регистра и указателя ARP, если заданы поля <ка> и <NARP> Поэтому ниже приведем упрошенное описание остальных команд условною перехода. В табл.7.7 указаны мнемоники команд и проверяемые условия, выполнение которых приводит к загрузке значения поля рта в счетчик команд (рта -> PC) Как видно ит табл .7.7, команды условного перехода позволяют организовать передачу управления, основываясь на анализе содержимого аккумуляторе ( >= 0, > 0, <- 0, < 0, <> 0, я 0), сигнала ВЮ и состояний бигов: тестировання/управлення ТС, переноса С, переполнения OV Все команды выполняются сходным образом. Некоторую особенность имеют команды BNV и BV, которые воздействуют на бит OV Команда BNV устанавливает бит OV в нулевое состояние, если условие нс реализуется. Команда BV, наоборот, очншаст бит OV, если условие реализуется Таблица 7 7 - Команды условного перехода Мнемо- Описание команды Ускоане ННК1 BBNZ Переход, если бит ТС<>0 (TQ-I 1 BBZ Переход, если бит ТС-0 (ТС)-О ВС Переход, если бит С-] _ BNC Переход, если бит 00 BGEZ Переход, если аккумулятор (АСС)>=0 BGZ Переход, если аккумулятор >0 (ЛСО^О BLEZ Переход, если аккумулятор <“0 (АСС)<-0 BLZ ! Переход, если аккумулятор <0 (АСС)<0 BNZ Переход, если аккумулятор <>0 (АСС)<Я) BZ Переход, если аккумулятор "0 (АСО-0 BNV I крехрд. если бит 0V-0 (ОУ)-О BV Переход, если бит OV-1 (OV)-I BIOZ Переход, если нГо - 0 (2W) = 0 CALA (call subroutine indirect) - косвенный вызов подпрограммы Формат команды; С ALA Операция: (PC) + 2 -> TOS; рта PC Счетчик команд увеличивается на два и загружается в верхушку стека Управление передастся команде, налодящейся по адресу рта. RET (return from subroutine) - возврат из подпрограммы. Формат команды: RET
ЦПОС с фиксированней цпггой семейства TMS320C21 WS Операция: (TOS) PC Содержимое верхушки стека копируется в счетчик команд Из стека выталкивается одно значение. Команда используется для возврата из поднро1рамм. 7.12 Команды ввода-вывода и пересылок данных В данную группу команд входят команды пересылки блоков данных как внутри памяти данных, так н между' памятью программ и памятью данных. Кроме этою, в данную группу команд включены команды работы с последовательным и паралсльпым портами ввода-вывода, а также команды, воздействующие на отдельные выводы ЦПОС. 7.12.1 Команды пересылки данных BLKD (block move (тот data memory to data memory) - переслать блок нз памяти данных в память данных. Формат команды: BLKD <dmal><ac> BLKD <dma|XKa>[.<NARP>] Операция (dma I, содержащийся в IK?) — > dma2 Команда выполняет пересылку блока данных между источником данных н приемником данных. Начальный адрес источника данных определяется полем dmal и лежит в диапазоне 0 .65535 Начальный адрес блока приема данных задается полями <ас>, либо <ка>. которые определяют адрес dma2 При прямой адресации адрес приемника данных не может модифицироваться автоматически, если команда BLKD входит в циклический оператор, например RPTK В этом случае получателем будет одна и та же ячейка памяти данных Для правильной передачи данных команды RPT и RPTK должны использоваться с командой BI.KD, задай кон в формате с косвенной адре- сацией Количество пересылаемых слое будет па единица больше, чем начальное число, содержащееся в счетчике циклов RPTC На момент окончания цикла (RPTC)=0, a AR(ARP) будет содержать адрес, следующий после конечного адреса блока приема Команда BLKD не может быть использована для передачи данных из внутренних регистров Во время циклического выполнения команды BLKD с помощью операторов RPT нлн RPTK запрещены прерывания После выполнения команды BLKD счетчик команд будет содержать адрес следующей команды
106 Глава 7 Пример 7 58 Пусть (AR(ARP)) - 1025 Тогда фрагмент программы RPTK 9 BLKD A200h.*+ обеспечит пересылку блока т 10 значений, начиная с upcca A200h и заканчивая адресом A209h Пересылка будет выполнена по адресам 1025 1034 BLKP (blok move from program memory to data memory) - переслан, блок нз памяти программ в память данных. Формат команды: BLKP <рта>,<ас> BLKP <pma>,<ra>[,<NARP>] Операция: (рта) -> dma Данная команда аналогична команде BLKI) Отлично заключается в том. что здесь источником данных является память программ. Команды BLKD и BLKP занимают в памяти два слова. TBLR (table read) - чтение таблицы Формат команды: TBLR <ас> TBLR <ка>( ,<NARP>1 Операция: (рта, из АСС(15-0)) — > dma Команда TBLR обеспечивает передачу данных нз памяти цренрамм в память данных Команда аналогична команде BLKP с небольшим отличи- ем: начальный адрес источника данных определяется младшим словом аккумулятора. TBLW (table write) - запись таблицы Формат команды: TBLW <ас> TBLW <Ka>[.<NARP>l Операция: (dma) -> рта, из ЛСС(15-0) Команда TBLW обеспечивает передачу данных нз памяти данных в память проз рам м Общая схема выполнения команды аналогична схемам команд BLKD, BLKP. TBLR Отличие заключается в том, что адрес источника данных определяется с помощью полей <ас> нлн <ка>, а начальный адрес приемника данных соответствует содержимому младшего слова акку- мулятора. Команды TBLR и TBLW занимают в памяти одно слово DMOV (data move in dala memory) - пересылка данных а памяти данных. Формат команды: DMOV <ас>
ЦПОС с фиксиромнной эхин гой „мсйпвв TMS3WC21 107 DMOV <ка>[ <NaRP>] Операция (dma) -> dma * 1 Содержимое памяти данных по адресу dma копируется по следующему адресу dma •' I. Команда DMOV применима только при работе с блоками памяти ВО. Bl. В2 Команда полезна для орсанизацни задержек на шаг дискретизации при программировании цифровых фильтров 7.12.2 Команды ввода-вывода IN (input from port) - ввод нз порта. Формат команды: IN <ас>,<РА> 1N <ка>,<РЛ>[,<NARP>] Операция: РА->(АЗ-АО), 0->(А15-А4) (DI5-D0) dma Команда IN копирует 16 разрядное значение, устанавливаемое на шине данных D15-D0 внешним устройством, в память данных по адресу dma. Значение поля <РА> лежит в диапазоне 0. 15 и представляет адрес порта. Пример 7 59 (AR(ARP)) - 721 IN •-.PAIS (72l)-3lh (721) - Oh (A 15-AO) = Fh (DI5-DO) = 3lh OUT (output data Io port) - вывод данных в порт. Формат команды: OUT <ас> <РА> OUT <ка> <PA>(,<NARP>] Операция: РА (ЛЗ-АО), 0 -> (AI5-A4) (dma) DI5-D0 Команда устанавливает на шике адреса адрес порта РА и выводит на шику данных D15-D0 содержимое ячейки памяти данных dma RFSM (reset sen a I port frame synchronization mode) - сброс режима кадровой синхронизации последовательного порта. Формат команды: RFSM Операция: 0 -> FSM Команда RFSM устанавливает бит FSM регистра состояния STI в ноль В этом режиме не требуются внешние импульсы FSR для инициировании операции приема каждого принимаемого слова, достаточно только одного импульса для инициализации "непрерывного режима"
JOB Глава 7 RTXM (reset serial port transmit mode) - сброс режима передачи последовательного порта. Формат команды: RTXM Операция: 0 —> ТХМ Команда RTXM устанавливает бит ТХМ регистра состояния STI в ноль. В этом случае передатчик запускается, когда приходит импульс на вход FXM. RXF (rent external flag) - сброс внешнего флага Формат команды: RXF Операция: 0 —> XF Команда RXF устанавливает вывод XF и бит XF регистра состояний н ноль. SFSM (sei serial port frame synchronization mode) - установить режим кадровой синхронизации последовательного порта. Формат команды: SFSM Операция: 1 — > FSM Команда устанавливает бит состояния в единицу В этом режиме для приема данных требуется подача внешних FSR импульсов. Если ТХМ - 0. то требуется подача импульсов на вывод FSX. Если же ТХМ = I. то импульсы FSX генерируются каждый раз. когда загружается сдвиговый регистр XSR передатчика. STXM (set serial port transmit mode) - установить режим передачи последовательного порта. Формат команды: STXM Операция: I —>ТХМ Команда устанавливает бит ТХМ в единицу В этом случае вывод FXM работает как выход, на котором появляется импульс каждый раз. когда загружается регистр DXR. Передача инициируется отрицательным фро!гтом этого импульса SXF (set external flag) - установить внешний флаг Формат команды: SXF Операция: 1 —> XF Команда переводит вывод XF к бит XF в единичное состояние.
ЦП ОС с фикси ром иной платой «яейгти» TMS32OC11 W9 FORT (formal serial рол registers) - форма! регистров последовательного порта Формат команды FORT <коистанта> Операция; I-битная константа -> FO Бит состояния FO загружается 1-битной константой Бит FO используется для управления форматом сдвиговых регистров приемника и передатчика последовательного порта Если FO = 0 регистры передатчика н приемника являются 16 разрядными Если FO = 1. то регистры являются 8 разрядными Бит FO сбрасывается в ноль при подаче сигнала сброса 7.13 Команды управления В данную группу команд входят команды упрааления стеком, количеством повторений циклов, прерываниями, команда загрузки и запоминания регистров состояний, команды упрааления отдельными битами: С, OVM, НМ. ТС 7.1X1 Команды у правления стеком POP (pop Юр of slack to low accumulator) - вытолкнуть верхушку стека в младшее слово аккумулятора. Формат команды: POP Операция: (TOS) -> АСС(15-0) Содержимое верхушки стека (TOS) пересылается (выталкивается) в младшее слово аккумулятора. На освободившееся место последовательно пересылаются элементы с нижних уровней стека . Поэтому после семи пересылок все элементы стека будут иметь одно и тоже значение, соот- ветствующее последнему злемеггту стека. Даннал ситуация называется аи- типерсиолнсцнем Процессор не имеет средств, обнаруживающих анпгперсполненне стека POPD(pop stack to data memory) - вытолкнуть стек в память данных Формат команды: POPD <ас> POPD <Ka>[.<NARP>] Операция: (TOS) — > dma
no Глава 7 Содержимое верхушки стека (TOS) пересылается по адресу адресу dma. Из стека выталкивается одни элемент (рис 7.14) До вы пол не ина команды POPD После выполненнв команды TOS AR(ARP) AR(ARP) TOS Рис.7.14. Выполнение команды POPD PUSH (push low accumulator onto slack) - вталкивание младшего слова аккумулятора в стек Формат команды: PUSH Операция (АСС(15-0)) TOS Элементы стека последовательно пересылаются на уровень ниже Содержимое младшего слова аккумулятора помешается в освободившуюся верхушку стека PSHD (push data memory value to stack) - вталкивание значения памяти данных в стек Формат команды PSHD <ас> PSHD <Ka>[,<NARP>] Операция (dma) TOS Содержимое памяти данных (dma) помещается в верхушку стека TRAP (software interrupt) - программное прерывание. Формат команды: TRAP Операция (PC) + I TOS, 30 -> PC
ЦПОС с фиксированной и пятой семейства ТМ&320С2В .41 Команда TRAP передает управление команде, находящейся в ячейке 30 В стек вталкивается адрес команды следующей за TRAP, что позволяет вернуться в дальнейшем по команде RET в точку прерывания 7,13.2 Команды управления циклами RPT (repeal instruction ns specified by data memory value) - команда повторения в соответствии со значением памяти данных. Формат команды: RPT <dma> RPT <ка>( ,<NARP>] Операция: (dma(7-0)) --> RPTC Команда позволяет поместить в счетчик числа повторений RPTC значения младших восьми битов из памяти данных по адресу dma. При этом коман- да, которая будет записана после RPT, будет повторяться на один раз боль- ше, чем количество повторений, заданное непосредственно числом, загруженным в RPTC Во время циклического выполнения команды, следующей после RPT. прерывания будут замаскированы. Счетчик числа повторений RPTC очищается сигналом RS Пример 7 60 (AR(ARP)) - 1030 RPT* (RPTC) ' Ah (1030)- Ah (RPTC) = Oh RPTK (repeal instruction as specified by immediate value) - команда повторения в соответствии с непосредственно заданным значением Формат команды: RPTK <константа> Операция: 8-битнвл константа RPTC Команда помещает непосредственно заданную константу в счетчик числа повторений. В остальном команда RPTK аналогична команде RPT Пример 7.61 LRLK AR3,0400h, поместить в AR3 начальный адрес X LARP 3 , 3 -> АЯР ZAC RPTK 3 ADD • + , АСС - 0 , повторить Я раза , XI +Х2 + ХЗ - Х4 В приведенном фрагменте программы вычисляется сумма четырех значений данных, расло.юкснных по первым четырем адресам внешней памяти, начиная с адре- са СМ ОСЬ
из Глава 7 7.13.3 Команды управления прерываниями DINT (disable interrupt) - запрет прерываний Формат команды: DINT Операция: I INTM Команда устанавливает бит режима прерываний INTM в единицу После этого маскируемые прерывания будут немедленно запрещены Отметим, что команда LST нс устанавливает биг INTM Немаскируемые прерывания не запрещаются тгон командой. Прерывания также запрещаются при поступлении сигнала сброс EINT (enable interrupt) - разрешение прерываний Формат команды: EINT Операция: 0 -> INTM Команда устанавливает бит режима прерываний в ноль После этого будут разрешены маскируемые прерывания. IDLE (idle until interrupt) - ожидание до прерывания Формат команды: IDLE Операция: 0 —> INTM Выполнение команды IDLE приводит к ожиданию прерывания или сигнала сброс Процессор переводится в режим малого потребления энергии 7.13.4 Команды загрузки н запоминания регистров состояний LST (load status register STO) - загрузить регистр состояний STO Формат команды: LST <ас> I.ST <xa>[,<NARP>[ Операция: (dma) STO Регистр состояний ST0 загружается содержимым памяти dma Команда не воздействует па бит INTM и не осуществляет загрузку поле ARB Команда LST используется для восстановления слова состояния ST0 после прерываний и вызова подпрограмм Выполнение команды производит установку значений ARP. OV, OVM. DP Если в команде задано поле NARP. то оно игнорируется LST1 (load status register STI) - загрузить регистр состояний ST1. Формат команды:
ЦПОС С фиксированной запятой ttMfHCTB» TMS320CZ1 Ш LST1 <ас> LSTI <Ka>[,<NARP>] Операция: (dma) ST1 Регистр состояний ST1 загружается содержимым памяти данных но адресу dma. Биты памяти данных, которые загружаются в поле ARB, также загружаются в указатель ARP. Если в команде задано поле NARP. то оно игнорируется SST (store slaius register) - запомнить регистр состояний ST0 Формат команды SST <ас> SST <ка>( ,<NARP>] Операция (ST0) -> dma Команда позволяет сохранить содержимое регистра ST0 в памяти данных по адресу dma. В случае прямой адресации регистр ST0 сохраняется в нулевой странице независимо от значения DP SSTI (store siatus register STI) - запомнить регистр состояний ST1 Формат команды: SSTI <ас> SSTI <ка>(,<NARP>] Операция (STI)->dma Команда полностью аналогична команде SST. 7.13.S Команды управления отдельными битами BIT (test bit) - бит контроля Формат команды: BIT <ас><двоичный код> BIT <ка><двончный код>(,<МАИР>] Операция: заданный двоичным кодом бит (dma) -> ТС Команда колирует заданный бит содержимого памяти данных в бит ТС регистра состояний ST1 Номер бита, который необходимо скопировать в ST1 задается нолем <двоичный код> Возможные значения этого поля 0 15 BUT (test bit specified by T register) - бит контроля, заданный Т регистром. Формат команды: BITT <dma> BITT <Ka>[,<NARP>) Операция: заданный посредством Treg(J-O) бит (dma) -•> ТС
эн Глава 7 Команда аналогична BIT, но номер бита, колируемого в ТС, задается четырьмя младшими битами Т регистра. В табл.7,8 приведены команды, воздействующие на биты CNF, С, НМ, OVM, ТС, SXM. Все команды имеют простейший формат, включающий только мнемонику команды. Команды являются парными - сбро- СНТЬ/у СТЭ1 ю вить. Таблица 7.8 - Команды управления отдельными битами Мнемоника Описание команды Операция CNFO Сконфигурировать ВО как память данных 0->CNF CNFP Сконфигурировать ВО как память программ 1->CNF RC Сбросить бит переноса о-»с SC Установить бит переноса 1->С R0VM Сбросить бит режима переполнения 0-»OVM SOVM Установить бит режима переполнен и l-»0VM RSXM Сбросить бит режима змкорасшнренм O-»SXM SSXM Установить бит режима энакорасшнренм 1-»SXM RHM Сбросить бит режима захвата о-» нм SHM Установить бит режима захката 1-ЭНМ RTC Сбросить флаг контроль/управление 0->ТС STC Установить флаг контроль/у правление 1-»ТС 7.14 Общие вопросы программирования ЦПОС В данном параграфе рассматриваются общие вопросы программирования ЦПОС TMS320C2x на языке ассемблера. Основное вни- мание уделено рассмотрению полей ассемблерной строки и простейшим директивам ассемблера 7.14.1 Программирование на языке ассемблера Программирование па языке ассемблера в отличие от программирования в кодах предполагает запись всех элементов программы в символической форме. Это в значительной степени облегчает процесс разработки и отладки программ. Преобразование символических имен в машинные коды возлагается на специальную программу, называемую ассемблером. Ассемблерные программы записываются в виде последовательности команд, называемых также операторами Во многих случаях один оператор ассемблера порождает одну машинную команду Поэтому программирование на ассемблере является удобной формой записи машинных команд и позволяет добиться максимальной эффективности
ЦПОС с фнкснроынной плитой схмгновя TMS32OC21 Л J программ Однако это требует от программиста полного понимания работы технических средств Программа-ассемблер создает объектный файл Имеется два различных формата объектных файлов: COFF-формат (common object file format) н Tl-формат. Здесь и далее рассматривается ассемблер . поддержи- вающий COFF-формат. Ассемблерная команда содержит следующие ноля: (<метка>| <мнемоиика> -операнды > (--комментарий-] Необязательное поле метки это символическое наименование 16- раэрядного адреса той ячейки, в которой будет размещена помеченная ко- манда. Символическое наименование (имя, идентификатор) должно начи- наться с буквы и содержать не более б символов Метки используются в качестве адресов перехода в командах и директивах передачи упрааяення и освобождают программиста от необходимости оперировать абсолютными адресами памяти. Пример метки: Метка Мнемоника Операнды .Комментарий LOOP LACK OFFFh BGZ LOOP BLEZ LOOP Команды BGZ и BLEZ передают управление одной н той же ячейке памяти программ, содержащей команду LACK. Поле кода или мнемоники содержит символическое имя команды, которое заменяет собой значение кода выполняемой операции Мнемоники ассемблерных команд представляют аббревиатуры предложений, характе- ризующих основные функции, выполняемые командой Длина мнемоники не превышает пяти символов Поле мнемоники (кода) отделяется or поля метки хотя бы одним пробелом Мнемоники относятся к ключевым словам ассемблера Если они записываются с ошибками, то ассемблер формирует соответствующее сообщение Содержимое паля операндов в значительной степени зависит от команды В качестве операндов могут фигурировать абсолютные и символические имена адресов памяти, программно доступные внутренние регистры процессора (PRD, TIM. ARO и др.), адреса портов ввода-вывода (РА1-РА15), числовые и символические константы, режимы косвенной адресации (*>, нО-, *BR0-и др ) Поле операндов для некоторых команд может быть пустым (SST, CALA, RTC н др.) Содержащееся в поле операнда шестнадцатиричное чт ю обязательно должно начинаться с цифры и завершаться буквой h (Hex)
Мб Глава 7 Число, начинающееся с буквы, дополняется слева неыачащим нулем. например, OAFCh, OFCEDh В Tl-формате запись шестнадцатиричных чисел начинается с символа Например, >FFOO. >7Л и тп Любое другое число считается десятичным В поле операндов разрешается указывать символические имена, которые определены в самом ассемблере и связаны с архитектурой процессора. В язык ассемблера встроены имела программно доступных регистров: AR0-AR7, TIM, PRD, IMR, GREG, DRR. DXR, метки - DATn и PRGn, ассоциирующиеся соответственно с п- ой ячейкой памяти данных и памяти программ. Вместо имен внутренних регистров допускается указывать их адреса в десятичной или в шестнадцатиричной системе. Например, приведенные ниже команды эквивалентны: SALK 3h ;(ACC)->3h SALK PRD . (ACC)-> PRD В командах передачи управлении в поле операнда можно указывать метки, введенные в полях меток других команд. Метки, расположенные в поле операнда, яапяются символическими адресами перехода. В процессе ассемблирования и загрузки программы меткам ставятся в соот венд вне адреса. Метки, введенные в качестве операнда, должны обязательно один раз появиться в поле метки некоторой команды: LAC SUBK BGZ 0200h Olh METKAI . Переход на метку МЕТКА! LAC CALL 0300h SUBR ; Вызов подпрограммы SUBR SST SSTI 7.14.2 Директивы ассемблера В строках ассемблерной программы могут использоваться директивы, передающие указания программе ассемблеру о выполнении определенных действий в процессе ассемблирования Директивы опреде- ляют порядок ассемблирования, размещают в памяти команды н данные, присваивают численные значения символическим наименованиям. резервирует память и пр Рассмотрим упрощенные форматы некоторых директив COFF-ассемблсра Директива .title. Директива заголовка программы title имеет формат
ЦПОС с фиксированной ЦП ягой семейств» TMS3MC21 3|7 lille <строка> Поле строка представляет последовательность символов ( не более 65), заключенных в двойные кавычки Например, title "ПРОГРАММА ФИЛЬТРАЦИИ" Директива .set (установить) выполняет операцию присваивания и имеет следующий формат: <имя> set <выраженне> При выполнении директивы имени, стоящему в поле метки, присва- ивается значение выражения Обычно выражение задается шестнад- цатиричным числом. Когда имя встречается в поле операндов команд, программа ассемблер подставляет вместо него присвоенное значение: SADR sei 00400h EADR set 02000h LRLK ARO.EADR LRLK AR I,SADR В командах LRLK вместо имен SADR и EADR будут использованы соответственно значения 400h н 2000h Директива .bss резервирует память под переменную и имеет следующий формат: bss <имя>,<копстаита> Числовая константа определяет число ячеек памяти, резервируемых для запоминания переменной Налример, запись bss var, I резервирует одну ячейку памяти под переменную var Директива .sect (секция, сегмент) определяет именованный сегмент и имеет формат seel <строка> Программа может быть разбита на сегменты , которые представляют перемещаемые блоки кода или данных Сегменты размешаются в памяти процессора. Конкретное размещение сегментов в адресном пространстве памяти определяется на стадии редактирования связей. Поле <строка> соответствует названию сегмента Например, sect "reset" В MAIN
ns I.IIBl'? Здесь сегмент “reset" содержит одну команду передачи управления на метку MAIN, соответствующую началу программы Абсолютный адрес, по которому будет разметена команда, определяется прн вызове редактора связей. Кроме нмспнованных сегментов объектные файла COFF-формата все- гда содержат три стандартных сегмента: .text, .data, bss. Директива .leal опрелеляат сегмент, в котором располагается код программы. Код прыраммы всегда будет помешаться в данный сегмент по- ка не будет открыт другой сегмент с помощью директив sect, data Директива .data открывает сегмент , в котором обычно размещаются таблицы исходных данных и другие инициализированные переменные Существует два основных типа ссментов: инициализированные и неинициализированные. Инициализированные сегменты содержат данные или код. Сегменты sect, text, data относятся к инициализированным Не- инициализированные сегменты резервируют память в адресном пространст- ве процессора для неинициализированных данных. Например, сегмент bss Ниже приведен пример программы, содержащей директивы .set, .bss, sect, .text. Для лучшего понимания назначения директив программа содержит дополнительно поле адреса и поле машинного кода Адрес Код 0400 2000 SADR set 00400h EADR В set 02000h 0000 • bss VAR, I 0000 sect "RESET" 0000 FF80 В MAIN 0001 0000’ Л 0000 text 0000 С800 MAIN LDRK 0 ;DP<- 0 0001 слое LACK 0 . ACC <- 0 0005 DO00 LRLK ARO,EADR ; ARO <-F.ADR 0006 2000 0007 D100 LRLK ARI,SADR , ARI <-SADR 0008 0400 0012 6000 SACL VAR , (ACC) -> VAR end
ЦПОС с фиксированной миной семейств» TMSMOCJi 119 Второе слово машинного кода команды В содержит относительный адрес перехода 0000' на метку MAIN, который может быть определен только, когда будет известно где располагается сегмент text Абсолютные адреса расположения секций задаются пользователем на этапе редак- тирования связей. Следовательно, тогда и заменяются все относительные адреса на абсолютные Директива ,Ья, определяющая количество ячеек памяти данных, отводимых для хранения переменных, также формирует относительные адреса па стадии ассемблирования. Абсолютные адреса определяются пользователем прн редактировании связей. Директива .end информирует программу-ассемблер о достижении физического конца входной программы. Одна нз основных трудностей программирования на языке ассембле- ра состоит в том, что весь процесс вычислений должен быть сформулиро- ван в терминах команд процессора. Так как команды процессора выполня- ют мелкие операции по сравнению с операциями, требующимися для реше- ния задачи на содержательном уровне, то программирование на ассемблере весьма трудоемко Для уменьшения трудностей, связанных с указанным обстоятельст- вом, программист может по своему усмотрению определять более содержа- тельные команды, которые затем используются прн составлении програм- мы наряду с обычными командами Такие команды называют макрокоман- дами. Макрокоманда вводится с помощью макроопределения, которое по своей сути весьма близко к определению процедур в языках высокого уровня. Формат макроопределения: <имя макрокоманды> SMACRO [параметр,.параметр) | тело макроопреления SEN DM Здесь директива SMACRO открывает определение макрокоманды, присваивает ей имя, стоящее слева от слова SMACRO, и задает параметры макрокоманды Параметры макрокоманды являются необязательными Вызывается макрокоманда с помощью своего имени и операндов Когда макрокоманда вызвана, ассемблер сопоставит первый операнд в вызова макроманды с первым параметром в определении макрокоманды и тд Директива SENDM заканчивает определение макрокоманды При вызове макрокоманды ассемблер подставляет команды, входящие в се определение, а код исходной программы.
ПО Г.1» в« 7 7.15 Программирование основных структур алгоритмов 7.15.1 Программирование разветвляющихся алгоритмов Одной из характерных особенностей многих алгоритмов обработки сигналов является наличие разветвлений. Для реализации разветвляющих- ся алгоритмов в процессоре предусмотрены специальные команды условного перехода по значению некоторого признака Большинство команд условного перехода использует в качестве признака значение, содержащееся в аккумуляторе (BGEZ, BGZ, BLEZ, BLZ. BNZ, BZ). Во всех этих командах выполняется соответствующая команда сравнения содержимого аккумулятора с нулем. Если сравнение завершается успешно, то управление передается по адресу, указанному в команде, в противном случае выполняется следующая команда. Пусть требуется запрограммировать на языке ассемблера следующий оператор языка высокого уровня: IF AI>B1 THEN C:=AI HBl ELSEOA1-BI Здесь Al, Bl и С целые числа, не превышающие по модулю значение 65535 Тогда программа для ЦПОС может быть реализована в следующем виде: LDPK 4h , DP-4 LAC Al ; Загрузить (Al) в аккумулятор SUB Bl .((AIHBII)--> ACC BGZ METKAl . Переход, если (A1 )>( Bl) SACL C ; Сохранить ((Al )-<B 1)) в C В METKA2 , Переход на метку 2 METKAl LAC Al . (Al)-> ACC ADD Bl ;((AI)+(BI))-> ACC SACL C ; (ACCL) C METKA2 ... В систему команд процессора входит значительное число команд, использующих в качестве признаков перехода значения битов ТС. С. OV (BBNZ, BBZ. BNC, ВС, BNV, BV). Кроме этого, имеется команда перехода BANZ, выполняющая передачу управления, если содержимое текущего вспомогательного регистра не равно нулю ((AR(ARP)) <> 0) Рассмотренные команды являются подходящими, когда нужно выбрать одну из двух возможных ветвей алгоритма Иногда возникает необходимость выбрать одну из к возможных ветвей, где к > 2 Пусть тре- буется составить программу, предназначенную для выбора одной из 4-х
ЦПОС е фикс и ром иной it пятой семей ст»» ТМ$320С2д J2I ветвей алгоритма, коды которых располагаются по адресам ВО, В4. В8, ВС. Для решения задачи может использоваться команда передачи управления по адресу, вычисляемому в аккумуляторе ВАСС Предположим, что выбор одной из ветвей алгоритма определяется значением переменной CHOICE (О < CHOICE < 3), тогда поставленную задачу решает следующий фрагмент программы LDPK 4h , DP-1 LACK OBOh ; Инициализация аккумулятора базовым адресом LT CHOICE , Загрузить Т-региетр значением CHOICE MPYK 4 ; Вычислить относительный адрес перехода (на пример 2x4-8) АРАС ; Сложить с базовым адресом ВО ВАСС , Переход по одному нз адресов: ВО. В4. В8, ВС Данный фрагмент программы соответствуют использованию операторов выбора в языках высокого уровня (case в языке Паскаль, switch в языке Си). Однако для более полного соответствия лучше воспользоваться командой CALA (косвенный вызов подпрограммы), пример использования которой будет рассмотрен ниже. В общем случае команды условного перехода требуют перезагрузки конвейера процессора и дополнительных затрат времени на формирование и проверку условий переходов Эго значительно увеличивает время выпол- нения программы, если передача управления происходит внутри циклов. Поэтому критические участки программ цифровой обработки сигналов стремятся писать без команд условных или безусловных переходов 7.15,2 Программирование циклических алгоритмов Характерной особенностью большинства используемых алгоритмов цифровой обработки сигналов яаляется цикличность Различают циклы с заранее известным числом повторений и с заранее неизвестным числом повторений В последнем случае при задании цикла формулируется спе- циальное условие, при выполнении которого циклический процесс должен завершаться. Такие циклы часто называются циклами итерационного типа. Специфика программирования циклов связана с необходимостью особенно тщательной оптимизации тела цикла, т е той части программы, которая выполняется многократно С этой целью в систему команд процессора включены команды повторений RPT и RPTK, позволяющие программировать одиокомандцые циклы Каждая из этих команд обеспечивает повторное выполнение команды, непосредственно следующей
322 Глава 7 за RPT или RPTK Количество повторений определяется значением, содержащимся в счетчике RPTC Важной особенностью однокомандных циклов, реализованных на основе команд повторений, является сокращение времени выполнения ко- манды, находящейся в теле цикла. Достигается это аппаратными сред- ствами. Повторяющаяся команда считывается из памяти программ только один раз перед выполнением цикла. Действительно, если команда выбрала и находится в регистре команд IR, то при ее повторном выполнении отпадает необходимость в машинном цикле выборки. что сокращает время выполнения команды. Особенно существенный выигрыш получается при повторении команд обмена данными IN, OUT, TBLR. TBLW. BLKD, BLKP. После выборки команды и загрузки ее в IR шнна команд остаегся свободной. Поэтому в это время еС можно использовать для пересылки данных, адресуемых счетчиком команд PC. Эти создает возможность параллельного использования шнцы данных н шины программ для передачи операндов. Например, команда МАС адресует н пересылает один нз операндов посредством шины команд, а второй посредством (инны данных Такая параллельная работа шин возможна благодаря вычислению адресов операндов независимо от выполнения арифметических операций в НАЛУ Адресация операндов происходит путем инкрементации PC и индексации вспомогательных регистров в ARAU. Для параллельного использования шнн необходимо, чтобы один из операндов располагался в памяти программ, так как он адресуется счетчиком команд. Рассмотрим пример. Пусть требуется вычислить скалярное произведение векторов 5 = £ лф1 • , < -1 где N < 2 56 Предположим, что элементы вектора х расположены в блоке ВО, а вектора у в блоке В1. Тогда программа вычислении 5 может быть записана в следующем виде: LARP AR7 , AR7 текущий регистр CNFP ; ВО программная память LRLK AR7,300h , 300h начало В1 MPYK Oh , Обнулить Р-регнстр ZAC , Обнулить АСС LDPK 0 ; DP=O RPT N ; (N) -> RPTC MAC OFFOOh,*+ ; S:“S + Х(1] х Y(IJ; (AR7) < 1 -> AR7 APAC ; Добавление последнего произведения Р-^АС'С
ЦПОС с фиксированной моятой семейства TMS310C21 >21 Недостатком рассмотренного варианта организации цикла является малое число повторений (не более 256) и включение в тело цикла только одной команды Значительно большее число повторений можно получить, если в ка- честве счетчика циклов использовать один из вспомогательных регистров и команду передачи управления BANZ: LARP AR) LPLK ARl,3FFh ZAC LOOP ADD ' BANZ LOOP ; Выбрать вспомогательный регистр ARI ; Загрузить в AR I число повторений , Обнулить АСС , (АСС) + (dma) -> АСС ; Если (AR1) <> 0, то LOOP —> PC ;((ARl)-))--> AR) Здесь регистр ARI используется в качестве счетчика цикла В цикле выполняется суммирование содержимого памяти данных, начиная с ячейки 3FF и заканчивая ячейкой Oh. Тело цикла состааяяют команды, находящиеся между метками LOOP и командой проверки у слов вл выхода из цикла BANZ Команда BANZ (по умолчанию) уменьшает содержимое текущего вспомогательного регистра на единицу Когда содержимое AR) станет равным нулю, произойдет выход из цикла В приведенном примере операции по управлению циклом выполняются в ARAU, а арифметические действия, состааяяюшне тело цикла, в ЦАЛУ. Это также сокращает время выполнения цикла Ассемблерная реализация итерационных циклов не содержит каких- либо существенно новых злементов программирования по сравнению с рассмотренным выше примером, поскольку определяемый ими процесс также можно задавать с помощью команд условного перехода Отличие заключается в том, что дяя проверки выполнения условия выхода из цикла необходимо выполнять болве сложные вычисления , которые нельзя обычно реализовать в ARAU. Например, пусть требуется определить минимальное значение /, при котором выполняется неравенство 2 Предполагается, что все элементы х[<| и число К больше нуля Регистр AR I будем использовать в качестве указателя памяти данных, а вычисляемую сумму элементов хр] будем хранить в ячейке SUM Тогда поставленная задача решается следующим фрагментом программы: LDPK 8h ; DP-8 ZAC , 0 -> ACC SACL SUM , 0 -> SUM
ЛИ Глава 7 LARP ARI ; AR 1 - указатель LRLK ARLOFFFh ; OFFFh нач адрес массива X REPEAT LAC SUM , (SUM) -> ACCL ADD ; (ACC)+(AR(ARP)) -> ACC SACL SUM ; (ACCL) -> SUM SUB к ; ((ACCMK))-> ACC BLZ REPEAT ; Если ACC<0, то переход на LOOP SAR ARI,TEMP ; (ARI )-> TEMP LALK OFFFh ; OFFFh -> ACC SUB TEMP , FFFh - (TEMP) -> ACC, i Здесь выход нз цикла управляется содержимым аккумулятора. Как только содержимое аккумулятора станет равным нулю нлн будет больше нуля, упраакеине передастся команде SAR. Значение i получается путем вычитания адресов начального н конечного элемента х[<] Рассмотренный фрагмент программы соответствует циклу с постусловием. В этом случае команды, образующие тело цикла, выполняются хотя бы один раз независимо от условия выхода нз цикла Несложно иалнсатъ программу, использующую конструкцию "цикл с предусловием", когда проверка окончания цикла выполняется в начале тела цикла: LDPK 8h ZAC SACL SUM LARP ARI LRLK ARI,OFFFh WHILE SACL SUM SUB К BGEZ QUIT LAC SUM ADD •ч В WHILE QUIT SAR ARI.TEMP LALK OFFFh SUB TEMP ,DP=8 ; 0 -> АСС ,0-> SUM ;ARP<- I ; AR I <-- OFFFh ; ACC—> SUM , (ACCHK)-> ACC , Если ACC 0, то выход , (SUM) -> ACC . (ACC)+(AR(ARP)) -> ACC , Переход на метку WHILE ,(ARl)-> TEMP , OFFFh -> ACC ; OFFFh-(TEMP) -> ACC, i Очевидно, что рассмотренные варианты организации итерационных циклов с переходами на метки н применением команд условных переходов менее эффективны, чем однокомандныс циклы, использующие команды RPT и RPTK Поэтому при программировании алгоритмов цифровой обработки сигналов необходимо стираться применять однокомандные циклы.
ЦПОС с фиксированной нотой семейства ТМS32001 ИЗ 7.16 Структуры данных Под структурами данных понимают совокупность элементов данных, между которыми существуют отношения. В зависимости от характера отношений (связей) выделяют различные структуры данных В области цифровой обработки сигналов наиболее часто используют массивы, стеки, очереди Рассмотрим возможности ЦПОС по управлению указан- ными структурами. 7.16.1 Массивы Массив яаляется наиболее простой и распространенной структурой данных. Он представляет собой совокупность однотипных элементов, которые размешаются в смежных ячейках памяти Положение любого элемента в массиве определяется базовым (начальным) адресом массивам порядковым номером, называемым индексом Адрес элемента массива равен сумме базового адреса и индекса (индексная адресация). Индексная адресация в процессоре TMS32OC25 реализуется аппаратными средствами с помощью ARAU В этом случае один из веломо- Рис 7 16 Адресация одномерного массива гзтельиых регистров, например AR1 (рис.7 16), содержит начальный (базовый) адрес массива BASE и указывает на элемент массива с нулевым индексом. Для доступа к следующему элементу массива содержимое ARI необходимо увеличивать (уменьшать) на единицу Как известно, эта операция может быть выполнена в ARAU любой командой с косвенной адресацией Обычно обработка массивов осуществляется циклическими про- граммами. Поскольку количество элементов массива известно заранее, то Для программирования операций обработки массивов удобно использовать никлы с фиксированным числом повторений, рассмотренные ранее
J36 Глава 7 В качестве примера обработки массива рассмотрим следующую задачу. Пусть требуется подсчитать количество элементов массива, превы- шающих пороговое значение, хранящееся в ячейке с адресом TRES Начальный и конечный адрес массива хранятся соответственно в ячейках с адресами BASE и KON. Метка Код Операнды LDPK 8h RTC LAR ARO.KON LARP ARI LAR ARI,BASE LARK AR2,0h REP LAC •+ SUB TRES BLEZ МЕТКА LARP 2 MAR •+ LARP 1 МЕТКА CMPR 2 BSZ REP SAR AR2.NUM Комментарий . DP=8 . О -> ТС ; Конечный адрес в AR0 , Инициализация , указателя AR I , Инициализация счетчика элементов , x[i] АСС, инкремент AR1 ; x[iHTRES) -> АСС , x(i] <= TRES , 2 —> ARP, AR2 - счетчик элементов , (AR2HI -> AR2 , 1 -> ARP . Если (ARI) > (ARO), то I ТС ; Переход .если ТСМ) , Количество элементов в ячейке NUM Каждый элемент массива сравнивается с порогом Если значение элемента массива превышает порог, то счетчик числа элементов AR2 увеличивается на 1; иначе происходит переход к следующему элементу массива Проверка условия окончания цикла выполняется путем сравнения адреса текущего элемента массива (ARI) с конечным адресом, хранящимся в AR0 Управление адресами элементов несколько усложняется в случае обработки многомерных массивов Ограничимся рассмотрением двумерных массивов (матриц), поскольку методика сохраняется и для работы с массивами с большим числом измерений Специфика использования многомерных массивов проявляется уже в том, что элементы такого массива можно разместить в памяти различными способами по строкам или по столбцам Прн разных способах размещения получается разной и зависимость адреса элемента массива от значений индексов Если каждый элемент массива занимает одно адресуемое слово, то адрес элемента определяется следующим образом od/HTAfi.j] = адрес A(O,O]+inr + j, если массив записан по строкам, адрес A[i,j] = адрес А[0,0]+< + j nc, если массив записан по столбцам,
ЦПОС с фиксированной и л той семейств! TMS32OC21 127 где пг. пс - количество цементов в строке н столбце массиве Нумерация строк и столбцов начинается с пуля При обработке многомерных массивов следует выделить такой случай, когда последовательно просматриваются и обрабатываются все его элементы Например, требуется вычислить сумму всех элементов матрицы или найти максимальный элемент матрицы и т.п. В подобных случаях матрицу размером m х п удобнее трактовать как вектор размером I х (т х п). Это позволяет избежать программирования вложенных циклов, обусловленного необходимостью перебора индексов но строкам и столбцам Управление адресами элементов массива выполняется так же. как и в рассмотренных выше примерах обработки массивов. При этом не- обходимо предварительно вычислить значение адреса конечного элемента массива. Если же специфика задачи такова, что обработка матрицы не может быть сведена к последовательной обработке всех ее элементов, то управ- ление адресами выполняется более сложным способом Например, пусть для квадратной матрицы А размером NxN требуется найти нвлбольший элемент в нижней треугольной части, включающей главную диагональ В этом случае для решения поставленной задачи необходимо просматривать из первой строки один эдеме in, из второй строки - два элемента и т д На языке высокого уроаил решение подобной задачи можно записать в виде Y:- А(0,0|; Гог i =0 to N-l do Гог j:= 0 to i do if A[ij) > Y then Y:= A(ij); В процессоре TMS32OC2x удобно выход из циклов организовать с помошью команды BANZ. В этом случае в один из вспомогательных регистров загружают число, значение которого соответствует количеству повторений цикла. В теле цикла уменьшают содержимое регистра до тех пор, пока оно не станет равным пулю В соответствии с этим приведенный фрагмент программы можно переписать в виде Y:-A[N-I,N-I); Гог i:= N-l down to 0 do Гог j:= i downto 0 do if A[iJ] > Y then Y = A[ij); Здесь изменен порядок обработки значений индексов Физически это соответствует движению по адресному пространству от больших адресов к меньшим. Предположим, что массив А хранится в смежных ячейках памяти по строкам, т е
________________________________________________Г лям 7 адрес A[i j] = адрес A(0,0] -r1 N + j =адрес A[0,0] + in + j Управление числом повторений по переменной i удобно осуществлять с помощью значения переменной in, которое для рассматриваемой задачи изменяется от значения (N-I)N с шагом -N до значения 0 Переменная j изменяет свое значение от i до 0 с шагом -1. Поскольку верхняя граница изменения j зависит от i, то при каждом изменении i необходимо изменять и значение этой границы В этом случае массив А будет обрабатываться с конца, те. от больших индексов к меньшим. И начальное значение адреса должно соответствовать конечному элемента массива. В приведенной ниже программе использованы следующие обозна- чения: - BASE - адрес ячейки, содержащей адрес последнего элемента массива А. - JK - адрес ячейки, содержащей начальное значение переменной j.Oro значение зависит от переменной i; - INK - адрес ячейки, содержащей начальное значение переменной in, -INS - адрес ячейки, содержащей шаг изменения переменной in.(INS) - N. - KOR - адрес ячейки, содержащей корректирующие значение, позволяю- щее уточнить адрес текущего элемента массива А В программе адрес текущего элемента массива хранится в регистре AR1 При каждом уменьшении на единицу индекса j содержимое ARI также уменьшается на единицу. При переходе к другой строке матрицы данный порядок нарушается Необходимо пропустить ряд элемС1пов Естн движение выполняется с конца матрицы, го необходимо при каждом переходе на новую строку пропускать сначала один элемент, эатам два н т д В ячейке памяти KOR запоминается количество элементов . которое необходимо пропустить при переходе к новой строке матрицы * инициал нзация LAR ARI.BASE LAR AR2JK LAR AR3.INK LARK ARO, KOR , AR1 -указатель на текущий элемент массива , Инициализация счетчика j (j=N) , Инициализация счетчика in (in-N*N) . Корректирующее значение для ARI. (KOR)=0 * присвоение Y.- A[N-1,N-1) LARP AR1 ; LAC • ; SACL Y , A[N-l,N-l] -> Y * вложенные циклы REPJ1 LARP ARI LAC ' SUB Y BLEZ MET , Текущий регистр AR 1 ; Загрузить A[i J j в аккумулятор , Сравнить A(ij) и Y,r.e нактн A|ij]-Y , Если A[ijJ <- Y, to Y не меняем
ЦПОС t фи кси ром нн ом и пято и семействя TMSJ2OC3» «9 LAC SACL MET MAR LARP. MAR BANZ * . Иначе, no адресу Y Y ; Сохраняем значение A[ij] - ; Уменьшаем физ. адрес массива на I AR2 ; Работа со счетчиком циклов по j •- ; Уменьшаем счетчик на 1 REPJI , Если счетчик не равен 0. то никл по j LAC SUB SACL LAR JK , Начинаем новый цикл по переменной i JS ; Модификация JK, т е. начального значения j JK ; (JKJ-JS JK- новое начальное значение j AR2.JK ; (JK) AR2 LARP MAR SAR ARO Изменяем *+ , Корректирующее значение .для AR 1 ARO.KOR .Сохраняем корсктирующое значение LARP MAR AR 1 , Корректируем AR 1 *0- ; Пропускаем некоторые элементы LARP LAR MAR LAR AR3 ; Изменяем ечстчнк in AR0.INS , Загружаем шаг изменения in в ARO *0- ; Уменьшаем in па один шаг INS ARO.KOR , Восстанавливаем в AR0 корректирующее ;значение BANZ REPJI , Если счетчик m не равен 0. то цикл по i 7.16.2 Очереди и кольцевые буферы Одной из часто используемых структур данных в алгоритмах цифровой обработки сигналов является очередь Элементы, образующие очередь, заносятся и исключаются нз неё в процессе выполнения программы Очередь обслуживается по принципу FIFO (First In First Out): элемент, поступивший первым, первым и обслуживается Включение элементов в очередь производят с одного конца (конец очереди), а исключение с другого (начало очереди). Соответственно для работы с очередью вводят указатели начала и конца очереди Первый адресует элемент, подлежащий исключению, а второй - последний элемент в очередл Для хранения очереди выделяется некоторая область нз смежных ячеек памяти, число которых соответствует максимально возможной длине очереди (рис.7.17,а). Прн работе с очередью необходимо учитывать два особых случал: попытка включить элемент в очередь, асе ячейки которой заняты; попытка исключения элемента нз пустой очереди Соответственно каждый из этих случаев называется переполнением или антипереполнением очереди.
JW Глям 7 BkEnd 3₽ 6) Рис 7 17 Организация очереди Для исключения элемента из очереди необходимо выполнить обра- ботку элемента, адресуемого указателем начала очереди (SP), и осуществить декремент этого указателя Включаемый элемент записывается в ячейку, адресуемую указателем конца очереди (ЕР) Обычно указатель конца очереди указывает на первую свободную ячейку. После включения нового элемента в очередь производится декремент указателя конца оче- реди При работе с очередью необходимо следить за тем, чтобы опа находилась в пределах начальной (указатель BkBcgin) и конечной границ (указатель BkEnd) области памяти, отведенной для ее размещения (рис 7.17,а). Рассмотренный принцип организации очереди соответствует линей- ной очереди. В задачах цифровой обработки сигналов часто применяют кольцевую очередь, которую называют кольцевым буфером (рис.7 17,6). В этом случае значения указателей ЕР и SP заменяются на BkBcgin, если они достигают границы BkEnd Если указатели ЕР и SP становятся равными друг друг}', то возникает переполнение кольцевой очереди Рассмотрим пример программы, выполняющей операции включения элемента в кольцевую очередь и исключения элемента из нее. Переполне- ние очереди будем фиксировать с помощью бита ТС После возникновения переполнения нельзя выполнять повторно операцию , которая привела к переполнению * Включение элемента из аккумулятора в очередь LAR AR I ,ЕР ; Указатель конца очереди в AR1 LARP ARI ; AR1 текущий регистр
ЦПОС с фиксированной ипнтой семейств» TMS320C21 131 SACL •- , Сохранить аккумулятор в конце очереди LAR AR0.BKEND RTC CMPR 1 BBZ Ml LAR ARI.BKBEGIN Ml LAR ARO.SP ,(ARl)-l -> ARI конечная граница в AR0 , Установить бит ТС в ноль ; Достигнута ли нижняя граница ; Если нет, то модификация ЕР не нужна ; Модификация ЕР , Проверка переполнения RTC CMPR 0 SAR ARI,EP ; 0 -> ТС ; Если EP=SP, то 1 -> ТС Персполнанне ; Сохранить ЕР * Исключение элемента нз очереди LAR AR2.SP , Указатель начала очереди в AR2 LARP AR2 , AR2 текущий регистр LAC *- . Исключаемый элементе аккумуляторе LAR ARO.BKEND ; Нижняя граница в AR0 RTC , Установить бит ТС в ноль CMPR 1 ; Достигнута ли нижняя граница? BBZ М2 , Если пет, то модификация SP не нужна LAR AR2,BKBEGIN , Модификация SP М2 LAR AR0.EP , Проверка антнпсреполпения RTC , 0 —> ТС CMPR 0 , Если SP'EP.to 1->ТС Антипереполиенне SAR AR2.SP ; Запоминание SP В алгоритмах цифровой обработки сигналов часто используют "синхронное* перс мешен не указателей SP и ЕР После включения заданного количества элементов в очередь, такое же количество элементов исключается, те в очереди хранится определенное число элементов, подлежащих обработке Такая организация данных может испольэоаяться при программировании фильтров с конечной импульсной характеристикой, вычислении преобразований Фурье и др Приведенные фрагмогты программ легко адаптировать применительно к рассматриваемому случаю Для этого их следует объединить и исключить проверку на переполнение и антипереполиенне Так как при некотором резерве памяти равенство указателей ЕР и SP исключается Кольцевая очередь может быть эффективно реализована с помощью бит-инверсной адресации Наиболее просто при использовании бит- инвереной адресации реализуется кольцевая очередь длины N, где N- яаляется степенью числа 2
BI Глава 7 В случае бнт-инверсной адресации указатель, ссылающийся на текущий элемент очереди, меняет свои значения с шагом, определяемым содержимым регистра AR0 При ттом в ARAU выполняется операция сум- мирования с распространили переноса в обратную сторону (те. нс влево, а вправо). Перенос из младшего значащего бита игнорируется. В таблице 7.9 приведен пример вычисления адресов для случая организации в памяти кольцевого буфера из 8-ми элеме1пив. Если в AR0 поместить значение N/2, где N - длина буфера (в рассматриваемом случае (AR0)=4h ) . то через N- шагов произойдет переход к начальному адресу, т е. формируются адреса , обеспечивающие доступ к элементам кольцевого буфера. При ттом адреса формируются в б нт-ин вередом порядке. С целью упрощения таблицы вы- числение адресов показано только для трея младших значащих битов (м.э.б). Вычисляемые адреса будут находиться в пределах, определяемых начальным адресом буфера и его длиной. Начаяьный адрес буфера выбира- ется таким образом, чтобы его младшие log,№ разрядов имели нулевые значения. Таблица 7.9 - Вычисление адресов бнт-инвсрсным способом Режим косвенной адре- сации Адрес элемент! Вычислен нс адреса (3 м з 6 ) Начальный адрес 0200h •BRO+ 0204h 000+100-100 •BRO+ 0202h 100+100-010 •0RO+ 0206h 010+100-110 •BRO+ 020 th 110+100-001 •BRO+ 0205h 001+100-101 •BRO+ 020)h 101+100-011 •BR0 + 0207h 011+100-1I1 •BRO 0200h 111+100-000 7.16.3 Стеки Стек функционирует по принципу LIFO (Last In First Out); элемент, поступивший последним, обслуживается первым. Такая дисциплина обслуживания целесообразна во многих случаях, в частности, при работе с различными подпрограммами. При работе со стеком можно выполнять операции включения элемента в стек и исключения элемента из стека. Максимальное количество слов, запоминаемых в стеке, называется его глубиной В процессоре имеется аппаратно реализованный стек, глубина кото- рого ограничена и равна восьми. Включение и исключение данных нз аппаратного стека выполняется с помощью команд PUSH н POP. Эти команды позволяют проводить обмен данными между младшим словом
ЦПОС с фиксированной и пят ой семейств! T.MS32OC21 аккумулятора и верхушкой аппаратного стека (TOS). Кроме этого, в систему команд процессора включены команды PUSHD и POPD, выполняющие обмен данными между верхушкой стека и памятью данных Зге команды обычно используют для сохранения н восстановления содержимого аппаратного стека в памяти программ. В случае обработки данных, требующей большой глубины стека, его смежных ячейках памяти данных(рис.7 18) с на- чальной и конечной границами - Bk Begin, BkEnd Для обращения к верхушке стека используют указатель TSP При исключении элемента из стека необходимо выполнить декремент указателя TSP и прочитать соответствующий элемент Включаемый элемент записывается в ячейку, на которую указывает TSP, после этого выполняется его инкремент. В процессе выполнения опера- ций со стеком необходимо обнаруживать случаи, когда указатель TSP указы веет на границу BkBegin (антипереполнеиие) нян BkEnd (переполнение) В приведенных ниже примерах при возникновении переполнения (антипе-репол нения) устанавливается бит ТС После возникновения переполнения нлн антипереполнения нельзя повторно выпол- нять операцию, которая привела к этому Рассмотрим пример программы, выпол- няющей включение элементов в стек и исключение элементов нз стека: организуют программно в а q Память Bkbegin-^ TSP 0000 В KE nd —р ГГГГ Рис.7 [8 Стек включение в стек содержимого аккумулятора AR1 указатель TSP ; Эшруэка указателя . Включение -элемента в стек . Сброс бита ТС . 3ai рулить конечную границу . Если TSP=BKEND, то 1 -> ТС Переполнение , Запомнить указатель стека LARP LAR SACL RTC LAR CMPR 0 SAR AR I,TSP ARI AR I.TSP ARO, BKEND исключение из стека в аккумулятор LARP ARI LAR ARI,TSP MAR •- LAC ’ RTC . ARI - указатель TSP . Загрузка указателя ; Перемещение указателя назад , Извлечение нз стека . Сбросить бит ТС
зм Глава 1 LAR ARO.BKBEGFN ; Загрузить нижнюю границу CMPR О ; Если TSP=BKBEGIN,to [—>ТС Антипереполиенне SAR AR1.TSP , Запомнить указатель стека В этом примере ячейка с адресом BkBegin используется для записи элементов стека, а ячейка с адресом BkEnd не используется. 7.17 Подпрограммы Если в разных местах алгоритма приходится выполнять одно и го же действие, например, вычисление функции при различных значениях аргумента, то реализацию этого действия целесообразно описать в виде подпрограммы В том случае, если возникает необходимость в вычислении функции, осуществляется вызов подпрараммы Вызов подпрограммы нарушает ct'ieci венный порядок исполнения команд. Из точки вызова управление передается первой команде подпрограммы, затем выполняются команды подпрограммы, а по ее завершению упревление обратно передается в точку вызова Вызов подпрограммы выполняется с помощью команд CALL и CALA. Команда CALL передает управление лоднро)рамме с заданным именем, которое находится в поле метки первой команды подпрограммы Команда CALA передает управление по адресу, находящемуся в аккумуляторе. При выполнении подпрограммы текущее содержимое PC (адрес возврата) загружается в аппаратный стек, а в счетчик команд I’C загружается либо адрес, связанный с именем подпрограммы (команда CALL), либо содержимое младшего слова аккумулятора (команда CALA) Заключительной командой подпрограммы должна быть команда RET, которая извлекает адрес возврата из стека и перелает его в I’C Следовательно, теперь будет выполняться команда, находящаяся в главкой программе за командой CALL/CALA На рис 7 19 показана схема взаимодействия основной программы и подпрограммы Внутри вызванной подпрограммы может быть вызов следующей подпрограммы и т.д Это со- ответствует вложению подпрограмм Аппаратный стек процессора позволяет реализовать до восьми вложенных вызовов подпрограмм Применение подпрограмм требует временного запоминания состояния основной программы Запомнить содержимое регистров основной программы можно в начале вызываемой подпрограммы После выполнения подпрограммы восстанавливают содержимое регистров основной программы.
ЦПОС с фиксированной пятой семейства TMS310C2» JJ5 Рис 7 19. Взаимодействие основной программы и подпрограммы Часто для временного запоминания состояния основной про- граммы используют аппаратный или программный стек. При вызове подпрограммы необходимо временно запоминать содержимое тех регистров, которые будут использоваться подпрограммой Например, если подпрограмма SUBR использует регистры ARP. AR1 и АСС. то она должна сохранять и восстанавливать их SUBR LARP AR2 . AR2 указатель программного стека SST ; Запоминание ARP (STO) SAR AR[,'+ , Запоминание ARI SACH ; Запоминание ACCH SACL 1 ; Запоминание ACCL Текст подпрограммы MAR Возврат указателя ZALS Восстановление ACCL ADDH Восстаноалеиие АССН LAR ARI.*- ; Восстаноалеиие ARI LST ’ RET , Восстановление ARB (ST0) Здесь регистр AR2 содержит указатель на верхушку программного стека. Отметим, что из-за особенностей работы со стеком восстаноалеиие выполняется в обратном порядке. Команда CALA передаст управление по адресу, вычисляемому в ак- кумуляторе. Это позволяет использовать таблицу адресов подпрограмм и передавать управление различным подпрограммам из одной точки программы
Глам 7 Память nporpaoi 2IX Рнс.7.20 Таблица адресов Таблица адресок, числи элементов в которой равно числу вызываемых подпрограмм, раз- мещается в фиксированной области памяти программ (рис .7 20) Элементами таблицы являются начальные адреса со- ответствующих подпрограмм В аккумулятор загружается базо- вый адрес таблицы TBL. после чего к нему добавляется номер строки таблицы, определяющий вызов конкретной подпрограм- мы. Полученная сумма исполь- зуется в качестве адреса памяти программ, по которому в аккуму- лятор считывается соответствую- щая строка таблицы Команда вы- зова CALA включает в верхушку стека адрес возврата и передает управле- ние по адресу, находящемуся в аккумуляторе. Рассмотрим пример. Пусть требуется вычислить одну из следующих функций fl)(x),fl(x), /к(х) В качестве исходных данных задаются значения аргумента х и номер t функции, подлежащей вычислению Пусть таблица адресов содержит адреса FO, Fl. FK подпрограмм, вычисляющих функции/ад,/7(х/ . Jii(x) Тогда задача может быть решена с помощью следующею фрагмента программы: LALK TBL , Загрузить в ACC базовый адрес ADD 1 ; Добавить номер функции (селектор) TBLR TEMP : (TBL + !)-> TEMP [.AC TEMP , Загрузка адреса TEMP АСС CALA ; Вызов соответствующей подпро)раммы 7.18 Обработка прерываний При поступлении запроса прерывания устанавливается бит регистра признаков прерываний (IFR). Если соответствующий бит регистра маски прерываний (IMR) установлен в единицу и прерывания разрешены (1NTM=O), то выполняется обработка прерывания. После загрузки адреса подпрограммы обработки прерываний в программный счетчик, прсры-
ЦПОС с фиксированной платой семейств» TMS3Z0C1» J17 вания запрещаются (INTM=I) и управление передается программе обра- ботки прерываний, которая при необходимости может разрешить преры- вания 7.18.1 Сохранение контекста Перед началом обслуживания прерывания программа обработки прерываний должна сохранить состояние прерванной программы, а по- сле окончания обслуживания - восстановить состояние Данные дейст- вия аналогичны тем, которые выполняются при вызове подпрограмм При ттом можно выполнять полное или частичное сохранение контекста пре- рванной программы. Это зависит от тех действий, которые необходимо вы- полнить для обслуживания прорыва нал. В процессоре программный счстчнк автоматически сохранился в алпарапюм стеке. Поэтому в программном стеке обычно сохраняют содержимое регистров состояний (ST0 и STI), аккумулятора (ACCH.ACCL), регистра произведения (PR), регистра временного хранения (Т), всех восьми регистров аппаратного стека, вспомогательных регистров (AR0-AR6) Седьмой вспомогательный регистр используется в качестве указателя программного стека Во время сохранения или восстановления контекста все прерывания должны быть запрещены Ранее при рассмотрении подпрограмм были рассмотрены примеры сохранения н восстановления регистра состояний, аккумулятора, вспомогательных регистров. Здесь рассмотрим особенности сохранения и восстановлен ил Р- и Т-регистров, аппаратного стека Так как команды SPH и SPI. обеспечивают запоминание старшего н младшего слова P-регистра с возможностью сдвига, то перед запоминанием необходимо записать в поле РМ роистра ST1 ноль. При этом регистр STI должен быть сохранен раньше, чем будет выполнено это действие ISR LARP AR7 , AR7 указатель стека SSTI .сохранение STI SPM 0 , 0 --> РМ SPH •+ ,Запоминание PH SPL •i ,Запоминание PL Некоторую особенность имеет сохранение Т-регнстра, гак как процессор не имеет специальных команд, обеспечивающих эту операцию Поэтому содержимое T-регистра умножается на I и передается в Р-ре-
ни Глава 7 гистр, а затем сохраняется младшее слово Р-регисгра, равное содер- жимому Т-регистра: MPYK [ . (Т)х|->Р SPL *+ L Запомнить Т-регистр Запоминание содержимого аппаратного стека выполняют в цикле, используя команду POPD: RPTK 7 POPD •+ После завершения обслуживания прерывания выполняют восстановление состоянии прерванной программы. Из-за особенностей стека это восстановление осуществляется строго в обратном порядке Содержимое аппаратного стека восстанавливают командами: RPTK 7 PSHD •- Восстановление Р и Т-регнстров имеет особенность, обусловленную отсутствием в системе команд процессора команды загрузки Р-регнстра Поэтому загрузка P-регистра выполняется через Т-регистр: • восстановление Р-регнстра MAR *- , Пропустить Т-регистр LT *+ . Загрузить в Т-регистр. сохр.значение Р-регисгра MPYK [ , (Т) х [ —> PL. Загрузка Р-регисгра * восстановление Т-регисгра LT * ; Загрузка Т-регисгра MAR •- , Пропуск Р-регнстра LSTI * ; Восстановить STI. AR7 указывает на первую свободную ячейку ЕПЧТ , Разрешить прерывания RET : Возврат в прерванную программу Для того чтобы выполнить рассмотренную про)рамму, необходимо при поступлении запроса на обслуживание прерывания передать управление на метку ISR Запросы прерываний в процессоре обрабатываются в соответствии с их приоритетами. Иногда необходимо внутри программы обработки
ЦПОС с фиксированной «пятой сгмейстм TMSJ20C11 11» прерываний обрабатывать другое прерывание Например, при обработке редких запросов прерываний, требующих длительного обслуживания, целесообразно разрешить нх прерывание по запросам, которые случаются чаще и требует небольшого времени обслуживания. Пусть в программе обработки прерывания 1NTI необходимо разрешить обслуживание прерывания INT2 Для этого следует моди- фицировать регистр маски прерываний 1MR, запретив все прерывания, кроме INT2 Это потребует предварительного сохранения содержимого IMR, чтобы не нарушить вычислительный процесс основной программы. В приведенном фрагменте программы обслуживания прерывания INTI, регистр AR7 используется в качестве указателя мрхушкн стека: ISSR LARP AR7 . AR7 указатель стека SST1 • + ; Запомнить STI SST + ; Запомнить STO LDPK 0 ; Загрузить в указатель страниц 0 PSHD IMR ; Сохранить IMR в аппаратном стеке LACK 0004 h ; Маска для INT2 AND IMR .(АСС) AND(lMR)-> АСС SACL IMR ; АСС --> 1MR EINT ; Разрешить прерывания команды обслуживания прерывания INTI DINT , Запрет всех прерываний LDPK 0 POPD IMR ; Восстановить IMR LARP AR7 ; AR7 указатель стека MAR . Возврат указателя LST . Восстановление ST0 LSTI ; Восстановление ST 1 EINT ; Разрешить прерывания RET ; Возврат в прерванную программу Приведенная программа может быть выполнена, если в ячейку 4 памяти программ поместить команду передачи управления на метку 1SSR 7-18.3 Прерывание таймера Таймер процессора содержит регистры TIM и PRD, адресуемые как ячейки нулевой страницы памяти данных с адресами 2 и 3 Содержимое
Глава 7 регистра TIM связано с количеством периодов сигнала CLKOUT: поступивших на вход таймера с момента последнего прерывания TINT ил RS. При поступлении каждого импульса сигнала CLKOUT1 содержимо TIM уменьшается на единицу Начальное значение, помещаемое в регнет TIM, хранится в регистре периода PRD Когда содержимое регистра TIN станет равным нулю, формируется прерывание TINT и в следующем лернс де сигнала CLKOUT в TIM загружается начальное значение из PRC Отсюда следует, что прерывание TINT формируется через интервал! времени, равные [(PRD) < I) xTclkoul! Обычно прерывание TINT используют для получения отсчет© обрабатываемого входного сигнала, поступающего на вход ЦПОС В это» случае содержимое PRD и частота взятия отсчетов f л сигнала связаш соотношением: (PRD)« [fclkoutl//j] -1, ntefclkoutl - частота следования импульсов сигнала С1.КО1ГП (fclkoutl fclkin/4); [.] - операция взятия целой части Пусть - 10 КГц и fclkin ~ 4( МГц. тогда (PRD)-999 Ниже приведен фрагмент программы установки таймера для форми рован и я заданного значения частоты прерываний TINT. LACK 999 LDPK 0 , DP-0 SACL 3b : Загрузить регистр периода LACK 8h ; [ООО —> ACC OR 4h SACL 4h . 1 -> IMR(4) EINT . Разрешить прерывания 7.18.4 Иниинввлизациа процессора по прерыванию Обычно перед началом выполнения алгоритмов цифровой обработки сигналов требуется выполнить предварительную настройку (ини- циализацию) процессора Общая инициализация осуществляется при подаче на вход процессора сигнала сброс RS, который является немаскируемым прерыванием с наивысшим приоршетом, те такое прерывание нельзя запретить Сигнал RS обеспечивает установку счетчика команд PC в нулевое состояние н тем самым управление передается команде, находящейся в нулевой ячейке Обычно в пой ячейке помещают команду безусловного перехода к программе инициализации
ЦПОС с фиксированной и пятой сшей ста a TM&320CZ1 341 После сброса процессор должен быть настроен на выполнение функций, определяемых требованиями. предъявляемыми системой цифровой обреботки При ттом необходимо учитывать, что сигнал RS вы- полняет следующие установки регистр STO: О -> OV; I -> INTM регистр ST1: О -» CNF; 1 -» SXM; I -» С. I -» НМ; J -» FSM; I -» XF; 0 -» FO, 0 -» ТХМ; 0 -» PM регистр GREG: 0 -> GREG счетчик циклов RPTC: 0 -> RPTC таймер TIM: FFFFh -» TIM регистр PRD: FFFFh -» PRD регистр IFR. 0 -> IFR Значения полей OVM. ARP и DP регистра состояний STO и полей ARB. ТС регистра состояний ST1 не устанавливаются сигналом сброс Кроме этого, не определенным остается содержимое регистра IMR и ОЗУ. Поэтому после сброса необходимо выполнить инициализацию тех полей ST0 и ST1, которые ие получили значений, а также задать структуру прерываний, определив содержимое IMR. Помимо этого, обнуляют содержимое внутреннего ОЗУ. аккумулятора и меняют значения регистров, установленные сигналом RS, если они нс отвечают заданным требованиям Ниже приведен фрагмент программы инициализации процессоре: INIT SOVM ; Установить бит режима переполнения LDPK 0 ; DP указывает на страницу 0 LARP 5 , (ARP)-5 LACK 3Fh . Загрузить аккумулятор константой 3F SACL 4 ; Разрешить все прсрыалння.(АСС) -> IMR * заполнение внутренней памяти нулями ZAC , Обнулить аккумулятор LARK AR5,60h ; Загрузить в AR5 адрес начала В2 RPTK 31 SACL *• ; Записать 0 во все ячейки В2 LRLK AR5,2OOh ; Загрузить в AR5 адрес начала ВО RPTK 255 SACL •- , Записать 0 во все ячейки ВО LRLK AR5,3OOh . Загрузить в AR5 адрес начала В| RPTK 255 SACL ’+ , Записать 0 во все ячейки HI EINT , Разрешить вес прерывания
м Глава 1 Приведенный фрагмент программы разрешает вес прерывания 'Зто достигается записью во все разряды регистра 1MR единиц и установкой бита INTM в ноль (команда E1NT) После выполнения протраммы установи и ваетс я режим переполнения, указатель страниц DP обнуляется, в качестве текущего вспомогательного регистра выбирается регистр AR5, а внутреннее ОЗУ (блоки НО, Bl. В2) заполняется нулями Приведенная программа может быть выполнена, если в ячейку 0 памяти программ поместить команду передачи управления на метку INIT 7.19 Прикладные программы 7. [9.1 Сложение и вычитание Выполнение операции сложения н вычитания 16-разрядных чисел (однословных чисел) не вызывает затруднений, так как процессор имеет со- ответствующие команды - ADD н SUB В этих командах одним из операндов является содержимое аккумулятора , а другим - содержимое адресуемой ячейки памяти Комвлды ADD и SUB устанавливают биты переполнения OV и переноса С Сложение многословных чисел начинается со сложения младших слов, затем складываются слсдущнс слова чисел с учетом переноса от предыдущего сложения и т.д В приведенной ниже подпрограмме сложения двух 64-разрядных чисел предполагается . что слагаемые размешаются в области памяти с начальным адресом . определяемым содержимым регистра ARI (например, (AR 1)-105) Результат вычислений помешается в область памяти . определяемую содержимым регистра AR2 (например, (AR2)= I И). Каждое слагаемое и результат представлены в памяти четырь- мя |6-раэрялнымн словами. ADD64 LARP ARI ;(ARl )=IO5 ZAC a , 0-»ACC LAC * 1- ; ACC=00AI. (ARD-106 ADDH , ACC"A2A 1, (ARIhl07 ADDS • J, , ACC=A2A1 -GOBI,(AR 1 h 108 ADDH •+ , ACC- A2 A1 + B2 В1, (AR 1 )= 109 LARP AR2 . (AR2y=ll4 SACL . ACC|.-»I|4,(AR2)=I|5 SACH ,ACCH-»115, (AR2)-116 LARP ARI ZAC * ,0-»ACC LAC •l ; ACC-00 A3, (AR I)-110
ЦПОС с фиксированной плитой семейства TMS32OC21 141 ADDH ; ACC=A4A3, (ARI)-l 11 ADDC + ; ACC=A4 A3 -00H3-C,(ARl)-112 ADDH , ACC-A4 A34 B4B3+C, (ARI )=II3 LARP AR 2 ;(AR2)-H6 SACL * T ;ACCL->llfe, (AR2)-1I7 SACH •+ ,ACCH->117.(AR2}-| 18 RET В программе сначала обнуляется аккумулятор и загружается младшсс слово слагаемого А. Команда ADDH помешает в аккумулятор второе слово слагаемого А и обнуляет бит переноса После этого содержимое аккумуля- тора складывается с двумя младшими словами слагаемого В (команды ADDS, ADDH .). Команды LARP.SACH.SACL обеспечивают сохранение двух младших слов результата по адресу, хранящемуся в AR2 Затем вы- полняется сложение старших слов слагаемых А и В При этом к полученной сумме добавляется значение бита переноса (команда ADDC) Окончатель- ный результат помещается в ячейки определяемые содержимым AR2 Вычитание многословных чисел выполняется аналогично При ном следует использовать команду вычитания с заемом SUDD 7.19.2 Умножение н накопление значений Процессор содержит аппаратный умножитель, который выполняет умножение 16-разрядных чисел и формируо 32-разрядный результат Опе- рация умножения может выполняться с помощью команд MPY и MPYU Команды осуществляют умножение операндов, находящихся в Т регистре и в ячейке адресуемой памяти. Команда MPYU интерпретирует операнды как беззнаковые числа и позволяет при необходимости организовать перемно- жение “длинных" чисел Произведение, получаемое с помощью указанных команд, помещается в Р регистр. Таким образом, перед выполнением опе- рации умножения требуется загрузить в Т-регистр первый операнд, а после выполнения - сохранить значение Р регистра LT ОР1 .ЗагрузнтьОР! в Т регистр MPY ОР2 .Умножить OPI иа ОР2 SPI. PRL .Сохранить младшее слово но адресу PR I. SPH PRH . Сохранить старшее слово адресу PRH Наряду с командами умножения, процессор имеет группу команд, выполняющих умножение и накопление произведений в аккумуляторе (МАС , MPYA). Комапдл MPYA осуществляет сложение содержимого Р ре- гистра с аккумулятором, а затем перемножает операнды, находящиеся в Т
регистре и в адресуемой ячейке намят данных. Команда МАС отличается гем, что перемножает операнды, находящиеся в намят программ и памяти данных При этом в качестве памяти программ используется блок ВО . а в качестве намят данных - блоки BI или В2. Обычно кома! 1,1а МАС нахо- дится в пределах области действия команды RPTK, что позволяет выпол- нять сс за один цикл: LARP AR2 LRLK AR2.3OOh Загрузить в AR2 начальный адрес CNFP , ВО - память программ ZAC , Обнулить аккумулятор MPYK 0 ; Обнулить Р регистр RPTK 255 . 256 циклов MAC OFFOOh.*+ .Умножить н сложить (ВО)х(В 1 )1 АСС .(AR2)i l->AR2 APAC , Добавить последнее произведение I) приведенном примере вычисляется сумма произведений содержи- мою соответствующих ячеек блоков ВО и В) Адресация выполняется с по- мощью счетчика команд, который инкрементируется автоматически, и ре- гистра-указателя AR2, инкрементируемою в команде МАС Команда CNFP распределяет блок ВО на памя1ь нротрамм Действия, выполняемые командой МАС, можно реализовать парой команд LTA и MPY LTA выполняет за|рузку Т-регистра и суммирование Р регистра с аккумулятором, а команда MPY перемножает содержимого Г регистра с содержимым адресуемой ячейки памяти, [[о времени выполне- ния команда МАС эффектавиее пары команд LTA-MPY, если число по- вторений более восьми При малом числе повторений лучше использовать пару команд I.TA-MPY. ZAC ;Обнулнть аккумулятор MPYK 0 ;Обнулить P регистр LTA XI загрузить XI в Т регистр. (АСС)-0->АСС MPY Yl Умножить XIxYl->Р LTA X2 ;3ajpyjHTb Х2 вТ регистр, XIxYl ->АСС MPY Y2 .Умножить X2xY2->P LTA X3 ,Загрузить ХЗ в Т регистр, ; XIxYl । X2xY2->ACC MPY Y3 .Умножить X3xY3->P APAC .XIxYl -X2xY2 +X3xY3->ACC
ЦПОС с фиксированной запятой семейств! TMS320C2» Процессор позволяет выполнять не только суммирование произведе- ний . но и вычитание . Для этого могут использоваться команды MPYS. LTS-MPY. SPAC Но многих задачах цифровой обработки сигналов требуется вычис- лять сумму или разность квадратов. Эти операции аффективно реализуют- ся соответственно командами SQRA и SQRS: LARP ARI LRLK ARI,300h , Загрузить в ARI начальный адрес ZAC ; Обнулить аккумулятор MPYK 0 . Обнулить Р регистр RPTK 19 ,20 циклов SQRA "+ ;(АСС)+Х|"2->АСС APAC ,(АСС)+Х2О‘'2->АСС 7.19.3 Операции над числами с плавающей запитой Система команд процессора включает инструкции, которые могут ис- пользоваться для выполнения оперений пал числами с плавающей запятой NORM, I.ACT. ADDT, SUBT. Команда нормализации NORM может приме- няться дтя преобразования чисел из формата с фиксированной запятой в формат с плавающей запятой. LACT применяется для выполнения обрат- ных преобразований Сложение и вычитание чисел с плавающей занятой выполняется при по моши команд ADDT и SUBT Рассмотрим пример подпротраммы умножения чисел. представлен- ных в формате с плавающей запятой Будем полатать . что мантисса числа предс|авлена 16-разрядным дробным числом с фиксированной точкой (рис. 1 39), а порядок является целым числом. При умножении двух чисел с плавающей запятой результат получается суммированием порядков чисел и перемножением их маитнсс. Пусть перемножаются два числа /4 = МА 2'1 нВ- МВ 2гв , где МА н МВ- соответственно мантиссы чисел А и В. РА н РВ соответственно порядки чисел А и В. Тогда результат будет равен С •= МЛ . МЯ • 2А,:Л Так как мантиссы МА и МВ считаются нормализованными, то для нормализации мантиссы результата его необходимо сдвинуть на С»ит влево, выполнив после этого необходимую коррекцию порядка результата (коман. дя NORM •-):
146 Глава 7 'подпрограмма умножения чисел с плавающей запяюй MULT LAC PA ;3агрузить порядок числа A ADD PB .Сложить с порядком чиста В SACL 1Г Сохранить порядок результата LT MA Загрузить в Т регистр мантиссу А MPY MB ; Умножить на мантиссу В РАС .Поместить произведение в АСС SEL .Удаление лишнего знаков.бита LARP AR) ;ARl текущий указатель LAR ARI.PC ;3а1руэить порядок результата NORM ♦ . ;Нормализац. АСС , коррекция PC SACH MC Сохранить мантиссу результата SAR ARI.PC Сохранить порядок RET 1 |ри работе с числами в форме с плавающей запятой иногда требуется их преобразование в форму с фиксированной занятой Указанную опера- цию удобно выполнять с помощью команды LACT Ниже приведен пример подпрограммы денормализацни числа с плавающей точкой Предполагает- ся , что мантисса находится в аккумуляторе , а порадок в регистре AR2 'Подпрограмма денормализацни числа с плавающей запятой DEN LARP LRLK SAR SACH [.AC BZ LT LACT RET EX I MAR ZALH RET AR] ;АК)-тскущий указатель ARl,200h ; AR2,*+ ;C ox ранить порядок по адресу 200 * - ;Сохран мантиссу но адресу 201 ' Загрузить в АСС порядок EX 1 ;Если порядок равен 0. то переход ,Поместить порядок в Т регистр • ; Мантисса ' 2"(Т[3-О))->АСС ; В озврат '-г .Установить указат на мантиссу * ;Поместитъ результат в АСС Даппал подпрограмма может использоваться в том случае если порядок за- нимает в памяти не более 4-х бит Это связано с особенностями команды LACT.
ЦПОС г фиксированной запятой ctMgfirr— TMSMOOx Ы? Рассмотренные примеры обработки чисел с плавающей занятой яв- ляются простейшими и имеют ряд ограничений Перемножаемые числа должны быть одною знака, а порядок положительным Имеются 1акжс О1раннчсиня на длину мантиссы и порядка Для общепринятых операций с числами в форме с плавающей запятой разработаны специальные библио- теки, снимающие указанные ограничения. 7.19.4 Реализация алгоритмов цифровой фильтрации Для вычисления одного выходного отсчета у[п] нерекурсивного циф- рового фильтра (НРФ) в соответствии с (I 212) необходимо вычислить V раз произведение б[А] х[л -/с] Вычисление следующего отсчета выход- ною сигнала yf”) требует перемещения входной последовательности х[н] вдоль элементов задержки (рис I 34) Это соответствует “скольжению1' отсчетов входного сигнала относительно отсчетов импульсной характеристики Простейшая реализация НРФ основана на циклическом применении команды MACD (умножение и накопление с пересылкой дан- ных): RPTK N-I MACD COEFB,*- В этом случае коэффициенты фильтра A[JtJ должны располагаться в памяти программ (СОЕРВ-начальцый адрас этой области памяти) Для этих целей может использоваться встроенное ПЗУЛШЗУ, ОЗУ НО. нлн внешнее ОЗУ Отсчеты входного сигнала х[п] должны располагаться во внутрикристаль- ном ОЗУ (блоки ЦО и В1), иначе пересылка данных не выполняется. Если коэффициенты фильтра хранятся во внешнем ОЗУ нлн во внутреннем ПЗУ/ППЗУ, то для хранения отсчетов входною сигнала можно использо- вать весь объём внутреннего ОЗУ Эго позволяет реализовать нерекурсив- ные фильтры. импульсная характеристика содержит 512 отсчетов Если память, в которой хранятся коэффициенты А|£] фильтра, не вно- сит задержек, то команда MACD обрабатывает один отсчет импульсной ха- рактеристики фильтрата 100 нс Ниже приведен фрагмент программы, реа- лизующей нерекурсивный фильтр с 256 коэффициентами, хранящимися в блоке ОЗУ ВО, распределенном на адресное пространство памти программ Вспомогательный регистр ARI к моменту окончания выполнения программы содержит адрес текущего входного отсчета CNFP ^Распределить ВО на память прорамм LARP ARI ^ARI-текущий указатель LRLK ARI.3FH) Конечный адрес блока III
не Глава 7 MPYK 0 .Обнулить P регистр ZAC ;Обнулить аккумулятор RPTK 255 ,256 циклов MACD OFFOOh.'- ;Сумма произведений b[k]*x[n-k) APAC .Добавить последнее пронзая Денис SACH Y Сохранить выходной отсчет в Y При практической реализации НРФ данный фрагмент программы по- вторяется для каждого нового отсчета входного сигнала, помещаемого в блок ОЗУ BI по адресу ОЗООК. Во время циклического выполнения команды MACD осуществляется последовательная пересылка отсчетов входного сигнала , хранящихся в блоке ВI. начиная со старших адресов Это соответ- стауег продвижению отсчетов х[л] вдоль элементов задержки (рис I 34) Начальное содержимое блока ОЗУ В1 оказывает алнянис на ход переходно- го процесса в фильтре. После заполнения всех ячеек блока BI соответст- вующими осчетами входного сигнала иа выходе фильтра будет установив- шийся режим. В том случае, если блок BI нс может быть использован, в программу приходится включать дополнительную команду BLKD , обеспечивающую необходимое перемещение отсчетов х[л] вдоль элементов задержки По- скольку такую команду приходится выполнять циклически дая каждого нт входных отсчетов, то время выполнения программы нерекурсивной фильт- рации значительно увеличивается Если входные отсчеты разместить в кольцевом буфере и перемещать нс значения х[и] , а соответствующие указатели, то указанный недостаток можно устранить. Ниже приведена программа нерекурсивной фильтрации, в которой дая хранения значений входного сигнала используются кольце- вой буфер с бит-ннверсной адресацией (см § 7 16 2) SEGM SCI bss bss 128 BUFFER .32 Y.l .длина фильтруемого участка участок памяти под буфер ;выходная переменная COEFF seel "coefficients" , сегмент памяти программ word 423 Ih «для размещения коэф фильтра word 6F34h ;и т д 32 коэффициента EN1T text LARK LRLK ARO.lOh JOOOO->ARO ARI.BUFFER .ARI ссылается на начало . буфера
ЦПОС с фиксирований 1»пятой семейств* TMS32OC21 IJ9 LRLK LARP LDP FIRFILT IN MPYK ZAC RPTK MAC APAC SACH OUT MAR Sanz AR2.SEGM AR] Y '.PAI Oh 31 COEFF/BRO+ Y.l Y.PA2 •BR0-.AR2 FIRFILT. *-.AR I ЛР2-счетчик вх отсчетов .ARI текущий указатель ,DP указ на текущую стр .Ввод вх. отсчета .Обнулить Р регистр .Обнулить аккумулятор , 32 цикла ,b(k]*x[n-k]+(ACC)->ACC Добавить послед пронзв Сохранить результат .Вывести результат .Указатель и азат Перейти на FIRHLT В программе с помощью директивы ассемблера bss выделяется па- мять под буфер и выходную переменную Y По умолчанию редактор связей разместит сегмент bss в памяти данных. Инициализированный именован- ный сегмент "сое Нс i ent s" по умолчанию размещается в памяти программ Директива word размещает 16-разрядные коэффициенты фильтра в ячейки памяти программ, выделенные текущему сегменту Доступ к этой области памяти осуществляется через метку COEFF В сегменте, начинающемся директивой text, приведен текст про- граммы Часть программы от метин INIT до метки FIRFILT обеспечивает необходимую инициализацию вспомогательных регистров и указателя страниц В соответстаии с принципом организации кольцевого буфере . ис- пользующего биг-ннверсную адресацию, в регистр AR0 помещается значе- ние , равное половине длины буфера, т е. 16 (КЮООЬ) Регистр AR I настраи- вается таким образом, чтобы указывать на начало буфера D регистр AR2 записывается константа, определяющая длину реализации фильтруемого сигнала н соотиетсвенно число циклов, которые необходимо выполнить, чтобы вычислить все значения выходного сигнала Y. Команды, реализующие непосредственно алгоритм нерекурсивной фильтрации и действия по управлению кольцевым буфером, записаны по- сле метки FIRFILT Свертка входной последовательности н последова- тельности коэффициентов фильтра вычисляется с помощью команды МАС При этом значения отсчетов входной последовательности х|п| извлекаются из буфера в биг-ннверспом порядке. Эго предполагает запись значений х[л] в буфер в гаком же порядке Ввод значений в буфер выполняется командой IN Ячейка буфера, в которую будет записано значение .ф1|, определяется указателем ARL Благодаря биг-ин версией адресации этот указатель всегда имеет значения в пределах выделенного буфера памяти Каждый раз вновь вводимое значение х(л] замещает в буфере самое раннее значение, которое было в нем сохранено. Для этого, после циклического выполнения команды
J 50 Глава 7 МАС и использования всех значений буфера, выполняется возврат указате- ля ARI на последнее использованное значение буфера Ото значение явля- ется самым ранним значением, сохранённым в буфере Указанный возврат выполняется командой MAR *BR0- , учитывающей бит-инверсную упоря- доченность буфера Посте выполнения возврата указателя в команде BANZ проверяется условие завершения цикла (AR2)*0. Если условие не выполня- ется, то происходит переход на метку F1RFILT и команда IN вводит из пор- та PAI очередное Значение х[п] и помещает его по адресу, на который ука- зывает ARI. Вычисленные значения выходного сигнала yfn] выводятся с помошью команды OUT через порт РА2. Если сравнить ядро программы нерекурсивной фильтрации, исполь- зующей кольцевой буфер, с предыдущим вариантом программы, базирую- щейся на применении команды MACD, то видно , что применение кольце- вого буфера добавило лишь одну лишнюю команду по управлению буфе- ром (MAR). Важным Преимуществом последнего варианта программы яв- ляется возможность реализации фильтров с большим числом коэффициен- тов (более 512). Однако при этом приходится использовать более медлен- ную внешнюю память. Прн реализации рекурсивных фильтров (РФ) требуются меньшие объемы памяти С целью уменьшения шумов квантования РФ реализуют в виде последовательно соединенных биквадратных блоков в канонической форме ([ 2J7>-( 1-218). Для биквадратного блока уравнения (1.2]7)-(] 218) можно записать в виде = jr[nj- a[l] -u(n - IJ-д[2] и(л - 2), Я»] = 6Ю) и[п] + 5[1)' и[п - 1] + 6[2] ирг - 2] Введение вспомогательной последовательности u[n] позволяет со- кратить объем требуемой памяти по сравнению с прямой формой реализа- цией РФ Приведенные уравнения биквадратного РФ можно реализовать либо с помошью команды MACD, либо с помошью пары команд LTD- MPY При реализации РФ последний вариант предпоетительпее (см $ 7.19.2 ). Рассмотрим фрапиент программы, реализующей биквадратный блок РФ Будем полагать, что текущий отсчет входной последовательности хра- нится в ячейке с адресом X, а выходной отсчет в ячейке с адресом Y Ко- эффициенты фильтра располагаются соответственно в ячейках памяти дан- ных Al. А2, ВО. В]. В2 Отсчеты вспомогательной последовательности хранятся соответственно в ячеках UN, UNI, UN2 Пересылка данных UN->UN1 ->UN2 осуществляется при выполнении команды LTD Коэффи- циенты А1 и А2 хранятся в дополнительном коле Ого позволяет заменить операции вычитания операциями сложения
ЦПОС с фиксированной запятой семейства TMS320€x 211 LAC X.I5 .Загрузить в ACC x(n]’*(2** 15) I.T UNI ;u|n-l]->T MPY Al ,a(l]*u[n-I] LTA UN2 ;a[l ]"u[n-l ]*x[n], u|n-2]->T MPY A2 ,a[2]*u(n-2) APAC , a(2]*u|n-2]+a[l]*u|n-l |+x[n)-> ACC, SACH UN, 1 ,u|n]-( a[2)aii(n-2]-a(l]»u[n-l)*x(n])'2 ZAC Обнулить ACC MPY B2 ;b[2]-aln-2] LTD UNI ;b|2]*uln-2]->ACC,u|n-l]->T MPY Bl .b[l|'u[n-l) 1 I’D UN . b( 1 J*u[n-I ]+ b[2]*u[n-2]-> ACC,u[n]->T MPY 130 .bpj'ufn] APAC ; b[0]*u[n]* b|l]*u[n-1]< b[2]*u[n-2]->ACC SACH Y.l , (ACC)*2, ACCH->Y Программа вычисляет дня каждого входного отсчета х(л] выходной отсчет >(л] Для получения последовательности отсчетов Яп1 необходимо периодически повторять вычисления. Поля сдвигов, указанные в командах LAC н SACH, предназначены для масштабирования и удаления лишнего знакового бита 7.19.5 Реализация алгоритма Ы1Ф Рассмотрим пример программы, реализующей базовую операцию БПФ в соответствии с уравнениями (I 263) и (I 264). Будем полагать, что все входные и выходные значения представлены в 16-разрядном формате в виде дробных чисел с фиксированной запятой, которая следует сразу после знакового бита Соответственно для представления значений без учета зна- ка отводится 15 разрядов В прорамме выполняется масштабирование с коэффициентом 2 При этом полагается, что значения поворачивающего множителя Н'* уже мас- штабированы, те. (У* = (I / 2) [cos(2nil / А/) - /sin(2n*/W)|=(|/2)-[cos(r)-^sin(x)] Деистаительнал и мнимая части W'*- запоминаются соответственно в программных переменных WR и W1 Переменные PR.P1,QR,QI используют- ся как для хранения соотвстстауюших значений входных переменных вы- ражений (1.263) и (1.264), так и для хранения результирующих значений этих выражений Иными словами, при реализации операции "бабочка” для
хранения входных и выходных значений используются одни и тс же ячейки памяти. Программа оформлена в виде макроса, который можно вызывать при различных значениях параметров-переменных PR.PI,QR.QJ,WR,WI В теле макроса указанные параметры выделяются с двух сторон двоеточием Макрос состоят из четырех блоков D первом блоке вычисляется дей- ствительная часть произведения (J, IP v . которая с учетом масштаби- рующего коэффициента равна (Н2) [(/Я cos(.r) + О! sin(x)] Полученное значение сохраняется в переменной QR, гак как текущее значение QR бо- лее не требуется для дальнейших вычислений. BUTFLY SMACRO PR,PI,QR,QI,WR,WI а "WR4 l/2)*cos(x), Wl=(|/2)‘sin(x) ‘Вычисление (QR‘WR+Q]*W1), сохранение результата в QR I.T :QR , Загрузи ть QR в Т-регистр MPY WR ;(l/2)"QR‘cos(x) LTP QI .(|/2)"QR'cos(x)->ACC.QI->T MPY :Wf ,(|/2)‘Ql‘sm(x)->P АРАС ,(l/2)‘|QR‘cos(x)+Ql‘sin(x)]->ACC LT :QR: ;Сохраннть QR в T-регистре SACK QR ^^‘[QR'costx^QrsmfxJJ-^QR • Bbi4HcneHHe(QI*WR-QR*Wl), сохранение результата в QI ZAC ; Обнулить ACC MPY :WI: ,(|/2)‘QR"sin(x) SPAC ;-(l/2)‘QR‘sin(x)->ACC LT :Q1; ;QI->T MPY WR ,(l/2)*Ql"cos(x)->P APAC ;(]/2)’|QI’cos(x)-QR’sin(x)]->ACC SACH :Ql: ;(l/2)‘|Q|‘cos(x)-QR‘sm(x))->QI ‘Вычисление действительных частей Pm+! н Qm ь I /сохранение в PR и QR LAC PR .14 ,(1/4)‘PR->ACC ADD :QR:.|5 ;(I/4)‘(PRt |QR"cos(x)+QI’sin(x)])-»ACC SACI1 PR: ,1 X l/2)‘(PR HQR‘cos(x) । QI‘sm(x)])->PR SUBH QR: ;([/4)‘(pR-[QR‘cos(x)+QI‘sin(x)])->ACC SACH QR .1 ;(l/2)‘(PR-[QR‘cos(x)TQ|‘sm(x)])->QR
ЦПОС с фиксированной тлпятой семейства TMS320C21 'Вычисление мнимых частей Pm-Ч и Qm+1, сохранение в PI и QI LAC :PI: ,14 ;(1/4)"P1-»ACC ADD :Q1: ,15 ;(1/4)*(PJ+[Ql*cos(x)-QR,sin(x)j)->ACC SACH PL ,1 ;(i/2)"(PI-iQI‘cos(x)-QR‘sin(x)])->PI SUBH :Q1: ,(1/4)*(P1-[Ql*cus(x)-QR*sin(x)])-> ACC SACH QI J ;()/2)*(P1-[QI‘cos(x)-QR*sin(x)J)-»Ql SEND Во втором блоке вычисляется масштабированное значение мнимой части произведения Q „ И' * , равное (I/2)-[О/ cos(j)-<?/f -sin(j)]. Вычисленное значение запоминается в переменной QI. В третьем блоке вычисляются действительные значения выходных переменных Pu,t н и обеспечивается деление полученных значений на 2. Здесь значение переменной PR сначала масштабируется с коэффици- ентом 4. Для этого значение PR сдвигается вправо на два разряда Данная операция выполняется при загрузке PR в аккумулятор. Сдвиг 16-разрядного двоичного слова вправо на два разряда соответствует ею размещению в 32- разрядном аккумуляторе с предварительным сдвигом слова влево на 14 разрядов (команда LAC PR, 14) После сдвига к значению PR добавляется действительная часть произведения (2 - х , хранящаяся в переменной QR , которая также масштабируется с коэффициентом 4. I Тоскольку в QR хранится значение действительной части (2 w ft' * уже масштабирован- ное с коэффициентом 2, то при добавлении QR к PR необходимо выполнить сдвиг двоичного значения QR вправо на один разряд. Для этого при вы- полнении команды сложения QR с содержимым 32-х разрядного аккумуля- тора выполняется эквивалентный сдвиг QR влево на 15 разрядов Старшее слово аккумулятора сдвигается влево на один разряд, чтобы получить зна- чение (И2) [/'К + [(2Д cos(.t) + (2/ sin(.r)]) т точно равное действительной части Р,,.,, н запоминается в переменной PR. Последний сдвиг осуществ- ляеется прн передаче значения из аккумулятора в переменную PR В акку- муляторе остается значение, масштабированное с коэффициентом 4 Для вычисления действительной части £2,,., из содержимого аккумулятора вы- читается значение, хранящееся в переменной QR , т е (1/4)[/<Н + [(2ЯсО5(л) + {_)! sin(J)J) - (1 /2)((2/?cos(j) + 01 Sinf.ij] - = (1 / 4 )[/*/( - [(2/?cos(x) + (2/ sin(x)))
Глам 7 Полученное значение запоминается в переменной QR В четвертом блохе по аналогичной схеме вычисляются значения мнимых частей н £Л(., Отметим . что все масштабирования выполняются сдвигающими уст- ройствами процессора и ис требуют дополнительных затрат времени Рассмотренный макрос BIJTFLY , реализует одну операцию "бабочка". При вычислении БПФ последовательности , имеющей длину N. макрос должен вызываться (Л/ /2)log} N раз В частности, при вычислении 8-точечного БПФ макрос должен вызываться двенадцать раз При этом входная последовательность х|п) должна быть упорядочена в соответствии с принципом бит-инверсной адресации. Ниже приведена программа, реали- зующая 8-точечное БПФ D программе значения исходной последователь- ности вводятся из порта РАО и размещаются в бит-ннверском порядке в блоке ВО При этом вводятся только действительные значения, которые размещаются от начала блока по четным адресам. Результаты выводятся через порт РА) в естественном порядке Вызовы макросов выполняются в соответствии с граф-схемой 8-точечного БПФ. изображенной па рис 121 Значения поворачивающих коэффициентов хранятся во внешней памяти данных, начинал с адреса OF4OOh 8-точечное БПФ с прореживанием по времени Распределение входных и выходных переменных X0R .SCI 0. Х01 sei I; XIR .SCI 2: XII .sei 3: X2R sei 4; X2I .sei 5. X7R .set 14. Х7[ sei 15. * Распределение значений поворачивающих коэффициентов W0R .set 16, W0I set 17. W1R set 18; W11 set 19, W2R set 20, W2I set 21; W3R set 22. W3I set 23,
ЦПОС с фмктировянной ) пятой еемействя T.VIS32OC2x 155 .text * Инициализация FFT8 CNFD SPM О SSXM LDPK 4 ’Ввод значений и сохранение в бит инверсном порядке LARK ARO,8 .Загрузить в ARO N/2 LRLK ARl,200h .Загрузить в AR адрес ВО LARP AR1 RPTK 7 PN "BRO+.PAO; Ввести веществ, значения х(п] LRLK AR 1,2I Oh .Загрузить в AR карее W0R RPTK 7 BLKD 0F400,*- ^Прочитать поворотные коэф "Первый этап БПФ BUTFLY X0R,X0I,X4R,X41. WOR.WOI BUTFLY X2R,X2I.X6R,X6I.W0R,W0I BUTFLY X1R,XI1,X5R,X5I,WOR,WOI BUTFLY X3R,X31.X7R,X7[ WOR.WOI "Второй этап БПФ BUTFLY XOR,XOI.X2R.X2I,WOR.WOI BUTFLY X4R X4I.X6R X6I.W2R.W2I BUTFLY X1R,XII,X3R,X3I,WOR WOI BUTFLY X5R.X5I,X7R,X7[,W2R,W2I "Третий этап БПФ BUTFLY X0R.X0I.XIR.X1 [.WOR.WOI BUTFLY X4R.X4I.X5R.X5I WIR WJI BUTFLY X2R,X2I,X3R,X3I,W2R,W2I BUTFLY X6R,X6I.X7R,X7I,W3R,W3I "Вывод результатов в последовательной форме LRLK AR 1.200 RPTK 15 OUT •+.PAI RET Приведенную программу можно улучшить, если учесть то обстоя- тельство. что в некоторых случаях значения поворачивающего множителя равны I, либо -j. В этом случае не требуется умножение на поворачиваю- щий множитель. Кроме того, эффективность первого этапа БПФ можно по- высить. если применить БПФ по основанию 4, Соответствующий вариант программы приведен в [35]
Глава 8 ЦПОС С ПЛАВАЮЩЕЙ ЗАПЯТОЙ СЕМЕЙСТВА ADSP-21XXX 8.1 Обшая характеристика процессора ADSP-2106т Цифровой сигнальный процессор ADSP-2106х SHARC (Super Harvard Architecture (amputer) представляет собой высокопроизводительную 32-х разрядную однокристальную специализированную микро-ЭВМ с плаваю- щей запятой, предназначенную для использования в различных областях науки и техники для обработки ультразвуковых и звуковых сигналов, речи, радиотехнических сигналов, неподвижных и подвижных изображений. Про- цессор принадлежит к семейству цифровых сигнальных процессоров с пла- вающей запятой /4ZJ.V-21OOO, которые являются совместимыми вниз с ЦПОС семейства 16-разрядных процессоров Л/>57’-2100 с фиксированной запятой. SHARC строится па основе ядра цифрового сигнального процессора семейства микросхем ADSP-21000 Для формирования завершенной одно- кристальной микро-ЭВМ к нему добавляется (рис 8 1) двухпортовая память (статическое ОЗУ), находящаяся на кристалле, процессор ввода/вывода. контроллер ПДГ), параллельный порт системной шины и ряд других уст- ройств Разработано два ADSP SHAR( -процессоре Л/Л\7’-21060 и Л/>57’-21062 Первый содержит 4 Мегабита ОЗУ на кристалле, а второй - 2 Мегабита Во всех других отношениях процессоры одинаковы и являются функциональ- но- и кодово-совместимыми c/4/W'-2I020. Устройство SHARC представля- ет собой новый стандарт цифровых сигнальных процессоров для выполне- ния операций с плавающей запятой. Процессоры ADSP-21000 выполняю! все инструкции в течение одного машинного цикла Они обеспечивают ма- лое время цикла и полный набор арифметических операций, включая опе- рении вычисления вырежений l/x. т/Ьх. а также нахождение шш и max. “вырезание” фрегмента изображения (dtp}, и вдобавок к традиционным операциям сложения, вычитания и умножения введена комбинированная операция умножение со сложением (МА (‘-о не рани и) Процессоры являются совместимыми с стандартом для операций с плавающей запятой.
ЦПОС с щнышцей мпятой семейстм А DSP-Иям ’57 Рис. 8 1. Обобщенная структура СБИС семейства ADSP-2106к На рис.8.2. изображена расширенная структурная схема ЛО5’Р-2Ю6х В его состав входят собственно цифровой сигнальный процессор (ядро), двух- портовое статическое ОЗУ, процессор ввода/выводв ц интерфейсный про- цессор (внешний порт). Ядро состоит нз следующих блоков: - 32-разрядного вычислительного устройства для выполнения операций с плавающей запятой в соответствии со стандартом IEEE, состоящего нз умножителя. АЛУ и многорегистрового устройства циклического сдвига. - блока регистров общего назначения (файла данных): - двух генераторов адресов данных (I "А-1 и ГА-2); - контроллера микропрограмм; - кэш-памяти команд; - таймера; - коммутатора шин Статическое ОЗУ построено на основе двух независимых двухпортовых блоков оперативной памяти. Интерфейсный процессор состоит нз схемы мультиплексора шины адреса и интерфейса главного процессора Процессор ввода/выводв содержит - блок управления с буфером данных и регистрами ввода/вывода; - контроллер ПДП; - два последовательных порта;
3» Гл in 8 - шесть линейных портов связи — П^»т«ч uxciAud —> Рис.8.2. Расширенная структурная схема ADSP-21060 SHARC В состав микросхемы ADSP-2106.x входит также порт тестирования и эмуляции с интерфейсом JTAO Внешний порт (интерфейсный процессор) микросхемы обеспечивают связь ядра процессора с внешней памятью, с устройствами ввода/вывода. отображаемых на память, а также связь с главным процессором и допол- нительными AIJSP-21 ООх. входящими в состав многопроцессорной системы Он также выполняет внутренний и внешний шинный арбитраж Таким образом, использование в /Ю5Л2106х модифицированной гар- вардской архитектуры в комбинации с 10-г юртовым блоком (файлом) реги- стров данных общего назначения позволяет на каждом цикле одновременно ВЫПОЛНЯТЬ - чтение или запись двух операндов в файл регистров данных. - пересылку двух операндов в АЛУ. - подвчу двух операндов па умножитель. - получение результатов операций нз АЛ У и умножителя.
ЦПОС с плявяюшей лпитай ссмгнггвх ADSP-Iliii W Использование 48-битовых команд процессора обеспечивает парал- лельную передачу данных к кодов арифметических операции в одной и той же инструкции, что позволило существенно увеличить скорость обработки. Процессоры семейства Л/Л*>Р-21000 обрабатывают 32-битный IEEE формат с плавающей запятой, 32-битныс целочисленные и дробные форма- ты (без знаковые и в дополнительном коде) и 40-битовый IEEE формат рас- ширенной точности с плавающей запятой. Процессоры распространяют расширенную точность на все свои устройства счета, уменьшая промежу- точные ошибки округленна данных. Прн работе с данными внутри ЦПОС 32-разрядная мантисса с расширенной точностью может быть передана во все ( или получена из всех) устройства счета. 40-раэрядная шина данных может быть, прн желании, организована вне кристалла Форматы с фикси- рованной запятой используют 80-разрядныЛ аккумулятор для обработки 32- битовых слов с фиксированной запятой Рассмотрим несколько подробнее назначение и особенности функцио- нирования основных боков микросхемы SHARC. /1ОЛ7'-2106х содержит три независимых устройства счета. АЛУ. умножитель с аккумулятором и сдвигающее устройство Для удовлетворения широкого ряда потребностей обработки, вычислительные устройства обрабатывают данные в трех фор- матах: 32 - битовые слоая с фиксированной запятой, 32 - битовые и 40- битовые слова с плавающей запятой Операции над числами с плаваю- щей запятой являются /А7:7;-совместнмыми 32-разрядный формат с пла- вающей запятой является стандартным /£Ъ'£'-форматом, в то время как 40- битный /Л7;7:-формат расширенной точности имеет 8 дополнительных бит мантиссы для обеспечения большей точности вычислений. АЛУ выполняет стандартный набор арифметических и логических операций как в формате с фиксированной запятой, так и в формате с пла- вающей запятой Умножитель производит умножение с плавающей и с фиксированной запятой, а также совместное умножекне/сложснис и умно- жение/вычитанис с фиксированной запятой. Сдвигающее устройство осу- ществляет логические и арифметические сдвиги, манипуляции с бигами, копироаянне полей, операции выделения (маскирование) и нормализацию 32-битовых операндов Счетные устройства выполняют олнооикловыс опе- рации без использования конвейера. Выход любого устройства счета может быть входом любого другого е следующем цикле Прн умножении АЛУ и умножитель выполняют независимые операции одновременно Файл регистров данных общего назначении используется для пере- сылки данных между устройствами счета и шинами данных и для храпения промежуточных результатов. Файл решетров данных имеет два набора регистров (основной н дополнительный) по 16 регистров в каждом, для ис- пользования быстрого контекстного переключения прн применении муль- тизадачного режима Все регистры 40-разрядиые.
Ми Глава 8 Контроллер микропрограмм (КМП) и генераторы адреса данных (ГА-1 и ГА-2). Два генератора адреса и КМП генерируют адреса для досту- па к памяти. Вместе КМП н генераторы адреса данных позволяют вычис- лительным операциям выполняться с наибольшей эффективностью, т к устройства вычисления используются исключительно для обработки дан- ных. Имея в своем составе кэш-комапд, ADSP-2106м может одновременно выбирать инструкцию из юш-памяти н выбирать 2 операнда нэ памяти Генераторы адреса данных аппаратно реализуют циклические буферы дан- ных. Контроллер микропрограмм поставляет адрес команды в программную память. Он управляет итерациями н оценивает выполнение результатов ус- ловных команд. Имея внутренний счетчик циклов и стек циклов, ADSP- 2106м выполняет циклические операции с пулевыми непроизводительными затратами. При этом нс требуется явных инструкций перехода для зацикли- вания или декремептацни и проверки счетчика. Высокое быстродействие /Ю£Л2106х достигается за счет конвейерно- го режима работы, предусматривающего выборку, декодирование и вы- полнение команды. Генераторы адресов обеспечивают формирование адре- са памяти при передаче данных между памятью и регистрами Пара генера- торов адреса данных позволяет процессору выводить адреса для одновре- менного выполнения двух операций чтения или записи операндов ГА-1 по- сылает 32-разрядный адрес в память данных, а ГА-2 - 24-разрядиый адрес в память программ для доступа к данным программной памяти Каждый из генераторов адресов обеспечивает управление 8-ю указателями адресов, 8- ю модификаторами адресов н 8-ю регистрами значений длины Указатель, используемый для косвенной адресации, при необходимости модифициру- ется значением, расположенным в специальном регистре Модификация может выполняться до или после осуществления доступа к памяти С каж- дым указателем может быть связан определенный объем адресуемых дан- ных , например, чтобы выполнять автоматическую адресацию кольцевых буферов. Каистый из регистров обоих генераторов адреса имеет регистр- дублер, который активизируется при осуществлении быстрого контекстно- го переключения Кольцевые буферы обычно используются в цифровых фильтрах и преобразованиях Фурье Кэш-команд. Контроллер микропрограмм содержит кэш-команд на 32-слова В кэш-память помещаются только те инструкции, которые кон- фликтуют при доступе к данным программной памяти. Эго допускает по.т- н ос ко росп гое функционирование ядра при циклическом выполнении мно- гих операций. Прерывания В ADSP - 2106х используется 4 внешних аппаратных прерывания: 3 прерывания общего назначения (//((72-0) и специальное прерывания дяя сброса. Процессор также имеет внутренние генерируемые прерывания таймера, арифметических исключений, мультипроцессорные
ЦПОСс илямющей и пятой «м«йствя ADSP-ZIxii гы векторные прерывания и прерывания, определяемые программным обеспечением пользователя. При внешних прерываниях общего назначения и внутреннем прерывании по таймеру в стеке автоматически сохраняются арифметические состояния и содержимое регистра режима (MODE I). До- пускаются прерывания с четырьмя уровнями вложения. Таймер. Программируемый таймер обеспечивает периодическую ге- нерацию прерываний Если прерывания разрешены, таймер декрементиру- ет 32-раз рядный регистр счета на каждом тактовом цикле. При переходе регистра счета в нулевое состояние. Л/ЗЛ’Р-ЗЮбх генерирует прерывание, активизируя свой выход ПМЕХР. Регистр счета автоматически переза- гружается из 32-разрядного регистра периоде и счет возобновляется. Шины ядра процессора Процессор имеет 4 шины: адреса памяти программ (ШАПП), адреса памяти данных (ШАПД). данных памяти про- грамм (ШДПП) и данных памяти данных (ШДПД) В процессорах ADSP- 21 Обх в памяти данных хранятся операнды данных, в то время как про- граммная память используется для как для хранения инструкций, так и дан- ных (например, коэффициентов фильтрации) Это поз воняет осуществлять двойную выборку данных в случае, когда исполняемая инструкция находит- ся в кэш-памяти. Шина адреса программной памяти используются для пересылки адре- сов с целью осуществления выборки инструкций няи данных Шины дан- ных иро1раммной памяти ШДПП и памяти данных ШДПД используются для передачи данных и кодов операций. ШАПП является 24-разрлдиой и по- зволяет осуществить выборку до 16М слов инструкций и данных ШДПП - 4 8-раз ряд нм и предназначена для пересылки инструкций разрядлостью 48 бит Данные формата с фиксированной запятой и данные формата с пла- вающей залитой одинарной точности выставляются на старших 32-х разря- дах ШДПП ШАПД является 32-разрядной шиной и позволяет осущсста|пъ выборку вплоть до 4 Г слов данных Шнна данных памяти данных ШДПД имеет 40 разрядных линий. Данные с фиксированной занятой и одинарной точностью выставляются на старших 32 разрядах этой шины ШДПД обеспечивает пересылку содержимого любого регистра процессора в лю- бой другой регистр или в любую область памяти данных в течение одного машинного цикла Адреса памяти данных поступают от одного из двух ис- точников: абсолютное значение, заданное в коде команды (прямвл адреса- ция) нлн с выхода генератора адреса данных (косвенная адресация) Двухпортовая статическое ОЗУ (внутренняя память) На крнсга.'Lie ADSP-21060 расположено ОЗУ емкостью 4 Мбита. организованное в виде двух независимых блоков по 2 Мбит каждый, которые моут быть конфи- гурированы как для хранения данных, так и кодов. Л/ДУ7'-21062 содержит 2М-битовое статическое ОЗУ. разделенное на блоки по 1 Мбит.
162 Г.т»» 8 Каждый блок памяти является двухпортовым. Доступ к ОЗУ осущест- вляется в течение одного машинного никла как для ядра процессора и про- цессора ввода/вывода, так н для контроллера ПДП. Двухпортовая память и раздельные внутри кристальные шины позволяют в течение одного машин- ного цикла одновременно пересылать данные из ядра и одного из портов ввода/вывода. В A DSP-21060 память может иметь две конфигурации: мак- симум I28K 32-раз рядных слов данных или ВОК 48-разрядиых слов- инструкций (или 4 0-разрядных данных) с общим объемом до 4 Мбит Со- держимое памяти может быть выбрано словами по 16, 32 или 48 разрядов Кроме этого, может быть обеспечен 16-разрядиый формат хранения с пла- вающей запятой, при котором удваивается количество данных, которое мо- жет храниться на кристалле Преобразование между 32-разрядным форма- том с плавающей запятой н 16-разрядным с плавающей запятой осуществ- ляется с помощью одной команды Несмотря на то. что каждый блок может хранить комбинации кодов и данных, доступ к памяти наиболее эффекти- вен только в случае, когда один блок хранит данные, используя для пере- сылок шину данных ПД, а другой - инструкции и данные, передавая их по шние данных ПП. Только при таком использовании шнн, когда одна шина (ПД) выделена одному блоку, а другая (ПП) - другому, гарантируется вы- полнение даух пересылок данных в течение одного машинного цикла. В этом случае исполняемая инструкция должна находиться в кэш-памяти Выполнение передачи данных в течение одного машинного никла сохраня- ется также в том случае, когда один из операндов передается во внутрен- нюю память из внешнего устройства через внешний порт 4/)i7J-2106x или в обратном направлении Внешние порты обеспечивают связь процессора A DSP-2106х с впекри- стальной памятью и внешними устройствами При этом в объединенное ад- ресное пространство >l/AV/,-2106x может быть включено до 4Г слов внекрн- сталыюго адресного пространства Раздельные шины внутри микросхемы для адресов ПП. данных ПП, адресов ПД, данных ПД, адресов вво- да/вывода н данных ввода/вывода - мультиплексируются в интерфейсном процессоре для создания внешней системной шнны с одной 32-разрядиой ША и одной 4 8-разрядной ШД. Внешнее статическое ОЗУ может быть 16- и, 32-х или 48-разрядным При этом интегрированный в цифровой сигналь- ный процессор контроллер ПДП автоматически упаковывает внешние дан- ные в слово подходящей ширины (48 разрядов для инструкций или 32 разряда,тля данных) Адресация внешних устройств памяти упрощается за счет декодирова- ния внутри самого кристалла старших разрядов линий адреса и генерации сигнала выбора банка памяти Для упрощения организации страничной ад- ресации СОЗУ имеется возможность активизации отдельных унравляю- щихлиний процессора В >1/ЛХ7’-2106х позволяет программировать состоя-
ЦПОС С плавающей запитой гемейпия ADSP-2I1M 361 ння ожидания памяти н контроль подтверждения внешней памяти и внешних устройств Интерфейс главного (host) процессора позволяет осуществлять про- стую связь со стандартными миклроиессорнымн 16- нян 32-разряднымн шинами Для этого требуются небольшое дополнительное аппаратное обес- печение. Прн этом поддерживается асинхронная передача со скоростью, со- ответствующей максимальной частоте тактовых импульсов ЦПОС Ин- терфейс главного процессора доступен через внешний порт ЛО5'Р-2Ю6х. отображаемый на память в объединенном адресном пространстве. Четыре канала ПДП поддерживают пересылку кодов и данных с минимальными программными затратами Микросхема располагает мощными средствами для работы в много- процессорных системах цифровой обработки сигналов Объединенное ад- ресное пространство позволяет осуществить прямой доступ к памяти ка- ждого используемого в многопроцессорной системе ADSP-llOhx. В микро- схему интегрированна логика шинного арбитража, которая обеспечивает управление системой, состоящей из одного ведущего и до 6 подчиненных ЛРАТ-ИОбх. Смена ведущего процессора требует только одного непроиз- водственного цикла затрат. Шинный арбитраж может функционировать на основе фиксированного нян циклического приоритета Разрешается захват шин процессора для осуществления неделимых последовательностей чте- ние-изменение-запись, а также обеспечивается выполнение векторных пре- рываний для межпроцессорных команд Максимальная скорость передачи для межпроцессорных пересылок данных через порты связи или внешний порт составляет 240 Мбит/с. Процессор ввода-вывода содержит 2 последовательных порта, шесть 4-битовых линейных портов связи и контролер ПДП Последовательные порты /1/AS‘/>-2IO6x являются синхронными, которые обеспечивают интер- фейс с различными типами внешних устройств. Последовательные порты функционируют с частотой тактирующих импульсов процессора, обеспечи- вая максимальную скорость передачи данных 40 Мбит/с Тактирование портов может быть внутренним нян внешним Независимость процессов приема и передачи обеспечивает большую гибкость последовательной свя- зи Обмен через последовательные порты также может производиться в ре- жиме ПДП. Порты связи. В ADSP-ИОбх имеется шесть 4-разрядных портов свя- зи. которые обеспечивают дополнительные возможности ввода/вывода Их можно использовать в мультипроцессорных системах для межпроцессор- ного взаимодействия по двухточечной схеме (poini-io point). Порты связи могут функционировать параллельно с максимальной ско- ростью передачи данных 240 Мбайт/с Данные портов связи могут быть упаковывай ы в 32-разрядные ияи 48-разрялные слова и непосредственно
№4 1 лава В считаны япром процессора нян переданы во внутрикристальную память че- рез ПДП. Каждый порт связи имеет свои собственные входные и выходные регистры синхронизации Контроллер ЦДЛ Внутрикристальный контроллер ПДП позволяет осуществлять пересылки данных без вмешательства процессора. Кон- троллер ПДП функционирует независимо от ядра процессора,' выполняя операции передачи данных в то время, когда ядро исполняет программу Код и данные могут быть загружены в Л1)£Р-2106х с использованием режи- ма передачи ПДП. ПДП-пере дачи могут осуществляться между внутренней и внешней памятью ЛШР-2106х, периферией и главным процессором, а также между внутренней памятью Л/257’-2106х и его последовательными портами связи Упаковка данных в слова по 16, 32 ллн 48 разрядов осуществляется автома- тически во время ПДП-передачи. Имеется десять каналов ПДП. Два из них доступны через линейные порты связи, четыре - через последовательные порты процессора и четыре через внешний порт Внешние асинхронные устройства могут управлять двумя каналами ПДП, используя линии запроса/предоставлення ПДП (DMAR |.т DMAG |.3). Нумерация каналов ПДП приведена в табл,8.1 Таблица 8.1 - Нумерация канаяов ПДП Номер канала ПДП Буфер данных Описание 0 RX0 Последовательный порт 0, прием 1 RX1 Последовательный порт 1, прием (или линейный буфер 0) 2 тхо Последовательный порт 0, передача 3 тхг Последовательный чорт I, передача (или линейный буфер 1) 4 LBUF2 Линейный буфер 2 5 LBUF3 Линейный буфер 3 6 ERB0 Внешний порт FIFO буфер 0 (или линейный буфер 4) 7 ERBI Внешний порт FIFO буфер 1 (или линейный буфер 5) 8 ERB2 Внешний порт FIFO буфер 2 9 ERB3 Внешний порт FIFO буфер 3 Начальная загрузка процессора Внутренняя память ADSP-2106х может быть загружена данными, поступающими с 8 разрядного ППЗУ, глваного процессора ллн через один из портов связи Выбор источника за- грузки контролируется но линиям В, BMS, ЕВ(ЮТ, IJKXJT. Для начальной
ЦПОС с плявякндгй и пи той семсйствв ADSP-2I1H загрузки может быть использован как 16-ти. так и 32-разрядный хост- процессор. На рис.8.3 изображена типовая схема однопроцессорной системы об- работки. Обязательным, кроме ADSP. является наличие в системе только генератора тактовых импульсов (ГТИ), остальные блоки устанавливаются по мере необходимости. ША Рис 8.3. Типовая схема однопроцессорной системы Все выводы процессоров ЛО57’-21060 и ADSP-2\062 идентичны Неис- пользованные входы должны быть связаны с шнной питания или общим проводом, нсключва^4/>0/?(3)-0), Ш7Х(4?-О), /-'L4G(3-O), ЯР. Выводы про- цессора имеют следующее функцнонпдьное назначение ADDH (31-0) - внешняя шина адреса DATA (47-0) - внешняя шина данных АЛ (3-0) - линии выбора памяти Эти линии устанавливаются (низкий по- тенциал) при выборе микросхемы соответствующих банков внешней памя- ти. Они становятся активными при появлении енгнака доступа к внешней памяти Я/)- строб чтения памяти, в системе мультиобработки выходной сигнал дня глваного ADSP-2106х и входной для всех других ADSP-21Обх
Мб Еаяы 8 PAGE сигнак конца страницы памяти. ADRCLK - синхронизация адреса Адрес действительный в момент перед- него фронта этого сигнала W- выбор синхронизации записи ASK - подтверждение памяти. Внешнее устройство может установить АСК. чтобы подключиться к очереди ждущих рлзрешення доступа к внешней па- мяти других устройств. - переключение в третье состояние шин адреса, данных и стробов /Я(/(2-0) - линии запроса прерываний. HAG (3-0) -флаговые выводы Каждый вывод может быть определен как вход или выход. Если вывод определен как вход, то проверяется его состоя- ние. если как выход, то он используется для взаимодействия с внешним устройствами TIMEXP - истечение времени счета таймере HBR - запрос снетамиой шины главным процессором. HBG - предоставление системкой шины C.S- выбор микросхемы. REDY o/d - подтверждение системной шины, открытый выход стока (o/d) может быть запрограммирован на активный выход. DMAR I- запрос ПДП1 (Канак 7). ПДП2 - какал в, DMAG 1 - предоставление ПДП1. ЙЯ(6-1) - запрос шины прн мультиобработке. //>(2-0) - идентификатор мультиобработки, определяет, какал из шии запро- са (ЙЯ1-6) используется процессором /Ш57’-2106х; //>=001 соответствует ал1. //>=010- ял2ит.л RPHA - выбор ротации приоритетности шин. СРА - приоритетный доступ ядра процессора подчиненного ADSP DTx - последовательная передача данных. Rx - прием последовательных данных. TCLKx - синхронизация передачи RGLKx - синхронизация приема. 77'Хг - синхронизация передачи кадра W-Xr - сннхроинзаииЯ| приема кадров. IjcDA ДЗ-О) - линейные порты данных. LxCI.K - синхронизация линейных портов LxACK - подтверждение линейного порта ЕНООТ- выбор загрузки ППЗУ 1.НООТ- выбор загрузки линии - загрузки главного процессора. BMS - селекция загрузки памяти. CLKIN - вход внешней синхронизации. ЯЕМ.’?’- сброс процессора.
ЦПОС с ПЛ1МЮШГЙ платой сгмтйсти ADSP-H»»» М>7 ТСК - тест генератора тактовых импульсов ( по стандарту JTA(i) IMS - выбор режима тестирования (JTAGj TDi - вход тестовых данных fJ'i'AG) ИХ) - выход тестовых данных (J'lAG) ТКИ- сброс тестирования (JTAG). 8.2 Система команд и регистры ADSP-21Обж Набор команд ЦПОС семейства ЛО5'Р-21(Ю0 обеспечивает широкий выбор возможностей программирования Многофункциональные команды позволяют осуществлять вычисления одновременно с передачей или моди- фикацией данных, а также одновременные операции в умножителе и АЛУ Каждая команда выполняется в течение одного машинного цикла. Развитая система адресации обеспечивает гибкость перемещения данных как внутри кристалла, так и вне его Для облегчения кодирования и читаемости про- грамм ассемблер процессора использует алгебраический синтаксис Команды цифрового сигнального процессора SHARC можно разделить на 4 группы: - команды вычисления н передачи нян модификации данных, которые специфицируют вычислительную операцию с параллельной передачей од- ного иян даух полей данных иян модификацией индексного регистра, - команды, управляющие выполнением программы, специфицирующие разнообразные типы ветвлений, циклов, вызовов подпрограмм и возвратов, - команды непосредственной пересылки данных, в которых поля инст- рукций используются в качестве операндов, нлн непосредственно для адре- сации; - прочие команды, в частности, проверка и модификация отдельных битовых полей, отсутствие операции и проч. Многие команды содержат поля для специфических операций вычисления, которые используются в АЛУ, умножителе или в сдвигающем устройстве В процессоре имеется большая группа программно доступных регист- ров (табл.К.2). Они являются универсальными, т.е позволяют как читать, так модифицировать их содержимое Все регистры цифрового сигнального процессора можно разделить на 6 групп: - регистры общего назначения, - регистры управления последовательностью команд; - адресные регистры. - регистры управления шинами, - регистры таймера; - системные регистры
36В Глава 8 Таблица 8.2 - Программно доступные регистры Обозначение регистра Название и назначение регистра 1 Регистры общего назначений (расположенные в файле регистров данных) RIS -R0 регистры для операций с фиксированной точкой; F15 - F0 регистры для операций с плавающей точкой 2 Регистры управлений последовательностью камнд PC Программный счетчик (ПС) PCSTK Верхушка стека PCSTKP Указатель стека FADDR Регистр адреса выборки DADDR Декодируемый адрес LADDR Адрес окончания цикла CURLCNTR Счетчик текущего цикла LCNTR Счетчик циклов для вложенных циклов 3 Адресные регистры [7-Ю Индексные регистры ГА-1 M7-M0 Регистры модификации ГА-1 L7-L0 Регистры длины Г А-1 07-BO Базовые регистры ГА-1 115-18 Иияексные регистры ГА-2 MI5-M8 Регистры модификации ГА-2 LIS-L8 Регистры длины ГА-2 BI5-B8 Базовые регистры ГА-2 4. Регистра управлений шинами PXI Обмен шии 1 ЩДПП-ЩДПД (16 бит) РХ2 Обмен шин 2 ШДПП-ШДПД (32 бита) РХ 4 в-битовая комбинаты РХ 1 и РХ2 5 Регистры таймера TPERIOD Период таймера TCOUNT Счетчик таймера 6 Системные регистры MODEI Управление режимом и состоянием 1 MODE2 Упрапление режимом и состоянием 2 IRPTL Фиксатор прерываний IMASK Маскирование прерываний LMASK.P Указатель маски прерываний (для шюженпости) ASTAT Флаги арифметического состояние STKY Флаги состояние ошибок USTATI Регистр 1 состояние пользователя USTAT2 Регистр 2 состояния пользователя Для локального хранения данных используются регистры общего на- значения (ЮН), которые по терминологии разработчика процессора носят название "файл регистров". Файл регистров состоит нэ шестнадцати 40- би-
ЦПОС t плямюмей ипятой ttwfHCTBi Л DSP-21 in товых основных и 16 альтернативных регистров Номера регистров обозна- чаются символом R при вычислениях с фиксированной запятой, и символом /' - в операциях с плавающей запятой АЛУ может выбирать два операнда X и У из любого РОН Результат операции помешается в любом из регистров файла регистров В зависимости от результата операции устанавливаются соответствующие флаги регистра состояния АЛУ - /1.S7/I Т. Команды АЛУ на языке ассемблера ADSF-2)06х записываются сле- дующим образом: Rn=Rx^Ry ; /* Суммирование содержимого регистров в формате ’/ /• с фиксированной запятой *! Fn=Fx+Fy . /* Суммирование содержимого регистров в формате */ /• с плавающей запятой *! Rn=(Rx+Ry)/2 ; /• Определение среднего значения •/ Rn=M)N(Rx,Ry), /* Выделение минимального операнда 7 Fn=RSQRTS Fx ; /* Вычисляет обратное значение квадратного корня *! /* нз содержимого Fx в формате с плав запятой 7 Ra=Rx+Ry, Rs=Rn-Ry ; /‘Одновременное сложение н вычитание 7 Fa=Fx+Fy. Fs=Fx-Fy ; /‘Rx, Fx, Ry, Fy - любые РОН регистры для*/ /* операций с фиксированной иян плав.запятой */ Для выполнения операций умножения с фиксированной и плавающей запятой, а также операций умножения с накоплением используется аппа- ратный умножитель, который перемножает два входных операнда, обозна- чаемых Л" и К нз файла регистров Аккумулирование результата происходит в двух 80-разрядных регистрах MRH и MRJ- , допускающих контекстное пе- реключение Оба регистра имеют одинаковые структуру, состоящую нз трех частей - Л/ЯО, MR!. MR2 Каждый из регистров может быть независимо счи- тан клн записан в файл регистров Регистр MR2 имеет только 16 разрядов, но при чтении его содержимое знакорасширястся до 32 разрядов В зависи- мости от результата умножения устанавливаются 4 флага регистра AS7A7 и четыре флага регистра состояния ошибки STKY Вдобавок к вычислениям, выполняемым каждым вычислительным уст- ройством отдельно. z4/XS'A’-2106x позволяет также осуществлять многофунк- циональные вычисления, при которых имеет место параллельное функцио- нирование умножителя и АЛУ. Две операции выполняются тем же спосо- бом, как если бы они исполнялись в соответствующих одиофункционвль- ных вычислителях Каждый нз 4-х входных операндов многофункцио- нальных команд ограничивается определенным местом расположения в файле регистров (рис,8 3). Во всех других операциях, входными операндами могут быть любые регистры файла регистров. На языке ассемблера ADSP-2IO6x команды умножения и многофунк- циональные команды записываются следующим образом:
ЭЛ) Гявм 8 Rn = Rx • Ry MRF= Rx • Ry MRB= Rx • Ry Fn - Fx • Fy Rn = MRF * Rx ‘ Ry Rn = MRB - Rx • Ry MRF= MRF - Rx • Ry . Синтаксис команд прост и поэтому дополнительных пояснений не тре- буется. Прн выполнении однофункинойаяьиых команд в качестве регистров Rn. Rx или Ry может использоваться любой из регистров файла регистров, а при многофункциональных - только регистры в соответствии со схемой, изображенной на рис 8.3. Мдрпжтрш Мдрпжтрш Рис.8.3. Схема закрепления регистров прн многофункциональных операциях Регистры управления последовательностью команд расположены в контроллере микропрограмм и являются универсальными т е. доступ к ним осуществляется так же как и для других универсальных регистров. ADSP- 2106х исполняет команды в течение трех тактов: выборки, декодирования и выполнения команды За счет конвейеризации, пока происходит выборка текущей команды, осуществляется декодирование инструкции, выбранной в предыдущем цикле и выполнение команды, выбралиой дм такта назад В связи с этим производительность сигнального Процессора составляет одну команду за цикл. Любое ветвление программы может снизить производи- тельность устройства
ЦПОС t плвыкинсй мгшгой семейств» ADSP-Hm J71 Регистр адреса выборки FADDR, регистр адреса декодирования DADDR и программный счетчик PC содержат соответственно адреса ко- манд, выбираемой, декодируемой и выполняемой в данный момент време- ни. Указатель стека программного счетчика PCSTKP представляет собой ре- гистр, доступный по чтению и записи, который содержит адрес верхушки стека Прн пустом стеке значение PCS7'KP=0. и Р( '.ST'K/^l .2.30 прн нали- чии в стеке данных. В случае, если /Ч.'ЛТК/^З! возникает переполиение стека Контроллер мнкронрограмм оперирует с двумя отдельными счетчика- ми циклов: текущего цикла (CURI.CNTR), который отслеживает итерации текущего цикла, и обычного счетчика циклов (LCNTR). задающего количе- ство повторений. Наличие двух счетчиков необходимо для поддержки ало- женных циклов. Регистр LADDR хранит адрес верхушки стека адресов цик- лов Он доступен по чтению и записи через ШД ПД, В случае, если стек ад- ресов циклов пустой, он принимает значение OxFFFFFFFF ADSP-2106к поддерживает программные циклы с инструкцией IX) UNTIL. Эта команда вызывает повторение последовательности инструкций до тех пор, пока проверяемые условия не станут истинными (true) Кон- троллер микропрограмм алалнзирует условия для определения момента прекращения выполнения цикла путем проверки бигов регистров состояния AST АТ, управления режимом MODKI, счетчика циклов CURLCNTR и вход- ных флагов Каждое условие, которое оценивает >1DSP-2lO6x, имеет ас- семблерную мнемонику и уникальный код. который используется в коде операции Для большинства условий, контроллер может проверять оба со- стояния: истицу и ложь. Условие LCE (истечение счета счетчика циклов) чаше всего используется в инструкции ЕЮ UNTIL. Инструкция ЕЮ UNTIL обеспечивает эффективный цикл без непроиз- водительных издержек (дополнительных команд перехода, проверял со- стояния ияи уменьшения счетчика). Например: LCNTR=30, DO label UNTIL LCE: R0=DM(l0,M0), F2=PM(I8,M8): RI=R0-RI5; label F4~F2+F3. В процессе выполнения команды ЕЮ UNTIL контроллер микропрограмм помещает в стек адреса цикла адрес последней команды цикла и условие за- вершения для выхода из него. Он также помещает в стек программного счетчика адрес верхушки цикла, который представляет собой адрес инст- рукции, непосредственно следующей за строкой ЕЮ UNTIL Адресные регистры располагаются в генераторах адреса ГА-1 и ГА-2 Оба генератора адреса имеют 4 группы регистров по 8 однотипных регнет-
т Глявав ров каждой нз групп: индексные (I). модификации (М). базы (В) н длины (1.; В 32-разрядиом ГА-1 регистры нумеруются цифрами 0-7, а в 24-х разрядном ГА-2 они имеют номера 8-15. I - регистр выступает в роли указателя на па- мять, а Л/-регнстр содержит значение приращения указателя. Регистры Вн1. используются только для адресации кольцевых буферов данных. В частно- сти, в регистре В располагается начальный (базовый) адрес кольцевого бу- фера, а в регистре L - длина буфера Каждый из регистров ГА имеет аль- тернативный набор регистров, используемый при контекстном переключе- нии. Сдвигающее устройство. Устройство сдвига работает с 32-раэрядными операндами с фиксированной точкой н выполняет следующие функции: -сдвиги и циклические сдвиги , - операции манипулирования битами; - манипулирование полями битов, включая' выдаяенне и копирование во внешнюю память; - поддержка операций совместимости процессоров семейства ADSB- 2100 (фикси рованная/плаваюшая точка). Сдвигающее устройство принимает от одного до трех операндов: X- операнд, няд которым производится действие, Г-определяет величины сдвига s, длины полей битов иян положение битов, Z-операнд над которым производится действие и корректировка. Устройство сдвига возвращает значение результата в одни из регистров фейла регистров. Входные операнды выбираются из старших 32 разрядов регистра файла регистров (биты 39-8), нян как непосредственное значение из поля инструк- ции. Операнды пересылаются в течение первой половины, никла. Результат передается в старшие 32 разряда регистра во время второй половины никла, причем млядшнс 8 битов обнуляются. Таким образом, сдвигающее устрой- ство может осуществлять чтение и запись одного и того же места из файла регистров в течение I машинного никла. X и Z всегда 32-разрядные числа с фиксированной точкой Вход У - 32-разрядное значение с фиксированной точкой нян 8-битовое поле. Нвлример, операция выделение и депонирование полей битов (коман- да FDEP) позволяет манипулировать с группами битов в пределах 32- разрядного слова фиксированной длины Вход У для этих инструкций опре- деляет два 6-разрядных значения: Ьчб и !еп6, расположенных в Ry Hub начальная позиция для выделения няи депонирования, а 1еп6 - длина поля битов, которая определяет количество выделяемых нлн депонируемых би- тов. Так при выполнении команды R0=FDEP Rl BY R2 (RI=OxOOOOOOFFOO н R2=0x0000021000) в регистр R0 будет помешен фрагмент содержимого регистра R1, состоящий на 8 битов, начиная от начала тгого регистра (/<?лб=8) и отстоящий от начала регистра результата R0 на 16 разрядов (Й1/6=16) Поскольку в данном случае обработка 32-разрядных слов произ-
ЦПОС с плямющей мпятой семейств! ADSP-il ш 373 водится в 40-раз рядных регистрах, то отсчет битов в регистрах производит- ся начиная с 8-го разряда (биты с 0 по 7 игнорируются и обнуляются) Те в результате такой операции в регистре R0 окажется содержимое 0x00 FF000000. Регистры управления шинами Для обеспечения возможности передачи информации между 48-разрядиой IИД памяти программ и 32-разрядной ши- ной памяти данных используется РХ регистр. Этот регистр состоит их двух регистров: 16-разрялного РАЯ н 32-разрядного РХ2 Они могут использо- ваться независимо или рассматриваться как составляющие регистра РХ. Ре- гистр РХ позволяет осуществлять обмен данными по шине данных памяти программ или по ШД памяти данных с памятью или регистрами файла ре- гистров. Так, например, чтобы записать 48-разрядное слово в ячейку памяти с именем Port I по ШД ПП могут быть использованы следующие команды: RO=Ox9AOO; /’ загрузка в R0 16-ти младших битов ’/ R1 =0x12345678' /* загрузка в RI 32-х старших битов ’/ PXI=RO, PX2=R1, PM(Portl)=PX . Регистры таймера. Для управления таймером используются два реги- стра: TPERJOD и TCOUNT. Оба эти регистры доступны как для чтения, так н для записи. В первый из них заносится число периодов счета, которое по- сле запуска таймера переносится в регистр счета TCOUNT На каждом пе- риоде счета таймер уменьшает содержимое TCX)UNT на 1 Когда содержи- мое регистра счета становится равным нулю, таймер генерирует прерывание и выставляет на вывод TIMEXP логическую единицу длительностью 4 никла тактовых импульсов (если работа таймера не запрещена установкой соот- ветствующего флажка регистра режимов MODE2) Затем происходит авто- загрузка числа периодов счета из TPERiOD в TCOUNT. Системные регистры. Эти регистры служат для задания различных режимов работы процессора, управление операциями прерывания, индика- ции результатов логических и арифметических операций Для управления режимом и состоянием процессора используются два регистра режима: MODE] и MODE2. Путем установки н сброса определенных битов этих ре- гистров можно изменять режимы адресации, переияючатъ файл регистров на альтернативные регистры, управлять прерываниями, разрешать работу таймера, определять тип сигнального процессора и т. д. Название и назначение битов регистра MODE] привалено в табл 8 3 Регистр управления MODE! используется для управления таймером, запре- щает выход на внешнюю шину, блокирует кэш, содержит информацию о типе используемого процессора, а также ряд операций упраапсния прерыва- ниями.
J7« Гл in 8 Таблица 8.3 - Назначение битов регистра MODEI № бита Обозначенне бита Назначение разрядов регистра MODf-A 0 BR8 Инвертирование разрядов регистра 18 (ГА-2) I BR0 Инвертирование разрядов регистра 10 (ГА-1) 2 SRCU Выбор альтернативных регистров вычислителя 3 SRDIH Выбор альтернат в ныв регистров ГА-1 (7-4) 4 SRD1L Выбор альтернативных регистров ГА-1 (3-0) S SRD2H Выбор альтернативных регистров ГА-2 (13-12) 6 SRD2L Выбор альтернативных регистров ГА-2 (11-8) 7 SRRFH Выбор альтернативных файловых регистров (RIS-R8) 8-9 - Зарезервированы 10 SRREL Выбор альтернативных файловых регистров (7R-R0) II NESTM Разрешение вложенности прерываний 12 IRPTEN Разрешение глобальных прерываний 13 ALUSAT Разрешение насыщенна АЛУ 14 SSE Разрешение знакового расширенна короткого слова IS TRUNC 1 -усечение с плавающей точкой; О-округление 16 RND32 1-округление с плавающей точкой до 32 бит, 0- до 40 бит 17-18 CSEL 00 - выбор основной шины 19-31 Зарезервированы Регистр арифметического состояния ASTAT отображает результат вы- полнения операции не только в АЛУ, но и в умножителе и сдвигателе. Обо- значение и назначение флагов состояния приведено в табл. 8 4 Регистр состояния ошибки индицирует дополнительные признаки со- стояния выполнения операций нян уточняет причину установки одного или нескольких флагов регистра А\Т4Т Флаги в регистре STKY проверяются после окончания серии операций Если любой нз флагов установлен, то не- которые из результатов ошибочны. Обозначение флагов и пояснение их значения приведены в табл.8.5 83 Организация н адресация памяти Процессор ADSP-21060 содержит внутрикристальное статическое ОЗУ емкостью 4 Мбит, разделенное на 2 независимых блока по 2 Мбит, в то время как >l/3S/’-2IO62 имеет 2-Мбитовое СОЗУ по 1 Мбит в блоке. Оба эти блока нумеруются как блок 0 н блок 1. 2-Мбитовый блок памяти, содержа- щий 48-раэрядные слова инструкций, может хранить максимум 40К слов, а такой же 2-Мбиговый блок, содержащий 32-разрядиые слова данных, хра- нит до 64 К слов. В процессоре также обеспечивается адресация до 4-х Гига- слов дополнительной, внекрнстальной, памяти через внешний порт 32- разрядные слова используются для хранения данных формата Ц'.ЕЕ с пла-
ЦПОС с плавающей та ватой семейств» A DS Р-21m 373 вающсй точкой одинарной точности. 48-разрядные слом применяются для хранения инструкции иян 40-битовых данных с плавающей точкой расши- ренной точности. Независимые шины памяти программ (ПП) и памяти дан- ных (ПД) позволяют ядру процессора одновременно выбирать инструкции и данные нз обоих блоков. Все пространство памяти процессора разделяется на 3 секции про- странство внутренней памяти, пространство мультипроцессорной памяти и пространство внешней памяти. Пространство внутренней памяти ADSl*- 2106х состоит нз внутрикристальной памяти и собственных ресурсов Мультипроцессорное пространство памяти соответствует внутрикристаль- ной памяти и ресурсам другого в мультипроцессорной систе- ме. Пространство внешней памяти соответствует внешней памяти и устрой- ствам ввода/вывода, отображенным на память. Для обращения к памяти в процессоре генерируются адреса, формет которых изображен на рис.8 4. Таблица 8.4 - Назначение бигов регистра ASTAT № бита Обозначен не флага Индикация состояния (регистр ASTAT} 0 AZ Содержимое АЛУ равно 0 нлн потеря значимости при операции с плавающей точкой 1 AV Переполнение АЛУ 2 AM Содержимое АЛУ меньше 0 3 АС Бит переноса АЛУ с фиксированной точкой 4 AS Зии входа X АЛУ 5 AI Недопустимы операция в режиме плавающей точ- жи 6 MN Зии произведения отрицательный 7 MV Переполнение умножителя 8 MU Потерн значимости умножителя при операциях с плавающей точкой 9 Ml Недопустимая операция умножителя при вычисле- ниях с няввшошей точкой 10 AF Индикация операции АЛУ с плавающей точкой и SV Переполнение сдвнгвтелл 12 SZ Содержимое сдвигятеля равно нулю и SS Знак о пера как их входе сдвнгагеля М-17 Зарезервировано 18 BTF Флаг тестирования бита 19 FLGO Значения флага 0 20 FLGl Зиячение флага 1 21 FLG2 Значение Флага 2 22 FLG3 Значения флага 3 23 Зарезервировано 24-31 CACC Сравнение битов аккумулятора
J76 Глава 8 Таблица 8.5 - Назначение битов регистра STKY Ni бита Обозначение флага Индикан ка состояния (регистр STKY) 0 AUS Потеря значимости AJTV с плавающей точкой 1 AVS Переполнение АЛУ с плавающей точкой 2 AGS Переполнение AJTV е фикс про канной точкой 3-Т Эареэер вированы 5 AJS Неверная операция в АЛУ с плавающей точкой 6 MGS Переполнение умножителя е фиксированной точкой 7 MVS Переполнение умножителя с плавающей точкой 8 MUS Потеря значимости умножителе с плавающей точкой 9 M1S Неверная операция в умножителе с плавающей точкой 10-16 Эареэер вированы 17 CB7S Переполнение циркуларного буфера 7 ГА-1 18 C0I5S Переполнение циркуларного буфера 15 ГА-2 19-20 Зарезервированы 21 PCFL Переполнен на указателя стека 22 РСЕМ Указатель стека пустой 23 SSGV Переполнение стека состоя и ка (MODEX и ASTAT) 24 SSEM Состояние регистра стека пустое 25 LSGV Переполнение стека циняов 26 LSEM Стек цикла пустой 27-31 Зарезервированы Рис.8.4 Формат адресов процессора ADSE-21 06х Часть разрядов адресного слова выделяется для идентификации ис- пользуемой секции памяти: £ - внешняя; М - мультипроцессорная и 5 внутренняя память. Если поле £ содержит все нули, то поля £ и М становят- ся активными и используются для адресации либо собственной внутренней памяти (Л7=000) или для пересылки во внутреннюю память другого процес- сора, входящего в состав многопроцессорной системы, в последнем случае поле М идентифицирует номер другого процессора.
ЦПОС с плыяюшей тяпятой семейств* ADSP-2lm 377 Секции памяти ограничены следующими адресами - внутренняя память от 0x00000000 до Ox0007FFFF. - мультипроцессорная память от 0x00080000 до OxO03FFFFF; - внешняя память от 0x00400000 до OxFFFFFFFF Карта распределения памяти ADSP-2IO6x приведена на рнс.В 5. Внутрен- няя память процессора имеет три области адресов; - регистры процессора ввода/вывода 0x00000000 до OxOOOOOOFF, - адреса нормальных слов 0x00020000 до OxOOO3FFFF, (таблица векторов прерываний 0x00020000 до OxOOO2QO7F) - адреса коротких слов 0x00040000 до Ох0007FFFF Регистры процессора ввода/вывода представляют собой 256 регистров, отображенных на память, которые контролируют конфигурацию системы Л/35Р-2106х, а также различные операции ввода/выводв Адресное про- странство между регистрами ввода/вывода и адресами нормальных слов (ячейки 0x00000100 до OxOOOlFFFF) зарезервировано и информация в них записываться нс должна. Блок памяти 0 начинается с начала пространства нормальных слов (с адреса 0x00020000), а блок I • с середины пространства нормальных слов (с адреса 0x00030000) Таким образом, для различных областей внутренней памяти используются следующие диапазоны адресов: OxOOOOOOOO-OxOOOOOOFF 0x00000100-0x0001 FFFF 0x00020000-0x0002 FFFF ОхОООЗОООО-ОхОООЗ FFFF 0x00040000-Ox0005FFFF 0x00060000-0x0007 FFFF регистры ввода/выводв (ЮР), резервные влреса; блок 0-адресация нормальных слов (32-р ,48-р ). блок 1-адресация нормальных слов (32-р.,48-р ), блок 0 - адресация коротких слов(16-р ), блок 1 - адресация коротких слов(|6-р.). Пространство адресов нормальных и коротких слов в действительно- сти представляет собой одну н ту же физическую память. Например, вы- борка слова с адресом 0x00020000 представляет те же самые ячейки, что и доступ к коротким словам с адресами 0x00040000 и 0x00040001 (для 32- разрядных данных в пространстве нормальных слов) Адресация коротких слов увеличивает количество 16-разрядных данных, которое может хранить- ся во внутренней памяти. Она широко используется, в частности, в систе- мах, производящих операции с матрицами. Пространство мультипроцессорной памяти в мультипроцессорной системе отображается во внутреннюю память другого ADSP-2\06x Это по- зволяет каждому из ЛО57>-2106х обращаться ко внутренней памяти и реги- страм процессора ввода/выводв, отображенными на память, другого пронес-
зта Гл дм 8 Пристр^кпо мутри»! Оаопооаю смпазоою (ъкимяш омивоаю (МЮЮООЮ (МЮ1ВООЮ &ДНВ(ртР fWTHBftWi Лристр^ЕВО Мутряп IMIIH с [[>1|0 V»№Kt ADSMlMi (MIF9(KKD ШХЯГГЯТ Рис.8.5 Карта распределения памяти ADSP-21O6x сора. Значение поля М адресной части определяет идентификационный но- мер (/£>2-0) внешнего ?!D5,/>-2106x процессора, к которому осуществляется доступ, н поэтому, только этот процессор будет реагировать на цикл чте- ння/зались Если поле М 111, то осуществляется циркулярная запись во все процессоры многопроцессорной системы Обращение к внешней памяти может быть осуществлено через внеш- ний порт по шинам ПП, ПД и ВВ/ВЫВ Этими шинами управляет ГА-1, контроллер микропрограмм (ГА-2) ня и процессор ввода/вывода. ГА-1 и процессор ввода/вывода выдают 32-разрядные адреса на LLLA ПД и ША ВВ/ВЫВ, при этом адресуется 4 Гнгаслов памяти Контроллер микропро- грамм и ГА-2 генерируют 24-раэрялные адреса по ША ПП, ограничивая ад- ресацию младшими 12-ю Мегасломми памяти (0x00400000 - OxOOFFFFFF) Каждый блок внутренней памяти может конфигурироваться для хране- ния либо 32-разрядных данных с одинарной точностью клн 40-разрядных повышенной точности. Это конфигурирование инициируется установкой или очищением битов IMDWQ и IMDW\ в регистре системной конфигура- ции SYSCON.
ЦПОС с пляммшей зяпитой семейства ADSP-llui 379 В дополнение к внутрикристальной памяти, Л/ЭЛ7’-2106х обеспечивает адресацию до 4 Гигаслов внешней памяти через внешний порт Эта память может хранить как инструкции, так и двнные Внешнее адресное простран- ство включает в себя пространство мультипроцессорной памяти, внутрен- нюю память всех других ADSP-2106х. соединенных i многопроцессорную систему, а также пространство внешней памяти и область для стандартной адресации внекрнстальной памяти. Адресация памяти В сигнальном процессоре применяется непосред- ственная, относительная и косвенная регистровая адресация. В первом слу- чае адрес ячейпи памяти указывается непосредственно в поле операнда ко- манды, ианрнмер dm (0x000047ЕО) = аши По этой команде значение astat заносится в ячейку памяти двнных с адре- сом 000047ЕОЛ При относительной адресации исполнительный адрес вычисляется пу- тем суммирования программного счетчика PC и смещения, задаваемого в поле команды. Нанример, call (рс,20) В случае использования косвенной регистровой адресации применяют- ся регистры адресных генераторов ГА-1 и ГА-2. В комаяде указывается ре- гистр, в котором содержится адрес требуемой ячейки памяти При косвен- ной адресации возможны два режима работы: а) предварительная модификация (pra-modify) Эффективный адрес оп- ределяется суммированием содержания индексного регистра 1 и регистра М нян непосредственного операнда. При этом содержимое регистра 1 не изме- няется; 6) формирование адреса с последующей модификацией индексного ре- гистра (Post-modify). ГА выдает на шину адреса содержимое индексного ре- гистра I, а затем модифицирует его путем прибавления содержимого реги- стра М или непосредственного значения модификатора. В ассемблере ADSP-2106x операции пре- и постмодифнкацни различаются позициями индекса и модификатора (Л/-регнстра или непосредственного значения) в инструкции Расположение первым в поле команды /-регистра индицирует режим посгмодифнкапи Например, R6 /’Л7(715,Л712/ Эта инструкция осуществляет обращение к ячейке программной памяти с адресом, находящемся в /15, затем значение /15+ЛЛ2 записывается обратно в /15. Если же модификатор записан первым, ото говорит об использовании предварительной модификации без операции обновления содержимого регистра /. Так по команде
380 Гл«в»8 R6=PM(M12,115) выбирается ячейка программной памяти с адресом /15 *Л/12, ио прн этом содержимое /15 не изменяется. Изменение любого /-регистра производится в пределах одного ГА. Так команде DM(MO,I2)=TPER10D записана правильно и позволяет выбрать ячейку памяти данных <М0+12> , но команда DM(MO,1I4)=TPERIOD - ошибочная, т.к. М н I принадлежат различным генераторам адреса. Максимальное непосредственное значение, модифицирующее 1- регистр, зависит от типа инструкции и от того, где размещается 1 регистр в ГА-1 нлн ГА-2 . При использовании ГА-1 максимальное непосредственное значение может быть равно 2”, а при применении ГА-2 - 2м Некоторые ин- струкции с параллельными операциями разрешают только 6-разрядкое зна- чения модификатора- Так в приведенных ниже командах соответственно используются 32-раз рядный и 6-раз рядный модификаторы R1 =DM(0,x40000000,l 1); DM адрес=\ 1 +0x40000000, F6=Fl+F2,PM(18,0x0B)=ASTAT; PModpec=I8, I8=18+0x0B 8.4 Программирование процессоров семейства ADSP-SIOOO" При разработке микропроцессорных систем на базе процессоров се- мейства Л№/>-21000 используется широкий спектр аппаратных и про- граммных инструментов. Описания и назначения основных средств разра- ботки представлены в табл. 8.6. Разработку программного обеспечения для семейства ЛШ‘/’-21000 целе- сообразно выполнять в соответстаии со следующей последовательностью : 1) описание архитектуры микропроцессорного комплекса в файле ар- хитектуры системы , 2) написание исходных программ на языке С или ассемблера, компи- ляция в объектный код; 3) соединение объектных модулей и файла архитектуры в одни испол- няемый файл; 4. ) отладка программы с использованием программного эмулятора или EZ-Lab® Evaluation Board, 5) отладка программы с использованием EZ-ICE® 1п-Сисш1 Emulator. * Параграф налнсаи Фендикевичем И М
ЦПОС с плавающей и пял ой семейства ADSP21-1H )S1 6) подготовка для записи программы в ПЗУ и отладка программы па целевой системе. Таблица 8.6 - Аппаратные и программные средства разработки ADSP21 ххх EZ-Lab® Evaluation Board Аппаратный модуль для оценки пярвметров раэрабо* ПННЫХ ПРОГРАММ EZ-ICE® In-Cinuit Emula- tor Аппаратный эмулятор разрабатываемой микропроцес- сорной системы Пдоашшш «редеют pajprfcmnr ANSI C Compiler Компилятор с языка С, поддерживающий индустриаль- ный стандарт GH(I С Compiler и расширение Numerical С, и RTL с функциями цифровой обработки сигналов CBUG9 C Souree-level Debugger Символьный отладчик для программ, написанных на языке С Поддерживается просмотр переменных и точи прерывания Auembl er/Lioker Компилятор с языка ассемблера, программа компонов- ки модулей в одни исполняемый файл Simulator Программа, эмулирующая функции процессора Пред- ка! течете для отладки программного обеспечения без наличка цифрового сигнального процессора PROM Spliner Преобразование полученной исполняемой программы, в вид пригодный для записи в ПЗУ При создании программ для процессоров обработки сигналов следует акцептировать внимание на сокращение времени выполнения того или ино- го участка кода Также желательно макснманыю эффективно использовать все возможности архитектуры процессора. В качестве примера рассмотрим разработку программы для двумер- ной фильтрации фрагмента изображения. В главе 5 были введены все необ- ходимые формулы для выполнения этой операции Как видно, основной операцией при выполнении фильтрации является свертка исходного фраг- мента изображения X с прямоугольным окном Я. Посредством подбора тех или иных весовых коэффициентов окна можно получить различные эффек- ты в обработанном фрагменте Зададим размеры изображения: М - 16, N ~ 32 Будем использовать прямоугольное окно размером 3x3 Создание программы начинается с описания файла архитектуры В данном файле необходимо определить тип процессора и описать сегменты паматн для хранения данных и про>раммы Выберем тип процессора - ADSP21062. Для решения поставленной залами потребуются следующие сегменты памяти - сегмент кода для обработчика прерывания RESET . - сегмент кода для программы ;
313 Глава В - сегмент данных для весовых коэффициентов, - сегмент данных для исходного и обработанного изображения Первые три сегмента будут располагаться в памяти программ, а по- следний - в памяти данных. Размещение весовых коэффициентов в памяти программ даст возможность производить одновременный доступ и к исход- ному изображению и к этим коэффициентам Ниже приведен полный текст полученного файла архитектуры syjicm ImageProcessing, название системы ргосемог ~ ADSP21062. тип процессора segment /ram /begin*4)x20004 /end"0x20008 /pm pm_rsti /width 48, лае каждого сегмента : segment /ram/begin-Ox20l00 /end-Cx2OI28 /pm pm_code /width 48, верес начала, оконча- ния, segment /ram /begin*4)x2)OOO /end-0x23009 /pm pmdati /width 32, тип, название, segment /ram /begin-0x23010 /end *=0x27000/dm dmdati /width 32. ширива слова endsys. t Перейдем непосредственно к написанию программы фильтрации изо- бражения. Сначала необходимо определить структуры данных для хранения исходных данных и результатов. В сегменте данных РМ DATA будет раз- мещен массив весовых коэффициентов А, а в сегменте данных DM DATA - массив исходного изображения input и полученного изображения output В языке ассемблера предусмотрена возможность инициализации переменных значениями из внешнего файла. Подобным образом из файла «h dal» на эта- пе компиляции инициализируется массив весовых коэффициентов Размер массива output меньше размера массиве input, поскольку на шаге М-2 в ре- зультате операции свертки с матрицей коэффициентов размером 3x3 будут обработаны все исходные данные SEGMENT/DM dm_dals. расположение сегмента в памяти данных н его название DMDATA VAR input(m*n). исходное изображение размером М*К VAR output[(m-2)*(n-2)]. обработанное изображение размером (M-2)*(N-2) ENDS EG, коней сегмента SEGMENT/PM pm .data, расположение сегмента в памяти программ и его название PM_DATA VAR h[3 * Э ]-'h dot*, массив весовых коэффициентов ENDSEG, конец сегмента
ЦПОС с плавающей запятой семейств» ADSPZl-iii Прежде чем рассмотреть основную часть программы фильтрации, уделим внимание фрагменту кода обработчика прерывания RESET. Данные инструкции выполняются процессором после сброса и необходимы для на- чальной инициализации некоторых регистров и перехода на начало основ- ной программы. В данном случае в обработчике прерывания RESE'I выпол- няется установка режимов ожидания внешней памяти (регистр HS4/7") н пе- реход на начало основной программы. Предполагается, что банки памяти 0. 1, 2, 3 и память без банков функционируют без дополнительных циклов ожидания н процессор будет игнорировать входной сигнал АСК SEGMENT/PM pm_mi, расположение сегмента памяти программ м его название PM_RSTI NOP, вег операнпп USTAT2" 0х10М21, тначенка аля регистра WAIT DM(WA1T)=USTAT2. установка внешней памяти без ияклов ожидания JUMP setup, безусловный переход (метка setup) ENDSEC. конец сегмента В начале программы фильтрации необходимо произвести начальную установку регистров генераторов адреса Поскольку исходное изображение располагается в памяти данных, то для его адресации будем использовать первый генератор адреса с регистрами НО, 10, МО и 1.0 Аналогичным обра- зом для массива коэффициентов фильтра - генератор адреса с регистрами Н8,18. М8 и 1.8 Обработка изображения выполняется в двух вложенных циклах. Во внешнем цикле определяется начальная точка для вычислений и произво- дятся изменения индексов массива, во внутреннем цикле происходят все основные вычисления Во избежание дополнительного цикла чтения памяти программ, третий коэффициент фильтра до начала вычислений записывает- ся в регистр F5 Регистр F12 используется для хранения частичных произ- ведений, а регистр F8 - для хранения частичных сумм Для сокращения ко- личества повторений внутреннего цикла, запись частичной суммы происхо- дит во второй инструкции, а не в конце цикла. Ниже приведен текст программы фильтрации CONVJxJ ASM Двумерны сверти изображения с фильтром JXJ —............................—.....-......Ч ^include *dcQ)060 h* /* Определение регистров ЮР *! Мefine m 16/* задание маасимааьных */ edefine п 32 /* размеров изображения */
SEGMENT/DM dm_daia, /‘ сегмент данных а памяти данных */ VAR inputfm'n], /* массив, содержащий входное изображение */ VAR <xjtpul[(m-2)‘(n-2)). /* массив, содержащий обработанное изображение * ENDSEG. SEGMENT/PM pm_daia, !* сегмент данных в паматн программ •/ VAR h[J*3]“'hdal"; /* массив коэффициентов фильтра */ ENDSEG. SEGMENT/PM pm^rsti, /• сегмент обработчика вектора прерывания RESET •/ NOP, /• нет операции •/ USTAT2-0x108421, /* Первая инструкция */ DM(WAIT^"USTAT2, /* Установка внешней памяти без циклов о жила и ил •/ JUMP setup, /* Переход кв начало программы */ ENDSEG. SEGMENT/PM pm code, /‘сегмент кода программы */ setup М0=1, /* установка регистров для генераторов адреса */ М1"п-2, /* памяти данных */ М2-Ч2*п*П. М8“ |./‘ и памяти программ */ М9=2. BOinput, LOO. B8-h, L8-@h. BOoutpul*Jm-2),(n-2). L9“@oulput. F5“PM(h+2), /• в регистре будет храниться третий коэффициент фильтра */ h_conv F0-DM(10.MO), F4-PMU8.M8). LCNTR-m-2, DO inrow UNTIL LCE, / внешний цикл no строкам исходного изображения *t LCNTR’n-2, DO indeed UNTIL LCE, /* внутренний цикл по столбцам исходного изображения ’/ F8=F0*F4. F8=F8+F 12, Ffr=DM(IO.MO). F4-PM(18,M9), /• в каждой комдиве выполнение операций FI2-F0*F4. FO=DM(IO,M1). PMfl9.M8)=F8. F12-F0‘FS. F8-F8-F12. Ffr=DM(IO.MO). F4-PMfl8.M8)./' умножения, •/ F12"F0*F4. F8“F8tF12, FO=DM(JO,MO). F4-PM(I8,M8), /* накопления н ’/ FI2-F0‘F4. F8-F8-rF12. F0-DM(10.MI). F4-PM(JBM8), /• чтения новых •/ F12=F0’F4, F8“F8+F12. F0=DM(J0,M0), F4-PM(I8,M8). /• исходных данных */ Fl2-F0*F4, F8-F8-F12. FODM(10,M0). F4=PM(J8,M8), /• и коэффициентов фильтра ‘ FI2-F0-F4, F8-F8+F12, F0=DM(l0,M2). F4=PM(18,M8), in_col H2“F0‘F4, F8-F8+F12. FO=DM(IO,MO), F4=PM(ie.M8),/’ окончание вкутреп него цикла *1 MODIFY(IO.MO), /* переход кв новую строку */ in_row FO^DMflO.MO)./* окончание внешнего цикла */ RTS(DB), F8-F8+F12. /* отложенный выход ня подпрограммы */ PM(J9.M8)=F8, /* вычисление и запись последней частичной суммы •/ NOP. ENDSEG,
ЦПОС с длавяющей моя той семейств» ADSP21-m Ш 8.5 Многопроцессорные системы ADSP-21 Обх Многочисленные приложения цифровой обработки сигналов (ЦОС) требуют очень высокой скорости вычислений, в которых даже самый быст- родействующий сигнальный процессор нс в состоянии в одиночку спра- виться с обработкой в реальном времени В то же время многие алгоритмы ЦОС возможно разделить на отдельные задачи, которые, с целью повыше- ния быстродействия, выполняются параллельно различными процессорами в единой мультипроцессорной системе При разработке процессоров семейства ADSP-2\06x в его схему были введены функциональные особенности, которые позволяют использовать ЦПОС в многопроцессорных системах ЦОС. Эти особенности включают наличие встроенного арбитража доступа к ведущей шине и возможность обращения к ОЗУ и регистрам процессора ввода/вывода других ADSP- 21 Обх В многопроцессорной системе с несколькими ЛО57*-2Ю6х, функциони- рующими в режиме разделения внешней шины, любой из процессоров мо- жет стать ведущим и управлять системной шиной, которая состоит нз 40- битовой ШД. 32-разрядной ША и группы управляющих линий. При этом ОЗУ и регистры процессора ввода/вывода (ПВВ) всех Л/25?*-2106х. входя- щих в систему, образуют пространство памяти многопроцессорной систе- мы. Адреса внутреннего ОЗУ и регистры ПВВ каждого сигнального процес- сора отображаются иа это пространство. Как только один нз ЦПОС стано- вится ведущим, он может непосредственно работать с ОЗУ и регистрами процессора ввода/вывода любого подчиненного Л/Э57>-2106х, включая внешний порт Г'1 }'() б у феров данных Ведущий процессор может записы- вать данные в регистры ПВВ дяя установки режима ПДП млн генерации векторного прерывания В многопроцессорных системах обычно применяются две схемы связей межау процессорами. В первой из них используется выделенный канал для обмена данными между ЦПОС, а во второй - единая разделяемая глобаль- ная память, доступ к которой осуществляется через параллельную шину В случае выделения канала обмена AOSP-21 Обх SHARC может быть соединен с другими процессорами через собственные линейные порты, либо подклю- чаться к разделяемой параллельной шине (так называемое кластерное со- единенье) Эффективность многопроцессорных систем во многом зависит от схе- мы обмена информацией между процессорами, которая определяет затраты на межпроцессорные связи и скорость передачи данных Наличие в ADSP- 21 Обх встроенных аппаратных средств позволяет строить мультипроцессор- ные системы па основе одной их трех топологий: потоковой, кластерной или матричной Так для обработки больших межпроцессорных потоков
Глин 8 данных больше всего подходит потоковая топология (Data Flaw Multiprocessing). Мультипроцессорные системы, построенные по схеме об- работки патока данных, состоят из нескольких процессоров SHARC, соеди- ненных последовательно с помошью линейных портов (рис. 8 6) В случае использования такой топологии программист разделяет ал гор им обработки на несколько процессов и пропускает данные последовательно по конвейе- ру Л/Л\7’-2)06х SHARC идеально подходит для систем такого типа, т.к. нет необходимости во внешней памяти и в буферах FIFO для связи между про- цессорами. Емкости встроенной памяти процессора оказывается вполне достаточно для размещения ходов команд и данных большинства приклад- ных задач. Кроме того, схема обработки проста в реализации и имеет невы- сокую стоимость. Недостаток згой топологии состоит в ограниченной гиб- кости системы. Рис.8 6. Потоковая микропроцессорная система Кластер нал топология (Cluster Multiprocessing) наиболее подходит дли систем, от которых требуется максимальная гибкость, в частности, при под- держке нескольких задач, часть из которых может конкурировать Кластер- ные многопроцессорные системы содержат несколько процессоров SHARC. соединенных параллельной шиной, которая позволяет осуществлять меж- процессорный доступ как к встроенному в кристалле ОЗУ, так к к разделяе- мой глобальной памяти (рис.8 7). Рис.8 7. Кластерная многопроцессорная система
ЦПОС с плшютеЙ пятой семейства ADSP2l-ni И7 В типичном кластере (блоке) на процессорах ADSP-2 Юбх может со- держаться до шести процессоров и один главный [хост-процессор). осуще- ствляющий арбитраж шины. Встроенная в кристалл логика позволяет сиг- нальным процессорам разделять общую шину без дополнительной аппарат- ной части. Запрос шины генерируется автоматически каждый раз. когда процессор обращается к внешнему адресу Как только ADSP-2IO6x стано- вится ведущим, он может получить доступ не только к внешней, но и внут- ренней памяти и регистрам других процессоров Ведущий процессор на- прямую перемешает данные в другой процессор нлн инициализирует для этого каная ПДП. Кластерная конфигурация позволяет .МЛЖ'-процессорам работать на максимальной скорости межпроцессорного обмена Матричная топология представляет собой несколько процессоров, со- единенных в двух- или трехмерную сеть. Такая топология может оказаться весьма эффективной в ряде приложений (система отображения данных в радио- и гидролокаторах и пр.). На рис.8.8 изображена даухмерная матрица сигнальных процессоров. Линейные порты обеспечивают связь с соседними процессорами и маршрутизацию данных. Одни ведущий процессор обеспе- чивает поток команд, который выполняет массив. Несколько сигнальных процессоров /4/ZS7*-2106x могут совместно ис- пользовать внешнюю шину без дополнительной схемной части для арбит- ража шин Логика арбитража, встроенная в микросхему, позволяет соеди- нить до шести z4DS/*-2)O6x и один главный (hoxij компьютер. Электрическая схема многопроцессорной системы изображена на рнс.8.9 Q этой схеме ин- терфейс главного процессора, глобальная память н ППЗУ загрузки являются нс обязательными Рис.8.8. Матричная топология микропроцессорной системы Арбитраж шины осуществляется с использованием сигналов HRtJ1 H&R и HRG Линии BR|-BR«, выполняют арбитраж между несколькими
ГляЬв В HDS/*-2)06x, a HHR и HHG используются для передачи управляющих сигналов от ведущего Л/Д$Р-2)06к соси вепл веяно к главкому процессору и обратно Вид арбитража определяется уровнем сигнала на выводе RPBA Низкий уровень соответствует фиксированному приоритету каждого из ADSP-11 Обх, а высокий - циклической ротании приоритета процессоров. Рис. 8.9. Схема многопроцессорной системы на базе ЦПОС ADSP-2106х Уровни напряжений на выводах //Л-о обеспечивают идентификацию каждого процессора в многопроцессорной системе. Первый процессор дол- жен иметь идентификационный номер 001, второй 0)0 и т.д. (см.рнс.89) Один из процессоров должен обязательно иметь номер 001 для того, чтобы схема синхронизации шины работала правильно. Когда на входах ID про- цессоров установлены уровни 001-ПО, то ЦПОС самостоятельно конфигу- рируются для многопроцессорной системы и отображают свою встроенную память и регистры ввода/выводв на пространство памяти многопроцессор- ной системы. ID-0W конфигурирует данный Л£>£Р-2106х для работы в од- нопроцессорной системе. Состояние ID=\ 11 зарезервировано и нспользова-
ЦПОС с гыииюшей и пятой сгмейстм ADSPZI-ua ЗМ9 нию не подлежит. В схеме с фиксированными приоритетами высший при- оритет имеет процессор с меньшим I!) Каждый из процессоров многопро- цессорной системы путем анализа битов CRBAK2-0) регистра SYSTAT может определить, какой из ЦПОС является ведущим в системе Эти биты показы- вают номер ведущего процессора в текущий момент времени. Используя команды проверки выполнения условия (1Г itmduwn compute}, можно программно определить, является ли данный процессор ведущим (Bus Master) или подчиненным Мнемоника ассемблера по опре- делению ведущего процессора - ВМ (либо NBM - отрицание ведущего). Ка- ждый раз. когда ведущий ЦПОС прекращает использовать шину, он снима- ет сигнал BR,, позволяя другому Л/)57*-2106х запросить упраалспне систем- ной шиной В большинстве многопроцессорных систем желательно ограничить время занятия системной шины только одним процессором. Для этого про- грамм и ым способом загружают регистр ВМАХ максимальным количеством циклов минус 2. после которых процессор теряет статус ведущего Когда в результате декремента это число станет равным пулю, текущий ведущий процессор убирает свой сигнал BR, . что позволяет произвести передача упраалепня системной шниой другому процессору Цикл, в котором веду- щий процессор передает управление шиной другому сигнальному процес- сору, называется циклом перехода шины. Он происходит в момент, когда те- кущий управляющий процессор убирает активный уровень со своего кон- такта BR„ а один из подчиненных процессоров устанавливает активный уро- вень на аналошчном выводе Для приобретения статуса ведущего подчи- ненный процессор ждет цикла перехода шины. Если запросивший процес- сор имеет наивысший приоритет в этот момент, то ои станет ведущим в следующем цикле. В противном случае он продолжает ждать. В связи с тем. что j4/AV/'-2106x в процессе функционирования наблюдает за всеми линиями BR, многопроцессорной системы, каждый ЦПОС может определить, когда наступает цикл перехода шины и какой процессор стал ведущим после его завершения В многопроцессорной системе ведущий процессор может осуществить непосредственный доступ к внутренней памяти и регистрам ввода/вывода других процессоров. Он производит чтение иян запись ячеек памяти, вхо- дящих в пространство памяти мультипроцессорной системы Таной режим доступа получил название прямая запись иян прямое чтение. Когда проис- ходит прямая запись в подчиненный лМ7*-2)06х данные и адреса сохра- няются в четырсхуровневом F/ГО-буферс процессора ввода/вывода. В слу- чае переполнения буфера подчиненный процессор снимает сигнал подтвер- ждения АСК на время, пока буфер не освободится. Таной доступ невидим для подчиненных процессоров, т к он осуществляется через внешний порт и внутрикристальную шипу процессора ввода/вывода. Это позволяет подчи-
J 90 ненному процессору продолжать выполнение программы без перерывов В процессе прямого чтения подчиненного процессора адрес ячейки памяти фиксируется процессором ввода/вывода. при этом происходит сброс сигна- ла АСК. После завершения процедуры чтения этот сигнал сном устапавли- мется в активное состояние То. прямое чтение не конвейеризируется В связи с этим прямое чтение не является самым эффективным способом пе- ремещения данных из подчиненного процессора. Для одновременного перемещения данных во все процессоры много- процессорной системы используется широковещательная запись Ведущий процессор может производить широковещательную запись в одлнаковые области памяти нлн регистры процессора ввода/вывода во все подчиненные- процессоры и в себя самого Такой вид записи используется для одновре- менной загрузки данных и программ па несколько процессоров Наиболее эффективным способом перемещения данных между веду- щим и подчиненным процессорами является прямой доступ в память (ПДП). Ведущий процессор может инициировать операции ПДП путем за- писи управляющих слов в регистры параметров и управления ПДП. а также установить внешний порт каналов ПДП для пересылки блоков данных как нэ. так и во внутреннюю память подчиненного процессора. После того, как канал ПДП установлен, ведущий ЦПОС может читать (или писать) из соот- ветствующего буфера подчиненного процессора или запрограммировать для этого свой собственный контроллер ПДП Ведущий процессор может уста- новить внешний порт ПДП для перемещения данных во внешнюю память, используя линии запроса и подтверждения ПДП. Для разделения вычислительных ресурсов и синхронизации в много- процессорной системе используются семафоры Так как обе памяти, внеш- няя н встроенная, в /4DS7*-21O6x доступны со стороны любого процессора, то семафоры располагаются практически где угодно. На практике для сема- форов чаше всего используются регистры общего назначения процессора ввода/вывода MSGR0-MSGR7 Используя возможность блокировки шины Л/-)5/*-2106х может читать и модифицировать семафор в течение одлой ко- манды. Для передачи управления в многопроцессорной системе ^DS/*-2106x используются векторные прерывания. Ведущий процессор выдает вектор прерывания подчиненному ЦПОС путем записи адреса процедуры обслу- живания прерывания в регистр WRK!' подчиненного процессора. Это обу- сл в ал и мет высокоприоритетное прерывание, которое переключает подчи- ненный процессор на выполнение требуемой процедуры. Младшие 24 бита вектора содержат адрес подпрограммы, а старшие 8 бит могут быть допол- нительно использованы в качестве данных дая чтения процедурой обслужи- вания прерывания.
191 БИБЛИОРАФИЯ I Баскаков С И. Радиотехнические цепи и сигналы.-М: Высшал школа, 1983.-536с. 2 Бендат Дж., Пирсон А. Применения корреляционного и спектрального анализа.-М Мир. 1983.-312с 3 Вайдьянатхаи П.П. Цифровые фильтры, блоки фильтров и полнфазные цепи с мпогочастотной дискретизацией Методический обзор// ТИИЭР- 1990 -N3. -С.77-120. 4 . Гольдеиберг Л.М., Матюшкин БД. Поляк МН Цифровая обработка сигналов: Справочник -М.:Радио и Связь,1985.-3|2с. 5 Гоноровскнй И С. Радиотехнические цепи и сигналы - МСов.радио. 1977-60 8с. 6 . Гутннков В.С. Фильтрация измерительных сигналов.-Л.. Энергоатом издат. Ленингр. отд-нне, 1990.-)92с 7 Даджнон Д, Марсеро Р. Цифровая обработка многомерных енгналов- М.:Мир,1988-488с. 8 Зубарев Ю Е . Глориоэов ГЛ Передача изображений -М Радио и связь, 1989 -332с. 9 . Икойика Цифровая обработка видеоинформации.-М.:Наука, 1989 -)86с 10 Каппелини В., Костаггениднс А. Дж, Эмилиани П. Цифровые фильтры н их применение -М. Энергоатомнздат ,1983,-360с. 11 Марпл С Л Цифровой спектральный анализ и его приложения- М :Мнр.1990.-584с 12 .Методы передачи изображений. Сокращение избыточности/ Под ред У К. Прзтта.-М.:Радно и связь.|983.-264с 13 .МошицГ., Хорн П. Проектирование активных фильтров: Пер. с англ.-М.: Мир. 1984.-320с. 14 .Назаров М В. Прохоров Ю Н Методы илфровой обработки и передачи речевых сигналов -М.:Радно и связь, 1985 -176с 15 .Применение цифровой обработки сигналов / Под рсд. Э Олпенгейма.-М.: Мир, 1980 -550с. 16 .Рабннер Л., Гоулд Б. Теория и применение цифровой обработки cHhiajiOB -М Мир.1978 -848с
WJ П.Рабипер ДР, Шафер P.D Цифровая обработка речевых сигналов -М Радио и связь. 1981,-495с 18 .Радиотехнические цели и сигналы/ Д В Васильев, М Р Витоль, ЮН Горшенков и др, Пол ред К.А.Самойло М. Радио и связь, 1982.-5 28с. 19 . Справочник по расчету и проектированию ARC-схем/ С А Букашкин, В.П.Власов, БФЗмий и др., Под ред. АА.Ланнэ-М Радио и связь.1984- 358с. 20 .Цифровая обработка телевизионных и компьютерных изображений / А.В. Дворкович, В.П Дворкович, Ю.Б Зубарев и др , Под рсд Ю.Ь Зубарева и В П. Дворковича -М.: Международный центр научной и технической информации, 1997-212с 21 .Цифровые фильтры в электросвязи и радиотехнике/ А.В Брунченко, Ю. Г. Буты л ьс кий. Л М.Гольдснберг и др. Под ред. Л.М Гапьдепберга - М :Радио и связь. 1982 -224с. 22 Хэмминг Р В. Теория кодирования и теория ннформацни.-М Радио и связь, 1983 -176с. 23 Чернота В С Сжатие информации в компьютерных сетях.-Севастополь: Учеб пособие для вузов: Пол рсд В К Маригодова- Изд-во СевГГУ,)997 -214с. 24 Яншин В Обработка изображений на языке Си для IBM PC: Алгоритмы и программы.-М Мир.1994 -240с 25 .ADSP-21OO Family DSP Microcopuiers -Norwood: Analog Devices, 1994 26 ADSP-2IO6x SHARC User’s Manual -Norwood:Analog Devices, 1995. 27 .Baudendistel K. An Improved Method of Scaling for Real-Time Signal Processing Applications// IEEE Trans of Education -1994 -V 37 -N-3 P 281-288 28 .CCITT G.726 General aspects of digital transmission systems. Terminal equepments 40,32,24.16 K/s Adaptive diftcrcntial pulse code modulation (ADPCM) Rccomendation G 726 -Gcneva.1990 - 57p. 29,Klctte R , Zamperoni P Handbuch dcr Opcratoren fuer die Bildbcarbcitung - Braunschweig: Vieweg. 1992 - 303 s. 30 Kroon P, Deprettere E F A class of analysis-by-synthests predictive coders for high quality speech coding al rates between 4 8 and 16 kbits/s // IEEE J Select Areas Commun -1988 -V.6 -N2 -P 353-363 31 Lasley P., Bier J., Shoman A .Lee E DSP Processor Fundamentals-New York IEEE Press. 1997-21 Op 32 Nelson M. Daten Kompnmierung Effiziente Algonihmen in C-Hannover Verlag Heinz lleisc,1993.-475p 33 Noll P. MPEG Digital Audio Coding// IEEE Signal Processing Magazine- 1997 -V I4.-N9.-P.59-8). 34 .Sayood Khalid . Introduction to Data Compression - San Francisco:Morgan Kaufmann Publishers Inc ,1995 -453p 35 Second-Generation TMS320 User’s Guide -Avril TI.)990
19) 36 Spanias A. Speech coding: A tutorial review // Proc. IEEE-1994 -V 82,- P 1541-1582. 37 Wallace G.K. The JPEG Still Picture Compression Standard H Communication in ACM.-1991 -V.34 -N4 -P.31-44.
sw ) СОДЕРЖАНИЕ ПРЕДИСЛОВИЕ............................................................ j ВВЕДЕНИЕ....................................................... s Глава ) ЭЛЕМЕНТЫ ТЕОРИИ СИГНАЛОВ И СИСТЕМ...................... 8 1.1 Классификация сигналов................................ 8 1.2 Преобразования Фурье непрерывных сигналов.............. Ю 12 I Раиюкекне периодических сигналов в рад Фурье 10 I 2 2 Интегральное преобразование Фурье 16 1 2 3 Свойства интегрального преобразован на Фурье 20 I 2 4 Обобщенный р«Д Фурье и системы базисных функций. 24 1.3 Непрерывные системы................................. 31 I 3 1 Импульсная и частотна* характеристики системы 31 1 3 2 Преобразование Лапласа н передлточная функция системы 34 I 3 3 Аналоговые фильтры 37 1.4 Основные характеристики случайных сигналов............ 42 1.5 Дискретные сигналы и системы.......................... 46 I 5 I Преобразование спектра при дискретизации сигналов 46 I 5 2 Теорема Котельникова 49 I 5 3 Дискретно-непрерывное и дискретное преобразования Фурье 51 I 3 4 Быстрое преобразование Фурье 53 1 5 5 Дискретное косинусное преобразование 57 I 5 6 Дискретное преобразование Лапласа и Z - преобразование 60 1 5 7 Дискретная сверти и ее вычисление 64 I 5 В Линейные дискретные системы и цифровые фильтры 65 I 5 9 Системы С повышением и понижением частоты дискретизации 74 1.6 Эффекты квантования в цифровой обработке сигналов.............во I 6 I Формы приставления чисел 80 I 6 2 Квантование chihuob 87 1.6 3 Квантование и масштабирование сигналов в цифровых фильтрах 90 I 6 4 Масштабирование сигналов при вычислении БПФ 96 17 Многомерные дискретные сигналы и системы .. 99 I 7 I Двумерные дискретные сигналы 99 I 7 2 Двумерные дискретные системы 101 I 7 3 Дискретно-непрерывное преобразование Фурье двумерных сигналов . 104 I 7 4 Двумерное дискретное преобразование Фурье 106
595 Глава 2 ЦИФРОВОЙ СПЕКТРАЛЬНЫЙ АНАЛИЗ................ 108 2.1 Назначение спектрального анализа........ 108 2.2 Пернодограммный метод...................... 109 2.3 Спектральный анализ, основанный на параметрическом моделировании Нб Г лава 3 СИНТЕЗ ЦИФРОВЫХ ФИЛЬТРОВ................... 120 3.1 Синтез нерекурсивных цифровых фильтров..... 120 3 I I Основные виды и свойства нерекурсивных фильтров 120 3 1 2 Синтез НРФ с использован нем оюн 122 3 I 3 Метод частотной выборки 126 3 1 4 Метод нянлучшей рввпомервой во проке и майн и 129 3.2 Синтез рекурсивных цифровых фильтров................ 131 3 3 Синтез двумерных цифровых фильтров................. 136 3 3 I Общие сведения о методах синтеза двумерных ЦФ 136 3 3 2 Метод овинных функций 137 3 3 3 Метол частотной выборки 14 ] 3 3.4 Метод частотных преобразований 143 Глава 4 ОБРАБОТКА РЕЧЕВЫХ И АУДИО СИН АЛОВ................... 145 4 1 Основные свойства речевых сигналов................... 145 4 2 Дискретизации и квантование речевых сигналов 4.3 Анализ речевых сигналов во временной области......... 151 4 4 Анализ речевых сигналов в частотной области.......... 152 4 5 Г омоморф нал обработка речи......................... 156 4 6 Анализ речи на основе линейного предсказания......... 160 4.7 Сжатие речевых сигналов ............................ 166 4 8 Сжатие аудио сигналов................................ 171 4 8 I Пснхоакустичссш модель восприятия звука 171 4 8 2 Перцептивное водирование аудио сигналов 174 4 8 3 Сжатие аудио сигналов в соответствии со стандартами 1SO/MPEG 176 Глава 5 ОБРАБОТКА ИЗОБРАЖЕНИЙ................................. 180 5 I Устройство компьютерных систем обработки изображений 180 5.2 Операции нал изображениями........................... 184 5.3 Предвари тел ь нал обработка информации.............. 190 5 3 I Линейная фильтрация изображений 190 5 3.2 Подавление шумов н сглаживание. 194 5 3 3 Нелинейная локальная фильтрация 195 5.4 Подчеркивание перепадов яркости и границ ............ 196 5 5 Сжатие полутоновых черно-белых и цветных изображений.. 200 5 5.1 Кодирование изображений с частичной потерей информации 200 5 5 2 Кодирование изображений метолом ИКМ и ДИКМ 202 5 5.3 Кодирование изображений с преобразованием 207 5 5.4 Стандартная процедура кодирования изображений JPEG 211 5.6 Обработка изображений в системе MATLAB............. 218
1% Глава 6 ЦИФРОВЫЕ ПРОЦЕССОРЫ ОБРАБОТКИ СИГНАЛОВ (ЦПОС)............................. 224 6 1 Общая характеристика Ц1IOC 224 6.2 МАС ~ операция и другие операции обработки данных ЦПОС.................................... 226 6.3 Организация памяти ЦПОС и режимы адресации.......... 233 6 4 Архитектурные особенности основных семейств ЦПОС................................... 237 6 4 I ЦПОС фирмы Motorola 237 6 4 2 ЦПОС фирмы Texas I nt rument s 242 6 4 3 ЦПОС фирмы Analog Devices . 245 6.5 Инструментальные средства разработки систем на основе ЦПОС.................................... 249 Глава 7 ЦПОС С ФИКСИРОВАННОЙ ЗАПЯТОЙ СЕМЕЙСТВА TMS32OC2x........................... 253 7.1 Назначение выводов процессора....................... 253 7.2 Структурная схема ЦПОС TMS320C25.................... 256 7.3 Организация памяти.................................. 259 7.4 Аппаратные средства адресации....................... 261 7.5 Центральное арифметическо-логическос устройство..... 262 7 6 Средства управления............................... 265 7 6 1 Счетчик команд и стек 265 7 6 2 Таймер, регистр периода, счетчик числа повторений 268 7 6 3 Регистры состояний ST0 и STI 269 764 Прерывания 271 7 6 5 Мультипроцессорные средства и прямой доступ к памяти 273 7.7 Режимы адресации и форматы команд.................... 275 7 7 1 Режимы адресации 274 7 7 2 Форма описания команд ЦПОС 277 7 8 Команды аккумулятора................................. 278 7 8.1 Команды арифметических операций 278 7 8 2 Команды логических операций 285 7 8 3 Команды загрузки и запоминания содержимого аккумулятора 288 7.9 Команды вспомогательных регистров и указателя страниц 291 7 9 1 Команды арифметических оперений и операций отияшений 291 7 9 2 Команды загрузки и сохранения значений регистров 293 7.10КомандыТ и Р регистров, команды умножения............ 295 7 10 I Команды загрузки, запоминания, сложениям вычитание 295 7 10 2 Команды умножения........................... 299 7 11 Команды переходов и вызова подпрограмм.............. 302 7.12 Команды ввода-вывода и пересылок данных............. 305 7 12 I Коиянды пересылки данных 305 7 12.2 Команды ввода-вывода ....................... 307 7.13 Команды управления.................................. 309 7.13 1 Команды управления стеком. 309 7]32 Команды управления цнияами ................... 311
397 7 13 3 Команды управления прерываниями 312 7 1J4 Команды загрузки и запоминания регистров состояний )12 7 13 5 Команды управления отдельными битами 313 7 14 Общие вопросы программирования ЦПОС.................. 314 7 14 1 Программирование на языке ассемблера 314 7 14 2 Директивы ассемблера 116 7 15 Программирование основных структур алгоритмов. 320 7 15 1 Программирования разветвляющихся алгоритмов 320 7 15 2 Программирование циклических алгоритмов 321 7 16 Структуры данных..................................... 325 7 16 I Массивы 325 7 16 2 Очереди и кольцевые буферы 329 7 16 3 Стеки . . . 332 7.17 Подпрограммы....................................... 334 7 18Обработка прерываний.................................. 336 7 IВ 1 Сохранение контекста . 337 7 18 3 Прерывание таймера 339 7 18 4 Иницивалкзаиия процессора по прерыванию 340 7 19 Прикладные программы............................... 342 7 19 1 Сложение и вычитание ... 342 7 19.2 Умножение и накопление значений 343 7 19.3 Операции над числами с плавающей запятой 345 7 19 4 Реализация алгоритмов цифровой фильтрации 347 7)9 5 Реализация алгоритма БПФ 35) Глава 8 ЦПОС С ПЛАВАЮЩЕЙ ЗАПЯТОЙ СЕМЕЙСТВА ADSP-ZIiKK........................................... 356 8.1 Общая характеристика процессора ADSP-2IO6x........... 356 8.2 Система команд и регистры ADSP-2I06x................. 367 8 3 Организация и адресация памяти 174 8.4 Программирование процессоров семейства ADSP-21000.... 380 8.5 Многопроцессорные системы ADSP-2IO6x................. 385 Библиографий................................................... 391
Учебное издание Бондаре» Владимир Никоккяич Tptcmep Гергар<> Черлега Виктор Степанович Цифровая обработка сигналов: методы и средства Bondarev V.N., Troester G . Chemega V.S Digital signal processing: Methods and (nsruments Научно-теяннческнй редактор Маритодов В К . д-р тин наук, профессор
Отсканировал и преобразовал в DjVu Александр Богомаз albom85@yandex.ru http://albom85.narod.ru Подписано в печать J 5.07.200] г. Формат 60x90 1Л6. Гарнитура Таймс. Печать офсетная. Бумага газетная. Усл. печ. л. 25. Тираж 550 экз. Издательство “Конус". Украина, 61144 г. Харьков-144. а/я 8641 Отпечатано с готовых позитивов в ЧП “Торнадо" г. Харьков, ул. Космическая, 21а
В. Бондарев, Г. Трёстер, В. Чернега ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ: методы и средства Книга подготовлена специалистами Украины и Швейца- рии В ней в систематической форме излагаются основные методы цифровой обработки сигналов и вопросы их прак- тической реализации на основе цифровьх сигнальных про- цессоров. Рассматриваются методы цифрового спектрального ана- лиза. обработки реии и аудиосигнапов, обработки изобра- жений г1риводи'ся архитектура, система команд, примеры программирования цифровых сигнальных процессоров фирм: Motorola, Texas Instruments. Analog Devices