Main Content

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 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 contains 2 objects of type line. These objects represent Original, Downsampled.

Consulte también

| |