考虑一个简单的情况,其中来自两个不同传感器的两个信号互相关,并且从其互相关函数的峰值的横坐标计算出到达时间延迟。

现在,让我们进一步假设,由于两个天线的尺寸限制和最大可能采样率的限制,最大可能延迟为$ D $,对应于10个样本。

问题:

由于这些限制,您计算出的延迟可能与0到10个样本之间的任何整数值有所不同,即:$ 0 \ le D \ le 10 $。这是有问题的,因为我真正想要的是对撞击在我的天线上的两个信号之间的延迟进行分数延迟区分,并且不能更改尺寸或采样率。

一些想法:


自然,在这种情况下,我想到的第一件事是在执行互相关之前对信号进行上采样。但是我认为这在某种程度上“欺骗”,因为我并没有真正在系统中添加任何新信息。
从某种意义上说,我不明白加采样是不是“作弊”。是的,我们正在基于其当前观察到的频率信息来重构信号,但是这如何使一个信号真正开始的位置(例如,$ D = 7 $和$ D = 8 $之间)的知识呢?此信息包含在原始信号中,该信号确定信号的真正小数延迟起始实际上是在$ D = 7.751 $处吗?

问题:



这真的是“作弊”吗?


如果不是,那么这个新的“信息”是从哪里来的?
如果是,那么还有哪些其他选项可用于估计小数延迟时间?互相关的结果,试图获得子样本对延迟的回答,但这也是“作弊”形式吗?为什么与互相关之前的升采样有区别?

如果确实存在上采样不是“作弊”的情况,那为什么我们还要提高采样率呢? (从某种意义上说,较高的采样率是否总比对低采样信号进行插值更好?)

那时看来,我们可以以非常低的采样率进行任意插值。那么,仅仅根据我们内心的需求插入一个信号,是否会使采样率“无用”?我意识到插值需要花费计算时间,而从较高的采样率开始就不会,但是那是唯一的原因吗?

谢谢。

评论

我怀疑准确性是否存在差异,因为两种方法的信息量都是相同的,但是在互相关之后仅在感兴趣的区域内进行插值比先对所有内容进行上采样然后进行所有这些额外的乘积肯定要便宜。 br />
@endolith好点。现在,我更清楚这是为什么/如何工作的,是的,在这种情况下,对结果进行升采样将是解决方法。

#1 楼

这不是在作弊,也没有添加任何新信息。您正在做的事情与任何上采样LPF都在做的一样-将零相加,然后使用已知的频率信息重建波形。因此,没有新信息,但时间分辨率仍然更高。

对结果进行上采样的过程类似-没有新信息,但时间分辨率更高。您可以通过二次插值进行非常相似的操作。

所有这些方法-上采样和多项式插值-从峰本身及其相邻峰中获取有关分数峰的位置的信息。一个简单的图形示例。上图中的蓝线是我模拟的互相关数据(尽管可能是任何结果,而不仅仅是互相关)。这就是我所说的“平衡”峰,因为邻居是对称的。如您所料,二次方插值(红线)表示真实峰值为零。

另一方面,下图显示了不平衡峰值。请注意,除了两个最近邻居的值外,结果没有任何变化。但是,这会导致内插器改变其对分数峰的估计。真实峰值的平均值,尽管我们通常对位置更感兴趣。我们是否需要提高采样率?


要满足奈奎斯特标准。比
内插低采样信号更有意义?


不可以。从理论上讲,只要满足奈奎斯特标准,采样率是多少都没有关系。从实际的角度来看,您通常会采用尽可能低的采样率,以减少存储需求和计算负荷,从而减少所需的资源和功耗。

评论


$ \ begingroup $
@Jim,我知道Nyquist标准。 :-)我的意思是在增加$ F_s $的情况下,开始时有较高的采样率,而不是必须进行上采样,这不是更好吗?真正。似乎一旦纳奎斯特得到满足,您将要获得的所有信息都已经“存在”,并且向上采样到某个水平将为您提供所需的时间分辨率。从这个意义上讲,这是否使它开放了?您可以承受的较高采样越高越好?
$ \ endgroup $
–太空
2012年5月8日19:54



