Документация Engee

spectralEntropy

Спектральная энтропия сигналов и спектрограмм.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • se = spectralEntropy(x,f) — возвращает спектральную энтропию сигнала x во времени. Аргумент x задается как сигнал во временной или частотной области, а f — как частота дискретизации (Гц) или вектор частот (Гц). Интерпретация x функцией зависит от формы f.

  • se = spectralEntropy(___,Name,Value) — задает параметры с использованием одного или нескольких аргументов типа «имя-значение».

  • spectralEntropy(___;out=:plot) — строит график спектральной энтропии. Вы можете указать входную комбинацию любого из приведенных выше вариантов синтаксиса.

    • Если входной сигнал находится во временной области, график спектральной энтропии строится в зависимости от времени.

    • Если входной сигнал находится в частотной области, график спектральной энтропии строится в зависимости от номера кадра.

Аргументы

Входные аргументы

# x — входной сигнал во временной или частотной области
вектор-столбец | матрица

Details

Входной сигнал во временной или частотной области, заданный как вектор или матрица.

x должен быть вещественным.

Интерпретация x функцией зависит от формы f.

Дополнительную информацию о спецификациях области сигнала и допустимых синтаксисах см. в разделе Спецификации спектральной энтропии по области сигнала.

Типы данных

Float32, Float64

# f — частота дискретизации (Гц) или вектор частот (Гц)
1 (по умолчанию) | скаляр | вектор

Details

Частота дискретизации (Гц) или вектор частот (Гц), заданные как числовой скаляр или вектор соответственно. Интерпретация x функцией зависит от формы f:

  • Если f — числовой скаляр, функция spectralEntropy интерпретирует x как сигнал во временной области, а f — как частоту дискретизации в Гц. В этом случае x должен быть вещественным вектором или матрицей. Если x — матрица, spectralEntropy интерпретирует столбцы как отдельные каналы.

  • Если f — числовой вектор, функция spectralEntropy интерпретирует x как сигнал в частотной области, а f — как вектор частот в Гц, соответствующий строкам x. В этом случае x должен быть вещественным массивом размером , где — количество спектральных значений на заданных частотах f, — количество отдельных спектров, а — количество каналов.

    Количество строк в x должно быть равно количеству элементов f.

Дополнительную информацию о спецификациях области сигнала и допустимых синтаксисах см. в разделе Спецификации спектральной энтропии по области сигнала.

Типы данных

Float32, Float64

Входные аргументы «имя-значение»

Укажите необязательные пары аргументов в виде Name,Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения.

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

Если указать другие аргументы типа «имя-значение», функция spectralEntropy может проигнорировать указанные значения или выдать ошибку. Дополнительную информацию о спецификациях области сигнала и допустимых синтаксисах см. в разделе Спецификации спектральной энтропии по области сигнала.

Временная область

# Window — окно, применяемое во временной области
rectwin(round(f*0.03)) (по умолчанию) | вектор

Details

Окно, применяемое во временной области, заданное как вещественный вектор. Количество элементов вектора должно находиться в диапазоне [1,size(x,1)]. Количество элементов вектора также должно быть больше OverlapLength. Если аргумент Window не задан, функция spectralEntropy использует длину окна, которая разбивает x на восемь перекрывающихся сегментов.

Типы данных

Float32, Float64

# OverlapLength — количество отсчетов, перекрывающихся между соседними окнами
round(f*0.02) (по умолчанию) | неотрицательный скаляр

Details

Количество отсчетов, перекрывающихся между соседними окнами, заданное как целое число в диапазоне [0,size(Window,1)). Если аргумент OverlapLength не задан, функция spectralEntropy использует значение, которое обеспечивает 50%-е перекрытие между сегментами.

Типы данных

Float32, Float64

# FFTLength — количество элементов в ДПФ
numel(Window) (по умолчанию) | положительный целочисленный скаляр

Details

Количество элементов, используемых для вычисления ДПФ оконных входных выборок, заданное как положительный целочисленный скаляр. Если не аргумент не задан, FFTLength по умолчанию равен количеству элементов в Window.

Типы данных

Float32, Float64

# SpectrumType — тип спектра
"power" (по умолчанию) | "magnitude"

Details

Тип спектра, заданный как "power" или "magnitude":

  • "power" — спектральная энтропия рассчитывается для одностороннего спектра мощности;

  • "magnitude" — спектральная энтропия рассчитывается для одностороннего амплитудного спектра.

Типы данных

String

Временная и частотная области

# Range — диапазон частот (Гц)
[0,f/2] (по умолчанию) | двухэлементный вектор-строка

Details

Диапазон частот в Гц, заданный как двухэлементный вектор-строка возрастающих вещественных значений в диапазоне [0,f/2].

Типы данных

Float32, Float64

# out — тип выходных данных
:data (по умолчанию) | :plot

Details

Тип выходных данных:

  • :data — функция возвращает данные;

  • :plot — функция возвращает график.

Выходные аргументы

# se — спектральная энтропия
скаляр | вектор | матрица

Details

Спектральная энтропия, возвращаемая в виде скаляра, вектора или матрицы. Каждая строка se соответствует спектральной энтропии окна x. Каждый столбец se соответствует независимому каналу.

Дополнительно

Спектральная энтропия

Details

Спектральная энтропия (СЭ) сигнала является мерой распределения его спектральной мощности. Эта концепция основана на энтропии Шеннона, или информационной энтропии, в теории информации. СЭ рассматривает нормализованное распределение мощности сигнала в частотной области как распределение вероятностей и вычисляет его энтропию Шеннона. В данном контексте энтропия Шеннона представляет собой спектральную энтропию сигнала. Это свойство может быть полезно для извлечения признаков при обнаружении и диагностике неисправностей [2], [1]. СЭ также широко используется в качестве признака при распознавании речи [3] и обработке биомедицинских сигналов [4].

Уравнения для спектральной энтропии вытекают из уравнений для спектра мощности и распределения вероятностей сигнала. Для сигнала спектр мощности равен , где — дискретное преобразование Фурье от . Распределение вероятностей в этом случае равно

Спектральная энтропия вычисляется следующим образом

Нормировка:

где — общее число частотных точек. Знаменатель представляет собой максимальную спектральную энтропию белого шума, равномерно распределенную в частотной области.

Если известна частотно-временная спектрограмма мощности , то распределение вероятностей принимает вид

Спектральная энтропия по-прежнему равна

Чтобы вычислить мгновенную спектральную энтропию по заданной частотно-временной спектрограмме мощности , распределение вероятностей в момент времени равно

Тогда спектральная энтропия в момент времени равна

Спецификации спектральной энтропии по области сигнала

Details

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

Область x f Допустимые синтаксисы Допустимые аргументы типа «имя-значение»

Временная

Вектор-столбец

Матрица

Числовой скаляр (частота дискретизации)

spectralEntropy(x,f)

Window

OverlapLength

FFTLength

SpectrumType

Range

Частотная

Матрица

Массив размером

Вектор из элементов (вектор частот)

spectralEntropy(x,f) spectralEntropy(x,f,t)

Range

Алгоритмы

Функция вычисляет спектральную энтропию, как описано в [5]:

где

  • — спектральное значение в бине ;

  • и — границы полосы в бинах, по которым рассчитывается спектральная энтропия.

Литература

  1. Pan, Y. N., J. Chen, and X. L. Li. «Spectral Entropy: A Complementary Index for Rolling Element Bearing Performance Degradation Assessment.» Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science. Vol. 223, Issue 5, 2009, pp. 1223–1231.

  2. Sharma, V., and A. Parey. «A Review of Gear Fault Diagnosis Using Various Condition Indicators.» Procedia Engineering. Vol. 144, 2016, pp. 253–263.

  3. Shen, J., J. Hung, and L. Lee. «Robust Entropy-Based Endpoint Detection for Speech Recognition in Noisy Environments.» ICSLP. Vol. 98, November 1998.

  4. Vakkuri, A., A. Yli‐Hankala, P. Talja, S. Mustola, H. Tolvanen‐Laakso, T. Sampson, and H. Viertiö‐Oja. «Time‐Frequency Balanced Spectral Entropy as a Measure of Anesthetic Drug Effect in Central Nervous System during Sevoflurane, Propofol, and Thiopental Anesthesia.» Acta Anaesthesiologica Scandinavica. Vol. 48, Number 2, 2004, pp. 145–153.

  5. Misra, H., S. Ikbal, H. Bourlard, and H. Hermansky. «Spectral Entropy Based Feature for Robust ASR.» 2004 IEEE International Conference on Acoustics, Speech, and Signal Processing.