ЭУМК по дисциплине "Программирование проблемно-ориентированных вычислительных средств реального времени" › Теория › Тема 2. Программирование цифровых нерекурсивных и рекурсивных фильтров

# Электронный учебно-методический
комплекс по дисциплине
"Программирование проблемно-ориентированных вычислительных средств реального времени"

для специальности

1-40 02 02 «Электронные вычислительные средства»

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах

2.5. Анализ чувствительности цифровых фильтров
2.5.1. Анализ чувствительности коэффициентов аналитическим методом

Выполним анализ чувствительности коэффициентов полинома знаменателя передаточной функции из (2.11), потому что именно они значительно влияют на устойчивость системы, хотя данный метод также применим и к полиному числителя.
Если некоторый коэффициент, например ζk, подвергается возмущению, то полином (2.12) является также и функцией этого коэффициента

| D(z, ζk) = ζn · zn + ζn-1 · zn-1 + ... + ζk · zk + ... + ζ1 · z + ζ0 = 0. | (2.13)

Корни полинома знаменателя, удовлетворяющие (2.13), равны λ1, λ2, …, λn, но если ζk отклоняется на δζk от начальной величины ζk0

| ζk = ζk0 + δζk , |

то изменяются все корни λj, j = 1, …, n из (2.13). Чтобы найти отклонение δλj в зависимости от δζk для j-го корня относительно начальной величины λj0, полином разлагается в ряд Тейлора относительно номинальных значений λj0 и ζk0

|  | (2.14)

Для корней λj и λj0 два полинома D(λj, ζk0) и D(λj0, ζk0) равны нулю. Поскольку члены разложения высшего порядка очень маленькие для отклонения δλj << 1, уравнение (2.14) преобразуется в

|  | (2.15)

Решение уравнения (2.15) определяет изменение корней δλj в зависимости от изменения коэффициента δζk

|  | (2.16)

Так как элементы матриц ζij, bi, ci, d ограничены конечной длиной слова ЦПС, каждый из них подвержен возмущению. Чтобы использовать результат (2.16), коэффициент полинома ζk должен быть связан с этими возмущаемыми элементами матриц.
Для некоторых динамических систем это - простая задача, так как они либо низкого порядка, либо разлагаются на простые составляющие. Последняя категория включает специальные канонические формы, где элементы матриц идентичны коэффициентам полиномов числителя и знаменателя.
Для других систем задача более трудна, так что полезно рассмотреть общие рекомендации по переходу от пространства элементов матриц к пространству коэффициентов полинома. Эти рекомендации для числителя и знаменателя (2.16) идентичны.
Согласно (2.13) числитель из выражения (2.16) для k-го коэффициента и j-го корня равен

Если характеристическое уравнение (2.13) выражено в эквивалентной форме через разложение на множители, предполагая, что корни не повторяются

| D(z, ζk) = (z - λ1) . . . (z - λk-1)(z - λk)(z - λk+1) . . . (z - λn) = 0 , |

тогда знаменатель (2.16) равен

При нахождении производных использовались следующие основные соотношения: (a+b) · dx = a · dx + b · dx, c · dx = 0, cx · dx = c.
Подстановка этих двух результатов для числителя и знаменателя в (2.16) дает

|  | (2.17)

Первое замечание основано на исследовании числителя (2.17), и, учитывая, что |λj0| < 1 имеем
|λj0|n < |λj0|n-1 < . . . < |λj0|1 < |λj0| ,
это означает, что наиболее чувствительный коэффициент будет всегда ζ0, а наименее чувствительный коэффициент ζn.
Второе замечание вытекает из исследования знаменателя (2.17), которое показывает что чувствительность возрастает, если корни становятся более сгруппированными, и кроме того, что чувствительность резко увеличивается по мере того как порядок системы n становится большим. Высокая добротность или большая крутизна фильтра – это примеры систем, которые могут иметь проблемы с чувствительностью, потому что их корни расположены близко друг к другу. Проблема чувствительности уменьшается для данного порядка системы, если фильтр представляет собой композицию фильтров меньшего порядка, соединенных в каскадную или параллельную формы.
Точно так же непрерывная система с низкочастотными полюсами, дискретизируемыми с высоким уровнем точности требует соответствующего анализа чувствительности. Мотивацией для высокой частоты дискретизации является увеличение запаса по фазе и, как следствие, улучшение эффективности, что используется в системах управления с обратной связью. Высокая частота дискретизации, однако, вредна для собственного значения системы кластеров в z-плоскости относительно z = 1, как видно из разложения энергии в ряд экспоненциальных матриц.

