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.

pmusic

Pseudospectrum usando el algoritmo MUSIC

Descripción

ejemplo

[S,wo] = pmusic(x,p) implementa el algoritmo de clasificación de señal múltiple (MUSIC) y devuelve, la estimación pseudoespectro de la señal de entrada y un vector de frecuencias normalizadas (en rad/muestra) en el que se evalúa el pseudoespectro.Sxwo Puede especificar la dimensión del subespacio de señal utilizando el argumento de entrada .p

[S,wo] = pmusic(x,p,wi) devuelve el pseudoespectro calculado a las frecuencias normalizadas especificadas en vector .wi El vector debe tener dos o más elementos, porque de lo contrario la función lo interpreta como .winfft

[S,wo] = pmusic(___,nfft) especifica la longitud de entero del FFT, , utilizado para estimar el pseudoespectro.nfft Esta sintaxis puede incluir cualquier combinación de argumentos de entrada de sintaxis anteriores.

ejemplo

[S,wo] = pmusic(___,'corr') obliga a interpretar el argumento de entrada como una matriz de correlación en lugar de una matriz de datos de señal.x Para esta sintaxis, debe ser una matriz cuadrada y todos sus valores propios deben ser no negativos.x

ejemplo

[S,fo] = pmusic(x,p,nfft,fs) devuelve el pseudoespectro calculado a las frecuencias especificadas en vector (en Hz).fo Suministre la frecuencia de muestreo en Hz.fs

[S,fo] = pmusic(x,p,fi,fs) devuelve el pseudoespectro calculado a las frecuencias especificadas en el vector.fi El vector debe tener dos o más elementos, porque de lo contrario la función lo interpreta como .finfft

ejemplo

[S,fo] = pmusic(x,p,nfft,fs,nwin,noverlap) devuelve el pseudoespectro segmentando los datos de entrada utilizando la ventana y la longitud de superposición.Sxnwinnoverlap

[___] = pmusic(___,freqrange) especifica el rango de valores de frecuencia que se incluirán en o .fowo

[___,v,e] = pmusic(___) devuelve la matriz de eigenvectores de ruido junto con los valores propios asociados en el vector .ve

ejemplo

pmusic(___) sin argumentos de salida traza el pseudoespectro en la ventana de figura actual.

Ejemplos

contraer todo

En este ejemplo se analiza un vector de señal, , suponiendo que dos componentes sinusoidales reales están presentes en el subespacio de la señal.x En este caso, la dimensión del subespacio de la señal es 4, porque cada sinusoides real es la suma de dos exponenciales complejos.

n = 0:199; x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n)); pmusic(x,4)      % Set p to 4 because there are two real inputs

Este ejemplo analiza el mismo vector de señal, , con un límite de valor propio del 10% por encima del mínimo.x La configuración obliga a que la decisión del subespacio señal/ruido se base en el parámetro de umbral, .p(1) = Infp(2) Especifique los eigenvectores de la longitud 7 utilizando el argumento y establezca la frecuencia de muestreo, , en 8 kHz:nwinfs

rng default n = 0:199; x = cos(0.257*pi*n) + sin(0.2*pi*n) + 0.01*randn(size(n)); [P,f] = pmusic(x,[Inf,1.1],[],8000,7); % Window length = 7 plot(f,20*log10(abs(P))) xlabel 'Frequency (Hz)', ylabel 'Power (dB)' title 'Pseudospectrum Estimate via MUSIC', grid on

Proporcione una matriz de correlación definida positiva, , para estimar la densidad espectral.R Utilice los 256 ejemplos predeterminados.

R = toeplitz(cos(0.1*pi*(0:6))) + 0.1*eye(7); pmusic(R,4,'corr')

Introduzca una matriz de datos de señal, generada a partir de datos utilizando .Xmcorrmtx

n = 0:699; x = cos(0.257*pi*(n)) + 0.1*randn(size(n)); Xm = corrmtx(x,7,'modified'); pmusic(Xm,2)

Utilice la misma señal, pero deje formar la matriz de datos 100 por 7 utilizando sus argumentos de entrada de ventana.pmusic Además, especifique un FFT de longitud 512.

n = 0:699; x = cos(0.257*pi*(n)) + 0.1*randn(size(n)); [PP,ff] = pmusic(x,2,512,[],7,0); pmusic(x,2,512,[],7,0)

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector o matriz. Si es un vector, entonces se trata como una observación de la señal.x Si es una matriz, cada fila de representa una observación separada de la señal.xx Por ejemplo, cada fila es una salida de una matriz de sensores, como en el procesamiento de matrices, como es una estimación de la matriz de correlación.x'*x

