Как построить спектр сигнала в matlab
На простом (относительно) примере показывается генерация сигнала и получение его спектра. Код взят из примера Help -> Demos -> MATLAB -> Mathematics -> FFT for Spectral Analysis и переработан под условия задачи.
Условие задачи: имеем ряд частот и соответствующих им амплитуд. Необходимо из этих частот сгенерировать сигнал в течение 1 секунды (оцифровка идет с частотой 16384 Гц) и построить его спектр в виде массива unsigned short SpectrData [8192] (каждый элемент массива 16-битный, всего 8192 значения). Номер элемента массива должен соответствовать частоте (от 0 до 8191 Гц), а значение элемента должно соответствовать логарифму амплитуды сигнала (логарифм нужен для лучшей наглядности представления малых амплитуд сигнала по сравнению с большими). Приведенный далее текст можно просто скопировать и вставить в MATLAB как код, сохранить как m-файл и запустить на выполнение.
Спектр сигнала в Матлабе
Спектр сигнала
Написал программу, рассчитывающую спектр сигнала: f=50; t=0:1/1024:0.1; y=sin(2*pi*f*t);.
Спектр сигнала
Здравствуйте. Помогите с правильным построением спектра. В роли сигнала — скорость, из решенной.
Спектр сигнала
Здравствуйте, построил спектр сигнала по Фурье. Подскажите, что можно определить из данного графика?
Сообщение от AlexxxRF
Спектр сигнала
Уважаемые форумчане, доброго времени суток! Имеется два кода. Первый очень понятен, я понимаю.
Найти спектр сигнала
Тема: Свойства сигналов во временной и частотной областях. 1. Интервал времени наблюдения.
Получить спектр сигнала
Такая задача- Есть сигнал (рефлектограмма), заданная 4096 точками. Нужно получить гармонические.
Спектр цифрового сигнала
В своей работе я задал цифровой сигнал как массив с определенным числом отсчетов (дискретов). .
Спектральный анализ сигнала в Matlab
Одной из самых распространённых задач является выявление в спектре сигнала составляющих. Делается это для того чтобы отфильтровать сигнал. Ведь иногда по одной линии передаётся далеко не один сигнал, в то время как обрабатывать каждый из них нужно по разному.
Рассмотрим простейший случай такого анализа в Matlab.
Сформируем временную сетку:
Теперь зададим сигнал для тренировок:
Как видите это всего навсего 2 синусоиды. одна на частоте 50Гц, другая на 120Гц. В жизни такого конечно же нет. Это всего навсего математическая абстракция, которая поможет понять как всё происходит.
Выведем сигнал для наглядности:
Теперь делаем преобразование Фурье для нашего сигнала.
Имеем 512 отсчётов. Примем это во внимание для нахождения цифрового преобразования:
Домножим на комплексно сопряженное и нормализуем:
Теперь задаём сетку частот и выводим спектр:

Как видно на рисунке, в спектре имеется 2 выброса на частотах 50 и 120Гц. Что подтверждается частотами, которые мы задали.
Отмечу ещё раз, что это идеальная ситуация, которой в жизни никогда не бывает. В настоящем сигнале постоянно присутствуют помехи с самыми разными частотами, что существенно зашумляет спектр и делает его менее наглядным.
Построение спектра в MATLAB различными методами
Если при реализации метода спектрального анализа (оценивания) не использована информация о статистике шума и сигнала, то реализующие это методы относятся к непараметрическим методам. Как правило, они не способны сильно подавлять шумы в нижней части спектра, зато хорошо выделяют его пики. К таким методам относятся метод Уэлча (Welch) и обычный метод быстрого Фурье-преоб- разования (FFT).

Рис. 6.83. График исследуемого сигнала
Для просмотра спектра в разделе Spectra окна надо активизировать кнопку Create (Создать) и затем View (Просмотр). Окно просмотра спектра в полностью открытом виде показано па рис. 6.84. По умолчанию строится спектр по методу Уэлча. Можно выбрать одно из восьми окон (в нашем случае это окно Кайзера). Спектр имеет один большой пик, соответствующий частоте синусоидального сигнала 1 МГц, и затем пики на частотах 3, 5, 7 МГц и т. д. (треугольный сигнал, будучи симметричным, теоретически имеет только нечетные гармоники). Есть возможность курсорных измерений. Спектр строится в реальном (а не нормированном) масштабе по частоте и уровню (в децибелах мощности).
Иногда требуется высокое разрешение спектрального анализа. Например, если надо оценить спектр сигналов типа sin(.v)/r, при х = 2л/Г/т. Такой сигнал, при длине осциллограммы в 10 000 точек, показан на рис. 6.85 в нижней части окна выовера сигналов. В верхней части этот сигнал представлен в режиме «лупы времени». На рис. 6.85 показано выделение пиков кривой спектра, реализованное установками в меню Markcra (Маркеры). Данное меню показано открытым на рис. 6.83. Этот сигнал уникален — он дает гармоники с равной амплитудой в диапазоне частот до 1 /х.
Очень хорошее выделение пиков спектра для сложных сигналов, подобных приведенному на рис. 6.85, дает многооконный (со многими звеньями) метод (МТМ) — рис. 6.86. Число окон задается параметром NW. Метод хорошо подходит для оценки амплитуды пиков спектров видеосигналов, но ввиду плоской верхушки плохо оценивает частоты пиков.

