本科畢業(yè)設計(論文)QPSK調制器的設計與實現_第1頁
本科畢業(yè)設計(論文)QPSK調制器的設計與實現_第2頁
本科畢業(yè)設計(論文)QPSK調制器的設計與實現_第3頁
本科畢業(yè)設計(論文)QPSK調制器的設計與實現_第4頁
本科畢業(yè)設計(論文)QPSK調制器的設計與實現_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、xxx 大學大學/學院學院 本科畢業(yè)設計(論文) 題 目 qpsk 調制器的設計與實現 學生姓名 專業(yè)班級 電子信息科學與技術 07-1 班 學 號 院 (系) 計算機與通信工程學院 指導教師 完成時間 2011 年 6 月 1 日 鄭州輕工業(yè)學院 畢業(yè)設計(論文)任務書畢業(yè)設計(論文)任務書 題目題目 qpsk 調制器的設計與實現 專業(yè)專業(yè) 電子信息科學與技術 07-1 學號學號 姓名姓名 主要內容、基本要求、主要參考資料等:主要內容、基本要求、主要參考資料等: 主要內容主要內容:基于 matlab 與 visual c+混合程序設計,實現對 qpsk 的調制;學習使用通信仿真軟 件 mat

2、lab 和 visual c+編程。 基本要求基本要求:1. 掌握 qpsk 的調制原理。 2掌握 matlab 與 c+混合調制的方法。 3編寫仿真程序并調試。 主要參考資料主要參考資料: 1 樊昌信.通信原理m.北京:國防工業(yè)出版社,2001 2 張輝,曹麗娜. 現代通信原理與技術m. 西安:西安電子科技大學出版社,2008.7 3 matlab 程序設計與應用/劉衛(wèi)國,陳昭平,張穎。-北京:高等教育出版社,2002.6 4 visual c+ 6.0實用教程/鄒箏,康曉琳,袁建洲等編著,-北京:電子工業(yè)出版社,2008.1 5精通matlab與c+混合程序設計/劉維編著,-2版。北京:北

3、京航空航天大學出版社,2008.1 完完 成成 期期 限:限: 2011 年 6 月 1 日 指指導導教教師師簽簽名名: 專業(yè)負責人簽名:專業(yè)負責人簽名: 年年 月月 日日 目錄 摘 要.i abstract .ii 1 緒論.1 2 qpsk 調制工作原理.3 2.1 qpsk 信號的矢量圖 .3 2.2 雙比特碼元與載波相位的關系.3 2.3 qpsk 信號產生的兩種原理圖.4 2.4 雙比特碼元所對應的圖形 .5 2.5 qpsk 的特點.6 3 設計中使用的工具軟件簡介.8 3.1 matlab 語言簡介 .8 3.2 matlab 的特點.9 3.3 visual c+簡單介紹 .9

4、 3.4 c+主要特點.9 4 用 matlab 與 visual c+混合編程設計 qpsk 調制器.11 4.1 wave 文件介紹 .11 4.2 visual c+中調用 matlab *.m函數編譯后的動態(tài)鏈接庫.14 4.2.1 對 matlab 的編譯環(huán)境進行配置,并編寫*.m 文件和生成動態(tài)鏈接文 件.14 4.2.2 visual c+調用 matlab 生成的庫文件.17 總結.23 致 謝.24 參考文獻.25 附錄 mfc 程序.26 程序一.26 程序二.33 qpsk 調制器的設計與實現 摘 要 qpsk 調制全稱 quadrature phase shift ke

5、ying ,意為正交相移鍵控,是 一種數字調制方式。隨著社會的發(fā)展,通信在生活中的地位越來越重要,目前 qpsk 通信系統(tǒng)已經廣泛應用于無線通信中,成為現代通信中一種十分重要的調 制解調方式。 本文首先介紹了通訊系統(tǒng)中各種調制方式的原理,然后對 qpsk 的應用進行 了介紹,并與二進制調制相比說明其特點;重點是對 qpsk 的調制原理進行闡述。 首先,描述了 qpsk 的矢量圖,然后介紹碼元與載波相位的關系。再者,對 qpsk 的兩種調制方法進行重點闡述。最后對 qpsk 的碼元與波形的對應關系和 qpsk 的特點進行簡單說明。通過用 matlab 和 visual c+對這一過程進行編程 設

6、計來實現了 qpsk 調制的全過程。 使用 matlab 實現 qpsk 的調制,這部分是 程序的核心。由于 matlab 在對程序顯示部分的控制有不足之處,所以這部分在 visual c+中實現,visual c+充分彌補了這一點,因此本文利用 matlab 和 visual c+混合編程實現 qpsk 調制。 關鍵詞: qpsk/ matlab/ visual c+ design and realization of qpsk modulator abstract qpsk stands for quadrature phase shift keying .it is a kind of

7、digial modulation methods. with the development of the society, the place of communication system is becoming more and more important. now the qpsk communication system which is one of the communication systems has been widely used in wireless communications and has become a very important one in th

