Featured image of post [Tech] Welch’s overlapped segmented average 白话文(2)

[Tech] Welch’s overlapped segmented average 白话文(2)

WOSA FFT method 学习笔记

5. Some common units

简单地讨论一下表达时域振幅(Amplitude)常用的单位。

5.1 peak, peak-peak and rms

这里介绍"amplitude"(振幅)的尺度单位。(本例子是Volts,伏特)这同样涉及到Spectrum和Spectral Densities。通常用三个不同的单位。

$V_{pk}$ “Volts Peak"电压峰值作为Amplitude的scale是最显而易见的,它是从平均值到peak的高度(例如,如果信号没有直流分量的话,从0开始)
$V_{pk-pk}$ “Volts peak-to-peak”,峰-峰值,这个测量结果可能比两倍的"Volts peak"大,而且通常被实验者关注,因为它可以简单地从示波器直接读出(不管任何DC offset)
$V_{rms}$ “Volts rms” or “Volts root-mean-square”。被定义为与被测信号【具有相同功率的DC voltage(直流电压)】。对于正弦信号(DFT输出端的所有信号都是正弦信号)这个关系是: $$ V_{rms}=\frac{V_{pk}}{\sqrt{2}} $$ $V_{rms}$ 即"与被测信号功率相同的直流信号的电压”

在接下来我们会用$V_{rms}$作为首要的DFT结果单位。如果有需要的它可以被转换到其他单位,如上公式所述。
因为DFT输出的一个确切的频率会是一个复数,这个振幅(amplitude)被定义成这个复数的绝对值,即,这个振幅(amplitude)是非负实数。
(补充:虽然通常的$V_{rms}$由积分定义,而且这个结果取决于定积分,也就是积分区间改变可能导致不同的结果。在这个语境里面(如一个正弦信号的振幅测量)通常假设是整数个周期的平均值。)

5.2 decibel

进一步的,所有上面三个测量可以被表达成"decibel"(分贝)。通常分贝(dB)的定义是:

任何以dB表示的值表达的是一个比率而不是绝对振幅。这个【参考振幅】通常在符号dB后面被表达,如"dBV" or “dBμV” 分别表示它们的参考振幅是1V或者1μV。
在高频电子,这个最常用的power和amplitude测量单位叫"dBm"。它的参考是1mW 的功率输入到一个假设的负载阻抗,通常这个负载阻抗是50Ω。
由dBm表示的 amplitude $x$ 转换到 由$V_{rms}$表示的 amplitude voltage $U$ 的方式如下: $$ U_{rms}=\sqrt{P\times50\Omega} $$ 功率P由此计算: $$ 1W\times10^{-3+0.1\times\frac{x}{1dBm}} $$ 例如:上面的测试信号可以被表示成:
2Vrms=2.828Vpk=5.657Vpk-pk=6.02dBVrms=126.02dBμVrms=19.03dBm

6. Sampling time, frequency bins etc.

DFT变换,把长度为N的数组,转换成另一个长度为N的数组。它并不关心采样时间、frequency bins等。为了正确地展现结果,上面这些是需要关心的。我们只留下一个自由度,那就是DFT的长度N。
这个"frequency bin"(也被叫做"频率分辨率",“frequency resolution”)定义为: $$ f_{res}=\frac{f_s}{N} $$ 注意,“frequency bin"的能力,是在频谱里区分两个相近的peaks的能力,它有些时候也被叫做"frequency resolution”,但在本文不是。“frequency bin"强取决于选择的窗函数(尤其是窗的带宽,看Section 8)。两个信号可以被分辨的最小分离度也取决于两个amplitudes的比率,并且典型地,几倍大于$f_{res}$,例子的话看附录的[Harris78]。
如上面讨论,这个DFT会产生只有N/2+1个清楚的复数。它们与频率的关系是 $$ f_m=mf_{res}, m=0…N/2 $$ 第一个元素,y(0),对应的是信号的DC平均,因此没有虚部。最后一个元素,y(N/2),对应的是奈奎斯特频率$f_{N/2}=(N/2)f_{res}=f_s/2=f_{Ny}$,也没有虚数部分,因为输出数组具有共轭对称性。第一个和最后一个frequency bins通常没有太大用。
因此在一个实际的应用我们可以说我们在输出处获得N/2 个frequency bins,每一个输出的frequency bins宽度为fs/N。这明显的信息丢失被解释为输出是复数,但是输入是实数。
补充:这个结果复数给出的相位是随机的,对于这些被随机噪声支配(dominated)的frequency bins。如果frequency bins被正弦信号支配,这或许是有意义的。它通常通过使用"相同算法处理的,相同频率的"参考正弦信号(意思就是同样方法生成的同频正弦信号),然后减去两个结果相位来获得两个正弦信号之间的相对相位,同时消除由于算法引起的任何相位偏移。然而,在更多的应用,DFT得到的相位被忽视,因为经常取绝对值来看,例如Equation 23 (Spectrum) or Equation 24(Spectral Density)。

