Post Go back to editing

关于AD9786镜像抑制的问题

各位专家好!

       我在使用AD9786的过程中遇到一个问题,麻烦专家帮我解答下,谢谢!

      现象描述:     

       我要生成的模拟信号频率在100MHz至200MHz之间,为正弦波形式,由FPGA来提供数字信号。FPGA内部产生数字信号用的NCO工作时钟是200MHz(AD9786支持的输入数字速率最高为200MSPS),由FPGA内部的PLL给AD9786提供差分时钟200MHz,DATACLK也为200MHz(差分时钟的P、DATACLK与NCO的工作时钟为同一个时钟源),将AD9786设置为2倍内插模式,并设置2倍内插滤波器为高通模式。

       但是观察输出模拟信号的频谱发现,存在以200MHz对称的镜像信号,比如要生成190MHz信号,在210MHz处存在一个幅度很高的镜像信号,由于两个信号间隔很近,外部连接滤波器无法将此信号滤除。(如果我不设置为2倍内插模式和高通滤波器模式,还会存在以100MHz对称的镜像信号。)

       疑问和需要解决的问题:

       1.DAC芯片为什么会产生镜像信号?

       2.如果在FPGA内对数字信号做处理,能否消除镜像信号(前提是不做调制处理)?

       3.需要怎样设置AD9786,或者在外部做何处理,能够在频谱上只保留100MHz至200MHz之间的有用信号(200MHz附近的镜像信号与有用信号较近,外界滤波器无法有效滤除镜像信号)。

       4.如果AD9786不能满足我的使用要求,麻烦您推荐几款满足使用要求的DAC芯片。

       5.AD9786需要外部实时输入数字信号,然后将数字信号转换为模拟信号,这样要求FPGA不停的向AD9786输出数字信号,有没有其他工作方式的DAC芯片?比如只对AD9786输入一次数字数据,此数字数据相当于一张频率表,然后由FPGA通过控制信号来控制输出模拟信号的频率?

  • 1、借用网上的解释:“DAC的具体实现是通过一组电流或电压开关及其位权电流控制进行平顶脉冲调幅(脉冲成形).因此DAC输出频谱是数字信号频谱(具有周期性)与脉冲成形系统频响之乘积,而脉冲成形系统具有Sa函数特性,换言之,DAC输出频谱是由Sa(PI*f/fs)加权后的周期性重复频谱所组成的,即有镜像信号出现,其中fs为奈奎斯特速率.如果信号载波为fc,则镜像信号位于nfs(+/-)fc,其幅度被Sa(PI*f/fs)加权.”

    建议你参考一下:http://www.analog.com/media/cn/training-seminars/tutorials/MT-002_cn.pdf

    2、FPGA内部的数字信号处理无法消除DAC的镜像信号,只能滤波。

    3、你的采样频率为200M,输出信号要在100M~200M之间,不满足奈奎斯特定理。如果要产生100M~200M的信号,建议提高采样频率,然后滤波。

    4、AD9786采样率可以到500Msps,可以满足你的要求。

    5、我觉得你需要的是一款DDS芯片。你可以去看看直接数字频率合成器 | 亚德诺半导体

  •        您好!非常感谢您的回答,关于DAC芯片产生镜像的原因,您解释的非常详细,这个问题已经明白了。

            关于采样率我还有个疑问,可能我在前面的问题中描述的不够清楚,我要输出的信号范围是100MHz至200MHz,但每次输出的频点个数和具体的频率不定,相当于信号的带宽是100MHz,所以DDS芯片不能满足我的使用要求。我之所以在FPGA中设置DDS的采样率为200MHz,是因为AD9786虽然转换速率有500M,但是要求输入的数字数据速率最高为200M,我的理解是,DAC芯片的输入数字数据速率和我FPGA中DDS的采样率是一致的(FPGA向DAC芯片输出数字信号时,是按照采样率的速度输出的),所以我最高只能使用200MHz的采样率,最终利用的也是100MHz以下信号在第二区的镜像信号,但是第三区的镜像信号是无法有效滤掉的,不知道我理解的对不对?

  • 对的,你的数据采样率最大就是200Msps,后面插值可以插到500Msps。

    这样看来,你要产生100MHz~200MHz之间的信号,是无法满足奈奎斯特准则的。插值的作用只是将你的镜像频率推高,以降低滤波器的设计要求。

    对于过采样插值DAC的知识,请参考:http://www.analog.com/media/cn/training-seminars/tutorials/MT-017.pdf

  •      您好!非常感谢您的插值DAC的资料,看完之后我明白了DAC插值的作用。

         我之前尝试做了AD9786的插值设置,采样速率为200MHz,设置2倍内插的高通滤波模式,但是接近100MHz的有用信号会有明显衰减,在200MHz附近的镜像信号也无法有效滤除。插值的参数设置受到很多限制,因为我要输出的信号带宽是100MHz,所以采样速率不能低于200MHz,否则会产生混叠,而AD9786输入数据的速率最高不能高于200MHz,所以最终决定采样速率只能是200MHz(FPGA侧DDS的采样频率、AD9786的输入数据速率均是200MHz),又因为AD9786的DAC转换速率最高是500MSPS,所以只能选择2倍内插(4倍及以上的内插会超过500M)。

         现在请您帮忙确定下结论,AD9786是不是不能满足我的设计要求,必须得更换DAC芯片才行?谢谢!

  • 1、拿AD9786产生小于100M但是接近100MHz的信号,这个是满足奈奎斯特准则的,但是有些不够,一般要求采样率为2.5倍的最高信号带宽。

    2、使用2倍插值,DAC输出的采样率应该是400Msps。你的镜像应该在300MHz(400M-100M)左右才对。

    3、输出端应该接一个外部低通滤波器,用来抑制镜像才是。低通滤波器的通带至100MHz,阻带300MHz,100~300M之间为过渡带。低通滤波器的参数设置要看你信号的要求,核心是需要把镜像抑制多少个DB。

    4、对于AD9786,ADI官网已经列为“不推荐”了,推荐使用替代型号:AD9779A和AD9125。建议替换,不然后续的芯片采购可能都成问题。