МПС

Цифровые процессоры обработки сигналов (Лекция)

 

ПЛАН ЛЕКЦИИ

1. Общая структура цифровой обработки сигналов

2. Структура процессоров цифровой обработки сигналов

3. Основные показатели процессоров цифровой обработки сигналов

4. Основные производители сигнальных процессоров

5. Аппаратная реализация

 

1. Общая структура цифровой обработки сигналов

Цифровые процессоры обработки сигналов (ЦПОС) или их равнозначное название – цифровые сигнальные процессоры (ЦСП или просто сигнальные процессоры), англоязычное сокращение – DSP (Digital Signal Processor), предназначены для реализации алгоритмов цифровой обработки сигналов (ЦОС) и систем управления в реальном времени.

 

Схема цифровой обработки аналоговых сигналов.

Кодер формирует последовательность чисел, соответствующую обрабатываемому аналоговому сигналу.

Декодер по принятому сигналу формирует аналоговый сигнал, то есть производит преобразования, обратные происходившим в кодере.

На вход системы поступает ограниченный по длительности сигнал x(t). В силу конечной длительности сигнала его спектр бесконечен.

Аналого-цифровое преобразование осуществляется в два этапа: дискретизации по времени и квантования по уровню.

Дискретизация – это процедура взятия мгновенных значений сигнала x(t) через равные промежутки времени Т. Мгновенные значения x(nТ) называются выборками, время Т – период дискретизации, а n - указывает порядковый номер отсчета. Чем чаще брать отсчеты, тем меньше период дискретизации Т, тем точнее последовательность отсчетов x(nТ) будет изображать исходный сигнал x (t).

Период дискретизации Т определяет частоту дискретизации:

 

                                                      fд =;                          Т =

 

Из формул видно, что чем меньше Т, тем выше частота дискретизации fд, а чем выше частота дискретизации, тем труднее вычислителю выполнять большое количество операций над отсчетами в темпе их поступления на переработку и тем сложнее должно быть устройство. Таким образом, точность представления сигнала требует увеличивать fд, а стремление сделать вычислитель как можно боде простым приводит к желанию понизить f д.  

Однако существует ограничение  на минимальное значение fд: для полного восстановления сигнала по его отсчетам x(nТ) нужно, чтобы частота дискретизации fд была, как минимум, в два раза больше наивысшей частоты Fв в спектре передаваемого сигнала x(t).

 

                                               fд 2Fв;                           Т ≤

Отсюда следует, что при бесконечном спектре, когда F → ∞, дискретизация невозможна.

Тем не менее, в спектре любого конечного сигнала есть такие высшие составляющие, которые, начиная с некоторой верхней частоты fв, имеют незначительные амплитуды, и потому ими можно пренебречь без заметного искажения самого сигнала. Значение fв определяется конкретным типом сигнала и решаемой задачей. Например: для стандартного телефонного сигнала fв = 3,4 кГц, минимальная стандартная частота его дискретизации fд = 8 кГц. Ограничение спектра до частоты F = fв осуществляется фильтром нижних частот ФНЧ.

 

Квантование отсчетов по уровням (квантование)  – производится с целью формирования последовательности чисел: весь диапазон изменения величины отсчетов разбивается на некоторое количество дискретных уровней, и каждому отсчету по определенному правилу присваивается значение одного из двух ближайших уровней квантования, между которыми оказывается данный отсчет. В результате получается последовательность чисел x(nТ) = x(n), представляемых в двоичном коде. Количество уровней определяется разрядностью АЦП. Например: Если разрядность АЦП = 3, то всего можно иметь к = 23 = 8 уровней квантования, а минимальное значение отсчета равно 0 (000), а максимальное значение отсчета равно 7 (111). Ясно, что квантованный отсчет отличается от выборки x(nТ). Это отличие выражается ошибкой квантования:

 

,

                                                          

которая тем больше, чем меньше разрядность АЦП.

 

После АЦП последовательность x(nТ) = x(n) поступает на сигнальный процессор (СП), который по заданному алгоритму каждому отсчету x(n) ставит в однозначное соответствие выходной отсчет y(nТ) = y(n).

