Как сделать спектральный график

Обновлено: 06.07.2024

У меня есть два столбца данных - сначала фракции (идет по оси х), а второй - целые числа (идет на у). Есть ли способ построить один против другого по типу гистограммы, чтобы он выглядел как спектр?

Используйте инструмент "Разброс графика". Его также называют инструментом "диаграммы рассеяния". После того, как у вас есть диаграмма на месте, вы можете добавить линию тренда, чтобы определить формулу для отношения между значениями x и y. Вы сможете найти формулу в терминах y = mx + b. Вы также можете определить значение квадрата r, которое будет важно при интерпретации отношения. Существует несколько вариантов диаграмм рассеяния, которые могут привести вас к курсу, поэтому немного экспериментируйте с инструментом, чтобы обнаружить правильные варианты вашей ситуации.

Еще в рубрике

Построить диаграмму области временного ряда с передискретизацией одной строкой кода?

Как сделать вывод данных в итеративном порядке как подзаголовки?

Как изменить формат datetime значений оси x в matplotlib с помощью python?


Тема 1.4. Временное и спектральное представление сигналов

Формы представления сигналов

Существует две формы представления сигналов:

· временная форма представления сигналов;

· спектральная форма представления сигналов.

Временная форма представления сигнала – это описание изменения его параметров в функции времени. Такая форма описания позволяет определить энергию, мощность и длительность сигнала.

Временная форма может быть представлена:

· математической моделью (аналитической записью);

· временной диаграммой (осциллограммой) сигнала.

Следует отметить, что выбрать математическую модель для реального электрического сигнала не всегда просто. Для примера рассмотрим телефонный сигнал, реализации различных фрагментов которого приведены на рис. 1.4.1. Даже визуальный анализ этих временных диаграмм приводит к заключению, что совсем непросто подобрать функцию времени, которая точно совпадала бы, например, с временной диаграммой u(t) на всем интервале времени [0,Т]. Если бы такую функцию удалось найти, то, скорее всего, она была бы представлена достаточно сложным выражением. Поэтому можно сказать, что временные диаграммы телефонного сигнала имеют сложную форму.

Рисунок 1.4.1.

Для исследования частотных свойств сигналов используется спектральное представление функции с помощью преобразования Фурье временной формы, когда в качестве простых функций выбирают гармонические колебания. Сущность этого представления состоит в следующем: любой электрический сигнал u(t) на произвольно заданном интервале времени длительностью Т от t = t0 до t = t0+T можно записать в виде суммы простых гармонических колебаний (ряда Фурье):

U0 – постоянная составляющая, В;

Umk – амплитуды гармоник, В;

ω1 – частота первой гармоники, рад/с;

φк – начальная фаза k-й гармоники.

Спектральная форма представления сигнала – это представление параметров сигнала в виде двух графиков:

· графика спектра амплитуд;

· графика спектра фаз.

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

Рисунок 1.4.2. График спектра амплитуд

Рисунок 1.4.3. График спектра фаз

Периодические сигналы и их спектры

Гармонический сигнал

Математическая модель сигнала:

Параметрами гармонического сигнала являются:

· ω0 – угловая частота, рад/с;

· φ0 – начальная фаза, рад.

При построении графиков спектров более удобно угловую частоту ω0, рад/с перевести в линейную f0, Гц по формуле:

Рисунок 1.4.4. График спектра амплитуд

Рисунок 1.4.5. График спектра фаз

Вывод: гармонический сигнал имеет одну спектральную линию на графике спектра амплитуд и одну спектральную линию на графике спектра фаз.

Сложный периодический сигнал (бигармонический сигнал)

Рисунок 1.4.6. График спектра амплитуд

Рисунок 1.4.7. График спектра фаз

Вывод: сложный периодический сигнал имеет дискретный спектр.

Последовательность прямоугольных импульсов

В связи с тем, что последовательность прямоугольных импульсов является периодическим сигналом, его математическая модель может быть представлена рядом Фурье:

Данный ряд бесконечный, а каналов с бесконечной шириной полосы спектра не существует, поэтому его необходимо ограничить. Энергия гармоник, частоты которых попадают на интервал от 0 до 4*π/t (t – длительность импульса), составляет около 95% энергии этого сигнала на одном периоде. Длина этого периода равна ширине первых двух лепестков, что составляет 2*q гармоник (q = Т/t – скважность).

В качестве примера рассмотрим последовательность прямоугольных импульсов со скважностью q = 3 и построим спектр первых двух лепестков:

