下采样 - 信号相位和混叠

目录

信号相位        

混叠


信号相位        

        此示例说明如何使用 downsample 获得信号的相位。以 M 为因子对信号下采样可以产生 M 个唯一相位。例如,如果有一个离散时间信号 x,它具有 x(0) x(1) x(2) x(3)、...等,则 x 的 M 个相位是 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);

        绘制结果。

subplot(4,1,1)
stem(x,'Marker','none')
title('Original Signal')
ylim([-4 4])

subplot(4,1,2)
stem(y0,'Marker','none')
ylabel('Phase 0')
ylim([-4 4])

subplot(4,1,3)
stem(y1,'Marker','none')
ylabel('Phase 1')
ylim([-4 4])

subplot(4,1,4)
stem(y2,'Marker','none')
ylabel('Phase 2')
ylim([-4 4])

        如图所示:

        如果对上采样的多相分量求和,就可以得到原始信号。创建离散时间正弦信号,并以 2 为因子下采样以得到 2 个多相分量。 

        创建角频率为 

        弧度/采样点的离散时间正弦波。将值为 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);

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

subplot(3,1,1)
stem(x,'Marker','none')
ylim([0.5 3.5])
title('Original Signal')

subplot(3,1,2)
stem(y0,'Marker','none')
ylim([0.5 3.5])
ylabel('Phase 0')

subplot(3,1,3)
stem(y1,'Marker','none')
ylim([0.5 3.5])
ylabel('Phase 1')

        如图所示:

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

混叠

        此示例说明如何在对信号进行下采样时避免混叠。如果离散时间信号的基带频谱支持不限于宽度为 2π/M 弧度的区间,则以 M 为因子下采样会导致混叠。混叠是当信号频谱的多个副本重叠在一起时发生的失真。信号的基带频谱支持超出 2π/M 弧度越多,混叠越严重。以下示例演示了以 2 为因子下采样的信号中的混叠。信号的基带频谱支持超过了 π 弧度的宽度。

        创建一个基带频谱支持等于 3π/2 弧度的信号。使用fir2设计信号。绘制信号的频谱。信号的基带频谱支持超出 [−π/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')

        如图所示:

        以 2 为因子对信号下采样,并绘制下采样信号的频谱和原始信号的频谱。除频谱的幅值缩放之外,重叠频谱副本的叠合还会导致 ∣ω∣>π/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')

        如图所示:

        将信号的基带频谱支持增加到 [−7π/8,7π/8] 并以 2 为因子对信号下采样。绘制原始频谱和下采样信号的频谱。频谱宽度的增加导致下采样信号频谱中更明显的混叠,因为有更多信号能量处在 [−π/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')

        如图所示:

        最后,构造基带频谱支持仅限于 [−π/2,π/2] 的信号。以 2 为因子对信号下采样,并绘制原始信号的频谱和下采样信号的频谱。下采样信号是全频带信号。下采样信号的频谱是原始频谱的扩展和缩放版本,但频谱的形状得以保留,因为频谱副本不重叠。没有混叠。 

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

        如图所示:

猜你喜欢

转载自blog.csdn.net/jk_101/article/details/124796818