Подставляя n и k в выражение для 16-точечного ДПФ, получаем
X(k4k3k2k1)=
Теперь распишем алгоритм по ступеням:
т = 0 - инверсия входной последовательности:
Х0(n1 23+n2 22+n3 2+n4)=x(n4 23+n3'22+n22+n1);
т= l - преобразование «бабочка» последовательности Х0:
т = 2 - преобразование «бабочка» последовательности X1:
m=3 - преобразование «бабочка» последовательности Х2:
m=4 - преобразование «бабочка» последовательности ХЗ:
Искомая выходная последовательность
Рисунок 7
Направленный граф полученного в примере 16-точечного БПФ с указанием источников элементарных ошибок округления произведений и масштабирования, а также путей их распространения изображен на рис.7. Ошибки округления появляются в местах умножения комплексных чисел на нетривиальные поворачивающие множители.
Ошибки масштабирования появляются на обоих входах каждой операции «бабочка» из-за сдвига входных чисел на один разряд вправо (деление на два).
Элементарные ошибки округления и масштабирования, возникающие на различных ступенях алгоритма, приводят к тому, что отсчеты ДПФ X(k) на выходе вычисляются неточно.
Обозначим ошибку вычисления k-ro отсчета ДПФ через e(k)=X'(k) -X(k), где Х'(k)-вычисленное значение отсчета.
Анализ траекторий распространения элементарных ошибок, возникающих на различных ступенях алгоритма, позволяет сделать следующие выводы:
1. Элементарная ошибка с дисперсией
2. Дисперсия ошибки каждого выходного отсчета алгоритма, обусловленной округлением произведений, равна сумме ошибок, 2v-m из которых вызывается ошибками т-й ступени.
Перейдем к анализу арифметических ошибок. В силу того, что математическое ожидание всех элементарных ошибок равно нулю, математическое ожидание результирующей ошибки E(e(k))=0 для всех k. Тогда СКЗ ошибок ДПФ будет определяться только дисперсией элементарных ошибок.
Дисперсия ошибок округления произведения двух комплексных чисел на т-й ступени равна 4
Вычислим СКЗ ошибок e(k), k=0,...,N-1. Из анализа алгоритма БПФ (8.3) и соответствующего направленного графа следует, что нетривиальные умножения, связанные с вычислением отсчета Х (k), появляются, начиная со ступени
где.
единицы в двоичном представлении
Пример 7. Рассмотрим вычисление ошибок округления отсчетов 16-точечного БПФ. Для этого выпишем для каждого номера отсчета его двоичное представление
Вычислим СКЗ ошибки, усредненное по всем k. На первых двух ступенях алгоритма (т=1,2) все умножения являются точными, так как множители тривиальны
Таблица 1
Тогда, пользуясь выводом 1, получаем
В случае 16-точечного БПФ
Определим СКЗ выходной ошибки алгоритма, обусловленной масштабированием промежуточных результатов. Ошибка масштабирования комплексного числа на m-й ступени алгоритма имеет нулевое среднее и дисперсию
В соответствии с выводом 2 СКЗ индивидуальной ошибки равно
в случае 16-точечного БПФ
Усредненное по всем выходам k СК3 также равно
Среднеквадратическое значение суммарной ошибки, обусловленной округлением и масштабированием, вычисляется как сумма отдельных СК3:
СК3 суммарной ошибки, усредненное по всем выходам алгоритма, равно
В случае 1б-точечного БПФ
Результаты вычисления СК3 суммарных ошибок также приведены в табл.1. Точность алгоритма принято оценивать по отношению «СК3 ошибки / СК3 выходного сигнала». В данном случае оно составляет
____«СКЗ ошибки»______ =
«СКЗ выходного сигнала»
В случае 1б-точечного БПФ
___«СК3 ошибки»_______ =
«СК3 выходного сигнала»
Как видно из полученных выражений, точность алгоритма зависит от двух параметров: длины преобразования N и разрядности представления чисел b1.Если известны требования по точности вычисления и размер преобразования, разрядность процессора БПФ можно определить из следующего выражения, полученного логарифмированием выражения (8.12):
Теперь перейдем к анализу ошибок БПФ, вызванных неточным представлением значений поворачивающих множителей