函数发生器的实现有2种方法 1 : 采用外部DDS时钟 + sdram+da的方法实现,这样需要PC机下载波形点数到
FPGA中,然后控制DDS产生需要的时钟,它的优点是实现简单,缺点是不能快速的产生波形,同时在低频的情况下,性噪比不是特别好。
2 :采用FPGA+DA的方法实现。这个的做法复杂很多,其中安捷伦的信号源就是这样做法,在这里着重说一下这个的实现方法。
1):正弦波可以采用FPGA内部的DDS或者cordic算法实现,这个根据需求与FPGA资源进行决定。
2): 方法是实现第二难的部分,由于DDS的误差累计,
采用简单的等于以及不等于的方法会产生很大的相位抖动,就是说的累加到倍数或者小数部分,因此需要对这部分进行算法上的处理,最简单的算法就是差值处理。
3): 三角波/斜波 采用方波算法后,找出两个折线,就可以实现。
4): 脉冲产生,这部分是最难的部分,它必须根据方波来拟合出公式来满足,占空比,上升沿,下降沿,脉宽等参数。
5) :pn码,这个比较容易实现,采用m序列就可以很好的产生了。
6) :高斯带限噪声,可以先生成一个白噪声 + 滤波器的方法,滤波器的系数采用matlab来产生,通过降低clk来降低带宽。
7 ):任意波发生器,采用PC下载到FPGA内部的存储器的方法,采用插值算法可以实现任意码元速率的输出。
还有调制部分,这部分就不在这里讲述了
动静道人
2015.07.20
成都