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.

pwelch

Estimación de densidad espectral de potencia de Welch

Descripción

ejemplo

pxx = pwelch(x) devuelve la estimación de densidad espectral de potencia (PSD), de la señal de entrada, que se encuentra utilizando el estimador de promediación de segmento superpuesto de Welch.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 De forma predeterminada, se divide en los segmentos más largos posibles para obtener tan cerca pero no superar 8 segmentos con una superposición del 50%.x Cada segmento tiene ventanas con una ventana Hamming. Los periodogramas modificados se promedian para obtener la estimación de PSD. Si no puede dividir la longitud de exactamente en un número entero de segmentos con una superposición del 50%, se trunca en consecuencia.xx

ejemplo

pxx = pwelch(x,window) utiliza el vector de entrada o entero, , para dividir la señal en segmentos.window Si es un vector, divide la señal en segmentos iguales en longitud a la longitud de .windowpwelchwindow Los periodogramas modificados se calculan utilizando los segmentos de señal multiplicados por el vector, .window Si es un entero, la señal se divide en segmentos de longitud.windowwindow Los periodogramas modificados se calculan utilizando una ventana de longitud Hamming.window

ejemplo

pxx = pwelch(x,window,noverlap) utiliza muestras de superposición de segmento a segmento. debe ser un entero positivo menor que si es un entero. debe ser un entero positivo menor que la longitud de if es un vector.noverlapnoverlapwindowwindownoverlapwindowwindow Si no especifica o especifica como vacío, el número predeterminado de muestras superpuestas es el 50% de la longitud de la ventana.noverlapnoverlap

ejemplo

pxx = pwelch(x,window,noverlap,nfft) especifica el número de puntos discretos de transformación de Fourier (DFT) que se utilizarán en la estimación de PSD. El valor predeterminado es el mayor de 256 o la siguiente potencia de 2 mayor que la longitud de los segmentos.nfft

[pxx,w] = pwelch(___) devuelve el vector de frecuencia normalizado, .w Si es una estimación de PSD unilateral, abarca el intervalo [0,o] si es par y [0,o) si es impar.pxxwnfftnfft Si es una estimación PSD de dos lados, abarca el intervalo [0,2o).pxxw

ejemplo