8、e modern communication. this paper introduces the various modulation communication system principles, and then introduces the application of qpsk, andc introduces its characteristics by comparing with the binary modulation; the key is to describe qpsk modulation principle. first, it describes the ve

9、ctor picture of qpsk, and then introduces the relationship of symbol and carrier phase. furthermore, the focus of the two qpsk modulation method are described highly. finally, the corresponding relations of the symbol of the qpsk and the characteristics of qpsk waveform and the character of the qpsk

10、 are simply introduced. by using matlab and visual c + + language, this process is designed and programmed to implement the entire process of qpsk modulation. this part that qpsk modulation using matlab implementation is the heart of the program. because matlab is inadequate in the controllong of di

11、splay, so visual c + + is used to implement the part of display. therefore, this paper combines matlab and visual c + + to achieve qpsk modulation. keywords : qpsk , matlab, visual c+ 1 緒論 隨著通信技術日新月異的發(fā)展,尤其是數字通信的快速發(fā)展越來越普及, 研究人員對其相關技術投入了極大的興趣。為使數字信號能在帶通信道中傳輸, 必須用數字信號對載波進行調制,其調制方式與模擬信號調制相類似。根據數 字信號控制載波

12、的參量不同也分為調幅、調頻和調相三種方式。因數字信號對 載波參數的調制通常采用數字信號的離散值對載波進行鍵控,故這三種數字調 制方式被稱為幅移鍵控(ask) 、頻移鍵控(fsk)和相移鍵控(psk) 。經調制后 的信號,通過信道傳輸,在接收端解調后恢復成數字信號。因此,調制解調技 術是實現現代通信的重要手段,促進通信的快速發(fā)展。 四相相移鍵控(qpsk)方式已經在數字調制技術中占有越來越重要的地位, 該調制方式廣泛應用于衛(wèi)星通信、電纜調制解調、視頻會議系統(tǒng)、蜂窩電話和 其他數字通信等領域。它具有適中的頻譜利用率,很低的比特錯誤率。由于高 速數字信號處理器(如 ti 公司 tms320 系列)的

13、廣泛應用,為數字方式實現調制 解調器提供了有利的條件,同時省去了大量的硬件電路,如環(huán)型濾波器,vco 等。在 dsp 技術的支持下很容易實現。在衛(wèi)星數字電視傳輸中普遍采用的 qpsk 調諧器,可以說是當今衛(wèi)星數字電視傳輸中對衛(wèi)星功率、傳輸效率、抗干擾性以 及天線尺寸等多種因素綜合考慮的最佳選擇。與二進制數字調相比,多進制調相 有以下兩個特點 : (1) 在相同碼元傳輸速率下,多進制調相的信息傳輸速率顯然比二進制調相 的高,比如,四進制調相的信息傳輸的速率是二進制調相的兩倍。 (2) 在相同的信息速率下,由于多進制碼元的速率比二進制的低,因而多進 制信號碼元的持續(xù)時間要比二進制的長。顯然增大碼元

14、寬度,就會增加碼元的能 量,并能減小由于信道特性引起的碼間干擾的影響等,正是基于這些特點,使多進 制移相鍵控方式獲得了廣泛的應用。 通過此次的調制仿真,使我們對 qpsk 調制的工作原理以及仿真軟件有了比 較深刻的認識和了解。 在當代社會中,信息的交換日益頻繁,隨著通信技術和計算機技術的發(fā) 展及它們的密切結合,通信能克服對空間和時間的限制,大量的、遠距離的信 息傳遞和存取已成為可能。展望未來,通信技術正在向數字化、智能化、綜合 化、寬帶化、個人化方向迅速發(fā)展,各種新的電信業(yè)務也應運而生,正沿著信 息服務多種領域廣泛延伸。 本文首先對 qpsk 的調制原理進行詳細地介紹,然后介紹了調制中使用的軟

15、 件 matlab 和 visual c+,最后重點介紹使用仿真軟件實現 qpsk 調制的具體步 驟和過程。 2 qpsk 調制工作原理 數字相位調制 psk 是角度調制、恒定幅度數字調制的一種方式,通過改變發(fā) 送波的相位來實現,除了其輸入信號是數字信號以及輸出的相位受限制以外,psk 與傳統(tǒng)的相位調制相似。 2.1 qpsk 信號的矢量圖 qpsk 信號的正弦載波有 4 個可能的離散相位狀態(tài),每個載波相位攜帶 2 個二 進制符號,其信號表示式為 : 圖 2-1qpsk 信號的矢量圖 若此載波初始相位為 0的 qpsk 信號的矢量圖如圖 2-1(a)。若初始相位為 45的 qpsk 信號的矢量

