Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

periodogram

Estimación de la densidad espectral de potencia de un periodograma

Descripción

ejemplo

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

ejemplo

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

ejemplo

pxx = periodogram(x,window,nfft) usa nfft puntos en la transformada discreta de Fourier (DFT). Si nfft es mayor que la longitud de la señal x, se rellena con ceros hasta la longitud nfft. Si nfft es menor que la longitud de la señal, esta se envuelve en módulo nfft y se suma utilizando datawrap. Por ejemplo, la señal de entrada [1 2 3 4 5 6 7 8] con nfft igual a 4 da como resultado el periodograma de sum([1 5; 2 6; 3 7; 4 8],2).

[pxx,w] = periodogram(___) devuelve el vector de frecuencia normalizada, w. Si pxx es un periodograma unilateral, w abarca el intervalo [0,π] si nfft es par y [0,π) si nfft es impar. Si pxx es un periodograma bilateral, w abarca el intervalo [0,2π).

ejemplo

[pxx,f] = periodogram(___,fs) devuelve un vector de frecuencia, f, en ciclos por unidad de tiempo. La tasa de muestreo, fs, es el número de muestras por unidad de tiempo. Si la unidad de tiempo es el segundo, f estará en ciclos/segundo (Hz). Para señales de valor real, f abarca el intervalo [0,fs/2] cuando nfft es par y [0,fs/2) cuando nfft es impar. Para señales de valor complejo, f abarca el intervalo [0,fs). fs debe ser la cuarta entrada a periodogram. Para introducir una tasa 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 del periodograma bilateral en las frecuencias normalizadas especificadas en el vector, w. w debe contener al menos dos elementos porque, de lo contrario, la función lo interpreta como nfft.

ejemplo

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

ejemplo

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

ejemplo

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

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

ejemplo

[rpxx,f,pxx,fc] = periodogram(___,'reassigned') también devuelve las estimaciones de PSD no asignadas, pxx, y las frecuencias del centro de energía, fc. Si utiliza el indicador 'reassigned', no podrá especificar un intervalo de confianza probability.

ejemplo

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

ejemplo

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

Ejemplos

contraer todo

Obtenga el periodograma de una señal de entrada compuesta por una sinusoide discreta en el tiempo con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo.

Cree una onda sinusoidal con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo. La señal tiene 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular y la longitud de la DFT predeterminadas. La longitud de la DFT es la siguiente potencia de dos mayor que la longitud de la señal, es decir, 512 puntos. Dado que la señal tiene valor real y tiene una longitud par, 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))

Figure contains an axes object. The axes object contains an object of type line.

Repita la representación usando periodogram sin salidas.

periodogram(x)

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Power/frequency (dB/(rad/sample)) contains an object of type line.

Obtenga el periodograma modificado de una señal de entrada compuesta por una sinusoide discreta en el tiempo con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo.

Cree una onda sinusoidal con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo. La señal tiene 320 muestras de longitud. Obtenga el periodograma modificado utilizando una ventana de Hamming y la longitud de la DFT predeterminada. La longitud de la DFT es la siguiente potencia de dos mayor que la longitud de la señal, es decir, 512 puntos. Dado que la señal tiene valor real y tiene una longitud par, 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)))

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Power/frequency (dB/(rad/sample)) contains an object of type line.

Obtenga el periodograma de una señal de entrada compuesta por una sinusoide discreta en el tiempo con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo. Utilice una longitud de la DFT que sea igual a la longitud de la señal.

Cree una onda sinusoidal con una frecuencia angular de π/4 rad/muestra con ruido blanco N(0,1) aditivo. La señal tiene 320 muestras de longitud. Obtenga el periodograma utilizando la ventana rectangular por defecto y una longitud de la DFT que sea igual a la longitud de la señal. Como la señal tiene 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)

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Power/frequency (dB/(rad/sample)) contains an object of type line.

Obtenga el periodograma de los datos del número de Wolf (número relativo de manchas solares) muestreados anualmente entre 1700 y 1987.

Cargue los datos del número relativo de manchas solares. Obtenga el periodograma utilizando la ventana rectangular por defecto y el número de puntos de la DFT (512 en este ejemplo). La tasa de muestreo de estos datos es de 1 muestra/año. Represente 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')

