Main Content

Upsampling — Imaging Artifacts

This example shows how to upsample a signal and how upsampling can result in images. Upsampling a signal contracts the spectrum. For example, upsampling a signal by 2 results in a contraction of the spectrum by a factor of 2. Because the spectrum of a discrete-time signal is 2π-periodic, contraction can cause replicas of the spectrum normally outside of the baseband to appear inside the interval [-π,π].

Create a discrete-time signal whose baseband spectral support is [-π,π]. Plot the magnitude spectrum.

f = [0 0.250 0.500 0.7500 1];
a = [1.0000 0.5000 0 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.

Upsample the signal by 2. Plot the spectrum of the upsampled signal. The contraction of the spectrum has drawn subsequent periods of the spectrum into the interval [-π,π].

y = upsample(b,2);
Hy = fftshift(freqz(y,1,nf,"whole"));

hold on
plot(omega/pi,abs(Hy))
hold off
legend("Original","Upsampled")
text(0.65*[-1 1],0.45*[1 1], ...
    ["\leftarrow Imaging" "Imaging \rightarrow"], ...
    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, Upsampled.

See Also

| |