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.

periodogram

Estimación de densidad espectral de potencia periodograma

Descripción

ejemplo

pxx = periodogram(x) Devuelve la estimación de la densidad espectral de potencia del periodograma (PSD), de la señal de entrada, encontrada utilizando una ventana rectangular.pxxx Cuando es un vector, se trata como un solo canal.x Cuando es una matriz, el PSD se calcula de forma independiente para cada columna y se almacena en la columna correspondiente de.xpxx Si es real-valorado, es una estimación PSD unilateral.xpxx Si es de valor complejo, es una estimación de PSD de dos lados.xpxx El número de puntos, en la transformada de Fourier discreta (DFT) es el máximo de 256 o la siguiente potencia de dos mayores que la longitud de la señal.nfft

ejemplo

pxx = periodogram(x,window) Devuelve la estimación de PSD de periodograma modificada utilizando la ventana,. es un vector de la misma longitud que.windowwindowx

ejemplo

pxx = periodogram(x,window,nfft) utiliza puntos en la transformada de Fourier discreta (DFT).nfft Si es mayor que la longitud de la señal, se rellena con ceros a la longitud.nfftxnfft Si es menor que la longitud de la señal, la señal se envuelve modulo y se suma usando.nfftnfftdatawrap Por ejemplo, la señal de entrada con igual a 4 da como resultado el periodograma de.[1 2 3 4 5 6 7 8]nfftsum([1 5; 2 6; 3 7; 4 8],2)

[pxx,w] = periodogram(___) Devuelve el vector de frecuencia normalizado,.w Si se trata de un periodograma unilateral, abarca el intervalopxxw [0,π] Si es incluso ynfft [0,π) Si es impar.nfft Si se trata de un periodograma de dos lados, abarca el intervalopxxw [0,2π).

ejemplo

[pxx,f] = periodogram(___,fs) Devuelve un vector de frecuencia, en ciclos por unidad de tiempo.f La frecuencia de muestreo, es el número de muestras por unidad de tiempo.fs Si la unidad de tiempo es de segundos, entonces está en ciclos/segundo (Hz).f Para las señales de valor real, abarca el intervalo [0,/2] cuando es par y [0,/2) cuando es impar.ffsnfftfsnfft Para las señales con valores complejos, abarca el intervalo [0,). debe ser la cuarta entrada.ffsfsperiodogram Para introducir una frecuencia de muestreo y seguir utilizar los valores predeterminados de los argumentos opcionales anteriores, especifique estos argumentos como vacíos,.[]

ejemplo

[pxx,w] = periodogram(x,window,w) Devuelve las estimaciones de periodograma de dos lados en las frecuencias normalizadas especificadas en el vector,. debe contener al menos dos elementos, porque de lo contrario la función lo interpreta como.wwnfft

ejemplo

[pxx,f] = periodogram(x,window,f,fs) Devuelve las estimaciones de periodograma de dos lados a las frecuencias especificadas en el vector. El vector debe contener al menos dos elementos, porque de lo contrario la función lo interpreta como.fnfft Las frecuencias en están en ciclos por unidad de tiempo.f La frecuencia de muestreo, es el número de muestras por unidad de tiempo.fs Si la unidad de tiempo es de segundos, entonces está en ciclos/segundo (Hz).f

ejemplo

[___] = periodogram(x,window,___,freqrange) Devuelve el periodograma sobre el rango de frecuencias especificado por.freqrange Las opciones válidas para son:,, o.freqrange'onesided''twosided''centered'

ejemplo

[___,pxxc] = periodogram(___,'ConfidenceLevel',probability) Devuelve los intervalos de confianza × 100% para la estimación PSD en.probabilitypxxc

[rpxx,f] = periodogram(___,'reassigned') reasigna cada estimación de PSD a la frecuencia más cercana a su centro de energía. contiene la suma de las estimaciones reasignadas a cada elemento de.rpxxf

ejemplo

[rpxx,f,pxx,fc] = periodogram(___,'reassigned') también devuelve las estimaciones de PSD no reasignadas y las frecuencias de centro de energía,.pxxfc Si utiliza la marca, no puede especificar un intervalo de confianza.'reassigned'probability

ejemplo

[___] = periodogram(___,spectrumtype) Devuelve la estimación PSD si se especifica como y devuelve el espectro de potencia si se especifica como.spectrumtype'psd'spectrumtype'power'

