Продуктивність і точність обчислень.

Точність обчислень визначається кількістю біт, що відводяться для представлення коефіцієнтівW. Є два способи представлення значень косинусів і синусів у 8 розрядній сітці:

1. W =round(64.0*cos(x)) - (умовно 6 біт на одиницю)

2. W =round(127.0*cos(x)) - (умовно 7 біт на одиницю)

Перший спосіб має 65 градацій косинуса в діапазоні 0..1, у той час як другий спосіб - 128 і

отже має більш високу точність. Однак, виконуючи в ході обчислень тільки операції цілочисельного множення і додавання, наприкінці необхідно провести нормалізацію результатів, тобто кожен елемент вихідного масиву потрібно поділити на відповідний масштабуючий коефіцієнт. Для першого випадку він дорівнює 642, а для другого - 1272. В обох випадках розподіл доцільний замінити зсувом вправо, але на відміну від першого способу заміна розподілу на 1272 зсувом на 14 біт вправо привносить невелику систематичну похибку. Нормалізацію можна проводити або один раз наприкінці множень, або двічі – після кожного етапу множення (рис.1) (проміжна нормалізація служить для запобігання переповнення в ході обчислень). Кількість необхідних етапів нормалізації визначаться в залежності від діапазону вхідних даних див. табл. 3.

Для оцінки точності довільний сигнал оброблявся прямим і зворотнім перетворенням Фур'є, після чого вихідний x порівнювався з відновленим сигналом x'. Зокрема , знаходилося математичне сподівання M і середнє квадратичне відхилення s відносних похибок .d.

 

Рис.7.8 Послідовність обчислення скалярного добутку


Таблиця 7.3. Порівняльна характеристика точності відновленого сигналу після прямого і зворотного ШПФ із різними основами

Перетворення Фур'є Систематична похибка-M СКО -s
6 біт/1.0 7 біт /1.0 6 біт/1.0 7 біт /1.0
FFT-256 за основою 2 -1% -12% 2.0% 0.9%
FFT-256 за основою 16 -0.4% -3% 1.2% 0.6%

Знак "-" означає, що відновлений сигнал послабляється на М відсотків у порівнянні з вихідним.

Як видно з приведеної таблиці 7-бітне представлення коефіцієнтів для ШПФ за основою 2 вносить значну систематичну похибку і робить такий алгоритм менш ефективним. Алгоритми ШПФ із основами 16 і 32 дозволяють більш ефективно використовувати наявну розрядну сітку під коефіцієнти W і мають більш високу точність за рахунок у 4-5 разів меншого числа шарів графа, що також знижує додаткові витрати на нормалізацію і округлення. При цьому операція округлення на процесорі NM6403 виконується за допомогою векторного регістра vr [2] разом з основними обчисленнями, не приводячи до додаткових витрат часу. Також є можливість проведення додаткової оптимізації за рахунок сполучення процедури нормалізації (арифметичного зсуву вправо) з останнім етапом обчислення скалярного добутку (рис. 6).