Выполнение обработки и анализа сигналов
Signal Processing Toolbox™ предоставляет функции и приложения для анализа, предварительной обработки и извлечения характеристик из равномерно и неравномерно дискретизированных сигналов. Инструментарий включает инструменты для проектирования и анализа фильтров, повторной выборки, сглаживания, детрендинга и оценки спектра мощности. Кроме того, набор инструментов позволяет извлекать такие характеристики, как точки изменения и огибающие, находить пики и паттерны сигналов, количественно оценивать сходство сигналов и выполнять такие измерения, как SNR и искажения. Также можно выполнять модальный и порядковый анализ вибрационных сигналов. С помощью приложения Signal Analyzer можно выполнять предварительную обработку и анализ нескольких сигналов одновременно во временной, частотной и время-частотной областях без написания кода; исследовать длинные сигналы и выделять области, представляющие интерес. С помощью приложения Filter Designer можно проектировать и анализировать цифровые фильтры, выбирая из множества алгоритмов и характеристик. Оба приложения генерируют код MATLAB.
Использование приложения Signal Analyzer
Типичный рабочий процесс проверки и сравнения сигналов с помощью приложения Signal Analyzer выглядит следующим образом:
1. Выберите сигналы для анализа - выберите любой сигнал, доступный в рабочей области MATLAB®. Приложение принимает числовые массивы и сигналы с присущей им информацией о времени, такие как массивы расписаний MATLAB, объекты временных рядов и объекты labeledSignalSet. Дополнительные сведения см. в разделе Типы данных, поддерживаемые Signal Analyzer.
2. Предварительная обработка сигналов - низкочастотный, высокочастотный, полосовой или полосовой стоп-фильтр. Удаление трендов и вычисление огибающих сигналов. Сглаживание сигналов с помощью скользящих средних, регрессии, фильтров Савицкого-Голая или других методов. Изменение частоты дискретизации сигналов или интерполяция неравномерно дискретизированных сигналов на равномерные сетки. Предварительная обработка сигналов с помощью собственных пользовательских функций. Генерировать функции MATLAB для автоматизации операций предварительной обработки.
3. Исследуйте сигналы - добавляйте информацию о времени в сигналы с помощью частоты дискретизации, числовых векторов, массивов длительностей или выражений MATLAB. Стройте, измеряйте и сравнивайте данные, их спектры, спектрограммы или скалограммы. Ищите особенности и закономерности во временной области, в частотной области и во временно-частотной области. Вычислять спектры устойчивости для анализа спорадических сигналов и уточнять оценки спектрограмм с помощью переназначения. Извлечение областей интереса из сигналов.
4. Поделиться анализом - скопируйте отображения из приложения в буфер обмена в виде изображений. Экспорт сигналов в рабочую область MATLAB или сохранение их в MAT-файлах. Создание сценариев MATLAB для автоматизации вычисления спектра мощности, спектрограммы или оценки спектра устойчивости, а также выделения областей интереса. Сохраняйте сеансы анализатора сигналов, чтобы продолжить анализ позже или на другой машине.
Пример: Извлечение областей интереса из песни кита
Загрузите файл, содержащий аудиоданные тихоокеанского синего кита с частотой дискретизации 4 кГц. Файл взят из библиотеки вокализаций животных, которую ведет Программа исследований биоакустики Корнельского университета. Временная шкала в данных сжата в 10 раз, чтобы увеличить высоту тона и сделать звуки более слышимыми. Преобразуйте сигнал в расписание MATLAB®.
whaleFile = fullfile(matlabroot,'examples','matlab','data','bluewhale.au');
[w,fs] = audioread(whaleFile);
whale = timetable(seconds((0:length(w)-1)'/fs),w);
% To hear, type soundsc(w,fs)
Откройте Signal Analyzer и перетащите временную таблицу на экран. На фоне шума выделяются четыре особенности. Первая из них известна как трель, а три другие - как стоны.
На вкладке Display нажмите Spectrum, чтобы открыть вид спектра, и нажмите Panner, чтобы активировать панорамирование. С помощью панорамирования создайте окно масштабирования шириной около 2 секунд. Перетащите окно масштабирования так, чтобы оно было сосредоточено на трели. На спектре виден заметный пик на частоте около 900 Гц.
Выделите одиночную трель с помощью фильтрации высоких частот. Щелкните правой кнопкой мыши сигнал в таблице Signal и выберите Duplicate, чтобы создать копию песни кита.
Удалите исходный сигнал с экрана, сняв флажок рядом с его именем в таблице Signal.
На вкладке Analyzer нажмите Preprocessing▼ и выберите Highpass. Установите частоту полосы пропускания на 925 Гц и ослабление полосы пропускания на 80 дБ. Используйте значение по умолчанию для крутизны.
Очистите дисплей и выберите исходный сигнал. Извлеките три стона, чтобы сравнить их спектры:
1. Наведите окно масштабирования панорамной панели на первый стон. Спектр имеет восемь четко выраженных пиков, расположенных очень близко к 170 Гц. Нажмите Extract Signals ▼ и выберите Between Time Limits.
2. Нажмите Panner, чтобы скрыть панорамный экран. Нажмите пробел, чтобы увидеть полный сигнал. Нажмите Zoom in X и увеличьте 2-секундный интервал временного представления с центром на втором стоне. Спектр снова имеет пики на частотах, кратных 170 Гц. Нажмите кнопку Extract Signals ▼ и выберите Between Time Limits.
3. Нажмите пробел, чтобы увидеть полный сигнал. Нажмите Data Cursors ▼ и выберите Two. Установите курсоры временной области с интервалом в 2 секунды вокруг третьего стона. Снова наблюдаются пики на частотах, кратных 170 Гц. Нажмите Extract Signals ▼ и выберите Between Time Cursors.
Постройте график сигнала с фильтрацией высоких частот и установите два курсора данных на 1 секунду и 3,5 секунды. Выделите область, содержащую трель.
Удалите исходный сигнал с экрана, сняв флажок рядом с его именем в таблице Signal. Отобразите три интересующие области, которые вы только что извлекли. Их спектры лежат примерно друг над другом.
На том же экране постройте область, содержащую извлеченную вами трель. Спектры трели и стона заметно отличаются.
Нажмите кнопку Export на вкладке Analyzer, чтобы экспортировать четыре интересующие вас области в MAT-файл.