《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的單邊帶調(diào)制解調(diào)系統(tǒng)
基于FPGA的單邊帶調(diào)制解調(diào)系統(tǒng)
盛艷萍,,李國剛,,陳浮蓉
華僑大學 信息科學與工程學院,福建 泉州362021
摘要: 單邊帶通信是目前應用比較廣泛并具有占用較窄頻帶特點的一種通信方法。本文著重介紹單邊帶調(diào)制解調(diào)技術,,采用DSP Builder設計流程,結合Modelsim對Signal Compiler生成的test bench文件進行仿真,,在QuartusII環(huán)境下編譯生成VHDL語言,,組建工程,下載至硬件,,利用Signal Tap II Logic Analyzer觀察硬件輸出波形,。
Abstract:
Key words :

摘  要: 單邊帶通信是目前應用比較廣泛并具有占用較窄頻帶特點的一種通信方法。本文著重介紹單邊帶調(diào)制解調(diào)技術,,采用DSP Builder設計流程,,結合Modelsim對Signal Compiler生成的test bench文件進行仿真,在QuartusII環(huán)境下編譯生成VHDL語言,,組建工程,,下載至硬件,利用Signal Tap II Logic Analyzer觀察硬件輸出波形,。
 關鍵詞: 單邊帶,;調(diào)制解調(diào);DSP Builder

1 單邊帶調(diào)制解調(diào)的算法
  單邊帶(SSB)調(diào)制屬于幅度調(diào)制中的一種,。其利用一個邊帶進行通信,,提高了信道的利用率,也避免了不必要的功率發(fā)射,。SSB調(diào)制既可以用模擬方法實現(xiàn),,也可以轉換成數(shù)字方法實現(xiàn)。其方法有3種:經(jīng)典濾波器(Filter)方法,、Weaver算法和Hartley算法,。這里著重介紹濾波法。
   無論是調(diào)制還是解調(diào),,濾波器算法都是利用帶通濾波器抑制掉不用的邊帶,。當一個限帶信號與具有足夠高頻率的正弦載波信號c(t)=2cos(ωct)相乘時,結果為:
  

   在解調(diào)時用濾波器方法更簡單明了,。用調(diào)制時的載波與單邊帶信號相乘有:
    

  結果產(chǎn)生2個分開的邊帶,,一個位于基帶位置,另一個位于二倍的載波頻率處,。利用LPF或BPF濾掉高頻信號,,便重構了原始信號。調(diào)制及解調(diào)電路構成如圖1所示。

   數(shù)字濾波器處理方法可以從模擬法直接變換過來,,即載波的產(chǎn)生和相乘,、帶通濾波等都用數(shù)字方式來完成。整個系統(tǒng)既可以在單一采樣率下完成,,也可以利用內(nèi)插-抽取算法,,在計算量上會帶來好處。調(diào)制部分的工作主要包括前置帶通濾波,、載波相乘,、邊帶抑制即帶通濾波。解調(diào)部分主要包括中頻帶通濾波,、載波相乘,、抽取濾波、信號分離[2],。在單一的采樣率下,,調(diào)制和解調(diào)模塊的濾波器系數(shù)及載波完全一樣。
  濾波器方法是最經(jīng)典,、最傳統(tǒng)的SSB調(diào)制解調(diào)方法,,目前被廣泛應用在各種系統(tǒng)中[3]。在許多情況下利用頻分復用(FDM)原理應用于多級系統(tǒng)設計,。特別是內(nèi)插-抽取算法的應用,,給多級數(shù)字設計帶來了好處。數(shù)字多級系統(tǒng)只增加了調(diào)制的步驟,,卻減少了平均計算量,,降低了帶通濾波器的要求和載波信號的復雜性,。
