Можно использовать приложение Signal Analyzer для выполнения нескольких задач предварительной обработки сигналов. Различные опции обработки появляются на вкладке Analyzer:
Операции предварительной обработки, операции отмены и генерация функции применяются ко всем сигналам, выбранным в настоящее время в таблице Signal. Чтобы выбрать сигналы, щелкните их Name, Info, Time или Start Time столбец в таблице Signal.
Примечание
Предварительная обработка не поддерживается для маркированных наборов сигналов. Если вы хотите предварительно обработать сигнал, который принадлежит маркированному набору сигналов, необходимо сначала извлечь сигнал из набора. Смотрите Извлечение интересующих областей сигнала для получения дополнительной информации.
Операции предварительной обработки перезаписывают сигнал, на котором они работают. Если вы хотите сохранить исходный сигнал, дублируйте его и работайте с дубликатом.
Вы можете выполнить действия предварительной обработки любое количество раз и в любом порядке. Столбец Info в таблице Signal включает значок, который указывает, была ли выполнена предварительная обработка сигнала. При нажатии значка перечисляются действия и порядок их выполнения. Шаги предварительной обработки можно отменить, нажав Undo Preprocessing на вкладке Analyzer или на любой вкладке, возникающей из-за действия предварительной обработки. Шаги отменяются по одному, начиная с последнего.
Совет
Чтобы просмотреть полные сводные данные предпринятых шагов предварительной обработки, включая все выбранные параметры настройки, щелкните Generate Function на вкладке Analyzer.
Можно предварительно обработать отдельные каналы многоканального сигнала. Если вы выбираете многоканальный сигнал и один из его каналов для предварительной обработки, приложение обрабатывает предварительно отдельный канал только один раз.
Signal Analyzer позволяет вам дублировать и переименовывать сигналы, которые можно затем предварительно обработать или экспортировать для последующего анализа.
Чтобы дублировать сигнал, используйте кнопку Duplicate на вкладке Analyzer или на любой вкладке, возникающей из-за действия предварительной обработки. Также щелкните правой кнопкой мыши сигнал в таблице Signal и выберите Duplicate. Дубликат имеет то же имя что и исходный сигнал с _copy
приложенный.
Если вы выбираете сигнал и один из его каналов для дублирования, приложение создает дубликат сигнала и независимый дубликат выбранного канала.
Чтобы переименовать сигнал, дважды кликните имя сигнала в таблице Signal и измените имя. Также щелкните правой кнопкой мыши сигнал в таблице Signal и выберите Rename.
Примечание
Вы не можете переименовать отдельные каналы многоканального сигнала.
Чтобы отфильтровать один или несколько выбранных сигналов, на вкладке Analyzer щелкните значок Lowpass, Highpass, Bandpass или Bandstop в Preprocessing галерее. Приложение использует lowpass
, highpass
, bandpass
, и bandstop
функций для выполнения фильтрации. Можно управлять затуханием в полосе задерживания, частотами полосы пропускания и ширинами областей перехода. Для получения дополнительной информации см. Страницы с описанием функции. Фильтрация не поддерживает неоднородно дискретизированные сигналы.
Чтобы сгладить один или несколько выбранных сигналов, на вкладке Analyzer щелкните значок Smooth в Preprocessing галерее. Приложение использует MATLAB® функция smoothdata
для выполнения сглаживания. Доступны следующие методы сглаживания:
Скользящее среднее значение
Движущаяся медиана
Гауссовский
Линейная регрессия
Квадратичная регрессия
Устойчивая линейная регрессия
Устойчивая квадратичная регрессия
Фильтрация Савицкого-Голая
Чтобы повторно отобразить один или несколько выбранных сигналов, на вкладке Analyzer разверните коллекцию Preprocessing и щелкните значок Resample. Signal Analyzer использует функцию Signal Processing Toolbox™ resample
для выполнения повторной дискретизации. Доступны следующие опции:
Когда ваш сигнал неоднородно дискретизирован, вы можете использовать приложение, чтобы интерполировать его в однородную сетку. Можно задать метод интерполяции и частоту дискретизации, с которой вы хотите, чтобы сигнал был дискретизирован. Доступны следующие методы интерполяции:
Линейная интерполяция
Кусочно-кубическая интерполяция с сохранением формы
Кубическая сплайн интерполяция с использованием граничных условий и условий отсутствия узла
См. interp1
Страница с описанием для получения дополнительной информации.
Когда ваш сигнал равномерно дискретизирован, вы можете использовать приложение, чтобы изменить его частоту дискретизации. Можно задать или желаемую частоту дискретизации, или коэффициент, с помощью которого вы хотите повысить или уменьшить частоту дискретизации сигнала. В этом случае панель интерполяции на вкладке Resample отключена, потому что операция интерполяции не имеет смысла с равномерно дискретизированными сигналами.
Операция повторной дискретизации требует информации о времени. Если вы пытаетесь повторно отобразить сигнал в выборках, приложение выдает предупреждение.
Чтобы отключить один или несколько выбранных сигналов, на вкладке Analyzer разверните коллекцию Preprocessing и щелкните значок Detrend. Signal Analyzer использует функцию MATLAB detrend
для выполнения удаления тренда. Приложение может удалить из сигналов следующие тренды:
Постоянные тренды.
Линейные тренды.
Кусочно-линейные тренды. Чтобы удалить кусочно-линейный тренд, задайте точки останова как разделенный списками , разделенными запятыми.
Чтобы вычислить огибающую одного или нескольких выбранных сигналов, на вкладке Analyzer разверните коллекцию Preprocessing и щелкните значок Envelope. Signal Analyzer использует функцию Signal Processing Toolbox envelope
для оценки огибающих. Можно вычислить верхнюю огибающую или нижнюю огибающую каждого сигнала. Доступны следующие алгоритмы оценки огибающей:
Hilbert
- Приложение вычисляет огибающую сигнала как величину аналитического сигнала, найденного с использованием дискретного преобразования Фурье, реализованного в hilbert
.
FIR
- Приложение вычисляет огибающую сигнала путем фильтрации сигнала с помощью КИХ-фильтра Гильберта регулируемого размера и использования результата в качестве мнимой части аналитического сигнала.
RMS
- Приложение вычисляет огибающую сигнала путем соединения значений RMS, вычисленных с помощью скользящего окна регулируемой длины.
Peak
- Приложение вычисляет огибающую сигнала с помощью сплайн интерполяции по локальным максимумам, разделенным регулируемым количеством выборок.
Примечание
Расчет огибающей не поддерживает комплексные сигналы.
Чтобы добавить пользовательскую функцию предварительной обработки, на вкладке Analyzer щелкните стреле рядом с галереей Preprocessing и выберите Add Custom Function. Приложение предлагает вам ввести имя функции и краткое описание:
Если вы уже написали функцию предварительной обработки, и функция находится в текущей папке или в пути MATLAB, приложение включает ее в галерею. Вы можете использовать заполнение клавишей Tab для поиска имени функции.
Если вы еще не написали функцию, приложение открывает пустой шаблон в редактор.
Пользовательские функции предварительной обработки имеют обязательные и необязательные аргументы:
Первый входной параметр, x
, является входным сигналом. Этот аргумент должен быть вектором и рассматриваться как один канал.
Второй входной параметр, tIn
, является вектором значений времени. Вектор должен иметь ту же длину, что и сигнал. Если входной сигнал не имеет информации о времени, функция читает этот аргумент как пустой массив.
Использовать varargin
для задания дополнительных входных параметров. Если у вас нет дополнительных входных параметров, можно опустить varargin
. Введите дополнительные аргументы в виде упорядоченного списка, разделенного запятыми, на вкладке Preprocess.
Первый выходной аргумент, y
, - предварительно обработанный сигнал.
Второй выходной аргумент, tOut
, является вектором выхода значений времени. Если входной сигнал не имеет информации о времени, tOut
возвращается как пустой массив.
Чтобы реализовать свой алгоритм, можно использовать любую функцию MATLAB или Signal Processing Toolbox.
Смотрите Declip Насыщенные сигналы Используя свою собственную функцию для получения дополнительной информации.
Пример: Эта функция удаляет значение постоянного тока сигнала путем вычитания его среднего значения.
function [y,tOut] = removeDC(x,tIn) % Remove the DC value of a signal by subtracting its mean y = x - mean(x); tOut = tIn; end
Пример: Эта функция изменяет время запуска сигнала на заданное значение.
function [y,tOut] = timealign(x,tIn,startTime) % Change the starting time of a signal y = x; t = tIn; if ~isempty(t) t = t - t(1) + startTime; end tOut = t; end
В любой момент можно отредактировать функции, отредактировать их описания или удалить их, используя опцию Manage Custom Functions в галерее.
Примечание
Пользовательские функции предварительной обработки не должны изменять сложность входного сигнала.