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.

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 2π/M radianes de anchura, al submuestrear por M 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 2π/M 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 3π/2 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 [-π/2,π/2].

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')

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

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 |ω|>π/2.

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')

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

Aumente el soporte espectral de banda base de la señal a [-7π/8,7π/8] 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 [-π/2,π/2].

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')

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.

Por último, construya una señal con soporte espectral de banda base limitado a [-π/2,π/2]. 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')

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

| |