Количество операций (умножений, сложений и т.д.) для получения одного отсчета может исчисляться тысячами, поэтому сигнальный процессор должен работать на более высокой частоте Fг, чтобы успеть произвести все необходимые действия до поступления очередного отсчета x(n), то есть какой бы сложности не был алгоритм, время переработки tпер не должно превышать периода дискретизации T:

tпер T       

 

Но это может быть обеспечено лишь в случае, когда тактовая частота fT вычислителя существенно превышает частоту дискретизации fд:

 

fд << fT

 

Именно при этих условиях возможна работа вычислителя в реальном времени, то есть в темпе поступления входных отсчетов.

Полученные выходные отсчеты с сигнального процессора подаются на ЦАП, а затем на сглаживающий фильтр нижних частот, который преобразует их в аналоговый непрерывный сигнал y(t).

 

Основные задачи (алгоритмы) сигнальных процессоров:

 

1)  Цифровая фильтрация

Цифровая фильтрация – это селекция по частоте, то есть какие то частоты пропускать, а какие то нет. За цифровой фильтрацией стоит Z-преобразование, свертка.

2) Спектроскопи

Спектроскопия – это совокупность методов обработки цифровых сигналов, которые позволяют в сигнале найти все частотные составляющие сигнала - не выделяя и не искажая их. Здесь производится ДПФ (дискретное преобразование Фурье) и БПФ (быстрое преобразование Фурье).

3) Идентификация сигналов

Идентификация сигналов – это выделение сигналов на фоне частот и помех для того, чтобы удостовериться, что это сигнал, а не помеха. Здесь производится корреляционный анализ.

Корреляция – это степень совпадения двух функций.

4) Модуляция и демодуляция.

За модуляцией и демодуляцией стоит аппаратное, математическое преобразование Гильберта.

 

Пример: демодуляция однополосного сигнала, который получается выделением одной из боковых полос амплитудно-модулированного сигнала. Результатом демодуляции является низкочастотный сигнал, представляющий собой огибающую узкополосного сигнала. Демодулированный сигнал x(n) можно представить в комплексном виде:

               

;    

;

, 

 

где - мнимый сигнал;

x(n) – вещественный сигнал;

s(n) – огибающая сигнала x(n).

 

Из формул видно, что x(n) инаходятся в квадратуре относительно друг друга, то есть их фазы отличаются на π/2. Следовательно, необходимо иметь фазовращатель на π/2. Такие сигналы называются сопряженными по Гильберту, а устройство, формирующее пару сопряженных сигналов, называется цифровым преобразователем Гильберта (ЦПГ), который позволяет организовать вычисление огибающей s(n) сигнала x(n).

5) Сжатие, растяжение, перенос спектра

За сжатием, растяжением, переносом спектра стоит то же самое преобразование Гильберта. Считаются одним из модификаций модуляции и демодуляции.

   Вычисления алгоритмов цифровой обработки сигналов сводятся к виду  в реальном масштабе времени, когда время выполнения операций полностью прогнозируемо:

  

,

 

где n = 0, 1, 2, … , N-1

x(n) – отсчеты воздействия;

y(n) – отсчеты реакции;

bк  - вещественные коэффициенты, полностью определяющие свойства цифровых фильтров;

x(n-к) - отсчеты воздействия, задержанные на к периодов дискретизации T.

 

Фильтр, описываемый данным выражением, называется нерекурсивным, или КИХ-фильтром (фильтром с конечной импульсной характеристикой).

Пример: Нужно сделать дискретизацию за определенное время, а не вообще. Пусть частота дискретизации fд = 48 кГц (округлим до 50 кГц). Нужно сделать дискретизацию за 20 мкс. Возьмем N = 5 и распишем формулу:

 

y0 = b0x(0 - 0) + b1x(0 - 1) + b2x(0 - 2) + b3x (0 - 3) + b4x(0 - 4) = b0x0 + b1x - 1 + b2x - 2 + b3x - 3 + b4x – 4

