在 Matlab 中可视化混叠

信息处理 混叠
2022-01-29 10:44:04

我正在尝试自己验证混叠实际上使得无法区分“真实”和混叠频率。我所做的将采样率设置为 20 Hz 并创建了两个 2 Hz 和 18 Hz 的正弦波。据我了解,当采样率为 20 Hz 时,18 Hz 信号应与 2 Hz 信号混叠。

Matlab代码:

t = [0:0.05:1];      //20Hz sampling
a = sin(2*pi*2*t);   //2Hz sine wave
b = sin(2*pi*18*t);  //18Hz sine wave
plot(t, a);
hold on;
plot(t, b, 'red');

情节如下所示:

在此处输入图像描述

我可以看到两个正弦波是相等的,但是相差 180 度。我想知道它是否有什么问题,或者它是否只是 Matlab 以相反的方式绘制这些点?

3个回答

我认为您应该绘制如下内容:

t = [0:0.05:1];      %20Hz sampling
a = sin(2*pi*2*t);   %2Hz sine wave
b = sin(2*pi*18*t);  %18Hz sine wave
plot(t, a, 'bo');
hold on;
plot(t, b, 'ro');

T = [0:0.001:1];     %1000Hz sampling frequency
A = sin(2*pi*2*T);
B = sin(2*pi*18*T);
% plot for 1000Hz sampling frequency
plot(T, A, 'b');
plot(T, B, 'r');

legend({'2Hz @ 20 Hz f_s', '18Hz @ 20 Hz f_s', '2Hz @ 1000 Hz f_s', '18Hz @ 1000 Hz f_s'})

这可以让您了解在给定的采样频率下您的正弦曲线的哪些确切样本:

在此处输入图像描述

是的,这是有道理的。2 Hz 波的每个样本的相位增量为18 Hz 波的每个样本的相位增量为因此,2 Hz 波为,18 Hz 波为因此,两个波的相位相差 180 度。2π2.05=.2π2π18.05=1.8π=.2πsin(2π2t)sin(2π2t)=sin(2π2t)

这是意料之中的,因为以 20 Hz 采样率采样的 18 Hz 音调相当于 -2Hz 音调。

想想如果 DC 重新以 20 Hz 为中心会是什么样子。18 Hz 将处于低端。

t = [0:0.05:1];      %20Hz sampling
a = sin(2*pi*2*t);   %2Hz sine wave
b = sin(2*pi*18*t);  %18Hz sine wave
c = sin(2*pi*22*t);  %22Hz sine wave
d = sin(2*pi*-2*t);  %%-2Hz sine wave
plot(t, a);
hold on;
plot(t, b, 'r');
plot(t, c, 'ko');
plot(t, d, 'g*');
legend('2 Hz','18 Hz','22 Hz','-2 Hz')

在此处输入图像描述