[pxx,f] = pwelch(___,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/seg (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 señales de valores complejos, abarca el intervalo [0, ). debe ser la quinta entrada a .ffsfspwelch Para introducir una frecuencia de muestreo y seguir utilizando los valores predeterminados de los argumentos opcionales anteriores, especifique estos argumentos como vacíos, .[]

[pxx,w] = pwelch(x,window,noverlap,w) devuelve las estimaciones de PSD Welch de dos lados a las frecuencias normalizadas especificadas en el vector, .w El vector debe contener al menos dos elementos, porque de lo contrario la función lo interpreta como .wnfft

[pxx,f] = pwelch(x,window,noverlap,f,fs) devuelve las estimaciones de PSD Welch de dos lados en las frecuencias especificadas en el vector, .f 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/seg (Hz).f

ejemplo

[___] = pwelch(x,window,___,freqrange) devuelve la estimación de Welch PSD sobre el rango de frecuencia especificado por .freqrange Las opciones válidas para son: , , o .freqrange'onesided''twosided''centered'

ejemplo

[___] = pwelch(x,window,___,trace) devuelve la estimación del espectro de retención máxima si se especifica como y devuelve la estimación de espectro de retención mínima si se especifica como .trace'maxhold'trace'minhold'

ejemplo

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

ejemplo

[___] = pwelch(___,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

pwelch(___) sin argumentos de salida traza la estimación de Welch PSD en la ventana de figura actual.

Ejemplos

contraer todo

Obtener la estimación de Welch PSD 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. Restablezca el generador de números aleatorios para obtener resultados reproducibles. La señal tiene una longitud
<math display="block">
<mrow>
<msub>
<mrow>
<mi>N</mi>
</mrow>
<mrow>
<mi>x</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>3</mn>
<mn>2</mn>
<mn>0</mn>
</mrow>
</math>
Muestras.

rng default  n = 0:319; x = cos(pi/4*n)+randn(size(n));

Obtenga la estimación de Welch PSD utilizando la ventana Hamming predeterminada y la longitud DFT. La longitud de segmento predeterminada es de 71 muestras y la longitud DFT es la longitud de 256 puntos que produce una resolución de frecuencia de

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
<mn>5</mn>
<mn>6</mn>
</mrow>
</math>
rad/muestra. Debido a que la señal es de valor real, el periodograma es unilateral y hay 256/2+1 puntos. Trazar la estimación de Welch PSD.

pxx = pwelch(x);  pwelch(x)

Repita el cálculo.

  • Divida la señal en secciones de longitud

    <math display="block">
    <mrow>
    <mrow>
    <mstyle mathvariant="monospace">
    <mrow>
    <mi>n</mi>
    <mi>s</mi>
    <mi>c</mi>
    </mrow>
    </mstyle>
    </mrow>
    <mo>=</mo>
    <mo></mo>
    <msub>
    <mrow>
    <mi>N</mi>
    </mrow>
    <mrow>
    <mstyle mathvariant="monospace">
    <mrow>
    <mi>x</mi>
    </mrow>
    </mstyle>
    </mrow>
    </msub>
    <mo>/</mo>
    <mn>4</mn>
    <mo>.</mo>
    <mn>5</mn>
    <mo></mo>
    </mrow>
    </math>
    . Esta acción equivale a dividir la señal en los segmentos más largos posibles para obtener los 8 segmentos pero no exceder con un 50% de superposición.

  • Ventana las secciones mediante una ventana Hamming.

  • Especifique una superposición del 50% entre secciones contiguas

  • Para calcular el FFT, utilice

    <math display="block">
    <mrow>
    <mrow>
    <mi mathvariant="normal">max</mi>
    </mrow>
    <mo stretchy="false">(</mo>
    <mn>2</mn>
    <mn>5</mn>
    <mn>6</mn>
    <mo>,</mo>
    <msup>
    <mrow>
    <mn>2</mn>
    </mrow>
    <mrow>
    <mi>p</mi>
    </mrow>
    </msup>
    <mo stretchy="false">)</mo>
    </mrow>
    </math>
    puntos, donde
    <math display="block">
    <mrow>
    <mi>p</mi>
    <mo>=</mo>
    <mo></mo>
    <msub>
    <mrow>
    <mi mathvariant="normal">log</mi>
    </mrow>
    <mrow>
    <mn>2</mn>
    </mrow>
    </msub>
    <mrow>
    <mstyle mathvariant="monospace">
    <mrow>
    <mi>n</mi>
    <mi>s</mi>
    <mi>c</mi>
    </mrow>
    </mstyle>
    </mrow>
    <mo></mo>
    </mrow>
    </math>
    .

Compruebe que los dos enfoques dan resultados idénticos.

Nx = length(x); nsc = floor(Nx/4.5); nov = floor(nsc/2); nff = max(256,2^nextpow2(nsc));  t = pwelch(x,hamming(nsc),nov,nff);  maxerr = max(abs(abs(t(:))-abs(pxx(:))))
maxerr = 0 

Divida la señal en 8 secciones de igual longitud, con una superposición del 50% entre secciones. Especifique la misma longitud FFT que en el paso anterior. Calcule la estimación de Welch PSD y compruebe que da el mismo resultado que los dos procedimientos anteriores.

ns = 8; ov = 0.5; lsc = floor(Nx/(ns-(ns-1)*ov));  t = pwelch(x,lsc,floor(ov*lsc),nff);  maxerr = max(abs(abs(t(:))-abs(pxx(:))))
maxerr = 0 

Obtener la estimación de Welch PSD 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>3</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>3</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. Restablezca el generador de números aleatorios para obtener resultados reproducibles. La señal tiene 512 muestras.

rng default  n = 0:511; x = cos(pi/3*n)+randn(size(n));

Obtenga la estimación de Welch PSD dividiendo la señal en segmentos 132 muestras de longitud. Los segmentos de señal se multiplican por una ventana hamming 132 muestras de longitud. No se especifica el número de muestras superpuestas, por lo que se establece en 132/2 a 66. La longitud de DFT es de 256 puntos, lo que produce una resolución de frecuencia de

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
<mn>5</mn>
<mn>6</mn>
</mrow>
</math>
rad/muestra. Debido a que la señal es de valor real, la estimación PSD es unilateral y hay 256/2+1 a 129 puntos. Trazar el PSD en función de la frecuencia normalizada.

segmentLength = 132; [pxx,w] = pwelch(x,segmentLength);  plot(w/pi,10*log10(pxx)) xlabel('\omega / \pi')

Obtener la estimación de Welch PSD 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. Restablezca el generador de números aleatorios para obtener resultados reproducibles. La señal es de 320 muestras de longitud.

rng default  n = 0:319; x = cos(pi/4*n)+randn(size(n));

Obtenga la estimación de Welch PSD dividiendo la señal en segmentos de 100 muestras de longitud. Los segmentos de señal se multiplican por una ventana hamming 100 muestras de longitud. El número de muestras superpuestas es 25. La longitud de DFT es de 256 puntos, lo que produce una resolución de frecuencia de

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
<mo>/</mo>
<mn>2</mn>
<mn>5</mn>
<mn>6</mn>
</mrow>
</math>
rad/muestra. Debido a que la señal es de valor real, la estimación PSD es unilateral y hay 256/2+1 puntos.

segmentLength = 100; noverlap = 25; pxx = pwelch(x,segmentLength,noverlap);  plot(10*log10(pxx))

Obtener la estimación de Welch PSD 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. Restablezca el generador de números aleatorios para obtener resultados reproducibles. La señal es de 320 muestras de longitud.

rng default  n = 0:319; x = cos(pi/4*n) + randn(size(n));

Obtenga la estimación de Welch PSD dividiendo la señal en segmentos de 100 muestras de longitud. Utilice la superposición predeterminada del 50%. Especifique la longitud de DFT para que sea de 640 puntos para que la frecuencia de

<math display="block">
<mrow>
<mi>π</mi>
<mo>/</mo>
<mn>4</mn>
</mrow>
</math>
rad/muestra corresponde a una bandeja DFT (bin 81). Debido a que la señal es de valor real, la estimación PSD es unilateral y hay 640/2+1 puntos.

segmentLength = 100; nfft = 640; pxx = pwelch(x,segmentLength,[],nfft);  plot(10*log10(pxx)) xlabel('rad/sample') ylabel('dB / (rad/sample)')

Cree una señal que consista en un sinusoides de 100 Hz en ruido blanco aditivo (0,1).N Restablezca el generador de números aleatorios para obtener resultados reproducibles. La frecuencia de muestreo es de 1 kHz y la señal es de 5 segundos de duración.

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

Obtenga el segmento superpuesto de Welch promediando la estimación PSD de la señal anterior. Utilice una longitud de segmento de 500 muestras con 300 muestras superpuestas. Utilice 500 puntos DFT para que 100 Hz caigadirectamente en una bandeja DFT. Introduzca la frecuencia de muestreo para generar un vector de frecuencias en Hz. Trazar el resultado.

[pxx,f] = pwelch(x,500,300,500,fs);  plot(f,10*log10(pxx))  xlabel('Frequency (Hz)') ylabel('PSD (dB/Hz)')

Cree una señal que consista en tres sinusoides ruidosos y un chirrido, muestreado a 200 kHz durante 0,1 segundos. Las frecuencias de los sinusoides son 1 kHz, 10 kHz y 20 kHz. Los sinusoides tienen diferentes amplitudes y niveles de ruido. El chirrido silencioso tiene una frecuencia que comienza en 20 kHz y aumenta linealmente a 30 kHz durante el muestreo.

Fs = 200e3;  Fc = [1 10 20]'*1e3;  Ns = 0.1*Fs;  t = (0:Ns-1)/Fs; x = [1 1/10 10]*sin(2*pi*Fc*t)+[1/200 1/2000 1/20]*randn(3,Ns); x = x+chirp(t,20e3,t(end),30e3);

Calcular la estimación de Welch PSD y los espectros de retención máxima y de retención mínima de la señal. Trazar los resultados.

[pxx,f] = pwelch(x,[],[],[],Fs); pmax = pwelch(x,[],[],[],Fs,'maxhold'); pmin = pwelch(x,[],[],[],Fs,'minhold');  plot(f,pow2db(pxx)) hold on plot(f,pow2db([pmax pmin]),':') hold off xlabel('Frequency (Hz)') ylabel('PSD (dB/Hz)') legend('pwelch','maxhold','minhold')

Repita el procedimiento, esta vez calculando estimaciones de espectro de potencia centradas.

[pxx,f] = pwelch(x,[],[],[],Fs,'centered','power'); pmax = pwelch(x,[],[],[],Fs,'maxhold','centered','power'); pmin = pwelch(x,[],[],[],Fs,'minhold','centered','power');  plot(f,pow2db(pxx)) hold on plot(f,pow2db([pmax pmin]),':') hold off xlabel('Frequency (Hz)') ylabel('Power (dB)') legend('pwelch','maxhold','minhold')

Este ejemplo ilustra el uso de límites de confianza con la estimación psD de promedio de segmento superpuesto (WOSA) de Welch. Aunque no es una condición necesaria para la significancia estadística, las frecuencias en la estimación de Welch 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. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

rng default 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 WOSA con límites de confianza del 95%. Establezca la longitud del segmento igual a 200 y superponga los segmentos en un 50% (100 muestras). Trazar la estimación WOSA PSD junto con el intervalo de confianza y acercar la región de frecuencia de interés cerca de 100 y 150 Hz.

L = 200; noverlap = 100; [pxx,f,pxxc] = pwelch(x,hamming(L),noverlap,200,fs,...     'ConfidenceLevel',0.95);  plot(f,10*log10(pxx)) hold on plot(f,10*log10(pxxc),'-.') hold off  xlim([25 250]) xlabel('Frequency (Hz)') ylabel('PSD (dB/Hz)') title('Welch Estimate 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.

Crear una señal que consiste en un sinusoides 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>/</mo>
<mn>4</mn>
<mo stretchy="false">)</mo>
</mrow>
</math>
ruido blanco. Restablezca el generador de números aleatorios para obtener resultados reproducibles. La frecuencia de muestreo es de 1 kHz y la señal es de 5 segundos de duración.

rng default  fs = 1000; t = 0:1/fs:5-1/fs;  noisevar = 1/4; x = cos(2*pi*100*t)+sqrt(noisevar)*randn(size(t));

Obtenga el espectro de potencia centrado en CC utilizando el método de Welch. Utilice una longitud de segmento de 500 muestras con 300 muestras superpuestas y una longitud DFT de 500 puntos. Trazar el resultado.

[pxx,f] = pwelch(x,500,300,500,fs,'centered','power');  plot(f,10*log10(pxx)) xlabel('Frequency (Hz)') ylabel('Magnitude (dB)') grid

Usted ve que la potencia a -100 y 100 Hz está cerca de la potencia esperada de 1/4 para una onda sinusoidal de valor real con una amplitud de 1. La desviación de 1/4 se debe al efecto del ruido aditivo.

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. Calcule el PSD de la señal utilizando el método de Welch y trazarla.

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

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 o un entero. Si es un vector, se divide en segmentos superpuestos de longitud igual a la longitud de , y luego multiplica cada segmento de señal con el vector especificado en .windowpwelchxwindowwindow Si es un entero, se divide en segmentos de longitud igual al valor entero y se utiliza una ventana Hamming de igual longitud.windowpwelch Si la longitud de no se puede dividir exactamente en un número entero de segmentos con número de muestras superpuestas, se trunca en consecuencia.xnoverlapx Si especifica como vacío, la ventana Hamming predeterminada se utiliza para obtener ocho segmentos de muestras superpuestas.windowxnoverlap

Tipos de datos: single | double

Número de muestras superpuestas, especificada como un entero positivo menor que la longitud de .window Si omite o especifica como vacío, se utiliza un valor para obtener una superposición del 50% entre segmentos.noverlapnoverlap

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

Si es mayor que la longitud del segmento, los datos se rellenan sin cero.nfft Si es menor que la longitud del segmento, el segmento se ajusta utilizando para que la longitud sea igual a .nfftdatawrapnfft

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 uno de o .'psd''power' Omitir el , o especificar , devuelve la densidad espectral de potencia.spectrumtype'psd' Especificar escala cada estimación del PSD por el ancho de banda de ruido equivalente de la ventana.'power' Utilice la opción para obtener una estimación de la potencia en cada frecuencia.'power'

Modo de seguimiento, especificado como uno de , , o .'mean''maxhold''minhold' El valor predeterminado es .'mean'

  • : devuelve la estimación del espectro Welch de cada canal de entrada. calcula la estimación del espectro Welch en cada contenedor de frecuencias promediando las estimaciones del espectro de potencia de todos los segmentos.'mean'pwelch

  • : devuelve el espectro de retención máxima de cada canal de entrada. calcula el espectro de retención máxima en cada contenedor de frecuencias manteniendo el valor máximo entre las estimaciones del espectro de potencia de todos los segmentos.'maxhold'pwelch

  • : devuelve el espectro de retención mínima de cada canal de entrada. calcula el espectro de retención mínima en cada contenedor de frecuencias manteniendo el valor mínimo entre las estimaciones del espectro de potencia de todos los segmentos.'minhold'pwelch

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

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

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

Más acerca de

contraer todo

Segmento superpuesto de Welch Que promedia la estimación espectral

El periodograma no es un estimador consistente de la verdadera densidad espectral de potencia de un proceso estacionario de amplio sentido. La técnica de Welch para reducir la varianza del periodograma divide la serie temporal en segmentos, generalmente superpuestos.

El método de Welch calcula un periodograma modificado para cada segmento y luego promedia estas estimaciones para producir la estimación de la densidad espectral de potencia. Debido a que el proceso es estacionario de amplio sentido y el método de Welch utiliza estimaciones PSD de diferentes segmentos de la serie temporal, los periodogramas modificados representan estimaciones aproximadamente no correlacionadas del VERDADERO PSD y el promedio reduce la variabilidad.

Los segmentos se multiplican normalmente por una función de ventana, como una ventana Hamming, de modo que el método de Welch equivale a promediar los periodogramas modificados. Dado que los segmentos normalmente se superponen, los valores de datos al principio y al final del segmento cónicos por la ventana en un segmento, se producen lejos de los extremos de los segmentos adyacentes. Esto protege contra la pérdida de información causada por las ventanas.

Capacidades ampliadas

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

Introducido antes de R2006a