$ \ begingroup $
@Mohammad是和不是。来自结果本身或量化噪声的噪声最终将使提高时间分辨率变得毫无意义。不过,在那之前,是的,更多的上采样将提高估计的准确性。
$ \ endgroup $
–吉姆·克莱(Jim Clay)
2012年5月8日在20:03

$ \ begingroup $
二次/抛物线插值的注释和示例代码:gist.github.com/255291#file_parabolic.md和其他一些插值方法:dspguru.com/dsp/howtos/how-to-interpolate-fft-peak
$ \ endgroup $
– Endolith
2012年5月8日20:23



$ \ begingroup $
@JimClay有机会睡在上面。现在很清楚-信息总是存在的-可以说它只是编码在样本之间的关系中。这就是多边形拟合实际上在其插值中所使用的。而且由于信号是频带受限的(即只能在一个时间跨度内如此快速地变化),因此在样本之间存在信号的方式非常多。
$ \ endgroup $
–太空
2012年5月9日15:36

#2 楼

可以对任何带限信号进行插值。 “样本之间”的附加信息包含在相邻样本中,再加上信号在采样之前受到带宽限制(这会在相邻样本之间扩展信息)。如果两个信号是带宽受限的,那么互相关将是这样,因此也可以对互相关进行内插。上采样只是内插的另一种形式,对于带限信号来说是非常精确的内插形式。但是您也可以使用Sinc插值(两者都比二次插值或抛物线插值更准确)。因此,也许不是没有用。

如果您的信号包含更宽的频谱,则它可以包含更多信息。因此,以较高的速率对其进行采样将提供更多的信息,但只能达到新频带限制频率的一半以下,并且仅当信号包含的实际有用频谱频率内容高于旧频带限制时,并且如果您现在可以获取此附加信号通过使用新的更宽带的频带限制过程或滤波器,而不是较旧的有损耗的频谱来实现频谱分析。在已经被带宽限制到Fs / 2以下的低得多频率的信号上以更高的频率采样数据只会为您带来插值,而不是更多的信息内容。由于抖动或量化误差的噪声整形,以较高的速率采样可能会为您提供一小部分LSB的更多信息。但这取决于采样器的信噪比和精度以及采样中使用的精确量化过程。

如果两个信号在采样和互相关之前没有得到适当的带宽限制,则不仅可能无论是向上采样还是插值都会给您带来垃圾结果,但是原始的非插值互相关也可能是垃圾结果。

评论


$ \ begingroup $
谢谢hotpaw2。因此,可以正确地说,是否对两个信号都进行上采样然后再进行相关处理,或者先进行相关处理再对结果进行上采样处理,这并不重要吗?由于带宽限制,这两种方法应该给您相同的结果?
$ \ endgroup $
–太空
2012年5月9日15:29

$ \ begingroup $
@Mohammad:我认为无论哪种方式它都包含相同的信息,但是由于内插不是完美的,因此根据实现的不同,结果将略有不同。
$ \ endgroup $
– Endolith
2012年5月9日17:07

#3 楼

我认为我能给您的最好的答案是:您有能力自行找出答案。建立一个示例“向后”。使用Matlab,首先以很小的采样周期采样两个信号(因此它们几乎是连续时间的信号)。计算互相关,并找到峰(如果这是您想要的峰),您将可以高精度地进行该过程。然后,对两个信号进行下采样并重复该过程。将第二个峰的位置和高度与第一个峰进行比较。我敢肯定第二个会更糟。如果在互相关之前先进行升采样,则从第二个到第一个的改进就是您获得的收益。带宽。您在问题中提到的“新”信息来自相邻的样本,以及信号受频带限制的事实。

评论


$ \ begingroup $
感谢Telaclavo。我真正不清楚的一件事是“带宽受限”的术语。我知道这是什么意思,但我不明白为什么在这里提到它。任何系统,除了可能的噪声外,都是“频带受限的”,那么为什么要一遍又一遍地提到它呢?
$ \ endgroup $
–太空
2012年5月10日下午3:25

#4 楼

