Лабораторна робота № 1
Аналіз обчислювальної похибки при виконанні базових операцій алгоритмів ЦОСЗ.
Обчислення математичних функцій.
Мета роботи: Дослідити шляхи виникнення обчислювальної похибки та її вплив на точність обчисленнь. Проаналізувати величину похибки при обчисленні деяких математичних функцій.
Загальні відомості.
При реалізації обчислень на ЕОМ/спеціалізованому пристрої необхідно враховувати ефекти, які викликані кінцевою розрядністю використовуваних регістрів. До таких ефектів відносяться:
а) шум аналогово-цифрового перетворення;
б) некорельований шум заокруглення;
в) похибки, які викликані квантуванням коефіцієнтів.
Враховуючи методи представлення чисел, способи квантування, які використовуються для скорочення розрядності чисел до необхідної величини, а також особливості структурної схеми обчислень, в кожному конкретному випадку можна оцінити, як перераховані ефекти впливають на результат обчислень.
Квантування в цифрових пристроях.
При квантуванні використовують два стандартних способи: відкидання і заокруглення. Розглянемо їх особливості стосовно різних систем числення і похибки, які виникають при цьому. Припускається, що всі значення чисел по модулю менші від 1.0 (|X| < 1.0).
Відкидання. Відкидуються всі молодші розряди, що стоять після найменшого розряду, який зберігається. Тоді значення похибки для додаткового коду задовільняє нерівність:
-2 -b ? Xвдк - X ? 0,
де b - число розрядів, що зберігаються; Xвдк - відкинуте значення X.
Для чисел, які представлені в прямому і оберненому кодах для від’ємних значень справедлива нерівність:
0 ? Xвдк - X < 2-b , X < 0.
Hайважливіше, що похибка відкидання лежить між значеннями нуля і числа, що пропорційне ?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 при відкиданні, а її дисперсія в обидвох випадках дорівнюватиме Q 2/12. Як аналогію аналогово-цифрового перетворення в нашому випадку необхідно розглядати представлення вхідного (тестового) масиву чисел в заданій розрядній сітці b, тоді Q дорівнюватиме b.
Hекорельований шум заокруглення.
В цифровій обробці використовуються операції множення, додавання і зсуву. Їх виконання приводить до необхідності розширення розрядної сітки. Hаприклад, перемноження двох b-розрядних чисел приводить до 2b-розрядного результату, подальше перемноження може привести до безкінцевого збільшення розрядної сітки. Для подолання ефекту застосовують квантування результатів множення до вихідної b-розрядної сітки з заокругленням або відкиданням молодших розрядів. При цьому виникає шум заокруглення.
При додаванні в загальному випадку розширення розрядної сітки не виникає, але в деяких випадках може виникнути переповнення. Для подолання цього ефекту застосовують зсув результатів вправо і його квантування. Для квантування результатів множення і додавання застосовують заокруглення або відкидання, в залежності від вимог реалізації. Похибки, що виникають при цьому будуть мати випадковий характер.
Квантування коефіцієнтів.
Постійні коефіцієнти, які використовуються при обчисленні базових операцій алгоритмів ЦОСЗ також представляються у фіксованому розрядному просторі. Загального підходу до їх квантування нема, тому застосовується така оптимизація, щоб максимум взваженої різниці ідеальних і реальних обчисленнь був мінімальним. При цьому необхідно розглянути схему обчисленнь стосовно чутливості до розрядності коефіцієнтів. Для цього, необхідно, змінюючи спосіб квантування коефіцієнтів (відкидання, заокруглення), добитися найменшого розходження між ідеальною і розрахованою функцією.
Базові операціїі алгоритмів ЦОСЗ.
До основних базових операцій, які застосовуються в ЦОСЗ відносяться: множення, додавання і зсув. Оскільки, при виконанні цих операцій необхідно залишитися в заданій розрядній сітці розглянемо прийоми їх моделювання на мові Pascal.
Розрядна сітка: b = 8.
Множення.
x, k, y - 8-ми розрядні слова зі знаком;
work - 16-ти розрядне словo зі знаком;
work := k * x; { множення }
work := work + $80; {моделювання заокруглення }
y := work shr 8; { квантування до 8-ми розрядів }
Додавання.
x, k, y - 8-ми розрядні слова зі знаком;
work - 16-ти розрядне словo зі знаком;
work := k + x; {сумування}
work := work + 1; { моделювання заокруглення }
y := work shr 1; { квантування до 8-ми розрядів }
Порядок виконання роботи.
1. Записати в аналітичному вигляді формулу математичної функції, що є оптимальною за складністю обчислень.
2. Розробити схему обчисленнь, блок схемуалгоритму, для режиму з фіксованою комою, враховуючи спосіб реалізації (універсальна ЕОМ, ПОС).
3. Проаналізувати можливі шляхи виникнення похибок обчислень, методи їх подолання.
4. Створити тестову послідовність для досліджуваної функції і провести розрахунок еталонного зразку в режимі з плаваючою комою.
5. Провести обчислення математичної функції в режимі з фіксованою комою в бітовому просторі 8, 16 біт.
6. Провести порівняння результатів отриманих в п.4 і п.5 і пояснити причину їх розбіжності.
Висновки
Література
1. Е.Шрюфер. Обробка сигналів. Цифрова обробка дискретизованих сигналів.-К.:Либідь, 1992.-296 с.
2. Л.Рабинер, Б.Гоулд. Теория и применение цифровой обработки сигналов.-М.:Мир, 1978.-848 с.
3. Попов Б.А., Теслер Г.С. Вычисление функций на ЭВМ.- К.: Наукова думка, 1984 –600 с.
4. Бондарев В.Н., Трестер Г., Чернега В.С. Цифровая обработка сигналов: методы и средства. Учебное пособие для вузов. 2-е изд. – Х.: Конус, 2001.- 398 с.
(варіанти завдань)