logo
Аналіз обчислювальної похибки при виконанні базових операцій алгоритмів цифрової обробки сигналів

Загальні теоретичні відомості

При реалізації обчислень на процесорах обробки сигналів чи НВІС, які характеризуються обмеженою розрядністю і роботою в форматі фіксованої крапки необхідно враховувати ефекти, які викликані, насамперед, наближеним представленням формули обчислень і кінцевою розрядністю використовуваних регістрів. До таких ефектів відносяться:

а) шум аналогово-цифрового перетворення;

б) некорельований шум заокруглення;

в) похибки, які викликані квантуванням коефіцієнтів.

Враховуючи методи представлення чисел, способи квантування, які використовуються для скорочення розрядності чисел до необхідної величини, а також особливості структурної схеми обчислень, в кожному конкретному випадку можна оцінити, як перераховані ефекти впливають на результат обчислень.

Квантування в цифрових пристроях

При квантуванні використовують два стандартних способи: відкидання і заокруглення. Розглянемо їх особливості стосовно різних систем числення і похибки, які виникають при цьому. Припускається, що всі значення чисел по модулю менші від 1.0 (|X| < 1.0).

Відкидання. Відкидаються всі молодші розряди, що стоять після найменшого розряду, який зберігається. Тоді значення похибки для доповняльного коду задовольняє нерівність:

-2 -b Xвдк - X 0,

де b - число розрядів, що зберігаються; Xвдк - відкинуте значення X.

Для чисел, які представлені в прямому і оберненому кодах для від’ємних значень справедлива нерівність:

0 Xвдк - X < 2-b , X < 0.

Важливим є те, що похибка відкидання лежить між значеннями нуля і числа, що пропорційне 2-b .

Заокруглення. При заокругленні вихідне число X заміняється найближчим до нього b-розрядним числом. Тоді похибка заокруглення задовольняє нерівність:

-2-b / 2 Xок - X 2-b / 2

для всіх трьох методів представлення чисел (додаткового, прямого і оберненого коду).

Шум аналогово-цифрового перетворення

В залежності від методу квантування вхідної послідовності шум квантування може мати різний амплітудний розподіл. При найменшому кроці квантування Q похибка квантування e(n) лежить в границях:

-Q/2 e(n) Q/2 - для випадку заокруглення;

0 e(n) Q - для випадку відкидання.

В даному випадку розподіл сигналу похибки є рівномірним. При цьому середнє значення похибки рівне нулю при заокругленні і Q/2 при відкиданні, а її дисперсія в обох випадках рівне Q2/12. Як аналогію аналогово-цифрового перетворення в нашому випадку необхідно розглядати представлення вхідного (тестового) масиву чисел в заданій розрядній сітці b; тоді Q дорівнюватиме b.

Hекорельований шум заокруглення

В цифровій обробці використовуються операції множення, додавання і зсуву. Їх виконання приводить до необхідності розширення розрядної сітки. Наприклад, перемноження двох b-розрядних чисел приводить до 2b-розрядного результату, подальше перемноження може привести до нескінченого збільшення розрядної сітки. Для подолання ефекту застосовують квантування результатів множення до вихідної b-розрядної сітки з заокругленням або відкиданням молодших розрядів. При цьому виникає шум заокруглення.

При додаванні, в загальному випадку розширення розрядної сітки не виникає, але в деяких випадках може виникнути переповнення. Для подолання цього ефекту застосовують зсув результатів вправо і його квантування. Для квантування результатів множення і додавання застосовують заокруглення або відкидання, в залежності від вимог реалізації. Похибки, що виникають при цьому будуть мати випадковий характер.

Квантування коефіцієнтів

Постійні коефіцієнти, які використовуються при обчисленні базових операцій алгоритмів ЦОСЗ також представляються у фіксованому розрядному просторі. Загального підходу до їх квантування нема. Тому застосовується така оптимізація, щоб максимум зваженої різниці ідеальних і реальних обчислень був мінімальним. При цьому необхідно розглянути схему обчислень стосовно чутливості до розрядності коефіцієнтів. Для цього, необхідно, змінюючи спосіб квантування коефіцієнтів (відкидання, заокруглення), добитися найменшого розходження між ідеальною і розрахованою функцією.

Базові операції алгоритмів цифрової обробки сигналів та зображень

До основних базових операцій, які застосовуються в ЦОСЗ відносяться: множення, додавання і зсув. Оскільки, при виконанні цих операцій необхідно залишитися в заданій розрядній сітці розглянемо прийоми їх моделювання на мові Pascal.

<Розрядна сітка: b = 8.>

Множення

{x, k, y - 8-ми розрядні слова зі знаком;}

{work - 16-ти розрядне слово зі знаком;}

work := k * x; { множення }

work := work + $80; {моделювання заокруглення }

y := work shr 8; { квантування до 8-ми розрядів }

Додавання.

{x, k, y - 8-ми розрядні слова зі знаком;}

{work - 16-ти розрядне слово зі знаком;}

work := k + x; {сумування}

work := work + 1; { моделювання заокруглення }

y := work shr 1; { квантування до 8-ми розрядів }

Для іншої розрядної сітки (наприклад b = 16) застосовуються такі ж прийоми, з врахуванням довжини слова і відповідних коректуючи констант.