-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

數字調制解調技術的MATLAB與FPGA實現——Xilinx/VHDL版

( 簡體 字)
作者:杜勇類別:1. -> 工程繪圖與工程計算 -> Matlab
   2. -> 電子工程 -> FPGA
譯者:
出版社:電子工業出版社數字調制解調技術的MATLAB與FPGA實現——Xilinx/VHDL版 3dWoo書號: 47674
詢問書籍請說出此書號!

缺書
NT售價: 440

出版日:9/1/2017
頁數:496
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121326424
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書
為什么要寫這本書?或者說,為什么要寫數字通信的MATLAB與FPGA實現技術相關內容的書?記得幾年前電子工業出版社首次出版《數字濾波器的MATLAB與FPGA實現》一書時,我在前言中提到寫作的原因主要有三條:其一,是FPGA技術在電子通信領域得到了越來越廣泛的應用,并已逐漸成為電子產品實現的首選方案;其二,是國內市場上專門討論如何采用FPGA實現數字通信技術的書籍相對欠缺;其三,是數字通信技術本身十分復雜,關鍵技術較多,在一本書中全面介紹數字通信技術的FPGA實現難免有所遺漏,且內容難以翔實。因此,根據作者的從業經驗,將數字通信技術的關鍵技術大致分為濾波器技術、同步技術和解調技術三種,并嘗試著先寫濾波器技術,再逐漸完成其他兩項關鍵技術的寫作。在廣大讀者的支持和鼓勵下,總算完成了《數字通信同步技術的MATLAB與FPGA實現》、《數字調制解調技術的MATLAB與FPGA實現》兩本書。后來又根據讀者的反饋要求,先后出版了數字濾波器、數字通信同步技術、數字調制解調技術幾本書的Altera/Verilog版,以及專門討論鎖相環技術的《鎖相環技術原理及FPGA實現》。
數字通信的MATLAB與FPGA實現的系列著作出版后,陸續通過郵件或博客的方式收到廣大讀者的反饋意見。一些讀者直接通過郵件告知書中的內容對工作中提供的直接或間接的幫助;一些讀者提出了很多中肯的有建設性的意見和建議;更多的讀者通過郵件交流書中的相關設計問題;還有一些讀者直接指出了書中一些描述不準確的地方,以及部分文字上的錯誤(這些勘誤都已在我的技術博客中發布)。
由于最初用Xilinx /VHDL平臺(相對于Altera/Verilog,我更早熟悉Xilinx /VHDL平臺)寫數字通信的MATLAB與FPGA實現的系列著作時,并沒有規劃要寫這個系列的Altera/Verilog版本,因此并沒有在書名上增加“Xilinx/VHDL版”的字樣,后來寫Altera/Verilog版本時,為以示區別,在書名上增加了“Altera/Verilog版”的字樣。時間過得很快,五年多的時間過去了,應讀者需求,為進一步提高廣大讀者學習的效率,作者精心設計了與Xilinx/VHDL版本系列圖書配套使用的FPGA信號處理板CXD301,并利用這次改版的時機增加了書中實例的板載測試內容,同時將書名增加了“Xilinx/VHDL版”的字樣。
與《數字調制解調技術的MATLAB與FPGA實現》前一版相比,此次改版主要涉及以下幾個方面:
(1)對有FPGA工程實例的章節,增加了主要工程實例的CXD301板載測試內容。
(2)FPGA工具更換為ISE 14.7,仿真工具更換為ModelsimSE 10.1,MATLAB軟件更換為Matlab_R2014a版本。
(3)為便于在CXD301處理板上進行板載測試驗證,對部分工程實例參數進行了適當調整。
(4)在編寫板載測試內容時,發現原書中的部分程序還有需要完善的地方,改版過程中對配套開發資源包中的程序文件進行了補充及優化。
(5)改寫了第6章MSK調制信號的FPGA實現方法。
(6)更正了書中一些敘述不當的地方,大多是讀者反饋回來的問題。
(7)對讀者提問較多的地方敘述得更加詳細。
通常來講,一名電子通信專業的技術人員,在從業之初都會遇到類似的困惑:如何將從教材中學到的理論與實際中的工程設計結合起來?如何能夠將這些教材中的理論轉換成實際的電路?絕大多數數字通信類教材對通信的原理講解十分透徹,但理論與實踐之間顯然需要有一座可以順利通過的橋梁。一個常用的方法是通過采用MATLAB等工具進行軟件仿真的方法來加深對理論的理解,但更好的方法顯然是直接參與工程的設計與實現。
然而,剛畢業的工科院校學生極少有機會參加實際工程設計,工作中往往感到學校所學的理論知識很難與實際工程產品的實現聯系起來。教科書上多是講解通信原理性的內容,即使可以很好地解答教材后面的習題,或者說能夠熟練地對書中的基本公式進行推導,在實際進行產品設計時,如何將這些理論及公式用具體的電路或硬件平臺實現出來,仍然是擺在廣大工程師面前的一道難關。尤其對于數字通信專業來講,由于涉及的理論知識比較復雜,真正進行工程設計時才發現根本無從下手。采用MATLAB、System View等軟件對通信理論進行仿真,雖然可以直觀地驗證算法的正確性,并查看仿真結果,但這類軟件的仿真畢竟只停留在算法或模型的仿真上,與真正的工程設計及實現完全是兩個不同的概念。FPGA技術很好地解決了這一問題。FPGA技術本來就是基于工程應用的技術,其仿真技術可以很好地仿真產品實際的工作情況,尤其是時序仿真技術,在計算機上通過了時序仿真的程序設計,幾乎不再需要修改就可以直接應用到工程中。這種設計、驗證、仿真的一體化方式可以極好地將理論與工程應用結合起來,從而提高學習的興趣。
FPGA技術因其快速的并行運算能力,以及獨特的組成結構,在電子通信領域已成為必不可少的實現平臺之一。本書的目的正是架起一座教科書理論與工程設計實踐之間的橋梁,通過具體的設計實例,詳細講解從理論到工程實現的方法、步驟和過程,以便于工程技術人員盡快掌握利用FPGA平臺實現數字通信技術的方法。
目前,市場上已有很多介紹ISE、QuartusⅡ等FPGA開發環境,以及VHDL、Verilog HDL等硬件編程語言的書籍。當然,我們僅僅使用FPGA來實現一些數字邏輯電路,或者理論性不強的控制電路設計,掌握FPGA開發工具及VHDL語法就可以開始工作了。但是數字通信技術的理論性要強得多,采用FPGA平臺實現數字通信技術的前提條件是對理論知識首先要有深刻的理解。在理解理論知識的基礎上,關鍵的問題是根據這些通信理論或公式,利用FPGA的特點,找到合適的算法實現結構,理清工程實現的思路,并采用VHDL等硬件編程語言對其進行正確的實現。因此,要順利地讀懂本書,掌握用FPGA實現數字通信技術的知識和技能,讀者還需要對FPGA的開發環境和設計語言有一定的了解。
作者在寫作本書的過程中,兼顧數字通信技術的基礎理論,以及工程設計過程的完整性,重點突出FPGA設計方法、結構、實現細節和仿真測試方法。在講解理論知識的時候,重點從工程應用的角度進行介紹,主要介紹工程設計時必須掌握和理解的知識點,并且結合FPGA的特點進行討論,便于讀者盡快地找到理論與工程實現之間的結合點。在講解實例的FPGA實現時,不僅絕大多數實例給出了完整的VHDL程序代碼,并且從思路和結構上對每段代碼均進行了詳細的分析和說明。根據作者的理解,針對一些似是而非的概念,結合工程實例的仿真測試加以闡述,希望能夠對讀者提供更多有用的參考。相信讀者按照書中講解的步驟完成一個個工程實例時,會逐步感覺到理論與工程實現之間完美結合的暢快。隨著讀者掌握的工程實現技能的提高,對數字通信技術理論知識的理解也必將越來越深刻,重新閱讀以前學過的數字通信原理時,頭腦里就更容易構建起理論與工程實現之間的橋梁。
本書的內容安排
第1章首先對數字通信技術的概念及FPGA基礎知識進行了簡要介紹。本章耗費一些筆墨來講述一些最基本的概念,一則是為了使全書所講述的內容更成體系,二則想重申一個老掉牙的理由—基本的概念永遠是最重要的。在介紹這些基本概念時,盡量避免使用一些復雜的公式及理論推導,更多地從直觀角度來討論。根據作者自身的經歷和對數字通信的理解,對頻譜、帶寬、采樣、信噪比等最基本的定義做了較為全面的闡述,希望能夠對讀者加深數字通信系統原理的理解有所幫助。大概是由于職業的原因,長期以來都對那些偉大的技術創新者備感敬意,因此在寫FPGA發展歷程時,更多地從人物的角度去描述那些科技創新的故事,這些故事確實非常有趣,那些偉大的科學家和技術創新者從來都不缺乏鮮明的個性。
采用MATLAB及FPGA來實現數字通信的相關技術,設計工程師首先需要熟練掌握一整套設計工具。設計語言及開發環境就是工程師手中的裝備,要設計出完美的產品需要很多因素之間的相互配合,而掌握好手中的開發工具無疑是最基本的因素之一。第2章主要對本書所使用的設計語言和開發環境進行簡要介紹。之所以說是簡要介紹,因為這一整套的開發工具本身的功能十分強大,每一種工具都有種類繁多的專門著述進行詳細闡述。隨著工程師設計經驗的積累,設計水平的提高,越能更全面地掌握設計工具的特點,從而更好地發揮設計工具的性能,以最小的代價設計出理想的產品。好比一把寶劍,只有握在高手的手中才能發揮出最大的威力。
第3章介紹FPGA中數的表示方法、數的運算、有限字長效應及常用的數字信號處理模塊。數字信號在FPGA等硬件系統中實現時,因受寄存器長度的限制,不可避免地產生了有效字長效應。設計工程師必須了解字長效應對數字系統可能帶來的影響,并在實際設計中通過仿真來確定最終的量化位數、寄存器長度等內容。本章最后對幾種常用的運算模塊IP核進行介紹,詳細闡述了各IP核控制參數的設置方法,并給出了幾個簡單的模塊應用實例。IP核的應用在FPGA設計中十分普遍,尤其在數字信號處理領域,采用設計工具提供的IP核進行設計,不僅可以提高設計效率,而且可以保證設計的性能。在進行FPGA工程設計時,工程師可以先瀏覽一下選定目標器件所能提供的IP核,便于通過使用IP核來減少設計工作量并提高系統性能。當然,工程師也可以根據設計需要,根據是否具有相應的IP核來選擇目標器件。這一章討論的都是一些非常基礎的知識,但正因為是基礎,所以顯得尤其重要。其中討論的有效數據位運算,以及字長效應等內容在后續的工程實例講解中都會多次涉及,因此建議讀者不要急于閱讀后續章節的工程實例講解,先切實練好基本功,才可以達到事半功倍的效果。
對于從事電子通信行業的技術人員來說,濾波器是一個再普通不過的概念了。數字濾波器本身已成為一個專業性很強的研究方向,第4章所要講述的僅僅是最常用的FIR(Finite Impulse Response,有限脈沖響應)濾波器和IIR(Infinite Impulse Response,無限脈沖響應)濾波器。不過這不并不影響讀者對數字通信調制解調技術內容的理解,因為后續章節所討論的工程實例中,只使用到這兩種類型的數字濾波器。讀者如果有興趣了解更多與濾波器的FPGA實現相關的內容,可以參考《數字濾波器的MATLAB與FPGA實現—Xilinx/VHDL版》一書。
第5章正式開始討論各種通信體制的調制解調技術。眾所周知,無論是數字通信還是模擬通信,幅度調制解調都被認為是最簡單的一種通信技術。事實也確實如此,因此這種調制體制也幾乎成為了學習掌握通信原理的基礎。在討論ASK解調技術時采用了非相干方法,又進一步降低了FPGA實現的難度。雖然看似簡單,但并非不重要,因為本章介紹了一個非常完整的數字通信傳輸系統。我們在介紹通信原理方面的教材中可以很容易找到講解ASK調制解調方面的內容,但如何將這個看似簡單的系統真正應用到工程中,用FPGA實現出來,清楚了解輸入數據到輸出數據之間各種信號的變化過程,這并不是一件容易的事。讀者根據本章所介紹的步驟及方法,完成整個系統的仿真測試之后,相信對ASK調制解調技術會有一個更深入的理解。
經過前面對ASK調制解調技術的討論,相信大家對數字調制解調技術的整個設計流程有了一個初步認識,甚至覺得工程設計并不是多么困難的事。建立信心是很重要的,但也要有一定的思想準備,并非所有數字調制解調技術都如前面一章所講的那么簡單。第6章前半部分討論了常規FSK信號的調制解調技術,無論是理論知識還是工程實現的難度都不大;后半部分詳細討論了MSK信號的調制解調技術,其實現原理及工程實現都已有一定規模了,無論是從原理還是工程實現方面來講,要完全掌握其設計流程和方法,都需要花一番工夫才行。不過也不用過于擔心,所謂“難者不會,會者不難”,相信大家跟著書中討論的步驟,一步步完成整個MSK解調的FPGA工程實現,并在ModelSim仿真波形中看到一條條光滑的收斂曲線時,一定會產生一種成就感,設計的信心也會隨之增加。
第7章討論三種典型的相位調制系統:BPSK、QPSK及 QPSK。Costas環是一種非常經典的鎖相環路,是解調BPSK信號的常用電路,相信絕大多數電子通信專業畢業的讀者對此都不會陌生。在設計完成Costas環后,用ModelSim仿真環路的收斂性能時,在波形界面看到完美的收斂曲線時,相信讀者會感覺到工程設計成功的喜悅,一些原本只存在于教科書中的理論,經過這個設計過程,已經演變成了現實的工程設計。本章進一步探討了QPSK及 QPSK調制解調制過程。為了給讀者更多的參考,分別采用了相干及非相干方法對解調進行了實現。
第8章討論了一個比較完整的QAM調制解調系統,從原理到MATLAB仿真,再到FPGA實現過程都進行了比較詳細的介紹。QAM是一種應用十分廣泛的多進制調制體制,相比前面章節討論的調制系統來講,無論是工作原理還是FPGA實現過程,都顯得更為復雜些。從整個調制解調系統的實現過程來看,關鍵問題仍然還是載波同步及位同步的問題。其中,載波同步的相關內容與前面章節所討論的載波鎖相環有很強的關聯性,因此,如果讀者通過前面章節已經對載波鎖相環有較深刻的認識,則理解本章中的QAM載波同步原理及實現方法也就比較容易了。與二進制調制解調系統不同,多進制QAM系統通常使用插值算法位同步技術實現解調后基帶信號的同步判決,本章給出了算法基本原理及實現方法,最后討論了插值法位同步電路的板載測試。
本書最后一章討論的是擴頻通信系統,偽碼同步是其中最核心的技術,擴頻通信的抗干擾性能也體現在偽碼同步后的解擴上。本章首先對直接序列擴頻通信系統的一般原理做了介紹,然后較詳細地討論了直接序列擴頻通信系統中的同步原理及方法,并重點分析了本系統所采用的基于滑動相關的捕獲方法,以及基于延遲鎖相環的跟蹤方法。利用FPGA實現偽碼同步電路的關鍵問題在于合理劃分功能模塊,以及準確掌握各功能模塊之間的控制與被控制關系和整個系統的時序關系。如果沒有Costas載波環的FPGA設計基礎,直接學習這一章的內容是比較困難的,不僅是因為直擴解調系統本身需要將載波同步環與偽碼同步環有機結合在一起,同時還因為本章在介紹整個環路的Verilog HDL設計時有意略去了載波環相關參數的詳細設計方法。學習的過程總是需要循序漸進的,好比共產主義是一個美好的理想,從社會主義初級階段一步跨入共產主義,從理論和實踐上都證明是行不通的。學習過程中的艱難曲折不可避免,但要相信,當徹底掌握到所學的知識后,并熟練應用知識成功解決產品設計中的問題后,再回憶那些冥思苦想廢寢忘食的片段,才可以真正體會到學習的快樂。
關于FPGA開發環境的說明
眾所周知,目前兩大廠商Xilinx和Altera的產品約占據全球90%的FPGA市場。可以說,在一定程度上正是由于兩家FPGA公司的相互競爭態勢,有力地推動了FPGA技術的不斷發展。雖然HDL的編譯及綜合環境可以采用第三方公司所開發的產品,如ModelSim、Synplify等,但FPGA器件的物理實現必須采用各自公司開發的軟件平臺,無法通用。Xilinx公司推出的開發平臺是Vivado和ISE系列套件,Altera公司目前的主流開發平臺是Quartus Ⅱ系列套件。與FPGA開發平臺類似,HDL也存兩種難以取舍的選擇:VHDL和Verilog HDL。
學習FPGA開發技術的難點之一即在于掌握開發工具,無論是Xilinx還是Altera公司,為了適應不斷更新的開發需求,主要是適應不斷推出的新型器件,開發工具的版本更新速度很快。
Xilinx自最初推出ISE 3.x版以來,歷經十余年,已形成強大的用戶群。雖然Xilinx公司自2013年10月2日發布最新的ISE 14.7版本后,宣布不再對ISE進行更新,由于ISE 14.7仍然支持Xilinx公司的Spartan-6、Virtex-6、Artix-7、Kintex-7、Virtex-7等中高端主流器件,因此仍然是廣大FPGA工程師的首選設計工具。Vivado是Xilinx公司于2012年開始推出的平臺,與ISE相比在架構及界面方面都有很大的變化,版本的更新主要是為了解決設計套件本身的功能性問題,Vivado設計套件自2012年首次推出后,幾乎每年都會推出3∼4個版本,截至目前已陸續推出20個版本之多!過多的軟件版本不可避免地增加了FPGA工程師適應開發工具的難度。
如何選擇開發平臺以及HDL語言呢?其實,對于有志于從事FPGA開發的技術人員,選擇哪種平臺及HDL語言并不重要,因為兩種平臺具有很多相似的地方,精通一種HDL語言后,再學習另一種HDL語言也不是一件困難的事。通常來講,可以根據周圍同事、朋友、同學或公司的主要使用情況進行選擇,這樣在學習的過程中,可以很方便地找到能夠給你指點迷津的專業人士,從而加快學習進度。
本書采用的是Xilinx公司的FPGA器件作為開發平臺,采用ISE 14.7作為開發環境,采用VHDL語言作為實現語言,同時采用XST和Synplify_fpga2013兩種綜合工具,使用ModelsimSE 10.1進行仿真測試。由于VHDL語言并不依賴于某家公司的FPGA產品,因此本書的VHDL程序文件可以很方便地移植到Altera公司的FPGA產品上。如果程序中應用了IP核資源,由于兩家公司的IP核不能通用,這就需要根據IP核的功能參數,在另一個平臺上重新生成IP核,或編寫VHDL代碼來實現。
有人曾經說過,“技術只是一個工具,關鍵在于思想”。將這句話套用過來,對于本書來講,具體的開發平臺和HDL語言只是實現通信同步技術的工具,關鍵在于設計的思路和方法。讀者完全不必要過于在意開發平臺的差別,相信只要掌握本書所講述的設計思路和方法,加上讀者已經具備的FPGA開發經驗,采用任何一種FPGA平臺都可以很快地設計出滿足用戶需求的產品。
如何使用本書
本書討論的是數字調制解調技術的MATLAB與FPGA實現。相信大部分工科院校的學生和電子通信的從業人員對MATLAB軟件都會有一個基本的了解。由于它的易用性及強大的功能,已經成為數學分析、信號仿真、數字處理必不可少的工具。由于MATLAB具有大量專門針對數字信號處理的常用函數,如濾波器函數、傅里葉分析函數等,十分有利于對一些通信的概念及信號進行功能性仿真,因此,在具體講解某個實例時,通常會采用MATLAB作為仿真驗證工具。雖然書中的MATLAB程序相對比較簡單,主要應用一些數字信號處理函數進行仿真驗證,但如果讀者沒有MATLAB的編程基礎,建議最好還是先簡單學習一下MATLAB的編程概念及基本語法。考慮到程序及函數的兼容性,書中所有MATLAB程序的開發驗證平臺均為Matlab_R2014a版軟件。
在講解具體的FPGA工程應用實例時,通常會先采用MATLAB對所需設計的工程進行仿真,一方面仿真算法過程及結果,另一方面生成FPGA仿真所需要的測試數據;然后在ISE平臺上編寫VHDL程序對實例進行設計實現。為便于講述,通常會先討論程序的設計思路,或者先給出程序清單,再對程序代碼進行分析說明。完成程序編寫后,需要編寫TestBench測試激勵文件,根據所需產生輸入信號的種類,可以直接在TestBench文件中編寫代碼來產生輸入信號,也可以通過讀取外部文本文件的方式來產生輸入信號。接下來就可以采用ModelSim工具對VHDL程序進行時序或行為仿真,查看ModelSim仿真波形結果,并根據需要將仿真數據寫入外部文本文件中,通常還會對仿真波形進行討論,分析仿真結果是否滿足要求。如果ModelSim波形不便于精確地分析測試結果,則需要再次編寫MATLAB程序,對ModelSim仿真結果數據進行分析處理。
本書主要以工程應用實例的方式講解各種調制解調技術的原理及FPGA實現方法和步驟。大部分實例均給出了完整的程序清單,限于篇幅,不同工程實例中的一些重復或相似的代碼沒有完全列出,隨書配套的開發資源包上收錄了本書所有實例的源程序及工程設計資源,并按章節序號置于開發資源包根目錄下。本書在編寫工程實例時,程序文件均放置在“D:ModemPrograms”的文件夾下,讀者可以先在本地硬盤下建立“D:ModemPrograms”文件夾,而后將配套開發資源包中的程序壓縮包解壓至該文件夾下,大部分程序均可直接運行。需要說明的是,在大部分工程實例中,需要由MATLAB產生FPGA測試所需的文本數據文件,或者由MATLAB讀取外部文件進行數據分析,同時FPGA仿真的TestBench文件通常也需要從指定的路徑下讀取外部文件數據,或將仿真結果輸出到指定的路徑下。文本文件的路徑均指定為絕對路徑,如“fid=fopen(’D:ModemProgramsChapter_7din.txt’,’w’)”。因此,讀者運行實例程序時,請將程序文件中指定文件絕對路徑的代碼進行修改,以確保仿真測試程序在正確的路徑下對文件進行讀寫操作。
完成程序設計、仿真測試后,如果讀者選購了與該套圖書配套的FPGA信號處理板CXD301,則可以參考本書工程實例的板載測試內容,將板載測試程序下載到CXD301中,直觀真實地體驗同步技術的工程實現情況。工程實例的板載實驗需要用到CXD301信號處理板、Xilinx下載線纜、帶寬不小于100 MHz的示波器、BNC線纜等工具,如圖1所示。