16、圖如圖 2-1(b)。 2.2 雙比特碼元與載波相位的關系 qpsk 四相相移調制是利用載波的四種不同相位差來表征輸入的數字信息1, 是四進制移相鍵控。qpsk 是在 m=4 時的調相技術,它規(guī)定了四種載波相位,分 別為 45,135,225,315或者 0,90,180,270,調制器輸入 的數據是二進制數字序列,為了能和四進制的載波相位配合起來,則需要把二 進制數據變換為四進制數據,這就是說需要把二進制數字序列中每兩個比特分 成一組,共有四種組合,即 00,01,10,11,其中每一組稱為雙比特碼元。每 一個雙比特碼元是由兩位二進制信息比特組成,它們分別代表四進制四個符號 中的一個符號。q

17、psk 中每次調制可傳輸 2 個信息比特,這些信息比特是通過載 波的四種相位來傳遞的。如表 2-1 表 2-1 雙比特 ab 與載波相位的關系 雙比特碼元載波相位 ab a 方式b 方式 0 1 1 0 0 0 1 1 0 90 180 270 225 315 45 135 2.3 qpsk 信號產生的兩種原理圖 圖 2-2 相位選擇法產生 qpsk 信號原理圖 從表 2-1 可以看出,每一對碼元對應 qpsk 信號為載波四個相位中的某一個。 因此,可以用相位選擇法產生 qpsk 信號,其原理圖如圖 2-2 所示。圖中,四相 載波產生器輸出 qpsk 信號所需的四種不同相位的載波。輸入二進制數

18、據流經串 /并變換器輸入雙比特碼元,邏輯選相電路根據輸入的雙比特碼元,每個時間間 隔選擇其中一種相位的載波作為輸出,然后經帶通濾波器濾除高頻分量。 從表達式為:可以看出,qpsk 也可以采 qpsk cos( )sin cc ti tw tq tw t s 用正交調制的方式產生。式中 i(t)是同相支路信號,q(t)是正交支路信號。圖 2-3 給出實現 qpsk 調制的原理。輸入的二進制數字信號經過串并轉換電路分為 兩路速率減半的雙極性信號:同相信號 i(t)和正交信號 q(t),經低通濾波成形 后分別與相互正交的兩路載波信號相乘,然后相加即可得到 qpsk 信號,也可以 采用相位選擇法來實現

19、 qpsk 信號,輸入的二進制數字信號經串并轉換后,成 為雙比特碼元,而載波發(fā)生器產生 4 種不同相位的載波波形,根據雙比特碼元 的不同組合每個比特周期從 4 種不同相位的載波中選擇一種輸出,然后經帶 通濾波器濾除帶外干擾信號,就得到 qpsk 信號,這種方式適用于載波頻率較高 的場合。 圖 2-3 qpsk 正交調制器 2.4 雙比特碼元所對應的圖形 設原始數據流為 dk(t)=d0d2d2,取雙極性脈沖序列。其值為+1 或一 12, 分別代表 o 或 1,dk(t)經數據分離器分成奇偶兩路,di(t)=d0d2d4和 dq(t) =d1d3d5,每路的碼元寬度擴展為 2t。其中,奇數路數據

20、 d0(t)經過時延送入 o 信道,對載波 sinct 進行二相調制;偶數路數據 di(t)送入 i 信道,對載波 cosct 進行二相調制。然后 2 個信號相加得到四相信號。碼元轉換時,qpsk 信號的相位可能產生 90的跳變,也可能產生 180的跳變,前者發(fā)生在 2 個 信道的一路數據改變極性時,后者發(fā)生在 2 個信道的數據同時改變極性時。 圖 2-4 為 f=2 時,雙比特碼元所對應的圖形。 圖 2-4 雙比特碼元所對應的波形 2.5 qpsk 的特點 四相相移調制是利用載波的四種不同相位差來表征輸入的數字信息,是四 進制移相鍵控。qpsk 是在 m=4 時的調相技術,它規(guī)定了四種載波相

21、位,分別為 45,135,225,275,調制器輸入的數據是二進制數字序列,為了能和 四進制的載相位配合起來,則需要把二進制數據變換為四進制數據,這就是說 需要把二進制數字序列中每兩個比特分成一組,共有四種組合,即 00,01,10,11,其中每一組稱為雙比特碼元。每一個雙比特碼元是由兩位二 進制信息比特組成,它們分別代表四進制四個符號中的一個符號。qpsk 中每次 調制可傳輸 2 個信息比特,這些信息比特是通過載波的四種相位來傳遞的。解 調器根據星座圖及接收到的載波信號的相位來判斷發(fā)送端發(fā)送的信息比特。 數字調制用“星座圖”來描述,星座圖中定義了一種調制技術的兩個基本 參數:(1)信號分布;

22、(2)與調制數字比特之間的映射關系。星座圖中規(guī)定 了星座點與傳輸比特間的對應關系,這種關系稱為“映射” ,一種調制技術的特 性可由信號分布和映射完全定義,即可由星座圖來完全定義。 首先將輸入的串行二進制信息序列經串并變換,變成 m=log2m 個并行數 據流,每一路的數據率是 r/m,r 是串行輸入碼的數據率。i/q 信號發(fā)生器將每 一個 m 比特的字節(jié)轉換成一對(a,b)數字,分成兩路速率減半的序列,電平 發(fā)生器分別產生雙極性二電平信號 i(t)和 q(t),然后對 coswct 和 sinwct 進行 調制,相加后即得到 qpsk 信號。 qpsk 是一種頻譜利用率高、抗干擾性強的數調制方

23、式, 它被廣泛應用于各 種通信系統(tǒng)中. 適合衛(wèi)星廣播。例如,數字衛(wèi)星電視 dvb2s 標準中,信道噪聲 門限低至 4. 5 db,傳輸碼率達到 45m b/s,采用 qpsk 調制方式,同時保證了 信號傳輸的效率和誤碼性能。 3 設計中使用的工具軟件簡介 3.1 matlab 語言簡介介 簡介簡介 matlab 是一種用于算法開發(fā)、數據可視化、數據分析以及數值計算的高3級 技術計算語言和交互式環(huán)境。使用 matlab,您可以較使用傳統(tǒng)的編程語言(如 c、c+ 和 fortran)更快地解決技術計算問題。 matlab 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設計、 測試和測量、財務

24、建模和分析以及計算生物學等眾多應用領域。附加的工具箱 (單獨提供的專用 matlab 函數集)擴展了 matlab 環(huán)境,以解決這些應用領 域內特定類型的問題。 matlab 提供了很多用于記錄和分享工作成果的功能??梢詫⒛?matlab 代碼與其他語言和應用程序集成,來分發(fā)您的 matlab 算法和應用。 主要功能:主要功能: (1)此高級語言可用于技術計算 (2)此開發(fā)環(huán)境可對代碼、文件和數據進行管理 (3)交互式工具可以按迭代的方式探查、設計及求解問題 (4)數學函數可用于線性代數、統(tǒng)計、傅立葉分析、篩選、優(yōu)化以及數值積分 等 (5)二維和三維圖形函數可用于可視化數據 (6)各種工具可

25、用于構建自定義的圖形用戶界面 (7)各種函數可將基于 matlab 的算法與外部應用程序和語言(如 c、c+、fortran、java、com 以及 microsoft excel)集成 現在 matlab 已經正式發(fā)布了 matlab r2011a 最新版,功能是越來越強大。 本實驗用的是 matlab r2007a 版。 3.23.2 matlabmatlab 的特點的特點 matlab 具有以下幾個特點: (1)功能強大的數值運算功能。 (2)強大的圖形處理能力 。 (3)高級但簡單的程序環(huán)境 。 (4)豐富的工具箱。 3.3 visual c+簡單介紹 簡介簡介 microsoft v

26、isual c+是 microsoft 公司推出的開發(fā) win32 環(huán)境程序,面向對象的 4可視化集成編程系統(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫 和界面設計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設置就可使其生成 的程序框架支持數據庫接口、 ole2,winsock 網絡、3d 控制界面。 它以擁有“語法高亮”,intellisense(自動編譯功能)以及高級除錯 功能而著稱。比如,它允許用戶進行遠程調試,單步執(zhí)行等。還有允許用戶 在調試期間重新編譯被修改的代碼,而不必重新啟動正在調試的程序。其編 譯及建置系統(tǒng)以預編譯頭文件、最小重建功能及累加連結著稱。這些特征

27、明 顯縮短程式編輯、編譯及連結的時間花費,在大型軟件計劃上尤其顯著。 3.4 c+主要特點 c+是一種混合型程序設計語言,它既不像 basic 那樣是面向過程的程序設 5計,也不像 java 那樣是面向對象的程序設計,而是將兩者統(tǒng)一,既支持面向 對象又支持面向過程。c+既適合作為系統(tǒng)軟件的描述語言,也適于編寫應用軟 件。作為程序設計語言,c+的目標是為程序員的程序開發(fā)提供一個優(yōu)良的工具, 以編寫出模塊化程度高、可重用性和可維護性俱佳的程序,因此,可以說 c+ 是程序員的語言。 對比 c 語言,c+的錯誤檢查機制更勝一籌,它提供了專門的機制檢查類, 更適合大、中型程序的開發(fā),同時,c+非常強調代

28、碼的有效性和緊湊性。事實 表明,c+語言可用于 c 語言曾經使用的所有場合,且效果比 c 語言好的多。 利用 visual c+編制 c+程序。 visual c+提供了 win32 console application 項目類型,用它可以在 windows 環(huán)境中的 dos 環(huán)境下運行程序。建立 win32 console application 項 目的步驟如下: (1)執(zhí)行“file”/“new”菜單命令,在彈出的“new”對話框中找到左 側的項目類型列表,然后在列表中選擇“win32 console application”列表項, 在右側的“l(fā)ocation”和“project n

29、ame”編輯框中分別輸入路徑和項目名稱, 單擊“ok”按鈕,進入“win32 console application step-1of1”對話框,選 擇“an simple application”項。 (2)單擊“finish”按鈕完成項目的建立。 (3)此時,項目里只有 globals 中存在全局函數 main(),它也是程序的 入口,剩下的就是根據用戶的需要編寫代碼了。 (4)代碼編寫完成后,執(zhí)行“build”/“execute”菜單命令,如果沒有 錯誤,就可以運行了。 4 用 matlab 與 visual c+混合編程設計 qpsk 調制器 本設計是從 wav 文件中讀取數據,轉換為

30、二進制數,然后實現 qpsk 的調制, 并顯示其數字圖像。 4.1 wave 文件介紹 wave 文件作為多媒體中使用的聲波文件格式之一,它是以 riff 格式為標 準的。riff 是英文 resource interchange file format 的縮寫,每個 wave 文 件的頭四個字節(jié)便是riff。wave 文件由文件頭和數據體兩大部分組成。其中 文件頭又分為 riffwav 文件 標識段和聲音數據格式說明段兩部分。wave 文 件各部分內容及格式見附表。 常見的聲音文件主要有兩種,分別對應于單聲道(11.025khz 采樣率、 8bit 的采樣值)和雙聲道(44.1khz 采樣率

31、、16bit 的采樣值) 。采樣率是指: 聲音信號在模數轉換過程中單位時間內采樣的次數。 采樣值是指每一次采 樣周期內聲音模擬信號的積分值。 對于單聲道聲音文件,采樣數據為八位的短整數(short int 00h-ffh) ; 而對于雙聲道立體聲聲音文件,每次采樣數據為一個 16 位的整數(int) ,高八 位和低八位分別代表左右兩個聲道。 wave 文件數據塊包含以脈沖編碼調制(pcm)格式表示的樣本。wave 文件 是由樣本組織而成的。在單聲道 wave 文件中,聲道 0 代表左聲道,聲道 1 代表 右聲道。在多聲道 wave 文件中,樣本是交替出現的。 表 4-1 wave 文件格式說明

32、表 偏移地 址 字節(jié)數數據類 型 內容 00h4char “riff”標志 044long int 文件長度 084char “wave”標志 0ch4char “fmt”標志 頭 10h4 過渡字節(jié)(不定) 14h2int 格式類別(10h 為 pcm 形式的聲音數據) 16h2int 通道數,單聲道為 1,雙聲道為 2 18h2int 采樣率(每秒樣本數) ,表示每個通道的播放速度 1ch4long int 波形音頻數據傳送速率,其值為通道數每秒數據位數 每樣本的數據位數/8.播放軟件利用此值可以估計緩 沖區(qū)的大小。 20h2int 數據塊的調整數(按字節(jié)算的) ,其值為通道數每樣 本的數

33、據位值/8。播放軟件需要一次處理多個該值大小 的字節(jié)數據,以便將其值用于緩沖區(qū)的調整, 22h2 每樣本的數據位數,表示每個聲道中各個樣本的數據位 數。對每個聲道而言,樣本大小都一樣。 24h4char 數據標記符“data” 文 件 28h4long char 語音數據的長度 表 4-2 pcm 數據的存放方式 樣本 1樣本 2 8 位單聲 道 0 聲道0 聲道 8 位立體 聲 0 聲道(左)1 聲道(右)0 聲道(左)1 聲道(右) 16 位單聲 道 0 聲道低字節(jié)0 聲道高字節(jié)0 聲道低字節(jié)0 聲道高字 節(jié) 16 位立體 音 0 聲道(左)低字 節(jié) 1 聲道(右) 高字節(jié) 0 聲道(左)

34、低字節(jié)1 聲道(右 高字節(jié) wave 文件的每個樣本值包含在一個整數 i 中,i 的長度為容納指定樣本長 度所需的最小字節(jié)數。首先存儲低有效字節(jié),表示樣本幅度的位放在 i 的高有 效位上,剩下的位置為 0,這樣 8 位和 16 位的 pcm 波形樣本的數據格式如下所 示。 表 4-3 8 位和 16 位的 pcm 波形樣本的數據格式 樣本大小數據格式最大值最小值 8 位 pcm unsigned int2250 16 位 pcm int32767-32767 分析 wave 頭的代碼 wave 文件頭(pcm 格式) field size type description - chunkid

35、4 char riff標志 chunksize 4 long int 文件長度(wave 文件的大小, 不含前 8 個 字節(jié)) format 4 char wave標志 subchunk1id 4 char fmt 標志 subchunk1size 4 過渡字節(jié)(不定) audioformat 2 short int 格式類別(1 為 pcm 格式的聲音數據) numchannels 2 short int 通道數(單聲道為 1, 雙聲道為 2) samplerate 4 long int 采樣率(每秒樣本數), 表示每個通道的播 放速度一般情況是每秒采樣 44100 次 byterate 4

36、 long int 波形音頻數據傳輸速率, 其值為:通道數* 每秒數據位數*每樣本的數據位數/8 播放軟件可以利用該值估計緩沖區(qū)大小 blockalign 2 short int 每樣本的數據位數(按字節(jié)算), 其值為:通 道數*每樣本的數據位值/8, 播放軟件需 要一次處理多個該值大小的字節(jié)數據, 以 便將其值用于緩沖區(qū)的調整 每樣本占幾個字節(jié) : numchannels * 16/8 bitspersample 2 樣本的數據位數, 表示每個聲道中各個樣 本的數據位數. 如果有多個聲道, 對每個聲道而言, 樣本大小都一樣 就是分辨率, 一般是 16 位, 8 位也有但是 要少一些. sub

37、chunk2id 4 char 數據標記data subchunk2size 4 long int 語音數據的長度 4.2 visual c+中調用 matlab *.m 函數編譯后的動態(tài)鏈接庫 matlab是當前應用最為廣泛的數學軟件,具有非常強大的數值計算、數據 分6析處理、系統(tǒng)分析、圖形顯示甚至符號運算等功能。它為用戶提供了一種 比其它工具更為簡潔、自由、移值性好的編程環(huán)境。利用這一完整的數學平臺, 用戶可以快速實現十分復雜的功能,極大地提高工程分析計算的效率。但與其 它高級程序相比,matlab程序是一種解釋執(zhí)行序,不用編譯等預處理,因此 matlab程序運行速度較慢。 cc+語言是目

38、前最為流行的高級程序設計語言之一。它可對操作系統(tǒng)和 應用程序以及硬件進行直接操作,cc+語言明顯優(yōu)于其它解釋型高級語言, 一些大型應用軟件如matlab就是用c語言開發(fā)的。在工程實踐中,用戶有時需要 在matlab環(huán)境中調用已編寫的cc+代碼,有時需要在cc+中調用matlab編 寫的數值處理、矩陣運算等代碼,這就產生了matlab和cc+混合編程的問題。 因此,本文基于常用的matlab2007和vc60開發(fā)環(huán)境,在windows平臺下就它們 之間的混合編程問題cc+調用matlab方面進行深入研究。 4.2.1 對 matlab 的編譯環(huán)境進行配置,并編寫*.m 文件和生成動態(tài) 鏈接文件

39、在matlab與cch混合編程之前,必須先對matlab的編譯應用程序mex和編 譯器mbuild進行正確的設置: 一、對matlab編譯應用程序mex的設置: mex -setup please choose your compiler for building external interface (mex) files: would you like mex to locate installed compilers y/n? y select a compiler: 1 lcc-win32 c 2.4.1 in d:progra1matlab1syslcc 2 microsoft vi

40、sual c+ 6.0 in d:program filesmicrosoft visual studio 0 none compiler: 2 please verify your choices: compiler: microsoft visual c+ 6.0 location: d:program filesmicrosoft visual studio are these correct?(y/n): y trying to update options file: c:usersxuappdataroamingmathworksmatlabr2007amexopts.bat fr

41、om template: d:progra1matlab1binwin32mexoptsmsvc60opts.bat done . . . (按系統(tǒng)提示進行選擇) 二、對matlab編譯器mbuild的設置: mbuild -setup please choose your compiler for building standalone matlab applications: would you like mbuild to locate installed compilers y/n? y select a compiler: 1 lcc-win32 c 2.4.1 in d:progr

42、a1matlab1syslcc 2 microsoft visual c+ 6.0 in d:program filesmicrosoft visual studio 0 none compiler: 2 please verify your choices: compiler: microsoft visual c+ 6.0 location: d:program filesmicrosoft visual studio are these correct?(y/n): y trying to update options file: c:usersxuappdataroamingmathw

43、orksmatlabr2007acompopts.bat from template: d:progra1matlab1binwin32mbuildoptsmsvc60compp.bat done . . . - d:progra1matlab1binwin32mwregsvr d:progra1matlab1binwin32mwcomutil.dll dllregisterserver in d:progra1matlab1binwin32mwcomutil.dll succeeded - d:progra1matlab1binwin32mwregsvr d:progra1matlab1bi

44、nwin32mwcommgr.dll dllregisterserver in d:progra1matlab1binwin32mwcommgr.dll succeeded (按提示選擇即可) 三、編寫qpsk.m文件,并生成動態(tài)鏈接庫文件 %qpsk.m文件 function qpsk(g) l=length(g); f=2; t=0:2*pi/99:2*pi; cp=;sp=; mod=;mod1=;bit=; for n=1:2:l if g(n)=0 die=sqrt(2)/2*ones(1,100); die1=-sqrt(2)/2*ones(1,100); se=ones(1,10

45、0); elseif g(n)=0 die=-sqrt(2)/2*ones(1,100); die1=-sqrt(2)/2*ones(1,100); se=zeros(1,100); elseif g(n)=1 die=-sqrt(2)/2*ones(1,100); die1=sqrt(2)/2*ones(1,100); se=2*ones(1,100); elseif g(n)=1 die=sqrt(2)/2*ones(1,100); die1=sqrt(2)/2*ones(1,100); se=3*ones(1,100); end c=cos(f*t-pi/4); s=-sin(f*t-p

46、i/4); cp=cp die; sp=sp die1; mod=mod c; %余弦載波(q) mod1=mod1 s; %正弦載波 (i) bit=bit se; end qpsk=cp.*mod+sp.*mod1; subplot(2,1,1); plot(bit,linewidth,1.5); title(binary signal) axis(0 50*l -0.2 3.2); grid on; subplot(2,1,2); plot(qpsk,color,r,linewidth,1.5) axis(0,50*l,-2.2,3.2) title(qpsk modulation) h

47、old on plot(bit,color,g,linewidth,1.5); hold off grid on 在matlab命令窗口輸入:mcc b csharedlib:libqpsk qpsk.m生成動態(tài)鏈 接庫文件如圖4-1: 圖4-1 動態(tài)鏈接庫文件 4.2.2 visual c+調用 matlab 生成的庫文件 一、創(chuàng)建一個visual c+單文檔的工程wave,并對其選項進行設置 選擇:工具-選項,屬性頁選擇“目錄”,在include files里面加入: d:program filesmatlabr2007aexterninclude, d:program filesmatl

48、abr2007aexternincludewin32; 然后在library files里面加入: d:program filesmatlabr2007aexternlibwin32microsoft; 注意:根據用戶的matlab安裝位置,修改相應目錄。 在vc中選擇:工程設置,選擇屬性表link選項,下拉菜單中選擇 input,在對象庫模塊中加入libemlrt.lib libmex.lib libut.lib mclmcrrt.lib libeng.lib libmwlapack.lib mclcom.lib mclxlmain.lib libfixedpoint.lib libmwse

49、rvices.lib mclcommain.lib libdflapack.lib libmat.lib libmx.lib mclmcr.lib libqpsk.lib,注意用空格將它們格開;這 些庫文件在externlibwin32microsoft目錄下,其中 libqpsk.lib為上述步驟中由matlab編譯器生成的文件之一。 將libqpsk.dll復制到windows系統(tǒng)目錄(system或者system32)或者wave 工程的debug目錄下,將libqpsk.h、 libqpsk.lib、 libqpsk.ctf文件復制到 wave工程的源文件目錄下,并將libqpsk.h

50、文件添加到工程中。 在wave按鈕響應函數所在文件中添加如下的頭文件:#include“l(fā)ibqpsk.h 。(這里是在cmainframe的頭文件中) 為菜單欄添加兩個下拉菜單“二進制”和“十六進制”,其id分別命名為 id_view_res和id_view_res2,如圖4-2和圖4-3所示。 通過classwizard在cmainframe中添加其消息響應。 圖4-2 二進制子菜單屬性設置 圖4-3 添加二進制與十六進制子菜單 在消息響應中分別加入的下列代碼: (1)查看文件的二進制數據; (2)十六進制轉化為二進制; (3)查看文件的十六進制數據; 其結果如圖4-4和圖4-5所示: 圖

51、4-4 讀取的二進制數據 圖4-5讀取的十六進制數據 另外為工具欄添加一個按鈕,其id分別命名為id_on_next,如圖4-6所示。 通過classwizard在cmainframe中添加其消息響應 圖4-6 工具欄添加一個按鈕并設置屬性 在消息響應中加入調用mlfqpsk函數,其結果如圖4-7所示: 圖4-7 調制后碼元對應的波形 此時還可以通過findwindow、modifystyle和movewindow函數將生成的 matlab圖形繪制窗口嵌入到cwaveview窗口中,這樣在某些情況下可以使整個程 序的運行風格更加協調。 為此,添加一個工具欄按鈕id_plotinview,并為c

52、waveview添加一個公有 變量hwnd m_ploth,通過選擇view|classwizard菜單項為cwaveview添加一個按 鈕id_plotinview的消息響應函數,并為此消息響應函 cwaveview:onplotinview()添加如下代碼。 為了使matlab窗口的大小能夠隨其父窗口客戶區(qū)大小的變化而變化,重載 cwaveview wm_size消息的處理函數onsize。 重新編譯運行wave工程后,點擊按鈕“下一個”,再點擊最后一個按鈕, 將matlab圖形嵌入到wave窗口中,繼續(xù)點擊“下一個”按鈕,就會出現圖4-8。 圖 4-8 調制后碼元對應的波形 總結 通過半

53、個學期的努力,終于在6月初完成了畢業(yè)設計。在做畢業(yè)設計期間, 我得到老師和同學的大力幫助,這使我深深的體會到團結協助的力量.通過做畢 業(yè)設計,鍛煉了我獨自完成一件事的能力,提高了自我約束力,為走上工作崗 位起到了橋梁作用。 通過這次畢業(yè)設計,使我得到許多心得和體會。首先,通過自己的積極動 手動腦,使我對matlab軟件及visual c+軟件有了進一步了解和掌握。其次,通 過自己的編程,使我更進一步掌握兩種語言,充分利用兩種的優(yōu)勢,形成優(yōu)勢 互補,使編程簡單一些,效率更高。再者,使我體會到“盡信書則不如無書” 和“紙上得來終覺淺,絕知此事要躬行”的真諦。 在做matlab與visual c+混

54、合編程時,我發(fā)現許多問題。 1)課本的前后聯系問題。在做visual c+中調用matlab *.m函數編譯后 的動態(tài)鏈接庫時,動態(tài)庫文件的路徑設置這一點,書上沒提到,但前 面提到了,所以前后結合,溫故而知新。 2)課本的不全面。在調用mlfqpsk函數時,總是出現函數無定義的問題。 這個問題我調了好久才解決,通過對課本例子程序的查找,發(fā)現需要 在cmainframe的頭文件添加#include”libqpsk.h”. 3)如果你按上述步驟做,是不是編譯和鏈接都沒有錯誤,但還是出現不 了結果。為什么呢?這一點耽誤我的時間最長,讓幾個編程比較好的 同學查找問題,也沒能解決。幸虧有例子源程序代碼,