ejemplo

periodogram(___) sin argumentos de salida traza la estimación de PSD de periodograma en dB por frecuencia de unidad en la ventana de la figura actual.

Ejemplos

contraer todo

Obtener el periodograma de una señal de entrada consistente en una sinusoide de tiempo discreto con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
RAD/sample con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco.

Cree una onda sinusoidal con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
RAD/sample con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. La señal es 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular predeterminada y la longitud de DFT. La longitud de DFT es la siguiente potencia de dos mayores que la longitud de la señal, o 512 puntos. Debido a que la señal es real-valorada y tiene una longitud incluso, el periodograma es unilateral y hay 512/2 + 1 puntos.

n = 0:319; x = cos(pi/4*n)+randn(size(n)); [pxx,w] = periodogram(x); plot(w,10*log10(pxx))

Repita el trazado utilizando sin salidas.periodogram

periodogram(x)

Obtener el periodograma modificado de una señal de entrada consistente en una sinusoide de tiempo discreto con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
radianes/muestra con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco.

Cree una onda sinusoidal con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
radianes/muestra con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. La señal es 320 muestras de longitud. Obtener el periodograma modificado utilizando una ventana de Hamming y la longitud de DFT por defecto. La longitud de DFT es la siguiente potencia de dos mayores que la longitud de la señal, o 512 puntos. Debido a que la señal es real-valorada y tiene una longitud incluso, el periodograma es unilateral y hay 512/2 + 1 puntos.

n = 0:319; x = cos(pi/4*n)+randn(size(n)); periodogram(x,hamming(length(x)))

Obtener el periodograma de una señal de entrada consistente en una sinusoide de tiempo discreto con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
radianes/muestra con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. Utilice una longitud DFT igual a la longitud de la señal.

Cree una onda sinusoidal con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
radianes/muestra con aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. La señal es 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular predeterminada y la longitud de DFT igual a la longitud de la señal. Dado que la señal es de valor real, el periodograma unilateral se devuelve por defecto con una longitud igual a 320/2 + 1.

n = 0:319; x = cos(pi/4*n)+randn(size(n)); nfft = length(x); periodogram(x,[],nfft)

Obtener el periodograma de los datos del número Wolf (punto solar relativo) muestreados anualmente entre 1700 y 1987.

Cargue los datos del número de punto solar relativo. Obtenga el periodograma utilizando la ventana rectangular predeterminada y el número de puntos DFT (512 en este ejemplo). La frecuencia de muestreo de estos datos es de 1 muestra/año. Traza el periodograma.

load sunspot.dat relNums=sunspot(:,2);  [pxx,f] = periodogram(relNums,[],[],1);  plot(f,10*log10(pxx)) xlabel('Cycles/Year') ylabel('dB / (Cycles/Year)') title('Periodogram of Relative Sunspot Number Data')

Usted ve en la figura anterior que hay un pico en el periodograma en aproximadamente 0,1 ciclos/año, lo que indica un período de aproximadamente 10 años.

Obtener el periodograma de una señal de entrada que consiste en dos sinusoides de tiempo discreto con una frecuencia angular de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
Y
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
</mrow>
</math>
RAD/sample en aditivo
<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. Obtener las estimaciones de periodograma de dos lados en
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
Y
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
</mrow>
</math>
RAD/sample. Compare el resultado con el periodograma unilateral.

n = 0:319; x = cos(pi/4*n)+0.5*sin(pi/2*n)+randn(size(n));  [pxx,w] = periodogram(x,[],[pi/4 pi/2]); pxx
pxx = 1×2

   14.0589    2.8872

[pxx1,w1] = periodogram(x); plot(w1/pi,pxx1,w/pi,2*pxx,'o') legend('pxx1','2 * pxx') xlabel('\omega / \pi')

Los valores de periodograma obtenidos son 1/2 los valores en el periodograma unilateral. Cuando usted evalúa el periodograma en un conjunto específico de frecuencias, la salida es una estimación de dos caras.

Cree una señal que consista de dos ondas sinusoidales con frecuencias de 100 y 200 Hz en (0,1) ruido aditivo blanco.N La frecuencia de muestreo es de 1 kHz. Obtener el periodograma bilateral en 100 y 200 Hz.

