Submuestreo: solapamiento
Este ejemplo muestra cómo evitar el solapamiento cuando se submuestrea una señal. Si el soporte espectral de banda base de una señal de tiempo discreto no se limita a un intervalo de radianes de anchura, al submuestrear por da como resultado un solapamiento. El solapamiento es la distorsión que se produce cuando se añaden juntas copias solapadas del espectro de la señal. Cuanto más supera radianes al soporte espectral de banda base de la señal, más grave es el solapamiento. Demuestre el solapamiento en una señal submuestreada por dos. El soporte espectral de banda base de la señal es mayor que radianes de anchura.
Cree una señal con soporte espectral de banda base igual a radianes. Utilice fir2
para diseñar la señal. Represente el espectro de la señal. El soporte espectral de banda base de la señal es mayor que .
f = [0 0.2500 0.5000 0.7500 1.0000]; a = [1.00 0.6667 0.3333 0 0]; nf = 512; b1 = fir2(nf-1,f,a); Hx = fftshift(freqz(b1,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')
Submuestree la señal por un factor de 2 y represente el espectro de la señal submuestreada junto con el espectro de la señal original. Además de escalar la amplitud del espectro, la superposición de réplicas espectrales solapadas distorsiona el espectro original para .
y = downsample(b1,2,0); Hy = fftshift(freqz(y,1,nf,'whole')); hold on plot(omega/pi,abs(Hy)) hold off legend('Original','Downsampled') text(2.5/pi*[-1 1],0.35*[1 1],{'\downarrow Aliasing','Aliasing \downarrow'}, ... 'HorizontalAlignment','center')
Aumente el soporte espectral de banda base de la señal a y submuestree la señal por 2. Represente el espectro original junto con el espectro de la señal submuestreada. La mayor anchura espectral da como resultado un solapamiento más pronunciado en el espectro de la señal submuestreada, ya que hay más energía de señal fuera de .
f = [0 0.2500 0.5000 0.7500 7/8 1.0000]; a = [1.00 0.7143 0.4286 0.1429 0 0]; b2 = fir2(nf-1,f,a); Hx = fftshift(freqz(b2,1,nf,'whole')); plot(omega/pi,abs(Hx)) grid xlabel('\times\pi rad/sample') ylabel('Magnitude') y = downsample(b2,2,0); Hy = fftshift(freqz(y,1,nf,'whole')); hold on plot(omega/pi,abs(Hy)) hold off legend('Original','Downsampled')
Por último, construya una señal con soporte espectral de banda base limitado a . Submuestree la señal por un factor de 2 y represente el espectro de las señales original y submuestreada. La señal submuestreada es de banda completa. El espectro de la señal submuestreada es una versión estirada y escalada del espectro original, pero la forma se mantiene porque las copias espectrales no se solapan. No hay solapamiento.
f = [0 0.250 0.500 0.7500 1]; a = [1.0000 0.5000 0 0 0]; b3 = fir2(nf-1,f,a); Hx = fftshift(freqz(b3,1,nf,'whole')); plot(omega/pi,abs(Hx)) grid xlabel('\times\pi rad/sample') ylabel('Magnitude') y = downsample(b3,2,0); Hy = fftshift(freqz(y,1,nf,'whole')); hold on plot(omega/pi,abs(Hy)) hold off legend('Original','Downsampled')
Consulte también
downsample
| fir2
| freqz