摘 要:DDS是將先進(jìn)的數(shù)字處理理論與方法引入頻率合成的一項(xiàng)新技術(shù)。VHDL作為一種硬件描述語(yǔ)言,用于描述硬件電路的功能、信號(hào)連接關(guān)系及定時(shí)關(guān)系,在電子工程領(lǐng)域得到了廣泛的應(yīng)用。介紹了DDS的基本原理及其調(diào)制特性,并且利用VHDL語(yǔ)言編程實(shí)現(xiàn)了DDS,在此基礎(chǔ)上進(jìn)一步設(shè)計(jì)實(shí)現(xiàn)了一種基于DDS技術(shù)的線性調(diào)頻信號(hào),給出了其主要部分的仿真結(jié)果,驗(yàn)證了其正確性。
關(guān)鍵詞:DDS;直接數(shù)字頻率合成;調(diào)頻;掃頻;VHDL
中圖分類號(hào):TN99 文獻(xiàn)標(biāo)識(shí)碼:B 文章編號(hào):1004373X(2008)1503002
Generation of Linear Frequency Modulation Signal Based on DDS
ZHANG Xianzhi
(Unit 63891 PLA,Luoyang,471003,China)
Abstract:DDS is a new technology which advanced theory and method of digital processing into frequency synthesis.VHDL is a kind of hardware description language,it is used to describe the function of circuit hardware,the connection relationship of signal and the timing relationship.So,it is applied broadly in the field of electron engineering.The fundamental and modulation characteristics of DDS are introduced.Besides,DDS is implemented by programming in VHDL language.A sort of linear FM signal based on DDS technology is implemented.Then,simulation result of the main part of them is given,and its correctness is verificated.
Keywords:DDS;direct digital frequency synthesis;FM;sweep frequency;VHDL
1 DDS(直接數(shù)字式頻率合成器)的基本原理
直接數(shù)字頻率合成是從相位概念出發(fā)直接合成所需波形的一種頻率合成技術(shù)。DDS把一系列數(shù)字量形式的信號(hào)通過數(shù)模轉(zhuǎn)換器(DAC)轉(zhuǎn)換成模擬量形式的信號(hào),其基本結(jié)構(gòu)如圖1所示。
圖1 DDS結(jié)構(gòu)示意圖DDS由相位累加器、加法器、波形存儲(chǔ)器(ROM)、數(shù)字乘法器、D/A轉(zhuǎn)換器和低通濾波器(LPF)組成。DDS的核心是相位累加器,由一個(gè)加法器和一個(gè)相位寄存器(REG)級(jí)聯(lián)構(gòu)成。在參考時(shí)鐘fc的控制下,相位累加器對(duì)頻率控制字K進(jìn)行線性累加,輸出的和再與相位控制字P相加后作為地址,對(duì)ROM進(jìn)行尋址。ROM中存放的是經(jīng)過采樣、量化處理后的某種周期性連續(xù)信號(hào)一個(gè)周期波形的幅度值,也就是與一個(gè)周期的相位采樣相對(duì)應(yīng)的函數(shù)波形查找表,不同的相位地址對(duì)應(yīng)這種周期信號(hào)的不同幅度值編碼。ROM輸出的幅度值編碼通過數(shù)字乘法器被幅度控制字A加權(quán),加權(quán)后的幅度值編碼經(jīng)D/A轉(zhuǎn)換器變成相應(yīng)的階梯波,再經(jīng)低通濾波器平滑后就可以得到所合成信號(hào)的模擬波形。合成的信號(hào)波形取決于ROM中存放的幅度值數(shù)據(jù),因此用DDS可以產(chǎn)生任意波形。
設(shè)相位累加器的字長(zhǎng)為N,則DDS的輸出頻率fo和頻率分辨率(即最小輸出頻率)Δfmin分別為:fo=K·fc2N
Δfmin=fc2N 只要N足夠大,DDS可以得到很小的頻率分辨率。要改變DDS的輸出頻率,只要改變頻率控制字K即可。
值得注意的是,根據(jù)Nyquist采樣定理,在對(duì)連續(xù)信號(hào)進(jìn)行采樣的一個(gè)周期內(nèi),采樣頻率不能改變,故利用DDS進(jìn)行信號(hào)合成時(shí),在信號(hào)合成的一個(gè)周期內(nèi),頻率控制字K不能發(fā)生變化,也就是K在每次改變之前至少應(yīng)該持續(xù)2N/K個(gè)DDS時(shí)鐘周期,即2N/K/fc。
通過改變相位控制字P可以控制輸出信號(hào)的相位參數(shù),設(shè)相位加法器的字長(zhǎng)為M,當(dāng)相位控制字由0變到P(P≠0)時(shí),ROM的輸入為相位累加器的輸出與相位控制字P之和,因此其輸出的幅度值相位會(huì)增加2πP/2M,從而使最后輸出的模擬信號(hào)產(chǎn)生相移。
DDS輸出信號(hào)的幅度可以通過在ROM之后加入一個(gè)數(shù)字乘法器來實(shí)現(xiàn),幅度控制字A起到對(duì)ROM所輸出的幅度值編碼進(jìn)行加權(quán)的作用。
由此可見,當(dāng)DDS的相位累加器字長(zhǎng)和相位加法器字長(zhǎng)確定后,通過改變K,P,A就可以有效地控制DDS輸出的模擬信號(hào)的頻率、相位和幅度,這就是DDS技術(shù)的調(diào)制特性。
2 VHDL語(yǔ)言實(shí)現(xiàn)的DDS
為簡(jiǎn)單起見,下面所描述的DDS僅設(shè)置了頻率控制字K,相位控制字P和幅度控制字A都未予以考慮,其處理可以類推。DDS的輸出為正弦波信號(hào)。
由于正弦波關(guān)于π奇對(duì)稱,關(guān)于π/2與3π/2偶對(duì)稱,因此波形存儲(chǔ)器(ROM)中只需存儲(chǔ)其1/4個(gè)周期的幅度值編碼。具體地,ROM中存儲(chǔ)正弦波0~π/2相位范圍內(nèi)的256個(gè)采樣點(diǎn)的幅度值,采用8位編碼。而DDS的輸出為9位,最高位作為符號(hào)位,用以區(qū)分幅度值的正負(fù),“0”表示正,“1”表示負(fù)。ROM為8位地址尋址,而相位累加器的字長(zhǎng)采用10位。最高位用以區(qū)分正弦波的前、后半周期,“0”為前半周期,幅度值為正,“1”為后半周期,幅度值為負(fù)。次高位用以區(qū)分正弦波前、后半周期的前、后1/4周期,“0”為前1/4周期,尋址地址為相位累加器的低8位,“1”為后1/4周期,尋址地址為相位累加器低8位的取反。
用VHDL實(shí)現(xiàn)DDS的源程序的核心部分如下:
process (clk)
begin
if clk′event and clk = ′1′ then
if addr (8) = ′1′ then
taddr <= not addr (7 downto 0);
else
taddr <= addr (7 downto 0);
end if;
if taddr = x\"00\" then
dsin (8) <= ′0′;
else
dsin (8) <= addr (9);
end if;
case taddr is
when x\"00\" => dsin (7 downto 0) <= x\"00\";
when x\"01\" => dsin (7 downto 0) <= x\"02\";
when x\"02\" => dsin (7 downto 0) <= x\"03\";
…… ……
when x\"FE\" => dsin (7 downto 0) <= x\"FF\";
when x\"FF\" => dsin (7 downto 0) <= x\"FF\";
when others => dsin (7 downto 0) <= x\"00\";
end case;
addr <= addr + fcw;
end if;
end process;
在Xilinx ISE 8.2i開發(fā)環(huán)境中對(duì)其進(jìn)行仿真的結(jié)果,如圖2所示。
圖2 DDS仿真結(jié)果3 掃頻信號(hào)的產(chǎn)生
利用DDS技術(shù)的調(diào)制特性可以方便地產(chǎn)生掃頻信號(hào),僅需控制DDS的頻率控制字K,讓其隨預(yù)期設(shè)計(jì)的規(guī)律變化即可。
為了采用DDS實(shí)現(xiàn)掃頻信號(hào)掃頻帶寬范圍內(nèi)的各個(gè)頻點(diǎn)fi,需要為其確定相應(yīng)的頻率控制字Ki,從而很容易地計(jì)算出所需的一系列Ki值。與DDS的基本原理類似,將符合設(shè)計(jì)要求的一系列Ki值存儲(chǔ)在一張查找表中。再利用一個(gè)計(jì)數(shù)器循環(huán)計(jì)數(shù),將其輸出作為查找表的尋址地址,以此不斷地循環(huán)讀取查找表中的各個(gè)Ki。這樣就可以使受Ki控制的DDS的輸出始終在所預(yù)期設(shè)計(jì)的各個(gè)頻點(diǎn)fi上變化,達(dá)到掃頻的目的。其中,計(jì)數(shù)器循環(huán)一次的時(shí)間就是所要實(shí)現(xiàn)的掃頻信號(hào)的掃頻周期,而計(jì)數(shù)器的計(jì)數(shù)范圍則與掃頻信號(hào)掃頻帶寬范圍內(nèi)的頻點(diǎn)個(gè)數(shù)相對(duì)應(yīng)。
以上就是利用DDS實(shí)現(xiàn)掃頻信號(hào)的基本思路,以下是實(shí)現(xiàn)此思路的VHDL源程序的主要部分:
process (clk)
begin
if clk′event and clk = ′1′ then
case t is
when o\"0\" => dcs <= x\"7a\";
when o\"1\" => dcs <= x\"80\";
when o\"2\" => dcs <= x\"86\";
when o\"3\" => dcs <= x\"8c\";
when o\"4\" => dcs <= x\"92\";
when o\"5\" => dcs <= x\"98\";
when o\"6\" => dcs <= x\"9e\";
when o\"7\" => dcs <= x\"a4\";
when others => dcs <= x\"00\";
end case;
t <= t + 1;
end if;
end process;
在Xilinx ISE 8.2i開發(fā)環(huán)境中對(duì)其進(jìn)行仿真的結(jié)果如圖3所示。
圖3 產(chǎn)生頻率控制字的仿真結(jié)果4 結(jié) 語(yǔ)
VHDL是IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言,可以描述硬件電路的功能、信號(hào)連接關(guān)系及定時(shí)關(guān)系,在電子工程領(lǐng)域用來描述、驗(yàn)證和設(shè)計(jì)電子線路得到了廣泛的接受和應(yīng)用。利用DDS技術(shù)的調(diào)制特性產(chǎn)生各種調(diào)制信號(hào)簡(jiǎn)單方便,容易實(shí)現(xiàn)。從文中不難看出,將VHDL語(yǔ)言與DDS技術(shù)結(jié)合起來設(shè)計(jì)生成調(diào)頻信號(hào),直觀快捷,可操作性很強(qiáng),必將得到更加廣泛的應(yīng)用。
參 考 文 獻(xiàn)
[1]張順興.?dāng)?shù)字電路與系統(tǒng)設(shè)計(jì)[M].南京:東南大學(xué)出版社,2004.
[2]黃智偉.射頻電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2006.
[3]姜宇柏,游思晴.軟件無線電原理與工程應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2006.
[4]譚會(huì)生,瞿遂春.EDA技術(shù)綜合應(yīng)用實(shí)例與分析[M].西安:西安電子科技大學(xué)出版社,2004.
[5]潘松,黃繼業(yè),王國(guó)棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[6]鄧延安.直接數(shù)字頻率合成單象限存儲(chǔ)結(jié)構(gòu)的VHDL語(yǔ)言實(shí)現(xiàn)[J].安徽工程科技學(xué)院學(xué)報(bào),2006,21(1):37-39.
[7]李逢玲,鄭飛.基于EDA技術(shù)的調(diào)頻信號(hào)發(fā)生器的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2006,29(8):10-12.
[8]DDS原理簡(jiǎn)介[EB/OL].http://www.fpga.com.cn.
作者簡(jiǎn)介 張先志 男,1983年出生,四川彭州人,助理工程師。主要從事電子信息裝備檢測(cè)工作。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文