fs = 1000; t = 0:0.001:1-0.001; x = cos(2*pi*100*t)+sin(2*pi*200*t)+randn(size(t));  freq = [100 200]; pxx = periodogram(x,[],freq,fs)
pxx = 1×2

    0.2647    0.2313

El ejemplo siguiente ilustra el uso de límites de confianza con el periodograma. Si bien no es una condición necesaria para la significación estadística, las frecuencias en el periodograma donde el límite de confianza inferior excede el límite de confianza superior para las estimaciones PSD circundantes indican claramente oscilaciones significativas en la serie temporal.

Cree una señal consistente en la superposición de ondas sinusoidales de 100 Hz y 150 Hz en ruido blanco aditivo (0,1).N La amplitud de las dos ondas sinusoidales es 1. La frecuencia de muestreo es de 1 kHz.

fs = 1000; t = 0:1/fs:1-1/fs; x = cos(2*pi*100*t) + sin(2*pi*150*t) + randn(size(t));

Obtenga la estimación de PSD de periodograma con límites de confianza del 95%. Trace el periodograma junto con el intervalo de confianza y amplíe la región de frecuencia de interés cerca de 100 y 150 Hz.

[pxx,f,pxxc] = periodogram(x,rectwin(length(x)),length(x),fs,...     'ConfidenceLevel',0.95);  plot(f,10*log10(pxx)) hold on plot(f,10*log10(pxxc),'-.')  xlim([85 175]) xlabel('Hz') ylabel('dB/Hz') title('Periodogram with 95%-Confidence Bounds')

La menor confianza ligada en las inmediaciones de 100 y 150 Hz está significativamente por encima de la confianza superior vinculada fuera de la vecindad de 100 y 150 Hz.

Obtener el periodograma de una onda sinusoidal de 100 Hz en aditivo

<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
Ruido. Los datos se muestrean a 1 kHz. Utilice la opción para obtener el periodograma centrado en DC y trazar el resultado.'centered'

fs = 1000; t = 0:0.001:1-0.001; x = cos(2*pi*100*t)+randn(size(t)); periodogram(x,[],length(x),fs,'centered')

Genere una señal que consista en una sinusoide de 200 Hz incrustada en el ruido Gaussiano blanco. La señal se muestrea a 1 kHz durante 1 segundo. El ruido tiene una varianza de 0,01 ². Restablezca el generador de números aleatorios para obtener resultados reproducibles.

rng('default')  Fs = 1000; t = 0:1/Fs:1-1/Fs; N = length(t); x = sin(2*pi*t*200)+0.01*randn(size(t));

Utilice la FFT para computar el espectro de potencia de la señal, normalizado por la longitud de la señal. La sinusoide es in-bin, por lo que toda la potencia se concentra en una sola muestra de frecuencia. Trace el espectro unilateral. Acerque el zoom a las proximidades del pico.

q = fft(x,N); ff = 0:Fs/N:Fs-Fs/N;  ffts = q*q'/N^2
ffts = 0.4997 
 ff = ff(1:floor(N/2)+1); q = q(1:floor(N/2)+1);  stem(ff,abs(q)/N,'*') axis([190 210 0 0.55])

Se utiliza para calcular el espectro de potencia de la señal.periodogram Especifique una ventana Hann y una longitud FFT de 1024. Encuentre la diferencia porcentual entre la potencia estimada a 200 Hz y el valor real.

wind = hann(N);  [pun,fr] = periodogram(x,wind,1024,Fs,'power');  hold on stem(fr,pun)

 periodogErr = abs(max(pun)-ffts)/ffts*100
periodogErr = 4.7349 

Vuelva a calcular el espectro de potencia, pero esta vez utilice la reasignación. Trace la nueva estimación y compare su máximo con el valor FFT.

[pre,ft,pxx,fx] = periodogram(x,wind,1024,Fs,'power','reassigned');  stem(fx,pre) hold off legend('Original','Periodogram','Reassigned')

 reassignErr = abs(max(pre)-ffts)/ffts*100
reassignErr = 0.0779 

Calcule la potencia de la sinusoide a una frecuencia específica utilizando la opción.'power'

