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 de Periodogram

Descripción

ejemplo

pxx = periodogram(x) devuelve la estimación de densidad espectral de potencia de periodograma (PSD), , de la señal de entrada, , encontrado 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 de valor real, es una estimación de PSD unilateral.xpxx Si tiene un valor complejo, es una estimación de PSD de dos lados.xpxx El número de puntos, , en la transformación discreta de Fourier (DFT) es el máximo de 256 o la siguiente potencia de dos mayor que la longitud de la señal.nfft

ejemplo

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

ejemplo

pxx = periodogram(x,window,nfft) utiliza puntos en la transformación discreta de Fourier (DFT).nfft Si es mayor que la longitud de la señal, es cero-acolchado a la longitud .nfftxnfft Si es menor que la longitud de la señal, la señal se envuelve modulo y se suma utilizando .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 es un gramo unilateral, abarca el intervalopxxw [0,π] si es parejo ynfft [0,π) si es extraño.nfft Si es un gramo 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 segundos, entonces está en ciclos/segundo (Hz).f Para las señales con valores reales, abarca el intervalo [0, /2] cuando es par y [0, /2) cuando es impar.ffsnfftfsnfft Para señales de valores complejos, abarca el intervalo [0, ). debe ser la cuarta entrada de .ffsfsperiodogram Para introducir una frecuencia de muestreo y seguir utilizando 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 dos lados en periodogramas a 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 dos lados en periodogramas en 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 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 segundos, entonces está en ciclos/segundo (Hz).f

ejemplo

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

ejemplo

[___,pxxc] = periodogram(___,'ConfidenceLevel',probability) devuelve los intervalos de confianza del 100 % para la estimación de 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 PSD no reasignadas, y las frecuencias del 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 figura actual.

Ejemplos

contraer todo

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

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
rad/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>
rad/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 de 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular predeterminada y la longitud DFT. La longitud DFT es la siguiente potencia de dos mayor que la longitud de la señal, o 512 puntos. Debido a que la señal es de valor real y tiene longitud uniforme, 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 sin salidas.periodogram

periodogram(x)

Obtener el periodograma modificado de una señal de entrada que consiste en un sinusoides 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 de 320 muestras de longitud. Obtenga el periodograma modificado utilizando una ventana Hamming y una longitud DFT predeterminada. La longitud DFT es la siguiente potencia de dos mayor que la longitud de la señal, o 512 puntos. Debido a que la señal es de valor real y tiene longitud uniforme, 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 que consiste en un sinusoides 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 de 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular predeterminada y la longitud DFT igual a la longitud de la señal. Debido a que la señal es de valor real, el periodograma unilateral se devuelve de forma predeterminada 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 de lobo (mancha solar relativa) muestreados anualmente entre 1700 y 1987.

Cargue los datos relativos del número de manchas solares. 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. Trazar 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/muestra 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. Obtenga las estimaciones de los
<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/muestra. 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 se evalúa el periodograma en un conjunto específico de frecuencias, la salida es una estimación de dos lados.

Cree una señal que consista en 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. Obtenga el gramo de dos lados a 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

En el ejemplo siguiente se muestra el uso de límites de confianza con el periodograma. Aunque no es una condición necesaria para la significancia estadística, las frecuencias en el periodograma donde el límite de confianza inferior supera el límite de confianza superior para las estimaciones de PSD circundantes indican claramente oscilaciones significativas en la serie temporal.

Cree una señal que consista 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%. Trazar el periodograma junto con el intervalo de confianza y acercar 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 consolidada en las inmediaciones de 100 y 150 Hz está significativamente por encima de la confianza superior vinculada fuera de las proximidades 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')

Generar una señal que consiste en un sinusoides de 200 Hz incrustado en el ruido gaussiano blanco. La señal se muestrea a 1 kHz durante 1 segundo. El ruido tiene una varianza de 0,012. 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 el FFT para calcular el espectro de potencia de la señal, normalizado por la longitud de la señal. El sinusoides está en el contenedor, por lo que toda la potencia se concentra en una sola muestra de frecuencia. Trazar el espectro unilateral. Acérquese 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 en 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. Trazar la nueva estimación y comparar 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 

Estimar la potencia del sinusoides a una frecuencia específica utilizando la opción.'power'

Cree un sinusoides de 100 Hz de un segundo de duración muestreado a 1 kHz. La amplitud de la onda sinusoidal es 1,8, lo que equivale a una potencia de 1,82/2 a 1,62. Calcule la potencia con 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 consiste en 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 los sinusoidos 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/muestra. Estimar el PSD de la señal utilizando el periodograma y trazarlo.

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 PSD de periodograma modificado utilizando la ventana, .periodogram_data.mwindow La longitud de la ventana y el número de puntos en el DFT es la misma 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 MATLAB está pensado para la generación de código.%#codegen Se utiliza para generar un archivo MEX.codegenperiodogram_mex La opción define las especificaciones de entrada para el archivo MEX– es un vector aleatorio 1024x1.-argsinput_data Especifique una ventana Hamming de longitud 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
 

