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

Analizar 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 calendario con un vector de datos, entonces se trata como un solo canal.x

  • Si es una matriz, un calendario con una variable de matriz o un calendario con varias variables vectoriales, el espectro se calcula de forma independiente para cada canal y se almacena en una columna independiente de .xp

ejemplo

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

ejemplo

p = pspectrum(x,t) devuelve el espectro de potencia de una señal vectorial o de 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 superposición entre los segmentos adyacentes.

ejemplo

[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 correspondiente a los centros de los segmentos con ventanas utilizados para calcular estimaciones de espectro de potencia de 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 figura actual.

Ejemplos

contraer todo

Calcular el espectro de potencia de un sinusoides ruidoso. Especifique una frecuencia sinusoides de 200 Hz. Muestre el sinusoides a 1 kHz durante 296 milisegundos. Incruste la señal en ruido gaussiano blanco de varianza 0,12. Almacene la señal y su información de tiempo en un horario 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);

Calcular el espectro de la señal. Expresar el espectro en decibelios y trazarlo.

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

Recalcula el espectro de potencia del sinusoides, pero ahora usa una resolución de frecuencia más gruesa de 25 Hz. Trazar el espectro utilizando la función sin argumentos de salida.pspectrum

pspectrum(xTable,'FrequencyResolution',25)

Genere dos señales, cada una muestreada a 3 kHz durante 1 segundo. La primera señal es un chirrido cuadrático convexo cuya frecuencia aumenta de 300 Hz a 1300 Hz durante la medición. El chirp está incrustado en ruido gaussiano blanco. La segunda señal, también incrustada en ruido blanco, es un chirp con contenido de frecuencia sinusoidalmente variable.

fs = 3000; t = 0:1/fs:1-1/fs;  x1 = chirp(t,300,t(end),1300,'quadratic',0,'convex') + ...     randn(size(t))/100;  x2 = exp(2j*pi*100*cos(2*pi*2*t)) + randn(size(t))/100;

Calcular y trazar el espectro de potencia de dos lados de la primera señal utilizando una ventana rectangular. Para las señales reales, traza un espectro unilateral de forma predeterminada.pspectrum Para trazar un espectro de dos lados, establezca en true.TwoSided

pspectrum(x1,fs,'Leakage',1,'TwoSided',true)

Calcular el espectrograma de la segunda señal. Para señales complejas, el espectrograma es de dos lados por defecto. Muestre el espectrograma como una gráfica de cascada.

[p,f,t] = pspectrum(x2,fs,'spectrogram');  waterfall(f,t,p'); xlabel('Frequency (Hz)') ylabel('Time (seconds)') wtf = gca; wtf.XDir = 'reverse'; view([30 45])

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

  1. El primer canal consta de un tono de 20 Hz y un tono de 21 Hz. Ambos tonos tienen amplitud unitaria.

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

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

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

Calcula los espectros de los dos canales y muéstralos.

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 los lóbulos laterales de la 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 chirrido muestreado a 1 kHz durante 500 segundos. La frecuencia del chirrido 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 un sinusoides de 210 Hz. El sinusoides 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);

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

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

Calcular el espectro de potencia de la señal. El sinusoides débil está oscurecido por el chirrido.

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

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

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

Genere un chirrido 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 Calcular 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)')

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

Calcular 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 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);

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

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 archivo .MATLAB®timetable

  • Si es un calendario, debe contener tiempos de fila finitos crecientes.x

    Nota

    Si falta un horario o se duplican los puntos de tiempo, puede corregirlo con las sugerencias de .Clean Timetable with Missing, Duplicate, or Nonuniform Times

  • Si es un calendario que representa una señal multicanal, debe tener una sola variable que contenga una matriz o varias variables que consistan en vectores.x

Si se muestrea de forma no uniforme, interpola la señal a una cuadrícula uniforme para calcular las estimaciones espectrales.xpspectrum La función utiliza 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 escalar numérico positivo.

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

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