| FTs2 FTs3 A = eFTs = I + FTs + –––– + –––– + . . . , 2! 3! |

где Ts - интервал дискретизации, а {F, g} определяет непрерывную систему, которую нужно дискретизировать:
.
u(t) = F u(t) + g x(t) .
Для маленького интервала дискретизации, то есть, когда Ts → 0,
lim A = I ,
Ts → 0
собственные значения A в s-плоскости группируются вблизи z = + 1 в z-плоскости, что делает дискретизируемую систему все более и более чувствительной к неопределенности коэффициента.
Пример 1.
Рассмотрим дискретную систему (рис. 2.14) с параметром a11.

###

### Рисунок 2.14 – Дискретная система с возмущаемым параметром a11

Положим, что номинальное значение a11 равно 2.5, но эффекты квантования дают отклонение δa11 от этой номинальной величины, и это необходимо учесть, чтобы знать результирующие изменения в собственных значениях системы.
Рисунку 2.14 соответствует следующее матричное уравнение:

и передаточная функция

|  | (2.18)

Обратите внимание, что элемент матрицы a11 входит в числитель, также как и в два коэффициента знаменателя.
Сравнение соответствующих коэффициентов между (2.11) и последней строкой (2.18) дает: ζ0 = 3 - a11, ζ1 = 1 - a11 и β0 = - a11. Проверка показывает, что ноль числителя имеет чувствительность +1, в то время как чувствительность знаменателя менее очевидна и требует дальнейшего уточнения.
Для a11=2.5 корни знаменателя λj, j=1,2 равны z=0.5 и z=1.0. Чувствительность собственного значения λ2=1.0, например, из-за изменений a11 находится из (2.16). Использование правила для частных производных дает

что означает, что произвольное изменение в a11 от a11=2.5 до a11=2.51 вызовет изменение значения от λ2 = 1 до λ2 = 1.04. Таким образом, небольшое изменение приведет к неустойчивости системы, потому что собственное значение корня находится снаружи единичной окружности | z | = 1.

2.5.2. Анализ чувствительности коэффициентов методом корневого годографа

Подход к определению чувствительности, описанный выше, дает изменение корней полинома для малых возмущений величины коэффициента. Второй подход заключается в применении метода корневого годографа, который используется при разработке и анализе линейных следящих систем. Этот подход дает изображения местоположения корней полинома в z-плоскости.
После калибровки корневой годограф дает пределы устойчивости, показывает состояние неустойчивости фильтра и указывает зависимость чувствительности положения корней от величин коэффициентов.
Из литературы по управлению известно, что передаточная функция замкнутой системы Gcl(z) для систем управления с одним входом и одним выходом выражается через передаточную функцию разомкнутой системы Gol(z), коэффициент усиления K, и единичную обратную связь следующим образом:

Корни знаменателя замкнутой системы удовлетворяют уравнению

Что эквивалентно

|  | (2.19)

и метод корневого годографа показывает все положения корней, которые удовлетворяют уравнению (2.19) для значения коэффициента усиления K.
Так как Gol(z) - отношение двух полиномов, любой полином, то есть полиномы знаменателя или числителя из (2.11), могут быть преобразованы, как и (2.19), путем разделения полинома на два других полинома R(z) и S(z) следующим образом:

где g - элемент aij, bi или ci, представляющий интерес. Затем

и

|  | (2.20)

Так как (2.20) имеет ту же самую форму, что и (2.19), все преобразования корневого годографа могут применяться.
Пример 2.
Рассмотрим передаточную функцию (2.18) из примера 1, и построим график зависимости корней знаменателя как функцию элемента матрицы a11. Сначала изолируем все полиномиальные коэффициенты, содержащие a11.

|  | (2.20)

тогда

и

|  | (2.21)

