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.

fillgaps

Rellene los huecos mediante el modelado autorregresivo

Descripción

ejemplo

y = fillgaps(x) reemplaza cualquier s presente en una señal con estimaciones extrapoladas de los ajustes autorregresivos hacia delante e inverso de las muestras restantes.NaNx Si es una matriz, la función trata cada columna como un canal independiente.x

ejemplo

y = fillgaps(x,maxlen) especifica el número máximo de muestras que se utilizarán en la estimación. Utilice este argumento cuando su señal no está bien caracterizada a lo largo de su gama por un único proceso autorregresivo.

ejemplo

y = fillgaps(x,maxlen,order) especifica el orden del modelo autorregresivo utilizado para reconstruir los huecos.

ejemplo

fillgaps(___) sin argumentos de salida traza las muestras originales y la señal reconstruida. Esta sintaxis acepta cualquier argumento de entrada de sintaxis anteriores.

Ejemplos

contraer todo

Cargue una señal de voz muestreada en

<math display="block">
<mrow>
<msub>
<mrow>
<mi>F</mi>
</mrow>
<mrow>
<mi>s</mi>
</mrow>
</msub>
<mo>=</mo>
<mn>7</mn>
<mn>4</mn>
<mn>1</mn>
<mn>8</mn>
<mspace width="0.2777777777777778em"></mspace>
<mstyle mathvariant="normal">
<mrow>
<mi>H</mi>
<mi>z</mi>
</mrow>
</mstyle>
</mrow>
</math>
. El archivo contiene una grabación de una voz femenina que dice la palabra "MATLAB®." Reproduce el sonido.

load mtlb  % To hear, type soundsc(mtlb,Fs)

Simular una situación en la que un canal de transmisión ruidoso daña partes de la señal irremediablemente. Introducir brechas de longitud aleatoria aproximadamente cada 500 muestras. Restablezca el generador de números aleatorios para obtener resultados reproducibles.

rng default  gn = 3;  mt = mtlb;  gl = randi([300 600],gn,1);  for kj = 1:gn     mt(kj*1000+randi(100)+(1:gl(kj))) = NaN; end

Trace las señales originales y dañadas. Compensar la señal dañada para facilitar la visualización. Reproduzca la señal con los huecos.

plot([mtlb mt+4]) legend('Original','Corrupted')

 % To hear, type soundsc(mt,Fs)

Reconstruir la señal utilizando un proceso autorregresivo. Se usa con la configuración predeterminada.fillgaps Graficar las señales originales y reconstruidas, de nuevo usando un offset. Reproduzca la señal reconstruida.

lb = fillgaps(mt);  plot([mtlb lb+4]) legend('Original','Reconstructed')

 % To hear, type soundsc(lb,Fs)

Cargue un archivo que contenga mediciones de profundidad de un molde utilizado para la menta de un centavo de Estados Unidos. Los datos, tomados en el Instituto Nacional de estándares y tecnología, se muestrean en una red 128-by-128.

load penny

Dibuje una gráfica de contorno con 25 líneas de contorno de color cobre.

nc = 25;  contour(P,nc) colormap copper axis ij square

Introducir las brechas de 4 10 por 10 en los datos. Dibuje una gráfica de contorno de la señal dañada.

P(50:60,80:90) = NaN; P(100:110,20:30) = NaN; P(100:110,100:110) = NaN; P(20:30,110:120) = NaN;  contour(P,nc) colormap copper axis ij square

Se utiliza para reconstruir los datos, tratando cada columna como un canal independiente.fillgaps Especifique un modelo autorregresivo de 8 órdenes extrapolado a partir de 30 muestras en cada extremo. Dibuje una gráfica de contorno de la reconstrucción.

q = fillgaps(P,30,8);  contour(q,nc) colormap copper axis ij square

Genere una función que consista en la suma de dos sinusoides y una curva de Lorentzian. La función se muestrea a 200 Hz durante 2 segundos. Graficar el resultado.

x = -1:0.005:1;  f = 1./(1+10*x.^2)+sin(2*pi*3*x)/10+cos(25*pi*x)/10;  plot(x,f)

Inserte huecos a intervalos (-0.8,-0,6), (-0.2, 0.1) y (0.4, 0.7).