要为先前的答案添加一些信息,可以通过使相关变量为非整数来获得与上采样的带限互相关等效。

以下(python)代码计算$ \ tau $,其中
$$
\ tau = \ arg \ max _ {\ tau} \ sum_ {n = 0} ^ {N-1} f \ left(n \ right)g \ left(n + \ tau \ right)
$$

即找到互相关的最大值。

输入变量ab描述$ f \ left(n \ right) $和$ g \ left(n \ right)$ for $ n = \ {0,1,...,N-1 \} $并且都被假定为频带受限且周期为$ N $在离散傅立叶域中实现)。 $ \ tau $在$ [-N + 1,N-1] $范围内。由闭包correlate_point定义。这使用omega数组,该数组描述了复相量在每个离散频率处的旋转,该频率对应于时移$ \ tau = 1 $。然后,$ \ tau $将为每个班次缩放此比例。显然,要维持实时信号,负频率的旋转只是正频率的旋转的$ -1 $乘以(对于相应的频率对)。

如何处理$ \ frac {N} {2} $样本(奈奎斯特频率),因为这在正带和负带之间共享。此处使用的解决方案是在正旋转相量和负旋转相量(它们是实轴上的反射)之间进行插值,这是将任一单位旋转相量投影到实轴上,这是一个cos函数(pi是因为即与奈奎斯特频率对应的omega的值)。显然,此值必须为实,以维持实时域信号。

您可以使用它来为$ \ tau $的任意精确值计算互相关。只需用您喜欢的$ \ tau $值调用闭包(可以作为可赎回对象返回)即可。


评论


$ \ begingroup $
我需要考虑您的问题是否正确(并且我现在没有时间)。我的想法是,您正在改变信号的群延迟,您可以按照自己的喜好进行调整。这完全等效于在时域中具有Sinc函数的圆形卷积,sinc偏移了$ \ tau $(但仍在与原始信号相同的位置处采样)。值得注意的是,对于整数$ \ tau $,sinc的所有零交叉都与采样时间对齐,除了$ \ tau $(其中为$ 1 $)之外,这就是信号微不足道的原因。
$ \ endgroup $
–亨利·戈默索尔(Henry Gomersall)
2012年5月11日15:16



$ \ begingroup $
哦,您的问题消失了!不过,我将答复留在那里。
$ \ endgroup $
–亨利·戈默索尔(Henry Gomersall)
2012年5月11日15:17

$ \ begingroup $
感谢Henry-(对不起,我想更清楚地删除我的问题!:-))。 (我对python的使用有点慢,但是正在努力)。不管怎样,是的,我想我了解您的方法-我想它的核心在于对互相关结果的相位响应进行插值,然后从中解密出相应的$ tau $值。也许我需要更多时间来消化,但是仍然很有趣。您在哪里/为什么用它代替了时域插值?上下文可能会有所帮助。谢谢!
$ \ endgroup $
–太空
2012年5月11日15:20

$ \ begingroup $
这是天真的追求速度,尽管我很高兴地得知有更快的时域插值算法。我的基本原理是,要在时域中执行非整数时移,您需要$ N ^ 2 $乘法来进行卷积,而使用傅立叶则需要$ N \ left(\ log N + 1 \ right)$方法(或附近)。然后在两种情况下都在时域中进行相关。如果您尝试重新采样,那将是一件非常缓慢的事情(我也将在Fourier域中这样做!)。
$ \ endgroup $
–亨利·戈默索尔(Henry Gomersall)
2012年5月11日15:32

$ \ begingroup $
另外,我发现在傅立叶领域的思考实际上要简单得多。但这可能不正常!
$ \ endgroup $
–亨利·戈默索尔(Henry Gomersall)
2012年5月11日15:38



#5 楼

有一个直观的证据表明,互相关之前的升采样等效于事后进行:

互相关与其他时间反转的信号进行卷积。时间倒转不会影响带宽。卷积是频域中的乘法,它也不会增加带宽。如果原始信号被适当地限制为采样频率的一半,则互相关结果也将是这样。没有引入别名会破坏结果。之后插值可以节省工作。