Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Filtrar antes de submuestrear

Este ejemplo muestra cómo filtrar antes de submuestrear para mitigar la distorsión que causa el solapamiento. Puede utilizar decimate o resample para filtrar y submuestrear con una función. De manera alternativa, puede aplicar un filtro paso bajo a los datos y, después, utilizar downsample. Cree una señal con soporte espectral de banda base mayor que π radianes. Utilice decimate para filtrar la señal con un filtro paso bajo Chebyshev tipo I de décimo orden antes de submuestrear.

Cree la señal y represente el espectro de magnitud.

f = [0 0.2500 0.5000 0.7500 1.0000];
a = [1.00 0.6667 0.3333 0 0];

nf = 512;
b = fir2(nf-1,f,a);
Hx = fftshift(freqz(b,1,nf,'whole'));

omega = -pi:2*pi/nf:pi-2*pi/nf;
plot(omega/pi,abs(Hx))
grid
xlabel('\times\pi rad/sample')
ylabel('Magnitude')

Figure contains an axes object. The axes object with xlabel times pi blank rad/sample, ylabel Magnitude contains an object of type line.

Filtre la señal con un filtro paso bajo Chebyshev tipo I de décimo orden y submuestréelo por 2. Represente los espectros de magnitud de la señal original junto con la señal filtrada y submuestreada. El filtro paso bajo reduce la cantidad de distorsión de solapamiento fuera del intervalo [-π/2,π/2].

y = decimate(b,2,10);
Hy = fftshift(freqz(y,1,nf,'whole'));

hold on
plot(omega/pi,abs(Hy))
legend('Original','Downsampled')

Figure contains an axes object. The axes object with xlabel times pi blank rad/sample, ylabel Magnitude contains 2 objects of type line. These objects represent Original, Downsampled.

Consulte también

| |