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

Entropía espectral de la señal

Descripción

ejemplo

se = pentropy(xt) devuelve el valor de una sola variable, de una sola columna como el archivo . calcula el espectrograma de utilizar las opciones predeterminadas de .Entropía espectraltimetablexttimetablesepentropyxtpspectrum

ejemplo

se = pentropy(x,sampx) devuelve la entropía espectral del vector, muestreada a velocidad o intervalo de tiempo, como 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 entropía instantánea o de señal completa, escalado por entropía de ruido blanco, límites de frecuencia y límites de tiempo.

Puede utilizar 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 un , entonces es igual a los tiempos de fila de .setimetablettimetablese Puede utilizar 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

  • Emite el valor escalar para la entropía espectral ( es .)Instantaneousfalse

Ejemplos

contraer todo

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

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

Trazar la entropía espectral de la señal, utilizando el vector de punto de tiempo y la forma que regresa y el tiempo asociado .tsete Haga coincidir las unidades -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 la frecuencia o el tiempo.pentropy El software interpreta según el tipo de datos del argumento. Trazar 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 gráficas anteriores.

Trazar la entropía espectral de una señal de voz y compararla 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 los bins de frecuencia dentro del ancho de banda del habla.

Cargue los datos, , que contiene una grabación de dos canales de la palabra "Hola" 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 de 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 "Hola". Esto se debe a que el espectro de señal ha cambiado de casi una constante (ruido blanco) a la distribución de una voz humana. La distribución humano-voz contiene más información y tiene una entropía espectral más baja.

Calcular el espectrograma de potencia de la señal original, devolviendo el vector de frecuencia y el 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 al ancho de banda de telefonía de 300–3400 Hz. Divida los datos en cinco ubicaciones de frecuencia definiendo 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 los bins de frecuencia ascendente 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 consiste 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 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')

Trazar la entropía espectral.

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

La gráfica diferencia 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 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 solo número que represente toda la señal estableciendo en .'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. Usted puede utilizar este número para comparar eficientemente esta señal con otras señales.

Argumentos de entrada

contraer todo

Horario de señal desde el que devuelve la entropía espectral , especificado como un que contiene una sola variable con una sola columna. debe contener tiempos de fila crecientes y finitos.pentropysetimetablext Si faltan puntos de tiempo o duplican, puede corregirlo usando las sugerencias de . puede ser muestreado de forma no uniforme, con la restricción de que el intervalo de tiempo medio y el intervalo de tiempo medio deben obedecer:xttimetableClean Timetable with Missing, Duplicate, or Nonuniform Times (MATLAB)xtpspectrum

1100<Median time intervalMean time interval<100.

Para obtener un ejemplo, consulte .Trazado Entropía Espectral de La Señal

Señal de serie temporal desde la que devuelve la entropía espectral, especificada como vector.pentropyse

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

  • Escalar numérico positivo — Frecuencia en hercios

  • escalar — Intervalo de tiempo entre muestras consecutivas dedurationX

  • Vector, matriz o matriz — 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 de que el intervalo de tiempo medio y el intervalo de tiempo medio deben obedecer:sampxpspectrum

1100<Median time intervalMean time interval<100.

Para obtener un ejemplo, consulte .Trazado Entropía Espectral de La Señal

Espectrograma de potencia o espectro de una señal, especificado como matriz (espectrograma) o vector de columna (espectro). Si especifica , entonces utiliza en lugar de generar su propio espectrograma o espectrograma de potencia. y , que proporcionan la información de frecuencia y tiempo, debe acompañar .ppentropypfptpp Cada elemento de la fila 'ésima y la columna 'ésima representa la potencia de la señal en el contenedor de frecuencia centrado en ( ) y la instancia de tiempo ( ).pijfpitpj

Para obtener un ejemplo, consulte .Trazado Entropía Espectral de La Señal de Voz

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

Información de tiempo para espectrograma de potencia o espectro cuando se suministra explícitamente a , especificada como una de las 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 es un vector de columna (espectro de potencia), puede ser un único / doble / / escalar que representa el punto de tiempo del espectro.ptpdurationdatetime

Argumentos de par nombre-valor

Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.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 oscila entre 25 Hz y 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 un lógico.'Instantaneous'

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

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

Para obtener un ejemplo, consulte .Usa la Entropía Espectral para Detectar Onda Sinusoidal en Ruido Blanco

Escala por opción de ruido blanco, especificada como el par separado por comas que consta de y un lógico.'Scaled' Escalado por ruido blanco — o registro2, donde está el número de puntos de frecuencia — es equivalente a la normalización en .nnEntropía espectral Le permite realizar una comparación directa en señales de diferente longitud.

  • Si es , entonces 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 y 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 está la frecuencia de muestreo en hercios que deriva de .sampfreqsampfreqpentropysampx

Esta especificación le permite excluir una banda de datos en cualquiera de los extremos del rango espectral.

Para obtener un ejemplo, consulte .Trazado Entropía Espectral de La Señal de Voz

Límites de tiempo, especificados como el par separado por comas que consta de 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 datos del intervalo de tiempo completo.

Argumentos de salida

contraer todo

, devuelto como si la señal de entrada es , y como un vector doble si la señal de entrada es serie temporal.Entropía espectraltimetabletimetablextx

Valores de tiempo asociados a , devueltos en la misma forma que la hora en .sese

Para obtener un ejemplo, consulte .Trazado Entropía Espectral de La Señal

Más acerca de

contraer todo

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 energía normalizada de la señal en el dominio de frecuencia como una distribución de probabilidad, y calcula la entropía Shannon de la misma. La entropía 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 y diagnóstico de errores, .[1][2] SE también es ampliamente utilizado como una característica en el reconocimiento de voz y 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, donde ( ) es la transformación 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á el total de puntos de frecuencia.N El denominador, registro2representa la máxima entropía espectral 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 dada un espectrograma de potencia de frecuencia de tiempo ( , ), la distribución de probabilidad en el momento 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