Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
153
Добавлен:
14.04.2015
Размер:
4.86 Mб
Скачать
    1. 3.6. Вычислительная сложность алгоритмов бпф

Рассмотрим вначале алгоритмы БПФ для с прореживанием по времени.

Такой алгоритм является итерационным и включает итераций,

причем на каждой стадии выполняется N/2 базовых операций вида (3.11), откуда нетрудно получить, что общая трудоемкость алгоритма БПФ [21]:

где qБО - сложность базовой операции.

В свою очередь, базовая операция требует для своего выполнения 1 операцию умножения и 2 операции сложения комплексных чисел или, в пересчете на операции с действительными числами, 4 операции умножения и 4 операции сложения действительных чисел.

Для ЭВМ предыдущих поколений, где операции умножения выполнялись главным образом программным (а не аппаратным) способом, особую важность имело прежде всего сокращение числа операций умножения как наиболее длительных.

В современных ЭВМ эта задача не столь актуальна, так как длительность практически всех операций близка, особенно в специализированных процессорах.

Поэтому будем полагать, что сложность базовой операции при работе с комплексными числами равна

где qD=qx+q+

Здесь и далее под q подразумевает сложность отдельной машинной команды, например, в числе тактов работы процессора, необходимой для выполнения конкретной арифметической операции. Следовательно, для БПФ сложность алгоритма можно определить как:

При обработке вектора данных длинойна каждой из M итераций выполняется по N/r базовых операций, т.е.

Однако сложность базовой операции, как это можно видеть из (3.15), составит:

qБОr2qk

где qk=qУМН+qСЛ - для комплексных чисел, или, как и в случае , посчитаем, чтоqk=4qD и получим, подставив в (3.15) значения :

Втаблице 3.1 приведены значения для времени выполнения ДПФ и БПФ по различным основаниям при условии, чтоtсл=tумн=100нсек.

Размер вектора

N

Время выполнения, сек.

БПФ

ДПФ

16

24

2,5610-5

2,010-4

25

52

210-4

510-4

27

33

6,510-5

6,510-5

32

25

6,410-5

810-4

81

34

7,810-4

5,310-3

125

53

1,510-3

1,210-3

128

27

3,610-4

1,310-2

512

29

1,810-3

210-1

625

54

10-2

310-1

1024

216

4,110-3

8,310-1

16384

214

1 сек.

36 мин.

Таблица3.1.

Поэтому с точки зрения сокращения вычислительных затрат выгодны алгоритмы БПФ по основанию 2 (или 4), причем с ростом основания r выигрыш уменьшается.

3.7. Выполнение бпф для случаев

Если , то в этом случае выполняется алгоритм БПФ по смешанному основанию. Он может быть реализован как алгоритм с прореживанием по частоте или как алгоритм с прореживанием по времени. В обоих случаях такой алгоритм выполняется заитераций. Однако на каждой итерации выполняется различное число базовых операций, причём размерность матрицы ядра ДПФ базовой операции на каждой итерации различна и составляет, а число БО соответственно на каждой итерации составляет -, где до первой итерации элементы вектора переупорядочиваются с шагом [8]. На рис. 3.5. приведен в качестве примера граф БПФ для N = 6 = 3x2.

Рис.3.5. Граф БПФ для N=6

Если же является простым числом и не может быть разложено на взаимно-простые множители, то в этом случае также можно использовать алгоритм быстрого преобразования, но особого вида - так называемый алгоритм Винограда [15]. Этот алгоритм позволит значительно сократить число операций умножения, но зато число операций сложения сокращается не столь существенно, причем требуются достаточно сложные процедуры перекомпоновки векторов промежуточных результатами.

Поэтому для современных ЭВМ, и особенно спецпроцессоров, когда ( а в некоторых из них одинаково время любой операции), такие алгоритмы, как и БПФ по смешанному основанию, не приносят слишком большого выигрыша по времени.

С точки зрения экономии времени целесообразно дополнить вектор до (желательно или) нулями. Однако такой прием приводит к некоторому искажению результата, что связано с введением так называемой оконной функции. Пусть исходных сигнал задан в виде вектора из N1 отсчетов(рис.3.6.).

Для того, чтобы иметь возможность использовать алгоритмы БПФ дополним сигнал нулевыми отсчетами до общего числа отсчетов N= 2M , причем N – ближайшее большее к N1 .В этом случае исходный сигнал оказывается заданным с помощью функции

,

где g(x) – функция окна вида

Рис. 3.6. Проявление эффекта окна

Поэтому при вычислении преобразования Фурье от проявляется эффект, получивший название “эффекта окна”.

,

гдепри этом функциябудет тем ближе к- функции, чем ширеили чемближе кN. Проявляется “эффект окна” в искажении периферийных областей спектра сигнала [21]. Поэтому, во избежание проявления “эффекта окна” удобнее функцию при переходе отксделать периодической с периодом, дополнив вектор исходных данных до длины, повторив первыеотсчетов за последние элементы вектора.

Соседние файлы в папке ТеорИнфМетоды