Корневой годограф (2.21) представлен на рис. 2.15 для приращений a11, da11=0.1. Поскольку для значения a11=0 множители знаменателя равны соответственно (z + 0.5 + j1. 658) и (z + 0.5 - j1. 658), корни находятся снаружи единичной окружности и равны Z = -0.5 ± j1.658. Следовательно, система неустойчива для маленьких значений a11, но становится устойчивой для средних значений a11, и снова неустойчивой для больших величин a11.

###

### Рисунок 2.15 – Корневой годограф для возрастающих значений a11 в диапазоне [0,3]

Корни находятся снаружи единичной окружности z = - 0.5 ± j1.658 для a11 = 0 и двигаются в сторону действительной оси. Бесконечная чувствительность будет тогда, когда корни совпадают в z = 0.732 ± j0.
Пределы устойчивости для a11, когда 2.0 < a11 < 2.5. Для a11 < 2.0 тип увеличения неустойчивости – синусоидальный, в то время как для a11 > 2.5 тип увеличения неустойчивости – линейный. Обратите внимание на то, что чувствительность корня изменяется очень сильно, когда a11 располагается в определенных пределах, и интересным является второй пример точки годографа с бесконечной чувствительностью, расположенной на действительной оси, где корни совпадают z = 0.732 ± j0.

2.5.3. Ошибки квантования в цифровых фильтрах

В то время, как в предыдущем разделе рассматривались эффекты квантования коэффициентов передаточной функции, в этом разделе рассматриваются эффекты квантования на входе системы, промежуточных переменных ЦОС и выходного сигнала. Существуют соответствующие методы для оценки максимальной величины ошибки квантования в цифровых системах.
Есть три источника квантования - на входе ЦОС, внутри ЦОС, и на выходе ЦОС, которые возникают потому, что:

- Входной сигнал для дискретной системы является непрерывным и необходимо его аналого-цифровое преобразование прежде, чем любые вычисления будут выполняться.
- Цифровой процессор отбрасывает часть вычисленных результатов при выполнении умножения и деления. Отбрасывание необходимо потому, что число битов, требуемых для точного представления результата, увеличивается по сравнению с числом битов, необходимых для представления коэффициентов матриц aij, bi, Ci, d. Без усечения или округления разрядность данных при умножении или делении увеличивается неограниченно.
- На выходе дискретного процессора обычно необходим непрерывный аналоговый сигнал, а используемый цифро-аналоговый преобразователь обычно имеет меньшее разрешение по сравнению с цифровым процессором. При этом отбрасывание самых младших битов дает ошибку квантования.

Все эти ошибки можно описать как шумоподобные ошибки квантования. Ошибка квантования с округлением ε есть разница между точным значением величины и значением самого близкого из набора уровней, которые отличаются друг от друга на q. И альтернативная ей, ошибка квантования с усечением ε - разница между точным значением величины и значением самого близкого снизу из набора уровней. Ошибка с округлением показана на рис. 2.16, на котором точная величина непрерывного сигнала наложена на сетку интервалов дискретизации и уровней квантования, расположенных через q. Ошибка квантования с округлением ε в моменты дискретизации k = 1, 2, ... является интервалом между непрерывным сигналом и самым близким уровнем квантования.
Так как различие в уровнях квантования - q, ошибка округления e между непрерывным сигналом и каждым из квантованных уровней не превышает ±q/2. Если предположить, что колебание сигнала является большим, чем q от одной выборки к следующей, то ошибка e для одной выборки будет статистически независимой от ошибки e для любой другой выборки и будет иметь равную вероятность в диапазоне ±q/2.
Противоположный случай - постоянный или медленно изменяющийся сигнал. Для систем управления с обратной связью статистическая зависимость между выборками из-за квантования вызывает предельные циклы. Если там преобладает только одна такая нелинейность в контуре обратной связи, то возможно использование метода функции описания, чтобы приблизительно определить поведение предельного цикла. Однако, добавление подходящего высокочастотного возмущающего сигнала ко входу системы сделает и ошибку квантования, и ошибку округления однородно распределенной, белой, и взаимно некоррелированной.

###

### Рисунок 2.16 – Непрерывный сигнал, наложенный на сетку интервалов дискретизации и уровней квантования

