1. 从“能用”到“好用”:为什么你的LTspice FFT结果总是不清晰?
很多刚开始用LTspice做仿真的朋友,尤其是做开关电源、音频放大或者信号调理电路的朋友,应该都尝试过FFT功能。你可能和我当初一样,照着教程跑了个简单的正弦波,右键点击波形,选择“View -> FFT”,然后满怀期待地等着看频谱图。结果呢?弹出来的图可能让你有点失望:主频信号是能看见,但底噪(Noise Floor)高得离谱,频谱线又粗又模糊,旁边还散落着一些莫名其妙的杂散信号(Spur)。你心里可能会嘀咕:“这仿真结果靠谱吗?怎么感觉还不如我示波器测出来的干净?”
我刚开始也踩过这个坑。当时我在分析一个DC-DC转换器的开关噪声,FFT出来的频谱一塌糊涂,根本分不清哪些是真实的开关谐波,哪些是仿真引入的“假信号”。折腾了半天,才发现问题不在于电路本身,而在于LTspice仿真引擎里两个“隐藏”的参数没有设置好。它们就是今天要重点聊的 numdgt 和 plotwinsize。
你可以把LTspice的瞬态仿真想象成一台高速摄像机在拍摄电路里电压电流的变化。numdgt决定了这台摄像机的“色彩深度”或者说“采样精度”。默认情况下,LTspice为了计算速度,用的是单精度浮点数,你可以理解为它只用有限的“颜色”来记录波形细节,一些微小的信号变化可能就被舍入误差给“吃掉”或者“扭曲”了。而plotwinsize则像是后期处理时的一个“图片压缩”算法。LTspice默认会为了节省内存和显示速度,对仿真生成的海量数据进行压缩再画图。这个压缩对看时域波形可能影响不大,但对极度依赖原始数据精度的FFT分析来说,简直就是灾难——它会把本来清晰的频谱细节给“平均”掉,让频谱线变宽、底噪升高。
所以,如果你觉得你的FFT结果看起来“糊糊的”、“毛毛糙糙的”,不够锐利和专业,十有八九就是这两个参数在作祟。调整它们,就是从“能跑出FFT”到“能跑出高质量、可信任的FFT”的关键一步。接下来,我们就手把手把这层窗户纸捅破,让你彻底掌握这两个参数的脾气。
2. 深入参数内核:numdgt与plotwinsize到底在控制什么?
光知道要调参数还不够,咱得明白它们到底在仿真引擎里干了啥,这样以后遇到问题才能举一反三。咱们一个一个来拆解。
2.1 numdgt:仿真数据的“精度开关”
numdgt,全称是“number of digits”,翻译过来是“数字位数”。这个指令的完整写法是 .options numdgt=N,其中 N 就是你设置的位数。LTspice的帮助文档说得比较技术化,我用人话给你翻译一下:
- 当
numdgt=6或更小(默认状态):LTspice在计算瞬态分析时,内部使用单精度浮点数。单精度浮点数大概有6-7位有效十进制数字。对于很多宏观的电压电流值,这够用了。但在进行FFT这种需要对微小差值进行大量乘加运算的算法时,精度不足会带来显著的舍入误差。这些误差在频域看来,就是遍布在整个频谱上的抬高的底噪。 - 当
numdgt=7或更大:LTspice会切换为使用双精度浮点数。双精度浮点数能提供大约15-16位有效十进制数字,其精度是单精度的数百万倍。启用双精度后,仿真引擎计算的每一步,数值的舍入误差都大大降低。反映到FFT结果上,最直观的效果就是底噪(Noise Floor)会急剧下降,频谱线会变得更“干净”,因为那些由计算噪声构成的“假信号”被极大抑制了。
我打个比方:你要测量一杯水的重量。用厨房秤(单精度),你可能只能读到“250克”;而用精密分析天平(双精度),你能读到“250.12345克”。对于判断这杯水大概有多重,厨房秤够了。但如果你要分析这杯水里溶解的微量盐分(相当于FFT里的微小谐波或噪声),就必须用分析天平,厨房秤的误差本身就比盐分还大,根本测不准

337

被折叠的 条评论
为什么被折叠?



