pentropy

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

Синтаксис

se = pentropy(xt)
se = pentropy(x,sampx)
se = pentropy(p,fp,tp)
se = pentropy(___,Name,Value)
[se,t] = pentropy(___)
pentropy(___)

Описание

пример

se = pentropy(xt) возвращает Спектральную Энтропию одно-переменного, отдельный столбец timetable xt как se timetable. pentropy вычисляет спектрограмму xt с помощью опций по умолчанию pspectrum.

пример

se = pentropy(x,sampx) возвращает спектральную энтропию векторного x, выбранного на уровне или временном интервале sampx, как вектор.

пример

se = pentropy(p,fp,tp) возвращает спектральную энтропию с помощью спектрограммы степени p, наряду с частотой спектрограммы и временными векторами fp и tp.

Используйте этот синтаксис когда это необходимо, чтобы настроить опции для pspectrum, вместо того, чтобы принять опции pspectrum по умолчанию, которые применяет pentropy.

пример

se = pentropy(___,Name,Value) задает аргументы пары "имя-значение" использования дополнительных свойств. Опции включают мгновенную или энтропию целую сигнала, масштабирующуюся белой шумовой энтропией, пределами частоты и ограничениями по времени.

Можно использовать Name,Value с любым из входных параметров в предыдущих синтаксисах.

пример

[se,t] = pentropy(___) возвращает спектральный энтропийный se наряду с временным вектором или timetable t. Если se является timetable, то t равен временам строки timetable se. Можно использовать эти выходные аргументы с любым из входных параметров в предыдущих синтаксисах.

pentropy(___) также:

  • Строит спектральную энтропию против времени (Instantaneous является true.)

  • Выводит скалярное значение для спектральной энтропии (Instantaneous является false.)

Примеры

свернуть все

Постройте спектральную энтропию сигнала, выраженного как расписание и как временные ряды.

Сгенерируйте случайную последовательность с нормальным распределением (белый шум).

xn = randn(1000,1);

Создайте временной вектор t и преобразуйте в вектор duration tdur. Объедините tdur и xn в расписании.

fs = 10;
ts = 1/fs;
t = 0.1:ts:100;
tdur = seconds(t);
xt = timetable(tdur',xn);

Постройте спектральную энтропию расписания xt.

pentropy(xt)
title('Spectral Entropy of White Noise Signal Timetable')

Постройте спектральную энтропию сигнала, с помощью вектора момента времени t и форма, которая возвращает se и сопоставленное время te. Совпадайте с модулями оси X и сеткой к pentropy - сгенерированные графики для сравнения.

[se,te] = pentropy(xn,t');
te_min = te/60;
plot(te_min,se)
title('Spectral Entropy of White Noise Signal Vector')
xlabel('Time (mins)')
ylabel('Spectral Entropy')
grid on

Оба приводят к тому же результату.

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

pentropy(xn,fs)
title('Spectral Entropy of White Noise Signal Vector using Sample Rate')

Этот график совпадает с предыдущими графиками.

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

Загрузите данные, x, который содержит двухканальную запись слова "Hello", встроенного низкоуровневым белым шумом. x состоит из двух столбцов, представляющих два канала. Используйте только первый канал.

Задайте частоту дискретизации и временной вектор. Увеличьте первый канал x с белым шумом, чтобы достигнуть отношения сигнал-шум от приблизительно 5 до 1.

load Hello x
fs = 44100;
t = 1/fs*(0:length(x)-1);
x1 = x(:,1) + 0.01*randn(length(x),1);

Найдите спектральную энтропию. Визуализируйте данные для исходного сигнала и для спектральной энтропии.

[se,te] = pentropy(x1,fs);

subplot(2,1,1)
plot(t,x1)
ylabel('Speech Signal')
xlabel('Time')

subplot(2,1,2)
plot(te,se)
ylabel('Spectral Entropy')
xlabel('Time')

Спектральная энтропия понижается, когда "Привет" говорится. Это вызвано тем, что спектр сигнала изменился почти от константы (белый шум) к распределению человеческой речи. Распределение человеческой речи содержит больше информации и имеет более низкую спектральную энтропию.

Вычислите спектрограмму степени p исходного сигнала, возвратив вектор частоты fp и временной вектор tp также. Для этого случая, задавая разрешение частоты 20 Гц обеспечивает приемлемую ясность в результате.

[p,fp,tp] = pspectrum(x1,fs,'FrequencyResolution',20,'spectrogram');

Вектор частоты спектрограммы степени переходит к 22 050 Гц, но область значений интереса относительно речи ограничивается пропускной способностью телефонии 300-3400 Гц. Разделитесь данные в пять интервалов частоты определением запускаются и конечные точки и вычисляют спектральную энтропию для каждого интервала.

flow = [300 628 1064 1634 2394];
fup = [627 1060 1633 2393 3400];
 
se2 = zeros(length(flow),size(p,2));
for i = 1:length(flow)
    se2(i,:) = pentropy(p,fp,tp,'FrequencyLimits',[flow(i) fup(i)]);
end

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

subplot(2,1,1)
plot(t,x1)
xlabel('Time (seconds)')
ylabel('Speech Signal')

subplot(2,1,2)
imagesc(tp,[],flip(se2))    % Flip se2 so its plot corresponds to the ascending frequency bins.
h = colorbar(gca,'NorthOutside');
ylabel(h,'Spectral Entropy')
yticks(1:5)
set(gca,'YTickLabel',num2str((5:-1:1).')) % Label the ticks for the ascending bins.
xlabel('Time (seconds)')
ylabel('Frequency Bin')

Создайте сигнал, который комбинирует белый шум с сегментом, который состоит из синусоиды. Используйте спектральную энтропию, чтобы обнаружить существование и положение синусоиды.

Сгенерируйте и постройте сигнал, который содержит три сегмента. Средний сегмент содержит синусоиду наряду с белым шумом. Другие два сегмента являются чистым белым шумом.

fs = 100;
t = 0:1/fs:10;
sin_wave = 2*sin(2*pi*20*t')+randn(length(t),1);
x = [randn(1000,1);sin_wave;randn(1000,1)];
t3 = 0:1/fs:30;

plot(t3,x)
title('Sine Wave in White Noise')

Постройте спектральную энтропию.

pentropy(x,fs)
title('Spectral Entropy of Sine Wave in White Noise')

График ясно дифференцирует сегмент с синусоидой от бело-шумовых сегментов. Это вызвано тем, что синусоида содержит информацию. Чистый белый шум имеет самую высокую спектральную энтропию.

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

se = pentropy(x,fs,'Instantaneous',false)
se = 0.9035

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

Входные параметры

свернуть все

Расписание сигнала, из которого pentropy возвращает спектральный энтропийный se, заданный как timetable, который содержит одну переменную с отдельным столбцом. xt должен содержать увеличение, конечные времена строки. Если timetable xt имеет пропавших без вести или дублирующиеся моменты времени, можно зафиксировать его с помощью советов в Чистом Расписании с Пропавшими без вести, Копией, или Неоднородные Времена (MATLAB). xt может быть неоднородно выбран с ограничением pspectrum, которому должны повиноваться средний временной интервал и средний временной интервал:

1100<Средний  временной интервалСредний  временной интервал<100.

Для примера см. График Спектральная Энтропия Сигнала.

Timeseries сигнализирует, из которого pentropy возвращает спектральный энтропийный se, заданный как вектор.

Частота дискретизации или шаг расчета, заданный как одно из следующего:

  • Положительный числовой скаляр — Частота в герц

  • Скаляр duration — Временной интервал между последовательными выборками X

  • Вектор, массив duration или массив datetime — момент Времени или длительность, соответствующая каждому элементу x

Когда sampx представляет временной вектор, выборки времени могут быть неоднородными с ограничением pspectrum, которому должны повиноваться средний временной интервал и средний временной интервал:

1100<Средний  временной интервалСредний  временной интервал<100.

Для примера см. График Спектральная Энтропия Сигнала.

Спектрограмма степени или спектр сигнала, заданного как матрица (спектрограмма) или вектор-столбец (спектр). Если вы задаете p, то pentropy использует p, а не сгенерируйте его собственную спектрограмму или спектрограмму степени. fp и tp, которые обеспечивают частоту и информацию времени, должны сопровождать p. Каждый элемент p в i 'th строка и j 'th столбец представляет степень сигнала в интервале частоты, сосредоточенном в fp (i) и экземпляр времени tp (j).

Для примера см. График Спектральная Энтропия Речевого Сигнала.

Частоты для спектрограммы или спектрограммы степени p, когда p предоставляется явным образом pentropy, задали как вектор в герц. Длина fp должна быть равна количеству строк в s.

Информация времени для спектрограммы степени или спектра p, когда p предоставляется явным образом pentropy, задала как одно из следующего:

  • Вектор моментов времени, тип данных которых может быть числовым, duration или datetime. Длина векторного tp должна быть равна количеству столбцов в p.

  • Скаляр duration, который представляет временной интервал в p. Скалярная форма tp может использоваться только, когда p является матрицей спектрограммы степени.

  • Для особого случая, где p является вектор-столбцом (спектр мощности), tp может быть числовым, duration или скаляром datetime представление момента времени спектра.

Для особого случая, где p является вектор-столбцом (спектр мощности), tp может быть single/double/duration/datetime скаляром, представляющим момент времени спектра.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Instantaneous',false,'FrequencyLimits',[25 50] вычисляет скалярную спектральную энтропию, представляющую фрагмент сигнала в пределах от 25 Гц к 50 Гц.

Мгновенная опция временных рядов, заданная как пара, разделенная запятой, состоящая из 'Instantaneous' и логического.

  • Если Instantaneous является true, то pentropy возвращает мгновенную спектральную энтропию как вектор timeseries.

  • Если Instantaneous является false, то pentropy возвращает спектральное энтропийное значение целого сигнала или спектра как скаляр.

Для примера смотрите Использование Спектральная Энтропия, чтобы Обнаружить Синусоиду в Белом шуме.

Шкала белой шумовой опцией, заданной как пара, разделенная запятой, состоящая из 'Scaled' и логического. Масштабирование белым шумом — или log2n, где n является количеством точек частоты — эквивалентно нормализации в Спектральной Энтропии. Это позволяет вам выполнять прямое сравнение на сигналах различной длины.

  • Если Scaled является true, то pentropy возвращает спектральную энтропию, масштабируемую спектральной энтропией соответствующего белого шума.

  • Если Scaled является false, то pentropy не масштабирует спектральную энтропию.

Частота ограничивает использованием, заданным как пара, разделенная запятой, состоящая из 'FrequencyLimits' и двухэлементного вектора, содержащего нижние и верхние границы f1 и f2 в герц. Значением по умолчанию является [0 sampfreq/2], где sampfreq является частотой дискретизации в герц, который pentropy выводит от sampx.

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

Для примера см. График Спектральная Энтропия Речевого Сигнала.

Ограничения по времени, заданные как пара, разделенная запятой, состоящая из 'TimeLimits' и двухэлементного вектора, содержащего нижние и верхние границы t1 и t2 в тех же модулях как шаг расчета, обеспеченный в sampx, и типов данных:

  • Числовой или duration, когда sampx является числовым или длительность

  • Числовой, duration или datetime, когда sampx является datetime

Эта спецификация позволяет вам извлекать сегмент времени данных из полного промежутка.

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

свернуть все

Спектральная Энтропия, возвращенная как timetable, если входным сигналом является timetable xt, и как двойной вектор, если входной сигнал является временными рядами x.

Временные стоимости сопоставлены с se, возвращенным в той же форме как время в se.

Для примера см. График Спектральная Энтропия Сигнала.

Больше о

свернуть все

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

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

Уравнения для спектральной энтропии являются результатом уравнений для спектра мощности и распределения вероятностей для сигнала. Для x сигнала (n) спектром мощности является S (m) = |X (m) |2, где X (m) является дискретным преобразованием Фурье x (n). Распределение вероятностей P (m) затем:

P(m)=S(m)iS(i).

Спектральный энтропийный H следует как:

H=m=1NP(m)журнал2P(m).

Нормализация:

Hn=m=1NP(m)журнал2P(m)журнал2N,

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

Если спектрограмма степени частоты времени, S (t, f) известен, то распределение вероятностей становится:

P(m)=tS(t,m)ftS(t,f).

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

H=m=1NP(m)журнал2P(m).

Чтобы вычислить мгновенную спектральную энтропию, учитывая спектрограмму степени частоты времени S (t, f), распределение вероятностей во время, t:

P(t,m)=S(t,m)fS(t,f).

Затем спектральная энтропия во время t:

H(t)=m=1NP(t,m)журнал2P(t,m).

Ссылки

[1] Шарма, V., и А. Пэри. "Анализ Диагностики отказа Механизма Используя Различные Индикаторы состояния". Procedia Engineering. Издание 144, 2016, стр 253–263.

[2] Панорамирование, Y. N. Дж. Чен и Кс. Л. Ли. "Спектральная Энтропия: Дополнительный Индекс для Оценки Ухудшения Производительности Подшипника качения". Продолжения Учреждения Инженеров-механиков, Части C: Журнал Науки Машиностроения. Издание 223, Выпуск 5, 2009, стр 1223–1231.

[3] Шен, J., Цз. Хун и Л. Ли. "Устойчивое основанное на энтропии обнаружение конечной точки для распознавания речи в шумных средах". ICSLP. Издание 98, ноябрь 1998.

[4] Vakkuri, A. A. Yli‐Hankala, П. Тэлджа, С. Мастола, H. Tolvanen‐Laakso, Т. Сэмпсон и H. Viertiö‐Oja. "Time‐Frequency Сбалансированная Спектральная Энтропия как Мера Анестезирующего Действия препарата в Центральной нервной системе во время Sevoflurane, Пропофола и Анестезии Тиопентала". Протоколы Anaesthesiologica Scandinavica. Издание 48, Номер 2, 2004, стр 145–153.

Смотрите также

| |

Введенный в R2018a