Figure contains an axes object. The axes object with title Periodogram of Relative Sunspot Number Data, xlabel Cycles/Year, ylabel dB / (Cycles/Year) contains an object of type line.

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

Obtenga el periodograma de una señal de entrada formada por dos sinusoides discretas en el tiempo con una frecuencia angular de π/4 y π/2 rad/muestra en ruido blanco N(0,1) aditivo. Obtenga las estimaciones del periodograma bilateral en π/4 y π/2 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')

Figure contains an axes object. The axes object with xlabel omega blank / blank pi contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent pxx1, 2 * pxx.

Los valores del periodograma obtenidos son la mitad de los valores del periodograma unilateral. Cuando se evalúa el periodograma en un conjunto específico de frecuencias, la salida es una estimación bilateral.

Cree una señal formada por dos ondas sinusoidales con frecuencias de 100 y 200 Hz en ruido blanco aditivo N(0,1). La frecuencia de muestreo es 1 kHz. Obtenga el periodograma bilateral 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

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

Cree una señal compuesta por la superposición de ondas sinusoidales de 100 Hz y 150 Hz en ruido blanco N(0,1) aditivo. La amplitud de las dos ondas sinusoidales es 1. La frecuencia de muestreo es 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 del periodograma con límites de confianza del 95%. Represente el periodograma junto con el intervalo de confianza y amplíe la región de interés de frecuencia 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')

Figure contains an axes object. The axes object with title Periodogram with 95%-Confidence Bounds, xlabel Hz, ylabel dB/Hz contains 3 objects of type line.

El límite de confianza inferior en el entorno inmediato de 100 y 150 Hz está significativamente por encima del límite de confianza superior fuera del entorno de 100 y 150 Hz.

Obtenga el periodograma de una onda sinusoidal de 100 Hz en ruido N(0,1) aditivo. Se muestrean los datos a 1 kHz. Utilice la opción 'centered' para obtener el periodograma centrado en DC y representar el resultado.

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

Figure contains an axes object. The axes object with title Power Spectral Density, xlabel Frequency (Hz), ylabel Power/frequency (dB/Hz) contains an object of type line.

Genere una señal que consista en una sinusoide de 200 Hz integrada en ruido blanco gaussiano. La señal se muestrea a 1 kHz durante 1 segundo. El ruido presenta una varianza de 0,01². Reinicie 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));

Calcule el espectro de potencia de la señal, normalizado por la longitud de la señal, mediante la FFT. La sinusoide se encuentra en el bin, por lo que toda la potencia se concentra en una sola muestra de frecuencia. Represente el espectro unilateral. Amplíe 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])

Figure contains an axes object. The axes object contains an object of type stem.

Calcule el espectro de potencia de la señal usando periodogram. Especifique una ventana de Hann y una longitud de 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)

Figure contains an axes object. The axes object contains 2 objects of type stem.

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

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

[pre,ft,pxx,fx] = periodogram(x,wind,1024,Fs,'power','reassigned');

stem(fx,pre)
hold off
legend('Original','Periodogram','Reassigned')

Figure contains an axes object. The axes object contains 3 objects of type stem. These objects represent Original, Periodogram, Reassigned.

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

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

Cree una sinusoide de 100 Hz de 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. Estime 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

Genere 1024 muestras de una señal multicanal compuesta por tres sinusoides en ruido blanco gaussiano N(0,1) aditivo. Las frecuencias de las sinusoides son π/2, π/3 y π/4 rad/muestra. Estime la PSD de la señal con el periodograma y represéntela.

N = 1024;
n = 0:N-1;

w = pi./[2;3;4];
x = cos(w*n)' + randn(length(n),3);

periodogram(x)

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Power/frequency (dB/(rad/sample)) contains 3 objects of type line.

Cree una función periodogram_data.m que devuelva la estimación de la densidad espectral de potencia (PSD) del periodograma modificado de una señal de entrada utilizando una ventana. La función especifica un número de puntos de la transformada discreta de Fourier que es igual a la longitud de la señal de entrada.

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

