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.

medfilt1

filtrado de la mediana 1-D

Descripción

y = medfilt1(x) aplica un filtro mediana unidimensional de tercer orden al vector de entrada,.x La función considera que la señal es 0 más allá de los puntos finales. La salida,, tiene la misma longitud que.yx

ejemplo

y = medfilt1(x,n) aplica un filtro de mediana unidimensional de orden de TH a.nx

y = medfilt1(x,n,blksz,dim) O y = medfilt1(x,n,[],dim) Especifica la cota, a lo largo de la cual funciona el filtro. es necesario para la compatibilidad con versiones anteriores y se omite.dimblksz

ejemplo

y = medfilt1(___,nanflag,padding) Especifica cómo se tratan los valores en cada segmento, utilizando los argumentos de entrada de sintaxis anteriores.NaN Esta sintaxis también especifica, el tipo de filtrado realizado en los bordes de la señal.padding

y puede aparecer en cualquier lugar después de la llamada de función.nanflagpaddingx

Ejemplos

contraer todo

Genere una señal sinusoidal muestreada durante 1 segundo a 100 Hz. Añada una sinusoide de mayor frecuencia para simular el ruido.

fs = 100; t = 0:1/fs:1; x = sin(2*pi*t*3)+0.25*sin(2*pi*t*40);

Utilice un filtro mediano de orden 10º para suavizar la señal. Graficar el resultado.

y = medfilt1(x,10);  plot(t,x,t,y) legend('Original','Filtered') legend('boxoff')

Generar una señal de dos canales consistente en sinusoides de diferentes frecuencias. Coloque picos en lugares aleatorios. Use NaNs para agregar muestras faltantes al azar. Restablezca el generador de números aleatorios para obtener resultados reproducibles. Trace la señal.

rng('default')  n = 59; x = sin(pi./[15 10]'*(1:n)+pi/3)';  spk = randi(2*n,9,1); x(spk) = x(spk)*2; x(randi(2*n,6,1)) = NaN;  plot(x)

Filtre la señal usando la configuración predeterminada.medfilt1 Trace la señal filtrada. De forma predeterminada, el filtro asigna NaN a la mediana de cualquier segmento con muestras faltantes.

y = medfilt1(x); plot(y)

Transponer la señal original. Vuelva a filtrarla, especificando que la función funciona a lo largo de las filas. Excluya las muestras faltantes al calcular las medianas. Si deja el segundo argumento vacío, entonces utiliza el orden de filtro predeterminado de 3.medfilt1

y = medfilt1(x',[],[],2,'omitnan'); plot(y')

La función no puede asignar un valor al segmento que sólo contiene NaNs. Aumente la longitud del segmento para solucionar este problema. El cambio también elimina el valor atípico más a fondo.

y = medfilt1(x,4,'omitnan'); plot(y)

El relleno de cero predeterminado da como resultado que la función subestima los valores de la señal en los bordes. Reduzca este efecto utilizando ventanas que disminuyen para calcular las medianas en los extremos.

y = medfilt1(x,4,'omitnan','truncate'); plot(y)

Argumentos de entrada

contraer todo

Señal de entrada, especificada como un vector, matriz o matriz N-D con valores reales.

Tipos de datos: single | double

Orden del filtro mediano unidimensional, especificado como un escalar entero positivo.

  • Cuando es impar, es la mediana de.ny(k)x(k-(n-1)/2:k+(n-1)/2)

  • Cuando es incluso, es la mediana de.ny(k)x(k-n/2:k+(n/2)-1) En este caso, ordena los números y toma el promedio de los dos elementos medios de la lista ordenada.medfilt1

Ejemplo: Si = 11, entonces es la mediana de.ny(k)x(k-5:k+5)

Ejemplo: Si = 12, entonces es la mediana de.ny(k)x(k-6:k+5)

Tipos de datos: double

Dimension para filtrar a lo largo, especificado como un escalar entero positivo. De forma predeterminada, opera a lo largo de la primera dimensión nonsingleton de.medfilt1x En particular, si es una matriz, la función filtra sus columnas para que.xy(:,i) = medfilt1(x(:,i),n)

Tipos de datos: double

condición especificada como o.NaN'includenan''omitnan'

  • : Devuelve la señal filtrada para que la mediana de cualquier segmento que contenga s sea también.'includenan'NaNNaN

  • : Devuelve la señal filtrada de modo que la mediana de cualquier segmento que contenga s sea la mediana de los valores no.'omitnan'NaNNaN Si todos los elementos de un segmento son s, el resultado es.NaNNaN

Filtrado de puntos de conexión, especificado como o.'zeropad''truncate'

  • : Considera que la señal es cero más allá de los puntos finales.'zeropad'

  • : Calcula medianas de segmentos más pequeños a medida que alcanza los bordes de la señal.'truncate'

Argumentos de salida

contraer todo

Señal filtrada, devuelta como un vector de valor real, matriz o matriz N-D. es del mismo tamaño queyx

Tipos de datos: double

Sugerencias

Si tiene una licencia de software, puede utilizar la función para realizar el filtrado de mediana de dos dimensiones.Image Processing Toolbox™medfilt2

Referencias

[1] Pratt, William K. Digital Image Processing. 4th Ed. Hoboken, NJ: John Wiley & Sons, 2007.

Consulte también

| | | |

Introducido antes de R2006a