1、一般搭建模型时,要按照实际的信号摆幅来做输入,这样得到的SDM的系数可以直接在电路里实现,不需要之后再缩放系数来调每级的摆幅。当然这个和FFT分析关系不大,不过会便于运算,比如信号如果是1V附近的话,那么频谱图里能量大概就是0dB了,这样就看带宽里能量最高的那个噪声能量,就是你的SNDR了。
2、代码还是自己弄一个吧,这样能加深FFT的理解,也能随时改代码,比如加窗函数之类的。
3、采样点数提高,分辨率变细是不假,但根源还是取点的问题。比如你是1M的采样频率,采样了1000个点,那么频率分辨率就是1K,如果你输入一个5.1K的频率,你要怎么办?你要怎么算信号功率?你的频谱图上没有5.1K这个频点?那是不是你的频谱图就反映不出你的信号功率了?不是的,5.1K的能量会分散到5K、6K这些附近的频点上,直观的结果就是频谱图上的小山峰,这就是频谱图泄露。但是我们在代码里,计算信号能量的时候,依旧是在信号频点附近的3~5个频点范围内的,把所有的能量一起求和,才是信号的能量。如果你设置成质数,就不会出现这个问题,频谱图里【必然】会出现这个频点,而且必然是公式中的第k点,具体的你可以上网搜一下。
频谱泄漏最直接的影响是造成谐波分析不准确 ,进而造成以谐波分析为基础的电参量测量不准确,所以我们会加窗函数。增加数据采样点数 ,可减少泄漏 ,其实质是减小矩形窗主瓣的宽度。 提高信号的采样频率也可减少泄漏。上述两种方法 ,与增加的数据处理量相比 ,对泄漏的改善是极其有限的。(本段来自度娘)
你看你采样点少的时候,谐波是不是很高很明显,采样点增加后,泄露减少了,谐波也没那么明显了。所以ADC做FFT分析时,相干采样很重要。
|