-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
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實現——Altera/Verilog版(第2版)

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

缺書
NT售價: 640

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

譯者序:

前言:

第2版前言
自2012年出版《數字濾波器的MATLAB與FPGA實現》后,根據廣大讀者的反饋和需求,作者從濾波器、同步技術和調制解調三個方面,出版了數字通信技術的MATLAB與FPGA實現系列圖書。根據采用的FPGA和硬件描述語言的不同,這套圖書分為Xilinx/VHDL版(采用Xilinx公司的FPGA和VHDL)和Altera/Verilog版(采用Altera公司的FPGA與VerilogHDL)。這套圖書能夠給廣大工程師及在校學生的工作和學習有所幫助,是作者莫大的欣慰。
作者在2015年出版了Altera/Verilog版,在2017年出版了Xilinx/VHDL版。針對Xilinx/VHDL版,作者精心設計了FPGA開發板CXD301,并在Xilinx/VHDL版中增加了板載測試內容,取得了良好效果,對讀者的幫助很大。
根據廣大讀者的建議,以及Xilinx/VHDL版的啟發,作者從2018年開始著手Altera/Verilog版的改版工作。但限于時間及精力,以及對應的開發板CRD500的研制進度,遲遲沒有完稿,一晃竟推遲了近兩年的時間。
與本書第1版相比,這次改版主要涉及以下幾個方面:
(1)對涉及FPGA工程實例的章節,增加了主要工程實例的板載測試內容(基于開發板CRD500進行板載測試),給出了測試程序代碼,并對測試結果進行了分析。
(2)Quartus軟件更新很快,幾乎每年都會推出新的版本。2014及以前的版本均為Quartus II,2015年后推出的版本更名為Quartus Prime,目前最新的版本是Quartus Prime 18.1。Quartus II和Quartus Prime的設計界面相差不大,設計流程也幾乎完全相同。其中,Quartus 13是最后同時支持32 bit及64 bit系統的軟件版本,后續版本僅支持64 bit系統。為了兼顧更廣泛的設計平臺,同時考慮到軟件版本的穩定性,本書及開發板配套例程均采用Quartus 13.1。本書第1版采用的是MATLAB 7.0,這次改版采用的是MATLAB R2014a。
(3)為了便于在CRD500上進行板載測試驗證,對部分工程實例參數進行了適當的調整。
(4)在編寫板載測試內容時,發現本書第1版中的部分程序還有需要完善的地方,這次改版對這些程序進行了補充及優化。
(5)根據讀者的反饋信息,修改了本書第1版中的一些敘述不當或不準確的地方。
限于作者水平,本書的不足之處在所難免,敬請讀者批評指正。歡迎大家就相關技術問題進行交流,或對本書提出改進建議。

杜勇
2020年1月