Три источника ошибки квантования эквивалентны добавлению шумоподобного воздействия ко входу, вычисленным результатам и выходу, соответственно. Результирующая функция плотности вероятности ошибки показана на рис. 2.17a или рис. 2.17б, в зависимости от того, усечение, или округление происходит при квантовании. Усечение - простое отбрасывание самых младших битов, при округлении используется наименьший значащий бит квантования, чтобы минимизировать абсолютную величину ошибки.

###

### Рисунок 2.17 – Функции плотности вероятности ошибки квантования для усечения (a) и округления (б)

Среднее или матожидание μ и дисперсия σ2 шума определяются как первый и второй моменты E{ε}, E{ε2} из соответствующих функций плотности вероятности.
Квантование с усечением:

|  | (2.22)

|  | (2.23)

Квантование с округлением:

|  | (2.24)

|  | (2.25)

Результаты (2.22) - (2.25) показывают, что дисперсия для усечения такая же, как и для округления, и только матожидание является различным. Модель для шумовых источников при каждой выборке в момент k определяется как

где запись ε(k, ·) и w(k,·) описывает реальные значения стохастических процессов такие, что ε(k, ·) и w(k,·) являются произвольными переменными для любого фиксированного k, k = 1,... .

###

### Рисунок 2.18 – Диаграмма состояния, показывающая источники ошибок

Случайная переменная w(k,·) имеет нулевое матожидание и дисперсию q2/12, в то время как με определяется как με = 0 или με = q/2 в зависимости от того, используется округление или усечение соответственно. Описание шумовых источников как переменной и постоянной части позволяет рассматривать отдельно их влияние - w(k,·) исключительно на дисперсию и με как производную от смещения АЦП.
Источники ошибки показаны на диаграмме состояния (рис. 2.18) как скалярный шум аналого-цифрового преобразования на входе εi(k,w), векторный шум вычисления εc(k,w) и скалярный шум цифро-аналогового преобразования на выходе εo(k,w).
Соответствующее уравнение состояния

| u(k+1) = A u(k) + b [ x(k) + εi(k) ] + εc(k) , y(k) = c u(k) + εo(k) . | (2.26)

Вычисление выходной дисперсии требует нахождения значения второго момента y(k).

Поскольку εo(k,·) имеет нулевое матожидание и некоррелировано с x(k)

|  | (2.27)

где Ro(t), t = 0, является автокорреляционной функцией выходного шума.
Уравнение (2.27) показывает, что выходная дисперсия является суммой выходной ковариации шума и уровня ковариации Puu(k) взвешенного выходным вектором с. Вычисление уровня ковариации Puu(k) требует рекуррентной формулы, которая находится из ожидаемой величины второго момента u(k+1). Из (2.26),

|  | (2.28)

Так как шумовые источники wi(k,·), wc(k,·) статистически независимы друг от друга и от u(k), ожидаемое значение их перекрестных произведений нулевое. Уравнение (2.28) приводится к виду

или

|  | (2.29)

где Ri(t) и Rc(t), t = 0, являются автокорреляционными функциями входного шума и шума вычисления, соответственно.
Уравнение (2.29) говорит, что значение ковариации при выборке k+1 получается из ковариации для предыдущей выборки плюс компоненты входного шума и шума вычислений. Если состояние u(k) было точно известно из начального состояния и при допущении Puu(0)=0, тогда для каждого следующего отсчета k=1, 2, … представленного как u(k), получается как дано в (2.29). Так как матрица А устойчива с собственными значениями внутри единичного круга,

