Engee documentation

spectralKurtosis

Spectral kurtosis for signals and spectrograms.

Library

EngeeDSP

Syntax

Function call

  • kurtosis,spread,centroid = spectralKurtosis(x,f) — returns the spectral kurtosis in time for the signal x in the time or frequency domain. It also returns the spectral extent and spectral centroid. Interpretation x the function depends on the form f.

  • kurtosis,spread,centroid = spectralKurtosis(x,f,Name,Value) — sets additional parameters using one or more name-value arguments. For example, you can specify the window used for time domain input data, the amount of overlap between adjacent windows, and the type of spectrum used for frequency domain input data.

  • spectralKurtosis(___;out=:plot) — plots the spectral kurtosis.

    • If the input signal is in the time domain, the spectral kurtosis graph is plotted as a function of time.

    • If the input signal is in the frequency domain, the spectral kurtosis graph is plotted depending on the frame number.

Arguments

Input arguments

# x — input signal

+ column vector | the matrix

Details

An input signal specified as a vector or matrix. Interpretation x the function depends on the form f.

Типы данных

Float32, Float64

# f is the sampling frequency or frequency vector

+ scalar | vector

Details

The sampling frequency or frequency vector in Hz, specified as a numeric scalar or vector. Interpretation x the function depends on the form f:

  • If f — numeric scalar, function spectralKurtosis interprets x as a signal in the time domain, and f — as a sampling rate. In this case x must be a real vector or a matrix. If x — the matrix, spectralKurtosis interprets columns as separate channels.

  • If f — vector, function spectralKurtosis interprets x as a signal in the frequency domain, and f — as a frequency vector in Hz corresponding to the lines x. In this case x must be a real array of size , where — the number of spectral values at the specified frequencies f, — the number of individual spectra, and — the number of channels.

    Number of rows in x must be equal to the number of elements f.

Типы данных

Float32, Float64

Name-value input arguments

Specify optional argument pairs as Name,Value, where Name — the name of the argument, and Value — the appropriate value. Name-value arguments should be placed after other arguments, but the order of the pairs does not matter.

Use commas to separate the name and value, and Name put it in quotation marks.

The following name-value arguments apply if x — a signal in the time domain.

# Window — the window used in the time domain

+ rectwin(round(f*0.03)) (by default) | vector

Details

The window used in the time domain, defined as a real vector. The number of vector elements must be in the range [1,size(x,1)]. The number of vector elements must also be greater. OverlapLength. If the argument is Window not specified, function spectralKurtosis uses the length of the window, which splits x into eight overlapping segments.

Типы данных

Float32, Float64

# OverlapLength — the number of samples overlapping between adjacent windows

+ round(f*0.02) (by default) | a non-negative integer scalar

Details

The number of samples overlapping between adjacent windows, set as an integer in the range [0,size(Window,1)). If the argument is OverlapLength not specified, function spectralKurtosis uses a value that provides 50% overlap between segments.

Типы данных

Float32, Float64

# FFTLength — the number of elements in the DFT

+ numel(Window) (default) | a positive integer scalar

Details

The number of elements used to calculate the DFT of window input samples, set as a positive integer scalar. If no argument is given, FFTLength by default, it is equal to the number of elements in Window.

Типы данных

Float32, Float64

# Range — frequency range (Hz)

+ [0,f/2] (default) | A two-element vector is a string

Details

The frequency range in Hz, defined as a two-element vector, is a string of increasing real values in the range [0,f/2].

Типы данных

Float32, Float64

# SpectrumType — spectrum type

+ "power" (default) | "magnitude"

Details

The type of spectrum specified as "power" or "magnitude":

  • "power" — the spectral kurtosis is calculated for a one-sided power spectrum;

  • "magnitude" — the spectral kurtosis is calculated for a one-sided amplitude spectrum.

Типы данных

String

# out — type of output data

+ :data (by default) | :plot

Details

Type of output data:

  • :data — the function returns data;

  • :plot — the function returns a graph.

Output arguments

# kurtosis — spectral excess

+ scalar | vector | the matrix

Details

The spectral kurtosis returned as a scalar, vector, or matrix. Each line kurtosis corresponds to the spectral kurtosis of the window x. Each column kurtosis corresponds to an independent channel.

# spread — spectral length

+ scalar | vector | the matrix

Details

The spectral length returned as a scalar, vector, or matrix. Each line spread corresponds to the spectral extent of the window x. Each column spread corresponds to an independent channel.

# centroid — spectral centroid

+ scalar | vector | the matrix

Details

The spectral centroid in Hz, returned as a scalar, vector, or matrix. Each line centroid corresponds to the spectral centroid of the window x. Each column centroid corresponds to an independent channel.

Additional Info

Spectral kurtosis

Details

Spectral excess_ (SE) is a statistical tool that makes it possible to identify and accurately determine non—stationary or non-Gaussian behavior in the frequency domain, taking into account:

  • small values at frequencies where only stationary Gaussian noise is present;

  • high positive values at frequencies where transients occur.

This capability makes the SE a powerful tool for detecting and extracting signals related to malfunctions in rotating mechanical systems. By itself, the SE can identify features or conditional indicators for fault detection and classification. As preprocessing for other tools such as envelope analysis, the SE can provide key inputs such as the optimal band [1], [2].

Spectral kurtosis The signal it can be calculated based on the short-term Fourier transform (FFT) of the signal, :

where — the window function used in the CFTF.

Literature

  1. 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.

  2. 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.

  3. Peeters, G. «A Large Set of Audio Features for Sound Description (Similarity and ClassiDcation) in the CUIDADO Project.» Technical Report; IRCAM: Paris, France, 2004.