第1版前言
為什么要寫這本書
為什么要寫這本書呢?或者說為什么要寫數字通信技術的MATLAB與FPGA實現相關內容的書呢?記得在電子工業出版社出版《數字濾波器的MATLAB與FPGA實現》時,我在前言中提到寫作的原因主要有三條:其一是FPGA在電子通信領域得到了越來越廣泛的應用,并已逐漸成為電子產品實現的首選方案;其二是國內市場上專門討論如何采用FPGA實現數字通信技術的書籍相對欠缺;其三是數字通信技術本身十分復雜,關鍵技術較多,在一本書中全面介紹數字通信技術的FPGA實現時難免有所遺漏,且內容難以翔實。因此,根據自己從業經驗,將數字通信的關鍵技術大致分為濾波器技術、同步技術和調制解調技術三種,并嘗試著先寫濾波器技術,再逐步完成其他兩種技術的寫作。在廣大讀者的支持和鼓勵下,先后又出版了《數字通信同步技術的MATLAB與FPGA實現》和《數字調制解調技術的MATLAB與FPGA實現》。這樣,關于數字通信技術的MATLAB與FPGA實現的系列著作總算得以完成,多年前的構想總算成為現實!
自數字通信技術的MATLAB與FPGA實現的系列著作出版后,陸續通過郵件或博客的方式收到廣大讀者的反饋意見。一些讀者直接通過郵件告知書中的內容對工作的幫助;一些讀者提出了很多中肯的、有建設性的意見和建議;更多的讀者通過郵件交流書中的相關設計問題。《數字濾波器的MATLAB與FPGA實現》采用Xilinx公司的FPGA和VHDL作為開發平臺(Xilinx/VHDL版),該書出版后,不少讀者建議出版采用Verilog HDL作為開發平臺的版本。這是個很好的建議。在Xilinx/VHDL版順利出版之后,終于可以開始Altera/Verilog版的寫作了,以滿足不同讀者的需求。
回顧寫作這套圖書時的想法,作者顯然是受了中學時代閱讀的金庸先生的武俠小說的影響,金庸先生的幾本經典小說在人物和情節的安排上是一脈相承的,因此,在這套圖書的內容安排上也考慮了一定的銜接性。《數字濾波器的MATLAB與FPGA實現》的最后一章討論的是調制解調方面的內容,一方面涉及了調制解調中的濾波器設計,另一方面簡單地介紹了載波同步的知識。《數字通信同步技術的MATLAB與FPGA實現》中介紹的濾波器設計的內容多引自《數字濾波器的MATLAB與FPGA實現》,重點對載波同步、位同步、幀同步等經典的同步技術進行了詳細的闡述。濾波器及同步技術又是調制解調技術中的核心功能電路。
李開復先生在他的博客中有下面這段話:
西方有一句名言,“聽過的我會忘記,看過的我能記得,做過的我才理解”。在學校學習時,一定要做到融會貫通,不能只死背書本,一定要動手實踐。不但要學習知識,還要知道應該如何使用知識。融會貫通意味著高校培養出的學生必須善于將學習到的知識應用于實踐。在IT領域,許多公司都希望加入公司的畢業生擁有10萬行代碼以上的編程經驗(例如,在Google,很多應聘者都因為實際動手能力不足而沒能通過面試),但不少計算機相關專業的中國學生告訴我說,他們在學校的四年時間里,自己真正動手編寫過的程序還不超過1000行。這一方面說明了一些學校在教學時不重視對學生實踐能力的培養,另一方面也說明了很多學生只知道學習“死”的知識,而不知道去尋找或創造機會來將學到的知識用在具體的實踐中。
上面這段話道出了絕大多數剛畢業的大學生的狀態。回想自己剛離開大學校園后,在初次從事具體的電路設計時所感覺到的茫然仍然清晰如昨日!
作為一名電子通信領域的技術人員,在從業之初通常都會遇到類似的困惑:如何將從教材中所學到的理論知識與實際中的工程設計結合起來?如何將這些教材中的理論知識轉換成實際的電路?絕大多數的數字通信類教材對通信原理的講解都十分透徹,但理論與實踐之間顯然需要有一座可以順利通過的橋梁。一個常用的方法是通過采用MATLAB等工具進行軟件仿真來加深對理論知識的理解,但更好的方法顯然是直接參與工程的設計與實現。
然而,在校學生極少有機會參與實際工程的設計,在工作中往往感到學校所學的理論知識很難與實際的工程聯系起來。教科書上講解的是原理性的內容,即使可以很好地解答教科書中的習題,或者能夠熟練地推導書中的公式,但在進行工程設計時,如何用具體的電路或硬件平臺來實現這些理論知識及公式,仍然是廣大工程師面臨的一個巨大難題。對于數字通信專業來講,由于其涉及的理論知識比較復雜,在真正進行工程設計時會發現根本無從下手。采用MATLAB、System View等軟件對通信理論進行仿真,雖然可以直觀地驗證算法的正確性,并查看仿真結果,但這類軟件的仿真僅僅停留在算法或模型上,與真正的工程設計及實現完全是兩個不同的概念。FPGA很好地解決了這一問題。FPGA本來就是基于工程應用的,其仿真技術可以很好地仿真實際的工作情況。尤其是時序仿真技術,在計算機上通過了時序仿真的程序,幾乎不再需要修改就可以直接應用到工程中。這種設計、驗證、仿真的一體化,可以極好地將理論知識與工程實踐完美地結合起來,從而提高學習的興趣。
FPGA具有快速的并行運算能力,以及獨特的組成結構,已成為電子通信領域必不可少的實現平臺之一。本書的目的正是架起一座理論知識與工程實踐之間的橋梁,通過具體的設計實例,詳細講解從理論到工程實現的方法、步驟和過程,以便工程技術人員能夠盡快掌握利用FPGA實現數字通信技術的方法。
目前,市場上已有很多介紹ISE、Quartus II等FPGA開發環境,以及VHDL、Verilog HDL等硬件描述語言的圖書。如果我們僅僅使用FPGA來實現一些數字邏輯電路,或者理論性不強的控制電路,掌握FPGA開發工具及VHDL的語法就可以開始工作了。數字通信的理論性要強得多,采用FPGA實現數字通信技術的前提條件是要對理論知識有深刻的理解。在理解理論知識之后,關鍵的問題是根據這些理論知識,利用FPGA的特點,找到合適的算法實現結構,厘清工程實現的思路,并采用VHDL、Verilog HDL等硬件描述語言進行實現。因此,要想順利地讀懂本書,讀者除了要掌握數字通信的理論知識,還需要對FPGA的開發環境和硬件描述語言有一定的了解。
在本書的寫作過程中,作者兼顧了數字通信的理論知識和工程設計過程的完整性,重點突出FPGA設計、結構、實現的細節,以及仿真測試方法。在講解理論知識時,重點從工程應用的角度進行介紹,主要介紹工程設計時必須掌握和理解的理論知識,并且結合FPGA的特點進行討論,以便讀者能夠盡快找到理論知識與工程實踐之間的結合點。在講解具體工程實例的FPGA實現時,不僅給出了完整的程序代碼,還從思路和結構上對程序代碼進行詳細的分析和說明。根據作者的理解,針對一些似是而非的概念,結合具體工程實例的仿真測試加以闡述,希望能夠為讀者提供更多有用的參考。相信讀者按照本書講解的步驟完成一個個具體的工程實例時,會逐步感覺到理論知識與工程實踐之間完美結合的暢快,對理論知識的理解也必將越來越深刻,就更容易構建起理論知識與工程實踐之間的橋梁。
本書的內容安排
第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實現》。
第5章開始討論各種調制解調技術。眾所周知,無論數字通信還是模擬通信,幅度調制解調都被認為是一種最簡單的通信技術。事實也確實如此,因此這種調制方式幾乎成為學習通信原理的基礎。在討論ASK信號解調時采用了非相解調法,又進一步降低了FPGA實現的難度。雖然看似簡單,但并非不重要,因為本章介紹了一個非常完整的數字通信傳輸系統。在介紹通信原理方面的教材中可以很容易找到ASK調制解調方面的內容,但如何將這個看似簡單的系統真正應用到工程中,用FPGA實現出來,清楚了解從輸入到輸出之間信號的變化過程,并不是一件容易的事。讀者根據本章所介紹的步驟及方法,完成整個系統的仿真測試之后,會對ASK調制解調技術有一個更加深入的理解。
經過對ASK調制解調技術的討論,讀者會對數字調制解調技術的整個設計流程有了一個初步的認識,甚至覺得工程設計并不是多么困難的事。建立信心是很重要的,但也要有一定的思想準備,并非所有數字調制解調技術都像第5章介紹的那么簡單。第6章前半部分討論了FSK調制解調技術,無論理論知識還是工程實現的難度都不大;后半部分詳細討論了MSK調制解調技術,其原理及工程實現都已有一定規模了,無論從原理還是從工程實現來講,要完全掌握其設計流程和方法,都需要花一番工夫才行。不過也不用過于擔心,讀者跟著書中介紹的步驟,一步步完成整個MSK信號解調的FPGA工程實現,并在ModelSim仿真波形中看到一條條光滑的收斂曲線時,一定會產生一種成就感,設計的信心也會隨之增加。
第7章討論了三種典型的相位調制系統:BPSK、QPSK及?/4 QPSK。Costas環是一種非常經典的鎖相環,是BPSK信號解調中常用的電路,絕大多數電子通信領域的讀者對此都不會陌生。在設計完成Costas環后,采用ModelSim仿真環路的收斂性能,在波形界面看到完美的收斂曲線時,相信讀者會感到工程設計成功的喜悅,一些原本只存在于教科書中的理論,已經演變成現實的工程設計了。本章進一步探討了QPSK及?/4 QPSK調制解調制的過程,為了給讀者更多的參考,在解調時分別采用了相干解調法和非相干解調法。
第8章討論了一個比較完整的QAM調制解調系統,比較詳細地介紹了從原理到MATLAB仿真,再到FPGA實現的過程。QAM是一種應用十分廣泛的調制方式,相比前面討論的調制方式,無論工作原理還是實現過程,都顯得更為復雜。從整個QAM調制解調的實現過程來看,關鍵問題仍然是載波同步及位同步。其中,載波同步的相關內容與前面所討論的鎖相環有很強的關聯性,如果讀者通過前面章節已經對鎖相環有了深刻的認識,則理解QAM載波同步原理及實現方法就相對比較容易了。插值算法位同步技術是本章的重點和難點,為了給讀者更多的參考,本章還對插值算法的工作原理及仿真的過程進行了介紹。之所以介紹這些內容,是想說明,作為一名工程技術人員,掌握一項技術時首先要從原理上準確把握這項技術的工作機理,能夠對仿真結果做出合理的解釋。在遇到困難時,可以采用各種方式學習借鑒,如查閱資料或論壇求助等,但前提是需要花費大量精力對已有的基本知識進行消化。掌握的知識越多,積累的工程經驗越豐富,學習的速度就越快,對相關領域知識的理解就越深刻,這是一個正反饋不斷增強的過程。
本書最后一章討論的是擴頻調制解調技術,偽碼同步是其中的核心技術,擴頻通信的抗干擾性能也體現在偽碼同步后的解擴上。本章首先介紹了直擴系統的原理,然后比較詳細地討論了直擴系統的同步原理及方法,并重點分析了本書所采用的滑動相關捕獲法和延遲鎖相環的原理。利用FPGA實現偽碼同步環的關鍵在于合理劃分功能模塊,以及準確掌握各功能模塊之間的控制與被控制關系以及整個系統的時序關系。如果沒有Costas環的FPGA設計基礎,直接學習本章內容是比較困難的,不僅是因為直擴系統解調系統本身需要將載波同步環與偽碼同步環有機結合在一起,還因為本章在介紹整個環路的Verilog HDL設計時有意略去了載波同步環相關參數的設計方法。
關于FPGA開發環境的說明
眾所周知,目前Xilinx公司和Altera公司的產品占據全球約90%的FPGA市場。可以說,在一定程度上正是由于這兩大廠商的相互競爭態勢,才有力地推動了FPGA的不斷發展。雖然硬件描述語言的編譯及綜合環境可以采用第三方公司所開發的產品,如ModelSim、Synplify等,但FPGA的實現必須采用各自公司開發的軟件平臺,無法通用。目前,Xilinx公司的主流開發平臺是ISE系列套件,Altera公司的主流開發平臺是Quartus II系列套件。與FPGA開發平臺類似,硬件描述語言也存在兩種難以取舍的選擇:VHDL和Verilog HDL。
如何選擇開發平臺以及硬件描述語言呢?其實,對于有志于從事FPGA開發的技術人員來說,選擇哪種平臺及硬件描述語言并不重要,因為兩種平臺具有很多相似的地方,精通一種硬件描述語言后,再學習另一種也不是一件困難的事。通常可以根據周圍同事、朋友、同學或公司的主要使用情況來選擇,這樣在學習的過程中可以方便地找到能夠給你指點迷津的專業人士,從而加快學習的進度。
本書采用Altera公司的FPGA作為開發平臺,采用Quartus II作為開發環境,采用Verilog HDL作為實現手段。由于Verilog HDL并不依賴于具體的FPGA,因此本書的Verilog HDL程序可以很方便地移植到其他FPGA上。如果程序中應用了IP核,不同公司的IP核通常是不能通用的,這就需要根據IP核的功能參數,在另外一個平臺上重新生成IP核,或編寫Verilog HDL代碼來實現IP核。
有人曾經說過,技術只是一個工具,關鍵在于思想。將這句話套用過來,對于本書來講,具體的開發平臺和硬件描述語言只是實現數字通信技術的工具,關鍵在于設計的思路和方法。因此,讀者完全不必要過于在意開發平臺的差別,只要掌握本書所講述的設計思路和方法,加上讀者已經具備的FPGA開發經驗,采用任何一種開發平臺和硬件描述語言都可以很快地設計出滿足用戶需求的產品。
如何使用本書
本書討論的是數字調制解調技術的MATLAB與FPGA實現。相信大部分工科院校的學生和電子通信的從業人員對MATLAB都有一個基本的了解。由于MATLAB的易用性及強大的功能,已經成為數學分析、信號仿真、數字處理必不可少的工具。另外,MATLAB具有大量專門針對數字信號處理的常用函數,如濾波器函數、傅里葉分析函數等,十分有利于對一些通信的概念及信號進行功能性仿真,因此,本書在講解具體的工程實例時,通常會采用MATLAB作為仿真驗證工具。雖然本書中的MATLAB程序相對比較簡單,主要應用一些數字信號處理函數進行仿真驗證,但如果讀者沒有MATLAB的基礎知識,還是建議先簡單地學習MATLAB的編程概念及基本語法。考慮到程序及函數的兼容性,書中所有MATLAB程序的開發驗證平臺均為MATLAB 7.0。
在講解具體的FPGA工程實例時,通常會先采用MATLAB對所需設計的工程進行仿真,一方面可以仿真算法過程及結果,另一方面可以生成FPGA仿真所需要的測試數據。在Quartus II平臺上編寫Verilog HDL程序時,為了便于講述,通常會先討論程序的設計思路,或者先給出程序清單,然后對程序代碼進行分析說明。在編寫完程序后,還需要編寫TestBench文件,根據所需產生輸入信號的種類,可以直接在TestBench文件中編寫代碼來產生輸入信號,也可以通過讀取外部TXT文件的方式來產生輸入信號;接下來就可以采用ModelSim對Verilog HDL程序進行仿真了,查看ModelSim仿真波形,并根據需要將仿真數據寫入外部TXT文件,通常還會對仿真波形進行分析,查看仿真結果是否滿足要求。如果ModelSim波形不便于精確地分析測試結果,則需要再次編寫MATLAB程序來對ModelSim仿真結果進行分析處理,最終驗證FPGA設計的正確性。
本書主要以工程實例的方式講解各種數字調制解調技術的原理以及FPGA實現方法和步驟。大部分工程實例均給出了完整的程序清單,但限于篇幅,不同工程實例中的一些重復或相似的代碼并沒有完全列出,本書的配套資料收錄了所有工程實例的源程序及工程設計資源,并按章節序號存放在配套資料的根目錄下。本書在編寫工程實例時,程序文件均放置在“D:ModemPrograms”的文件夾下,讀者可以先在本地硬盤下建立“D:ModemPrograms”文件夾,然后將配套資料中的程序壓縮包解壓至該文件夾下,大部分程序均可直接運行。需要說明的是,在大部分工程實例中,需要由MATLAB產生FPGA測試所需的數據,或者由MATLAB讀取外部TXT文件的數據,同時FPGA仿真用的TestBench文件通常也需要從指定的路徑下讀取外部TXT文件的數據,或將仿真結果輸出到指定的路徑下。文件的路徑均為絕對路徑,如“fid=fopen(’D: ModemProgramsChapter_4din.txt’,’w’);”,讀者運行程序時,請修改用于指定文件路徑的代碼,以確保仿真測試程序在正確的路徑下對文件進行操作。
致謝
有人說,每個人都有他存在的使命,如果迷失他的使命,就失去了他存在的價值。不只是每個人,每件物品也都有其存在的使命。對于一本書來講,其存在的使命就是被閱讀,并給閱讀者帶來收獲。數字通信的MATLAB與FPGA設計系列圖書,能夠對讀者的工作和學習有所幫助,是作者莫大的欣慰。
在寫作本書的過程中,作者查閱了大量的資料,在此對資料的作者及提供者表示衷心的感謝。由于寫作的緣故,作者重新閱讀一些經典的數字通信書籍時,再次深刻感受到了前輩們嚴謹的治學態度和細致的寫作作風。
在此,感謝我的父母,幾年來一直陪伴在我的身邊,正是他們的默默支持,才讓我能夠在家里專心致志地寫作。感謝我的妻子劉帝英女士,她不僅是一位盡心盡職的母親,也是一位嚴謹細致的科技工作者,同時也是本書的第一位讀者,在工作之余對本書進行了細致的校對。時間過得很快,女兒已經上小學四年級了,她最愛看書和畫畫,最近迷上了《西游記》,以前的兒童簡化版已滿足不了她的要求,周末陪她去書店買了一本原著,她自己常常被書中的情節逗得哈哈大笑,還常常推薦一些精彩的章節給我看。
FPGA技術博大精深,數字通信技術繁多且實現難度大。本書雖盡量詳細討論了FPGA實現數字調制解調技術的相關內容,仍感覺到難以詳盡敘述工程實現的所有細節。相信讀者在實際工程應用中經過不斷實踐、思考及總結,一定可以快速掌握數字調制解調技術的工程設計方法,提高應用FPGA進行工程設計的能力。由于作者水平有限,不足之處在所難免,敬請廣大讀者批評指正。歡迎大家就相關技術問題與我進行交流,或對本書提出改進意見及建議。請讀者訪問網址以獲得與該書相關的資料及信息,也可以發郵件與我進行交流。