Cree una sinusoide de 100 Hz un segundo de duración muestreada a 1 kHz. La amplitud de la onda sinusoidal es 1,8, lo que equivale a una potencia de 1,8 ²/2 = 1,62. Calcule la potencia utilizando la opción.'power'

fs = 1000; t = 0:1/fs:1-1/fs; x = 1.8*cos(2*pi*100*t); [pxx,f] = periodogram(x,hamming(length(x)),length(x),fs,'power'); [pwrest,idx] = max(pxx); fprintf('The maximum power occurs at %3.1f Hz\n',f(idx))
The maximum power occurs at 100.0 Hz 
fprintf('The power estimate is %2.2f\n',pwrest)
The power estimate is 1.62 

Generar 1024 muestras de una señal multicanal que consta de tres sinusoides en aditivo

<math display="block">
<mrow>
<mi>N</mi>
<mo stretchy="false">(</mo>
<mn>0</mn>
<mo>,</mo>
<mn>1</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido Gaussiano blanco. Las frecuencias de las sinusoides son
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
</mrow>
</math>
,
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>3</mn>
</mrow>
</math>
Y
<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
RAD/sample. Calcule el PSD de la señal utilizando el periodograma y compálelo.

N = 1024; n = 0:N-1;  w = pi./[2;3;4]; x = cos(w*n)' + randn(length(n),3);  periodogram(x)

Cree una función que devuelva la estimación de PSD de periodograma modificada utilizando la ventana,.periodogram_data.mwindow La longitud de la ventana y el número de puntos en el DFT es el mismo que la longitud de.inputData

type periodogram_data
function [pxx,f] = periodogram_data(inputData,window) %#codegen nfft = length(inputData); [pxx,f] = periodogram(inputData,window,nfft); end 

La Directiva indica que el código de MATLAB está destinado a la generación de código.%#codegen Se usa para generar un archivo MEX.codegenperiodogram_mex La opción define las especificaciones de entrada para el archivo MEX –. es un vector de 1024 x 1 aleatorio.-argsinput_data Especifique una ventana de longitud de Hamming 1024. Para ver el informe de generación de código, puede Agregar la marca al final de la siguiente línea de código.-report

codegen periodogram_data -args {randn(1024,1),hamming(1024)} -o periodogram_mex
 

Trace el periodograma de una sinusoide ruidosa utilizando ambos y.periodogram_mexperiodogram_data.m

t = linspace(0,1,1024); x = 2*cos(2*pi*50*t')+randn(size(t'));  [pxMex,fMex] = periodogram_mex(x,hann(length(x)));  [pxMat,fMat] = periodogram_data(x,hamming(length(x))); plot(fMex,10*log10(pxMex)) hold on plot(fMat,10*log10(pxMat),'--') hold off grid on  title('Periodogram Power Spectral Density Estimate') xlabel('Normalized Frequency (\times\pi rad/sample)') ylabel('Power/frequeny (dB/(rad/sample))')  legend('Periodogram with MEX function','Periodogram with MATLAB function')

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector de fila o columna, o como una matriz. Si es una matriz, sus columnas se tratan como canales independientes.x

Ejemplo: es una señal de vector de fila de un solo canal.cos(pi/4*(0:159))+randn(1,160)

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

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

Ventana, especificada como un vector de fila o columna con la misma longitud que la señal de entrada. Si especifica como vacío, a continuación, utiliza una ventana rectangular.windowperiodogram Si especifica la marca y una vacía, la función utiliza una ventana de Kaiser con'reassigned'window β = 38.

Tipos de datos: single | double

Número de puntos DFT, especificado como un entero positivo. Para una señal de entrada de valor real, la estimación PSD tiene longitud (/2 + 1) si es par, y (+ 1)/2 si es impar.xpxxnfftnfftnfftnfft Para una señal de entrada de valor complejo, la estimación de PSD siempre tiene longitud.xnfft Si se especifica como vacío, se utiliza el valor predeterminado.nfftnfft

Tipos de datos: single | double

Frecuencia de muestreo, especificada como un escalar positivo. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es de segundos, entonces la frecuencia de muestreo tiene unidades de Hz.

Frecuencias normalizadas, especificadas como un vector de fila o columna con al menos dos elementos. Las frecuencias normalizadas están en Rad/sample.

Ejemplo: w = [pi/4 pi/2]

Tipos de datos: double