y1 = b0x(1 - 0) + b1x(1 - 1) + b2x(1 - 2) + b3x (1 - 3) + b4x(1 - 4) = b0x1 + b1x 0 + b2x - 1 + b3x - 2 + b4x – 3

y2 = b0x(2 - 0) + b1x(2 - 1) + b2x(2 - 2) + b3x (2 - 3) + b4x(2 - 4) = b0x2 + b1x 1 + b2x 0 + b3x - 1 + b4x – 2

y3 = b0x(3 - 0) + b1x(3 - 1) + b2x(3 - 2) + b3x (3 - 3) + b4x(3 - 4) = b0x3 + b1x 2 + b2x 1+ b3x 0 + b4x – 1

y4 = b0x(4 - 0) + b1x(4 - 1) + b2x(4 - 2) + b3x (4 - 3) + b4x(4 - 4) = b0x4 + b1x 3 + b2x 2 + b3x 1 + b4x 0

y5 = записывается как y0.

 

Примечание:  x0 – это отсчет показания АЦП в данный момент времени. Если отсчет показания АЦП с отрицательным знаком, то это означает, что отсчет – предшествующий. Для вычисления y0 нужно использовать текущее показание АЦП и четыре предшествующих ему показаний, а для вычисления y1 нужно использовать x1 и четыре предшествующих ему показаний и т.д.

 

 

 

2. Структура процессоров цифровой обработки сигналов

            Базовой операцией цифровой обработки сигналов является операция умножения и добавление (накопление) результата умножения. Устройство комбинированного сложения и умножения часто обозначают при описаниях мнемоникой МАС (Multiplier-Adder Combination).      Для того чтобы работать с высокой производительностью, процессор должен выполнять операцию МАС за один цикл (такт) работы процессора. Это должно выполняться аппаратно, а не программно. Отсчеты сигнала, коэффициенты фильтра и команды программы хранятся в памяти. Для выполнения операции требуется произвести три выборки из памяти – команды и двух сомножителей. Следовательно, для работы с высокой производительностью эти три выборки необходимо произвести за один такт работы процессора. При этом подразумевается, что результат операции остается в устройстве выполнения операции (в центральном процессорном устройстве), а не помещается в память. В более общем случае, нужна еще операция записи результата в память, т.е. необходимы четыре обращения к памяти за цикл. Таким образом, производительность процессора, прежде всего, определяется возможностями обмена данными между центральным процессорным устройством и памятью процессора и организацией их взаимодействия.

В процессорах цифровой обработки сигналов должна быть гарвардская архитектура с раздельными шинами данных и команд. Благодаря этому, можно будет одновременно производить операции обращения к различным устройствам памяти, т.е. синхронно выбирать команду из памяти программ и сомножитель из памяти данных. Память данных должна состоять из двух частей (традиционно они называются: памятью x и памятью y). Для хранения отсчетов сигнала используется, например, память x, а для хранения коэффициентов – память y.

 

 

Таким образом, в процессорах Motorola для того, чтобы можно было произвести две выборки операндов за один такт, увеличивается количество независимых модулей памяти и количество шин для передачи данных. Процессоры имеют три банка (модуля) памяти для трех выборок за один такт и соответствующее количество шин. Проблемы с быстродействием могут возникнуть в случае нехватки внутренней памяти. По внешним шинам можно осуществить только одно обращение к памяти за такт.

В цифровых процессорах обработки сигналов используют специализированные устройства генерации адреса (УГА), которые формируют адреса данных, извлекаемых из памяти данных. УГА функционируют параллельно с другими модулями и позволяют одновременно с выполнением операций в АЛУ вычислять адреса операндов для следующей команды.

Циклические процессы, т.е. повторение одиночных команд и их блоков, занимают значительное место среди алгоритмов цифровой обработки сигналов. Обычная организация циклов программным образом требует использования команд формирования и проверки условий окончания циклов, которые должны выполняться при каждом прохождении «тела» цикла. На выполнение этих команд затрагивается время. Поэтому должен быть аппаратный счетчик циклов. В ПЦОС используются устройства, которые позволяют организовать циклы с «нулевыми потерями» времени на организацию (проверку условий окончания).

