无论您缩放 DFT 的输出是正向还是反向,都与惯例或数学上的方便无关。它与 DFT 的输入有关。请允许我展示一些示例,其中正向和逆变换都需要或不需要缩放。
必须将正向变换按 1/N 缩放。
首先,应该清楚的是,要分析一个简单的正弦波,从数学上讲,变换的长度应该是无关紧要的。假设 N=1024,Freq=100,你的信号是:
f(n) = cos(频率 * 2*Pi * n/N)
如果你取 f(n) 的 1024 点 DFT,你会发现 bin[100] = 512。但这不是一个有意义的值,直到你按 N 缩放它。512/1024 = 1/2 当然,另一个 1/2 在 bin[924] 中的负谱中。
如果将 DFT 的长度加倍,N=2048,则输出值将是 1024 点 DFT 的两倍,这再次使结果毫无意义,除非我们按 1/N 缩放。DFT 的长度不应成为此类分析中的一个因素。因此,在此示例中,您必须将 DFT 缩放 1/N。
不得缩放前向变换。
现在假设您有一个 32 抽头 FIR 滤波器的脉冲响应,并且想知道它的频率响应。为方便起见,我们假设一个增益为 1 的低通滤波器。我们知道,对于这个滤波器,DFT 的直流分量必须为 1。应该清楚的是,无论大小如何,情况都是如此。 DFT 因为直流分量只是输入值的总和(即 FIR 系数的总和)。
因此,对于这个输入,DFT 没有按 1/N 缩放以获得有意义的答案。这就是为什么您可以在不影响变换结果的情况下尽可能多地对脉冲响应进行零填充。
这两个例子的根本区别是什么?
答案很简单。在第一种情况下,我们为每个输入样本提供能量。换句话说,所有 1024 个样本都存在正弦波,因此我们需要将 DFT 的输出缩放 1/1024。
在第二个例子中,根据定义,我们只为 1 个样本提供能量(n=0 时的脉冲)。脉冲通过 32 个抽头滤波器需要 32 个样本,但这种延迟无关紧要。由于我们为 1 个样本提供能量,我们将 DFT 的输出缩放 1。如果用 2 个单位的能量而不是 1 定义脉冲,我们会将输出缩放 1/2。
不得缩放逆变换。
现在让我们考虑一个逆 DFT。与前向 DFT 一样,我们必须考虑我们提供能量的样本数量。当然,在这里我们必须更加小心,因为我们必须适当地填充正频率箱和负频率箱。但是,如果我们在两个适当的 bin 中放置一个脉冲(即 1),那么无论我们在逆 DFT 中使用多少点,逆 DFT 的结果输出都将是幅度为 2 的余弦波。
因此,与正向 DFT 一样,如果输入是脉冲,我们不会缩放逆 DFT 的输出。
必须缩放逆变换。
现在考虑您知道低通滤波器的频率响应并想要进行逆 DFT 以获得其脉冲响应的情况。在这种情况下,由于我们在所有点都提供能量,因此我们必须将 DFT 的输出缩放 1/N 以获得有意义的答案。这不是很明显,因为输入值会很复杂,但是如果您通过一个示例进行操作,您会发现这是正确的。如果您不按 1/N 进行缩放,您将获得 N 量级的峰值脉冲响应值,如果增益为 1,则不会出现这种情况。
我刚刚详述的四种情况是端点示例,很清楚如何缩放 DFT 的输出。但是,端点之间有很多灰色区域。所以让我们考虑另一个简单的例子。
假设我们有以下信号,N=1024,Freq=100:
f(n) = 6 * cos(1*Freq * 2*Pi * n/N) n = 0 - 127
f(n) = 1 * cos(2*Freq * 2*Pi * n/N) n = 128 - 895
f(n) = 6 * cos(4*Freq * 2*Pi * n/N) n = 896 - 1023
注意三个分量的幅度、频率和持续时间差异。不幸的是,该信号的 DFT 将显示所有三个分量的功率电平相同,即使第二个分量的功率电平是其他两个分量的 1/36。
所有三个组件都提供相同数量的能量这一事实是显而易见的,这解释了 DFT 结果,但这里有一个重要的观点。
如果我们知道各种频率分量的持续时间,那么我们可以相应地缩放各种频率区间。在这种情况下,我们将这样做以准确缩放 DFT 的输出: bin[100] /= 128; 仓[200] /= 768;仓[400] /= 128;
这让我想到了最后一点;一般来说,我们不知道特定频率分量在 DFT 的输入端存在多长时间,因此我们不可能进行这种缩放。然而,一般来说,我们确实为每个采样点提供能量,这就是为什么我们在分析信号时应该将前向 DFT 缩放 1/N。
更复杂的是,我们几乎肯定会对该信号应用一个窗口来提高 DFT 的光谱分辨率。由于第一和第三频率分量位于信号的开头和结尾,它们会衰减 27 dB,而中心分量仅衰减 4 dB(汉宁窗)。
需要明确的是,DFT 的输出可能是输入的非常差的表示,无论是否缩放。
在逆 DFT(通常是纯数学问题)的情况下,与分析未知信号相反,DFT 的输入是明确定义的,因此您知道如何缩放输出。
使用频谱分析仪、模拟或 FFT 分析信号时,问题类似。除非您也知道其占空比,否则您不知道所显示信号的功率。但即便如此,窗口、跨度、扫描速率、过滤、检测器类型和其他因素都会影响结果。
最后,在时域和频域之间移动时必须非常小心。你问的关于缩放的问题很重要,所以我希望我已经明确表示你必须了解 DFT 的输入才能知道如何缩放输出。如果输入没有明确定义,那么无论您是否对其进行缩放,都必须对 DFT 的输出抱有很大的怀疑。