簡述函數發生器的實現方法
函數信號發生器有很寬的頻率范圍,使用范圍很廣,它是一種不可缺少的通用信號源。可以用于生產測試、儀器維修和實驗室,還廣泛使用在其它科技領域,如醫學、教育、化學、通訊、地球物理學、工業控制、軍事和宇航等。以下內容簡要敘述函數發生器的實現方法。
函數信號發生器的實現有2種方法:
1、采用FPGA+DA的方法實現。這個的做法復雜很多,其中安捷倫的信號源就是這樣做法,在這里著重說一下這個的實現方法。
(1)正弦波可以采用FPGA內部的DDS或者cordic算法實現,這個根據需求與FPGA資源進行決定。
(2)方法是實現第二難的部分,由于DDS的誤差累計,采用簡單的等于以及不等于的方法會產生很大的相位抖動,就是說的累加到倍數或者小數部分,因此需要對這部分進行算法上的處理,zui簡單的算法就是差值處理。
(3)三角波/斜波 采用方波算法后,找出兩個折線,就可以實現。
(4)脈沖產生,這部分是zui難的部分,它必須根據方波來擬合出公式來滿足,占空比,上升沿,下降沿,脈寬等參數。
(5)pn碼,這個比較容易實現,采用m序列就可以很好的產生了。
(6)高斯帶限噪聲,可以先生成一個白噪聲 + 濾波器的方法,濾波器的系數采用matlab來產生,通過降低clk來降低帶寬。
(7)任意波發生器,采用PC下載到FPGA內部的存儲器的方法,采用插值算法可以實現任意碼元速率的輸出。
2、采用外部DDS時鐘 + sdram+da的方法實現,這樣需要PC機下載波形點數到FPGA中,然后控制DDS產生需要的時鐘,它的優點是實現簡單,缺點是不能快速的產生波形,同時在低頻的情況下,性噪比不是特別好。
函數信號發生器的實現有2種方法:
1、采用FPGA+DA的方法實現。這個的做法復雜很多,其中安捷倫的信號源就是這樣做法,在這里著重說一下這個的實現方法。
(1)正弦波可以采用FPGA內部的DDS或者cordic算法實現,這個根據需求與FPGA資源進行決定。
(2)方法是實現第二難的部分,由于DDS的誤差累計,采用簡單的等于以及不等于的方法會產生很大的相位抖動,就是說的累加到倍數或者小數部分,因此需要對這部分進行算法上的處理,zui簡單的算法就是差值處理。
(3)三角波/斜波 采用方波算法后,找出兩個折線,就可以實現。
(4)脈沖產生,這部分是zui難的部分,它必須根據方波來擬合出公式來滿足,占空比,上升沿,下降沿,脈寬等參數。
(5)pn碼,這個比較容易實現,采用m序列就可以很好的產生了。
(6)高斯帶限噪聲,可以先生成一個白噪聲 + 濾波器的方法,濾波器的系數采用matlab來產生,通過降低clk來降低帶寬。
(7)任意波發生器,采用PC下載到FPGA內部的存儲器的方法,采用插值算法可以實現任意碼元速率的輸出。
2、采用外部DDS時鐘 + sdram+da的方法實現,這樣需要PC機下載波形點數到FPGA中,然后控制DDS產生需要的時鐘,它的優點是實現簡單,缺點是不能快速的產生波形,同時在低頻的情況下,性噪比不是特別好。