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.

meanfreq

Descripción

freq = meanfreq(x) estima la frecuencia media normalizada, , del espectro de potencia de una señal de dominio del tiempo, .freqx

ejemplo

freq = meanfreq(x,fs) estima la frecuencia media en términos de la frecuencia de muestreo, .fs

ejemplo

freq = meanfreq(pxx,f) devuelve la frecuencia media de una estimación de densidad espectral de potencia (PSD), .pxx Las frecuencias, , corresponden a las estimaciones en .fpxx

freq = meanfreq(sxx,f,rbw) devuelve la frecuencia media de una estimación del espectro de potencia, con ancho de banda de resolución.sxxrbw

freq = meanfreq(___,freqrange) especifica el intervalo de frecuencia sobre el que calcular la frecuencia media. Esta sintaxis puede incluir cualquier combinación de argumentos de entrada de sintaxis anteriores, siempre y cuando el segundo argumento de entrada sea o .fsf Si la segunda entrada se pasa como vacía, se asumirá la frecuencia normalizada. El valor predeterminado para es el ancho de banda completo de la señal de entrada.freqrange

ejemplo

[freq,power] = meanfreq(___) también devuelve la potencia de la banda, , del espectro.power Si especifica , contiene la potencia de banda dentro de .freqrangepowerfreqrange

meanfreq(___) sin argumentos de salida traza el PSD o el espectro de potencia y anota la frecuencia media.

Ejemplos

contraer todo

Generar 1024 muestras de un chirrido muestreado a 1024 kHz. El chirp tiene una frecuencia inicial de 50 kHz y alcanza los 100 kHz al final del muestreo. Agregue el ruido gaussiano blanco de tal forma que la relación señal-ruido sea de 40 dB. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

nSamp = 1024; Fs = 1024e3; SNR = 40; rng default  t = (0:nSamp-1)'/Fs;  x = chirp(t,50e3,nSamp/Fs,100e3); x = x+randn(size(x))*std(x)/db2mag(SNR);

Estimar la frecuencia media del chirrido. Trazar la densidad espectral de potencia (PSD) y anotar la frecuencia media.

meanfreq(x,Fs)

ans = 7.5032e+04 

Generar otro chirrido. Especifique una frecuencia inicial de 200 kHz, una frecuencia final de 300 kHz y una amplitud que sea el doble que la de la primera señal. Agregue ruido gaussiano blanco.

x2 = 2*chirp(t,200e3,nSamp/Fs,300e3); x2 = x2+randn(size(x2))*std(x2)/db2mag(SNR);

Concatenar los chirridos para producir una señal de dos canales. Estimar la frecuencia media de cada canal.

y = meanfreq([x x2],Fs)
y = 1×2
105 ×

    0.7503    2.4999

Trazar los PSD de los dos canales y anotar sus frecuencias medias.

meanfreq([x x2],Fs);

Agregue los dos canales para formar una nueva señal. Traza el PSD y anota la frecuencia media.

meanfreq(x+x2,Fs)

ans = 2.1496e+05 

Generar 1024 muestras de un sinusoides de 100.123 kHz muestreado a 1024 kHz. Agregue el ruido gaussiano blanco de tal forma que la relación señal-ruido sea de 40 dB. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

nSamp = 1024; Fs = 1024e3; SNR = 40; rng default  t = (0:nSamp-1)'/Fs;  x = sin(2*pi*t*100.123e3); x = x + randn(size(x))*std(x)/db2mag(SNR);

Utilice la función para calcular la densidad espectral de potencia (PSD) de la señal.periodogram Especifique una ventana Kaiser con la misma longitud que la señal y un factor de forma de 38. Calcule la frecuencia media de la señal y anote en una gráfica del PSD.

[Pxx,f] = periodogram(x,kaiser(nSamp,38),[],Fs);  meanfreq(Pxx,f);

Generar otro sinusoides, este con una frecuencia de 257.321 kHz y una amplitud que es el doble que el primer sinusoides. Añade ruido blanco.

x2 = 2*sin(2*pi*t*257.321e3); x2 = x2 + randn(size(x2))*std(x2)/db2mag(SNR);

Concatenar los sinusoides para producir una señal de dos canales. Calcule el PSD de cada canal y utilice el resultado para determinar la frecuencia media.

[Pyy,f] = periodogram([x x2],kaiser(nSamp,38),[],Fs);  y = meanfreq(Pyy,f)
y = 1×2
105 ×

    1.0013    2.5732

Anote las frecuencias medias de los dos canales en una gráfica de los PSD.

meanfreq(Pyy,f);