圖1 工程實例板載實驗所需工具
致謝
有人說,每個人都有他存在的使命,如果迷失他的使命,就失去了他存在的價值。不只是每個人,每件物品也都有其存在的使命。對于一本書來講,其存在的使命就是被閱讀,并給閱讀者帶來收獲。數字通信的MATLAB與FPGA設計系列的書,能夠對讀者在工作及學習中有所幫助,是作者莫大的欣慰。
作者在寫作本書的過程中查閱了大量的資料,在此對資料的作者及提供者表示衷心的感謝。由于寫作本書的緣故,重新閱讀一些經典的數字通信理論書籍時,再次深刻感受到前輩們嚴謹的治學態度和細致的寫作作風。
在此,感謝我的妻子劉帝英女士,她不僅是一位盡心盡職的優秀母親,也是一位嚴謹細致的科技工作者,正是她的支持和默默付出,我才有充分的時間專心完成系列書籍的寫作。時間過得很快,剛開始編寫系列圖書時,女兒才剛上小學,今年轉眼就上初中了,她仍然最愛看書和畫畫,她始終是我們家的驕傲,希望她能永遠快樂。
FPGA技術博大精深,數字通信技術種類繁多且實現難度大。本書雖盡量詳細討論了FPGA實現調制解調技術的相關內容,仍感覺到難以詳盡敘述工程實現所有細節。相信讀者在實際工程應用中經過不斷的實踐、思考及總結,一定可以快速掌握調制解調技術的工程設計方法,提高應用FPGA進行工程設計的能力。由于作者水平有限,不足之處在所難免,敬請讀者批評指正。歡迎大家就相關技術問題進行交流,或對本書提出改進意見及建議。


