This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

Downsampling — Signal Phases

This example shows how to use downsample to obtain the phases of a signal. Downsampling a signal by M can produce M unique phases. For example, if you have a discrete-time signal, x, with x(0) x(1) x(2) x(3), ..., the M phases of x are x(nM + k) with k = 0,1, ..., M-1.

The M signals are referred to as the polyphase components of x.

Create a white noise vector and obtain the 3 polyphase components associated with downsampling by 3.

Reset the random number generator to the default settings to produce a repeatable result. Generate a white noise random vector and obtain the 3 polyphase components associated with downsampling by 3.

rng default
x = randn(36,1);
x0 = downsample(x,3,0);
x1 = downsample(x,3,1);
x2 = downsample(x,3,2);

The polyphase components have length equal to 1/3 the original signal.

Upsample the polyphase components by 3 using upsample.

y0 = upsample(x0,3,0);
y1 = upsample(x1,3,1);
y2 = upsample(x2,3,2);

Plot the result.

title('Original Signal')
ylim([-4 4])

ylabel('Phase 0')
ylim([-4 4])

ylabel('Phase 1')
ylim([-4 4])

ylabel('Phase 2')
ylim([-4 4])

If you sum the upsampled polyphase components you obtain the original signal.

Create a discrete-time sinusoid and obtain the 2 polyphase components associated with downsampling by 2.

Create a discrete-time sine wave with an angular frequency of rad/sample. Add a DC offset of 2 to the sine wave to help with visualization of the polyphase components. Downsample the sine wave by 2 to obtain the even and odd polyphase components.

n = 0:127;
x = 2+cos(pi/4*n);
x0 = downsample(x,2,0);
x1 = downsample(x,2,1);

Upsample the two polyphase components.

y0 = upsample(x0,2,0);
y1 = upsample(x1,2,1);

Plot the upsampled polyphase components along with the original signal for comparison.

ylim([0.5 3.5])
title('Original Signal')

ylim([0.5 3.5])
ylabel('Phase 0')

ylim([0.5 3.5])
ylabel('Phase 1')

If you sum the two upsampled polyphase components (Phase 0 and Phase 1), you obtain the original sine wave.

See Also


Was this topic helpful?