Что такое спектр сигнала для чайников
Введение
Рисунок 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
Амплитудно-частотная характеристика (АЧХ). Спектр сигнала.
При обсуждении переменного тока в одной из предыдущих статей (ссылка) мы познакомились с понятием гармонической (синусоидальной) функции. А бывают ли негармонические функции и сигналы и как с ними работать? В этом нам и предстоит сегодня разобраться 🙂 Кроме того, мы рассмотрим важнейшее понятие — амплитудно-частотную характеристику (АЧХ) сигналов.
Гармонические и негармонические сигналы.
Здесь A — амплитуда сигнала, w — циклическая частота, а \phi — начальная фаза. Вы спросите — а как же синус? Разве синусоидальный сигнал не является гармоническим? Конечно, является, дело в том, что sin\alpha = cos(\frac<\pi><2>\medspace-\medspace \alpha) — то есть сигналы отличаются начальной фазой, соответственно, синусоидальный сигнал не противоречит определению, которое мы дали для гармонических колебаний 🙂
Вторым подклассом периодических сигналов являются негармонические колебания. Вот пример негармонического сигнала:
Как видите, несмотря на «нестандартную» форму, сигнал остается периодическим, то есть его форма повторяется через интервал времени, равный периоду.
Для работы с такими сигналами и их исследования существует определенная методика, которая заключается в разложении сигнала в ряд Фурье. Суть методики состоит в том, что негармонический периодический сигнал (при выполнении определенных условий) можно представить в виде суммы гармонических колебаний с определенными амплитудами, частотами и начальными фазами. Важным нюансом является то, что все гармонические колебания, которые участвуют в суммировании, должны иметь частоты, кратные частоте исходного негармонического сигнала. Возможно это пока не совсем понятно, так что давайте рассмотрим практический пример и разберемся чуть подробнее 🙂 Для примера используем сигнал, который изображен на рисунке чуть выше. Его можно представить следующим образом:
Давайте изобразим все эти сигналы на одном графике:
В этой формуле U_k — амплитуда, а \phi_k — начальная фаза k-ой гармоники. Как мы уже упомянули чуть ранее, частоты всех гармоник кратны частоте первой гармоники, собственно, это мы и видим в этой формуле 🙂 U_0 — это нулевая гармоника, ее частота равна 0, она равна среднему значению функции за период. Почему среднему? Смотрите — среднее значения функции синуса за период равно 0, а значит при усреднении в этой формуле все слагаемые, кроме U_0 будут равны 0.
Амплитудный спектр сигнала.
Совокупность всех гармонических составляющих негармонического сигнала называют спектром этого сигнала. Различают фазовый и амплитудный спектр сигнала:
Давайте рассмотрим амплитудный спектр поподробнее. Для визуального изображения спектра используют диаграммы, представляющие из себя набор вертикальных линий определенной длины (длина зависит от амплитуды сигналов). На горизонтальной оси диаграммы откладываются частоты гармоник:
По горизонтальной оси могут откладываться как частоты в Гц, так и просто номера гармоник, как в данном случае. А по вертикальной оси — амплитуды гармоник, тут все понятно. Давайте построим амплитудный спектр сигнала для негармонического колебания, которое мы рассматривали в качестве примера в самом начале статьи. Напоминаю, что его разложение в ряд Фурье выглядит следующим образом:
У нас есть две гармоники, амплитуды которых равны, соответственно, 2 и 1.5. Поэтому на диаграмме две линии, длины которых соответствуют амплитудам гармонических колебаний. Фазовый спектр сигнала строится аналогично, за той лишь разницей, что используются начальные фазы гармоник, а не амплитуды.
Итак, с построением и анализом амплитудного спектра сигнала мы разобрались! Давайте перейдем к следующей теме сегодняшней статьи — к понятию амплитудно-частотной характеристики.
Амплитудно-частотная характеристика (АЧХ).
АЧХ является важнейшей характеристикой многих цепей и устройств — фильтров, усилителей звука и т. д. Даже простые наушники имеют свою собственную амплитудно-частотную характеристику. Что же она показывает?
АЧХ — это зависимость амплитуды выходного сигнала от частоты входного сигнала. Как мы выяснили в первой части статьи, негармонический периодический сигнал можно разложить в ряд Фурье. Но нас сейчас интересует, в первую очередь, аудио-сигнал, и выглядит он следующим образом:
Как видите, ни о какой периодичности здесь не идет и речи! Но, к счастью, существуют специальные алгоритмы, которые позволяют представить звуковой сигнал в виде спектра входящих в него частот. Мы сейчас не будем подробно разбирать эти алгоритмы, это тема для отдельной статьи 🙂 Просто примем тот факт, что они позволяют нам осуществить такое преобразование с аудио-сигналом.
Соответственно, мы можем построить диаграмму амплитудного спектра звукового сигнала. А пройдя через какую-либо цепь (к примеру, через наушники при воспроизведении звука) сигнал будет изменен. Так вот амплитудно-частотная характеристика как раз и показывает, какие изменения будет претерпевать входной сигнал при прохождении через ту или иную цепь. Давайте обсудим этот момент чуть поподробнее…
Итак, на входе мы имеем ряд гармоник. Амплитудная-частотная характеристика показывает, как изменится амплитуда той или иной гармоники при прохождении через цепь. Рассмотрим пример АЧХ:
Разберемся поэтапно, что же тут изображено… Начнем с осей графика АЧХ. По оси y мы откладываем величину выходного напряжения (или коэффициента усиления, как на данном рисунке). Коэффициент усиления мы откладываем в дБ, соответственно величина, равная 0 дБ, соответствует усилению в 1 раз, то есть амплитуда сигнала остается неизменной.
По оси x откладываются частоты входного сигнала. Таким образом, в рассматриваемом случае для всех гармоник, частоты которых лежат в интервале от 100 до 10000 Гц, амплитуда не изменится. А сигналы всех остальных гармоник будут ослаблены.
Практические примеры АЧХ аудио-устройств.
Частотный диапазон аудио-устройств обычно разбивают на низкие, средние и высокие частоты. Приблизительно это выглядит так:
Именно такую терминологию обычно можно встретить в разных программах-эквалайзерах, используемых для настройки звука. Теперь вы знаете, что красивые графики из таких программ являются именно амплитудно-частотными характеристиками, с которыми мы познакомились в сегодняшней статье 🙂
В завершении статьи посмотрим на пару АЧХ, полученных в программном эквалайзере:
Здесь мы можем видеть амплитудно-частотную характеристику усилителя. Причем усилены будут преимущественно средние частоты диапазона.
А здесь ситуация совсем другая — низкие и верхние частоты усиливаются, а в области средних частот для гармоник с частотой 500 Гц мы наблюдаем значительное ослабление.
А здесь усиливаются только низкие частоты. Аудио-аппаратура с такой АЧХ будет обладать высоким уровнем басов 🙂
На этом мы заканчиваем нашу сегодняшнюю статью… Спасибо за внимание и ждем вас на нашем сайте снова!
Спектральный анализ сигналов
Не так давно товарищ 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 вправо.
Этим свойством мы и воспользуемся, сдвигая спектр нашего сигнала вправо, до тех пор, пока гармоника не станет ещё больше напоминать дельта-функцию (то есть, пока некоторое локальное отношение сигнал/шум не достигнет максимума). Тогда мы и сможем вычислить точную частоту нужной гармоники, как w – 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 мегабайт), удобно реализующая поставленную задачу.
Есть возможность как вырезать гармоники вручную, так и доверить эту задачу алгоритму.