Frecuencias, especificadas como un vector de fila o columna con al menos dos elementos. Las frecuencias están en ciclos por unidad de tiempo. La hora de la unidad se especifica mediante la frecuencia de muestreo,.fs Si tiene unidades de muestras/segundo, entonces tiene unidades de Hz.fsf

Ejemplo: fs = 1000; f = [100 200]

Tipos de datos: double

Rango de frecuencias para la estimación de PSD, especificado como uno de, o.'onesided''twosided''centered' El valor predeterminado es para las señales con valores reales y para las señales con valores complejos.'onesided''twosided' Los rangos de frecuencias correspondientes a cada opción son

  • : devuelve la estimación de PSD unilateral de una señal de entrada con valor real,.'onesided'x Si es Even, tiene longitud/2 + 1 y se calcula en el intervalonfftpxxnfft [0,π] RAD/sample. Si es impar, la longitud de is (+ 1)/2 y el intervalo esnfftpxxnfft [0,π) RAD/sample. Cuando se especifica opcionalmente, los intervalos correspondientes son [0,/2] ciclos/unidad de tiempo y [0,/2) ciclos/unidad de tiempo para la longitud par y impar respectivamente.fsfsfsnfft

  • : devuelve la estimación de PSD bilateral para la entrada de valor real o de valor complejo.'twosided'x En este caso, tiene longitud y se calcula en el intervalopxxnfft [0,2π) RAD/sample. Cuando se especifica opcionalmente, el intervalo es [0,) ciclos/unidad de tiempo.fsfs

  • : devuelve la estimación de PSD de dos lados centrada para la entrada de valor real o de valor complejo.'centered'x En este caso, tiene longitud y se calcula en el intervalopxxnfft (–π,π] RAD/sample para una longitud enfft (–π,π) RAD/sample para longitud impar.nfft Cuando se especifica opcionalmente, los intervalos correspondientes son (–/2,/2] ciclos/unidad de tiempo y (–/2,/2) ciclos/unidad de tiempo para la longitud par y impar respectivamente.fsfsfsfsfsnfft

Escala de espectro de potencia, especificada como o.'psd''power' Para devolver la densidad espectral de potencia, omita o especifique.spectrumtype'psd' Para obtener una estimación de la potencia en cada frecuencia, utilice en su lugar.'power' Especificar escala cada estimación del PSD por el ancho de banda de ruido equivalente de la ventana, excepto cuando se utiliza la bandera.'power''reassigned'

Probabilidad de cobertura para el PSD verdadero, especificado como un escalar en el rango (0,1). La salida,, contiene los límites inferior y superior de la estimación del intervalo × 100% para el PSD verdadero.pxxcprobability

Argumentos de salida

contraer todo

Estimación de PSD, devuelta como una matriz o vector de columna de valor real, no negativo. Cada columna de es la estimación PSD de la columna correspondiente de.pxxx Las unidades de la estimación PSD están en unidades de magnitud cuadrada de los datos de la serie temporal por frecuencia de unidad. Por ejemplo, si los datos de entrada están en voltios, la estimación de PSD está en unidades de voltios cuadrados por frecuencia de unidad. Para una serie de tiempo en voltios, si se asume una resistencia de 1 Ω y se especifica la frecuencia de muestreo en hercios, la estimación PSD está en vatios por hercios.

Tipos de datos: single | double

Frecuencias cíclicas, devueltas como un vector de columna de valor real. Para una estimación de PSD unilateral, abarca el intervalo [0,/2] cuando es par y [0,/2) cuando es impar.ffsnfftfsnfft Para una estimación de PSD a dos caras, abarca el intervalo [0,).ffs Para una estimación de PSD centrada en DC, abarca el intervalo (–/2,/2] ciclos/unidad de tiempo para la longitud par y (–/2,/2) ciclos/unidad de tiempo para la longitud impar.ffsfsnfftfsfsnfft

Tipos de datos: double | single

Frecuencias normalizadas, devueltas como un vector de columna de valor real. Si se trata de una estimación de PSD unilateral, abarca el intervalopxxw [0,π] Si es incluso ynfft [0,π) Si es impar.nfft Si se trata de una estimación de PSD de dos lados, abarca el intervalopxxw [0,2π). Para una estimación de PSD centrada en DC, abarca el intervalow (–π,π] para incluso ynfft (–π,π) para impar.nfft