Utilice codegen (MATLAB Coder) para generar una función MEX.

  • La directiva %#codegen en la función indica que el código de MATLAB® está pensado para generar código.

  • La opción -args especifica argumentos de ejemplo que definen el tamaño, la clase y la complejidad de las entradas del archivo MEX. En este ejemplo, especifique inputData como un vector aleatorio de doble precisión de 1024 por 1 y window como una ventana de Hamming de longitud 1024. En las siguientes llamadas a la función MEX, utilice señales de entrada y ventanas de 1024 muestras.

  • Si desea que la función MEX tenga un nombre diferente, utilice la opción -o.

  • Si quiere ver un informe de generación de código, añada la opción -report al final del comando codegen.

codegen periodogram_data -args {randn(1024,1),hamming(1024)}
Code generation successful.

Calcule la estimación de PSD de una sinusoide ruidosa de 1024 muestras utilizando la función de periodograma y la función MEX que generó. Especifique una frecuencia normalizada sinusoidal de 2π/5 rad/muestra y una ventana de Hann. Represente las dos estimaciones para comprobar que coinciden.

N = 1024;
x = 2*cos(2*pi/5*(0:N-1)') + randn(N,1);
periodogram(x,hann(N))
[pxMex,fMex] = periodogram_data(x,hann(N));
hold on
plot(fMex/pi,pow2db(pxMex),':','Color',[0 0.4 0])
hold off
grid on
legend('periodogram','MEX function')

Figure contains an axes object. The axes object with title Periodogram Power Spectral Density Estimate, xlabel Normalized Frequency ( times pi blank rad/sample), ylabel Power/frequency (dB/(rad/sample)) contains 2 objects of type line. These objects represent periodogram, MEX function.

Argumentos de entrada

contraer todo

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

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

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

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

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

Tipos de datos: single | double

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

Tipos de datos: single | double

Tasa de muestreo, especificada como un escalar positivo. La tasa de muestreo es el número de muestras por unidad de tiempo. Si la unidad de tiempo es el segundo, la tasa de muestreo tendrá unidades de Hz.

Frecuencias normalizadas, especificadas como vector fila o vector columna con al menos dos elementos. Las frecuencias normalizadas están en rad/muestra.

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

Tipos de datos: double | single

Frecuencias, especificadas como vector fila o vector columna con al menos dos elementos. Las frecuencias están en ciclos por unidad de tiempo. La unidad de tiempo viene especificada por la tasa de muestreo, fs. Si las unidades de fs son muestras/segundo, las unidades de f son Hz.

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

Tipos de datos: double | single

Rango de frecuencia para estimación de PSD, especificado como 'onesided', 'twosided' o 'centered'. El valor predeterminado es 'onesided' para señales de valor real y 'twosided' para señales de valor complejo. Los rangos de frecuencia correspondientes a cada opción son

  • 'onesided' devuelve la estimación de PSD unilateral de una señal de entrada de valor real, x. Si nfft es par, pxx tiene una longitud de nfft/2 + 1 y se calcula en el intervalo [0,π] rad/muestra. Si nfft es impar, la longitud de pxx es (nfft + 1)/2 y el intervalo es [0,π) rad/muestra. Cuando fs se puede especificar opcionalmente, los intervalos correspondientes son [0,fs/2] ciclos/unidad de tiempo y [0,fs/2) ciclos/unidad de tiempo para longitud par e impar nfft respectivamente.

    La función multiplica la potencia por 2 en todas las frecuencias excepto 0 y la frecuencia de Nyquist para conservar la potencia total.

  • 'twosided' devuelve la estimación de PSD bilateral para una entrada de valor real o de valor complejo, x. En este caso, pxx tiene la longitud nfft y se calcula en el intervalo [0,2π) rad/muestra. Cuando fs se puede especificar opcionalmente, el intervalo es [0,fs) ciclos/unidad de tiempo.

  • 'centered' devuelve la estimación de PSD bilateral centrada para una entrada de valor real o de valor complejo, x. En este caso, pxx tiene la longitud nfft y se calcula en el intervalo (–π,π] rad/muestra para longitud par nfft y (–π,π) rad/muestra para longitud impar nfft. Cuando fs se puede especificar opcionalmente, los intervalos correspondientes son (–fs/2, fs/2] ciclos/unidad de tiempo y (–fs/2, fs/2) ciclos/unidad de tiempo para longitud par e impar nfft respectivamente.

Tipos de datos: char | string

Escalado del espectro de potencia, especificado como 'psd' o 'power'. Para devolver la densidad espectral de potencia, omita spectrumtype o especifique 'psd'. En cambio, para obtener una estimación de la potencia en cada frecuencia, utilice 'power'. Especificando 'power', se escala cada estimación de la PSD por el ancho de banda de ruido equivalente de la ventana, excepto cuando se use el indicador 'reassigned'.

Tipos de datos: char | string

Probabilidad de cobertura para la PSD real, especificada como escalar en el intervalo (0,1). La salida, pxxc, contiene el límite inferior y superior de la estimación de intervalo de probability × 100% para la PSD real.

Argumentos de salida

contraer todo

Estimación de PSD, devuelta como vector columna o matriz no negativos de valor real. Cada columna de pxx es la estimación de PSD de la columna correspondiente de x. Las unidades de la estimación de PSD están en unidades de magnitud cuadradas de los datos de series de tiempo por frecuencia unitaria. Por ejemplo, si los datos de entrada están en voltios, la estimación de PSD está en unidades de voltios cuadrados por frecuencia unitaria. Para una serie de tiempo en voltios, si asume una resistencia de 1 Ω y especifica la tasa de muestreo en hercios, la estimación de PSD estará en vatios por hercio.

Frecuencias cíclicas, devueltas como vector columna de valor real. Para una estimación de PSD unilateral, f abarca el intervalo [0,fs/2] cuando nfft es par y [0,fs/2) cuando nfft es impar. Para una estimación de PSD bilateral, f abarca el intervalo [0,fs). Para una estimación de PSD centrada en DC, f abarca el intervalo –fs/2, fs/2] ciclos/unidad de tiempo para longitud par nfft y (–fs/2, fs/2) ciclos/unidad de tiempo para longitud impar nfft.

Frecuencias normalizadas, devueltas como vector columna de valor real. Si pxx es una estimación de PSD unilateral, w abarca el intervalo [0,π] si nfft es par y [0,π) si nfft es impar. Si pxx es una estimación de PSD bilateral, w abarca el intervalo [0,2π). Para una estimación de PSD centrada en DC, w abarca el intervalo (–π,π] para nfft par y (–π,π) para nfft impar.

Límites de confianza, devueltos como matriz con elementos de valor real. El tamaño de fila de la matriz es igual a la longitud de la estimación de PSD, pxx. pxxc tiene el doble de columnas que pxx. Las columnas impares contienen los límites inferiores de los intervalos de confianza y las columnas pares, los límites superiores. Así, pxxc(m,2*n-1) es el límite de confianza inferior y pxxc(m,2*n) es el límite de confianza superior, correspondientes a la estimación pxx(m,n). La probabilidad de cobertura de los intervalos de confianza está determinada por el valor de la entrada probability.

Tipos de datos: single | double

Estimación de PSD reasignada, devuelta como vector columna o matriz no negativos de valor real. Cada columna de rpxx es la estimación de PSD reasignada de la columna correspondiente de x.

Frecuencias del 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 y estacionario en sentido amplio. El periodograma es la transformada de Fourier de la estimación sesgada de la secuencia de autocorrelación. En una señal xn muestreada a fs muestras por unidad de tiempo, el periodograma se define como

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

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

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

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

El rango de frecuencia en las ecuaciones anteriores tiene variaciones en función del valor del argumento freqrange. Consulte la descripción de freqrange en Argumentos de entrada.

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

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

En las frecuencias normalizadas, sustituya los límites de integración adecuadamente.

Periodograma 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 desciende a cero en el punto inicial y final. Multiplicar la serie temporal por la función de ventana reduce los datos gradualmente y ayuda a aliviar el manchado en el periodograma. Para ver un ejemplo, consulte Bias and Variability in the Periodogram.

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,

donde Δt es el intervalo de muestreo.

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

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

El rango de frecuencia en las ecuaciones anteriores tiene variaciones en función del valor del argumento freqrange. Consulte la descripción de freqrange en Argumentos de entrada.

Periodograma reasignado

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

Referencias

[1] 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.

[2] 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.

Capacidades ampliadas

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

Historial de versiones

Introducido antes de R2006a

expandir todo