混叠跳动频率

信息处理 采样 混叠
2022-02-16 22:26:03

据我了解,混叠是因为您以低采样率对高频进行采样,而采样点没有足够的关于高频分量的信息。下面是一个别名的例子:

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. 为什么傅里叶变换有跳动但只有一个峰值?由于样本中只有一个频率,它在对抗什么?
  2. 如何计算跳动频率和混叠频率?

更新 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]

在此处输入图像描述

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

4个回答

让我们看一个例子。我将在这篇文章中使用 50 的采样率(即函数在 0、0.02、0.04、0.06 ……)和形式为 $f_a(t) = \sin (2\pi \cdot a\cdot t)$,其中 $a$ 是正弦波的频率。例如,这是 $f_3$ 的图:

频率为 3 的正弦波,采样和连续

红色脉冲表示样本值。另一方面,绿线是正在采样的连续函数。样本值都位于这条曲线上,正如人们所期望的那样,它经历了三个完整的周期。

别名

因为采样率为 50,所以任何高于 25 奈奎斯特频率的东西都会产生混叠。例如,这里是 $f_{53}$; 的图。注意轴,我放大到上面的十分之一,因为否则图像会变得非常拥挤。

频率为 53 的正弦波,采样和连续

每个周期的样本略少于一个,因此采样值不会非常接近连续波形。实际上,如果你看到的只是没有绿色曲线的样本值,就像这样......

频率为 53 的正弦波,采样

......你可能会想画一个慢得多的波浪。当我们不仅绘制 $f_{53}$,而且同时绘制 $f_3$ 时,会发生以下情况:

频率为 3 和 53 的正弦波,采样和连续

虽然这两个正弦波在外观上非常不同,但它们恰好在每个采样点都重合。仅给定样本值,绝对没有办法将它们区分开来。那就是混叠。实际上,不仅$f_{53}$的样本与$f_3$的样本完全相同,而且$f_{103}$、$f_{153}$、$f_{-47}$等别名以同样的方式。

换句话说,由于采样频率为 50,范围 0-25、50-75、100-125 等会崩溃。从奈奎斯特频率到采样频率的“上半部分”呢?它是镜像的;$f_{47}$ 与 $-f_3$ 相同,通常频率范围 25-50 与 25-0 混叠,样本反转(或等效地,相移 $\pi$)。

这意味着,对于您的问题,您观察到的效果不是由于您使用了超过奈奎斯特频率的信号;您可以将任何高于奈奎斯特频率的信号替换为其在奈奎斯特范围内的别名,并且将获得完全相同的结果。

“殴打”

那么是什么导致了明显的“跳动”?这是 $f_3$ 的第一个图,但这次它显示了样本值和它们之间的线性插值(即从每个样本点到下一个样本点的直线段),而不是采样的实际连续波形:

频率为 3 的正弦波、采样值和采样值的线性插值

插值波形有点前卫,但总体上很好地近似于原始正弦波。不幸的是,这仅仅是因为频率相对于采样率非常低。这是$f_7$:

频率为 7 的正弦波、采样值和采样值的线性插值

呃。当我们到达更高的频率,更接近奈奎斯特频率时,它会变得更糟;这是$f_{23}$:

频率为 23 的正弦波,采样值和采样值的线性插值

不幸的是,即使我们不画那些直线,我们的眼睛也会尝试自己连接所有的点,并且印象是相似的:它看起来像一个缓慢的振荡调制到一个快速的振荡。这种印象实际上并非完全无关紧要:

频率为 23 的正弦波,采样,以及频率为 2 和 25 的两个正弦波的环形调制,连续

来自 $f_{23}$ 的相同样本值同样可以通过 $f_2$ 和 $f_{25}$(带有一些相位调整)的环形调制来很好地解释,即 $g(t) = -f_2( t)\cdot f_{25}(t+0.01)$。因此,当采样率为 50 时,$g$ 和 $f_{23}$ 是别名。这里再次特写,显示 $g$ 和 $f_{23}$ 实际上在 0、0.02 处相遇, 0.04 等:

频率为 23 的正弦波,采样连续,环形调制如上

$g$ 的另一种写法是 $g(t) = 0.5 f_{23}(t) - 0.5 f_{27}(t)$,两个频率相似的正弦波的总和,正是跳动可以预计会发生。所以它毕竟在跳动,不是吗?不是真的,因为 $f_{27}$ 超出了奈奎斯特频率;如上所述,它是 $-f_{50-27}=-f_{23}$ 的别名,因此 $g(t)$ 变为 $0.5 f_{23}(t) - 0.5 f_{27}(t ) = 0.5 f_{23}(t) + 0.5 f_{23}(t) = f_{23}(t)$。

这是从 0 到 25 的基带内,这些样本值的唯一可能解释。

结论

注意不正确的插值!从样本中重建连续信号时,必须考虑有限的带宽(带限插值)。不幸的是,我们的眼睛并不擅长于此;许多软件波形编辑器和重采样器也不是。

如果在时域中存在明显的跳动,并且您在频域中放大明显的一个峰值,您会发现该峰值周围的主瓣或主瓣比没有跳动的情况略胖。这是因为在更宽的主瓣或它的裙部内部和/或下方确实隐藏了第二个峰(可能还有更多峰)。它并不总是一个纯正弦频率导致缩小的 FFT 结果出现峰值。并且两个相邻的频率正弦波会在线性和的包络中引起幅度调制(跳动)。

苏达松是对的。您没有看到额外的频率,因为您的采样率只有 1.5Hz。由于傅里叶变换到 0.0.75Hz 到 0.75Hz 频带的周期性,您会受到限制。如果你在纸上做,你会看到通过在 + 和 - 方向上重复 n*1.5Hz 的 5Hz 正弦波的频谱,你会看到你在 -0.75Hz 频率跨度的图形中准确显示的内容至 0.75Hz。您错误地增加了 FFT 的分辨率,没有必要这样做。您需要做的是在不改变原始信号的情况下提高采样率。为此,只需在样本点之间填充 7 个零。这将为您提供 1.5*8 = 12Hz 的采样率。我敢打赌你会看到所有你认为应该看到的频率......

如果您的信号频率为 $f_0$ 并且您在 $F_s$ 采样,那么您可以通过 $\sin(2\pi(f_0-mF_s)t)$ 找到所有混叠频率,其中 $m$ 是一个整数,使得$|f_0 - mF_s|< F_s/2$。

因此,如果 $f_0 = 6$ 且 $F_s = 10$,则 $m = 1$,即频率为 4 Hz 的别名。但是,在 $m = 2、3$ 等处还有其他别名,频率为 14 Hz、24 Hz 等。

查兰·兰顿

www.complextoreal.com 你可以看我的书“傅里叶分析的直观指南......”