Nota

Puede utilizar la salida de para generar .corrmtxx

Soporte de números complejos:

Dimensión subespacial, especificada como un entero positivo real o un vector de dos elementos. Si es un entero positivo real, se trata como la dimensión subespacial.p Si es un vector de dos elementos, el segundo elemento de representa un umbral que se multiplica porpp λmin, el valor propio estimado más pequeño de la matriz de correlación de la señal. Valores propios por debajo del umbral λmin*p(2) se asignan al subespacio de ruido. En este caso, p(1) especifica la dimensión máxima del subespacio de la señal. El parámetro de umbral adicional en la segunda entrada proporciona más flexibilidad y control en la asignación de los subespacios de ruido y señal.p

Nota

Si las entradas son sinusoides reales, establezca el valor de duplicar el número de sinusoides.peigp Si las entradas son sinusoides complejos, establezca igual al número de sinusoides.p

Soporte de números complejos:

Frecuencias normalizadas de entrada, especificadas como vector.

Tipos de datos: double

Número de puntos DFT, especificado como un entero positivo. Si se especifica como vacío, se utiliza el valor predeterminado.nfftnfft

Frecuencia de muestreo, especificada como escalar positivo en Hz. en Hz. Si especifica con el vector vacío [], la frecuencia de muestreo tiene como valor predeterminado Hz.fs1

Frecuencias de entrada, especificadas como vector. El pseudoespectro se calcula en las frecuencias especificadas en el vector.

Longitud de la ventana rectangular, especificada como un entero no negativo.

Número de muestras superpuestas, especificada como un entero no negativo menor que la longitud de la ventana.

Nota

Los argumentos y se omiten cuando se incluye en la sintaxis.nwinnoverlap'corr'

Rango de frecuencia de estimaciones de pseudoespectro, especificado como uno de , , o .'half'whole'centered'

  • — Devuelve la mitad del espectro de una señal de entrada real.'half'x Si es par, entonces tiene longitud /2 + 1 y se calcula en el intervalo [0, ].nfftSnfftπ Si es impar, la longitud de es ( + 1)/2 y el intervalo de frecuencia es [0, ).nfftSnfftπ Cuando especifique , los intervalos son [0, /2) y [0, /2] para par e impar , respectivamente.fsfsfsnfft

  • — Devuelve todo el espectro para la entrada real o compleja.'whole'x En este caso, tiene longitud y se calcula en el intervalo [0, 2 ).Snfftπ Cuando se especifica , el intervalo de frecuencia es [0, ).fsfs

  • — Devuelve todo el espectro centrado para la entrada real o compleja.'centered'x En este caso, tiene longitud y se calcula a lo largo del intervalo (– , ] para par y (– , ) para impar .Snfftππnfftππnfft Cuando se especifica , los intervalos de frecuencia son (– /2, /2] y (– /2, /2) para par e impar , respectivamente.fsfsfsfsfsnfft

Nota

Puede colocar los argumentos o en cualquier lugar de la lista de argumentos de entrada después de .freqrange'corr'p

Argumentos de salida

contraer todo

Estimación de pseudoespectro, devuelta como vector. El pseudoespectro se calcula utilizando estimaciones de los eigenvectores de una matriz de correlación asociada a los datos de entrada.x

Frecuencias normalizadas de salida, especificadas como vector. y tienen la misma longitud.Swo En general, la longitud del FFT y los valores de la entrada determinan la longitud de la calculada y el rango de las frecuencias normalizadas correspondientes.xS La tabla indica la longitud de (y ) y el rango de las frecuencias normalizadas correspondientesSwo para la primera sintaxis.

Características S para una longitud FFT de 256 (predeterminado)

Tipo de datos de entradaLongitud de S y w0Rango de las Frecuencias Normalizadas Correspondientes

Real

129

[0, ]π

Complejo

256

[0, 2 )π

Si se especifica, la tabla siguiente indica la longitud y el intervalo de frecuencia para .nfftSwowo

Características del vector S y de frecuencia

Tipo de datos de entradanfft Par o ExtrañoLongitud de S y wRango de w

Real

Incluso

(nfft/2 )+ 1

[0, ]π

Real

Extraño

(nfft + 1)/2

[0, )π

Complejo

Par o impar

nfft

[0, 2 )π

Frecuencia de salida, devuelta como vector. El rango de frecuencia para depende de , , y los valores de la entrada .fonfftfsx La longitud de (y ) es la misma que en la anterior.SfoCaracterísticas del vector S y de frecuencia En la tabla siguiente se indica el intervalo de frecuencia para if y se especifican.fonfftfs

S y Características vectoriales de frecuencia con fs Especificado

