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.

spectrogram

Espectrograma utilizando la transformada de Fourier de tiempo corto

Descripción

ejemplo

s = spectrogram(x) devuelve la transformada de Fourier de tiempo corto de la señal de entrada, x. Cada columna de s contiene una estimación del contenido de la frecuencia de tiempo corto localizada en el tiempo de x.

s = spectrogram(x,window) utiliza window para dividir la señal en segmentos y disponerlos en ventanas.

ejemplo

s = spectrogram(x,window,noverlap) utiliza muestras de solapamiento noverlap entre segmentos contiguos.

ejemplo

s = spectrogram(x,window,noverlap,nfft) utiliza puntos de muestreo nfft para calcular la transformada discreta de Fourier.

[s,w,t] = spectrogram(___) devuelve un vector de frecuencias normalizadas, w, y un vector de instantes de tiempo, t, en los que se calcula el espectrograma. Esta sintaxis puede incluir cualquier combinación de argumentos de entrada de las sintaxis anteriores.

ejemplo

[s,f,t] = spectrogram(___,fs) devuelve un vector de frecuencias cíclicas, f, expresado en términos de la tasa de muestreo, fs. fs debe ser la quinta entrada a spectrogram. Para introducir una tasa de muestreo y seguir utilizando los valores predeterminados de los argumentos opcionales anteriores, especifique estos argumentos como vacíos, [].

ejemplo

[s,w,t] = spectrogram(x,window,noverlap,w) devuelve el espectrograma en las frecuencias normalizadas especificadas en w.

[s,f,t] = spectrogram(x,window,noverlap,f,fs) devuelve el espectrograma en las frecuencias cíclicas especificadas en f.

[___,ps] = spectrogram(___) devuelve también una matriz, ps, que contiene una estimación de la densidad espectral de potencia (PSD) o del espectro de potencia de cada segmento.

ejemplo

[___] = spectrogram(___,'reassigned') reasigna cada estimación de la PSD o del espectro de potencia a la ubicación de su centro de energía. Si su señal contiene componentes temporales o espectrales bien ubicados, esta opción genera un espectrograma más nítido.

ejemplo

[___,ps,fc,tc] = spectrogram(___) también devuelve dos matrices, fc y tc, que contienen la frecuencia y el tiempo del centro de energía de cada estimación de la PSD o del espectro de potencia.

[___] = spectrogram(___,freqrange) devuelve la estimación de la PSD o del espectro de potencia a lo largo del rango de frecuencia especificado por freqrange. Las opciones válidas para freqrange son 'onesided', 'twosided' y 'centered'.

ejemplo

[___] = spectrogram(___,Name,Value) especifica opciones adicionales con argumentos de par nombre-valor. Las opciones incluyen el umbral mínimo y la dimensión de tiempo de salida.

[___] = spectrogram(___,spectrumtype) devuelve estimaciones de la PSD si spectrumtype está especificado como 'psd' y devuelve estimaciones del espectro de potencia si spectrumtype está especificado como 'power'.

ejemplo

spectrogram(___) sin argumentos de salida representa el espectrograma en la ventana de la figura actual.

ejemplo

spectrogram(___,freqloc) especifica el eje en el que se desea representar la frecuencia.

Ejemplos

contraer todo

Genere muestras Nx=1024 de una señal que consista en una suma de sinusoides. Las frecuencias normalizadas de las sinusoides son 2π/5 rad/muestra y 4π/5 rad/muestra. La sinusoide de frecuencia superior tiene 10 veces la amplitud de la otra sinusoide.

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

w0 = 2*pi/5;
x = sin(w0*n)+10*sin(2*w0*n);

Calcule la transformada de Fourier de tiempo corto utilizando los valores predeterminados de la función. Represente el espectrograma.

s = spectrogram(x);

spectrogram(x,'yaxis')

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

Repita el cálculo.

  • Divida la señal en secciones de longitud nsc=Nx/4.5.

  • Disponga en ventanas las secciones utilizando una ventana Hamming.

  • Especifique el 50% de solapamiento entre las secciones contiguas.

  • Para calcular la FFT, utilice max(256,2p) puntos, donde p=log2nsc.

Verifique 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 = spectrogram(x,hamming(nsc),nov,nff);

