Главная > Моделирование, обработка сигналов > Введение в цифровую фильтрацию
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

7.9. Вычисление ДПФ действительных последовательностей

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

Спектр таких функций обладает свойством комплексно-сопряженной симметрии:

Следовательно, при непосредственном использовании БПФ для оценки спектра -точечной последовательности половина из требуемых ячеек памяти оказывается избыточной. Кроме того,

тратится лишнее время на вычисление половины спектра, соответствующей отрицательным частотам.

Рассмотрим два более эффективных метода обработки действительных данных, которые не имеют указанных недостатков. Оба метода используют фундаментальное свойство симметрии, позволяющее представить любую асимметричную функцию в виде суммы четной и нечетной симметричных относительно некоторой оси функций. Это свойство для удобства последующих выкладок сформулируем в следующем виде:

где

и

В обеих формулах . Кроме того,

Первый из двух рассматриваемых методов позволяет вычислять половину спектра, соответствующую положительным частотам, для двух -точечных действительных последовательностей одинаковой длины одновременно, используя одно -точечное БПФ (точки комплексные). В этом состоит и первый этап обработки по второму методу, позволяющему вычислять половину спектра, соответствующую положительным частотам, для одной действительной -точечной последовательности, используя -точечноё БПФ (точки комплексные).

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

(кликните для просмотра скана)

восстановлены из на положительных частотах с помощью простых выкладок, осиоваииых на цитированном выше свойстве симметрии:

где

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

(Учтем, что для действительной функции значение спектра в центральной точке мнимой части всегда равно нулю, т. е. вычислять спектр на этой частоте не нужно.) На фиг. 7.19 приведен текст программы, которую можно использовать для вычисления ДПФ двух функций по описанному методу. Первая функция вводится как действительная часть входного массива , а вторая — как его мнимая часть :

Фиг. 7.19. Программа для вычисления ДПФ двух действительных -точечных последовательностей. (см. скан)

После выполнения преобразования с замещением и перетасовкой результатов в ячейках памяти спектры функций располагаются в следующем порядке:

Алгоритм обратного преобразования лепо получить из формул (7.23), выражая через

где . Значения, соответствующие определяются из формул (7.24).

На фиг. 7.20 приведен текст подпрограммы используемой для выполнения обратного преобразования двух действительных последовательностей.

Фиг. 7.20. Программа для получения двух действительных функций из ДПФ, записанных в определенном порядке в памяти. (Подробности о порядке записи ДПФ в массиве смотри в тексте. Эта программа дополняет (см. скан)

Метод вычисления ДПФ одной действительной -точечной последовательности напоминает первый этап получения алгоритма БПФ. Вспомним, что спектр функции можно найти из спектров двух ее частей, образованных прореживанием. В данном случае мы берем действительную функцию

и образуем из нее прореживанием две действительные -точечные последовательности:

где

Функции у и используются здесь снова, чтобы показать непосредственную связь с результатами, полученными ранее. Единственное отличие состоит в том, что теперь обе функции имеют длину а не

По аналогии с формулой (7.21) можно записать, что

Поскольку состоят из комплексных (т. е. N/2 действительных) значений, то удобно проводить вычисления, разбив уравнение на два рабочих соотношения:

где . Второе из этих соотношений можно выразить через имеющихся комплексных значений поскольку

и

Таким образом, для тех же значений имеем

Можно вычислять одновременно, используя подпрограмму и выбирая подходящее значение в списке ее аргументов определяет длину равную Используя эту подпрограмму и выполняя вычисления по формулам (7.23) и (7.24), получаем спектр Все это выполняет подпрограмма (фиг. 7.21), у которой действительной частью массива А является последовательность а мнимой — последовательность

Фиг. 7.21. Программа для вычисления ДПФ одной действительной -точечной последовательности. (см. скан)

Это соответствует следующему расположению в памяти -точечной действительной последовательности:

Отметим, что ввод данных в таком порядке легко (программируется на ФОРТРАНе IV с использованием оператора EQUIVALENCE. Примеры использования этого оператора содержатся в текстах подпрограмм FILTR (фиг. 7.25) и (фиг. 7.28).

Спектр функции получаемый с помощью расположен в массиве А в виде

(кликните для просмотра скана)

мул (7.25) и (7.26), выражая через :

<Вычисленнная по этим формулам производятся с помощью подпрограммы (фиг. 7.22).

<< Предыдущий параграф Следующий параграф >>
Оглавление