Tipo de datos de entrada

nfft Even/Odd

Alcance de f

Real

Incluso

[0, /2]fs

Real

Extraño

[0, /2)fs

Complejo

Par o impar

[0, )fs

Además, si y también se especifican, los datos de entrada se segmentan y se ventanan antes de que se formule la matriz utilizada para estimar la matriz de correlación igenvalues.nwinnoverlapx La segmentación de los datos depende de , , y la forma de .nwinnoverlapx Los comentarios sobre los segmentos en ventana resultantes se describen en la tabla siguiente.

Datos con ventanas Dependiendo de x y nwin 

forma de x

Forma de nwin

Datos con ventanas

Vector de datos

Escalar

La longitud es .nwin

Vector de datos

Vector de coeficientes

La longitud es .length(nwin)

Matriz de datos

Escalar

Los datos no se muestran en ventanas.

Matriz de datos

Vector de coeficientes

debe ser el mismo que la longitud de columna de , y no se utiliza.length(nwin)xnoverlap

Consulte la información relacionada sobre esta sintaxis.Longitud del Eigenvector dependiendo de los datos de entrada y la sintaxis

Los autovectores de ruido, devueltos como una matriz. Las columnas de abarcar el subespacio de ruido de la cota .vsize(v,2) La dimensión del subespacio de la señal es .size(v,1)-size(v,2)

Valores propios estimados de la matriz de correlación, devueltos como vector.

Sugerencias

En el proceso de estimación del pseudoespectro, calcula los subespacios de ruido y señal de los eigenvectores estimadospmusic j y valores propios Λj de la matriz de correlación de la señal. El más pequeño de estos valores propios se utiliza junto con el parámetro de umbral para afectar a la dimensión del subespacio de ruido en algunos casos.p(2)

La longitud de los eigenvectores calculados por es la suma de las dimensiones de los subespacios de señal y ruido.npmusic Esta longitud de eigenvector depende de la entrada (datos de señal o matriz de correlación) y de la sintaxis que utilice.

En la tabla siguiente se resume la dependencia de la longitud de eigenvector en el argumento de entrada.

Longitud del Eigenvector dependiendo de los datos de entrada y la sintaxis

Forma de datos de entrada x

Comentarios sobre la sintaxis

Longitud n de Los Eigenvectores

Vector de fila o columna

se especifica como un entero escalar.nwin

nwin

Vector de fila o columna

se especifica como un vector.nwin

length(nwin)

Vector de fila o columna

no se especifica.nwin

2op(1)

-por matrizlm

Si se especifica como escalar, no se utiliza.nwin Si se especifica como vector, debe ser igual a .nwinlength(nwin)m

m

-por matriz definida no negativamm

se especifica y no se utiliza.'corr'nwin

m

Debe especificar > o > si desea que > tenga algún efecto.nwinp(1)length(nwin)p(1)p(2)1

Algoritmos

El algoritmo de clasificación de señal esmanualte múltiple (MUSIC) estima el pseudoespectro de una señal o una matriz de correlación utilizando el método de análisis eigenspace de Schmidt.[1] El algoritmo realiza un análisis eigenspace de la matriz de correlación de la señal para estimar el contenido de frecuencia de la señal. Este algoritmo es particularmente adecuado para señales que son la suma de los sinusoides con ruido gaussiano blanco aditivo. Los valores propios y los autovectores de la matriz de correlación de la señal se estiman si no se suministra la matriz de correlación.

La estimación del pseudoespectro MUSIC es dada por

PMUSIC(f)=1eH(f)(k=p+1NvkvkH)e(f)=1k=p+1N|vkHe(f)|2

¿dónde está la dimensión de los eigenvectores yN k es el ese eigenvector de la matriz de correlación.k El entero es la dimensión del subespacio de la señal, por lo que los eigenvectoresp k utilizado en la suma corresponden a los valores propios más pequeños y también abarcan el subespacio de ruido. El vector e( ) consiste en exponenciales complejos, por lo que el producto internof

vkHe(f)

equivale a una transformación de Fourier. Esto se utiliza para el cálculo de la estimación del pseudoespectro. El FFT se calcula para cada k y luego se suman las magnitudes cuadradas.

Referencias

[1] Marple, S. Lawrence. Digital Spectral Analysis. Englewood Cliffs, NJ: Prentice-Hall, 1987, pp. 373–378.

[2] Schmidt, R. O. “Multiple Emitter Location and Signal Parameter Estimation.” IEEE® Transactions on Antennas and Propagation. Vol. AP-34, March, 1986, pp. 276–280.

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

Consulte también

| | | | | | | |

Introducido antes de R2006a