Filtrar señales antes de submuestrearlas
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. Como 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")
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 .
y = decimate(b,2,10); Hy = fftshift(freqz(y,1,nf,"whole")); hold on plot(omega/pi,abs(Hy)) legend("Original","Downsampled")