Рисунок 1.4.8. График спектра амплитуд

Рисунок 1.4.9. График спектра фаз

· последовательность прямоугольных импульсов имеет дискретный и бесконечный спектр;

· гармоники, частоты которых кратны скважности, обращаются в ноль;

· расстояние между линиями спектра равно частоте первой гармоники;

· гармоники, входящие в состав нечетных лепестков, имеют фазу (+π/2), а гармоники, входящие в состав четных лепестков, имеют фазу (-π/2).

Примечание: формулы для расчета параметров спектра будут даны в практической работе.

Непериодические сигналы и их спектры

Сигналы, не являющиеся периодическими, называются непериодическими. К ним относятся многие реальные сигналы электросвязи. Гармонический анализ периодических сигналов можно распространить на непериодические сигналы, если представить непериодический сигнал как периодический, но с периодом, стремящимся к бесконечности (Т→∞).

Рисунок 1.4.10. а, б – прямоугольный импульс и его спектральная плотность; в, г – затухающий импульс и его спектральная плотность

В этом случае частота первой гармоники стремится к нулю (f1 = 1/T = 1/∞→0), расстояния между линиями стремятся к нулю и спектр становится сплошным. Ниже приведены некоторые непериодические сигналы. Для непериодических сигналов рассматривается не спектр, а его производная по частоте, носящая название спектральной плотности.

Рисунок 1.4.11. Треугольный импульс и его спектральная плотность а, б

scipy

Меня тут немного покритиковали за мою предыдущую статью. Я сделал генератор псевдослучайных чисел в ПЛИС платы Марсоход3бис и сказал, что мол визуально шумит - значит работает. Визуально распределение равномерное - значит - работает.

Но нет. Мне Alexandr говорит, что нужно найти периодичность, спектр, автокорреляцию и только потом что-то утверждать. Чтобы хоть как-то оправдаться, решил хотя бы найти и показать спектр шумового сигнала, полученного из моего генератора LFSR.

Кто не знает, что такое спектр, пожалуй дам ссылку на свою же очень давнюю статью.

Программа для отрисовки спектра не совсем моя и не совсем написана мною. Скажем так: мы высококвалифицированные программисты, поэтому в конце концов нагуглили решение и создали свое из разных источников.

Для использования этой программы на питоне потребуется не только сам питон, но и многие дополнительные его библиотеки, например, такая как scipy. SciPy - это основанная на питоне экосистема для математики, научных и инженерных расчетов.

SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.

Чтобы не мучаться с поиском и установкой всяких питоновских библиотек типа SciPy рекомендую устанавливать не чистый питон, а питон вместе со всеми этими пакетами: я использую WinPython.

Программа для рисования исходного сигнала и его амплитудного спектра вот:

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

Чтобы убедиться, что программа рисования спектра правильно работает и все правильно рисует я дополнительно написал программу на C/C++, которая создает три двоичных файла с выборками для сигнала синусоиды, пилы и прямоугольных импульсов. Все три файла длиной 1024 байта. Вот программа, создающая тестовые файлы:

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

Итак, после запуска сишной программы у меня получились три тестовых файла samples_sin.bin, samples_saw.bin, samples_imp.bin. Посмотрим, как их отрисовывает питоновская программа:

sin

Видна одна четкая спектральная линия на частоте 32Гц. Так и должна быть, ведь в тестовом сигнале 1024 выборки на одну секунду как раз 32 периода синусоиды.

Посмотрим на прямогольные импульсы, меандр:

imp

В тестовом периоде за одну секунду 8 импульсов и поэтому первая гармоника 8Гц. Потом видны, как и положено, нечетные третья гармоника 24Гц и пятая гармоника 40Гц.. Ну и так далее.

saw

Шестнадцать импульсов пилы за тестовый период в одну секунду. Первая гармоника 16Гц и потом идут четные гармоники 32Гц, 48Гц и так далее.. Похоже на правду.

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

Я немного модифицировал программу приема случайных чисел из платы Марсоход3бис. Теперь программа не только принимает и показывает распределение чисел, но и имеет возможность записи выборок в файл.

show rnd

В программе появилась кнопка - если ее нажать, то 1024 байт из псевдослучайной последовательности последовательности будут записаны в файл samples_rnd.bin.

Полученный файл можно передать на отрисовку питоновской программе.

Что получается? Вот что:

random

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

