Вы здесь

3. Преобразования Фурье

 

Преобразования Фурье

 

Основные понятия о спектральном анализе и синтезе

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

Схема применения спектрального подхода достаточно проста. Сигнал вначале представляется совокупностью гармонических составляющих — гармоник ~ в виде тригонометрического ряда Фурье. Для точного представления сигнала требуется бесконечное число гармоник, но на практике оно всегда ограничено. Такое ограничение порождает волнообразный характер изменения сигнала и появление выбросов, что известно под названием эффекта Гиббса.

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

Итак, спектральный подход заключается в следующем. Вначале получают достаточно представительный (с большим числом гармоник) спектр заданного сигнала. Довольно часто используют тестовые сигналы в виде прямоугольных, треугольных, пилообразных и других импульсов. Для моделирования таких сигналов можно использовать различные функции, например, Sign [Sin [t] ] позволяет получить симметричные прямоугольные импульсы (меандр), а Abs [Sin [t] ] моделирует результат двухполупериодного выпрямления синусоидального напряжения. Для получения разрывных сигналов можно использовать функции с условиями сравнения, например функцию If (на рис. 5.4 даны примеры имитации с помощью этой функции импульсов прямоугольной и пилообразной формы).

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

На рис. 5.5 показан пример прямого синтеза разнополярных коротких прямоугольных импульсов. Используется известное разложение их в ряд, причем графики построены для 5 и 20 гармоник. Нетрудно заметить, что даже при двадцати гармониках представление такого сигнала гармоническим рядом не очень точно — отчетливо наблюдаются колебания и выбросы, то есть эффект Гиббса.

Рис. 5.4. Имитация импульсов прямоугольной и пилообразной формы с помощью функции If

Рис. 5.5. Гармонический синтез коротких разнополярных прямоугольных импульсов

Еще один подобный пример — синтез разнополярных треугольных импульсов — представлен на рис. 5.6. Здесь также используется известное выражение для ряда

Фурье. Графики построены для 3 и 20 гармоник. Нетрудно заметить, что гармонический синтез для этого сигнала дает гораздо лучшие результаты — даже три гармоники неплохо воспроизводят сигнал. Это связано с тем, что данный сигнал не имеет разрывов — для него характерны лишь точки резких перегибов временной зависимости.

Рис. 5.6. Гармонический синтез симметричных треугольных импульсов

В целом надо отметить, что чем плавнее временная зависимость сигнала, тем меньше проявляются отмеченные выше искажения и слабее заметен эффект Гиббса.

Итак, в результате гармонического анализа сигнала (или его прямого гармонического синтеза) сигнал получается в виде совокупности гармонических сигналов — гармоник. В общем случае каждая гармоника имеет свою амплитуду и фазу, и для их получения в общем случае можно использовать прямое преобразование Фурье (см. ниже).

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

Простота спектрального подхода обманчива, поскольку он требует довольно громоздких вычислений. Для быстрого их выполнения были созданы различные ускоренные методы спектрального анализа и синтеза — например, метод быстрого преобразования Фурье (БПФ). Но лишь с появлением СКМ класса Mathematica (и ей подобных) спектральный подход превращается в «рабочую лошадку», обеспечивая наглядное и достаточно быстрое решение задач спектрального анализа и синтеза.

Прямое и обратное преобразования Фурье

Для представления временных зависимостей (сигналов) в виде набора гармоник в общем случае (и в системе Mathematica) используется прямое дискретное преобразование Фурье (ДПФ), а для обратного преобразования спектра во временную зависимость — обратное дискретное преобразование Фурье. Математические основы этих преобразований хорошо известны и описаны в соответствующей литературе. В Mathematica 4 имеются следующие основные функции для осуществления дискретного преобразования Фурье:

  • Fourier [list] — осуществляет дискретное преобразование Фурье для списка list комплексных чисел;
  • InverseFourier [list] — осуществляет дискретное обратное преобразование Фурье списка list комплексных чисел.

Параметром list этих функций в общем случае является список, содержащий комплексные числа. Последовательное применение прямого и обратного преобразований Фурье должно приводить к результату, совпадающему с исходными данными (в пределах малой погрешности). Это хорошо подтверждает следующий пример:


DF:=Fourier[{1,1,0,0}]

DF

{1. + 0.I, 0.5+0.51, 0. + 0.I, 0.5-0.51}

IF:=InverseFourier[DF]

IF

{1.+ 0. I, 1. + 2.77556х10-171, 0. + 0. I, 0. -2.77556x 10-17I}

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