В процессорах Motorola используется команда цикла DO, которая работает с регистрами начала и конца цикла (LC и LA). 

 

Гарвардская архитектура автоматически открывает многоступенчатый конвейер (от 3 до 11 ступеней конвейера). В базовом варианте: три ступени конвейера.

 

 Базовый вариант:            Motorola DSP56000 = 560 = 56К, где К = 000

 


                                                    Номер            Процессор

                                                    серии             в этой серии                    

 

 

 


3. Основные показатели процессоров цифровой обработки сигналов

 

1.)    Способ представления данных.

По этому показателю все процессоры цифровой обработки сигналов делятся на:

1.1.  Процессоры с фиксированной запятой (ФЗ) или процессоры с фиксированной точкой (ФТ).

1.2.  Процессоры с плавающей запятой (ПЗ) или процессоры с плавающей точкой (ПТ).

           

            Наиболее распространены процессоры с фиксированной запятой или процессоры с фиксированной точкой - они стоят  во всех телефонах.

В процессорах с плавающей запятой данные представляются в виде мантиссы или порядка. Процессоры с плавающей запятой значительно более сложные и наиболее дорогие (в несколько сотен долларов).

 

2.)    Разрядность представления данных.

Для процессоров с фиксированной точкой разрядность равна 16 (у большинства сигнальных процессоров) или равна 24 (у фирмы Motorola).

Для процессоров с плавающей точкой разрядность равна 32 (из них порядок представляется  8 разрядами, мантисса 23 разрядами, а знак 1 разрядом).

           

            У процессоров с плавающей точкой большой диапазон представления чисел (мантиссу откидываем) с учетом знака: от 2 −128 до 2127.

Диапазон представления чисел устанавливает границы между минимально и максимально допустимыми значениями, представляемыми в заданном формате и коде.

           

 

Динамический диапазон (ДД):

 

ДД = |max значение| / |min значение 0|

 

Динамический диапазон в децибелах равен:

 

 20 lg (ДД) = 20 lg (|max значение| / |min значение 0|)

 

Динамический диапазон сигналов, с которыми могут без искажений работать процессоры, у процессоров с фиксированной точкой значительно уже (на несколько десятичных порядков). При относительно простых алгоритмах обработки это может быть неважно, т.к. динамический диапазон реальных входных сигналов чаще всего меньше, чем допускает DSP, однако в некоторых случаях возможно возникновение ошибок переполнения при выполнении программы. Это приводит к принципиально неустранимым нелинейным искажениям выходного сигнала, аналогичным искажениям из-за ограничения в аналоговых схемах.

 

3) Производительность

Одна из самых частых ошибок разработчика - отождествление тактовой частоты и быстродействия, что в большинстве случаев неправильно. Очень часто скорость работы DSP указывают в MIPS (миллионах инструкций в секунду). Это наиболее просто измеряемый параметр. Производительность нормальных процессоров – это несколько десятков MIPS.

            Однако проблема сравнения скорости различных DSP состоит в том, что процессоры

имеют различные системы команд, и для выполнения одного и того же алгоритма разными процессорами требуется разное число этих команд. Кроме того, иногда для выполнения различных команд одним процессором требуется различное количество тактов синхронизации. В результате процессор со скоростью 1000 MIPS вполне может оказаться в разы медленнее процессора со скоростью 300 MIPS, особенно при различной их  разрядности.

            Одно из решений этой проблемы — сравнивать процессоры по скорости выполнения

определенных операций, например, операции умножения с накоплением (MAC). Скорость

выполнения таких операций критична для алгоритмов, использующих цифровую

фильтрацию, корреляцию и преобразования Фурье. К сожалению, такая оценка также не

дает полной информации о реальном быстродействии процессора.

            Наиболее точной является оценка скорости исполнения определенных алгоритмов -

например, КИХ и БИХ - фильтрации, однако это требует разработки соответствующих программ и тщательного анализа результатов тестирования.

Существуют компании, занимающиеся анализом и сравнением процессоров по основным характеристикам, в том числе и по скорости. Лидером среди таких компаний является BDTI  (Berkeley Design Technology, Inc).

 

 