2 單邊帶調(diào)制解調(diào)的FPGA實現(xiàn)
  Altera公司自2002年推出DSP Builder便很好地解決了諸如設計算法類(如DSP模塊)及模擬信號處理與產(chǎn)生方面的系統(tǒng)設計[4]類問題,。DSP Builder可以幫助設計者完成基于FPGA的不同類型的應用系統(tǒng)設計。除了圖形化的系統(tǒng)建模外,,DSP Builder還可以自動完成大部分的設計過程和仿真,,直至把設計文件下載至FPGA開發(fā)板上。利用MATLAB與DSP Builder進行模塊設計也是SoPC技術的一個組成部分[5],。
 設計總體框圖如圖2所示,。

2.1 MATLAB/DSP Builder及其設計流程
  DSP Builder是一個系統(tǒng)級設計工具,它架構在多個軟件工具之上,,并把系統(tǒng)級(算法級仿真建模)和RTL級(硬件實現(xiàn))2個設計領域的設計工具連接起來,,可在Simulink中進行圖形化設計和仿真,同時又通過SignalCompiler將MATLAB/Simulink的模型設計文件轉換成相應的硬件描述語言設計文件[6],,以及用于控制綜合與編譯的TCL腳本,。而綜合以及此后的處理都由QuartusⅡ完成。
  本設計用DSP Builder產(chǎn)生的設計模型作為總設計中的一個子模塊,可以在設計中調(diào)用DSP Builder產(chǎn)生的VHDL文件,,以構成完整的設計,。同時,還可以使用QuartusⅡ強大的LogicLock功能和SignalTap測試技術,。在DSP Builder設計流程的最后一步,,可以在DSP Builder中直接下載到FPGA用戶開發(fā)板上,或者通過QuartusⅡ完成硬件的下載,、測試,。
   VHDL仿真流程在設計中是不可或缺的,與DSP Builder可以配合使用的HDL仿真器是Modelsim,。DSP Builder在生成VHDL代碼時,,可以同時生成用于測試DSP模塊的TestBench(測試平臺)文件,DSP Builder生成的TestBench文件采用VHDL語言,,測試向量與該DSP模塊在Simulink中的仿真激勵相一致,。
2.2 使用MATLAB/DSP Builder建立Simulink模型
   MATLAB的Simulink環(huán)境具有強大的圖形化仿真驗證功能[7]。用DSP Builder模塊設計好一個新的模型后,,可以直接在Simulink中進行算法級,、系統(tǒng)級仿真驗證。對一個模型進行仿真,,需要施加合適的激勵,、一定的仿真步進和仿真周期,添加合適的觀察點和觀察方式,,分別觀察輸入波形,、載波波形、混頻后波形及已調(diào)信號波形,、解調(diào)信號波形及其頻譜,。根據(jù)濾波法建立的Simulink模型如圖3所示。

  由于人耳可以聽到20 Hz~20 kHz的音頻信號,,所以在設計中選擇一個頻率為20 kHz的頻率作為調(diào)制信號,,而載波信號則選用頻率為160 kHz的余弦波。
  使用MATLAB的濾波器設計工具,,可以十分方便地利用MATLAB提供的濾波器設計工具(FDATool)獲得各種濾波器的設計參數(shù),。系統(tǒng)設計需要2種濾波器,一種是帶寬為20 kHz的低通濾波器,,一種是頻率為140 kHz-160 kHz的帶通濾波器,。將28個抽頭的參數(shù)分別輸入到累加器,便完成了濾波器的設計,。
2.3  轉換為VHDL語言并綜合
  雙擊SignalCompiler模塊,,對SignalCompiler的設置集中在項目設置選項部分,。在Device下拉列表框中選擇CycloneⅡ系列,在Synthesis下拉列表框中選擇QuartusⅡ,,在Optimization下拉列表框選擇Balanced,。當設置好Device和Synthesis后,右側的硬件編譯部分就會列出一個操作流程,,單擊Execute steps 1,、2 和3圖標,完成文件(.mdl)到VHDL文件的轉換,、綜合,、編譯、適配過程,。
3  使用Modelsim實現(xiàn)時序仿真
  進入Modelsim軟件環(huán)境,,設置路徑,然后點擊Tools→Exacute Macro,,選擇tb_fl.tcl文件,,運行成功即可以進行Stimulation。仿真波形如圖4,,仿真設置完全是Simulink的仿真配置,。

4  使用QuantusⅡ?qū)崿F(xiàn)時序仿真
   仿真前需要先產(chǎn)生一個頻率為20 kHz的正弦波和頻率為160 kHz的余弦波,而濾波器的采樣頻率是2 MHz,。在硬件驗證的DE2開發(fā)板上只有頻率為50 MHz和27 MHz的時鐘,。正弦波信號發(fā)生器采用LPM_ROM設計,輸出的信號頻率f與地址發(fā)生器的時鐘CLK的輸入頻率f0的關系式為:f=f0/64,。所以f0的大小為1.28 MHz和10.24 MHz,,這里選擇1.333 MHz和10 MHz??梢圆捎肔PM嵌入式鎖相環(huán)產(chǎn)生頻率為20 MHz的時鐘,,接一個二分頻產(chǎn)生10 MHz的時鐘,接一個十五分頻產(chǎn)生1.333 MHz的時鐘,,接一個十分頻產(chǎn)生2 MHz的時鐘,,這樣就產(chǎn)生了所需要的所有時鐘,。將MATLAB生成的余弦和正弦采樣的.hex文件導入ROM,,再將波形產(chǎn)生器和調(diào)制解調(diào)連接起來。
  最后進行硬件下載:管腳分配后下載至硬件,。由于是數(shù)字信號不太好觀察模擬波形,,所以選擇Signaltap II Logic Analyer進行觀察,如圖5,??梢钥吹秸{(diào)制信號和載波信號的周期性,,由于本設計的局限性和時鐘的不準確性(理想的1.28 MHz、10.24 MHz未能實現(xiàn),,而采用了1.333 MHz和10 MHz),,造成了一定的紊亂。
 本設計的主要內(nèi)容是實現(xiàn)單邊帶調(diào)制解調(diào),。由于該設計涉及算法及模擬信號處理,,所以無法單純地利用QuartusⅡ完成整個設計,故在設計中采用MATLAB Simulink+DSP Builder建模再將其轉化為VHDL,,中間利用Modelsim仿真驗證設計結果的正確性,,最終利用QuartusⅡ綜合、仿真,、適配,、編程。在QuartusⅡ上進行功能仿真時重點考慮的是時鐘同步問題,。由于最后要在DE2板上驗證,,而板上只有50 MHz和27 MHz的時鐘,進行功能仿真需要一個頻率為20 kHz的正弦波和一個頻率為160 kHz的余弦波,,而濾波器的采樣頻率是2 MHz,,因此時鐘頻率在仿真過程中未做到完全同步,最后的仿真結果存在誤差,。在QuartusⅡ中的功能和時序仿真中,,針對多時鐘方面的設計,應盡可能實現(xiàn)同步,。

參考文獻
[1]  劉樹棠譯.信號與系統(tǒng)[M].西安:西安交通大學出版社,,1997.
[2]  丁玉美,高西全.數(shù)字信號處理[M].西安:西安電子科技大學出版社,,2000.
[3]  李景強,,李雙田,李昌立,,等.用DSP實現(xiàn)單邊帶調(diào)制解調(diào)的幾種算法及性能比較[J]. http://scholar.ilib.cn/A 3305.html.1999.
[4]  潘松,,黃繼業(yè).EDA技術與VHDL[M].北京:清華大學出版社,2007.
[5]  張志剛.FPGA與SOPC設計教程:DE2實踐[M].西安:西 安電子科技大學出版社,,2007.
[6]  邵玉斌.Matlab/simulink通信系統(tǒng)建模與仿真實例[M].北京:清華大學出版社,,2008.
[7]  趙靜,張瑾,,高新科.基于MATLAB的通信系統(tǒng)仿真[M].北京:北京航空航天大學出版社,,2007.
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載,。