ADC动态仿真中输入信号频率与采样频率的关系
在做ADC的动态特性仿真时,输入频率与采样频率的关系应如何确定?
看到一些资料上面说fin=fs*M/N,
其中,fin为输入信号频率,fs为采样频率,M为奇数或者质数,N=2^n。
请问有没有更加详细的要求?比如说我的采样频率为300KHz时,采样点数为1024,输入信号频率为多少时最适宜?
谢谢大家了!
取M=5:
1024个点在5个周期内采完,每个信号周期采到204.8个点。300KHz的采样频率对300K/204.8=1.4648KHz的输入信号采样时,可以采到204.8个点。这时候设置仿真时间为5/1.4648K=3.42ms 即可。
取M=311:
300KHzd的采样频率对91.113KHz的输入信号采样,每个信号周期采到3.2926个点。仿真中瞬态时间设置成311个时钟周期,一共采到 3.2926 x 311 = 1024个点。
说说我对采样FFT的直观理解:
fin=fs*M/N应该指的是coherent采样,这样就不加窗直接算FFT
M取奇数保证你的N点FFT不会有重复采样的问题
M/N直观来讲:在时间域就是N个采样点取M个周期,在频率域就是输入信号出现在第M+1个点
fs可取任意值,只是个坐标缩放问题
fin和fs大小关系,fin<fs/2是内奎斯特,fin>fs/2应该就是所谓欠采样
fin取任何值都行,fin>fs/2的频率也可以折射到<fs/2区域
不过从电路来讲,受限于速度,fin越大,采样精准度(信噪比,谐波失真)就会变差
谢谢您的回复,在论坛里经常看到您对别人问题的回答,很是感激,谢谢!
我对输入信号频率的理解是,在fin=fs*M/N基础上,由于N和fs是比较固定的,所以可以自由设定M值(当然M值要和N互质)来确定fin。
您回复的两个M值,是不是过小或者过大,因为我记得在一个帖子里面说的是,fin最好取fs的1/20~1/40。
不知道您是怎么理解的?谢谢您的回复!
对,您解释的很清楚,我不知道coherent采样应该怎么翻译,呵呵。
我用fin=fs*M/N的目的确实是为了不加窗进行FFT变换。
另外您说的fs可以取任意值是什么意思,我不太理解?因为我觉得一个ADC里面,采样率应该是固定的啊?
呵呵,另外问一个问题,进行ADC的动态特性仿真时,必须要将ADC的输出经过理想DAC转换成模拟电压后,再进行FFT变换吗?
因为我觉得好像将ADC的输出转换成为十进制后,再进行FFT变换也能得到结果额。不知道这样子可不可以?
期待您的回复!
fs取任意值是纯理论的东西,当然应用因不用ADC而异,比如逐次逼近AD就慢,流水线就快
所谓输出加理想DAC就是你说的把输出码换算为10进制,一个意思..
哦,原来是这样子啊,将ADC的输出经过理想DAC,我一直理解成为转换成与模拟输入信号相对应的电压值,原来就是转换成为十进制数字啊。
特别感谢!呵呵,解开了我心中的一个结了,谢谢指点!
学习了,但是只是知道了如何选取输入信号的频率,而对于为什么要这样选还是不太清楚,为什么M取质数就不会重复采样呢?
有两个问题想问问,先谢过大家了:
1)fclk/fin是否有个比较合适的范围,比如20~40或者多少?
2)fclk/fin是否可以任意大,比如1000?
ADC的输出数据是个.txt文件么?怎么得到的啊?
我也想知道这个问题。