主要内容

使用下采样获取信号相位

此示例说明如何使用 downsample 获得信号的相位。以 M 为因子对信号下采样可以产生 M 个唯一相位。例如,如果您有一个离散时间信号 x,它具有 x(0),x(1),x(2),x(3),...,x(n-1),则 xM 个相位是 x(nM+k),其中 k=0,1,...,M-1

M 个信号称为 x多相分量。

创建一个白噪声向量,并以 3 为因子下采样以得到 3 个多相分量。

将随机数生成器重置为默认设置,以产生可重复的结果。生成一个白噪声随机向量,并以 3 为因子下采样以得到 3 个多相分量。

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

多相分量的长度等于原始信号的 1/3。

使用 upsample 对多相分量进行以 3 为因子的上采样。

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

绘制结果。

tiledlayout("vertical")
nexttile
stem(x,Marker="none")
title("Original Signal")
ylim([-4 4])

nexttile
stem(y0,Marker="none")
ylabel("Phase 0")
ylim([-4 4])

nexttile
stem(y1,Marker="none")
ylabel("Phase 1")
ylim([-4 4])

nexttile
stem(y2,Marker="none")
ylabel("Phase 2")
ylim([-4 4])

Figure contains 4 axes objects. Axes object 1 with title Original Signal contains an object of type stem. Axes object 2 with ylabel Phase 0 contains an object of type stem. Axes object 3 with ylabel Phase 1 contains an object of type stem. Axes object 4 with ylabel Phase 2 contains an object of type stem.

如果对上采样的多相分量求和,就可以得到原始信号。

创建离散时间正弦信号,并以 2 为因子下采样以得到 2 个多相分量。

创建角频率为 π/4 弧度/采样点的离散时间正弦波。将值为 2 的 DC 偏移量加到正弦波上,以帮助进行多相分量的可视化。对正弦波以 2 为因子下采样,以获得偶数和奇数多相分量。

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

对两个多相分量进行上采样。

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

绘制上采样后的多相分量和原始信号以进行比较。

tiledlayout("vertical")
nexttile
stem(x,Marker="none")
ylim([0.5 3.5])
title("Original Signal")
nexttile
stem(y0,Marker="none")
ylim([0.5 3.5])
ylabel("Phase 0")
nexttile
stem(y1,Marker="none")
ylim([0.5 3.5])
ylabel("Phase 1")

Figure contains 3 axes objects. Axes object 1 with title Original Signal contains an object of type stem. Axes object 2 with ylabel Phase 0 contains an object of type stem. Axes object 3 with ylabel Phase 1 contains an object of type stem.

如果您对两个上采样后的多相分量(相位 0 和相位 1)求和,将得到原始正弦波。

另请参阅

|