1.算法涉及理論知識概要
現代電子技術的不斷發展,很多應用領域對信號的頻率的準確度和穩定性要求越來越高,不僅需要單一的固定頻率,還需要多點頻率,如短波通信接收機要求在2~30MHz的范圍內提供以100Hz為間隔的280000個通信頻道。一般的振蕩器已不能滿足要求,于是出現了高穩定和高準確的晶體振蕩器。但晶體振蕩器產生的只是單一頻率的信號或只能在很小范圍內微調。然而,在通信、雷達、儀表、宇航等領域往往需要在一定頻率范圍內提供一系列穩定和準確的頻率,為了解決既要頻率穩定準確,又要頻率能在很大范圍內變化的問題,于是產生了頻率合成技術。
直接數字頻率合成技術 (Direct Digital Synthesis)完全不同于我們己經熟悉的直接頻率合成技術和鎖相環頻率合成技術。直接數字頻率合成技術(簡稱DDS)的理論早在七十年代就被提出。它的基本原理就是利用采樣定理,通過查表法產生波形,由于硬件技術的限制,DDS技術當時沒能得到廣泛應用。隨著大規模集成電路技術的飛速發展,DDS技術的優越性己逐步顯現出來。不少學者認為,DDS是產生信號和頻率的一種理想方法,發展前景十分廣闊。與其他頻率合成方法相比較,直接數字頻率合成技術的主要優點是易于程控,相位連續,輸出頻率穩定度高,分辨率高。其頻率分辨率可以達到10-3。而且頻率轉換速度快,可小于100ns,特別適宜用在跳頻無線通信系統。其相位噪聲主要決定于參考時鐘振蕩器。
DDS(Direct Digital frequency Synthesis)即直接數字頻率合成器,是一種新型的頻率合成技術,具有較高的頻率分辨率,快速的頻率切換,穩定性好,可靈活產生多種信號的優點。因此,在現代電子系統及設備的頻率源設計中,尤其在通信領域,直接數字頻率合成器的應用越來越廣泛。在數字化的調制解調模塊中。DDS取代了VCO(模擬的壓控振蕩器),被大量應用。這種合成技術是一種利用數字技術來控制信號的相位增量的技術,它采用插值取樣的方式,將要合成的正弦波波形用若干個采樣點的取值來代替,然后依次等時間間隔輸出這些取值,每個采樣點的值由預先存儲的數字值經D/A轉換后得到。
DDS工作原理框圖如圖1所示。其基本結構包括:相位累加器PA、波形查詢表ROM、數模轉換器DAC及低通濾波器。
DDS的工作過程為:在參考時鐘fc的作用下,相位累加器對頻率控制字FCW(Frequency Control Word)進行線性累加,將其高W位作為地址碼通過波形查值表ROM變換,產生D位對應信號波形的數字序列,再由數模轉換器DAC將其轉化為階梯模擬電壓波形后由具有內插作用的低通濾波器LPF將其平滑為連續的正弦波形作為輸出。
一個N位的相位累加器對應相位圓2N上個相位點,其最低相位分辨率為θmin=Δθ=2π/2N。在圖2中N為4,則有16個相位值和16個幅度碼相對應。該幅度存儲于波形存儲器中,在頻率控制字FCW的作用下,相位累加器給出不同的相位碼,對波形存儲器尋址,完成相位--幅度變換,經DAC變成階梯正弦波信號,再通過低通濾波器平滑,便得到模擬正弦波輸出。
自第一部正弦波發生器問世以來,函數發生器的設計已經發生了多次演進,在當前數字領域中,大多數新型函數發生器都在采用直接數字頻率合成技術。DDS在大部分操作中使用數字電路,從而提供了數字操作擁有的許多優勢。
第一,輸出信號的頻率精度可以達到作為發生器參考信號使用的晶體控制振蕩器的水平。如果想實現更高的精度,也可以采用函數發生器本身的溫度補償晶體振蕩器產生。
第二,DDS信號發生器的數字電路可以實現與數字電路相同的頻率精度。
第三,如果擁有RAM波形存儲器,那么DDS函數發生器可以重現幾乎任何波形。因此,函數發生器現在的功能要遠遠超過傳統函數發生器。對稱性可變的波形現在已經是標配功能,另外還可以內置各種不常見的波形,如指數上升和下降型波形或正弦脈沖型波形等。但由于DDS的全數字結構,使得直接數字頻率合成器不可避免的擁有以下兩個缺點。
第一,其雜散分量豐富。這些雜散分量主要由相位舍位、幅度量化和DAC的非理想特性所引起。
第二,輸出頻帶受限。由于DDS內部DAC和ROM的工作速度限制,使得DDS輸出的最高頻率受到極大的限制。
function a_ASK() i=10; j=5000; t=linspace(0,5,j); fc=10; fm=i/5; B=2*fc; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%產生基帶信號 a=round(rand(1,i));%隨機序列 st=t; for n=1:10 if a(n)??1; for m=j/i*(n-1)+1:j/i*n st(m)=0; end else for m=j/i*(n-1)+1:j/i*n st(m)=1; end end end figure(1); subplot(131); plot(t,st); axis([0,5,-1,2]); title('基帶信號'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%載波 s1=cos(2*pi*fc*t); subplot(132); plot(s1); title('載波信號'); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%調制 e_2ask=st.*s1; subplot(133); plot(t,e_2ask); title('已調信號');
審核編輯 黃宇
-
FPGA
+關注
關注
1626文章
21666瀏覽量
601837 -
調制
+關注
關注
0文章
155瀏覽量
29654 -
DDS
+關注
關注
21文章
631瀏覽量
152541
發布評論請先 登錄
相關推薦
評論