据我了解,混叠是因为您以低采样率对高频进行采样,而采样点没有足够的关于高频分量的信息。下面是一个别名的例子:
w = 5.0;(*signal frequency*)
dt = 0.66125;(*sampling rate*)
f[x_] := Sin[w x]
ls = Table[f[x], {x, dt, 200 dt, dt}];(*sample points*)
ListPlot[ls, PlotRange -> All, Joined -> True,
DataRange -> {dt, 200 dt}]

我们可以在图中看到有跳动。而傅里叶变换只给出一个频率(对称负频率除外)。
DFT[A_, ht_] :=
RotateRight[
ht/Sqrt[2 \[Pi]]*
Fourier[RotateLeft[A, Length[A]/2 - 1],
FourierParameters -> {1, 1}], Length[A]/2 - 1]
ListPlot[Abs[DFT[ls, dt]]^2, PlotRange -> All, Joined -> True,
DataRange -> {-1/dt/2, 1/dt/2}, Axes -> False, Frame -> True]

问题:
- 为什么傅里叶变换有跳动但只有一个峰值?由于样本中只有一个频率,它在对抗什么?
- 如何计算跳动频率和混叠频率?
更新 1
正如 chirlu 指出的那样,没有跳动,如果是由于相邻频率而导致的跳动,如果我们增加傅立叶变换分辨率,我们会期望看到两个分离的峰值。在这里,我通过包含更多的采样点来提高频率分辨率,我们可以看到它是单个峰值,而不是相邻的峰值。
ls = Table[f[x], {x, dt, 800 dt, dt}];(*sample points*)ListPlot[ls,
PlotRange -> All, Joined -> True, DataRange -> {dt, 200 dt}]


更新 2
下面是一个使用声音的例子:
Play[Sin[3000 t], {t, 0, 2}, SampleRate -> 6000]

Play[Sin[3000 t], {t, 0, 2}, SampleRate -> 950]

所以使用较低的采样率,我们实际上可以听到跳动!








