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.

pspectrum

Analice las señales en los dominios de frecuencia y frecuencia de tiempo

Descripción

ejemplo

p = pspectrum(x) Devuelve el espectro de potencia de.x

  • Si es un vector o un horario con un vector de datos, entonces se trata como un solo canal.x

  • Si es una matriz, un horario con una variable matricial, o un horario con múltiples variables vectoriales, entonces el espectro se computa de forma independiente para cada canal y se almacena en una columna separada de.xp

p = pspectrum(x,fs) Devuelve el espectro de potencia de una señal de vector o matriz muestreada a una velocidad.fs

ejemplo

p = pspectrum(x,t) Devuelve el espectro de potencia de una señal de vector o matriz muestreada en los instantes de tiempo especificados en.t

p = pspectrum(___,type) especifica el tipo de análisis espectral realizado por la función. Especifique como, o.type'power''spectrogram''persistence' Esta sintaxis puede incluir cualquier combinación de argumentos de entrada de sintaxis anteriores.

ejemplo

p = pspectrum(___,Name,Value) especifica opciones adicionales mediante argumentos de par nombre-valor. Las opciones incluyen el ancho de banda de resolución de frecuencia y el porcentaje de solapamiento entre segmentos adyacentes.

[p,f] = pspectrum(___) Devuelve las frecuencias correspondientes a las estimaciones espectrales contenidas en.p

ejemplo

[p,f,t] = pspectrum(___,'spectrogram') también devuelve un vector de instantes de tiempo que corresponde a los centros de los segmentos de ventana utilizados para calcular estimaciones de espectro de potencia a corto plazo.

[p,f,pwr] = pspectrum(___,'persistence') también devuelve un vector de valores de potencia correspondiente a las estimaciones contenidas en un espectro de persistencia.

ejemplo

pspectrum(___) sin argumentos de salida traza la estimación espectral en la ventana de la figura actual.

Ejemplos

contraer todo

Calcule el espectro de potencia de una sinusoide ruidosa. Especifique una frecuencia sinusoide de 200 Hz. Muestrear la sinusoide a 1 kHz durante 296 milisegundos. Inserte la señal en el ruido Gaussiano blanco de la varianza 0,1 ². Almacene la señal y su información de tiempo en un cronograma de MATLAB®.

Fs = 1000; t = (0:1/Fs:0.296)'; x = cos(2*pi*t*200)+0.1*randn(size(t)); xTable = timetable(seconds(t),x);

Calcule el espectro de la señal. Expresar el espectro en decibelios y trazar.

[pxx,f] = pspectrum(xTable);  plot(f,pow2db(pxx)) grid on xlabel('Frequency (Hz)') ylabel('Power Spectrum (dB)') title('Default Frequency Resolution')

Vuelva a calcular el espectro de potencia de la sinusoide, pero ahora utilice una resolución de frecuencia más densa de 25 Hz. Trace el espectro utilizando la función sin argumentos de salida.pspectrum

pspectrum(xTable,'FrequencyResolution',25)

Genere una señal de dos canales muestreada a 100 Hz durante 2 segundos.

  1. El primer canal consiste en un tono de 20 Hz y un tono de 21 Hz. Ambos tonos tienen amplitud de unidad.

  2. El segundo canal también tiene dos tonos. Un tono tiene amplitud de unidad y una frecuencia de 20 Hz. El otro tono tiene una amplitud de 1/100 y una frecuencia de 30 Hz.

fs = 100; t = (0:1/fs:2-1/fs)';  x = sin(2*pi*[20 20].*t) + [1 1/100].*sin(2*pi*[21 30].*t);

Inserte la señal en ruido blanco. Especifique una relación señal-ruido de 40 dB. Trace las señales.

x = x + randn(size(x)).*std(x)/db2mag(40);  plot(t,x)

Calcule los espectros de los dos canales y mostrarlos.

pspectrum(x,t)

El valor predeterminado para la fuga espectral, 0,5, corresponde a un ancho de banda de resolución de aproximadamente 1,29 Hz. Los dos tonos del primer canal no se resuelven. El tono de 30 Hz en el segundo canal es visible, a pesar de ser mucho más débil que el otro.