杜 勇
2017年9月
內容簡介:

本書以Xilinx公司的FPGA為開發平臺,采用MATLAB及VHDL語言為開發工具,詳細闡述數字通信調制解調技術的FPGA實現原理、結構、方法以及仿真測試過程,并通過大量工程實例分析FPGA實現過程中的具體技術細節。主要包括設計語言及環境介紹、FPGA實現數字信號處理基礎、濾波器的FPGA實現、ASK調制解調技術的FPGA實現、FSK調制解調技術的FPGA實現、PSK調制解調技術的FPGA實現、QAM調制解調技術的FPGA實現以及DSSS信號調制解調技術的FPGA實現等內容。

目錄:

第1章 數字通信及FPGA概述 (1)
1.1 數字通信系統概述 (2)
1.1.1 數字通信的一般處理流程 (2)
1.1.2 本書討論的通信系統模型 (4)
1.1.3 數字通信的特點及優勢 (5)
1.1.4 數字通信的發展概述 (7)
1.2 數字通信中的幾個基本概念 (9)
1.2.1 與頻譜相關的概念 (9)
1.2.2 帶寬是如何定義的 (12)
1.2.3 采樣與頻譜搬移 (15)
1.2.4 噪聲與信噪比 (19)
1.3 FPGA的基礎知識 (21)
1.3.1 從晶體管到FPGA (21)
1.3.2 FPGA的發展趨勢 (24)
1.3.3 FPGA的組成結構 (26)
1.3.4 FPGA的工作原理 (30)
1.4 FPGA與其他處理平臺的比較 (31)
1.4.1 ASIC、DSP及ARM的特點 (32)
1.4.2 FPGA的特點及優勢 (33)
1.5 Xilinx器件簡介 (34)
1.5.1 Xilinx器件概況 (34)
1.5.2 Spartan系列器件 (36)
1.5.3 Virtex系列器件 (37)
1.6 FPGA信號處理板CXD301 (39)
1.7 小結 (40)
參考文獻 (40)
第2章 設計語言及環境介紹 (43)
2.1 HDL語言簡介 (44)
2.1.1 HDL語言的特點及優勢 (44)
2.1.2 選擇VHDL還是Verilog (45)
2.2 VHDL語言基礎 (46)
2.2.1 程序結構 (47)
2.2.2 數據類型 (49)
2.2.3 數據對象 (52)
2.2.4 運算符 (52)
2.2.5 VHDL語句 (57)
2.3 FPGA開發工具及設計流程 (63)
2.3.1 ISE開發套件 (63)
2.3.2 ModelSim仿真軟件 (67)
2.3.3 Synplicity綜合軟件 (69)
2.3.4 FPGA設計流程 (70)
2.4 MATLAB軟件 (72)
2.4.1 MATLAB軟件簡介 (72)
2.4.2 常用的信號處理函數 (75)
2.5 MATLAB與ISE的數據交換 (81)
2.6 小結 (82)
參考文獻 (82)
第3章 FPGA實現數字信號處理基礎 (83)
3.1 FPGA中數的表示 (84)
3.1.1 萊布尼茲與二進制 (84)
3.1.2 定點數表示 (85)
3.1.3 浮點數表示 (86)
3.2 FPGA中數的運算 (89)
3.2.1 加/減法運算 (89)
3.2.2 乘法運算 (92)
3.2.3 除法運算 (94)
3.2.4 有效數據位的計算 (95)
3.3 有限字長效應 (97)
3.3.1 字長效應的產生因素 (97)
3.3.2 A/D轉換的字長效應 (98)
3.3.3 系統運算中的字長效應 (99)
3.4 FPGA中的常用處理模塊 (101)
3.4.1 乘法器模塊 (101)
3.4.2 除法器模塊 (106)
3.4.3 浮點運算模塊 (109)
3.4.4 濾波器模塊 (111)
3.4.5 數字頻率器模塊 (113)
3.5 小結 (115)
參考文獻 (116)
第4章 濾波器的MATLAB與FPGA實現 (117)
4.1 濾波器概述 (118)
4.1.1 濾波器的分類 (118)
4.1.2 濾波器的特征參數 (120)
4.2 FIR與IIR濾波器的原理 (120)
4.2.1 FIR濾波器原理 (120)
4.2.2 IIR濾波器原理 (122)
4.2.3 IIR與FIR濾波器的比較 (122)
4.3 FIR濾波器的MATLAB設計 (123)
4.3.1 采用fir1函數設計 (123)
4.3.2 采用kaiserord函數設計 (126)
4.3.3 采用fir2函數設計 (126)
4.3.4 采用firpm函數設計 (128)
4.4 IIR濾波器的MATLAB設計 (130)
4.4.1 采用butter函數設計 (130)
4.4.2 采用cheby1函數設計 (131)
4.4.3 采用cheby2函數設計 (132)
4.4.4 采用ellip函數設計 (132)
4.4.5 采用yulewalk函數設計 (133)
4.4.6 幾種設計函數的比較 (133)
4.5 濾波器設計分析工具 (135)
4.6 FIR濾波器的FPGA實現 (136)
4.6.1 量化濾波器系數 (136)
4.6.2 FIR濾波器的實現結構 (138)
4.6.3 采用IP核實現FIR濾波器 (142)
4.6.4 MATLAB仿真測試數據 (148)
4.6.5 測試激勵的VHDL設計 (149)
4.6.6 FPGA實現后的仿真測試 (151)
4.7 IIR濾波器的FPGA實現 (152)
4.7.1 IIR濾波器的結構形式 (152)
4.7.2 量化級聯型結構的系數 (155)
4.7.3 級聯型結構的FPGA實現 (158)
4.7.4 FPGA實現后的測試仿真 (162)
4.8 濾波器的板載測試 (162)
4.8.1 硬件接口電路 (162)
4.8.2 板載測試程序 (163)
4.8.3 板載測試驗證 (169)
4.9 小結 (170)
參考文獻 (170)
第5章 ASK調制解調技術的實現 (171)
5.1 ASK信號的調制解調原理 (172)
5.1.1 二進制振幅調制信號的產生 (172)
5.1.2 二進制振幅調制信號的解調 (173)
5.1.3 二進制振幅調制系統的性能 (175)
5.1.4 多進制振幅調制 (175)
5.2 ASK調制信號的MATLAB仿真 (176)
5.3 ASK調制信號的FPGA實現 (179)
5.3.1 FPGA實現模型及參數說明 (179)
5.3.2 ASK調制信號的VHDL設計 (181)
5.3.3 FPGA實現后的仿真測試 (182)
5.4 ASK解調技術的MATLAB仿真 (184)
5.5 ASK解調技術的FPGA實現 (186)
5.5.1 FPGA實現模型及參數說明 (186)
5.5.2 ASK信號解調的VHDL設計 (186)
5.5.3 FPGA實現后的仿真測試 (188)
5.6 符號判決門限的FPGA實現 (190)
5.6.1 確定ASK解調后的判決門限 (190)
5.6.2 判決門限模塊的VHDL設計 (191)
5.6.3 FPGA實現后的仿真測試 (193)
5.7 鎖相環位同步技術的FPGA實現 (194)
5.7.1 位同步技術的工作原理 (194)
5.7.2 位同步頂層模塊的VHDL設計 (196)
5.7.3 雙相時鐘信號的VHDL設計 (198)
5.7.4 鑒相模塊的VHDL設計 (199)
5.7.5 控制模塊的VHDL設計 (201)
5.7.6 分頻模塊的VHDL設計 (203)
5.7.7 FPGA實現后的仿真測試 (204)
5.8 ASK解調系統的FPGA實現及仿真 (204)
5.8.1 完整解調系統的VHDL設計 (204)
5.8.2 完整系統的仿真測試 (207)
5.9 ASK調制解調的板載測試 (209)
5.9.1 硬件接口電路 (209)
5.9.2 板載測試程序 (209)
5.9.3 板載測試驗證 (214)
5.10 小結 (215)
參考文獻 (215)
第6章 FSK調制解調技術的實現 (217)
6.1 FSK信號的調制解調原理 (218)
6.1.1 FSK信號的時域表示 (218)
6.1.2 相關系數與頻譜特性 (219)
6.1.3 非相干解調原理 (221)
6.1.4 相干解調原理 (222)
6.1.5 解調方法的應用條件分析 (224)
6.2 FSK調制解調的MATLAB仿真 (225)
6.2.1 不同調制度的FSK信號仿真 (225)
6.2.2 非相干解調FSK仿真 (226)
6.2.3 相干解調FSK仿真 (231)
6.3 FSK調制信號的FPGA實現 (234)
6.3.1 FSK信號的產生方法 (234)
6.3.2 FSK調制信號的VHDL設計 (235)
6.3.3 FPGA實現后的仿真測試 (237)
6.4 FSK解調的FPGA實現 (238)
6.4.1 解調模型及參數設計 (238)
6.4.2 解調FSK信號的VHDL設計 (239)
6.4.3 FPGA實現后的仿真測試 (243)
6.5 MSK信號產生原理 (246)
6.5.1 MSK信號時域特征 (246)
6.5.2 MSK信號頻譜特性 (246)
6.5.3 MSK信號的產生方法 (248)
6.6 MSK調制信號的FPGA實現 (249)
6.6.1 實例參數及模型設計 (249)
6.6.2 MSK調制信號的VHDL設計及仿真 (250)
6.7 MSK解調原理 (255)
6.7.1 延遲差分解調 (255)
6.7.2 平方環相干解調 (257)
6.8 MSK解調的MATLAB仿真 (258)
6.8.1 仿真模型及參數說明 (258)
6.8.2 平方環解調MSK的MATLAB仿真 (258)
6.9 平方環的FPGA實現 (261)
6.9.1 鎖相環的工作原理 (261)
6.9.2 平方環的工作原理 (264)
6.9.3 平方環路性能參數設計 (265)
6.9.4 平方環的VHDL設計 (268)
6.9.5 FPGA實現后的仿真測試 (272)
6.10 MSK解調的FPGA實現 (273)
6.10.1 MSK解調環路參數設計 (273)
6.10.2 頂層模塊的VHDL設計 (275)
6.10.3 脈沖成形及解調模塊的VHDL設計 (279)
6.10.4 FPGA實現后的仿真測試 (281)
6.11 MSK調制解調的板載測試 (283)
6.11.1 硬件接口電路 (283)
6.11.2 板載測試程序 (283)
6.11.3 板載測試驗證 (287)
6.12 小結 (288)
參考文獻 (289)
第7章 PSK調制解調技術的實現 (291)
7.1 DPSK信號的調制解調原理 (292)
7.1.1 DPSK信號的調制原理 (292)
7.1.2 Costas環解調DPSK信號 (293)
7.1.3 DPSK調制解調的MATLAB仿真 (295)
7.2 DPSK解調的FPGA實現 (298)
7.2.1 環路性能參數設計 (298)
7.2.2 Costas環的VHDL設計 (300)
7.2.3 FPGA實現后的仿真測試 (303)
7.3 DQPSK信號的調制解調原理 (303)
7.3.1 QPSK信號的調制原理 (303)
7.3.2 雙比特碼元差分編解碼原理 (305)
7.3.3 DQPSK信號解調原理 (306)
7.3.4 DQPSK調制解調的MATLAB仿真 (309)
7.4 DQPSK調制信號的FPGA實現 (313)
7.4.1 差分編/解碼的VHDL設計 (313)
7.4.2 DQPSK調制信號的VHDL設計 (316)
7.5 DQPSK解調的FPGA實現 (321)
7.5.1 極性Costas環的VHDL設計 (321)
7.5.2 FPGA實現后的仿真測試 (326)
7.5.3 調整跟蹤策略獲取良好的跟蹤性能 (327)
7.5.4 完整的DQPSK解調系統設計 (328)
7.5.5 DQPSK解調系統的仿真測試 (331)
7.6 ?/4 QPSK調制解調原理 (332)
7.6.1 ?/4 QPSK信號的調制原理 (332)
7.6.2 匹配濾波器與成形濾波器 (334)
7.6.3 ?/4 QPSK信號的差分解調原理 (339)
7.6.4 ?/4 QPSK調制解調的MATLAB仿真 (340)
7.7 ?/4 QPSK調制解調的FPGA實現 (344)
7.7.1 基帶編碼的VHDL設計 (344)
7.7.2 差分解調的VHDL設計 (346)
7.7.3 FPGA實現后的仿真測試 (351)
7.8 PSK調制解調電路的板載測試 (352)
7.8.1 Costas環電路的板載測試 (352)
7.8.2 DQPSK電路的板載測試 (359)
7.8 小結 (360)
參考文獻 (361)
第8章 QAM調制解調技術的FPGA實現 (363)
8.1 QAM信號的調制解調原理 (364)
8.1.1 QAM調制解調系統組成 (364)
8.1.2 差分編碼與星座映射 (365)
8.1.3 QAM調制解調的MATLAB仿真 (367)
8.2 QAM編/解碼的FPGA實現 (371)
8.2.1 編碼映射的VHDL設計 (371)
8.2.2 解碼模塊的VHDL設計 (373)
8.2.3 FPGA實現后的仿真測試 (375)
8.3 QAM載波同步的FPGA實現 (375)
8.3.1 QAM載波同步原理 (375)
8.3.2 極性判決法載波同步的FPGA實現 (378)
8.3.3 DD算法載波同步的FPGA實現 (383)
8.4 插值算法位同步技術原理 (390)
8.4.1 位同步技術分類及組成 (390)
8.4.2 內插濾波器原理及結構 (392)
8.4.3 Gardner誤差檢測算法 (394)
8.4.4 環路濾波器與數控振蕩器 (395)
8.5 插值算法位同步技術的MATLAB仿真 (396)
8.5.1 設計環路濾波器系數 (397)
8.5.2 分析位定時算法MATLAB仿真程序 (397)
8.5.3 完整的QAM位定時算法仿真 (402)
8.6 插值算法位同步技術的FPGA實現 (403)
8.6.1 頂層模塊的VHDL設計 (403)
8.6.2 插值濾波模塊的VHDL設計 (406)
8.6.3 誤差檢測及環路濾波器模塊的VHDL設計 (408)
8.6.4 數控振蕩器模塊的VHDL設計 (411)
8.6.5 FPGA實現后的仿真測試 (412)
8.7 插值算法位同步電路的板載測試 (417)
8.7.1 硬件接口電路 (417)
8.7.2 板載測試程序 (418)
8.7.3 板載測試驗證 (421)
8.8 小結 (422)
參考文獻 (423)
第9章 擴頻調制解調技術的FPGA實現 (425)
9.1 擴頻通信的基本原理 (426)
9.1.1 擴頻通信的概念 (426)
9.1.2 擴頻通信的種類 (427)
9.1.3 直擴系統工作原理 (429)
9.2 直擴調制信號MATLAB仿真 (431)
9.2.1 偽碼序列的產生原理 (431)
9.2.2 MATLAB仿真直擴調制信號 (432)
9.3 直擴信號調制的FPGA實現 (436)
9.3.1 偽碼模塊的VHDL設計 (436)
9.3.2 擴頻調制模塊的VHDL設計 (437)
9.4 偽碼同步的一般原理 (440)
9.4.1 滑動相關捕獲原理 (441)
9.4.2 延遲鎖相環跟蹤原理 (442)
9.5 偽碼同步算法設計及仿真 (443)
9.5.1 同步算法設計 (443)
9.5.2 捕獲及跟蹤門限的MATLAB仿真 (445)
9.6 偽碼同步的FPGA實現 (447)
9.6.1 頂層模塊的VHDL設計 (447)
9.6.2 偽碼產生模塊的VHDL設計 (451)
9.6.3 相關積分模塊的VHDL設計 (453)
9.6.4 偽碼相位調整模塊的VHDL設計 (454)
9.6.5 FPGA實現后的仿真測試 (456)
9.7 直擴解調系統的FPGA實現 (458)
9.7.1 Costas載波環的VHDL設計 (458)
9.7.2 FPGA實現后的仿真測試 (463)
9.8 直擴調制解調的板載測試 (465)
9.8.1 硬件接口電路 (465)
9.8.2 板載測試程序 (466)
9.8.3 板載測試驗證 (472)
9.9 小結 (473)
參考文獻 (473)
序: