Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

pentropy

La entropía espectral de la señal

Descripción

ejemplo

se = pentropy(xt) Devuelve el de una sola variable, una sola columna como el. calcula el espectrograma del uso de las opciones predeterminadas de.La entropía espectraltimetablexttimetablesepentropyxtpspectrum

ejemplo

se = pentropy(x,sampx) Devuelve la entropía espectral del vector, muestreado a intervalos de tasa o tiempo, como un vector.xsampx

ejemplo

se = pentropy(p,fp,tp) Devuelve la entropía espectral utilizando el espectrograma de potencia, junto con la frecuencia del espectrograma y los vectores de tiempo y.pfptp

Utilice esta sintaxis cuando desee personalizar las opciones para, en lugar de aceptar las opciones predeterminadas que se aplican.pspectrumpspectrumpentropy

ejemplo

se = pentropy(___,Name,Value) especifica propiedades adicionales mediante argumentos de par nombre-valor. Las opciones incluyen la entropía instantánea o de señal completa, la escala mediante la entropía de ruido blanco, los límites de frecuencia y los límites de tiempo.

Puede usar con cualquiera de los argumentos de entrada en sintaxis anteriores.Name,Value

ejemplo

[se,t] = pentropy(___) Devuelve la entropía espectral junto con el vector de tiempo o.setimetablet Si es a, entonces es igual a los tiempos de fila de.setimetablettimetablese Puede usar estos argumentos de salida con cualquiera de los argumentos de entrada en sintaxis anteriores.

pentropy(___) cualquiera de los dos:

  • Traza la entropía espectral contra el tiempo (es.)Instantaneoustrue

  • Genera el valor escalar de la entropía espectral (is.)Instantaneousfalse

Ejemplos

contraer todo

Trazar la entropía espectral de una señal expresada como un horario y como una serie temporal.

Genere una serie aleatoria con distribución normal (ruido blanco).

xn = randn(1000,1);

Crear vector de tiempo y convertir a vector.tdurationtdur Combinar y en un horario.tdurxn

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

Trazar la entropía espectral del calendario.xt

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

Trace la entropía espectral de la señal, utilizando el vector de punto de tiempo y la forma que devuelve y tiempo asociado.tsete Haga coincidir las unidades del eje y la cuadrícula con los trazados generados para la comparación.xpentropy

[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

Ambos producen el mismo resultado.

El segundo argumento de entrada para puede representar ya sea la frecuencia o el tiempo.pentropy El software interpreta según el tipo de datos del argumento. Trace la entropía espectral de la señal, utilizando la frecuencia de muestreo escalar en lugar del vector de tiempo.fst

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

Esta gráfica coincide con las parcelas anteriores.

Trace la entropía espectral de una señal de voz y compárela con la señal original. Visualice la entropía espectral en un mapa de color creando primero un espectrograma de potencia y, a continuación, tomando la entropía espectral de las agrupaciones de frecuencias dentro del ancho de banda del habla.

Cargue los datos, que contiene una grabación de dos canales de la palabra "Hello" incrustada por ruido blanco de bajo nivel. consta de dos columnas que representan los dos canales.xx Utilice sólo el primer canal.

Defina la frecuencia de muestreo y el vector de tiempo. Aumente el primer canal con ruido blanco para lograr una relación señal-ruido de aproximadamente 5 a 1.x

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

Encuentra la entropía espectral. Visualice los datos para la señal original y para la entropía espectral.

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

La entropía espectral disminuye cuando se habla "Hello". Esto se debe a que el espectro de la señal ha cambiado de casi una constante (ruido blanco) a la distribución de una voz humana. La distribución de voz humana contiene más información y tiene una entropía espectral más baja.

Computa el espectrograma de potencia de la señal original, devolviendo vector de frecuencia y vector de tiempo también.pfptp Para este caso, especificar una resolución de frecuencia de 20 Hz proporciona una claridad aceptable en el resultado.

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

El vector de frecuencia del espectrograma de potencia va a 22.050 Hz, pero el rango de interés con respecto a la voz se limita a la anchura de banda de telefonía de 300 – 3400 Hz. Divida los datos en cinco bins de frecuencia definiendo los puntos inicial y final, y calcule la entropía espectral para cada bin.

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

Visualice los datos en un mapa de color que muestre las bandejas de frecuencias ascendentes y compárelos con la señal original.

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

Cree una señal que combine el ruido blanco con un segmento que consista en una onda sinusoidal. Utilice la entropía espectral para detectar la existencia y la posición de la onda sinusoidal.

Genere y trace la señal, que contiene tres segmentos. El segmento medio contiene la onda sinusoidal junto con el ruido blanco. Los otros dos segmentos son el ruido blanco puro.

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

Trace la entropía espectral.

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

La trama distingue claramente el segmento con la onda sinusoidal de los segmentos de ruido blanco. Esto se debe a que la onda sinusoidal contiene información. El ruido blanco puro tiene la entropía espectral más alta.

El valor predeterminado para es devolver o trazar la entropía espectral instantánea para cada punto de tiempo, como se muestra en el trazado anterior.pentropy También puede destilar la información de entropía espectral en un único número que represente la señal completa estableciendo.'Instantaneous'false Utilice el formulario que devuelve el valor de entropía espectral si desea utilizar directamente el resultado en otros cálculos. De lo contrario, devuelve la entropía espectral en.pentropyans

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

Un solo número caracteriza la entropía espectral, y por lo tanto el contenido de la información, de la señal. Puede utilizar este número para comparar eficientemente esta señal con otras señales.

Argumentos de entrada

contraer todo

El horario de la señal a partir del cual devuelve la entropía espectral, especificada como una que contiene una sola variable con una sola columna. debe contener tiempos de fila crecientes y finitos.pentropysetimetablext Si faltan o duplican los puntos de tiempo, puede corregirlo con las sugerencias en. pueden ser muestreados de manera no uniforme, con la restricción que el intervalo de tiempo mediano y el intervalo de tiempo medio deben obedecer:xttimetableLimpie el horario con los tiempos perdidos, duplicados o no uniformes (MATLAB)xtpspectrum

1100<Median time intervalMean time interval<100.

Para ver un ejemplo, vea.Trazar entropía espectral de señal

Señal de serie temporal a partir de la cual se devuelve la entropía espectral, especificada como vector.pentropyse

Frecuencia de muestreo o tiempo de muestra, especificado como uno de los siguientes:

  • Escalar numérico positivo: frecuencia en hercios

  • escalar: intervalo de tiempo entre muestras consecutivas dedurationX

  • Vector, array o array: tiempo instantáneo o duración correspondiente a cada elemento dedurationdatetimex

Cuando representa un vector de tiempo, las muestras de tiempo pueden ser no uniformes, con la restricción que el intervalo de tiempo medio y el intervalo de tiempo medio deben obedecer:sampxpspectrum

1100<Median time intervalMean time interval<100.

Para ver un ejemplo, vea.Trazar entropía espectral de señal

Espectrograma de potencia o espectro de una señal, especificado como una matriz (espectrograma) o un vector de columna (espectro). Si especifica, a continuación, utiliza en lugar de generar su propio espectrograma o Espectrograma de potencia. y, que proporcionan la frecuencia y la información de tiempo, deben acompañar.ppentropypfptpp Cada elemento de la columna ' th y la ' th representa la potencia de la señal en la bandeja de frecuencias centrada en () y la instancia de tiempo ().pijfpitpj

Para ver un ejemplo, vea.Trazar entropía espectral de señal de voz

Frecuencias para espectrograma o Espectrograma de potencia cuando se suministra explícitamente a, especificado como un vector en hercios.pppentropy La longitud de debe ser igual al número de filas en.fps

Información de tiempo para el espectrograma de potencia o el espectro cuando se suministra explícitamente, especificado como uno de los siguientes:pppentropy

  • Vector de puntos de tiempo, cuyo tipo de datos puede ser numérico, o.durationdatetime La longitud del vector debe ser igual al número de columnas en.tpp

  • escalar que representa el intervalo de tiempo en.durationp La forma escalar de se puede utilizar sólo cuando es una matriz de Espectrograma de potencia.tpp

  • Para el caso especial donde es un vector de columna (espectro de potencia), puede ser un numérico, o escalar que representa el punto de tiempo del espectro.ptpdurationdatetime

Para el caso especial donde se encuentra un vector de columna (espectro de potencia), puede ser un único/doble//escalar que represente el punto de tiempo del espectro.ptpdurationdatetime

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: calcula la entropía espectral escalar que representa la porción de la señal que va desde 25 Hz a 50 Hz.'Instantaneous',false,'FrequencyLimits',[25 50]

Opción de serie temporal instantánea, especificada como el par separado por comas que consta de y una lógica.'Instantaneous'

  • Si es así, devuelve la entropía espectral instantánea como un vector de serie temporal.Instantaneoustruepentropy

  • Si es así, devuelve el valor de entropía espectral de toda la señal o espectro como un escalar.Instantaneousfalsepentropy

Para ver un ejemplo, vea.Utilice entropía espectral para detectar ondas sinusoidales en ruido blanco

Opción escalar por ruido blanco, especificada como el par separado por comas que consta de una lógica.'Scaled' Escalado por ruido blanco, o registro2, donde está el número de puntos de frecuencia, equivale a normalizar.nnLa entropía espectral Le permite realizar una comparación directa en señales de diferente longitud.

  • Si es así, devuelve la entropía espectral escalada por la entropía espectral del ruido blanco correspondiente.Scaledtruepentropy

  • Si es, entonces no escala la entropía espectral.Scaledfalsepentropy

Límites de frecuencia a utilizar, especificados como el par separado por comas que consta de un vector de dos elementos que contiene los límites inferior y superior F1 y F2 en hercios.'FrequencyLimits' El valor predeterminado es [0/2], donde es la frecuencia de muestreo en hercios que se deriva de.sampfreqsampfreqpentropysampx

Esta especificación permite excluir una banda de datos en cualquier extremo del rango espectral.

Para ver un ejemplo, vea.Trazar entropía espectral de señal de voz

Los límites de tiempo, especificados como el par separado por comas que consta de y un vector de dos elementos que contiene los límites inferior y superior T1 y T2 en las mismas unidades que el tiempo de muestra proporcionado en, y de los tipos de datos:'TimeLimits'sampx

  • Numérico o cuando es numérico o de duracióndurationsampx

  • Numérico, o cuando esdurationdatetimesampxdatetime

Esta especificación le permite extraer un segmento de tiempo de los datos del plazo completo.

Argumentos de salida

contraer todo

, se devuelve como si la señal de entrada es, y como un vector doble si la señal de entrada es una serie de tiempo.La entropía espectraltimetabletimetablextx

Los valores de tiempo asociados con, devueltos en el mismo formulario que el tiempo en.sese

Para ver un ejemplo, vea.Trazar entropía espectral de señal

Más acerca de

contraer todo

La entropía espectral

La entropía espectral (SE) de una señal es una medida de su distribución de potencia espectral. El concepto se basa en la entropía de Shannon, o entropía de información, en la teoría de la información. El SE trata la distribución de potencia normalizada de la señal en el dominio de frecuencia como una distribución de probabilidad, y calcula la entropía de Shannon de la misma. La entropía de Shannon en este contexto es la entropía espectral de la señal. Esta propiedad puede ser útil para la extracción de características en la detección de fallas y el diagnóstico,.[1][2] El se es también ampliamente utilizado como una característica en el reconocimiento de voz y el procesamiento de señales biomédicas.[3][4]

Las ecuaciones para la entropía espectral surgen de las ecuaciones para el espectro de potencia y la distribución de probabilidad para una señal. Para una señal (), el espectro de potencia es () = | ( )|xnSmXm2, where () es la transformada discreta de Fourier de ().Xmxn La distribución de probabilidad () es entonces:Pm

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

La entropía espectral sigue como:H

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

Normalización:

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

donde están los puntos de frecuencia total.N El denominador, log2representa la entropía espectral máxima del ruido blanco, distribuida uniformemente en el dominio de frecuencia.N

Si se conoce un espectrograma de potencia de frecuencia de tiempo (,), entonces la distribución de probabilidad se convierte en:Stf

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

La entropía espectral sigue siendo:

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

Para calcular la entropía espectral instantánea dado un espectrograma de potencia de frecuencia de tiempo (,), la distribución de probabilidad en el tiempo es:Stft

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

Entonces la entropía espectral en el tiempo es:t

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

Referencias

[1] Sharma, V., and A. Parey. "A Review of Gear Fault Diagnosis Using Various Condition Indicators." Procedia Engineering. Vol. 144, 2016, pp. 253–263.

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

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

Consulte también

| |

Introducido en R2018a