Aumente la fuga a 0,85, equivalente a una resolución de aproximadamente 0,74 Hz. El tono débil en el segundo canal es claramente visible.

pspectrum(x,t,'Leakage',0.85)

Aumente la fuga al valor máximo. El ancho de banda de resolución es de aproximadamente 0,5 Hz. Se resuelven los dos tonos del primer canal. El tono débil en el segundo canal está enmascarado por el margen de ventana grande.

pspectrum(x,t,'Leakage',1)

Visualice una señal de banda estrecha de interferencia incrustada dentro de una señal de banda ancha.

Genere un chirp muestreado a 1 kHz durante 500 segundos. La frecuencia del Chirp aumenta de 180 Hz a 220 Hz durante la medición.

fs = 1000; t = (0:1/fs:500)';  x = chirp(t,180,t(end),220) + 0.15*randn(size(t));

La señal también contiene una sinusoide de 210 Hz. La sinusoide tiene una amplitud de 0,05 y está presente sólo para 1/6 de la duración total de la señal.

idx = floor(length(x)/6); x(1:idx) = x(1:idx) + 0.05*cos(2*pi*t(1:idx)*210);

Calcule el espectrograma de la señal. Restrinja el rango de frecuencias de 100 Hz a 290 Hz. Especifique una resolución de tiempo de 1 segundo. Ambos componentes de la señal son visibles.

pspectrum(x,fs,'spectrogram', ...     'FrequencyLimits',[100 290],'TimeResolution',1)

Calcule el espectro de potencia de la señal. El Chirp está oscurecido por la sinusoide débil.

pspectrum(x,fs,'FrequencyLimits',[100 290])

Calcule el espectro de persistencia de la señal. Ahora ambos componentes de la señal son claramente visibles.

pspectrum(x,fs,'persistence', ...     'FrequencyLimits',[100 290],'TimeResolution',1)

Genere un chirp cuadrático muestreado a 1 kHz durante 2 segundos. El Chirp tiene una frecuencia inicial de 100 Hz que aumenta a 200 Hz a = 1 segundo.t Calcule el espectrograma utilizando la configuración predeterminada de la función.pspectrum

fs = 1e3; t = 0:1/fs:2; y = chirp(t,100,1,200,'quadratic');  [sp,fp,tp] = pspectrum(y,fs,'spectrogram');  mesh(tp,fp,sp) view(-15,60) xlabel('Time (s)') ylabel('Frequency (Hz)')

Calcule el espectrograma reasignado. Especifique una resolución de frecuencia de 10 Hz. Visualice el resultado utilizando la función sin argumentos de salida.pspectrum

pspectrum(y,fs,'spectrogram','FrequencyResolution',10,'Reassign',true)

Vuelva a calcular el espectrograma utilizando una resolución de tiempo de 0,2 segundos.

pspectrum(y,fs,'spectrogram','TimeResolution',0.2)

Calcule el espectrograma reasignado utilizando la misma resolución de tiempo.

pspectrum(y,fs,'spectrogram','TimeResolution',0.2,'Reassign',true)

Crear una señal, muestreada a 4 kHz, que se asemeja a presionar todas las teclas de un teléfono digital. Guarde la señal como un horario de MATLAB®.

fs = 4e3; t = 0:1/fs:0.5-1/fs;  ver = [697 770 852 941]; hor = [1209 1336 1477];  tones = [];  for k = 1:length(ver)     for l = 1:length(hor)         tone = sum(sin(2*pi*[ver(k);hor(l)].*t))';         tones = [tones;tone;zeros(size(tone))];     end end  % To hear, type soundsc(tones,fs)  S = timetable(seconds(0:length(tones)-1)'/fs,tones);

Calcule el espectrograma de la señal. Especifique una resolución de tiempo de 0,5 segundos y una superposición de cero entre los segmentos adyacentes. Especifique la fuga como 0,85, que equivale aproximadamente a hacer ventanas de los datos con una ventana Hann.

pspectrum(S,'spectrogram', ...     'TimeResolution',0.5,'OverlapPercent',0,'Leakage',0.85)

