pkurtosis
Спектральный эксцесс сигнала или спектрограммы.
| Библиотека |
|
Синтаксис
Вызов функции
-
sk,fout,thresh = pkurtosis(x,out=:data)— возвращает спектральный эксцесс сигналаxв виде вектораsk, а также вектор частотfout. Для вычисления временных параметров функцияpkurtosisиспользует нормированную частоту: равномерно распределенные значения частоты в диапазоне от0доπрад/отсчет. Спектрограмма сигнала вычисляется с помощьюpspectrumс размером окна по умолчанию и перекрытием окон80%.
-
sk,fout,thresh = pkurtosis(___,"ConfidenceLevel",p,out=:data)— также возвращает пороговое значение спектрального эксцессаthreshдля уровня доверияp. Порог определяет границы области, в которой значения спектрального эксцесса соответствуют стационарному гауссовому сигналу при выбранном уровне доверия. Уровень доверия позволяет настроить чувствительность пороговых значений спектрального эксцесса к отклонениям от гауссова распределения или к обнаружению нестационарных составляющих сигнала.
-
pkurtosis(___)— строит график спектрального эксцесса с указанием уровня доверия и пороговых значений. Этот синтаксис можно использовать с любыми входными аргументами из предыдущих вариантов.
Аргументы
Входные аргументы
#
x —
сигнал во временной области
вектор
Details
Сигнал во временной области, заданный как вектор. Функция pkurtosis вычисляет спектральный эксцесс этого сигнала.
#
sampx —
частота дискретизации или период дискретизации сигнала
нормированная частота (по умолчанию) | скаляр | вектор | массив
Details
Частота дискретизации или период дискретизации сигнала, заданные одним из следующих значений:
-
Положительный скаляр — частота, измеряемая в Гц;
-
Вектор или массив — моменты времени, соответствующие каждому элементу
x.
Если sampx представляет собой вектор, отсчеты могут быть неравномерными, однако функция pspectrum накладывает следующее ограничение на отношение медианного и среднего временных интервалов:
Если sampx задан пустым, функция pkurtosis использует нормированную частоту, то есть вектор частот имеет равномерно распределенные значения в диапазоне .
#
window —
временное разрешение окна
скаляр
Details
Временное разрешение окна, заданное как положительный скаляр в отсчетах. Используется при внутреннем вычислении спектрограммы с помощью функции pspectrum. Аргумент window обязателен при подаче на вход уже существующей спектрограммы и необязателен в остальных вариантах синтаксиса. Оптимальный размер окна можно определить с помощью функции kurtogram. По умолчанию pspectrum использует перекрытие окон 80%.
#
s —
спектрограмма или спектрограмма мощности сигнала
матрица | вектор
Details
Спектрограмма или спектр мощности сигнала, заданные как матрица для спектрограммы или вектор-столбец для спектра.
-
Если
sсодержит комплексные значения, функцияpkurtosisинтерпретирует его как кратковременное преобразование Фурье (КВПФ) исходного сигнала (спектрограммы). -
Если
sсодержит вещественные значения, функцияpkurtosisинтерпретирует его как квадрат модуля КВПФ исходного сигнала (спектрограммы мощности). Каждый элементsдолжен быть неотрицательным.
Если аргумент s задан, функция pkurtosis использует его вместо вычисления собственной спектрограммы или спектрограммы мощности. В качестве примера см. Построение графика спектрального эксцесса по заданной спектрограмме.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
Входные аргументы «имя-значение»
Укажите необязательные пары аргументов в виде Name,Value, где Name — имя аргумента, а Value — соответствующее значение. Аргументы типа «имя-значение» должны располагаться после других аргументов, но порядок пар не имеет значения. Можно указать несколько пар «имя-значение».
Используйте запятые для разделения имени и значения, а Name заключите в кавычки, либо используйте знак равенства для разделения имени и значения, а Name укажите без кавычек.
#
ConfidenceLevel —
уровень доверия
0.95 (по умолчанию) | скаляр
Details
Уровень доверия, заданный как скаляр p в диапазоне от 0 до 1. Используется для определения того, можно ли считать сигнал гауссовым и стационарным. Значение p влияет на границы области, определяемые пороговым значением thresh. Внутри этой области значение спектрального эксцесса указывает на гауссовость и стационарность сигнала. Таким образом, уровень доверия позволяет настроить чувствительность обнаружения. Значения эксцесса за пределами области с вероятностью указывают на возможное негауссовое или нестационарное поведение сигнала. В качестве примера см. Построение графика спектрального эксцесса нестационарного сигнала при разных уровнях доверия.
Выходные аргументы
#
sk —
спектральный эксцесс
вектор
Details
Спектральный эксцесс, возвращаемый в виде вектора типа Float32 или Float64. Спектральный эксцесс — это статистическая величина, принимающая малые значения там, где данные стационарны и имеют гауссово распределение, и высокие значения там, где происходят переходные процессы. Спектральный эксцесс позволяет обнаруживать и локализовать нестационарные или негауссовые составляющие, которые могут быть вызваны неисправностями или ухудшением характеристик системы. Высокие значения эксцесса указывают на наличие таких составляющих сигнала.
#
thresh —
ширина полосы спектрального эксцесса для стационарного гауссова поведения
скаляр
Details
Ширина полосы спектрального эксцесса для стационарного гауссова поведения, возвращаемая в виде скаляра. Это значение определяет толщину полосы, центрированной относительно линии sk = 0, при заданном уровне доверия ConfidenceLevel. Выход за пределы полосы, ограниченной порогом thresh, указывает на возможное нестационарное или негауссовское поведение. Аргумент ConfidenceLevel непосредственно влияет на толщину полосы и чувствительность результатов. В качестве примера см. Построение графика спектрального эксцесса нестационарного сигнала при разных уровнях доверия.
Примеры
Построение графика спектрального эксцесса нестационарного сигнала при разных уровнях доверия
Details
Построим график спектрального эксцесса сигнала с линейной частотной модуляцией и белым шумом, чтобы обнаружить нестационарную негауссову составляющую. Исследуем влияние изменения уровня доверия и использования нормированной частоты.
Создадим чирп-сигнал, добавим белый гауссов шум и построим график.
import EngeeDSP.Functions: chirp
fs = 1000
t = collect(0:1/fs:10)
f1 = 300
f2 = 400
xc = chirp(t, f1, 10, f2)
x = xc .+ randn(length(t))
plot(t, x, title = "Chirp Signal with White Gaussian Noise")
Построим график спектрального эксцесса сигнала.
import EngeeDSP.Functions: pkurtosis
pkurtosis(x, fs)
plot!(title = "Spectral Kurtosis of Chirp Signal with White Gaussian Noise",
ylim = (-1, 9), legend = (0.64, 0.93))
На графике видно выраженное отклонение в диапазоне от 300 до 400 Гц, соответствующее нестационарной составляющей чирп-сигнала. Область между горизонтальными штриховыми линиями соответствует зоне вероятного стационарного и гауссова поведения, определяемой уровнем доверия 0.95. Значения эксцесса, попадающие в эту зону, с высокой вероятностью характеризуют стационарный гауссов процесс. Значения, выходящие за пределы этой зоны, классифицируются как нестационарные или негауссовские. Несколько небольших отклонений ниже 300 Гц, незначительно превышающих пороговое значение, представляют собой ложные срабатывания: шум приводит к превышению порога для стационарной гауссовой составляющей.
Исследуем влияние уровня доверия, изменив его значение с принятого по умолчанию 0.95 на 0.85.
pkurtosis(x, fs, "ConfidenceLevel", 0.85)
plot!(title = "Spectral Kurtosis of Chirp Signal with Noise at Confidence Level of 0.85",
ylim = (-1, 9), legend = (0.64, 0.93))
Более низкий уровень доверия обеспечивает повышенную чувствительность при обнаружении нестационарных или негауссовых частотных составляющих. Снижение уровня доверия сужает область, ограниченную пороговыми значениями thresh. При этом увеличиваются количество и амплитуда низкоуровневых отклонений (ложных срабатываний). Выбор уровня доверия позволяет найти баланс между эффективностью обнаружения и ограничением числа ложных срабатываний.
Сравним ширину зоны для обоих уровней доверия, используя вариант вызова pkurtosis, возвращающий соответствующее значение.
sk1, _, thresh95 = pkurtosis(x, out = :data)
sk2, _, thresh85 = pkurtosis(x, ConfidenceLevel = 0.85, out = :data)
thresh = [thresh95 thresh85]
1×2 Matrix{Float64}:
0.357839 0.262821
Построим график спектрального эксцесса, исключив сведения о периоде дискретизации, чтобы функция pkurtosis использовала нормированную частоту.
pkurtosis(x, ConfidenceLevel = 0.85)
plot!(title = "Spectral Kurtosis using Normalized Frequency",
ylim = (-1, Inf), legend = (0.64, 0.93))
Шкала частот в Гц заменена шкалой нормированной частоты от 0 до π рад/отсчет.
Построение графика спектрального эксцесса по заданной спектрограмме
Details
При подаче на вход сигнала функция pkurtosis вычисляет спектрограмму с помощью функции pspectrum, используя настройки по умолчанию. Чтобы использовать собственные настройки, можно вычислить спектрограмму заранее.
Создадим чирп-сигнал, содержащий белый гауссов шум.
import EngeeDSP.Functions: chirp
fs = 1000
t = collect(0:1/fs:10)
f1 = 300
f2 = 400
x = chirp(t, f1, 10, f2) .+ randn(length(t))
Вычислим спектрограмму с помощью функции spectrogram, задав размер окна, перекрытие и число точек БПФ. Затем используем эту спектрограмму в pkurtosis.
import EngeeDSP.Functions: spectrogram, pkurtosis
window = 256
overlap = round(Int, window * 0.8)
nfft = 2 * window
s, f, t, p = spectrogram(x, window, overlap, nfft, fs = fs, out = :data)
pkurtosis(s, fs, f, window)
plot!(ylim = (-1, Inf), legend = (0.13, 0.93))
Амплитуда всплеска здесь выше — и, следовательно, он лучше различим, — чем при использовании настроек по умолчанию в предыдущем примере.
Дополнительно
Спектральный эксцесс
Details
Спектральный эксцесс — статистическая характеристика, позволяющая обнаруживать и локализовать нестационарные или негауссовские процессы в частотной области, характеризующаяся:
-
малыми значениями на частотах, где присутствует только стационарный гауссов шум;
-
высокими положительными значениями на частотах, где возникают переходные процессы.
Спектральный эксцесс является мощным инструментом для обнаружения и выделения сигналов, связанных с неисправностями вращающихся механических систем. Он позволяет определять признаки или индикаторы состояния для обнаружения и классификации неисправностей. При предварительной обработке для других методов, например анализа огибающей, спектральный эксцесс может предоставлять важные исходные данные, например параметры оптимальной полосы частот [1], [2].
Спектральный эксцесс сигнала вычисляется на основе кратковременного преобразования Фурье (КВПФ) :
где — оконная функция. Спектральный эксцесс вычисляется по формуле
где — оператор усреднения по времени.
Если сигнал содержит только стационарный гауссов шум, то на каждой частоте величина имеет асимптотически нормальное распределение с нулевым средним и дисперсией , где — количество элементов вдоль временной оси в . Следовательно, статистический порог при уровне доверия определяется как
где — квантильная функция стандартного нормального распределения.
Важно отметить, что длина окна в КВПФ определяет частотное разрешение , где — частота дискретизации. Размер окна должен быть меньше интервала между импульсами переходного процесса, но больше длительности самих этих импульсов.
Литература
-
Antoni, J. «The Spectral Kurtosis: A Useful Tool for Characterising Non-Stationary Signals.» Mechanical Systems and Signal Processing. Vol. 20, Issue 2, 2006, pp. 282–307.
-
Antoni, J., and R. B. Randall. «The Spectral Kurtosis: Application to the Vibratory Surveillance and Diagnostics of Rotating Machines.» Mechanical Systems and Signal Processing. Vol. 20, Issue 2, 2006, pp. 308–331.