maxerr = max(abs(abs(t(:))-abs(s(:))))
maxerr = 0

Divida la señal en ocho secciones de igual longitud, con un 50% de solapamiento entre las secciones. Especifique la misma longitud de FFT que en el paso anterior. Calcule la transformada de Fourier de tiempo corto y verifique que ofrece el mismo resultado que los dos procedimientos anteriores.

ns = 8;
ov = 0.5;
lsc = floor(Nx/(ns-(ns-1)*ov));

t = spectrogram(x,lsc,floor(ov*lsc),nff);

maxerr = max(abs(abs(t(:))-abs(s(:))))
maxerr = 0

Genere un chirp cuadrático, x, muestreado a 1 kHz durante 2 segundos. La frecuencia del chirp es de 100 Hz inicialmente y cruza 200 Hz en t = 1 s.

t = 0:0.001:2;
x = chirp(t,100,1,200,'quadratic');

Calcule y muestre el espectrograma de x.

  • Divida la señal en secciones de longitud 128, dispuestas en ventanas con una ventana Hamming.

  • Especifique 120 muestras de solapamiento entre secciones contiguas.

  • Evalúe el espectro en frecuencias 128/2+1=65 y bins de tiempo (length(x)-120)/(128-120)=235.

spectrogram(x,128,120,128,1e3)

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

Reemplace la ventana Hamming por una ventana de Blackman. Reduzca el solapamiento a 60 muestras. Represente el eje de tiempo de forma que sus valores aumenten de arriba abajo.

spectrogram(x,blackman(128),60,128,1e3)
ax = gca;
ax.YDir = 'reverse';

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

Calcule y muestre la PSD de cada segmento de un chirp cuadrático que empiece en 100 Hz y cruce 200 Hz en t = 1 segundo. Especifique una tasa de muestreo de 1 kHz, una longitud de segmento de 128 muestras y un solapamiento de 120 muestras. Utilice 128 puntos DFT y la ventana Hamming predeterminada.

fs = 1000;
t = 0:1/fs:2;
x = chirp(t,100,1,200,'quadratic');

spectrogram(x,128,120,128,fs,'yaxis')
title('Quadratic Chirp')

Figure contains an axes object. The axes object with title Quadratic Chirp contains an object of type image.

Calcule y muestre la PSD de cada segmento de un chirp lineal muestreado a 1 kHz que empiece en DC y cruce 150 Hz en t = 1 segundo. Especifique un segmento de 256 muestras y un solapamiento de 250 muestras. Utilice la ventana Hamming predeterminada y 256 puntos DFT.

x = chirp(t,0,1,150);

spectrogram(x,256,250,256,fs,'yaxis')
title('Linear Chirp')

Figure contains an axes object. The axes object with title Linear Chirp contains an object of type image.

Calcule y muestre la PSD de cada segmento de un chirp logarítmico muestreado a 1 kHz que empiece en 20 Hz y cruce 60 Hz en t = 1 segundo. Especifique un segmento de 256 muestras y un solapamiento de 250 muestras. Utilice la ventana Hamming predeterminada y 256 puntos DFT.

x = chirp(t,20,1,60,'logarithmic');

spectrogram(x,256,250,[],fs,'yaxis')
title('Logarithmic Chirp')

Figure contains an axes object. The axes object with title Logarithmic Chirp contains an object of type image.

Utilice una escala logarítmica para el eje de frecuencia. El espectrograma se convierte en una línea.

ax = gca;
ax.YScale = 'log';

Figure contains an axes object. The axes object with title Logarithmic Chirp contains an object of type surface.

Utilice la función spectrogram para medir y realizar un seguimiento de la frecuencia instantánea de una señal.

Genere un chirp cuadrático muestreado a 1 kHz durante dos segundos. Especifique el chirp de forma que su frecuencia sea inicialmente 100 Hz y aumente a 200 Hz al pasar un segundo.

fs = 1000;
t = 0:1/fs:2-1/fs;
y = chirp(t,100,1,200,'quadratic');

Calcule el espectro del chirp utilizando la transformada de Fourier de tiempo corto implementada en la función spectrogram. Divida la señal en secciones de longitud 100, dispuestas en ventanas con una ventana Hamming. Especifique 80 muestras de solapamiento entre secciones contiguas y evalúe el espectro en frecuencias 100/2+1=51.