Tipos de datos: double

Límites de confianza, devueltos como una matriz con elementos con valores reales. El tamaño de fila de la matriz es igual a la longitud de la estimación PSD,. tiene el doble de columnas que.pxxpxxcpxx Las columnas con numeración impar contienen los límites inferiores de los intervalos de confianza y las columnas pares contienen los límites superiores. Por lo tanto, es el límite de confianza inferior y es el límite de confianza superior correspondiente a la estimación.pxxc(m,2*n-1)pxxc(m,2*n)pxx(m,n) La probabilidad de cobertura de los intervalos de confianza viene determinada por el valor de la entrada.probability

Tipos de datos: single | double

Estimación de PSD reasignada, devuelta como una matriz o vector de columna de valor real, no negativo. Cada columna de es la estimación PSD reasignada de la columna correspondiente de.rpxxx

Frecuencias de centro de energía, especificadas como vector o matriz.

Más acerca de

contraer todo

Periodograma

El periodograma es una estimación no paramétrica de la densidad espectral de potencia (PSD) de un proceso aleatorio estacionario de sentido amplio. El periodograma es la transformada de Fourier de la estimación sesgada de la secuencia de autocorrelación. Para una señal, Xn, muestreado en muestras por unidad de tiempo, el periodograma se define comofs

P^(f)=ΔtN|n=0N1xnej2πfn|2,1/2Δt<f1/2Δt,

Dónde Δt es el intervalo de muestreo. Para un periodograma unilateral, los valores en todas las frecuencias excepto 0 y el Nyquist, 1/2Δt, se multiplican por 2 para que se conserve la potencia total.

Si las frecuencias están en radianes/muestra, el periodograma se define como

P^(ω)=12πN|n=0N1xnejωn|2,π<ωπ.

El rango de frecuencias en las ecuaciones anteriores tiene variaciones dependiendo del valor del argumento.freqrange Vea la descripción de in.freqrangeArgumentos de entrada

La integral del PSD verdadero, P(f), durante un período, 1/Δt para la frecuencia cíclica y 2 para la frecuencia normalizada, es igual a la varianza del proceso aleatorio estacionario de sentido amplio:π

σ2=1/2Δt1/2ΔtP(f)df.

Para frecuencias normalizadas, reemplace los límites de integración apropiadamente.

Periodograma modificado

El periodograma modificado multiplica la serie de tiempo de entrada por una función de ventana. Una función de ventana adecuada no es negativa y decae a cero en los puntos inicial y final. Multiplicar la serie de tiempo por la función de la ventana de los datos gradualmente encendido y apagado y ayuda a aliviar la fuga en el periodograma.tapers Vea por un ejemplo.El sesgo y la variabilidad en el periodograma

Si Hn es una función de ventana, el periodograma modificado se define por

P^(f)=ΔtN|n=0N1hnxnej2πfn|2,1/2Δt<f1/2Δt,

Dónde Δt es el intervalo de muestreo.

Si las frecuencias están en radianes/muestra, el periodograma modificado se define como

P^(ω)=12πN|n=0N1hnxnejωn|2,π<ωπ.

El rango de frecuencias en las ecuaciones anteriores tiene variaciones dependiendo del valor del argumento.freqrange Vea la descripción de in.freqrangeArgumentos de entrada

El periodograma reasignado

La técnica de reasignación agudiza la localización de las estimaciones espectrales y produce periodogramas que son más fáciles de leer e interpretar. Esta técnica reasigna cada estimación PSD al centro de energía de su contenedor, lejos del centro geométrico de la papelera. Proporciona una localización exacta para los cantos y los impulsos.

Referencias

[1] Fulop, Sean A., and Kelly Fitz. “Algorithms for computing the time-corrected instantaneous frequency (reassigned) spectrogram, with applications.” Journal of the Acoustical Society of America. Vol. 119, January 2006, pp. 360–371.

[2] Auger, François, and Patrick Flandrin. “Improving the Readability of Time-Frequency and Time-Scale Representations by the Reassignment Method.” IEEE® Transactions on Signal Processing. Vol. 43, May 1995, pp. 1068–1089.

Capacidades ampliadas

Generación de código C/C++
Genere código C y C++ mediante MATLAB® Coder™.

Introducido antes de R2006a