El espectrograma muestra que cada tecla se presiona durante medio segundo, con pausas silenciosas de medio segundo entre las teclas. El primer tono tiene un contenido de frecuencia concentrado alrededor de 697 Hz y 1209 Hz, correspondiente al dígito en el estándar DTMF.'1'

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector, matriz o a.MATLAB®timetable

  • Si es un horario, entonces debe contener el aumento de los tiempos finitos de fila.x

    Nota

    Si un horario ha desaparecido o ha duplicado los puntos de tiempo, puede arreglarlo usando las sugerencias en.Limpie el horario con los tiempos perdidos, duplicados o no uniformes (MATLAB)

  • Si se trata de un cronograma que representa una señal multicanal, debe tener una única variable que contenga una matriz o varias variables compuestas por vectores.x

Si se muestrea de forma no uniforme, interpolar la señal a una cuadrícula uniforme para calcular las estimaciones espectrales.xpspectrum La función utiliza la interpolación lineal y asume un tiempo de muestra igual a la mediana de las diferencias entre los puntos de tiempo adyacentes. Para que se admita una señal muestreada de forma no uniforme, el intervalo de tiempo medio y el intervalo de tiempo medio deben obedecer

1100<Median time intervalMean time interval<100.

Ejemplo: es una señal de dos canales que consiste en sinusoides incrustados en ruido blanco.cos(pi./[4;2]*(0:159))'+randn(160,2)

