07-1 Глава 4 Цифровая фильтрация (1044899), страница 2
Текст из файла (страница 2)
Эффективные (быстрые) алгоритмы ДПФ часто используются для вычисления корреляционных функций сигналов.
Другим важным применением ДПФ является вычисление сигнала на выходе фильтра с заданной частотной характеристикой: если задан входной сигнал s1(kT), то для него можно вычислить ДПФ S1(n).
Если теперь умножить S1(n) на частотную характеристику фильтра, то получим ДПФ выходного сигнала:
S2(n) = S1(n) K(n)
После этого, применяя ОДПФ, можно найти сигнал на выходе фильтра. Аналогично решается задача восстановления входного сигнала s1(kT) по известному выходному сигналу s2(kT) и по заданной частотной характеристике K(n).
Преимуществом такого метода обработки сигналов является отсутствие ограничений на вид частотной характеристики фильтра, а недостатки связаны с периодичностью ДПФ.
Обработку сигналов с помощью ДПФ нельзя назвать цифровой фильтрацией в полном смысле слова. Обычные ЦФ, работающие в реальном масштабе времени, производят обработку сигнала непрерывно по мере его поступления, а вычисление ДПФ может быть произведено лишь после того, как станет полностью известным входной сигнал. Поэтому при использовании ДПФ выходной сигнал может быть получен только с некоторым запаздыванием по отношению к входному. Однако часто в ряде практических применений такое запаздывание не играет существенной роли, и тогда использование обработки сигналов с помощью ДПФ является целесообразным.
Процедуры прямого и обратного ДПФ встречаются во многих математических и инженерных системах, в т.ч. в MathCad и LabView. В системе MathCad имеется несколько вариантов функций для ДПФ.
Так, функция CFFT(v) является комплексной формой прямого ДПФ от вектор-столбца данных v с произвольным числом строк N. Обратное ДПФ в комплексной форме осуществляется функцией ICFFT(V), где вектор-столбец V содержит N в общем случае комплексных отсчетов дискретного спектра сигнала. Функции CFFT и ICFFT имеют обычные нормирующие коэффициенты в отличие от функций cfft и icfft.
Две близкие функции FFT(v) и IFFT(V) выполняют быстрое преобразование Фурье для вещественного вектора данных v с числом строк N, равным целой степени двойки N=2k. Из-за свойств симметрии спектров вещественных сигналов результат прямого ДПФ V содержит всего (N/2)+1 элементов. Аналогично ДПФ в комплексной форме, функции fft(v) и ifft(V) используют нетрадиционные нормирующие коэффициенты.
4.2.Быстрое преобразование Фурье
Недостатком ДПФ является большое количество математических операций для формул или . Если число степеней свободы сигнала N, то для ДПФ потребуется N2 умножений и N2 сложений комплексных чисел, т.е. всего 2 N2 арифметических операций. Для больших N такая обработка становится слишком продолжительной, даже на быстродействующих моделях ЭВМ.
Для ускорения вычисления ДПФ применяют специальные алгоритмы, которые позволяют во много раз сократить объем вычислений. Такие алгоритмы называют Быстрым Преобразованием Фурье.
Существуют различные алгоритмы БПФ, например Кули-Тьюки, Винограда, теоретико-числовые преобразования, прореживания по частоте или по времени. Наиболее простыми алгоритмы получаются, если N являются целой степенью числа 2. Рассмотрим один из таких алгоритмов, основанный на т.н. прореживании по времени.
Пусть требуется вычислить ДПФ числовой последовательности fk:
Поскольку число отсчетов сигнала N- четное, исходную последовательность fk можно разбить на две подпоследовательности: gi, куда войдут все fk с четными номерами, и подпоследовательность hi, куда войдут все fk с нечетными номерами, так что
gi=f2i; hi=f2i+1 (i=0,1,2,...,N/2-1)
Применим ДПФ к подпоследовательностям gi и hi, содержащим по N/2 членов:
Для сокращения записи обозначим:
Тогда:
Нашей целью является вычисление значений Fn.
Учитывая, что все члены последовательности fk принадлежат gk или hk, можно записать:
Т.о., значение Fn можно вычислить по известным Gn и Hn.
Однако, Error: Reference source not found справедлива только для
nN/2-1, т.к. Gn и Hn не определены для больших n. Поэтому для nN/2 значение Fn вычисляются с использованием периодичности ДПФ:
Учитывая, что
получим окончательную формулу для Fn при nN/2:
(4.13)
Для вычисления значений Gn и Fn нужно выполнить два ДПФ половинной длины. При этом для вычисления Gn и Fn необходимы по 2(N/2)2=N2/2 арифметических операций: по две операции для Error: Reference source not found и по одной операции для Error: Reference source not found. Таким образом, общее число арифметических операций равно N2+3/2N, что для больших N дает существенный выигрыш в количестве операций.
Каждую из частных подпоследовательностей gi и hi можно опять-таки разбить на две подпоследовательности половинной длины, для которых справедливы указанные выше формулы.
Процесс упрощения алгоритма расчета можно продолжать до тех пор, пока не останутся только простейшие двухточечные ДПФ. В результате, при применении данного алгоритма для вычисления ДПФ последовательности из N точек, требуется выполнить N log2N сложений и, самое большее, N log2N умножений. Использование БПФ для случая N=210=1024 отсчетов обеспечивает сокращение объема вычислений более чем в 100 раз!
Алгоритм вычисления ДПФ схематично изображают в виде направленного графа, граф двухточечного ДПФ из-за внешнего сходства получил название "бабочка".
4.3.Дискретное преобразование Лапласа. Z-преобразование
Как уже отмечалось ранее, методы описания непрерывных и дискретных сигналов во времени во многом аналогичны друг другу. Обычному (непрерывному) преобразованию Фурье соответствует Дискретное Преобразование Фурье, преобразованию Лапласа соответствует дискретное преобразование Лапласа.
Для непрерывных сигналов преобразование Лапласа (одностороннее):
Для дискретного сигнала в виде последовательности -функций
Это выражение представляет собой дискретное преобразование Лапласа.
Формула дискретного преобразования Лапласа может быть упрощена, если положить:
В результате такой замены приходим к Z-преобразованию, которое обычно применяют при анализе дискретных сигналов и систем вместо дискретного преобразования Лапласа.
Z-преобразование представляет собой модификацию дискретного преобразования Лапласа:
Функция F(z) является аналитической функцией комплексного переменного z.
Z-преобразование можно применять и для абстрактных числовых последовательностей.
Примеры Z-преобразования простейших сигналов:
1) Единичный импульс
2) Дискретизированный единичный скачок
3) Экспоненциально убывающий дискретный сигнал
4) Комплексная экспонента (обобщенный гармонический сигнал)
5) Гармоническая функция
6) Степенная функция f(nT)=kn :
Поскольку Z-преобразование - это степенной ряд переменной z-1, то важно рассмотреть вопрос о его сходимости. Ряд Error: Reference source not found сходится для z>R, где R - радиус сходимости, зависящий от вида функции f(nT). Наиболее просто радиус сходимости определяется для степенной функции вида 6) f(nT)=kn. В этом случае F(z)=z/(z-k). Эта функция имеет полюс при z=k. Вне окружности z=k функция F(z) является аналитической функцией комплексного переменного z, и описывающий ее ряд Error: Reference source not found сходится. Следовательно, для f(nT)=kn радиус сходимости R=k.
4.4.Обратное Z-преобразование
Обратное Z-преобразование позволяет определить значения дискретного сигнала по виду функции F(z). Можно воспользоваться обратным преобразованием Лапласа, но легче получить результат из формулы прямого Z-преобразования .
Умножая обе части Error: Reference source not found на zk-1, проинтегрируем по окружности с радиусом, превышающим радиус сходимости R ряда для F(z), затем поменяем местами суммирование и интегрирование:
Вычислим интеграл в правой части:
Такой результат объясняется тем, что значение интеграла по замкнутому контуру в комплексной плоскости равно произведению 2j на сумму вычетов подынтегральной функции: единственный вычет при z=0 получается только при k=n, т.е. когда zk-n-1=1/z. Следовательно,
обратное Z-преобразование выражается:
Уточним форму контура интегрирования. Для этого положим fn=kn - степенная функция (см. пример 6).
Применяя обратное Z-преобразование для F(z)=z/(z-k):
Подынтегральная функция имеет единственный полюс при z=k. Интегрировать можно вдоль любого контура, охватывающего точку z=k, но удобнее - вдоль окружности радиуса R>k. Для сигналов, абсолютное значение которых убывает во времени, k<1, поэтому в качестве контура интегрирования можно использовать окружность радиуса R=1.
4.5.Основные свойства Z-преобразования
Для Z-преобразований справедливы некоторые теоремы, аналогичные теоремам о спектрах непрерывных сигналов. Главная из них - теорема о свертке.