и вычисление выражения (2.29) - простая рекурсивная задача с доступными инструментальными средствами работы с матрицами. Обратите внимание, что результирующий шум имеет не равномерный закон распределения, а скорее гауссовский в соответствии с центральной предельной теоремой.
Пример 3.
Рассмотрим динамическую систему из примера 1, но со значением a11=2.4, дающую фильтр нижних частот. Предположим, что входной сигнал продискретизирован 10-разрядным А/Ц преобразователем с диапазоном от -1 до +1 В и самый младший бит соответствует приблизительно 20 мВ. Предположим также, что в ЦПС переменные u1(k) и u2(k) представлены 16-разрядными словами в дополнительном коде с динамическим диапазоном от -1 (8000h) до (+1-1/215) (7FFFh), где суффикс "h" обозначает шестнадцатеричное число. При вычислениях ЦПС усекает результаты, то есть при умножении в качестве результата берутся 16-разрядные слова и результаты выдаются в диапазоне от -1 до +1 В на 9-разрядный Ц/А преобразователь с весом младшего разряда приблизительно равным 40 мВ. Определим, какой величины будет выходной шум.
Результирующая диаграмма состояния для данного случая показана на рис. 2.19 с источниками шума из-за эффектов квантования ei, ec1, ec2, eo. Заметим, что не имеется никакого источника шума, связанного коэффициентом С22, равным -1, так как при этом фактически умножения нет, а есть только вычитание.

###

### Рисунок 2.19 – Диаграмма состояния для примера 3

Матожидания и дисперсии различных источников представлены далее.
Входной шум:

|  | (2.30)

|  | (2.31)

Шум вычисления:

|  | (2.32)

|  | (2.33)

Выходной шум:

|  | (2.34)

|  | (2.35)

Используя значения (2.30)-(2.35), уровень ковариации согласно (2.29) равен

Рис. 2.20 показывает рекурсивное решение для k = 0, 1, … учитывая, что начальное состояние известно и равно

Значение ковариации увеличивается по траектории от ноля до величины установившегося значения. Динамика состояния определяет скорость увеличения траектории. Окончательная величина матрицы значений ковариации равна

|  | (2.36)

Значения дисперсии находятся на основной диагонали матрицы ковариаций (2.36) и, следовательно σu12=19.6×10-6 и σu22=5.43×10-6 . Обратите внимание, что начальное предположение, сделанное, чтобы исключить первоначальную неопределенность PUU(0) не оказывает воздействия на конечный результат (2.36). Если, например, PUU(0) первоначально большое относительно установившейся величины состояние ковариации, PUU(k) уменьшалось бы до ранее полученного результата (2.36).

###

### Рисунок 2.20 – Решение уравнения для матрицы ковариации асимптотическим приближением при k -> ∞

Если известно состояние ковариации PUU(k), то выходная дисперсия может быть найдена из (2.27):

Одно из назначений вычисления ковариации - способность различить видимые источники неопределенности для полной оптимизации системы. В этом случае имеется незначительный вклад ошибок вычисления, и более существенный вклад выхода Ц/A преобразователя. Если при полной оптимизация системы исходить из стоимости, то учитывая вклад Ц/A преобразователя можно обойтись меньшим разрешением и менее дорогим 8-разрядным ЦАП.
Чтобы учесть эффекты усечения и округления, как видно из рис. 2.17 и (2.22), дисперсии для любого случая должна быть та же самая, но усечение дает среднее отличное от нуля μc1 = μc2 = q/2 = 1.53×10-5, которое представляет смещение состояния от u(k) до u(k+1). Эффект моделируется выражениями (2.30)-(2.35) и

При использовании этих средних в качестве входных, уравнение состояния (2.26) преобразуется в

рекурсивное решение которого дает

и выход

2.5.4. Минимизация эффектов квантования в ЦПС семейства TMS320

Чтобы увидеть, как в ЦПС семейства TMS320 уменьшить эффекты квантования, необходимо вначале рассмотреть, как представляются десятичные числа и как выполняются арифметические операции в ЦПС.
Центральное арифметическо-логическое устройство процессоров семейства TMS320C2х имеет входное 16-разрядное сдвигающее устройство, 16×16-разрядный параллельный умножитель, 32-разрядное арифметическо-логическое устройство (АЛУ), 32-разрядный аккумулятор, и дополнительные сдвигающие устройства на выходах аккумулятора и умножителя. Типичная операция умножения двух чисел А×B требует команду "LT" для загрузки регистра "T" значением A, команду "MPY" указывающую второй операнд в памяти данных B, команду "PAC", чтобы загрузить аккумулятор содержимым регистра "P", и команду "SACH", чтобы сохранить в память данных 16 старших битов 32-разрядного результата, который находится в аккумуляторе. Таким образом, одиночное умножение двух чисел требует четырех команд, и если используется внутренняя память на кристалле, не требующая циклов ожидания, как например для медленной памяти вне кристалла, то время умножения для TMS320C25 со временем выполнения команды 100 наносекунд, будет равно времени для четырех команд или 400 наносекунд. Если умножение объединяется с добавлением затем к АЛУ, то выборка данных, умножение и накопление могут выполняться в одном цикле команды "MACD", которая значительно повышает эффективность вычислений.
Десятичные числа представляются в виде 16-разрядных (одинарной точности) вычисленных дробей. Цифровые слова имеют форму