h = f;  h(x>-0.8 & x<-0.6) = NaN; h(x>-0.2 & x< 0.1) = NaN; h(x> 0.4 & x< 0.7) = NaN;

Rellene los huecos utilizando la configuración predeterminada de.fillgaps Graficar las funciones originales y reconstruidas.

y = fillgaps(h);  plot(x,f,'.',x,y)

Repita el cálculo, pero ahora especifique una longitud máxima de secuencia de predicción de 3 muestras y un orden de modelo de 1. Graficar las funciones originales y reconstruidas. En su forma más simple, realiza un ajuste lineal.fillgaps

y = fillgaps(h,3,1);  plot(x,f,'.',x,y)

Especifique una longitud máxima de secuencia de predicción de 80 muestras y un orden de modelo de 40. Graficar las funciones originales y reconstruidas.

y = fillgaps(h,80,40);  plot(x,f,'.',x,y)

Cambie el orden del modelo a 70. Graficar las funciones originales y reconstruidas.

y = fillgaps(h,80,70);  plot(x,f,'.',x,y)

La reconstrucción es imperfecta porque las órdenes de modelo muy altas a menudo tienen problemas con la precisión finita.

Genere una señal multicanal que consista en dos instancias de un chirp muestreado a 1 kHz durante 1 segundo. La frecuencia del Chirp es cero a 0,3 segundos y aumenta linealmente para alcanzar un valor final de 40 Hz. Cada instancia tiene un valor de DC diferente.

Fs = 1000; t = 0:1/Fs:1-1/Fs; r = chirp(t-0.3,0,0.7,40); f = 1.1; q = [r-f;r+f]';

Introducir lagunas en la señal. Uno de los huecos cubre la región de baja frecuencia, y el otro cubre la región de alta frecuencia.

gap = (460:720); q(gap-300,1) = NaN; q(gap+200,2) = NaN;

Rellene los huecos con los parámetros predeterminados. Trace las señales reconstruidas.

y = fillgaps(q);  plot(t,y)

Llene los huecos al ajustar los modelos autorregresivos de 14 órdenes a la señal. Limite los modelos para incorporar 15 muestras al final de cada hueco. Utilice la funcionalidad de trazar las reconstrucciones.fillgaps

fillgaps(q,15,14)

Aumente el número de muestras a utilizar en la estimación a 150. Aumente el orden del modelo a 140.

fillgaps(q,150,140)

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector o matriz. Si es una matriz, sus columnas se tratan como canales independientes. contiene s para representar las muestras faltantes.xxNaN

Ejemplo: es una señal de vector de fila de un solo canal que falta el 40% de sus muestras.cos(pi/4*(0:159))+reshape(ones(32,1)*[0 NaN 0 NaN 0],1,160)

Ejemplo: es una señal de dos canales con grandes huecos.cos(pi./[4;2]*(0:159))'+reshape(ones(64,1)*[0 NaN 0 NaN 0],160,2)

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

Longitud máxima de las secuencias de predicción, especificada como un entero positivo. Si deja sin especificar, a continuación, se ajusta iterativamente modelos autorregresivos utilizando todos los puntos anteriores para la estimación de avance y todos los puntos futuros para la estimación hacia atrás.maxlenfillgaps

Tipos de datos: single | double

Orden de modelo autorregresivo, especificado como o un entero positivo.'aic' El orden se trunca cuando es infinito o cuando no hay suficientes muestras disponibles.order Si especifica como, o lo deja sin especificar, a continuación, selecciona el orden que minimiza el criterio de información Akaike.order'aic'fillgaps

Tipos de datos: single | double | char | string

Argumentos de salida

contraer todo

Señal reconstruida, devuelta como vector o matriz.

Referencias

[1] Kay, Steven M. Modern Spectral Estimation: Theory and Application. Englewood Cliffs, NJ: Prentice Hall, 1988.

[2] Orfanidis, Sophocles J. Optimum Signal Processing: An Introduction. 2nd Edition. New York: McGraw-Hill, 1996.

[3] Akaike, Hirotugu. “Fitting Autoregressive Models for Prediction.” Annals of the Institute of Statistical Mathematics. Vol. 21, 1969, pp. 243–247.

Consulte también

|

Introducido en R2016a