4. Основные производители сигнальных процессоров

1.) Фирма Texas Instruments (TI) занимает около 48 % рынка ПЦОС. Именно она выпустила в 1982 г. первый ПЦОС, который имел коммерческий успех. ПЦОС TMS32010 использовался в игре Speak and Spell ("Скажи и произнеси по буквам"), а также в говорящей кукле по имени Джули. Все процессоры цифровой обработки сигналов фирмы Texas Instruments идут под маркой: TMS3200xxx.

2.) Фирма Analog Devices (AD). Все процессоры цифровой обработки сигналов фирмы Analog Devices идут под маркой: ADSP21xxx.

3.) Фирма Motorola. Серии: DSP560xx       

                                               DSP561xx        Процессоры с фиксированной точкой.                                                                                                  

                                               DSP563xx

                                               DSP566xx 

                                               DSP568xx

Фирма Intel раньше тоже входила в первую тройку производителей сигнальных процессоров, но сейчас её оттеснили.

В нашей стране также производятся сигнальные процессоры, правда они несколько уступают зарубежным аналогам, но они есть. Например: в настоящее время научно-исследовательский институт электронной техники («НИИЭТ») серийно выпускает 16-разрядные процессоры ЦОС с фиксированной запятой М1867ВМx  с производительностью 5 MIPS.

 

5. Аппаратная реализация

 

   

Процессор цифровой обработки сигналов разбивается на две части: операционный блок и блок управления.

 

Операционный  блок

 

Блок управления операцией.

 

 

На входные регистры x0, x1,y0, y1 из памяти поступают данные и передаются на МАС или АЛУ, которые могут использоваться как отдельно, так и в паре. Если нужно использовать данные двойной длины, то, как правило, используют 16 разрядов. Результат выполнения операции из аккумулятора А или В передаётся в память данных через сдвигатель - выходной.

Распределение нагрузки между МАС и АЛУ: 62 команды в базовом варианте, из них: 61 - АЛУ и 1 - МАС.

МАС выполняется в 1000 раз чаще, чем все другие команды и, именно он определяет скорость быстродействия.

Рис. Схема блока МАС

 

В блоке МАС после умножения первое суммирование происходит с нулём, а далее после каждого умножения происходит суммирование с каждым значением аккумулятора. Аккумуляторов всегда два или более.

Сдвигатель позволяет производить сдвиги при передаче и загрузке операндов без использования дополнительных команд.

 

Если в процессорах фирмы Motorola (в базовом варианте Motorola DSP560xx) разрядность слова равна 24, то длина расширенного слова составляет: 24 + 24 + 8 = 56 битов, где 8 разрядов отводится на расширение данных.

Если в процессорах фирмы Motorola разрядность слова равна 16, то длина расширенного слова составляет: 16 + 16 + 8 = 40 битов, где 8 разрядов отводится на расширение данных.

 

Пример представления целых чисел в форматах двойное и расширенное слово аккумулятора длиной 56 битов в процессорах DSP560xx фирмы Motorola:

 

Примечание:

На рисунке расширение EXT заполнено нулями – значением 47-го знакового бита.

 

Представление целых чисел в формате с ФТ  в форматах двойное и расширенное слово предполагает следующее функциональное распределение битов:

 

1) Старший бит MSB старшего слова MSP используется:

        как знаковый при представлении целых чисел со знаком; значение MSB = 0 соответствует положительному знаку, а MSB = 1 - отрицательному знаку; ноль считается положительным; остальные биты являются значащими;

        как старший значащий при представлении беззнаковых чисел; беззнаковыми называются целые числа, имеющие положительный знак по умолчанию.

2) Все биты, кроме знакового, считаются значащими; они выравниваются по правому краю формата, т.е. младший бит LSB соответствует младшему разряду целого двоичного числа.

3) При представлении целых чисел со знаком в формате «расширенное слово» в расширении EXT происходит расширение знака; это означает, что все биты EXT автоматически заполняются значением старшего знакового бита MSB слова MSP:LSP.

4) При представлении целых беззнаковых чисел в формате «расширенное слово» все биты EXT обнуляются.