Рис. 6.84. Спектр треугольного сигнала, полученный методом Уэлча с окном Кайзера

Рис. 6.85. Сигнал типа 5т(лг)/ж при х = Ъф/х I/ = 1 МГц)

Рис. 6.86. Спектр сигнала рис. 6.89, полученный методом МТМ
Сигналы, реально применяемые в электросвязи и радиотехнике, обычно сильно засорены шумами. Порой уровень шумов намного превосходит уровень сигнала. Поэтому были предложены и специальные методы спектрального анализа, позволяющие сглаживать спектры и очищать их от шума. Это параметрические методы, основанные на учете статистики шума. Некоторые из них основаны на идее авторегрессии (AR). К таким методам относятся ковариационный и модифицированный ковариационный методы. Близкие результаты дает метод Берга и Юла-Уокера, а также метод классификации множественных сигналов MUSIC. Все эти методы заметно сглаживают спектры и сильно ослабляют шумы. Тонкие детали спектров при этом сглаживаются, пики превращаются в волны линии спектра.
Похожие публикации:
- Где windows movie maker в windows 10
- Где находится movie maker windows 7
- Где хранятся файлы icq
- Как бесплатно зарегистрироваться в wechat
Introduction to Signal Analysis and Filter Design
В этом вебинаре будет сделан обзор основных возможностей MATLAB в области цифровой обработки сигналов. Участники вебинара узнают о том, как осуществляется работа с сигналами в MATLAB (импорт и генерация сигналов, организация данных, их отображение и спектральный анализ), а также об инструментах для расчета цифровых фильтров и способах автоматизации разработки алгоритмов. Эти возможности будут продемонстрированы на нескольких примерах, начиная от использования интерактивных инструментов MATLAB и заканчивая разработкой алгоритмов потоковой обработки звука с микрофона и адаптивной фильтрации.
Будут освещены следующие аспекты моделирования и реализации систем ЦОС:
- Работа с сигналами в MATLAB;
- потоковая обработка данных;
- импорт данных с многоканальных аудио-устройств и файлов мультимедиа;
- разработка цифровых фильтров и спектральный анализ в MATLAB.
Вебинар будет интересен алгоритмистам в области цифровой обработки сигналов, программистам и руководителям проектов.
Recorded: 13 Feb 2014
Спектрограмма в MATLAB
Спектрограмма — это подробное визуальное представление того, как частотный спектр сигнала изменяется во времени. Они очень полезны в академических и исследовательских областях, таких как физика, где требуется визуальное изучение сигналов различных типов (электрических, широкополосных и т. д.). Спектрограммы очень полезны при анализе результатов фильтрации сигналов.
MATLAB предоставляет функцию spectrogram(), которая строит спектрограммы для требуемого входного сигнала. В этой статье мы увидим, как использовать указанную функцию для построения спектрограмм для различных форм сигнала и различных вариантов, доступных для первого.
Синтаксис:
Это построит требуемую спектрограмму, соответствующую входному сигналу.
Теперь мы увидим, как это работает, используя несколько примеров и фиктивные входные сигналы. Во-первых, мы построим простую спектрограмму линейной функции щебета MATLAB, которая является частью набора инструментов обработки сигналов, и посмотрим на выходной график.
Пример 1:
Спектральный анализ сигнала в Matlab
Одной из самых распространённых задач является выявление в спектре сигнала составляющих. Делается это для того чтобы отфильтровать сигнал. Ведь иногда по одной линии передаётся далеко не один сигнал, в то время как обрабатывать каждый из них нужно по разному.
Рассмотрим простейший случай такого анализа в Matlab.
Сформируем временную сетку:
>> t = 0:0.001:0.6;
Теперь зададим сигнал для тренировок:
>> x = sin(2*pi*50*t) + sin(2*pi*120*t);

Как видите это всего навсего 2 синусоиды. одна на частоте 50Гц, другая на 120Гц. В жизни такого конечно же нет. Это всего навсего математическая абстракция, которая поможет понять как всё происходит.
Выведем сигнал для наглядности:
>> plot(1000*t(1:50),x(1:50)) >> title('Сигнал') >> xlabel('Время (мс)')
Теперь делаем преобразование Фурье для нашего сигнала.
Имеем 512 отсчётов. Примем это во внимание для нахождения цифрового преобразования:
>> X=fft(x,512);
Домножим на комплексно сопряженное и нормализуем:
>> Pxx=X.*conj(X)/512;
Теперь задаём сетку частот и выводим спектр:
>> f = 1000*(0:256)/512; >> plot(f,Pxx(1:257)) >> title('Спектр сигнала'); >> xlabel('Частота (Гц)');

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