我正在使用进行声学分析的设备。它通过获取时域信号并对其执行FFT,以提取单个所需频率上的幅度和相位(称为f0)来实现。现在,我了解了FFT。这部分很容易。但是,我不理解的是我在仪器的LabView代码中发现的所有额外步骤的后果。步骤如下:


获取时域信号并将校准系数应用于每个点。
从信号中减去均值以去除直流分量
在通过将复时域信号乘以cos(2πf0)-i sin(2πf0)
,使用精确的Blackman进行窗口f0进行FFT
取输出的DC分量,除以N / 2(其中N是时域中的采样数)
从DC分量获取f0处的幅度和相位

具体来说,我对第3步如何让我在f0处获取值感到困惑通过查看FFT输出的直流分量。我已经使用numpy.fft.fft和一些模拟信号在python中重新创建了该代码,并且得到了相似的结果。

最终,我想这听起来像是一个理论/数学问题。

评论

对于每种方式,通常都有一个“为什么”。在不知道为什么的情况下无法完全解释。

#1 楼

这是I / Q解调的一种变体,它使用FFT在批处理模式下完成。

首先,快速傅立叶变换只是一种可以快速实现离散傅立叶变换的算法;因此,它是DFT的完美子集。您所做的事情总体上适用于DFT。

(现在我掌握了全部的数学知识。或者,如果我想移居到某个他们说英语的地方,则可以全部获得数学知识)。

第二,将DFT定义为$$ X_k = \ sum_ {n = 0} ^ {N-1} {x_n e ^ {j 2 \ pi \ frac {kn} {N}}} $ $

因此,如果我将某个整数$ k_0 $的调制信号定义为$ y_n = x_n e ^ {j 2 \ pi \ frac {k_0} {N} n} $,则通过定义$$ Y_k = \ sum_ {n = 0} ^ {N-1} {x_n \ left(e ^ {j 2 \ pi \ frac {k_0 n} {N}} \ right)e ^ {j 2 \ pi \ frac {kn} {N}}} $$

但是我可以简化一下:$$ Y_k = \ sum_ {n = 0} ^ {N-1} {x_n e ^ {j 2 \ pi \ frac {(k + k_0)n} {N}}} $$

但是,您可以在视觉上将其与我的第一个等式进行比较,以获得$ Y_k = X_ {k + k_0} $。

这是一种非常冗长的说法,如果您在时域中乘以旋转向量($ e ^ {j \ omega t} $),则结果的频谱随旋转矢量的频率上移。在您的情况下,向量的频率为负(因为$ \ cos 2 \ pi ft-j \ sin 2 \ pi ft = e ^ {-j 2 \ pi t} $),所以您要转移任何有趣的东西发生在$ f_0 $降到DC。

评论


$ \ begingroup $
那么,长话短说,它正在去除载体吗?
$ \ endgroup $
–桅杆
19-10-22在8:20

$ \ begingroup $
否。如果要去除载波,则需要做很多工作来忽略或减去载波频率下的能量。这正在以载波频率移动能量,以便它只能在载波周围获得信号。这是I / Q解调的变体(我将编辑答案以指出这一点)。
$ \ endgroup $
– TimWescott
19-10-22在15:09

$ \ begingroup $
对,重要区别。谢谢。
$ \ endgroup $
–桅杆
19-10-22在15:54

$ \ begingroup $
太棒了。您知道,如果我对DFT的定义甚至不加思索,我可能会想出来的!感谢您的详细答复。
$ \ endgroup $
– Ben S.
19-10-22在15:55

#2 楼

Bird的答案是正确的。

所描述的设置是锁相放大器的一种实现。

锁相放大器用作检测是否存在的非常窄带的滤波器

如果将两个信号(两个简单的正弦波)相乘,则会得到一个新信号,该信号包含一个频率,该频率是原始两个信号的总和与一个频率这就是原始两个信号的差异。 (1000Hz * 200Hz提供800Hz和1200Hz的混合输出。)此过程在无线电接收器中用于将接收到的无线电信号降低到更方便进行进一步处理的频率。

您的LabView程序利用此效应来检测信号与参考信号相比的幅度和相位。

输入信号和参考信号的差为0Hz信号-即DC。您可以从FFT结果的bin 0中得到它。

如果输入频率和参考频率不同,则差异落在另一个bin中,并且被检测器忽略。

从采样集中消除DC偏移也很有意义-输入中的任何实际DC都将覆盖从外差步骤生成的DC。

