Анализ сигналов: оценка амплитуды в MATLAB - PullRequest
1 голос
/ 13 февраля 2012

Я пытаюсь оценить амплитуду сигнала в MATLAB:

signal

Как видно, я не могу просто взять max () и min (), чтобы получить амплитуду. Сигнал постоянно отклоняется и в любом случае не является постоянным. Тем не менее, все, что я ищу, - это среднее значение - единственная цифра, которая оценивает среднюю амплитуду доминирующего компонента на рисунке выше (который повторяется восемь раз). Визуально, это довольно очевидно, что я пытаюсь выяснить. Программно однако ...

Я слышал рассказ о «преобразовании Гильберта» - hilbert () - и «быстром преобразовании Фурье» - fft () - но очень мало разбираюсь в анализе сигналов - и удивляюсь, сможет ли кто-нибудь направить меня в нужное русло или объясните, как использовать любую из этих функций. Мои данные - это просто число с плавающей точкой, хранящееся в одномерном массиве с частотой 1000 Гц.

Любая помощь с благодарностью получена!

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

У вас есть несколько вариантов, самый простой из которых будет:

  1. Используйте пиковый детектор для поиска локальных экстремумов.Вы можете найти несколько файлов на MathWorks File Exchange.
  2. Примените фильтр верхних частот, чтобы устранить дрейф базовой линии, затем найдите абсолютный минимум и максимум
1 голос
/ 13 февраля 2012

Чтобы извлечь амплитуду от пика к пику, вы можете сначала применить detrend к вашему набору данных.

...