Ejemplo: especifica una variable aleatoria de dos canales muestreada a 1 Hz durante 4 segundos.timetable(seconds(0:4)',rand(5,2))

Ejemplo: especifica una variable aleatoria de dos canales muestreada a 1 Hz durante 4 segundos.timetable(seconds(0:4)',rand(5,1),rand(5,1))

Tipos de datos: single | double
Soporte de números complejos:

Frecuencia de muestreo, especificada como un escalar numérico positivo.

Valores de tiempo, especificados como vector, a o array, o un escalar que representa el intervalo de tiempo entre las muestras.datetimedurationduration

Ejemplo: es unaseconds(0:1/100:1) duration matriz que representa 1 segundo de muestreo a 100 Hz.

Ejemplo: es unaseconds(1) duration escalar que representa una diferencia de tiempo de 1 segundo entre muestras de señal consecutivas.

Tipo de espectro a calcular, especificado como, o:'power''spectrogram''persistence'

  • — Calcular el espectro de potencia de la entrada.'power' Utilice esta opción para analizar el contenido de frecuencia de una señal estacionaria. Consulte para obtener más información.Cálculo del espectro

  • — Calcular el espectrograma de la entrada.'spectrogram' Utilice esta opción para analizar cómo cambia el contenido de frecuencia de una señal con el tiempo. Consulte para obtener más información.El cálculo del espectrograma

  • : Permite calcular el espectro de potencia de persistencia de la entrada.'persistence' Utilice esta opción para visualizar la fracción de tiempo que un componente de frecuencia particular está presente en una señal. Consulte para obtener más información.Cálculo del espectro de persistencia

Nota

Las opciones y no admiten la entrada multicanal.'spectrogram''persistence'

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: Windows los datos mediante una ventana rectangular, calcula una estimación de espectro reasignada y establece todos los valores menores que – 35 dB a cero.'Leakage',1,'Reassigned',true,'MinThreshold',-35

Límites de banda de frecuencias, especificados como el par separado por comas que consta de un vector numérico de dos elementos:'FrequencyLimits'

  • Si la entrada contiene información de tiempo, la banda de frecuencias se expresa en Hz.

  • Si la entrada no contiene información de tiempo, la banda de frecuencias se expresa en unidades normalizadas de Rad/sample.

Por defecto, calcula el espectro sobre toda la gama Nyquist:pspectrum

  • Si la banda de frecuencias especificada contiene una región que se encuentra fuera del rango de Nyquist, trunca la banda de frecuencias.pspectrum

  • Si la banda de frecuencias especificada se encuentra completamente fuera de la gama Nyquist, se produce un error.pspectrum

Consulte para obtener más información sobre la gama Nyquist.Cálculo del espectro

Si se muestrea de forma no uniforme, a continuación, interpolar linealmente la señal a una rejilla uniforme y define una frecuencia de muestreo eficaz igual a la inversa de la mediana de las diferencias entre los puntos de tiempo adyacentes.xpspectrum Expresa en términos de la tasa de muestreo efectiva.'FrequencyLimits'

Ejemplo: calcula el espectro de una señal sin información de tiempo de 0,2[0.2*pi 0.7*pi]π a 0,7π RAD/sample.

Ancho de banda de resolución de frecuencia, especificado como el par separado por comas que consta de y un escalar numérico real, expresado en Hz si la entrada contiene información de tiempo, o en unidades normalizadas de Rad/Sample si no.'FrequencyResolution' Este argumento no se puede especificar simultáneamente.'TimeResolution' El valor predeterminado de este argumento depende del tamaño de los datos de entrada. Ver para más detalles.El cálculo del espectrograma

Ejemplo: calcula el espectro de una señal sin información de tiempo con una resolución de frecuencia depi/100 π/100 rad/sample.

Fuga espectral, especificada como el par separado por comas que consta de un escalar numérico real entre 0 y 1. controla la atenuación mínimos de la ventana Kaiser en relación con el ancho del lóbulo principal, comprometiendo la mejora de la resolución y la disminución de fugas:'Leakage''Leakage'

  • Un gran valor de fuga resuelve tonos muy espaciados, pero enmascara los tonos débiles cercanos.

  • Un pequeño valor de fuga encuentra pequeños tonos en las proximidades de tonos más grandes, pero frotan las frecuencias cercanas juntas.

Ejemplo: reduce la fuga a un mínimo a expensas de la resolución espectral.'Leakage',0

Ejemplo: aproxima las ventanas de los datos con una ventana de Hann.'Leakage',0.85

Ejemplo: equivale a ventanas los datos con una ventana rectangular, maximizando la fuga pero mejorando la resolución espectral.'Leakage',1

Límite inferior para valores distintos de cero, especificado como el par separado por comas que consta de un escalar real. implementa de forma diferente en función del valor del argumento:'MinThreshold'pspectrum'MinThreshold'type

  • o — establece esos elementos de tal que 10 log'power''spectrogram'pspectrump10() ≤ a cero.p'MinThreshold' Especifique en decibelios.'MinThreshold'

  • : establece los elementos de menor a cero.'persistence'pspectrump'MinThreshold' Especifique entre 0 y 100%.'MinThreshold'

Número de bandejas de alimentación para el espectro de persistencia, especificado como el par separado por comas que consta de un entero entre 20 y 1024.'NumPowerBins'

Superposición entre segmentos adyacentes para espectrograma o espectro de persistencia, especificado como el par separado por comas que consta de y un escalar real en el intervalo [0, 100).'OverlapPercent' El valor predeterminado de este argumento depende de la ventana espectral. Ver para más detalles.El cálculo del espectrograma

Opción de reasignación, especificada como el par separado por comas que consta de un valor lógico.'Reassign' Si esta opción está establecida en, a continuación, agudiza la localización de las estimaciones espectrales mediante la realización de reasignación de tiempo y frecuencia.truepspectrum La técnica de reasignación produce periodogramas y espectrogramas que son más fáciles de leer e interpretar. Esta técnica reasigna cada estimación espectral al centro de energía de su contenedor en lugar del centro geométrico de la papelera. La técnica proporciona una localización exacta para los cantos y los impulsos.

Resolución de tiempo de espectrograma o espectro de persistencia, especificado como el par separado por comas que consta de un escalar real, expresado en segundos si la entrada contiene información de tiempo, o como un número entero de muestras si no.'TimeResolution' Este argumento controla la duración de los segmentos utilizados para calcular los espectros de potencia a corto plazo que forman espectrograma o estimaciones de espectro de persistencia. no se puede especificar simultáneamente.'TimeResolution''FrequencyResolution' El valor predeterminado de este argumento depende del tamaño de los datos de entrada y, si se especificó, la resolución de frecuencia. Ver para más detalles.El cálculo del espectrograma

Argumentos de salida

contraer todo

Spectrum, devuelto como un vector o una matriz. El tipo y tamaño del espectro depende del valor del argumento:type

  • — contiene la estimación del espectro de potencia de cada canal de.'power'px En este caso, es de tamañopNf ×NchDóndeNf es la longitud yfNch es el número de canales de.x

  • — contiene una estimación del espectro de potencia a corto plazo y localizada en el tiempo.'spectrogram'px En este caso, es de tamañopNf ×NtDóndeNf es la longitud yfNt es la longitud de.t

  • — contiene, expresado como porcentajes, las probabilidades de que la señal tenga componentes de un nivel de potencia determinado en un momento y una ubicación de frecuencia determinada.'persistence'p En este caso, es de tamañopNpwr ×NfDóndeNpwr es la longitud ypwrNf es la longitud de.f

Frecuencias del espectro, devueltas como vector. Si la señal de entrada contiene información de tiempo, entonces contiene frecuencias expresadas en Hz.f Si la señal de entrada no contiene información de tiempo, entonces las frecuencias están en unidades normalizadas de Rad/sample.

Valores de tiempo del espectrograma, devueltos como un vector de valores de tiempo en segundos o una matriz.duration Si la entrada no tiene información de tiempo, entonces contiene números de muestra. contiene los valores de tiempo correspondientes a los centros de los segmentos de datos utilizados para calcular estimaciones de espectro de potencia a corto plazo.tt

  • Si la entrada es un horario, tiene el mismo formato que los valores de tiempo del calendario de entrada.pspectrumt

  • Si la entrada es un vector numérico muestreado en un conjunto de instantes de tiempo especificado por un Numeric, o array, entonces tiene el mismo tipo y formato que los valores de tiempo de entrada.pspectrumdurationdatetimet

  • Si la entrada es un vector numérico con una diferencia horaria especificada entre muestras consecutivas, entonces es una matriz.pspectrumtduration

Valores de potencia del espectro de persistencia, devueltos como vector.

Más acerca de

contraer todo

Cálculo del espectro

Para computar espectros de señal, encuentra un compromiso entre la resolución espectral alcanzable con toda la longitud de la señal y las limitaciones de rendimiento que resultan de la computación de grandes FFTs:pspectrum

  • Si es posible, la función computa un solo periodograma modificado de toda la señal utilizando una ventana de Kaiser.

  • Si no es posible calcular un solo periodograma modificado en un tiempo razonable, la función computa un periodograma Welch: Divide la señal en segmentos superpuestos, ventanas cada segmento usando una ventana de Kaiser, y promedia los periodogramas de los segmentos.

Spectral Windowing

Cualquier señal del mundo real es medible sólo por un período de tiempo finito. Este hecho introduce efectos no insignificantes en el análisis de Fourier, que asume que las señales son periódicas o infinitamente largas. , que asigna diferentes pesos a diferentes muestras de señal, se encarga sistemáticamente de los efectos de tamaño finito.Las ventanas espectrales

La forma más sencilla de ventana de una señal es suponer que es idéntica a cero fuera del intervalo de medición y que todas las muestras son igualmente significativas. Esta "ventana rectangular" tiene saltos discontinuos en ambos extremos que resultan en el timbre espectral. Todas las demás ventanas espectrales se estrechan en ambos extremos para reducir este efecto asignando pesos más pequeños a las muestras cercanas a los bordes de la señal.

El proceso de ventanas siempre implica un compromiso entre objetivos conflictivos: mejorar la resolución y disminuir las fugas:

  • es la capacidad de saber con precisión cómo se distribuye la energía de la señal en el espacio de frecuencias.Resolución Un analizador de espectro con resolución ideal puede distinguir dos tonos diferentes (sinusoides puros) presentes en la señal, sin importar cuán cerca esté la frecuencia. Cuantitativamente, esta capacidad se relaciona con el ancho del lóbulo principal de la transformación de la ventana.

  • es el hecho de que, en una señal finita, cada componente de frecuencia proyecta contenido energético a lo largo del intervalo de frecuencias completo.Fuga La cantidad de fugas en un espectro se puede medir por la capacidad de detectar un tono débil del ruido en presencia de un tono fuerte vecino. Cuantitativamente, esta capacidad se relaciona con el nivel de mínimos de la transformación de frecuencia de la ventana.

Cuanto mejor sea la resolución, mayor será la fuga y viceversa. En un extremo del rango, una ventana rectangular tiene el lóbulo principal más estrecho posible y el margen más alto. Esta ventana puede resolver tonos muy espaciados si tienen un contenido energético similar, pero no encuentra el más débil si no lo hace. En el otro extremo, una ventana con supresión de alta mínimos tiene un amplio lóbulo principal en el que las frecuencias cercanas se untan juntos.

utiliza ventanas Kaiser para realizar ventanas.pspectrum Para las ventanas de Kaiser, la fracción de la energía de la señal capturada por el lóbulo principal depende más importante de un ajustable,. utiliza factores de forma que van desdefactor de formaβpspectrum β = 0, que corresponde a una ventana rectangular, para β = 40, donde un amplio lóbulo principal capta esencialmente toda la energía espectral que se puede representar en doble precisión. Un valor intermedio de β ≈ 6 aproxima una ventana de Hann muy de cerca. Para controlar, utilice el par nombre-valor.β'Leakage' Si se establece en, a continuación, y se relacionan por'Leakage'β β = 40(1 – ). Vea para más detalles.kaiser

ventana de Hann de 51 puntos y ventana de Kaiser de 51 puntos con β = 5.7 en el dominio de tiempoventana de Hann de 51 puntos y ventana de Kaiser de 51 puntos con β = 5.7 en el dominio de frecuencia

Parameter and Algorithm Selection

Para calcular los espectros de señal, determina inicialmente el, que mide cuán cerca pueden estar dos tonos y aún se resuelven.pspectrumancho de banda de resolución El ancho de banda de resolución tiene un valor teórico de

RBWtheory=ENBWtmaxtmin.

  • tmax – tmin, el, es la duración del dominio de tiempo de la región de la señal seleccionada.longitud récord

  • ENBW es el de la ventana espectral.ancho de banda de ruido equivalente Vea para más detalles.enbw

    Utilice el par nombre-valor para controlar el ENBW.'Leakage' El valor mínimo del argumento corresponde a una ventana de Kaiser con β = 40. El valor máximo corresponde a una ventana de Kaiser con β = 0.

En la práctica, sin embargo, podría disminuir la resolución.pspectrum La reducción de la resolución hace posible calcular el espectro en un tiempo razonable y mostrarlo con un número finito de píxeles. Por estas razones prácticas, el ancho de banda de resolución más bajo puede utilizar espspectrum

RBWperformance=4×fspan40961,

Dónde fspan es el ancho de la banda de frecuencias especificada utilizando.'FrequencyLimits' Si no se especifica, utiliza la frecuencia de muestreo como'FrequencyLimits'pspectrum fspan. RBWperformance no se puede ajustar.

Para calcular el espectro de una señal, la función elige el mayor de los dos valores, llamados:ancho de banda de resolución de destino

RBW=max(RBWtheory,RBWperformance).

  • Si el ancho de banda de resolución es RBWtheory, luego calcula un solo para toda la señal.pspectrumperiodograma modificado La función utiliza una ventana de Kaiser con el factor de forma controlado por el par nombre-valor y aplica el relleno cero cuando los límites de tiempo en los ejes superan la duración de la señal.'Leakage' Vea para más detalles.periodogram

  • Si el ancho de banda de resolución es RBWperformance, a continuación, calcula un para la señal.pspectrumEl periodograma Welch La función:

    1. Divide las señales en segmentos superpuestos.

    2. Windows cada segmento por separado utilizando una ventana de Kaiser con el factor de forma especificado.

    3. Promedios de los periodogramas de todos los segmentos.

    El procedimiento de Welch está diseñado para reducir la varianza de la estimación del espectro al promediar diferentes "realizaciones" de las señales, dadas por las secciones superpuestas, y utilizando la ventana para eliminar datos redundantes. Vea para más detalles.pwelch

    • La longitud de cada segmento (o, de manera equivalente, de la ventana) se calcula mediante

      Segment length=fNyquist×ENBWRBW,

      Dónde fNyquist es el.La frecuencia Nyquist (Si no hay aliasing, la frecuencia Nyquist es la mitad de la tasa de muestreo efectiva, definida como la inversa de la mediana de las diferencias entre los puntos de tiempo adyacentes. El esLa gama Nyquist [0, fNyquist] para señales reales y [–fNyquist, fNyquist] para señales complejas.)

    • La longitud de zancada se encuentra ajustando una estimación inicial,

      Stride lengthSegment lengthOverlap=Segment length2×ENBW1,

      para que la primera ventana se inicie exactamente en la primera muestra del primer segmento y la última ventana finalice exactamente en la última muestra del último segmento.

El cálculo del espectrograma

Para calcular el espectro dependiente del tiempo de una señal no estacionaria, divide la señal en segmentos superpuestos, Windows cada segmento con una ventana de Kaiser, calcula la transformada de Fourier a corto plazo y, a continuación, conmemora las transformaciones para formar una matriz.pspectrum

Una señal no estacionaria es una señal cuyo contenido de frecuencia cambia con el tiempo. El de una señal no estacionaria es una estimación de la evolución del tiempo de su contenido de frecuencia.Espectrograma Para construir el espectrograma de una señal no estacionaria, sigue estos pasos:pspectrum

  1. Divida la señal en segmentos de igual longitud. Los segmentos deben ser lo suficientemente cortos como para que el contenido de frecuencia de la señal no cambie sensiblemente dentro de un segmento. Los segmentos pueden o no superponerse.

  2. Ventana de cada segmento y calcular su espectro para obtener el.corta duración de la transformada de Fourier

  3. Utilice los espectros de segmento para construir el espectrograma:

    • Si se llama con argumentos de salida, concatenar los espectros para formar una matriz.

    • Si se llama sin argumentos de salida, Mostrar la potencia de cada espectro en decibelios segmento por segmento. Represente las magnitudes en paralelo como una imagen con un mapa de colores dependiente de la magnitud.

La función puede computar el espectrograma sólo para señales de un solo canal.

Divide Signal into Segments

Para construir un espectrograma, primero divida la señal en segmentos posiblemente solapados. Con la función, puede controlar la longitud de los segmentos y la cantidad de superposición entre los segmentos adyacentes mediante los argumentos de par nombre-valor.pspectrum'TimeResolution''OverlapPercent' Si no se especifica la longitud y la superposición, la función elige una longitud basada en la longitud completa de la señal y un porcentaje de superposición dado por

(112×ENBW1)×100,

Dónde ENBW es el de la ventana espectral.ancho de banda de ruido equivalente Consulte y para obtener más información.enbwCálculo del espectro

Specified Time Resolution

  • Si la señal no tiene información de tiempo, especifique la resolución de tiempo (longitud de segmento) en las muestras. La resolución de tiempo debe ser un número entero mayor o igual que 1 y menor o igual que la longitud de la señal.

    Si la señal tiene información de tiempo, especifique la resolución de tiempo en segundos. La función convierte el resultado en un número de ejemplos y lo redondea al entero más cercano que es menor o igual que el número pero no menor que 1. La resolución de tiempo debe ser menor o igual que la duración de la señal.

  • Especifique la superposición como un porcentaje de la longitud del segmento. La función convierte el resultado en un número de ejemplos y lo redondea al entero más cercano que sea menor o igual que el número.

Default Time Resolution

Si no especifica una resolución de tiempo, utiliza la longitud de toda la señal para elegir la longitud de los segmentos.pspectrum La función establece la resolución de tiempo como N/d muestras, donde el ⌈⌉ símbolos denotan la función de techo, es la longitud de la señal, y es un divisor que depende de:NdN

Longitud de la señal ()NDivisor ()dLongitud del segmento
muestras – muestras2632muestra – muestras132
muestras – muestras642558muestras – muestras832
muestras – muestras25620478muestras – muestras32256
muestras – muestras2048409516muestras – muestras128256
muestras – muestras4096819132muestras – muestras128256
muestras – muestras81921638364muestras – muestras128256
muestras – muestras16384N128muestras – ⌈/⌉ samples128N128

Todavía puede especificar la superposición entre los segmentos adyacentes. Al especificar la superposición, se cambia el número de segmentos. Los segmentos que se extienden más allá del punto final de señal tienen relleno cero.

Considere la señal de siete muestras.[s0 s1 s2 s3 s4 s5 s6] porque ⌈7/2⌉ = ⌈3.5⌉ = 4, la función divide la señal en dos segmentos de longitud cuatro cuando no hay solapamiento. El número de segmentos cambia a medida que aumenta la superposición.

Número de muestras superpuestasLos segmentos resultantes
0
s0 s1 s2 s3             s4 s5 s6 0
1
s0 s1 s2 s3          s3 s4 s5 s6
2
s0 s1 s2 s3       s2 s3 s4 s5             s4 s5 s6 0
3
s0 s1 s2 s3    s1 s2 s3 s4       s2 s3 s4 s5          s3 s4 s5 s6

cero-pads la señal si el último segmento se extiende más allá del punto final de la señal.pspectrum La función retorna, un vector de instantes de tiempo correspondiente a los centros de los segmentos.t

Window the Segments and Compute Spectra

Después de dividir la señal en segmentos superpuestos, las ventanas de función cada segmento con una ventana de Kaiser.pspectrum El factor de forma de la ventana, y por lo tanto la fuga, se puede ajustar usando el par nombre-valor.β'Leakage' A continuación, la función calcula el espectro de cada segmento y conmemora los espectros para formar la matriz del espectrograma. Para calcular los espectros de segmento, siga el procedimiento descrito en, excepto que el límite inferior del ancho de banda de resolución espspectrumCálculo del espectro

RBWperformance=4×fspan10241.

Display Spectrum Power

Si se llama sin argumentos de salida, la función muestra la potencia de la transformada de Fourier a corto plazo en decibelios, utilizando una barra de color con el mapa de colores predeterminado.MATLAB La barra de color comprende todo el rango de potencia del espectrograma.

Cálculo del espectro de persistencia

La de una señal es una vista de frecuencia de tiempo que muestra el porcentaje del tiempo que una frecuencia dada está presente en una señal.espectro de persistencia El espectro de persistencia es un histograma en el espacio de frecuencia de potencia. Cuanto más larga una frecuencia en particular persiste en una señal a medida que la señal evoluciona, mayor es su porcentaje de tiempo y por lo tanto el más brillante o "más caliente" su color en la pantalla. Utilice el espectro de persistencia para identificar señales ocultas en otras señales.

Para calcular el espectro de persistencia, realice estos pasos:pspectrum

  1. Calcule el espectrograma utilizando la fuga especificada, la resolución de tiempo y la superposición. Vea para más detalles.El cálculo del espectrograma

  2. Particionar los valores de potencia y frecuencia en bins 2-D. (Utilice el par nombre-valor para especificar el número de bandejas de alimentación.)'NumPowerBins'

  3. Para cada valor de tiempo, calcule un histograma bivariado del logaritmo del espectro de potencia. Para cada bin de frecuencia de potencia donde hay energía de señal en ese instante, aumente el elemento de matriz correspondiente en 1. Sume los histogramas para todos los valores de tiempo.

  4. Graficar el histograma acumulado contra la potencia y la frecuencia, con el color proporcional al logaritmo de los recuentos de histograma expresados como porcentajes normalizados. Para representar valores cero, utilice la mitad de la menor magnitud posible.

Power Spectra

Histograms

Accumulated Histogram

Referencias

[1] harris, fredric j. “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform.” Proceedings of the IEEE®. Vol. 66, January 1978, pp. 51–83.

[2] Welch, Peter D. “The Use of Fast Fourier Transform for the Estimation of Power Spectra: A Method Based on Time Averaging Over Short, Modified Periodograms.” IEEE Transactions on Audio and Electroacoustics. Vol. 15, June 1967, pp. 70–73.

Consulte también

Aplicaciones

Funciones

Introducido en R2017b