Зачем нужен фазовый спектр
Амплитудный и фазовый спектры
Интересный вопрос — в каком из этих спектров содержится больше информации?
И в каком смысле — больше?
С точки зрения живого существа (человека, слона, летучей мышки, комара) или с позиций общей теории информации, которая ещё окончательно не сформировалась?
Ясно, что гармоника — это основная информационная единица описания звука, поскольку частота гармоники инвариантна к любым реальным изменениям звукового сигнала, при его прохождении через любые реальные каналы передачи звука. Поэтому амплитудный спектр важен уже только лишь потому, что он указывает — из каких гармоник состоит (или можно составить) исследуемый звуковой сигнал. Если амплитуда гармоники с некоторой частотой равна нулю, то считай, что никакой гармоники в анализируемом окне наблюдения за сигналом вообще нет. А если амплитуда не равна нулю, то — инвариантный компонент сигнала присутствует.
Известно, что наш слух значение фазы одиночного гармонического сигнала никак не ощущает. Да что там одиночного гармонического сигнала! Даже если в любом звуковом сигнале немного изменить фазы всех гармоник (что такое немного — это отдельный разговор) или, как говорил уважаемый Андрей Андреевич Пирогов (предложивший замечательную фонетическую функцию Пирогова): «Немного распушить фазу», — то наш слух и это преобразование сигнала тоже не заметит.
Поэтому фазовому спектру внимание почти не уделялось. И это уже стало почти традицией. Видимо, из-за этого очень не просто найти инструмент визуализации следов звука в виде динамических спектров (сонограмм), в котором бы информация о фазовом спектре, хоть как-то бы, визуализировалась.
Но. С теоретической точки зрения фазовый спектр может содержать столько же информации, сколько и амплитудный. Чтобы убедиться в этом, очень полезен эксперимент, предложенный в статье: Оппенгейм А.В. и Лим Дж.С. “Важность фазы при обработке сигналов”, ТИИЭР, 1981, Т. 69, № 5.
Схема эксперимента такова:
Прямое преобразование Фурье
Agilent. Основы анализа спектра — страница 1
Цель данной статьи — сформировать базовые знания о супергетеродинных анализаторах спектра и рассказать о недавних достижениях в развитии их возможностей.
В самых общих чертах анализатор спектра можно описать как частотно-избирательный вольтметр, реагирующий на амплитуду и настроенный так, чтобы отображать среднеквадратичное значение синусоидальной волны. Важно осознавать, что анализатор спектра не является измерителем мощности, несмотря на то, что он способен напрямую отображать значение мощности. Если нам известен какой-нибудь параметр синусоидальной волны (например, пиковое или среднее значение) и известно сопротивление, через которое мы измеряем это значение, мы можем настроить наш вольтметр на отображение мощности. С преимуществами цифровой технологии, современные анализаторы спектра обладают куда более широкими возможностями. В данной книге будут рассмотрены простейшие анализаторы спектра, а также множество дополнительных возможностей, предоставленных развитием цифровой технологии и цифровой обработки сигналов.
Частотная область против временной области
Прежде чем начать подробно рассматривать анализатор спектра, зададимся вопросом: «А что же такое вообще спектр, и зачем нам его измерять и анализировать?» Обычной и естественной системой отсчета для нас является время. Мы замечаем, когда происходит то или иное событие. Это включает и события электрического характера. Можно использовать осциллограф и наблюдать мгновенное значение величины какого-то электрического явления (или любого другого явления, переведенного в вольты посредством надлежащего преобразователя) в зависимости от времени. Иными словами, мы используем осциллограмму для наблюдения формы сигнала во временной области.
Теория Фурье 1 гласит, что любое электрическое явление во временной области состоит из одной или нескольких синусоидальных волн с соответствующими частотами, амплитудами и фазами. То есть можно преобразовать сигнал во временной области в его эквивалент в частотной области. Измерения в частотной области способны показать, сколько энергии имеется на каждой конкретной частоте. При надлежащей фильтрации такой сигнал, как на Рис. 1-1, может быть разложен на отдельные синусоидальные волны, или спектральные составляющие, которые затем можно оценить независимо друг от друга. Каждая такая волна описывается амплитудой и фазой. Если сигнал, который мы хотим исследовать, — периодический (как в нашем случае), то по теории Фурье составляющие его синусоидальные волны будут разнесены в частотной области на 1/Т, где Т – это период сигнала 2 .
Рисунок 1-1. Сложный сигнал во временной области
Некоторые измерения требуют получения полной информации о сигнале – частоты, амплитуды и фазы. Такого рода анализ называется векторным анализом сигнала и рассматривается в документе Agilent Application Note 150-15, Vector Signal Analysis Basics. Современные анализаторы спектра способны проводить различного рода векторные измерения сигнала. Однако, другая обширная группа измерений не включает определения фазовых соотношений между синусоидальными составляющими. Такой тип анализа сигнала называется спектральным анализом. Поскольку спектральный анализ более прост для понимания и одновременно необычайно полезен на практике, мы сперва рассмотрим то, как анализаторы спектра осуществляют измерения для спектрального анализа, начиная с Главы 2.
Теоретически, чтобы осуществить преобразование из временной области в частотную область, сигнал должен быть оценен на всем промежутке времени, то есть до ± бесконечности. Однако, на практике мы всегда ограничиваемся каким-то конечным периодом, когда проводим измерение. Преобразование Фурье также может быть осуществлено и из частотной области во временную. В этом случае, опять же, теоретически нам надо знать все спектральные составляющие в диапазоне частот до ± бесконечности. На самом же деле, производя измерения только в той области частот, в которой содержится наибольшая часть энергии сигнала, можно получить вполне приемлемые результаты. При преобразовании Фурье из частотной области очень важно знать фазу индивидуальных составляющих. Например, прямоугольный периодический сигнал, переведенный в частотную область и обратно, может превратиться в пилообразный, если не были зафиксированы фазы.
Что такое спектр?
Так чем же является спектр в контексте нашего обсуждения? Спектр – это набор синусоидальных волн, которые, будучи надлежащим образом скомбинированы, дают изучаемый нами сигнал во временной области. На Рис. 1-1 показана волновая форма сложного сигнала. Давайте предположим, что мы ожидали увидеть чисто синусоидальный сигнал. И хотя форма явно демонстрирует нам, что сигнал не является чистой синусоидой, она не дает определенного ответа на вопрос о причинах данного явления. На Рис. 1-2 показан наш сложный сигнал во временной и в частотной области. В частотной области показана амплитуда для каждой синусоидальной волны в спектре в зависимости от частоты. Как видно, в данном случае спектр состоит лишь из двух волн. Теперь мы знаем, отчего наш сигнал не является чистой синусоидой: в нем содержится еще одна волна, вторая гармоника в нашем случае. Означает ли это, что измерения во временной области можно вообще не проводить? Отнюдь. Временная область является предпочтительной для многих измерений, а для некоторых является единственно возможной. К примеру, только во временной области можно измерить длительность фронта и спада импульса, выбросы и биения.
Рисунок 1-2. Связь между временной и частотной областью
Для чего измерять спектр?
У частотной области есть свои плюсы в плане измерений. Мы уже видели на Рис. 1-1 и 1-2, что частотная область гораздо удобнее для определения гармонического состава сигнала. Те, кто занимаются беспроводной связью, очень заинтересованы в определении внеполосного и паразитного излучения. Например, сотовые радиосистемы должны проверяться на наличие гармоник несущего сигнала, которые могут вносить помехи в работу других систем, оперирующих на той же частоте, что и гармоники. Инженеры и техники также часто обеспокоены искажением сообщений, транслирующихся с модуляцией несущего сигнала. Интермодуляция третьего порядка (то есть две составляющие сложного сигнала, модулирующие друг друга) может причинить много хлопот, поскольку компоненты искажения могут попасть в интересуемую полосу частот и не будут надлежащим образом отфильтрованы.
Наблюдение за спектром – еще одна важная сторона измерений в частотной области. Государственные регулирующие структуры распределяют различные частоты для различных радио-служб: телевизионное и радиовещание, сотовая связь, связь правоохранительных органов и спасательных служб, а также множество иных организаций и приложений. Крайне важно, чтобы каждая служба работала только на предназначенной для нее частоте и оставалась в пределах выделенной полосы канала. Передатчики и другие излучатели зачастую могут работать на очень близко расположенных соседних частотах. Для усилителей мощности и других компонентов таких систем ключевым параметром для измерения является количество энергии сигнала, просачивающейся в соседние каналы и порождающей интерференцию.
Электромагнитная интерференция (EMI) – это термин, применяемый к нежелательному излучению от преднамеренных и случайных излучателей. Поводом для беспокойства тут служит тот факт, что это нежелательное излучение, будучи передано в эфир или по проводам, может затруднить работу других систем. При разработке и производстве практически любой электрической или электронной продукции необходимо исследовать уровни излучения в зависимости от частоты, и приводить их в соответствие с нормами, устанавливаемыми правительственными органами или индустриальными стандартами. На Рис. с 1-3 по 1-6 показаны некоторые из такого рода измерений.
Рисунок 1-3. Тест передатчика на гармонические искажения
Рисунок 1-4. Радиосигнал GSM и спектральная маска, показывающая границу нежелательных выбросов
Рисунок 1-5. Двухтоновый тест радиочастотного усилителя мощности
Рисунок 1-6. Выбросы излучения и их ограничения по стандарту CISPR11 как часть теста на электромагнитную совместимость
Типы измерений
Чаще всего анализаторами спектра измеряют частоту, мощность, модуляцию, искажения и шум. Знание спектрального состава сигнала очень важно, особенно в системах с полосой частот ограниченной ширины. Переданная мощность также является важным измеряемым параметром. Слишком малая мощность означает, что сигнал не сможет достичь точки назначения. Слишком большая мощность может быстро истощить заряд батарей, создать искажения и чрезмерно повысить рабочую температуру системы.
Измерение качества модуляции может быть важным для того, чтобы обеспечить нормальную работу системы и быть уверенным в том, что информация передается корректно. Измерения коэффициента модуляции, уровня полосы боковых частот, качества модуляции и заполнения полосы частот – это примеры самых распространенных тестов при аналоговой модуляции. В случае цифровой модуляции измеряются модуль вектора погрешности, дисбаланс IQ, зависимость погрешности фазы от времени и ряд других параметров. Более подробно об этих видах измерений рассказано в документе Agilent Application Note 150-15, Vector Signal Analysis Basics.
В сфере коммуникаций и связи измерение искажений очень важно как для приемников, так и для передатчиков. Излишние гармонические искажения на выходе передатчика могут создавать помехи на других коммуникационных частотах. В блоках предусилителей приемника не должно быть интермодуляции, чтобы избежать перекрестного наложения сигнала. Хороший пример – интермодуляция несущих сигналов кабельного телевидения, которые при распространении по распределительной системе вносят искажения в другие каналы этого же кабеля. Распространенными измерениями искажений являются измерения интермодуляции, гармоник и паразитного излучения.
Часто бывает нужно измерить и шум как сигнал. Любая активная цепь или устройство будет генерировать шум. Измерения коэффициента шума и отношения сигнал/шум (С/Ш) являются важными для описания показателей устройства и его вклада в общие показатели системы.
Виды анализаторов сигнала
Хотя в этом руководстве мы концентрируемся на перестраиваемом супергетеродинном анализаторе спектра, существуют и другие архитектуры. Важный не супергетеродинный тип анализатора – тот, что оцифровывает сигнал во временной области, использует методы цифровой обработки сигнала, выполняет быстрое преобразование Фурье (БПФ) и показывает сигнал в частотной области. Одно преимущество подхода с БПФ в том, что появляется возможность характеризовать одновспышечные явления. Другое – в том, что кроме амплитуды можно измерить и фазу. Однако, БПФ-машины имеют некоторые ограничения в сравнении с супергетеродинными анализаторами спектра, в частности — по частотному диапазону, чувствительности и динамическому диапазону.
Векторные анализаторы сигнала тоже оцифровывают сигнал во временной области, как и БПФ-машины, но их возможности при этом распространяются и на область СВЧ при помощи понижающих преобразователей, включенных перед АЦП. Такие анализаторы позволяют провести быстрые измерения спектра с хорошим разрешением, демодуляцию и расширенный анализ во временной области. Они особенно полезны для описания сложных сигналов – всплесков, переходного или модулированного сигнала в системах связи, телевещания, радиовещания, в сонарах, а также в приложениях ультразвукового зондирования.
1 Жан Баптист Фурье, 1768 – 1830, французский математик и физик, открывший, что периодические функции могут быть представлены последовательностью синусов и косинусов.
2 Если же сигнал появляется лишь раз, то его спектральным представлением будет непрерывное множество синусоидальных волн.
Зачем нужен фазовый спектр
Введение в спектральный анализ сигналов
Кроме естественного представления сигналов во временной области в анализе сигналов и систем широко используется частотное представление. Задачу представления сигналов в частотной области называют также спектральным анализом, гармоническим анализом, частотным анализом, или Фурье-анализом. Многие физические процессы описываются в виде суммы индивидуальных частотных составляющих. Понятие спектра широко используется в представлении звуков, радио и телевещании, в физике света, в обработке любых сигналов независимо от физической природы их возникновения. На нем базируется исключительно эффективный и очень простой в использовании частотный метод анализа линейных систем.
Начала спектрального анализа заложены в 18–м веке в работах Бернулли, Эйлера, Гаусса. Основные результаты получены французскими учеными Ж. Фурье (1768 – 1830 г .г.) и П. Дирихле (1805 – 1859 г .г.) в 19-м столетии. Как самостоятельная прикладная область спектральный анализ сформировался во второй половине 20-го века.
Спектральный анализ основывается на классических рядах Фурье и преобразовании Фурье. Ряды Фурье используются для периодических сигналов и сигналов, заданных на конечном интервале времени . В последнем случае сигнал может быть периодически продолжен с периодом .
Преобразование Фурье применяется для непериодических сигналов, заданных на всей временной оси .
Основная задача спектрального анализа заключается в определении частотного спектра сигнала (функции). Любой сигнал может быть представлен своим частотным спектром.
Обычное гармоническое колебание (гармонический сигнал)
характеризуется: 1. амплитудой A > 0 , 2. частотой , 3. начальной фазой .
Параметры дают полное описание гармонического сигнала в частотной области в виде спектра, представляющего значение амплитуды и начальной фазы в зависимости от частоты гармоники f . Задавая эти параметры, можно определить гармонический сигнал двумя способами:
§ Как косинусоидальное колебание с амплитудой А, частотой f 0 и фазой θ,
§ Как сумму двух комплексных экспонент (гармоник), каждая с амплитудой . При этом одна составляющая имеет частоту и фазу , другая – отрицательную частоту и отрицательную фазу .
Оба представления дают одинаковый результат, но во многих случаях комплексная форма оказывается более эффективной для инженерных задач.
Комплексный ряд Фурье
Сигнал x ( t ) является периодическим, если он точно повторяет свои значения через интервал времени, называемый периодом Т, т.е. .
. Примеры периодических сигналов разной формы с периодом Т = 0,2 с
Реальные периодические сигналы могут быть разложены в ряд Фурье, т.е. представлены в виде суммы гармоник кратных частот. Такое представление и играет исключительно важную роль во многих практических приложениях: электроника, связь, обработка сигналов, акустика, музыка и др.
Теорема математического анализа.
Любой конечный периодический сигнал (функция) x ( t ), определенный для всех действительных t или на конечном интервале времени , можно представить рядом Фурье. Эта теорема (теорема Дирихле) строго доказывается в математическом анализе. В данном курсе доказательство опускается, используется лишь окончательный результат теоремы.
Комплексная (экспоненциальная) форма ряда Фурье
— выражение синтеза сигнала
— основная частота, — основная угловая частота.
При этом коэффициенты комплексного ряда Фурье определяются по выражению
— выражение анализа сигнала.
Пределы интегрирования могут быть заменены на любой интервал длительностью период (Т), например, от 0 до Т или от –Т/2 до Т/2 и т.п. Коэффициенты Фурье полностью определяют сигнал x ( t ) в частотной области.
В математическом анализе доказывается, что если периодическая функция x ( t ) (сигнал) удовлетворяет условиям Дирихле, то её ряд Фурье сходится к самой функции в точках непрерывности функции и к полусумме в точках разрыва,
Условия Дирихле: 1. Функция x ( t ) абсолютно сходится в пределах периода, т.е. ,
2. x ( t ) на интервале Т имеет конечное число максимумов/минимумов и разрывов первого рода.
Любой реальный сигнал удовлетворяет условиям Дирихле.
- На конечном временном интервале x (t ) должна иметь конечное число максимумов и минимумов и конечное число разрывов первого рода.
Применим формулу Эйлера в выражении для Xk , тогда
В общем случае коэффициенты Фурье Xk являются комплексными числами, т.е.
, где , — модуль коэффициента — аргумент (фаза) X k .
Поскольку в выражении X k косинус является четной функцией значения k , а синус – нечетной, то Фурье – коэффициенты для действительного сигнала x ( t ) обладают следующими свойствами симметрии
Здесь используется тот факт, что произведение нечетных функций дает четную функцию, а частное четной и нечетной функции – нечетную функцию.
Следовательно, исходя из соответствующей симметрии спектров– четной или нечетной, достаточно рассматривать амплитуды и фазы гармоник только для положительных частот ω k = kω 0 (положительные значения k ). Для отрицательных частот спектры всегда могут быть получены из соображений четной или нечетной симметрии.
Тригонометрические формы ряда Фурье
Для действительных периодических сигналов чаще используются тригонометрические формы ряда Фурье, как более простые для вычислений
Тригонометрические формы можно получить из комплексной с помощью формулы Эйлера и дальнейших преобразований. Покажем это подробнее:
Поскольку , то — это комплексно — сопряженное значение Xk , поэтому предыдущее выражение можно записать в таком виде
Сумма и разность комплексно – сопряженных чисел Xk и Xk * равны соответственно
С учетом этих равенств
Учтем также известное тригонометрическое тождество для косинуса:
При этом предыдущее выражение запишем в виде .
Обозначим . Тогда получаем
— это тригонометрическая форма ряда Фурье.
Если обозначить , то получим другую тригонометрическую форму ряда Фурье , здесь
При этом коэффициенты ряда
Для четных сигналов коэффициенты bk =0 , т.к. и ряд содержит только косинусы. Для нечетных сигналов ak =0, поскольку .
В результате упрощается вычисление коэффициентов Фурье. Если сигнал задан на конечном интервале , то его можно периодически продолжить четным или нечетным образом и тем самым достигнуть упрощения разложения в ряд Фурье.
В заключение укажем соответствия между коэффициентами различных форм ряда Фурье:
Амплитудный и фазовый спектры периодического сигнала
Разложение в ряд Фурье является основой спектрального представления периодических сигналов.
Совокупность коэффициентов Ak = A ( kω 0) или образует амплитудный частотный спектр периодического сигнал. Это зависимость амплитуд гармоник сигнала от частоты. Набор — фазовый спектр, зависимость начальных фаз гармоник от частоты. При этом односторонний спектр имеет составляющие только на частотах двусторонний – на частотах Член ряда с k =0 называется постоянной составляющей (ПС), с k =1 – первой, или основной гармоникой, k =2 – второй гармоникой сигнала и т.д. Обычно спектры для наглядности представляются в виде графиков. В любом случае для периодических сигналов характер спектров — линейчатый.
Общий вид амплитудного спектра. Амплитуды гармоник Xk → 0 при возрастании k .
Частота и номер гармоники связаны очень просто: или
Спектр фаз — нечетная функция аргумента k . Общий вид
Двусторонний фазовый спектр Односторонний фазовый спектр
Ввиду четной/нечетной симметрии спектров для действительных сигналов достаточно отображать только часть спектра, соответствующую положительным частотам, т.е. использовать односторонние спектры.
Примеры определения спектров.
Амплитудный и фазовый спектры прямоугольного периодического сигнала.
Рассмотрим периодическую последовательность прямоугольных импульсов с периодом Т и длительностью τ. Сигналы подобной формы широко используются, например, в цепях компьютеров в качестве информационных, тестовых, синхронизирующих сигналов. Величина называется скважностью импульсной последовательности. Это отношение периода к длительности сигнала. При сигнал называют меандром. Необходимо разложить такой сигнал в ряд Фурье и построить график его амплитудного спектра .
Коэффициенты комплексной формы ряда Фурье ,
Ряд Фурье сигнала в комплексной форме .
График амплитудного спектра | Xk | сигнала для U = 10 В, T = 10 с,τ = 1 c , f0=1/ T =0,1Гц
Тригонометрический ряд Фурье данного сигнал
Коэффициенты b k = 0, т.к. сигнал четный (симметричный относительно начала координат).
Коэффициенты ak
Как показано выше
График амплитудного спектра ak сигнала для U = 10 В, T = 5 с, τ = 1 c , f0=1/ T =0,2Гц
Из примера очевидно, что с увеличением периода Т спектр становится более частым, частотный интервал между гармониками уменьшается и при (непериодический сигнал) спектр превращается в сплошной (непрерывный).
Фазовый спектр– нулевой, поскольку сигнал — четный и .
Вид ряда Фурье прямоугольной волны при числе гармоник
Сигнал формируется из непрерывных гармоник. Пульсации (колебания) вблизи точек разрыва объясняются явлением Гиббса, возникающим у сигналов с разрывами при усечении ряда Фурье конечным числом членов k .
Примеры Фурье — анализа и синтеза различных сигналов см. в издании «Методические указания к решению задач и упражнений», с. 50 -70.
T os _Demo → index → Спектральное представление периодических сигналов.
- Задачу представления сигналов (процессов) в частотной области называют спектральным анализом, гармоническим анализом, частотным анализом, или Фурье-анализом. Спектральный анализ широко используется в ряде прикладных областей, в том числе в обработке сигналов.
- Спектральный анализ периодических сигналов основывается на разложении сигнала в ряд Фурье.
- Комплексная форма ряда Фурье
, - Тригонометрические ряды Фурье
· Амплитудный спектр периодического сигнала — это зависимость амплитуд гармоник сигнала Ak = A ( kω 0) или от частоты или номера гармоники,
фазовый спектр – зависимость начальных фаз гармоник сигнала от частоты или номера гармоники. Гармоники — собственные функции линейных систем.
Спектры полностью определяют сигнал.
Спектральный анализ сигналов
Не так давно товарищ Makeman описывал, как с помощью спектрального анализа можно разложить некоторый звуковой сигнал на слагающие его ноты. Давайте немного абстрагируемся от звука и положим, что у нас есть некоторый оцифрованный сигнал, спектральный состав которого мы хотим определить, и достаточно точно.
Под катом краткий обзор метода выделения гармоник из произвольного сигнала с помощью цифрового гетеродинирования, и немного особой, Фурье-магии.
Итак, что имеем.
Файл с отсчетами оцифрованного сигнала. Известно, что сигнал представляет собой сумму синусоид со своими частотами, амплитудами и начальными фазами, и, возможно, белый шум.
- количество гармоник в составе сигнала, а для каждой: амплитуду, частоту (далее в контексте числа длин волн на длину сигнала), начальную фазу;
- наличие/отсутствие белого шума, а при наличии, его СКО (среднеквадратическое отклонение);
- наличие/отсутствие постоянной составляющей сигнала;
- всё это оформить в красивенький PDF отчёт
с блэкджеком ииллюстрациями.
Будем решать данную задачу на 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. Плотность функции распределения гармоник.
Абсцисса максимума плотности распределения и является амплитудой гармоники, встречающейся в спектре наибольшее число раз. Отойдем от пика вправо на некоторое расстояние, и будем считать абсциссу этой точки оценкой уровня шума в нашем спектре. Вот теперь можно и автоматизировать.
Посмотреть на кусок кода, детектирующий гармоники в составе сигнала
public ArrayList detectHarmonics() < SignalCutter cutter = new SignalCutter(source, new Signal(source)); SynthesizableComplexExponent heterodinParameter = new SynthesizableComplexExponent(); heterodinParameter.setProperty("frequency", 0.0); Signal heterodin = new Signal(source.getLength()); Signal heterodinedSignal = new Signal(cutter.getCurrentSignal()); Spectrum spectrum = new Spectrum(heterodinedSignal); int harmonic; while ((harmonic = spectrum.detectStrongPeak(min)) != -1) < if (cutter.getCuttersCount() >10) throw new RuntimeException("Unable to analyze signal! Try another parameters."); double heterodinSelected = 0.0; double signalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); for (double heterodinFrequency = -0.5; heterodinFrequency < (0.5 + heterodinAccuracy); heterodinFrequency += heterodinAccuracy) < heterodinParameter.setProperty("frequency", heterodinFrequency); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); double newSignalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); if (newSignalToNoise >signalToNoise) < signalToNoise = newSignalToNoise; heterodinSelected = heterodinFrequency; >> SynthesizableCosine parameter = new SynthesizableCosine(); heterodinParameter.setProperty("frequency", heterodinSelected); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); parameter.setProperty("amplitude", MathHelper.adaptiveRound(spectrum.getRealAmplitude(harmonic))); parameter.setProperty("frequency", harmonic - heterodinSelected); parameter.setProperty("phase", MathHelper.round(spectrum.getPhase(harmonic), 1)); cutter.addSignal(parameter); cutter.cutNext(); heterodinedSignal.set(cutter.getCurrentSignal()); spectrum.recalc(); > return cutter.getSignalsParameters(); >
Практическая часть
Я не претендую на звание эксперта Java, и представленное решение может быть сомнительным как по части производительности и потреблению памяти, так и в целом философии Java и философии ООП, как бы я ни старался сделать его лучше. Написано было за пару вечеров, как proof of concept. Желающие могут ознакомиться с исходным кодом на GitHub.
Единственной сложностью стала генерация PDF отчёта по результатам анализа: PDFbox ну никак не хотел работать с кириллицей. К слову, не хочет и сейчас.
В проекте использовались библиотеки:
JFreeChart – отображение графиков
PDFBox – построение отчёта
JLatexMath – рендер Latex формул
В итоге, получилась довольно массивная программа (13.6 мегабайт), удобно реализующая поставленную задачу.
Есть возможность как вырезать гармоники вручную, так и доверить эту задачу алгоритму.
Всем спасибо за внимание!