Применение описанных функций имеет некоторые тонкости. Прежде всего надо отметить, что отсчет элементов векторов начинается не с нуля, а с единицы. Поэтому нулевая гармоника (в электро- и радиотехнике ее называют постоянной составляющей разлагаемой в ряд Фурье зависимости) соответствует индексу 1, первая гармоника — индексу 2 и т. д. Таким образом, имеет место смещение нумерации индексов на единицу.

Согласно теореме отсчетов, именуемой также теоремой Котельникова, если функция имеет N отсчетов, то максимальное число гармоник спектрального разложения равно N/2. Между тем, функция Fourier в системе Mathematica дает все N элементов создаваемого ею вектора. При этом на спектрограмме «лишние» гармоники на деле просто образуют зеркальное отображение реально возможных N/2 гармоник. Именно поэтому двойное (прямое и обратное) преобразование Фурье в системе Mathematica 3/4 почти идеально точно восстанавливает исходный вектор.

Еще одна тонкость связана с необычным представлением нулевых мнимых частей элементов векторов, получаемых в ходе преобразований. Они записываются в виде 0.1. Для их устранения может использоваться функция Chop [V].

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

Спектральный анализ на основе прямого преобразования Фурье

Итак, прямое преобразование Фурье означает перевод временного представления сигнала в частотное. Другими словами, оно позволяет получить частотный спектр сигнала, представленного отсчетами его временной зависимости. Нередко это является конечной целью спектрального анализа.

На рис. 5.7 представлен пример спектрального анализа простого сигнала — треугольного импульса, заданного с помощью функции If. Затем с помощью функции Fourier прямого преобразования Фурье получены в явном виде векторы амплитуд Мg и фаз Аg гармоник этого сигнала.

Рис. 5.7. Спектральный анализ пилообразного импульса на основе прямого преобразования Фурье

На рис. 5.8 представлено продолжение документа, показанного на рис. 5.7. Здесь с помощью графиков лестничного типа, подчеркивающих дискретность гармоник, построены спектрограммы амплитуд и фаз гармоник пилообразного импульса. Хорошо видно симметричное отражение линий спектра относительно восьмой гармоники — в нашем случае имелось 16 отсчетов сигнала. Это значит, что амплитуда и фаза девятой гармоники те же, что у седьмой гармоники, у десятой — те же, что у шестой, и т. д.

Рис. 5.8. Спектрограммы амплитуд и фаз гармоник пилообразного импульса

Теперь рассмотрим более сложный случай — получение спектра сложного сигнала (рис. 5.9). :

Рис. 5.9. Получение спектра сложного сигнала с помощью прямого преобразования Фурье

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

Во второй части рисунка показан график частотных отсчетов, полученных после прямого преобразования Фурье. На нем отчетливо виден пик в районе частоты 50 Гц (поскольку первый элемент результирующего списка соответствует нулевой частоте, этот пик возникает на 51-м элементе списка). Однако помимо него существует еще один пик на частоте 256 - 50 = 206 Гц. Он связан с отмеченным ранее свойством симметрии спектра вещественного сигнала.

Фильтрация сигналов на основе преобразований Фурье

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

Рис. 5.10. Часть документа, показывающая создание сигнала и синтез фильтра для него

Как и в ранее рассмотренном примере, сигнал формируется как сумма чистого сигнала со случайной составляющей, моделирующей шум. Выбранная форма сигнала напоминает затухающую синусоиду. Уровень шумов выбран достаточно большим, так что форма чистого сигнала с трудом угадывается на фоне шумов (верхний график). Далее показаны синтез цифрового частотного фильтра и его амплитудно-частотная характеристика (АЧХ). График АЧХ показан в нижней части рис. 5.10.

На рис. 5.11 показан процесс фильтрации. Он сводится к уточнению модели фильтра (сдвигу АЧХ в область более низких частот и созданию зеркального отражения спектра), проведению прямого преобразования Фурье, выделению фильтром соответствующих составляющих сигнала и, наконец, выполнению обратного преобразования Фурье. Оба преобразования и фильтрация осуществляются в одном выражении (строка с переменной conv). При этом векторы прямых преобразований Фурье для сигнала и для отсчетов частотной характеристики фильтра перемножаются. Обратное преобразование Фурье переводит результат фильтрации во временную область. Полученный в результате фильтрации сигнал практически очищен от шума. Это подтверждает график выходного сигнала, представленный в нижней части рис. 5.11.

Рис. 5.11. Часть документа, показывающего фильтрацию сигнала и построение графика сигнала, очищенного от шума

Эти примеры показывают высокую эффективность средств Mathematica 3/4 в решении задач спектрального анализа, синтеза сигналов, их фильтрации и иных преобразований. Важно отметить, что в новейшей версии Mathematica 4 использованы ускоренные алгоритмы преобразований Фурье, повышающие скорость выполнения описанных операций в несколько раз. Это открывает возможность решения серьезных задач обработки сигналов, представленных многими тысячами отсчетов. Другими словами — сигналов, реально применяемых в технике связи.

Функции пакета — FourierTransform

Подпакет FourierTransform пакета Calculus в версии Mathematics 3 служит для осуществления расширенных преобразований Фурье. Он вызывается командой


<<Calculus` FourierTransform`

Ввиду важности этих преобразований в системе Mathematica 4 их функции были размещены уже в ядре системы. Это следующие функции:

  • FourierTransform [expr, t, w] — возвращает результат прямого преобразования Фурье над выражением expr [t], выраженного через переменную w;
  • InverseFourierTransform[expr, w, t] — возвращает результат обратного преобразования Фурье над выражением expr[w], выраженного через переменную t;
  • FourierCosTransform[expr, t, w] — возвращает результат косинусного преобразования Фурье над выражением expr [t ], выраженного через переменную w;
  • FourierSinTransform[expr, t, w] — возвращает результат синусного преобразования Фурье над выражением expr [t], выраженного через переменную w;
  • FourierTransform [expr, {tl,t2}, {wl, w2 } ] — возвращает результат прямого преобразования Фурье над выражением expr [ tl, t2,...], выраженного через переменные {wl, w2,-...};
  • InverseFourierTransformtexpr, {tl,t2}, {wl,w2} ]'— возвращает результат обратного преобразования Фурье над выражением expr [ wl, wl,...], выраженного через переменные {tl, t2,...}.,

Примеры осуществления прямого и обратного преобразований Фурье представлены ниже:


FourierTransform[Sin[t]*t:2, t, w]

-Iл(DiracDelta"[l - w] - DiracDelta" [1 + w])

InverseFourierTransform[%, w, t]

t2Sin[t]

FourierCosTransform[Sin[t]*t:2, t, w]

-8w2/(1-w2)3-2/(1-w2)2

FourierSinTransform[Cos[a*t], t, w]

-w/(a2-w2)

FourierTransform[tl^2 Exp[-a t2] UnitStep[tl, t2],

{tl, t2}, {wl, w2}]

-2I/w13-лDiracDelta''[w1]/a-IW2

InverseFourierTransformtwl/(l-b*w2), {wl, w2}, {tl, t2}]

Для реализации спектрального анализа и синтеза имеются следующие функции:

  • FourierExpSeries [expr, {x, xmin, xmax), n] — возвращает разложение expr [х] в экспоненциальный ряд Фурье с n членами на отрезке {xmin, xmax};
  • FourierExpSeriesCoef f icient [expr, {x, xmin, xmax} ,n] —возвращает коэффициенты разложения expr [x] в экспоненциальный ряд Фурье с n членами на отрезке {xmin, xmax};
  • FourierTrigSeries [expr, {x, xmin, xmax}, n] — возвращает разложение expr [x] в тригонометрический ряд Фурье с n членами на отрезке {xmin, xmax};
  • FourierSinSeriesCoef f icient [expr, {x, xmin, xmax}, n] —возвращает синусные коэффициенты разложения expr [x] в тригонометрический ряд Фурье с n членами на отрезке {xmin,xmax};
  • FourierCosSeriesCoef f icient [expr, {x, xmin, xmax}, n] —возвращает косинусные коэффициенты разложения expr [x] в тригонометрический ряд Фурье с n членами на отрезке {xmin, xmax}.

Рисунок 5.12 иллюстрирует создание пилообразного сигнала, его разложение в тригонометрический ряд Фурье с п = 4, графическое воспроизведение сигнала и его представление суммой из четырех гармоник (на рисунке оставлены только совмещенные графики). Таким образом, последняя операция демонстрирует проведение синтеза пилообразного сигнала по четырем гармоникам.

Рис. 5.12. Создание пилообразного сигнала, его разложение в тригонометрический ряд Фурье и синтез сигнала по четырем гармоникам

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

  • NFourierTrigSeries [expr, {x, xmin,xmax}, n] — возвращает разложение expr t x ] в тригонометрический ряд Фурье с n членами на отрезке {xmin, xmax} в численном виде.

Предоставляем читателю опробовать эти функции самостоятельно.

 


Top.Mail.Ru