本段小结:
DFT的长度N决定frequency resolution,这很好理解,【采样的频率】范围被平均分为N份。但是经过采样后只有奈奎斯特采样频率以内的频率是能用的。实际上N/2是DFT输出结果的有效范围:y(0)对应DC,y(N/2)对应【奈奎斯特频率】。
对于实际应用,经过DFT得到N/2个frequency bins,每个frequency bins的宽度为fs/N。(后N/2个与前面是共轭对称)

7. Window function

如果我们简单地采取一段长度为N,但是超出了含有正弦信号的时间序列,来进行DFT,我们通常会发现,这个正弦信号理应很简单地只在一个frequency bin呈现一个锐利的peak,但取而代之的是如有一些如图三一样很丑的东西。

这个原因是DFT"默认"这个信号是【周期性的】,例如,在长度N的时域上无限地重复它自己。但是如果这个正弦信号的频率的输出并不是在准确的几个frequency resolution $f_{res}$的准确倍数,例如,不落在准确的frequency bin的中心,那么上面的假设不成立,然后由于这个默认的"连续循环”,DFT会在最后一个样本和第一个样本之间"看到"一个不连续。这个【“不连续”】会把功率分布在整个spectrum上。
这个补救措施是在DFT前,对时域信号【加窗】。这个窗函数从0附近开始,然后在中间增加到最大值,然后减小。因此这个"不连续"就被消除掉了。很多窗函数已经被定义和命名了。它们的设计通常满足一些妥协,在频域peak的宽度、amplitude准确度,以及减小频谱泄露到其他frequency bins的rate。

7.1 Hanning窗作为例子

这一部分使用简单但有效的Hanning windows作为例子,讨论window function的通用属性。其他窗函数,包括flat-top窗,会在附录C、D讨论。
N点长DFT会使用N点长的窗函数,这个窗函数被一个实数数组 $w_j$ 定义,j=0…N-1。使用窗函数的方法是,在进行DFT之前,对时间序列点乘$x_j$,如,使用 $x^{\prime}_{j}=x_j\cdot w_j$ 作为DFT的输入。
对于Hanning窗,定义如下: $$ w_j=\frac{1}{2}[1-cos(\frac{2\pi \cdot j}{N})]; j=0…N-1 $$ 时域正如图4所示:

所有这里出现的windows有如下的对称性: $$ w_j=w_{N-j}……(18) $$ 这暗示了对于偶数长度N,$w_0$ 和 $w_{N/2}$ 仅仅出现一次,然而其他所有系数出现两次。因此只有N/2+1个系数$w_0,…,w_{N/2}$ 需要被计算和储存。注意到这个对称暗示了N个元素的向量 {$w_j$} ,j = 0…N-1不如图四那样堆成,例如通常我们有$w_0 \neq w_{N-1}$ 。如图5中展示,当N=8的时候,这个Equation(18)给出的对称性:

我们定义接下来的两个和式用于归一化的目的: $$ S_1=\sum_{j=0}^{N-1}w_j $$ $$ S_2=\sum_{j=0}^{N-1}w_j^2 $$ 因为我们会用$S_1$和$S_2$来归一化我们最终的结果,我们可以对这个窗值$w_j$点乘任何常数。

7.2 窗函数在频域

这个窗函数的传递函数$a(f)$表示窗对于在一个f frequency bins的偏移的正弦信号的响应。传递函数可以通过在附录B里给出的公式,从窗的值$w_j$ 被计算出。
Hanning窗的传递函数 $a(f)$ 在图6中给出。除了中心peak(我们想要的部分)这里还有更多的peaks在有规律的间隔。它们被叫做"旁瓣",并且是我们不想要的。设计窗函数的一个目标是减小这些旁瓣的高度。注意Figure3和Figure6 的y轴是不同的,在 20bins 的频率偏移处,对比Figure 3 和 Figure 6, 矩形窗的旁瓣是-36dB,然而Hanning窗是-88dB。