Амплидуда низкочастотных составляющих как-то странно ниже - возможно это признак того, что тестовый интервал в мои 1024 выборки плохо склеивается? Вот честно затрудняюсь сказать..

Ну вот такой получился результат.

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

Периодическим называется сигнал, значения которого повторяются через равные промежутки времени, называемые периодом повторения сигнала, или просто периодом. Для непериодического сигнала это условие не выполняется.

Простейшим периодическим сигналом является гармоническое колебание


где S — амплитуда; со — угловая частота колебания.

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



Эти сигналы изображены на рис. 4.7, а и 4.7, б.

На рис. 4.7, в представлен суммарный сигнал , который является периодическим:


Очевидно, что если справедливо (4.1), то справедливо и другое равенство:


То есть сигнал вида s 3 (t) может быть представлен как сумма двух синусоид с амплитудами S и S/3 и начальными нулевыми фазами ф] и ф3.

Представление периодического сигнала в виде суммы синусоид

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

Другим примером периодического сигнала является последовательность прямоугольных импульсов (рис. 4.8, а). Его также можно представить суммой синусоид. В качестве исходной синусоиды выберем такую, у которой период колебаний совпадает с периодом Т прямоугольных импульсов (рис. 4.8, б):


где Si — амплитуда синусоиды, a®i = 2я/Т.

Добавим к первой синусоиде еще одну, и пусть она имеет частоту колебаний в 3 раза большую, а амплитуду — в 3 раза меньшую.


Сумма этих двух синусоид ^ sinco1f + (S1/3)sin3co1f пока еще мало похожа на прямоугольные импульсы (рис. 4.8, в). Но если мы добавим к ним синусоиды с частотами колебаний в 5, 7, 9, 11 и т. д. раз большими, а с амплитудами в 5, 7, 9, 11 и т. д. раз меньшими, то сумма всех этих колебаний будет равна:

Периодическая последовательность прямоугольных импульсов (а) и формирование ее сигнала (б-д)

Рис. 4.8. Периодическая последовательность прямоугольных импульсов (а) и формирование ее сигнала (б-д)

Обратите внимание, что на рис. 4.8 слева представлены зависимости амплитуды сигнала от времени (представление во временной плоскости), а справа — зависимости амплитуды от частоты (представление в частотной области), здесь вертикальная линия характеризует амплитуду сигнала.

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

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

Распределение амплитуд Ак гармоник по частоте называется спектром амплитуд этого сигнала (рис. 4.9).

Спектр амплитуд сигнала

Рис. 4.9. Спектр амплитуд сигнала

Так как спектр периодического сигнала состоит из отдельных спектральных линий, его называют дискретным.

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


Puc. 4.10. Изменение спектра амплитуд (б и в) при уменьшении длительности импульсов и в)

Что же следует считать шириной спектра сигнала, если число гармоник в сигнале бесконечно? Существует несколько критериев для определения практической ширины спектра сигнала. Например, можно отбрасывать все гармоники с амплитудами, меньшими 1 % максимальной амплитуды в спектре, тогда частоты оставшихся гармоник и определят ширину спектра сигнала. Можно отбрасывать те гармоники, суммарная энергия которых меньше 10 % общей энергии сигнала. В этом случае ширину спектра также определяют оставшиеся в сигнале гармоники.

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

Сигналы передаются через некоторую среду, которая характеризуется полосой пропускания. Полоса пропускания определяет спектральные составляющие, которые могут пройти через среду. Если спектр сигнала шире, чем полоса пропускания, то не все составляющие пройдут через среду и сигнал на выходе среды будет по форме отличаться от сигнала на входе. Кроме того, проходя через среду распространения сигнала, различные составляющие сигнала изменяются (чаще всего ослабляются) по-разному. Нетрудно догадаться, что при этом форма сигнала в результате прохождения через среду передачи изменится. К тому же различные составляющие сигнала проходят через среду с разной задержкой, что также не способствует сохранению формы сигнала на выходе среды распространения. Итак, если мы знаем спектр амплитуд и спектр фаз сигнала на входе и знаем, как (во сколько раз) ослабляются различные составляющие сигнала и как они сдвигаются друг относительно друга, то мы можем легко найти форму сигнала на выходе из среды. Это позволяет определить степень искажения сигнала и сделать вывод относительно того, удовлетворительным или нет будет качество связи. Разумеется, приведенные здесь рассуждения являются упрощенными, но они позволяют понять, почему для нас так важно знать спектр сигнала.

Читайте также: