pentropy

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

Описание

пример

se = pentropy(xt) возвращает Спектральную энтропию с одной переменной, с одним столбцом timetable xt как timetable se. 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. Этот синтаксис не применяется, если Instantaneous установлено в false.

pentropy(___) без выходных аргументов строит графики спектральной энтропии по времени. Если 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 timetable.

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

Figure contains an axes. The axes with title Spectral Entropy of White Noise Signal Timetable contains an object of type line.

Постройте график спектральной энтропии сигнала, используя вектор с временной точкой 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

Figure contains an axes. The axes with title Spectral Entropy of White Noise Signal Vector contains an object of type line.

Оба дают одинаковый результат.

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

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

Figure contains an axes. The axes with title Spectral Entropy of White Noise Signal Vector using Sample Rate contains an object of type line.

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

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

Загрузите данные, 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')

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

Вычислите степень спектрограмму 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')

Figure contains 2 axes. Axes 1 contains an object of type line. Axes 2 contains an object of type image.

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

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

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')

Figure contains an axes. The axes with title Sine Wave in White Noise contains an object of type line.

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

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

Figure contains an axes. The axes with title Spectral Entropy of Sine Wave in White Noise contains an object of type line.

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

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

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

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

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

свернуть все

Расписание сигнала, из которого pentropy возвращает спектральную энтропию se, заданный как timetable которая содержит одну переменную с одним столбцом. xt должно содержать увеличивающуюся, конечную строку раз. Если на xt timetable имеет отсутствующие или повторяющиеся временные точки, можно исправить его с помощью советов в разделе «Чистое расписание с пропущенными, повторяющимися или неоднородными временами». xt может быть неоднородно дискретизирован, с pspectrum ограничение, которому должны подчиняться медиана временного интервала и средний временной интервал:

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

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

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

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

  • Положительный числовой скаляр - частота дискретизации в герцах

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

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

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

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

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

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

Для получения примера смотрите График спектральную энтропию речевого сигнала.

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

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

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

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

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

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

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

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

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

Шкала белым шумом, заданная как разделенная разделенными запятой парами, состоящая из 'Scaled' и логический. Масштабирование белым шумом - или n log2, где 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. Этот аргумент не применяется, если Instantaneous установлено в false.

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

Подробнее о

свернуть все

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

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

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

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

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

H=m=1NP(m)log2P(m).

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

Hn=m=1NP(m)log2P(m)log2N,

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

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

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

Спектральная энтропия все еще:

H=m=1NP(m)log2P(m).

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

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

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

H(t)=m=1NP(t,m)log2P(t,m).

Ссылки

[1] Панорамирование, Y. N., J. Chen, and X. L. Li. «Спектральная энтропия: дополнительный индекс для оценки Эффективности деградации подшипника качения». Труды Института инженеров-механиков, часть C: Журнал машиностроения. Том 223, Выпуск 5, 2009, стр. 1223-1231.

[2] Шарма, В. и А. Парей. «Обзор диагностики отказа передачи с использованием различных индикаторов состояния». Procedia Engineering. Том 144, 2016, с. 253-263.

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

[4] Ваккури, А., А. Yli‐Hankala, П. Талья, С. Мустола, Х. Tolvanen‐Laakso, Т. Сампсон и Х. Viertiö‐Oja. Time‐Frequency сбалансированную спектральную энтропию как мера анестетического эффекта препарата в центральной нервной системе во время севофлурана, пропофола и тиопентальной анестезии ". Acta Anaesthesiologica Scandinavica. Том 48, № 2, 2004, стр. 145-153.

Расширенные возможности

.

См. также

| |

Введенный в R2018a