Contenido principal

bandpower

Descripción

p = bandpower(x) devuelve la potencia media en la señal de entrada x. Si x es una matriz, entonces bandpower calcula la potencia media de forma independiente para cada columna.

ejemplo

p = bandpower(x,fs,freqrange) devuelve la potencia media en el intervalo de frecuencias freqrange. Debe introducir la tasa de muestreo fs para obtener la potencia en un intervalo de frecuencias especificado. bandpower utiliza un periodograma modificado para determinar la potencia media en freqrange.

ejemplo

p = bandpower(pxx,f,"psd") devuelve la potencia media calculada integrando la estimación de la densidad espectral de potencia (PSD) pxx. La integral se aproxima por el método del rectángulo. La entrada f es un vector de frecuencias correspondientes a las estimaciones de la PSD en pxx. La opción "psd" indica que la entrada es una estimación de la PSD y no datos de series temporales.

ejemplo

p = bandpower(pxx,f,freqrange,"psd") devuelve la potencia media contenida en el intervalo de frecuencias freqrange. Si las frecuencias de freqrange no coinciden con los valores de f, se utilizan los valores más cercanos. La potencia media se calcula integrando la estimación de la densidad espectral de potencia (PSD) pxx. La integral se aproxima por el método del rectángulo. La opción "psd" indica que la entrada es una estimación de la PSD y no datos de series temporales.

ejemplo

Ejemplos

contraer todo

Cree una señal compuesta por una onda sinusoidal de 100 Hz en ruido blanco gaussiano N(0,1) aditivo. La tasa de muestreo es 1 kHz. Determine la potencia media y compárela con la norma 2.

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

p = bandpower(x)
p = 
1.5264
l2norm = norm(x,2)^2/numel(x)
l2norm = 
1.5264

Determine el porcentaje de la potencia total en un intervalo de frecuencias especificado.

Cree una señal compuesta por una onda sinusoidal de 100 Hz en ruido blanco gaussiano N(0,1) aditivo. La tasa de muestreo es 1 kHz. Determine el porcentaje de la potencia total en el intervalo de frecuencias entre 50 Hz y 150 Hz. Reinicie el generador de números aleatorios para obtener resultados reproducibles.

rng('default')

t = 0:0.001:1-0.001;
x = cos(2*pi*100*t)+randn(size(t));

pband = bandpower(x,1000,[50 150]);
ptot = bandpower(x,1000,[0 500]);
per_power = 100*(pband/ptot)
per_power = 
51.9591

Determine la potencia media calculando primero una estimación de la PSD mediante el periodograma. Introduzca la estimación de la PSD en bandpower.

Cree una señal compuesta por una onda sinusoidal de 100 Hz en ruido blanco gaussiano N(0,1) aditivo. La tasa de muestreo es 1 kHz. Obtenga el periodograma y utilice el indicador 'psd' para calcular la potencia media mediante la estimación de la PSD. Compare el resultado con la potencia media calculada en el dominio de tiempo.

t = 0:0.001:1-0.001;
Fs = 1000;
x = cos(2*pi*100*t)+randn(size(t));

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
p = bandpower(Pxx,F,'psd')
p = 
1.5264
avpow = norm(x,2)^2/numel(x)
avpow = 
1.5264

Determine el porcentaje de la potencia total en un intervalo de frecuencias especificado con el periodograma como entrada.

Cree una señal compuesta por una onda sinusoidal de 100 Hz en ruido blanco gaussiano N(0,1) aditivo. La tasa de muestreo es 1 kHz. Obtenga el periodograma y el vector de frecuencia correspondiente. A partir de la estimación de la PSD, determine el porcentaje de la potencia total en el intervalo de frecuencias entre 50 Hz y 150 Hz.

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

[Pxx,F] = periodogram(x,rectwin(length(x)),length(x),Fs);
pBand = bandpower(Pxx,F,[50 150],'psd');
pTot = bandpower(Pxx,F,'psd');
per_power = 100*(pBand/pTot)
per_power = 
49.1798

Cree una señal multicanal compuesta por tres sinusoides en ruido blanco gaussiano N(0,1) aditivo. Las frecuencias de las sinusoides son 100 Hz, 200 Hz y 300 Hz. La tasa de muestreo es 1 kHz y la señal tiene una duración de 1 s.

Fs = 1000;

t = 0:1/Fs:1-1/Fs;

f = [100;200;300];

x = cos(2*pi*f*t)'+randn(length(t),3);

Determine la potencia media de la señal y compárela con la norma 2.

p = bandpower(x)
p = 1×3

    1.5264    1.5382    1.4717

l2norm = dot(x,x)/length(x)
l2norm = 1×3

    1.5264    1.5382    1.4717

Argumentos de entrada

contraer todo

Introduzca datos de series temporales especificados como un vector fila, un vector columna o una matriz. Si x es una matriz, sus columnas se tratan como canales independientes.

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

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

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

Tasa de muestreo para los datos de series temporales de entrada, especificada como un escalar positivo.

Tipos de datos: double | single

Intervalo de frecuencias para el cálculo de la potencia de banda, especificado como vector fila o vector columna de dos elementos de valor real. Si la señal de entrada x contiene N muestras, freqrange debe estar dentro de los intervalos siguientes:

  • [0, fs/2] si x es de valor real y N es par

  • [0, (N – 1)fs/(2N)] si x es de valor real y N es impar

  • [–(N – 2)fs/(2N), fs/2] si x es de valor complejo y N es par

  • [–(N – 1)fs/(2N), (N – 1)fs/(2N)] si x es de valor complejo y N es impar

Tipos de datos: double | single

Estimaciones de la PSD unilateral o bilateral, especificadas como vector columna de valor real o matriz con elementos no negativos.

La densidad espectral de potencia debe expresarse en unidades lineales, no en decibelios. Utilice db2pow para convertir los valores de decibelios en valores de potencia.

Ejemplo: [pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2)) especifica la estimación del periodograma PSD de una sinusoide ruidosa de dos canales muestreada a 2π Hz y las frecuencias a las que se calcula.

Tipos de datos: double | single

Vector de frecuencia, especificado como vector columna. El vector de frecuencia f contiene las frecuencias correspondientes a las estimaciones de la PSD en pxx.

Tipos de datos: double | single

Argumentos de salida

contraer todo

Potencia media de banda, devuelta como un escalar no negativo.

Tipos de datos: double | single

Algoritmos

Para determinar la potencia de banda, bandpower calcula una estimación del espectro de potencia del periodograma utilizando una ventana rectangular.

Se puede obtener el mismo valor de potencia de banda, bPow, a partir de una señal x a una tasa de muestreo fs de estas tres maneras.

Directamente desde la señal
bPow = bandpower(x,fs,[0 fs/2])
A partir del periodograma de la señal
[P,F] = periodogram(x,[],[],fs);
bPow = bandpower(P,F,[0 fs/2],"psd")
A partir de la estimación espectral de potencia (PSD de Welch) de la señal
[P,F] = pwelch(x,rectwin(length(x)),[],[],fs);
bPow = bandpower(P,F,[0 fs/2],"psd")

Nota

Dado que bandpower utiliza una representación intermedia para transformar la señal de entrada de dominio de tiempo a dominio de frecuencia, la potencia de banda devuelta podría variar, dependiendo del método de transformación de la señal, el número de puntos DFT y el tamaño de la ventana.

Referencias

[1] Hayes, Monson H. Statistical Digital Signal Processing and Modeling. New York: John Wiley & Sons, 1996.

[2] Stoica, Petre, and Randolph Moses. Spectral Analysis of Signals. Upper Saddle River, NJ: Prentice Hall, 2005.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2013a

expandir todo

Consulte también

|