55、通過對matlab 生成文件和工程文件的對比,發(fā)現在debug文件夾下缺少一個*.ctf文 件。最終才解決問題,出現結果。 qpsk調制器的設計和實現”對于老師來說可能是一個老題目,但對我來說 還是很新鮮,盡管以前學過qpsk調制的原理知識,但編程的方法對qpsk的設 計還是第一次,這不僅加深了我最對qpsk調制理論的認識和理解,也使我懂得 了如何對一個理論進行自己的研究或驗證。 致 謝 經歷了一個學期的畢業(yè)設計,在這段時間里,它不僅僅使我學到了寶貴的 專業(yè)知識,更重要的是它使我學到了怎樣去獨立思考問題,解決問題,大大提 高了我自己的動手能力和操作能力,為我今后的工作奠定堅實的基礎。 本文從選

56、題的確定,論文的寫作、修改到最后定稿得到了我的指導老師的 悉心指導。特別是她多次詢問寫作進程,并為我指點迷津,幫助我開拓思路, 精心點撥,熱忱鼓勵。她嚴肅的教學態(tài)度,嚴謹的治學精神,精益求精的工作 作風深深地感染和激勵著我。在此,謹向何老師致以誠摯的謝意和崇高的敬意。 感謝所有在畢業(yè)設計中曾經幫助過我的良師益友和同學,以及在設計中被 我引用或參考的論著的作者,謝謝! 在這次編寫設計報告中,由于時間的緊促和編寫者的專業(yè)知識的有限,再 加上我們缺少實踐經驗,對使得所寫的畢業(yè)論文的知識覆蓋面有很大的局限性, 而且報告中難免有很多不妥之處,所以我懇請各位指導老師能夠給予批評指正。 參考文獻 1 張輝,

57、曹麗娜. 現代通信原理與技術m. 西安:西安電子科技大學出版社,2008.7,189- 227 2 樊昌信.通信原理m.北京:國防工業(yè)出版社,2010,180-233 3 matlab 程序設計與應用/劉衛(wèi)國,陳昭平,張穎。-北京:高等教育出版社,2002.6 4 visual c+程序設計基礎教程/李春葆,章啟俊 。武漢大學出版社,2006.5 5 visual c+ 6.0實用教程/鄒箏,康曉琳,袁建洲等編著,-北京:電子工業(yè)出版社, 2008.1 6 精通matlab與c+混合程序設計/劉維編著,-2版。北京:北京航空航天大學出版社, 2008.1,(前五章內容) 8 王立宇、樂光新、詹

58、菲.matlab與通信仿真北京:人民郵電出版社 10 徐明遠,邵玉斌. matlab仿真在通信與電子工程中的應用m,西安:西安電子科技 大學出版社, 2005 11 鄧華等. matlab通信仿真及應用實例詳解j. 北京:人民郵電出版社,2003 12 danilowicz c,nguyenh cusirlg user profiles in intelligent information retrievalcproc ofthe 13th intemational symposium on methodologies for intelligent systemsberlin,germany

59、: springer-verlag,2002. 13 張明照,劉政波,劉斌等. matlab實現信號分析和處理j. 北京:科學出版社, 2006 14 chen c m,hsieh y l,hsu s hmining le 啪 er profile utilizing association rule for web- based learning diagnosisjexpert systerns with applications,2007 15 朱衡君,肖燕彩,邱成. matlab 語言及實踐教程j. 北京:北京交通大學出版社, 2005 16 李霞. 電子與通信專業(yè)英語m. 電子工業(yè)出

60、版社,2005 17 趙萱、鄭仰成.科技英語翻譯-北京:外語教學與研究出版社,2006.4 附錄 mfc 程序 程序一 / mainfrm.h : interface of the cmainframe class / / #if !defined(afx_mainfrm_h_5bf7d414_2943_4d54_ac11_838d6a59abf7_included _) #define afx_mainfrm_h_5bf7d414_2943_4d54_ac11_838d6a59abf7_included_ #if _msc_ver 1000 #pragma once #endif / _ms

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論