在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11743|回复: 16

对噪声整形ADC的输出做FFT频谱分析,fft点数对输出的影响

[复制链接]
发表于 2021-3-10 09:44:37 | 显示全部楼层 |阅读模式
50资产
输入正弦信号250kHz,采样时钟128MHz,128MHz/250kHz=512,是多位量化输出,用的是matlab的psd模块对ADC的输出做频谱分析,问题如下:
当fft点数为8192(2^13)时
image.png

当fft点数提高到16384(2^14)时,噪底提高,导致测量SNR下降严重
image.png



请问这是什么原因?
image.png

最佳答案

查看完整内容

1、一般搭建模型时,要按照实际的信号摆幅来做输入,这样得到的SDM的系数可以直接在电路里实现,不需要之后再缩放系数来调每级的摆幅。当然这个和FFT分析关系不大,不过会便于运算,比如信号如果是1V附近的话,那么频谱图里能量大概就是0dB了,这样就看带宽里能量最高的那个噪声能量,就是你的SNDR了。 2、代码还是自己弄一个吧,这样能加深FFT的理解,也能随时改代码,比如加窗函数之类的。 3、采样点数提高,分辨率变细是不假 ...
发表于 2021-3-10 09:44:38 | 显示全部楼层


周泽鑫 发表于 2021-3-11 15:28
辛苦码这么多字,感谢!
今天重新处理了下,的确怀疑是计算模块的问题,我调用的是simulink提供的psd模块 ...


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分析时,相干采样很重要。



发表于 2021-3-10 13:14:15 | 显示全部楼层
谢谢分享
发表于 2021-3-10 16:00:13 | 显示全部楼层
Mark一下
发表于 2021-3-10 16:07:51 | 显示全部楼层
Noise floor没有超过distortion的level,另外最好看下输入的amplitude,是否有saturation
 楼主| 发表于 2021-3-10 16:14:29 | 显示全部楼层


frj8848 发表于 2021-3-10 16:07
Noise floor没有超过distortion的level,另外最好看下输入的amplitude,是否有saturation ...


多谢!
请问Noise floor没有超过distortion的level是指什么?我对结果的理解是distortion淹没在Noise floor中了。
另,输入幅度是没有饱和的,我试过不同的输入,都是一样。。。
发表于 2021-3-10 23:32:37 | 显示全部楼层


周泽鑫 发表于 2021-3-10 16:14
多谢!
请问Noise floor没有超过distortion的level是指什么?我对结果的理解是distortion淹没在Noise flo ...


可以试试fin/fsample = Nwindow/Nfft
 楼主| 发表于 2021-3-11 00:01:41 | 显示全部楼层


frj8848 发表于 2021-3-10 23:32
可以试试fin/fsample = Nwindow/Nfft


已经是相关采样了
发表于 2021-3-11 09:09:02 | 显示全部楼层
试一下fs*k=fin*N吧,k是质数
发表于 2021-3-11 09:24:16 | 显示全部楼层


周泽鑫 发表于 2021-3-11 00:01
已经是相关采样了


试试总能量呢?频带内,包括out of band,噪声能量是啥关系?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

如何优化 SoC 设计

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-19 14:27 , Processed in 0.027220 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表