Agregue los dos canales para formar una nueva señal. Calcule el PSD y anote la frecuencia media.

[Pzz,f] = periodogram(x+x2,kaiser(nSamp,38),[],Fs);  meanfreq(Pzz,f);

Generar una señal cuyo PSD se asemeja a la respuesta de frecuencia de un filtro FIR de paso de banda de orden 88 con frecuencias de corte normalizadas

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>2</mn>
<mn>5</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>4</mn>
<mn>5</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra.

d = fir1(88,[0.25 0.45]);

Calcular la frecuencia media de la señal entre

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>3</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>6</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar el PSD y anotar la frecuencia media y el intervalo de medición.

meanfreq(d,[],[0.3 0.6]*pi);

Salida de la frecuencia media y la potencia de la banda del intervalo de medición. Especificar una frecuencia de muestreo de

<math display="block">
<mrow>
<mn>2</mn>
<mi>π</mi>
</mrow>
</math>
equivale a dejar la tasa sin establecer.

[mnf,power] = meanfreq(d,2*pi,[0.3 0.6]*pi);  fprintf('Mean = %.3f*pi, power = %.1f%% of total \n', ...     mnf/pi,power/bandpower(d)*100)
Mean = 0.373*pi, power = 75.6% of total  

Añadir un segundo canal con frecuencias de corte normalizadas

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>5</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>8</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y una amplitud que es una décima parte de la del primer canal.

d = [d;fir1(88,[0.5 0.8])/10]';

Calcular la frecuencia media de la señal entre

<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>3</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra y
<math display="block">
<mrow>
<mn>0</mn>
<mo>.</mo>
<mn>9</mn>
<mi>π</mi>
</mrow>
</math>
rad/muestra. Trazar el PSD y anotar la frecuencia media de cada canal y el intervalo de medición.

meanfreq(d,[],[0.3 0.9]*pi);

Salida de la frecuencia media de cada canal. Dividir por

<math display="block">
<mrow>
<mi>π</mi>
</mrow>
</math>
.

mnf = meanfreq(d,[],[0.3 0.9]*pi)/pi
mnf = 1×2

    0.3730    0.6500

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector o matriz. Si es un vector, se trata como un solo canal.x Si es una matriz, calcula la frecuencia media de cada columna de forma independiente. debe ser de valor finito.xmeanfreqxx

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

Frecuencia de muestreo, especificada como un escalar real positivo. La frecuencia de muestreo es el número de muestras por unidad de tiempo. Si el tiempo se mide en segundos, la frecuencia de muestreo está en hercios.

Tipos de datos: single | double

Densidad espectral de potencia (PSD), especificada como vector o matriz. Si es una matriz, calcula la frecuencia media de cada columna de forma independiente.pxxmeanfreqpxx

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

Ejemplo: especifica la estimación de la DSP de periodograma de un sinusoides de dos canales ruidoso muestreado a 2 oS y las frecuencias a las que se calcula.[pxx,f] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2))

Tipos de datos: single | double

Frecuencias, especificadas como vector.

Tipos de datos: single | double

Estimación del espectro de potencia, especificada como vector o matriz. Si es una matriz, calcula la frecuencia media de cada columna de forma independiente.sxxmeanfreqsxx

El espectro de potencia debe expresarse en unidades lineales, no en decibelios. Se utiliza para convertir valores de decibelios en valores de potencia.db2pow

Ejemplo: especifica la estimación del espectro de potencia del periodograma de un sinusoides de dos canales incrustado en el ruido gaussiano blanco y las frecuencias normalizadas a las que se calcula.[sxx,w] = periodogram(cos(pi./[4;2]*(0:159))'+randn(160,2),'power')

Tipos de datos: single | double

Ancho de banda de resolución, especificado como escalar positivo. El ancho de banda de resolución es el producto de dos valores: la resolución de frecuencia de la transformación discreta de Fourier y el ancho de banda de ruido equivalente de la ventana utilizada para calcular el PSD.

Tipos de datos: single | double

Rango de frecuencia, especificado como un vector de dos elementos de valores reales. Si no especifica , entonces utiliza todo el ancho de banda de la señal de entrada.freqrangemeanfreq

Tipos de datos: single | double

Argumentos de salida

contraer todo

Frecuencia media, especificada como escalar o vectorial.

  • Si especifica una frecuencia de muestreo, tiene las mismas unidades que .freqfs

  • Si no especifica una frecuencia de muestreo, tiene unidades de rad/muestra.freq

Potencia de banda, devuelta como escalar o vectorial.

Consulte también

| | | |

Introducido en R2015a