杜 勇
2015年3月
內容簡介:

本書以Altera公司的FPGA為開發平臺,以MATLAB及Verilog HDL為開發工具,詳細闡述數字調制解調技術的FPGA實現原理、結構、方法和仿真測試過程,并通過大量工程實例分析FPGA實現過程中的具體技術細節。主要內容包括FPGA實現數字信號處理基礎、ASK調制解調、PSK調制解調、FSK調制解調、QAM調制解調以及擴頻通信等。本書思路清晰、語言流暢、分析透徹,在簡明闡述設計原理的基礎上,追求對工程實踐的指導性,力求使讀者在較短的時間內掌握數字調制解調技術的FPGA設計的知識和技能。作者精心設計了與本書配套的FPGA開發板,詳細講解了工程實例的板載測試步驟及方法,形成了從理論到實踐的完整學習過程,可以有效加深讀者對調制解調技術的理解。本書的配套資料收錄了完整的MATLAB及Verilog HDL代碼,讀者可登錄華信教育資源網免費注冊后下載。
目錄:

第1章 數字通信及FPGA概述 (1)
1.1 數字通信系統概述 (1)
1.1.1 數字通信的一般處理流程 (1)
1.1.2 本書討論的通信系統模型 (3)
1.1.3 數字通信的特點及優勢 (4)
1.1.4 數字通信的發展概述 (6)
1.2 數字通信中的幾個基本概念 (7)
1.2.1 與頻譜相關的概念 (7)
1.2.2 帶寬的定義 (10)
1.2.3 采樣與頻譜搬移 (13)
1.2.4 噪聲與信噪比 (17)
1.3 FPGA的基礎知識 (18)
1.3.1 從晶體管到FPGA (18)
1.3.2 FPGA的發展趨勢 (21)
1.3.3 FPGA的組成結構 (22)
1.3.4 FPGA的工作原理 (27)
1.4 FPGA與其他處理平臺的比較 (29)
1.4.1 ASIC、DSP及ARM的特點 (29)
1.4.2 FPGA的特點及優勢 (30)
1.5 Altera公司FPGA簡介 (31)
1.6 FPGA開發板CRD500 (33)
1.6.1 CRD500簡介 (33)
1.6.2 CRD500典型應用 (35)
1.7 小結 (36)
參考文獻 (36)
第2章 設計語言及環境介紹 (38)
2.1 HDL簡介 (38)
2.1.1 HDL的特點及優勢 (38)
2.1.2 選擇VHDL還是Verilog HDL (39)
2.2 Verilog HDL基礎 (40)
2.2.1 Verilog HDL的特點 (40)
2.2.2 Verilog HDL程序結構 (41)
2.3 FPGA開發工具及設計流程 (43)
2.3.1 Quartus II開發軟件 (43)
2.3.2 ModelSim仿真軟件 (46)
2.3.3 FPGA設計流程 (48)
2.4 MATLAB軟件 (50)
2.4.1 MATLAB簡介、工作界面和優勢 (50)
2.4.2 MATLAB中常用的信號處理函數 (53)
2.5 MATLAB與Quartus II的數據交換 (60)
2.6 小結 (60)
參考文獻 (61)
第3章 FPGA實現數字信號處理基礎 (62)
3.1 FPGA中數的表示 (62)
3.1.1 萊布尼茲與二進制 (62)
3.1.2 定點數表示 (63)
3.1.3 浮點數表示 (64)
3.2 FPGA中數的運算 (67)
3.2.1 加、減法運算 (67)
3.2.2 乘法運算 (70)
3.2.3 除法運算 (71)
3.2.4 有效數據位的計算 (71)
3.3 有限字長效應 (74)
3.3.1 有限字長效應的產生原因 (74)
3.3.2 A/D轉換的有限字長效應 (75)
3.3.3 系統運算中的有限字長效應 (76)
3.4 FPGA中的常用處理模塊 (78)
3.4.1 加法器模塊 (78)
3.4.2 乘法器模塊 (80)
3.4.3 除法器模塊 (82)
3.4.4 浮點數運算模塊 (83)
3.5 小結 (84)
參考文獻 (85)
第4章 濾波器的MATLAB與FPGA實現 (86)
4.1 濾波器概述 (86)
4.1.1 濾波器的分類 (86)
4.1.2 濾波器的特征參數 (88)
4.2 FIR濾波器與IIR濾波器的原理 (89)
4.2.1 FIR濾波器原理 (89)
4.2.2 IIR濾波器原理 (90)
4.2.3 IIR濾波器與FIR濾波器的比較 (90)
4.3 FIR濾波器的MATLAB設計 (91)
4.3.1 利用fir1函數設計FIR濾波器 (91)
4.3.2 利用kaiserord函數設計FIR濾波器 (94)
4.3.3 利用fir2函數設計FIR濾波器 (94)
4.3.4 利用firpm函數設計FIR濾波器 (96)
4.4 IIR濾波器的MATLAB設計 (98)
4.4.1 利用butter函數設計IIR濾波器 (98)
4.4.2 利用cheby1函數設計IIR濾波器 (99)
4.4.3 利用cheby2函數設計IIR濾波器 (100)
4.4.4 利用ellip函數設計IIR濾波器 (100)
4.4.5 利用yulewalk函數設計IIR濾波器 (101)
4.4.6 幾種濾波器設計函數的比較 (101)
4.5 FIR濾波器的FPGA實現 (103)
4.5.1 FIR濾波器的實現結構 (103)
4.5.2 采用IP核實現FIR濾波器 (107)
4.5.3 MATLAB仿真測試數據 (112)
4.5.4 仿真測試Verilog HDL的設計 (114)
4.5.5 FPGA實現后的仿真測試 (116)
4.6 IIR濾波器的FPGA實現 (118)
4.6.1 IIR濾波器的結構形式 (118)
4.6.2 級聯型結構IIR濾波器的系數量化 (120)
4.6.3 級聯型結構IIR濾波器的FPGA實現 (124)
4.6.4 FPGA實現后的仿真測試 (127)
4.7 IIR濾波器的板載測試 (128)
4.7.1 硬件接口電路 (128)
4.7.2 板載測試程序 (129)
4.7.3 板載測試驗證 (131)
4.8 小結 (132)
參考文獻 (132)
第5章 ASK調制解調技術的FPGA實現 (134)
5.1 ASK調制解調原理 (134)
5.1.1 ASK信號的產生 (134)
5.1.2 ASK信號的解調 (136)
5.1.3 ASK解調的性能 (137)
5.1.4 多進制振幅調制 (138)
5.2 ASK信號的MATLAB仿真 (138)
5.3 ASK信號的FPGA實現 (141)
5.3.1 FPGA實現模型及參數說明 (141)
5.3.2 ASK信號的Verilog HDL設計 (143)
5.3.3 FPGA實現ASK信號后的仿真測試 (144)
5.4 非相干解調法的MATLAB仿真 (146)
5.5 非相干解調法的FPGA實現 (148)
5.5.1 非相干解調法的FPGA實現模型及參數說明 (148)
5.5.2 非相干解調法的Verilog HDL設計 (148)
5.5.3 FPGA實現非相干解調法后的仿真測試 (150)
5.6 符號判決門限的FPGA實現 (151)
5.6.1 確定ASK解調信號的判決門限 (152)
5.6.2 判決門限模塊的Verilog HDL實現 (152)
5.6.3 FPGA實現判決門限模塊后的仿真測試 (154)
5.7 位同步技術的FPGA實現 (154)
5.7.1 位同步技術的工作原理 (154)
5.7.2 位同步模塊的Verilog HDL實現 (157)
5.7.3 雙相時鐘信號的Verilog HDL實現 (159)
5.7.4 微分鑒相模塊的Verilog HDL實現 (160)
5.7.5 單穩態觸發器的Verilog HDL實現 (162)
5.7.6 控制分頻模塊的Verilog HDL實現 (164)
5.7.7 FPGA實現及仿真測試 (165)
5.8 ASK信號解調系統的FPGA實現及仿真 (166)
5.8.1 解調系統的Verilog HDL實現 (166)
5.8.2 完整系統的仿真測試 (168)
5.9 ASK調制解調系統的板載測試 (171)
5.9.1 硬件接口電路 (171)
5.9.2 板載測試程序 (171)
5.9.3 板載測試驗證 (174)
5.10 小結 (175)
參考文獻 (176)
第6章 FSK調制解調技術的FPGA實現 (177)
6.1 FSK調制解調原理 (177)
6.1.1 2FSK信號的時域表示 (177)
6.1.2 相關系數與頻譜特性 (178)
6.1.3 非相干解調法的原理 (180)
6.1.4 相干解調法原理 (182)
6.1.5 解調方法的應用條件分析 (183)
6.2 2FSK信號的MATLAB仿真 (184)
6.2.1 不同調制指數的2FSK信號仿真 (184)
6.2.2 2FSK信號非相干解調的仿真 (185)
6.2.3 2FSK信號相干解調的仿真 (191)
6.3 FSK信號的FPGA實現 (194)
6.3.1 FSK信號的產生方法 (194)
6.3.2 2FSK信號的Verilog HDL實現 (195)
6.3.3 FPGA實現后的仿真測試 (196)
6.4 2FSK信號解調的FPGA實現 (197)
6.4.1 解調模型及參數設計 (197)
6.4.2 2FSK信號解調系統的Verilog HDL實現 (198)
6.4.3 FPGA實現后的仿真測試 (203)
6.5 MSK信號的產生原理 (205)
6.5.1 MSK信號的時域特征 (205)
6.5.2 MSK信號的頻譜特性 (206)
6.5.3 MSK信號的產生方法 (207)
6.6 MSK信號的FPGA實現 (209)
6.6.1 實例參數及模型設計 (209)
6.6.2 MSK信號的Verilog HDL實現及仿真 (210)
6.7 MSK信號的解調原理 (211)
6.7.1 延遲差分解調法 (211)
6.7.2 平方環相干解調法 (212)
6.8 MSK信號解調的MATLAB仿真 (214)
6.8.1 仿真模型及參數說明 (214)
6.8.2 MSK信號的平方環相干解調的MATLAB仿真 (214)
6.9 平方環的FPGA實現 (217)
6.9.1 鎖相環的工作原理 (217)
6.9.2 平方環的工作原理 (220)
6.9.3 平方環性能參數設計 (221)
6.9.4 平方環的Verilog HDL設計 (223)
6.9.5 FPGA實現后的仿真測試 (227)
6.10 MSK信號解調的FPGA實現 (228)
6.10.1 MSK信號解調環路參數設計 (228)
6.10.2 頂層模塊的Verilog HDL設計 (230)
6.10.3 脈沖成形及解調模塊的Verilog HDL設計 (234)
6.10.4 MSK信號解調環路FPGA實現后的仿真測試 (236)
6.11 2FSK調制解調的板載測試 (237)
6.11.1 硬件接口電路 (237)
6.11.2 板載測試程序 (238)
6.11.3 板載測試驗證 (239)
6.12 小結 (240)
參考文獻 (241)
第7章 PSK調制解調技術的FPGA實現 (243)
7.1 DPSK調制解調原理 (243)
7.1.1 DPSK信號的調制原理 (243)
7.1.2 采用Costas環解調DPSK信號 (245)
7.1.3 DPSK調制解調的MATLAB仿真 (246)
7.2 DPSK信號解調的FPGA實現 (249)
7.2.1 Costas環的參數設計 (249)
7.2.2 Costas環的Verilog HDL設計 (251)
7.2.3 FPGA實現后的仿真測試 (254)
7.3 DQPSK調制解調原理 (254)
7.3.1 QPSK調制原理 (254)
7.3.2 雙比特碼元的差分編/解碼原理 (256)
7.3.3 DQPSK信號的解調原理 (257)
7.3.4 DQPSK調制解調的MATLAB仿真 (260)
7.4 DQPSK信號的FPGA實現 (264)
7.4.1 差分編/解碼的Verilog HDL設計 (264)
7.4.2 DQPSK信號的Verilog HDL設計 (267)
7.5 DQPSK信號解調的FPGA實現 (272)
7.5.1 極性Costas環的Verilog HDL設計 (272)
7.5.2 FPGA實現后的仿真測試 (276)
7.5.3 跟蹤策略和解調性能 (277)
7.5.4 DQPSK信號解調系統的設計 (279)
7.5.5 DQPSK信號解調系統的仿真測試 (282)
7.6 ?/4 QPSK調制解調原理 (283)
7.6.1 ?/4 QPSK調制原理 (283)
7.6.2 匹配濾波器與成形濾波器 (285)
7.6.3 ?/4 QPSK信號的差分解調原理 (290)
7.6.4 ?/4 QPSK調制解調的MATLAB仿真 (291)
7.7 ?/4 QPSK調制解調的FPGA實現 (295)
7.7.1 基帶編碼的Verilog HDL設計 (295)
7.7.2 差分解調的Verilog HDL設計 (299)
7.7.3 FPGA實現后的仿真測試 (304)
7.8 DQPSK調制解調系統的板載測試 (305)
7.8.1 硬件接口電路 (305)
7.8.2 板載測試程序 (305)
7.8.3 板載測試驗證 (307)
7.9 小結 (308)
參考文獻 (309)
第8章 QAM調制解調技術的FPGA實現 (310)
8.1 QAM調制解調的原理 (310)
8.1.1 QAM調制解調系統的組成 (310)
8.1.2 差分編碼與星座映射 (311)
8.1.3 16QAM調制解調的MATLAB仿真 (313)
8.2 16QAM信號編/解碼的FPGA實現 (317)
8.2.1 16QAM信號編碼的Verilog HDL設計 (317)
8.2.2 16QAM信號解碼的Verilog HDL設計 (321)
8.2.3 FPGA實現16QAM信號編/解碼的仿真測試 (322)
8.3 QAM載波同步的FPGA實現 (323)
8.3.1 QAM中常用的載波同步算法[10] (323)
8.3.2 極性判決算法的FPGA實現 (326)
8.3.3 DD算法載波同步的FPGA實現 (330)
8.4 插值算法位同步技術原理 (337)
8.4.1 位同步技術的分類及組成 (337)
8.4.2 內插濾波器的原理及結構 (339)
8.4.3 Gardner定時誤差檢測算法 (341)
8.4.4 環路濾波器與數控振蕩器 (342)
8.5 插值算法位同步技術的MATLAB仿真 (343)
8.5.1 環路濾波器系數的設計 (343)
8.5.2 Gardner定時誤差檢測算法的MATLAB仿真程序 (344)
8.5.3 16QAM信號位同步算法的仿真 (349)
8.6 插值算法位同步技術的FPGA實現 (351)
8.6.1 頂層模塊的Verilog HDL設計 (351)
8.6.2 內插濾波器模塊的Verilog HDL設計 (353)
8.6.3 定時誤差檢測及環路濾波器模塊的Verilog HDL設計 (355)
8.6.4 數控振蕩器及插值間隔產生模塊的Verilog HDL設計 (358)
8.6.5 插值算法位同步技術FPGA實現后的仿真測試 (359)
8.7 插值算法位同步環的板載測試 (362)
8.7.1 硬件接口電路 (362)
8.7.2 板載測試程序 (363)
8.7.3 板載測試驗證 (364)
8.8 小結 (365)
參考文獻 (365)
第9章 擴頻調制解調技術的FPGA實現 (367)
9.1 擴頻通信的基本原理 (367)
9.1.1 擴頻通信的概念 (367)
9.1.2 擴頻通信的種類 (368)
9.1.3 直擴系統的工作原理 (370)
9.2 直擴系統調制信號的MATLAB仿真 (372)
9.2.1 偽碼序列的產生原理 (372)
9.2.2 MATLAB仿真直擴系統調制信號 (373)
9.3 直擴系統調制信號的FPGA實現 (377)
9.3.1 偽碼模塊的Verilog HDL設計 (377)
9.3.2 擴頻調制模塊的Verilog HDL設計 (378)
9.4 偽碼同步的原理 (381)
9.4.1 滑動相關捕獲原理 (382)
9.4.2 延遲鎖相環的跟蹤原理 (383)
9.5 偽碼同步算法的設計及仿真 (384)
9.5.1 偽碼同步算法的設計 (384)
9.5.2 捕獲及跟蹤門限的MATLAB仿真 (385)
9.6 偽碼同步的FPGA實現 (388)
9.6.1 頂層模塊的Verilog HDL設計 (388)
9.6.2 偽碼模塊的Verilog HDL設計 (390)
9.6.3 相關積分模塊的Verilog HDL設計 (392)
9.6.4 偽碼相位調整模塊的Verilog HDL設計 (393)
9.6.5 FPGA實現后的仿真測試 (396)
9.7 直擴系統解調環路的FPGA實現 (397)
9.7.1 Costas環的Verilog HDL設計 (398)
9.7.2 FPGA實現后的仿真測試 (401)
9.8 小結 (403)
參考文獻 (403)
序: