Что такое спектр функции

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

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

(с) xkcd

Я буду исходить из предположения что читатель понимает что такое интеграл, комплексное число (а так же его модуль и аргумент), свертка функций, плюс хотя бы “на пальцах” представляет себе что такое дельта-функция Дирака. Не знаете — не беда, прочитайте вышеприведенные ссылки. Под “произведением функций” в данном тексте я везде буду понимать “поточечное умножение”

Начать надо, наверное, с того что обычное преобразование Фурье — это некая такая штука которая, как можно догадаться из названия, преобразует одни функции в другие, то есть ставит в соответствие каждой функции действительного переменного x(t) её спектр или фурье-образ y(w):

Если приводить аналогии, то примером аналогичного по смыслу преобразования может послужить например дифференцирование, превращающее функцию в её производную. То есть преобразование Фурье — такая же, по сути, операция как и взятие производной, и её часто обозначают схожим образом, рисуя треугольную “шапочку” над функцией. Только в отличие от дифференцирования которое можно определить и для действительных чисел, преобразование Фурье всегда “работает” с более общими комплексными числами. Из-за этого постоянно возникают проблемы с отображением результатов этого преобразования, поскольку комплексные числа определяются не одной, а двумя координатами на оперирующем действительными числами графике. Удобнее всего, как правило, оказывается представить комплексные числа в виде модуля и аргумента и нарисовать их по раздельности как два отдельных графика:

График аргумента комплексного значения часто называют в данном случае “фазовым спектром”, а график модуля — “амплитудным спектром”. Амплитудный спектр как правило представляет намного больший интерес, а потому “фазовую” часть спектра нередко пропускают. В этой статье мы тоже сосредоточимся на “амплитудных” вещах, но забывать про существование пропущенной фазовой части графика не следует. Кроме того, вместо обычного модуля комплексного значения часто рисуют его десятичный логарифм умноженный на 10. В результате получается логарифмический график, значения на котором отображаются в децибелах (дБ).

Обратите внимание что не очень сильно отрицательным числам логарифмического графика (-20 дБ и менее) при этом соответствуют практически нулевые числа на графике “обычном”. Поэтому длинные и широкие “хвосты” разнообразных спектров на таких графиках при отображении в “обычные” координаты как правило практически исчезают. Удобство подобного странного на первый взгляд представления возникает из того что фурье-образы различных функций часто необходимо перемножать между собой. При подобном поточечном умножении комплекснозначных фурье-образов их фазовые спектры складываются, а амплитудные — перемножаются. Первое выполняется легко, а второе — сравнительно сложно. Однако логарифмы амплитуды при перемножении амплитуд складываются, поэтому логарифмические графики амплитуды можно, как и графики фаз, просто поточечно складывать. Кроме того, в практических задачах часто удобнее оперировать не «амплитудой» сигнала, а его «мощностью» (квадратом амплитуды). На логарифмической шкале оба графика (и амплитуды и мощности) выглядят идентично и отличаются только коэффициентом — все значения на графике мощности ровно вдвое больше чем на шкале амплитуд. Соответственно для построения графика распределения мощности по частоте (в децибелах) можно не возводить ничего в квадрат, а посчитать десятичный логарифм и умножить его на 20.

Заскучали? Погодите, еще немного, с занудной частью статьи, объясняющей как интерпретировать графики, мы скоро покончим :). Но перед этим следует понять одну крайне важную вещь: хотя все вышеприведенные графики спектров были нарисованы для некоторых ограниченных диапазонов значений (в частности, положительных чисел), все эти графики на самом деле продолжаются в плюс и минус бесконечность. На графиках просто изображается некоторая “наиболее содержательная” часть графика, которая обычно зеркально отражается для отрицательных значений параметра и зачастую периодически повторяется с некоторым шагом, если рассматривать её в более крупном масштабе.

Определившись с тем, что же рисуется на графиках, давайте вернемся собственно к преобразованию Фурье и его свойствам. Существует несколько разных способов как определить это преобразование, отличающихся небольшими деталями (разными нормировками). Например в наших ВУЗах почему-то часто используют нормировку преобразования Фурье определяющую спектр в терминах угловой частоты (радианов в секунду). Я буду использовать более удобную западную формулировку, определяющую спектр в терминах обычной частоты (герцах). Прямое и обратное преобразование Фурье в этом случае определяются формулами слева, а некоторые свойства этого преобразования которые нам понадобятся — списком из семи пунктов справа:

Если взять функцию, состоящую из суммы множества синусоид с разными частотами, то согласно свойству линейности, фурье-образ этой функции будет состоять из соответствующего набора дельта-функций. Это позволяет дать наивную, но наглядную интерпретацию спектра по принципу “если в спектре функции частоте f соответствует амплитуда a, то исходную функцию можно представить как сумму синусоид, одной из которых будет синусоида с частотой f и амплитудой 2a”. Строго говоря, эта интерпретация неверна, поскольку дельта-функция и точка на графике — это совершенно разные вещи, но как мы увидим дальше, для дискретных преобразований Фурье она будет не так уж и далека от истины.

Читайте также:  Что такое система управления менеджмент

Второе свойство преобразования Фурье — это независимость амплитудного спектра от сдвига сигнала по времени. Если мы подвинем функцию влево или вправо по оси x, то поменяется лишь её фазовый спектр.

Третье свойство — растяжение (сжатие) исходной функции по оси времени (x) пропорционально сжимает (растягивает) её фурье-образ по шкале частот (w). В частности, спектр сигнала конечной длительности всегда бесконечно широк и наоборот, спектр конечной ширины всегда соответствует сигналу неограниченной длительности.

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

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

Вооружившись этими 7 свойствами, давайте посмотрим на математику “оцифровки” сигнала, позволяющую перевести непрерывный сигнал в последовательность цифр. Для этого нам понадобится взять функцию, известную как “гребенка Дирака”:

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

Источник

Спектральный анализ сигналов

Не так давно товарищ Makeman описывал, как с помощью спектрального анализа можно разложить некоторый звуковой сигнал на слагающие его ноты. Давайте немного абстрагируемся от звука и положим, что у нас есть некоторый оцифрованный сигнал, спектральный состав которого мы хотим определить, и достаточно точно.

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

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

Будем решать данную задачу на Java.

Матчасть

Как я уже говорил, структура сигнала заведомо известна: это сумма синусоид и какая-то шумовая составляющая. Так сложилось, что для анализа периодических сигналов в инженерной практике широко используют мощный математический аппарат, именуемый в общем «Фурье-анализ». Давайте кратенько разберём, что же это за зверь такой.

Немного особой, Фурье-магии

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

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

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

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


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

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

Однако, преобразование Фурье сопоставляет непрерывной во времени, бесконечной функции другую, непрерывную по частоте, бесконечную функцию — спектр. Как быть, если у нас нет бесконечной во времени функции, а есть лишь какая-то записанная её дискретная во времени часть? Ответ на этот вопрос даёт дальнейшей развитие преобразования Фурье — дискретное преобразование Фурье (ДПФ).

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

Математически это означает, что, имея исследуемую бесконечную во времени функцию f(t), мы умножаем ее на некоторую оконную функцию w(t), которая обращается в ноль везде, кроме интересующего нас интервала времени.

Если «выходом» классического преобразования Фурье является спектр – функция, то «выходом» дискретного преобразования Фурье является дискретный спектр. И на вход тоже подаются отсчёты дискретного сигнала.

Читайте также:  Что такое папиллярная десна

Остальные свойства преобразования Фурье не изменяются: о них можно прочитать в соответствующей литературе.

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


Рис. 2. Амплитудный спектр синусоидального сигнала.

Я уже упомянул, что, вообще говоря, мы рассматриваем не исходную функцию, а некоторое её произведение с оконной функцией. Тогда, если спектр исходной функции — F(w), а оконной W(w), то спектром произведения будет такая неприятная операция, как свёртка этих двух спектров (F*W)(w) (Теорема о свёртке).

На практике это означает, что вместо дельта-функции, в спектре мы увидим что-то вроде этого:


Рис. 3. Эффект растекания спектра.

Этот эффект именуют также растеканием спектра (англ. spectral leekage). А шумы, появляющиеся вследствие растекания спектра, соответственно, боковыми лепестками (англ. sidelobes).
Для борьбы с боковыми лепестками применяют другие, непрямоугольные оконные функции. Основной характеристикой «эффективности» оконной функции является уровень боковых лепестков (дБ). Сводная таблица уровней боковых лепестков для некоторых часто используемых оконных функций приведена ниже.

Оконная функция Уровень боковых лепестков (дБ)
Окно Дирихле (прямоугольное окно) -13 дБ
Окно Ханна -31.5 дБ
Окно Хэмминга -42 дБ

Основной проблемой в нашей задаче является то, что боковые лепестки могут маскировать другие гармоники, лежащие рядом.


Рис. 4. Отдельные спектры гармоник.

Видно, что при сложении приведённых спектров, более слабые гармоники как бы растворятся в более сильной.


Рис. 5. Чётко видна лишь одна гармоника. Нехорошо.

Другой подход к борьбе с растеканием спектра состоит в вычитании из сигнала гармоник, создающих это самое растекание.
То есть, установив амплитуду, частоту и начальную фазу гармоники, можно вычесть её из сигнала, при этом мы уберём и «дельта-функцию», соответствующую ей, а вместе с ней и боковые лепестки, порождаемые ей. Другой вопрос состоит в том, как же точно узнать параметры нужной гармоники. Недостаточно просто взять нужные данные из комплексной амплитуды. Комплексные амплитуды спектра сформированы по целым частотам, однако, ничто не мешает гармонике иметь и дробную частоту. В этом случае, комплексная амплитуда как бы расплывается между двумя соседними частотами, и точную её частоту, как и другие параметры, установить нельзя.

Для установления точной частоты и комплексной амплитуды нужной гармоники, мы воспользуемся приёмом, широко применяемым во многих отраслях инженерной практики – гетеродинирование.

Посмотрим, что получится, если умножить входной сигнал на комплексную гармонику Exp(I*w*t). Спектр сигнала сдвинется на величину w вправо.
Этим свойством мы и воспользуемся, сдвигая спектр нашего сигнала вправо, до тех пор, пока гармоника не станет ещё больше напоминать дельта-функцию (то есть, пока некоторое локальное отношение сигнал/шум не достигнет максимума). Тогда мы и сможем вычислить точную частоту нужной гармоники, как w0 – wгет, и вычесть её из исходного сигнала для подавления эффекта растекания спектра.
Иллюстрация изменения спектра в зависимости от частоты гетеродина показана ниже.


Рис. 6. Вид амплитудного спектра в зависимости от частоты гетеродина.

Будем повторять описанные процедуры до тех пор, пока не вырежем все присутствующие гармоники, и спектр не будет напоминать нам спектр белого шума.

Затем, надо оценить СКО белого шума. Хитростей здесь нет: можно просто воспользоваться формулой для вычисления СКО:

Автоматизируй это

Пришло время для автоматизации выделения гармоник. Повторим ещё разочек алгоритм:

1. Ищем глобальный пик амплитудного спектра, выше некоторого порога k.
1.1 Если не нашли, заканчиваем
2. Варируя частоту гетеродина, ищем такое значение частоты, при которой будет достигаться максимум некоторого локального отношения сигнал/шум в некоторой окрестности пика
3. При необходимости, округляем значения амплитуды и фазы.
4. Вычитаем из сигнала гармонику с найденной частотой, амплитудой и фазой за вычетом частоты гетеродина.
5. Переходим к пункту 1.

Алгоритм не сложный, и единственный возникающий вопрос — откуда же брать значения порога, выше которого будем искать гармоники?
Для ответа на этот вопрос, следует оценить уровень шума еще до вырезания гармоник.

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


Рис. 7. Функция распределения гармоник.

Теперь построим еще и функцию — плотность распределения. Т.е., значения конечных разностей от функции распределения.


Рис. 8. Плотность функции распределения гармоник.

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

Практическая часть

Я не претендую на звание эксперта Java, и представленное решение может быть сомнительным как по части производительности и потреблению памяти, так и в целом философии Java и философии ООП, как бы я ни старался сделать его лучше. Написано было за пару вечеров, как proof of concept. Желающие могут ознакомиться с исходным кодом на GitHub.

Единственной сложностью стала генерация PDF отчёта по результатам анализа: PDFbox ну никак не хотел работать с кириллицей. К слову, не хочет и сейчас.

В проекте использовались библиотеки:
JFreeChart – отображение графиков
PDFBox – построение отчёта
JLatexMath – рендер Latex формул

Читайте также:  Что такое околошовная зона

В итоге, получилась довольно массивная программа (13.6 мегабайт), удобно реализующая поставленную задачу.

Есть возможность как вырезать гармоники вручную, так и доверить эту задачу алгоритму.

Источник

Что такое спектр функции

Введение

Рисунок 1-1. Сложный сигнал во временной области

Некоторые измерения требуют получения полной информации о сигнале – частоты, амплитуды и фазы. Такого рода анализ называется векторным анализом сигнала и рассматривается в документе Agilent Application Note 150-15, Vector Signal Analysis Basics. Современные анализаторы спектра способны проводить различного рода векторные измерения сигнала. Однако, другая обширная группа измерений не включает определения фазовых соотношений между синусоидальными составляющими. Такой тип анализа сигнала называется спектральным анализом. Поскольку спектральный анализ более прост для понимания и одновременно необычайно полезен на практике, мы сперва рассмотрим то, как анализаторы спектра осуществляют измерения для спектрального анализа, начиная с Главы 2.
Теоретически, чтобы осуществить преобразование из временной области в частотную область, сигнал должен быть оценен на всем промежутке времени, то есть до ± бесконечности. Однако, на практике мы всегда ограничиваемся каким-то конечным периодом, когда проводим измерение. Преобразование Фурье также может быть осуществлено и из частотной области во временную. В этом случае, опять же, теоретически нам надо знать все спектральные составляющие в диапазоне частот до ± бесконечности. На самом же деле, производя измерения только в той области частот, в которой содержится наибольшая часть энергии сигнала, можно получить вполне приемлемые результаты. При преобразовании Фурье из частотной области очень важно знать фазу индивидуальных составляющих. Например, прямоугольный периодический сигнал, переведенный в частотную область и обратно, может превратиться в пилообразный, если не были зафиксированы фазы.

Что такое спектр?
Так чем же является спектр в контексте нашего обсуждения? Спектр – это набор синусоидальных волн, которые, будучи надлежащим образом скомбинированы, дают изучаемый нами сигнал во временной области. На Рис. 1-1 показана волновая форма сложного сигнала. Давайте предположим, что мы ожидали увидеть чисто синусоидальный сигнал. И хотя форма явно демонстрирует нам, что сигнал не является чистой синусоидой, она не дает определенного ответа на вопрос о причинах данного явления. На Рис. 1-2 показан наш сложный сигнал во временной и в частотной области. В частотной области показана амплитуда для каждой синусоидальной волны в спектре в зависимости от частоты. Как видно, в данном случае спектр состоит лишь из двух волн. Теперь мы знаем, отчего наш сигнал не является чистой синусоидой: в нем содержится еще одна волна, вторая гармоника в нашем случае. Означает ли это, что измерения во временной области можно вообще не проводить? Отнюдь. Временная область является предпочтительной для многих измерений, а для некоторых является единственно возможной. К примеру, только во временной области можно измерить длительность фронта и спада импульса, выбросы и биения.

Рисунок 1-2. Связь между временной и частотной областью

Рисунок 1-3. Тест передатчика на гармонические искажения

Рисунок 1-4. Радиосигнал GSM и спектральная маска, показывающая границу нежелательных выбросов

Рисунок 1-5. Двухтоновый тест радиочастотного усилителя мощности

Рисунок 1-6. Выбросы излучения и их ограничения по стандарту CISPR11 как часть теста на электромагнитную совместимость

Типы измерений
Чаще всего анализаторами спектра измеряют частоту, мощность, модуляцию, искажения и шум. Знание спектрального состава сигнала очень важно, особенно в системах с полосой частот ограниченной ширины. Переданная мощность также является важным измеряемым параметром. Слишком малая мощность означает, что сигнал не сможет достичь точки назначения. Слишком большая мощность может быстро истощить заряд батарей, создать искажения и чрезмерно повысить рабочую температуру системы.
Измерение качества модуляции может быть важным для того, чтобы обеспечить нормальную работу системы и быть уверенным в том, что информация передается корректно. Измерения коэффициента модуляции, уровня полосы боковых частот, качества модуляции и заполнения полосы частот – это примеры самых распространенных тестов при аналоговой модуляции. В случае цифровой модуляции измеряются модуль вектора погрешности, дисбаланс IQ, зависимость погрешности фазы от времени и ряд других параметров. Более подробно об этих видах измерений рассказано в документе Agilent Application Note 150-15, Vector Signal Analysis Basics.
В сфере коммуникаций и связи измерение искажений очень важно как для приемников, так и для передатчиков. Излишние гармонические искажения на выходе передатчика могут создавать помехи на других коммуникационных частотах. В блоках предусилителей приемника не должно быть интермодуляции, чтобы избежать перекрестного наложения сигнала. Хороший пример – интермодуляция несущих сигналов кабельного телевидения, которые при распространении по распределительной системе вносят искажения в другие каналы этого же кабеля. Распространенными измерениями искажений являются измерения интермодуляции, гармоник и паразитного излучения.
Часто бывает нужно измерить и шум как сигнал. Любая активная цепь или устройство будет генерировать шум. Измерения коэффициента шума и отношения сигнал/шум (С/Ш) являются важными для описания показателей устройства и его вклада в общие показатели системы.

1 Жан Батист Фурье, 1768 – 1830, французский математик и физик, открывший, что периодические функции могут быть представлены последовательностью синусов и косинусов.
2 Если же сигнал появляется лишь раз, то его спектральным представлением будет непрерывное множество синусоидальных волн.

Страница: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Источник

Информационный сайт