СР МР
Номер разряда 15 14 13 12 11 … 1 0
Величина -S S/2 S/4 S/8 S/16 … S/214 S/215 ,

где бит 15 - знаковый разряд. Подразумеваемая точка основания системы счисления расположена между битами 15 и 14, а биты от 0 до 14 задают 15 разрядов величины числа. S – положительное число из диапазона от 0 до ∞, которое является коэффициентом пересчета цифрового слова. Коэффициент пересчета S позволяет цифровому слову представлять любое число из интервала [ -S, +S(1-1/215) ] для цифрового диапазона слова от 8000h до 7FFFh, где суффикс "h" указывает шестнадцатеричную величину.
Общие специальные случаи - для S=215=32768, который смещает десятичную точку вправо, чтобы представлять целые числа в интервале
[-32768, 32767], и для S=1, который выравнивает десятичную точку так, чтобы десятичное число, представляемое цифровым словом, имело интервал
[-1, 0.9999695]. Особенность этого второго представления - предотвращение переполнения АЛУ, так как произведение любых чисел из данного интервала будет всегда давать другое число, содержащееся внутри интервала [-1, 0.9999695].
Поскольку каждое цифровое слово имеет заданный масштабный множитель, соблюдаются два правила при выполнении арифметических операций:

###### Правило 1. Сложение

Если две переменных x и y с соответствующими масштабными множителями Sx и Sy складываются, x + y, то оба масштабных множителя должны быть одинаковыми, Sx = Sy.

###### Правило 2. Умножение

Если константа C умножается на переменную x с масштабным множителем Sx, чтобы получить переменную y: y = Cx, то масштабный множитель Sy с учетом масштаба C получается согласно правилу

Применение этого правила переводит десятичную константу C к десятичной дроби СЦПС с интервалом [ -1, (1-1/215) ]. СЦПС представляется внутри ЦПС как цифровое слово в интервале [8000h, 7FFFh].
Правило 1 относится к механизму масштабирования при сложении и дает ошибку квантования в младшем разряде, если сдвигаемая переменная отбрасывается после добавления ко второй переменной. Приведенный далее пример иллюстрирует эту ситуацию.
Правило 2 относится к умножению и, следовательно, воздействует на квантование как было описано ранее. Рассмотрим применение правила 2.
Предположим, что необходимо вычислить выражение y = 5x, где x находится в интервале [1.8, +1.6], и это желательно привести к шкале используемого ЦПС. Так как максимум абсолютной величины x равен 1.8, масштабный множитель Sx должен быть некоторым числом ≥ 1.8, и чтобы минимизировать эффекты квантования, выбираем Sx так, чтобы Sx=1.8 точно. При таком выборе Sx получим почти симметричный интервал [-1.8, 1.8(1-1/215)] с цифровым интервалом слова [8000h, 7FFFh], что перекрывает интервал x настолько близко, насколько возможно. Так как Sx=1.8, произведение y = 5x попадает в интервал [-5×1.8, +5×1.8(1-1/2 15)], или [-9, +8.999725]. Соответствующий интервал Sy должен быть ≥ 9. Поскольку максимальная положительная величина СЦПС (1-1/215) =0.9999695, а не 1, то Sy должно быть немного большим, чем 9 и, например, выберем Sy=10.
Учитывая заданное значение Sx и выбранное значение Sy для СЦОС, получим

