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.

decimate

Decimación — disminuir la frecuencia de muestreo por factor entero

Descripción

ejemplo

y = decimate(x,r) reduce la frecuencia de muestreo de , la señal de entrada, por un factor de .xr El vector diezmado, , se acorta por un factor de modo que .yrlength(y) = ceil(length(x)/r) De forma predeterminada, utiliza un filtro de respuesta de impulso infinito (IIR) Chebyshev Tipo I de paso bajo de la orden 8.decimate

ejemplo

y = decimate(x,r,n) utiliza un filtro Chebyshev de orden.n

y = decimate(x,r,'fir') utiliza un filtro de respuesta de impulso finito (FIR) diseñado utilizando el método de ventana con una ventana Hamming. El filtro tiene un orden de 30.

ejemplo

y = decimate(x,r,n,'fir') utiliza un filtro FIR de orden.n

Ejemplos

contraer todo

Cree una señal sinusoidal muestreada a 4 kHz. Diezmarlo por un factor de cuatro.

t = 0:.00025:1; x = sin(2*pi*30*t) + sin(2*pi*60*t); y = decimate(x,4);

Trazar las señales originales y diezmadas.

subplot 211 stem(0:120,x(1:121),'filled','markersize',3) grid on xlabel 'Sample number',ylabel 'Original' subplot 212 stem(0:30,y(1:31),'filled','markersize',3) grid on xlabel 'Sample number',ylabel 'Decimated'

Crea una señal con dos sinusoides. Decimarlo por un factor de 13 utilizando un filtro Chebyshev IIR de la orden 5. Trazar las señales originales y diezmadas.

r = 13; n = 16:365; lx = length(n); x = sin(2*pi*n/153) + cos(2*pi*n/127);  plot(0:lx-1,x,'o') hold on y = decimate(x,r,5); stem(lx-1:-r:0,fliplr(y),'ro','filled','markersize',4)  legend('Original','Decimated','Location','south') xlabel('Sample number') ylabel('Signal')

Las señales originales y diezmadas tienen elementos coincidentes.Última

Crea una señal con dos sinusoides. Diezmarlo por un factor de 13 utilizando un filtro FIR de la orden 82. Trazar las señales originales y diezmadas.

r = 13; n = 16:365; lx = length(n); x = sin(2*pi*n/153) + cos(2*pi*n/127);  plot(0:lx-1,x,'o') hold on y = decimate(x,r,82,'fir'); stem(0:r:lx-1,y,'ro','filled','markersize',4)  legend('Original','Decimated','Location','south') xlabel('Sample number') ylabel('Signal')

Las señales originales y diezmadas tienen elementos coincidentes.Primero

Argumentos de entrada

contraer todo

Señal de entrada, especificada como vector.

Tipos de datos: double

Factor de diezma, especificado como un entero positivo. Para obtener mejores resultados cuando es mayor que 13, divídalos en factores más pequeños y llame varias veces.rrdecimate

Tipos de datos: double

Orden de filtro, especificado como un entero positivo. Las órdenes de filtro IIR superiores a 13 no se recomiendan debido a la inestabilidad numérica. La función muestra una advertencia en esos casos.

Tipos de datos: double

Argumentos de salida

contraer todo

Señal diezmada, devuelta como vector.

Tipos de datos: double

Algoritmos

La decimación reduce la frecuencia de muestreo original de una secuencia a una velocidad inferior. Es lo opuesto a la interpolación. lowpass filtra la entrada para protegerse contra el alias y reduce las muestras del resultado.decimate La función utiliza algoritmos de diezma 8.2 y 8.3 de .[1]

  1. crea un filtro de paso bajo.decimate El valor predeterminado es un filtro Chebyshev Tipo I diseñado con .cheby1 Este filtro tiene una frecuencia de corte normalizada de y una ondulación de banda de paso de 0,05 dB.0.8/r A veces, el orden de filtro especificado produce distorsión de banda de paso debido a errores de redondeo acumulados a partir de las convoluciones necesarias para crear la función de transferencia. reduce automáticamente el orden del filtro cuando la distorsión hace que la respuesta de magnitud en la frecuencia de corte difiera de la ondulación en más de 10decimate–6.

    Cuando se elige la opción, se utiliza para diseñar un filtro FIR de paso bajo con frecuencia de corte.'fir'decimatefir11/r

  2. Cuando se utiliza el filtro FIR, filtra la secuencia de entrada en una sola dirección.decimate Esto conserva la memoria y es útil para trabajar con secuencias largas. En el caso IIR, aplica el filtro en las direcciones hacia delante e hacia atrás utilizando para eliminar la distorsión de fase.decimatefiltfilt En efecto, este proceso duplica el orden del filtro. En ambos casos, la función minimiza los efectos transitorios en ambos extremos de la señal haciendo coincidir las condiciones del punto final.

  3. Por último, vuelve a muestrear los datos seleccionando cada punto del interior de la señal filtrada.decimater En la secuencia remuestreada ( ), coincide cuando se utiliza el filtro IIR y coincide cuando se utiliza el filtro FIR.yy(end)x(end)y(1)x(1)

Referencias

[1] Digital Signal Processing Committee of the IEEE® Acoustics, Speech, and Signal Processing Society, eds. Programs for Digital Signal Processing. New York: IEEE Press, 1979.

Consulte también

| | | | |

Introducido antes de R2006a