这3dB的带宽 $W_{3dB}$ 在附录C中列出给每一个窗,从Equation 42计算出来,通过对自变量f 数学求解方程 a(f)=-3dB。对于Hanning窗,$W_{3dB}=1.44$bins。我们当然想要这个带宽不要那么宽,也就是可以提高频率选择性质。然而,减小sidelobes的level会增加这个bandwidth,因此需要寻找一个妥协。
这个window的"【归一化的等效噪声带宽】(Normalized Equivalent Noise Bandwidth, NENBW)",用frequency bins表达:
$$ NENBW=N\frac{S_2}{(S_1)^2} $$ 这个"【有效噪声带宽】"(Effective noise bandwidth ENBW): $$ ENBW=NENBW\cdot f_{res}=NENBW \cdot \frac{f_s}{N}=f_s\frac{S_2}{(S_1)^2} $$ $f_s$是采样频率,$f_{res}$是一个frequency bin的宽度。
对于Hanning窗,我们有NENBW=1.5bins。当输出的Spectrum要表达成Spectral density(例如进行噪声测量)的时候,需要这个ENBW(在Section 1中已经解释)。由于窗在frequency domain的宽度,任何frequency bin收集不单单是这个noise在这个frequency bin,还从邻近的bins收集。对于这个现象,通过有效噪声带宽(ENBW)划分这些结果。

另一个重要的特性是【最大振幅误差】(maximum amplitude error) $e_{max}$,表示这个$a(f)$的方差从0dB开始到$-0.5≤f≤0.5$的范围。对于正弦信号amplitude的估计里,它表达这个最大的可能误差,这个误差可能掉落到在一个频点以内的任何地方。对于Hanning窗我们发现$e_{max}=-1.42dB$。一种叫"flat-top"窗 (在附录D中讨论)有着更低的$e_{max}$在更宽的带宽里,因此如果正弦信号的amplitude要从这个DFT结果里面被估计,这种"flat-top window"。

可以看到旁瓣的最终的滚动比率取决于不同的窗函数和它的边界(窗函数被0扩展在它的两边)。一个窗函数带有 [一个阶跃的不连续] 下降为$1/f$,一个连续函数带有 [一个不连续的一阶导数] 下降为$1/f^2$,一个窗函数带有 [一个连续的一阶导数] 下降为$1/f^3$等等。对于Hanning窗,包括函数自身和它的一阶导数都是边界连续的,这个旁瓣因此下降为 $1/f^3$ 。对于这些由cosine terms的和定义的窗函数,在Section C.7中讨论这个关系。这个"旁瓣下降比率(Sidelobe Dropping Rate)“将会在下面的表格被缩写成"SLDR”。

本段小结:
一段信号在开始和结束往往是不连续的,进行DFT的时候需要加窗来避免频谱泄露。窗函数可以由公式计算出来,对于N点DFT,N是偶数,这个窗函数的长度也是N,由于对称性,需要计算N/2+1个点。N0和N/2+1是独立的,其他点都有对称。
计算出窗函数的时候,顺带把S1和S2计算出来,与点数N、采样率fs结合求出ENBW,这个ENBW可以用于把Spectral Density转换成Spectrum。
窗函数的选择有一些妥协,如-3dB带宽和旁瓣抑制效果的矛盾等。如果需要从DFT的结果看正弦信号的准确peak,需要选择flat-top window。

8. Scaling the results

现在我们回到归一化FFT结果的问题。假设我们有一个长度为N的输入时间序列$x_{j}$,已经通过Equation 2被转换成Volts。 $$ U_{LSB}=\frac{U_{max}-U_{min}}{2^n}……(2) $$ 在点乘选择好的窗函数后,进行real-to-complex FFT正如Equation 3所定义的:

我们也需要"window sums":S1和S2,从Equation 19 Equation 20定义的: $$ S_1=\sum_{j=0}^{N-1}w_j……(19) $$ $$ S_2=\sum_{j=0}^{N-1}w_j^2……(20) $$ 如Section 4描述的那样,这个FFT的结果是一个长度为N/2+1的复向量$y_m$。我们说这是一个Power Spectrum,用$V_{rms}^2$表达: $$ PS_{rms}(f_m=m\cdot f_{res})=\frac{2 \cdot \left | y_m \right |^2}{S_1^2}; m=0…N/2, ……(23) $$ 这个因子S1扮演N的角色,这是我们在Section 4中发现是必须的。这考虑了DFT的长度N、window function的增益,以及计算窗值wj时点乘的任何常系数。
注意:这里进行DFT得到的是频谱,在Section 1 中提到的"自相关的时域信号与它的频谱密度呈傅里叶变换对"是DTFT。
另一个因子S2,出于我们大概用一个高效的FFT算法,这个算法不计算多余的负频率结果。严格来说,这个因子不应该被第一个frequency bin (m=0) 应用,然而我们忽视了这个区别并相同地对待这第一个frequency bin和其他bins,因为以下的原因:

  1. 第一个bin的结果意味着0频率(DC),是简单的时域平均。如果这个平均值得被关注,这个DFT方法并不适用于测量它。更好的检测时域的DC分量方法是,简单的时域平均,或者更好的,用时域低通滤波器。
  2. 如果窗函数被使用,这里没有协调的的方法来归一化这个m=0的结果。由于在频域窗的宽度,这里DC分量会从m=0 bin 泄露到邻近的bins。在flat-top窗,例如,m=1 bin会得到与m=0 bin几乎同样的结果。如果m=0 bin被区别对待,因为这个DC分量,m=1 bin会展现出比m=0 bin 更强3dB,这显然是矛盾的。
  3. 这个peak amplitude和rms value之间的关系(10)不包含0频率,这进一步使归一化问题复杂化。 $$ V_{rms}=\frac{V_{pk}}{\sqrt{2}} $$
  4. 通常时域信号的DC分量在进行FFT之前经常就已经被消除了(看Section11)。

类似的,这个最后的frequency bin(m=N/2) ,即Nyquist frequency fs/2,原则上应该被区别对待,因为它没有虚部,如果N是偶数。实际应用中这通常也可以被忽视,因为适当的"抗混叠滤波器"在ADC进行转换前已经消除了这个频率。

我们现在回到"normal result"的刻度上。如果想要的结果是一个用 V2/Hz表达的 power spectral density (PSD) ,获得这个需要用Power Spectrum (PS) 除以"有效噪声等效带宽ENBW"

这个关系有非常重要的结果。考虑这个图一展示的例子信号,让DFT的长度不同,这个频率分辨率$f_{res}$和噪声带宽ENBW都与N成反比例变化。在一个用方程23归一化的spectrum,这个1234Hz peak 的 amplitude将如预料一样保持不变。如果我们增加N即减小$f_{res}$,这个50Hz到2000Hz的噪声平面的等级,将会在这个spectrum减小。这是因为一个frequency bin的宽度减小了,因此更小的等效分布噪声功率 减小到一个frequency bin上。
计算一个spectral density,通过Equation 24的归一化来补偿这个效果,然后产生一个独立于N 不变的噪声平面,正如它应该成为。在这个归一化的方法,然而,1234Hz的peak会随着N增加。
因此这个FFT输出的 peak和noise plateau的比率,取决于N,我们需要仔细地区分 spectra 和 spectral densities。这个【Section 2. Introduction】提到的魔术数字用于在它们之间转换,是 “effective noise bandwidth ENBW” ,因此它应该总是被记录,当一个spectrum或者spectra density被计算出来的时候,这样这个结果可以被转换成另一个形式在更广泛的地方,因为这个关于频率分辨率$f_{res}$和被使用的窗口的信息不容易被获得。

这个输出后面的处理是直截了当的:如果想要的结果是 linear spectrum( 用V表达 ),或者一个linear spectral density(用V/√Hz表达),简单地提取 相应的power spectrum或者spectral density的均方根(square root) $$ LSD=\sqrt{PSD} $$ $$ LS=\sqrt{PS} $$ 注意,然而,如果几个spectra/spectral densities是被平均的(看【Section 10. Averaging and overlap】),这个平均必须以"Power Spectra/Power spectral densities"的方式执行,并且这个均方根如果需要,必须仅在最后执行。
最后这个结果可以被转换成其他单位(例如Vpk或者dB),根据【Section 5. Some common units】。

本段小结:
ADC进入的量化电压,转成浮点电压(实数数组),加窗,计算窗的时候获得"windows sums"S1和S2,然后通过real-to-complex FFT后得到Spectrum,值取绝对值的平方乘2除以S1,得到归一化的以$V_{rms}^2$为单位的Power Spectrum。
如果需要的是Power Spectral Density,则除以"ENBW"。最后,如果需要"Linear"而不是"Power",可以开方根,如果转换成其他单位(Vpeak或者dB),参考Section 5提到的公式。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计