Trazar el periodograma de un sinusoides ruidoso 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 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, utiliza una ventana rectangular.windowperiodogram Si especifica la bandera y una marca vacía, la función utiliza una ventana 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 valores complejos, , la estimación 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 escalar positiva. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es 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/muestra.

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. El tiempo unitario 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 frecuencia para la estimación psD, especificado como uno de , , o .'onesided''twosided''centered' El valor predeterminado es para las señales de valor real y para las señales de valor complejo.'onesided''twosided' Los rangos de frecuencia correspondientes a cada opción son

  • : devuelve la estimación PSD unilateral de una señal de entrada de valor real, .'onesided'x Si es par, tiene longitud /2 + 1 y se calcula a lo largo del intervalonfftpxxnfft [0,π] rad/muestra. Si es impar, la longitud de es ( + 1)/2 y el intervalo esnfftpxxnfft [0,π) rad/muestra. Cuando se especifica opcionalmente, los intervalos correspondientes son [0, /2] ciclos/tiempo unitario y [0, /2) ciclos/tiempo unitario para longitud par e impar respectivamente.fsfsfsnfft

  • : devuelve la estimación PSD de dos lados para la entrada de valor real o de valor complejo, .'twosided'x En este caso, tiene longitud y se calcula a lo largo del intervalopxxnfft [0,2π) rad/muestra. Cuando se especifica opcionalmente, el intervalo es [0, ) ciclos/tiempo unitario.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 a lo largo del intervalopxxnfft (–π,π] rad/muestra para una longitud uniforme ynfft (–π,π) rad/muestra para longitud impar .nfft Cuando se especifica opcionalmente, los intervalos correspondientes son (– /2, /2] ciclos/tiempo unitario y (– /2, /2) ciclos/unidad de tiempo para longitud par e impar respectivamente.fsfsfsfsfsnfft

Escalado del espectro de potencia, especificado 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 el indicador.'power''reassigned'

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

Argumentos de salida

contraer todo

Estimación PSD, devuelta como un vector o matriz de columna no negativo de valor real. Cada columna de es la estimación PSD de la columna correspondiente de .pxxx Las unidades de la estimación PSD se encuentran 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 psD está en unidades de voltios al cuadrado por unidad de frecuencia. Para una serie temporal en voltios, si asume una resistencia de 1o y especifica la frecuencia de muestreo en hercios, la estimación de 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 PSD de dos lados, abarca el intervalo [0, ).ffs Para una estimación PSD centrada en CC, abarca el intervalo (– /2, /2] ciclos/tiempo unitario para una longitud par y (– /2, /2) ciclos/tiempo unitario para longitud impar .ffsfsnfftfsfsnfft

Tipos de datos: double | single

Frecuencias normalizadas, devueltas como un vector de columna de valor real. Si es una estimación unilateral de PSD, abarca el intervalopxxw [0,π] si es parejo ynfft [0,π) si es extraño.nfft Si es una estimación de PSD de dos lados, abarca el intervalopxxw [0,2π). Para una estimación de PSD centrada en CC, abarca el intervalow (–π,π] para igual ynfft (–π,π) para extraño .nfft

Tipos de datos: double

Límites de confianza, devueltos como una matriz con elementos de valor real. 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 impares 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 más bajo 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 PSD reasignada, devuelta como un vector o matriz de columna no negativo de valor real. 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 amplio sentido. El periodograma es la transformación 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πfΔtn|2,1/2Δt<f1/2Δt,

Dónde Δt es el intervalo de muestreo. Para un mestizado unilateral, los valores en todas las frecuencias excepto 0 y el Nyquist, 1/2Δt, se multiplican por 2 para que se conserva 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 frecuencia en las ecuaciones anteriores tiene variaciones dependiendo del valor del argumento.freqrange Consulte la descripción de in .freqrangeArgumentos de entrada

La integral del verdadero PSD, 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 ancho:π

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

Para frecuencias normalizadas, sustituya los límites de integración de forma adecuada.

Periodo modificado

El periodograma modificado multiplica la serie temporal de entrada por una función de ventana. Una función de ventana adecuada no es negativa y se descompone a cero al principio y a los puntos finales. Multiplicar la serie temporal por la función de ventana los datos gradualmente encendido y apagado y ayuda a aliviar la fuga en el periodograma.Disminuye Vea un ejemplo.Sesgo y variabilidad en el periodograma

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

P^(f)=ΔtN|n=0N1hnxnej2πfΔtn|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 frecuencia en las ecuaciones anteriores tiene variaciones dependiendo del valor del argumento.freqrange Consulte la descripción de in .freqrangeArgumentos de entrada

Periodograma reasignado

La técnica de reasignación agudiza la localización de 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 localización exacta para chirridos e 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