Ejemplo: es unseconds(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.Cálculo del espectrograma

  • — 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 determinado está presente en una señal. Consulte para obtener más información.Cálculo del espectro de persistencia

Nota

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

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

Límites de banda de frecuencia, 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 frecuencia se expresa en Hz.

  • Si la entrada no contiene información de tiempo, la banda de frecuencia se expresa en unidades normalizadas de rad/muestra.

De forma predeterminada, calcula el espectro en toda la gama Nyquist:pspectrum

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

  • Si la banda de frecuencia especificada se encuentra completamente fuera del rango Nyquist, entonces 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, interpola linealmente la señal a una cuadrícula uniforme y define una frecuencia de muestreo efectiva igual a la inversa de la mediana de las diferencias entre los puntos de tiempo adyacentes.xpspectrum Expresar en términos de la frecuencia 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/muestra.

Ancho de banda de resolución de frecuencia, especificado como el par separado por comas que consta de un escalar numérico real, expresado en Hz si la entrada contiene información de tiempo, o en unidades normalizadas de rad/muestra si no.'FrequencyResolution' Este argumento no se puede especificar simultáneamente con .'TimeResolution' El valor predeterminado de este argumento depende del tamaño de los datos de entrada. Consulte para obtener más información.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 y un escalar numérico real entre 0 y 1. controla la atenuación del lóbulo lateral de la ventana Kaiser en relación con el ancho del lóbulo de la dosis, comprometiendo entre mejorar la resolución y disminuir las fugas:'Leakage''Leakage'

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

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

Ejemplo: reduce las fugas al mínimo a expensas de la resolución espectral.'Leakage',0

Ejemplo: se aproxima a la ventana de los datos con una ventana Hann.'Leakage',0.85

Ejemplo: equivale a ventanar los datos con una ventana rectangular, maximizando las fugas 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 y un escalar real. implementa de manera diferente en función del valor del argumento:'MinThreshold'pspectrum'MinThreshold'type

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

  • : establece los elementos de menor que 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 y 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. Consulte para obtener más información.Cálculo del espectrograma

Opción de reasignación, especificada como el par separado por comas que consta de y un valor lógico.'Reassign' Si esta opción se establece en , a continuación, agudiza la localización de estimaciones espectrales mediante la realización de la 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 del contenedor. La técnica proporciona localización exacta para chirridos e impulsos.

Resolución de tiempo del 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 de corto plazo que forman estimaciones de espectrograma o espectro de persistencia. no se puede especificar simultáneamente con .'TimeResolution''FrequencyResolution' El valor predeterminado de este argumento depende del tamaño de los datos de entrada y, si se especificó, de la resolución de frecuencia. Consulte para obtener más información.Cálculo del espectrograma

Estimación espectral de dos lados, especificada como el par separado por comas que consta de un valor lógico.'TwoSided'

  • Si esta opción es , la función calcula las estimaciones de espectro centrado sintrue [–π, π]. Si la entrada tiene información de tiempo, las estimaciones se calculan [–fs/2, fs/2]Dóndefs es la frecuencia de muestreo efectiva.

  • Si esta opción es , la función calcula estimaciones de espectro unilaterales sobre el rango Nyquistfalse [0, π]. Si la entrada tiene información de tiempo, las estimaciones se calculan [0, fs/2]Dóndefs es la frecuencia de muestreo efectiva. Para conservar la potencia total, la función mimúde la potencia en 2 en todas las frecuencias excepto 0 y la frecuencia Nyquist. Esta opción solo es válida para señales reales.

Si no se especifica, el valor predeterminado es para las señales de entrada reales y para las señales de entrada complejas.'TwoSided'falsetrue

Argumentos de salida

contraer todo

Spectrum, devuelto como vector o matriz. El tipo y el 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 de yfNch es el número de canales de .x

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

  • — contiene, expresados 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 determinados.'persistence'p En este caso, es de tamañopNpwr ×NfDóndeNpwr es la longitud de ypwrNf es la longitud de .f

Frecuencias de 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, las frecuencias están en unidades normalizadas de rad/muestra.

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

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

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

  • Si la entrada a es un vector numérico con una diferencia de tiempo 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 calcular los 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 FFT grandes:pspectrum

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

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

Ventanas espectrales

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

La forma más sencilla de aselaren una señal es asumir que es idénticamente 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 dan como resultado un timbre espectral. Todas las demás ventanas espectrales se estrechan en ambos extremos para disminuir este efecto asignando pesos más pequeños a las muestras cercanas a los bordes de la señal.

El proceso de ventanasiempre implica un compromiso entre objetivos contradictorios: 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 frecuencia.Resolución Un analizador de espectro con resolución ideal puede distinguir dos tonos diferentes (sinusoidos puros) presentes en la señal, sin importar cuán cerca esté en 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 de energía a lo largo de todo el intervalo de frecuencia.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 del lóbulo lateral de la transformación de frecuencia de la ventana.

Cuanto mejor sea la resolución, mayor será la fuga y viceversa. En un extremo de la gama, una ventana rectangular tiene el lóbulo principal más estrecho posible y los lóbulos laterales más altos. Esta ventana puede resolver tonos estrechamente espaciados si tienen un contenido de energía similar, pero no encuentra el más débil si no lo hacen. En el otro extremo, una ventana con supresión de lóbulo lateral alto tiene un amplio lóbulo principal en el que las frecuencias cercanas se unen.

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

Ventana Hann de 51 puntos y ventana Kaiser de 51 puntos con β = 5.7 en el dominio del tiempoVentana Hann de 51 puntos y ventana Kaiser de 51 puntos con β = 5.7 en el dominio de frecuencia

Selección de parámetros y algoritmos

Para calcular los espectros de señal, determina inicialmente el , que mide qué tan cerca se pueden y aún se resuelven dos tonos.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 señal seleccionada.duración del récord

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

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

En la práctica, sin embargo, podría reducir la resolución.pspectrum La reducción de la resolución permite 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 frecuencia especificada utilizando .'FrequencyLimits' Si no se especifica, entonces 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, denominado :ancho de banda de resolución objetivo

RBW=max(RBWtheory,RBWperformance).

  • Si el ancho de banda de resolución es RBWtheory, a continuación, calcula una sola para toda la señal.pspectrumperiododegrafía modificada La función utiliza una ventana Kaiser con factor de forma controlado por el par nombre-valor y aplica cero relleno cuando los límites de tiempo en los ejes exceden la duración de la señal.'Leakage' Consulte para obtener más detalles.periodogram

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

    1. Divide las señales en segmentos superpuestos.

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

    3. Promedio de los periodogramas de todos los segmentos.

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

    • La longitud de cada segmento (o, equivalentemente, de la ventana) se calcula utilizando

      Segment length=fNyquist×ENBWRBW,

      Dónde fNyquist es el archivo .Frecuencia Nyquist (Si no hay alias, la frecuencia Nyquist es la mitad de la frecuencia de muestreo efectiva, definida como la inversa de la mediana de las diferencias entre los puntos de tiempo adyacentes. El esGama 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 comience exactamente en la primera muestra del primer segmento y la última ventana termine exactamente en la última muestra del último segmento.

Cálculo del espectrograma

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

Una señal no estacionaria es una señal cuyo contenido de frecuencia cambia con el tiempo. La señal de una señal no estacionaria es una estimación de la evolución temporal de su contenido de frecuencia.Espectrograma Para construir el espectrograma de una señal no estacionaria, siga 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 apreciablemente dentro de un segmento. Los segmentos pueden o no superponerse.

  2. Ventana cada segmento y calcular su espectro para obtener el archivo .corto plazo Transformación 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, muestre la potencia de cada espectro en decibelios segmento por segmento. Representa las magnitudes en paralelo como una imagen con un mapa de colores dependiente de la magnitud.

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

Dividir señal en segmentos

Para construir un espectrograma, primero divida la señal en segmentos posiblemente superpuestos. 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 especifica la longitud y la superposición, la función elige una longitud basada en toda la longitud de la señal y un porcentaje de solapamiento dado por

(112×ENBW1)×100,

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

Resolución de tiempo especificada

  • Si la señal no tiene información de tiempo, especifique la resolución de tiempo (longitud del segmento) en las muestras. La resolución de tiempo debe ser un 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 muestras 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 muestras y lo redondea al entero más cercano que es menor o igual que el número.

Resolución de tiempo predeterminada

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 – muestras de128N128

Todavía puede especificar la superposición entre los segmentos adyacentes. Especificar la superposición cambia el número de segmentos. Los segmentos que se extienden más allá del punto final de la señal están acolchados sin 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 superposición. El número de segmentos cambia a medida que aumenta la superposición.

Número de muestras superpuestasSegmentos 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 devuelve , un vector de instantes de tiempo correspondiente a los centros de los segmentos.t

Ventana de los segmentos y espectros de cálculo

Después de dividir la señal en segmentos superpuestos, la función windows cada segmento con una ventana Kaiser.pspectrum El factor de forma de la ventana, y por lo tanto la fuga, se puede ajustar utilizando el par nombre-valor.β'Leakage' A continuación, la función calcula el espectro de cada segmento y concatena los espectros para formar la matriz de espectrogramas. 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.

Potencia del espectro de la pantalla

Si se llama sin argumentos de salida, la función muestra la potencia de la transformación de Fourier de corta distancia en decibelios, utilizando una barra de colores con el mapa de colores predeterminado.MATLAB La barra de color comprende toda la gama de potencia del espectrograma.

Cálculo del espectro de persistencia

La señal de una 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 sea una frecuencia particular persista en una señal a medida que la señal evoluciona, mayor será su porcentaje de tiempo y, por lo tanto, más brillante o "más caliente" será 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, la resolución de tiempo y la superposición especificadas. Consulte para obtener más detalles.Cálculo del espectrograma

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

  3. Para cada valor de tiempo, calcule un histograma bivariado del logaritmo del espectro de potencia. Para cada contenedor 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. Trazar el histograma acumulado contra la potencia y la frecuencia, con el color proporcional al logarithm del histograma cuenta expresado como porcentajes normalizados. Para representar valores cero, utilice la mitad de la magnitud más pequeña posible.

Power Spectra

Histogramas

Histograma acumulado

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

Apps

Funciones

Introducido en R2017b