关于您的设备执行操作的原因可能是这样,它可以恢复已发送的信号,以告知有多少信号返回到接收器,并且无论接收到的信号有多弱或存在多少噪声,它都可以做得差不多。

由于您说它也占用输出的相位,因此它可能是在测量距离的过程中使用它。

您不会说使用了什么结果或在什么条件下使用它,所以关于“为什么”我只能说的不多了。

评论


$ \ begingroup $
感谢您的答复!该仪器用于检测由光声效应产生的非常小的声波,特别是对于小的碳质颗粒(例如烟)。相信息用于获得所研究颗粒尺寸的定性度量。
$ \ endgroup $
– Ben S.
19-10-22在15:57

$ \ begingroup $
因此,我想您事先知道您的粒子将产生多大的声音频率。 Erk“光声效应”。信号微弱。
$ \ endgroup $
– JRE
19-10-22在16:01

$ \ begingroup $
好。我抬起了光声效果。您的光以已知的频率进行调制(如您所说的$ f_0 $。)然后就很有意义了-您正在检测一个已知的频率,因此锁定放大器才有意义。
$ \ endgroup $
– JRE
19-10-22在20:53



#3 楼

当您将$ x(n)$时域序列乘以$ e ^ {-j2 \ pi f_on / F_s} = \ cos(2 \ pi f_on / F_s)-j \ sin(2 \ pi f_on / F_s) $获得一个复数值序列,其频谱为$ x(n)$的频谱在负频率方向上偏移$ f_o $ Hz。因此,如果$ x(n)$的频谱分量为$ + f_oHz,则该频谱分量将在新序列中显示为DC(零Hz)。新序列的DC频谱分量的相位将是$ x(n)$的$ + f_o $频谱分量的相位。

评论


$ \ begingroup $
@ Fat32。我看不到您的“编辑”如何改变了我的答案。
$ \ endgroup $
–理查德·里昂(Richard Lyons)
19-10-23在10:58

$ \ begingroup $
我刚刚将$ cos $替换为$ \ cos $ ...如果您希望摆脱出现在这里的照片,可以重新编辑答案:-) [这就是我在这种时候所做的]
$ \ endgroup $
– Fat32
19-10-23在21:47

$ \ begingroup $
@ Fat32。啊哈,好。无需编辑,因为您的图片很漂亮。
$ \ endgroup $
–理查德·里昂(Richard Lyons)
19-10-24在11:55

$ \ begingroup $
谢谢里昂斯先生,虽然不如您酷,但是没关系...
$ \ endgroup $
– Fat32
19-10-24在21:13



#4 楼

在我看来就像一个锁相放大器

评论


$ \ begingroup $
@MBaz仅使用搜索词将有很大帮助。但是鉴于解调是以固定频率进行的,因此我不确定称其为放大器锁定是准确的,尽管我认为放大器的锁定具有自由运行模式。
$ \ endgroup $
– TimWescott
19-10-22在15:06

$ \ begingroup $
@TimWescott好吧-感谢您的反馈。
$ \ endgroup $
– MBaz
19-10-22在15:32

#5 楼

我不知道步骤1的后半部分是什么。

步骤2是不必要的(假设$ f_0 $不为零)。

步骤4和步骤5是不必要的。

步骤6可以求平均值。因为您通过乘以$ e ^ {-j 2 \ pi f_0 t} = \ cos(2 \ pi f_0 t)-j \ sin(2 \ pi f_0 t)$来降低频谱,这是频率$ f_0的分量现在,$被减至DC的实部和虚部。

平均得到DC分量。

评论


$ \ begingroup $
对,执行FT,然后仅取其中的DC分量是很愚蠢的,这是绝对正确的。关于第2步和第4步是不必要的,尽管如此,我不确定-抑制频谱泄漏很有意义。尽管仍然如此-整个事情听起来确实过于复杂。
$ \ endgroup $
–leftaround关于
19-10-22上午9:00

$ \ begingroup $
你是对的,平均可以得到DC分量,但是我们也对f0附近的一些值感兴趣,这对于OP(经典的X-Y问题)是不必要的。在f0附近平均​​几个值可以使我们获得该仪器对噪声的定义。
$ \ endgroup $
– Ben S.
19-10-22在15:19

$ \ begingroup $
我们应该对频率转换后的样本求和,而不是对频率转换后的样本取平均值,以产生正确的复数值频谱DC(零赫兹)样本。
$ \ endgroup $
–理查德·里昂(Richard Lyons)
19-10-23在11:10