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

Приклад приведення виразу до аналітичного вигляду Завдання

Вар.

Функція

Формула розкладу

Додаткові дані

26

x]9., 15.[

x= 0.05

  1. Згідно поставленого завдання, аналітичний вид математичної функцій, що буде обчислюватися, буде мати вигляд( для наочності обчислень беремо 5-6 членів ряду):

Обчисливши коефіцієнти при степенях, отримаємо:

2.На основі отриманого виразу обчислюємо еталонне значення функції на проміжку зміни х, fe(x).( При реалізації на мові С, тип змінної х та значення fe встановлюємо у float, double)

Обчислені значення fe заносимо у відповідний стовпець Таблиці 1.

3.Припустимо, мінімальне обчислене значення fe рівне -3,12457862438 , а максимальне 8,54781235.

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

3.1 Приведення коефіцієнтів та змінної х до формату з фіксованою комою довжиною 8 біт( для f8).

Згідно завдання х міняється в межах 9..15 а вираз 4х/5 відповідно —7,2..12, результат , згідно припущення, коливається в межах -3,12457862438..8,54781235. Отже для представлення х, коефіцієнтів та результату потрібно вибрати кількість розрядів для цілої частини та дробової частини з врахуванням того що їх загальна кількість 8.

Оскільки в нас результат є знаковим то 1 біт виділяється для ознаки знаку, ціла частина виразу 4х/5 коливається від 7 до 12 (0111 до 1100) а результату від 3 до 8 (0011 до 1000). Таким чином для кодування цілої частини змінної х, коефіцієнтів та результату необхідно 4 двійкові розряди. Отже для дробової частини залишається 3 розряди.

При використанні типів даних з рухомою комою не виникає проблеми з представленням чисел з великою кількістю чисел після коми( довгої дробової частини). При використанні форматів з фіксованою комою необхідно виконати переведення з числа у фіксований формат.

Для наших даних переведення виконується наступним чином:

Для х=9, 4х/5 =7,2 , ціла частина 7 рівна 111, доповнивши нулями отримаємо 0111

Для х=9, 4х/5 =7,2 , дробова частина 0,2 рівна 001.

Відповідно до цього замість 7,2 для обчислення результату у форматі з фіксованою комою будемо використовувати 7,125.( така сама процедура виконується для всіх коефіцієнтів розкладу та значень виразу 4х/5 для всіх х). Крім того у виразі містяться операції множення, піднесення до степеня та додавання, тому необхідно виконувати переведення у фіксований формат кожного проміжного результату, з врахуванням того,що ми зафіксували кількість біт на цілу частину 4 біти, на дробову 3 і на знак 1. Можлива ситуація коли всі змінні та коефіцієнті додатні тоді знаковий розряд можна відкинути і використовувати всі 8 розрядів для представлення цілої та дробової частини. У випадках коли всі змінні та результати не містять цілої частини то для її представлення немаж потреби виділяти біти і всі 8 біт виділяються для представлення дробової частини та знаку.

Результати обчислень заносимо в таблицю 1 у відповідний стовпець.

3.2 Приведення коефіцієнтів та змінної х до формату з фіксованою комою довжиною 16 біт( для f16).

Згідно завдання х міняється в межах 9..15 а вираз 4х/5 відповідно —7,2..12, результат , згідно припущення, коливається в межах -3,12457862438..8,54781235. Отже для представлення х, коефіцієнтів та результату потрібно вибрати кількість розрядів для цілої частини та дробової частини з врахуванням того що їх загальна кількість 16.

Оскільки в нас результат є знаковим то 1 біт виділяється для ознаки знаку, ціла частина виразу 4х/5 коливається від 7 до 12 (0111 до 1100) а результату від 3 до 8 (0011 до 1000). Таким чином для кодування цілої частини змінної х, коефіцієнтів та результату необхідно 4 двійкові розряди. Отже для дробової частини залишається 16-1-4=11 розрядів.

При використанні типів даних з рухомою комою не виникає проблеми з представленням чисел з великою кількістю чисел після коми( довгої дробової частини). При використанні форматів з фіксованою комою необхідно виконати переведення з числа у фіксований формат.

Для наших даних переведення виконується наступним чином:

Для х=9, 4х/5 =7,2 , ціла частина 7 рівна 111, доповнивши нулями отримаємо 0111

Для х=9, 4х/5 =7,2 , дробова частина 0,2 рівна 00110011001.

Відповідно до цього замість 7,2 для обчислення результату у форматі з фіксованою комою будемо використовувати 7,19970703125.( така сама процедура виконується для всіх коефіцієнтів розкладу та значень виразу 4х/5 для всіх х). Крім того у виразі містяться операції множення, піднесення до степеня та додавання, тому необхідно виконувати переведення у фіксований формат кожного проміжного результату, з врахуванням того,що ми зафіксували кількість біт на цілу частину 4 біти, на дробову 3 і на знак 1. Можлива ситуація коли всі змінні та коефіцієнті додатні тоді знаковий розряд можна відкинути і використовувати всі 8 розрядів для представлення цілої та дробової частини. У випадках коли всі змінні та результати не містять цілої частини то для її представлення немає потреби виділяти біти і всі 16 біт виділяються для представлення дробової частини та знаку.

  1. Після обчислення всіх значень fe f8 f16 виконуємо обчислення абсолютної та відносної похибки проведених обчислень для всіх значень х з заданого діапазону .

  2. На основі проведених розрахунків похибок вивести відповідні графіки.

Схема обчислень для режиму з фіксованою крапкою повинна базуватись на перетворенні у фіксований формат( перетворення у двійкову систему – перетворення назад в десяткову) при кожній операції множення та додавання, а програмно має здійснюватись за допомогою спеціально розроблених функцій.

Таблиця коефіціентів Бернулі

Коефіціенти від непарних n(крімn=1) рівні 0.

Таблиця коефіціентів Ейлера

n E(n)

1 1

2 1

3 1

4 1

5 4

6 1

7 1

8 11

9 11

10 1

11 1

12 26

13 66

14 26

15 1

16 1

17 57

18 302

19 302

20 57

21 1

22 1

23 120

24 1191

25 2416

26 1191

27 120

28 1

29 1

30 247

31 4293

32 15619

33 15619

34 4293

35 247

36 1

37 1

38 502

39 14608

40 88234

41 156190

42 88234

43 14608

44 502

45 1

46 1

47 1013

48 47840

49 455192

50 1310354

51 1310354

52 455192

53 47840

54 1013

11