函数 thd
、sfdr
、sinad
和 snr
用于测量由正弦波激励的弱非线性系统的响应。
当提供时域输入时,snr
使用带有大旁瓣衰减的凯塞窗执行周期图。为了找到基频,该算法会在周期图中搜索最大的非零频谱分量。然后,它会计算所有相邻 bin 的中心矩,这些 bin 从最大值单调递减。为了可被检测到,基频应至少位于第二个频率 bin 中。高次谐波是基频的整数倍。如果一个谐波位于另一个谐波邻域中的单调递减区域内,则我们认为其功率属于较大的谐波。此较大的谐波不一定是基频。
该函数使用仅含噪区域中的中位数功率来估计噪声电平。计算中不包括 DC 分量。每个点处的噪声是该点的估计电平或纵坐标,以较小者为准。该噪声随后将从信号和谐波值中减去。
如果基频不是信号中最高的频谱分量,则 snr
会失败。
请确保频率分量相距甚远,足以适应凯塞窗的旁瓣宽度。如果这种情况不可行,您可以使用 "power"
标志,并使用不同的窗计算周期图。