spectrogram(y,100,80,100,fs,'yaxis')

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

Realice un seguimiento de la frecuencia del chirp buscando la cresta de tiempo-frecuencia con más energía en los puntos de tiempo (2000-80)/(100-80)=96. Superponga la frecuencia instantánea en la gráfica del espectrograma.

[~,f,t,p] = spectrogram(y,100,80,100,fs);

[fridge,~,lr] = tfridge(p,f);

hold on
plot3(t,fridge,abs(p(lr)),'LineWidth',4)
hold off

Figure contains an axes object. The axes object contains 2 objects of type image, line.

Genere 512 muestras de un chirp con contenido de frecuencia que varíe sinusoidalmente.

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

x = exp(1j*pi*sin(8*n/N)*32);

Calcule la transformada de Fourier de tiempo corto bilateral centrada del chirp. Divida la señal en segmentos de 32 muestras con un solapamiento de 16 muestras. Especifique 64 puntos DFT. Represente el espectrograma.

[scalar,fs,ts] = spectrogram(x,32,16,64,'centered');

spectrogram(x,32,16,64,'centered','yaxis')

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

Obtenga el mismo resultado calculando el espectrograma en 64 frecuencias equiespaciadas a lo largo del intervalo (-π,π]. La opción 'centered' no es necesaria.

fintv = -pi+pi/32:pi/32:pi;

[vector,fv,tv] = spectrogram(x,32,16,fintv);

spectrogram(x,32,16,fintv,'yaxis')

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

Genere una señal de chirp muestreada durante 2 segundos a 1 Hz. Especifique el chirp de forma que su frecuencia sea inicialmente 100 Hz y aumente a 200 Hz al pasar 1 segundo.

Fs = 1000;
t = 0:1/Fs:2;
y = chirp(t,100,1,200,'quadratic');

Calcule el espectrograma reasignado de la señal.

  • Divida la señal en secciones de longitud 128, dispuestas en ventanas con una ventana de Kaiser con el parámetro de forma β=18.

  • Especifique 120 muestras de solapamiento entre secciones contiguas.

  • Evalúe el espectro en frecuencias 128/2=65 y bins de tiempo (length(x)-120)/(128-120)=235.

spectrogram(y,kaiser(128,18),120,128,Fs,'reassigned','yaxis')

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

Genere una señal de chirp muestreada durante 2 segundos a 1 Hz. Especifique el chirp de forma que su frecuencia sea inicialmente 100 Hz y aumente a 200 Hz al pasar 1 segundo.

Fs = 1000;
t = 0:1/Fs:2;
y = chirp(t,100,1,200,'quadratic');

Calcule la densidad espectral de potencia (PSD) dependiente del tiempo de la señal.

  • Divida la señal en secciones de longitud 128, dispuestas en ventanas con una ventana de Kaiser con el parámetro de forma β=18.

  • Especifique 120 muestras de solapamiento entre secciones contiguas.

  • Evalúe el espectro en frecuencias 128/2=65 y bins de tiempo (length(x)-120)/(128-120)=235.

Obtenga como salida la frecuencia y el tiempo del centro de gravedad de cada estimación de PSD. Establezca en cero los elementos de la PSD inferiores a -30 dB.

[~,~,~,pxx,fc,tc] = spectrogram(y,kaiser(128,18),120,128,Fs, ...
    'MinThreshold',-30);

Represente los elementos distintos de cero como funciones de las frecuencias y tiempos del centro de gravedad.

plot(tc(pxx>0),fc(pxx>0),'.')

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

Genere una señal muestreada a 1024 Hz durante 2 segundos.

nSamp = 2048;
Fs = 1024;
t = (0:nSamp-1)'/Fs;

Durante el primer segundo, la señal consiste en una sinusoide de 400 Hz y un chirp cuadrático cóncavo. Especifique el chirp de forma que sea simétrico alrededor del punto de en medio del intervalo, empezando y acabando en una frecuencia de 250 Hz y alcanzando un mínimo de 150 Hz.

t1 = t(1:nSamp/2);

x11 = sin(2*pi*400*t1);
x12 = chirp(t1-t1(nSamp/4),150,nSamp/Fs,1750,'quadratic');
x1 = x11+x12;

El resto de la señal consiste en dos chirps lineales de frecuencia decreciente. Un chirp tiene una frecuencia inicial de 250 Hz que disminuye hasta 100 Hz. El otro chirp tiene una frecuencia inicial de 400 Hz que disminuye hasta 250 Hz.

t2 = t(nSamp/2+1:nSamp);

x21 = chirp(t2,400,nSamp/Fs,100);
x22 = chirp(t2,550,nSamp/Fs,250);
x2 = x21+x22;

Añada ruido blanco gaussiano a la señal. Especifique una relación señal/ruido de 20 dB. Reinicie el generador de números aleatorios para obtener resultados reproducibles.

SNR = 20;
rng('default')

sig = [x1;x2];
sig = sig + randn(size(sig))*std(sig)/db2mag(SNR);

Calcule y represente el espectrograma de la señal. Especifique una ventana de Kaiser de longitud 63 con el parámetro de forma β=17, 10 muestras menos de solapamiento entre secciones contiguas, y una longitud de FFT de 256.

nwin = 63;
wind = kaiser(nwin,17);
nlap = nwin-10;
nfft = 256;

spectrogram(sig,wind,nlap,nfft,Fs,'yaxis')

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

Determine el umbral del espectrograma para que los elementos con valores inferiores a la SNR se establezcan en cero.

spectrogram(sig,wind,nlap,nfft,Fs,'MinThreshold',-SNR,'yaxis')

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

Reasigne cada estimación de la PSD a la ubicación de su centro de energía.

spectrogram(sig,wind,nlap,nfft,Fs,'reassign','yaxis')

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

Determine el umbral del espectrograma reasignado para que los elementos con valores inferiores a la SNR se establezcan en cero.

spectrogram(sig,wind,nlap,nfft,Fs,'reassign','MinThreshold',-SNR,'yaxis')

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

Cargue una señal de audio que contenga dos chirps decrecientes y un sonido de salpicadura de banda ancha. Calcule la transformada de Fourier de tiempo corto. Divida la forma de onda en segmentos de 400 muestras con 300 muestras de solapamiento. Represente el espectrograma.

load splat

% To hear, type soundsc(y,Fs)

sg = 400;
ov = 300;

spectrogram(y,sg,ov,[],Fs,'yaxis')
colormap bone

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

Utilice la función spectrogram para emitir la densidad espectral de potencia (PSD) de la señal.

[s,f,t,p] = spectrogram(y,sg,ov,[],Fs);

Realice un seguimiento de los dos chirps utilizando la función medfreq. Para encontrar el chirp de baja frecuencia más potente, restrinja la búsqueda a las frecuencias por encima de 100 Hz y a los tiempos anteriores al inicio del sonido de banda ancha.

f1 = f > 100;
t1 = t < 0.75;

m1 = medfreq(p(f1,t1),f(f1));

Para encontrar el chirp de baja frecuencia más débil, restrinja la búsqueda a las frecuencias por encima de 2500 Hz y a tiempos entre 0,3 segundos y 0,65 segundos.

f2 = f > 2500;
t2 = t > 0.3 & t < 0.65;

m2 = medfreq(p(f2,t2),f(f2));

Superponga el resultado en el espectrograma. Divida los valores de frecuencia entre 1000 para expresarlos en kHz.

hold on
plot(t(t1),m1/1000,'linewidth',4)
plot(t(t2),m2/1000,'linewidth',4)
hold off

Figure contains an axes object. The axes object contains 3 objects of type image, line.

Genere dos segundos de una señal muestreada a 10 kHz. Especifique la frecuencia instantánea de la señal como una función triangular de tiempo.

fs = 10e3;
t = 0:1/fs:2;
x1 = vco(sawtooth(2*pi*t,0.5),[0.1 0.4]*fs,fs);

Calcule y represente el espectrograma de la señal. Utilice una ventana de Kaiser de longitud 256 y parámetro de forma β=5. Especifique 220 muestras de solapamiento sección a sección y 512 puntos DFT. Represente la frecuencia en el eje y. Utilice el mapa de colores y la vista predeterminados.

spectrogram(x1,kaiser(256,5),220,512,fs,'yaxis')

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

Cambie la vista para mostrar el espectrograma como gráfica de cascada. Establezca el mapa de colores en bone.

view(-45,65)
colormap bone

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

Argumentos de entrada

contraer todo

Señal de entrada, especificada como un vector fila o vector columna.

Ejemplo: cos(pi/4*(0:159))+randn(1,160) especifica una sinusoide integrada en ruido blanco gaussiano.

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

Ventana, especificada como un entero o como un vector fila o vector columna. Utilice window para dividir la señal en segmentos:

  • Si window es un entero, spectrogram divide x en segmentos de longitud window y dispone en ventanas cada segmento con una ventana Hamming de esa longitud.

  • Si window es un vector, spectrogram divide x en segmentos de la misma longitud que el vector y dispone en ventanas cada segmento utilizando window.

Si la longitud de x no puede dividirse exactamente en un número entero de segmentos con muestras solapadas noverlap, x se trunca en consecuencia.

Si especifica window como vacío, spectrogram utiliza una ventana Hamming de forma que x se divide en ocho segmentos con muestras solapadas noverlap.

Para obtener una lista de las ventanas disponibles, consulte Ventanas.

Ejemplo: hann(N+1) y (1-cos(2*pi*(0:N)'/N))/2 especifican ambas una ventana de Hann de longitud N + 1.

Número de muestras solapadas, especificado como entero positivo.

  • Si window es escalar, noverlap debe ser menor que window.

  • Si window es un vector, noverlap debe ser menos que la longitud de window.

Si especifica noverlap como vacío, spectrogram utiliza un número que genera un 50% de solapamiento entre segmentos. Si no se especifica la longitud del segmento, la función establece noverlap en Nx/4.5⌋, donde Nx es la longitud de la señal de entrada y los símbolos ⌊⌋ determinan la función de suelo.

Número de puntos DFT, especificado como escalar entero positivo. Si especifica nfft como vacío, spectrogram establece el parámetro en max(256,2p), donde p = ⌈log2 Nw, los símbolos ⌈⌉ determinan la función de techo, y

  • Nw = window si window es un escalar.

  • Nw = length(window) si window es un vector.

Frecuencias normalizadas, especificadas como vector. w debe tener al menos dos elementos porque, de lo contrario, la función lo interpreta como nfft. Las frecuencias normalizadas están en rad/muestra.

Ejemplo: pi./[2 4]

Frecuencias cíclicas, especificadas como vector. f debe tener al menos dos elementos porque, de lo contrario, la función lo interpreta como nfft. Las unidades de f vienen especificadas por la tasa de muestreo, fs.

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 estará en Hz.

Rango de frecuencia para la estimación de la PSD, especificado como 'onesided', 'twosided' o 'centered'. En señales de valor real, el valor predeterminado es 'onesided'. En señales de valor complejo, el valor predeterminado es 'twosided', y especificar 'onesided' da como resultado un error.

  • 'onesided' devuelve el espectrograma unilateral de una señal de entrada real. Si nfft es par, ps tiene nfft/2 + 1 filas y se calcula en el intervalo [0, π] rad/muestra. Si nfft es impar, ps tiene (nfft + 1)/2 filas y el intervalo es [0, π) rad/muestra. Si especifica fs, los intervalos son respectivamente [0, fs/2] ciclos/unidad de tiempo y [0, fs/2) ciclos/unidad de tiempo.

  • 'twosided' devuelve el espectrograma bilateral de una señal real o compleja. ps tiene nfft filas y se calcula en el intervalo [0, 2π) rad/muestra. Si especifica fs, el intervalo es [0, fs] ciclos/unidad de tiempo.

  • 'centered' devuelve el espectrograma bilateral centrado de una señal real o compleja. ps tiene nfft filas. Si nfft es par, ps se calcula en el intervalo (–π, π] rad/muestra. Si nfft es impar, ps se calcula en (–π, π) rad/muestra. Si especifica fs, los intervalos son respectivamente (–fs/2, fs/2] ciclos/unidad de tiempo y (–fs/2, fs/2) ciclos/unidad de tiempo.

Escalado del espectro de potencia, especificado como 'psd' o 'power'.

  • Omitir spectrumtype o especificar 'psd' devuelve la densidad espectral de potencia.

  • Especificando 'power', se escala cada estimación de PSD por el ancho de banda de ruido equivalente de la ventana. El resultado es una estimación de la potencia en cada frecuencia. Si la opción 'reassigned' está activada, la función integra la PSD en la anchura de cada bin de frecuencia antes de reasignar.

Eje de visualización de la frecuencia, especificado como 'xaxis' o 'yaxis'.

  • 'xaxis' muestra la frecuencia en el eje x y el tiempo en el eje y.

  • 'yaxis' muestra la frecuencia en el eje y y el tiempo en el eje x.

Este argumento se ignora si se llama a spectrogram con argumentos de salida.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: spectrogram(x,100,'OutputTimeDimension','downrows') divide x en segmentos de longitud 100 y dispone en ventanas cada segmento con una ventana Hamming de esa longitud. La salida del espectrograma tiene una dimensión de tiempo en las filas.

Umbral, especificado como el par separado por comas que consta de MinThreshold y un escalar real expresado en decibelios. spectrogram establece en cero esos elementos de s de forma que 10 log10(s) ≤ thresh.

Dimensión de tiempo de salida, especificada como par separado por comas que consta de OutputTimeDimension y acrosscolumns o downrows. Establezca este valor en downrows si desea la dimensión de tiempo de s, ps, fc y tc en las filas y la dimensión de frecuencia en las columnas. Establezca este valor en acrosscolumns si desea la dimensión de tiempo de s, ps, fc y tc en las columnas y la dimensión de frecuencia en las filas. Esta entrada se ignora si se llama a la función sin argumentos de salida.

Argumentos de salida

contraer todo

Transformada de Fourier de tiempo corto, devuelta como matriz. El tiempo aumenta en las columnas de s y la frecuencia se reduce en las filas, empezando desde cero.

  • Si x es una señal de longitud Nx, s tiene columnas k, donde

    • k = ⌊(Nxnoverlap)/(windownoverlap)⌋ si window es un escalar.

    • k = ⌊(Nxnoverlap)/(length(window)noverlap)⌋ si window es un vector.

  • Si x es real y nfft es par, s tiene (nfft/2 + 1) filas.

  • Si x es real y nfft es impar, s tiene (nfft + 1)/2 filas.

  • Si x es compleja, s tiene nfft filas.

Nota

Cuando freqrange se establece en 'onesided', spectrogram emite los valores s en el rango positivo de Nyquist y no conserva la potencia total.

s no se ve afectada por la opción 'reassigned'.

Frecuencias normalizadas, devueltas como vector. w tiene una longitud igual al número de filas de s.

Instantes de tiempo, devueltos como vector. Los valores de tiempo en t corresponden al punto de en medio de cada segmento.

Frecuencias cíclicas, devueltas como vector. f tiene una longitud igual al número de filas de s.

Densidad espectral de potencia (PSD) o espectro de potencia, devueltos como matriz.

  • Si x es real y freqrange se establece en 'onesided', ps contiene la estimación del periodograma unilateral modificado de la PSD o del espectro de potencia de cada segmento. La función multiplica la potencia por 2 en todas las frecuencias excepto 0 y la frecuencia de Nyquist para conservar la potencia total.

  • Si x es compleja y freqrange se establece en 'twosided' o 'centered', o si especifica un vector de frecuencias, ps contiene la estimación del periodograma bilateral modificado de la PSD o del espectro de potencia de cada segmento.

Frecuencias y tiempos del centro de energía, devueltos como matrices del mismo tamaño que la transformada de Fourier de tiempo corto. Si no especifica una tasa de muestreo, los elementos de fc se devuelven como frecuencias normalizadas.

Sugerencias

Si una transformada de Fourier de tiempo corto tiene ceros, su conversión a decibelios da como resultado infinitos negativos que no pueden representarse. Para evitar esta posible dificultad, spectrogram añade eps a la transformada de Fourier de tiempo corto cuando la llama sin argumentos de salida.

Referencias

[1] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

[2] Rabiner, Lawrence R., and Ronald W. Schafer. Digital Processing of Speech Signals. Englewood Cliffs, NJ: Prentice-Hall, 1978.

[3] Chassande-Motin, Éric, François Auger, and Patrick Flandrin. “Reassignment.” In Time-Frequency Analysis: Concepts and Methods. Edited by Franz Hlawatsch and François Auger. London: ISTE/John Wiley and Sons, 2008.

[4] 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

Historial de versiones

Introducido antes de R2006a