Применение этих двух правил для масштабирования и уменьшение эффектов квантования в цифровых процессорах сигналов семейства TMS320 включает следующие особенности для арифметики с фиксированной точкой:
1. Наиболее очевидная и важная особенность уменьшения эффектов квантования – ширина АЛУ, аккумулятора и 16×16 разрядного умножителя. 32-разрядная ширина позволяет выполнять накопление любых 32-разрядных слов повышенной точности или 16-разрядных слов без переполнения. При умножении 32-разрядное произведение соответствует 32-разрядной ширине аккумулятора и любой полный результат умножения знаковых чисел помещается в АЛУ, или умножение расширенной точности 32×32 бита возможно для беззнаковых чисел.
2. Вторая особенность – на входе АЛУ имеется сдвигающее устройство, чей 16-разрядный вход соединяется с шиной данных, а 32-разрядный выход соединяется со входом АЛУ. Сдвигающее устройство выполняет левый сдвиг от 0 до 16 бит над входными данными, где выходные младшие разряды заполняются нолями, а старшие заполняются нолями или расширением знака, в зависимости от "SXM" (режим расширения знака) бита. Если прибавление x с масштабным множителем Sx выполняется к содержимому аккумулятора y с масштабным множителем Sy, и если Sx и Sy отличаются как степени 2, то сдвигающее устройство может пересчитать масштаб x к Sy перед сложением. Эта вторая особенность позволяет просто реализовать правило 1, но не касается проблемы квантования, потому что это применимо только к сложению.
3. Третья особенность, которая касается квантования - возможность исключения режима переполнения аккумулятора для операций сложения и вычитания по модулю. Модульная арифметика выгодна там, где несколько чисел, обычно переменного знака, складывают вместе и результат всегда меньше, чем сумма их абсолютных величин. Общий пример такого вычисления - суммирование значений с ответвлений КИХ-фильтра, чтобы сформировать сигнал на его выходе.
Для модульной арифметики аккумулятор ориентируется на максимальный числовой диапазон конечных результатов вместо максимального диапазона промежуточных данных. После настройки на конечный результат изначально предполагается, что число положительных и отрицательных переполнений будет примерно одинаковым, переполнения игнорируются в промежуточных результатах накопления, поскольку числа добавляются или вычитаются. Таким образом, биты, которые в другом случае предотвратили бы переполнение, дают дополнительные значащие биты в представлении конечной суммы в аккумуляторе. Модульное сложение уменьшает шум квантования, позволяя уменьшить масштабный множитель аккумулятора, что позволяет накапливать полные 31-разрядные результаты умножения без усечения.
4. Четвертая особенность уменьшает квантование передаточной функции, позволяя сдвинуть содержимое регистра "P" прежде, чем они будут добавлены к аккумулятору. В произведении y = Cx этот общий выходной масштаб Sy может быть заметно большим, чем константа C и входной масштаб Sx. Из правила 2 однако следует, что если масштаб Sy большой, то СЦПС будет маленьким, и число значащих битов, определяющих сомножитель СЦПС уменьшается, чтобы получить более квантованную передаточную функцию.
Более привлекательное решение для квантования коэффициентов состоит в том, чтобы уменьшить масштабный множитель аккумулятора в два раза при вычислении СЦПС, и применить правый сдвиг произведения в регистре "P" прежде, чем оно будет добавлено к аккумулятору. Таким образом, это квантование коэффициентов дает дополнительные значащие биты для СЦПС, чтобы представить C.
Доступные сдвиги регистра "P" есть 0, +1, +4 и –6, как определено двумя битами поля "РМ" в регистре состояния "ST1". При левых сдвигах младшие разряды заполняются нолями, в то время как при правом сдвиге в старшие разряды распространяется знак. Обычно левый сдвиг на +1 требуется для знакового умножения, потому что произведение на выходе регистра "P" имеет двойной знаковый разряд. Если не делать никакого сдвига "P" перед сложением, то эффект эквивалентен правому сдвигу для более низкого масштабного множителя. Более низкий масштабный множитель Sacc/2 для содержимого регистра "P" функционирует, согласно правилу 2, и дает левый сдвиг СЦПС и дополнительный значащий бит результата. Точно так же правый сдвиг на -6 разрядов уменьшает масштаб регистра "P" до Sacc/27 и, согласно правилу 2, правый сдвиг множителя на +7 позиций дает 7 дополнительных значащих бит.
Использование этой особенности уменьшает масштабный множитель аккумулятора до 1/2 или 1/27, когда используется правило 2, чтобы вычислить СЦПС, и дает 1 или 7 дополнительных значащих битов в представлении СЦПС. Если результат умножения сдвинут вправо на -6, тогда 5 битов произведения потеряны и обязательно появится шум квантования. Таким образом, сдвиг регистра "P" дает компромисс между квантованием передаточной функции и шумом квантования. Шум квантования очень маленький и не увеличивается с числом сдвигов. Он всегда равен Sacc/231, где Sacc - масштабный коэффициент аккумулятора.
5. Пятая особенность - сдвигающее устройство на выходе аккумулятора. Команда "SACH" копирует весь аккумулятор в сдвигающее устройство, где всё это 32-разрядное число сдвигается на какое-нибудь число разрядов от 0 до 7, и затем копирует старшие (младшие для команды "SACL") 16 битов сдвинутой величины в память данных. Сам аккумулятор при этом не изменяется. Выходной сдвигатель, таким образом, позволяет иметь большой масштабный множитель аккумулятора с несколькими старшими битами, чтобы предотвратить переполнение при циклическом сложении, но позволяет полностью сохранить 15 значащих битов (одинарная точность) из 31 бита аккумулятора. Без этого сдвигателя любое различие между аккумулятором и выходными масштабными множителями давало бы результат, который имел бы меньшее количество значащих битов и большую ошибку квантования.
6. Шестая особенность - простая реализация функции автоматической регулировки усиления (АРУ). Функция АРУ позволяет динамически масштабировать входные данные, чьи входная амплитуда значительно изменяется через какое-то время. Для некоторых приложений, например передача данных, данные организованы в виде блоков, в то время как для других приложений входные данные предусматривают изменяемый формат. Рис. 2.21 показывает структуру данных и блоков данных для телекоммуникации.

###

### Рисунок 2.21 – Входной сигнал в виде цифровых слов внутри блоков данных

Для этих приложений обычное используемое масштабирование в ЦПС, чтобы приспособить сигнал самой большой амплитуды, неизменно приводит для сигналов с меньшей амплитудой к ошибке усечения или округления.
С другой стороны, функция АРУ автоматически корректирует входной сигнал, как показано на рис.2.21 до амплитуды, необходимой для соответствующего масштаба и минимальной ошибки.
Чтобы применить функцию АРУ к блоку отсчетов данных, первое слово блока данных загружается в буфер аккумулятора (для процессоров семейства TMS320C5x). Команда "CRGT" затем проверяет каждое следующее слово данных блока, чтобы найти большее слово данных, загружая его в аккумулятор. Если большее значение найдено, то команда "EXAR" меняет большее число в аккумуляторе с буфером аккумулятора. После того как проверка закончится, максимальное слово данных для данного блока данных всегда будет находиться в буфере аккумулятора.
По этому максимальному известному значению обратная величина может быть найдена делением или по таблице. Обратная величина затем загружается в "TREG0", и все слова блока данных затем умножаются на нее, то есть, масштабируются путем деления на максимум. В качестве альтернативы, выбором из таблицы можно определить максимально возможный левый сдвиг (умножение на степень 2) для уменьшения максимального значения в блоке. Левые сдвиги можно выполнять автоматически, загружая в "TREG1" величину сдвига и затем использовать команду "LACT", чтобы загрузить аккумулятор с левым сдвигом на число разрядов, задаваемых с помощью "TREG1".
7. И, в заключение, перечислим ряд дополнительных особенностей. Рассмотренные выше особенности составляют минимальное подмножество математических возможностей, которые любой ЦПС должен иметь, но которые могут отсутствовать в микроконтроллерах. Одна из них - способность сохранить содержание аккумулятора со сдвигом вправо, в то время как само содержимое аккумулятора не изменяется и не появляется ни какой ошибки усечения. Вторая - наличие флага переноса и заема для повышенной точности 64-разрядного сложения и вычитания. И третья - возможность знакового и беззнакового умножения, которая позволяет выполнять умножение с повышенной точностью.

Оглавление | Программа | Теория | Практика | Контроль знаний | Об авторах
© БГУИР , 2012