版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文) </b></p><p> 課 題: 虛擬信號(hào)發(fā)生器的研究與設(shè)計(jì) </p><p> 專 業(yè): 自動(dòng)化 </p><p> 班 級(jí): 一班 </p>
2、;<p> 學(xué)生姓名: </p><p> 學(xué) 號(hào): </p><p> 指導(dǎo)教師: </p><p><b> 摘 要</b></p><p> 本文
3、僅就基于LabWindows/CVI虛擬信號(hào)發(fā)生器進(jìn)行設(shè)計(jì),虛擬信號(hào)發(fā)生器利用LabWindows/CVI提供的軟件平臺(tái)以及強(qiáng)大的函數(shù)庫(kù),通過簡(jiǎn)單的單片機(jī)MCU+DDS就可以產(chǎn)生頻帶寬,精度高,幅值、相位和頻率連續(xù)可調(diào)的波形,借助PC機(jī)的網(wǎng)絡(luò)傳輸功能可實(shí)現(xiàn)網(wǎng)絡(luò)控制和信號(hào)處理?;贚abWindows/CVI的虛擬信號(hào)采集卡利用C8051F020微處理器內(nèi)的A/D通道及I/O端口完成虛擬信號(hào)采集,放大處理和數(shù)據(jù)傳輸任務(wù),對(duì)信號(hào)的處理和顯示
4、可由PC機(jī)來完成或由網(wǎng)絡(luò)控制,減少硬件的開支,易于實(shí)現(xiàn)自動(dòng)測(cè)控。最后,在對(duì)本文系統(tǒng)進(jìn)行全面測(cè)試,結(jié)果表明本方案可行,具有較大的通用性。</p><p> 通過虛擬信號(hào)發(fā)生器的設(shè)計(jì),闡述利用labwindows/cvi進(jìn)行虛擬儀器設(shè)計(jì)的方法、步驟和實(shí)現(xiàn)技術(shù),并展望虛擬儀器的廣闊應(yīng)用前景。利用其軟件開發(fā)平臺(tái),按步驟闡述了虛擬信號(hào)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn)過程,最終實(shí)現(xiàn)了信號(hào)發(fā)生器的設(shè)計(jì),該信號(hào)發(fā)生器可以選擇波形以及幅值和頻
5、率。更能可以由用戶根據(jù)需要自行設(shè)計(jì)和擴(kuò)展,人及界面友好。</p><p> 關(guān)鍵詞:信號(hào)發(fā)生器;虛擬儀器;labwindows/cvi</p><p><b> Abstract</b></p><p> The content of this paper is about virtual function signal generato
6、r which is based on LabWindows/CVI and digital signal processor. It includes designing the structure of virtual signal generator which is based on LabWindows/CVI and digital signal processor, which includes hardware and
7、software structure, designing digital signal capture board which is based on C8051F020 and giving network measure and controlling based on TCP/IP and signal processor. Use LabWindows/CVI software platform and powe</p&
8、gt;<p> By the designing of the virtual signal generator,the designing methods,steps and technology of virtual instruments which is based on the labwindows/cvi are acquired,and prospect its wide application,after
9、 introduce the concept of the virtual signal generator,which makes the best use of the soft development platform,giving out the design and the implement steps of the virtual signal generator,and the virtual signal genera
10、tor is carried out finally which can be used to select the waveform 、amplitu</p><p> Keywords: signal generator ;Virtual Instrument ;labwindows/cvi</p><p><b> 目錄</b></p><
11、;p> 第一章緒論- 5 -</p><p> 第二章 LabWindows/CVI簡(jiǎn)介- 7 -</p><p> 2.1 LABWINDOWS/CVI概述- 7 -</p><p> 2.2 LABWINDOWS /CVI的特點(diǎn)- 7 -</p><p> 2.3基于LABWINDOWS /CVI的虛擬儀器構(gòu)成
12、- 9 -</p><p> 2.3.1 儀器硬件平臺(tái)- 9 -</p><p> 2.3.2 虛擬儀器應(yīng)用軟件- 10 -</p><p> 2.4 虛擬儀器的內(nèi)部功能- 10 -</p><p> 2.5 LABWINDOWS /CVI的運(yùn)行環(huán)境- 10 -</p><p> 2.6 虛擬儀器技
13、術(shù)及發(fā)展- 11 -</p><p> 2.6.1 虛擬儀器特點(diǎn)- 11 -</p><p> 2.6.2 虛擬儀器技術(shù)應(yīng)用- 12 -</p><p> 2.6.3 虛擬儀器的發(fā)展- 12 -</p><p> 第三章 虛擬信號(hào)發(fā)生器的理論研究- 13 -</p><p> 3.1虛擬信號(hào)發(fā)生器的
14、基本原理- 13 -</p><p> 3.2.信號(hào)發(fā)生器現(xiàn)狀及發(fā)展- 16 -</p><p> 第四章 虛擬信號(hào)發(fā)生器的設(shè)計(jì)- 18 -</p><p> 4.1 虛擬信號(hào)發(fā)生器設(shè)計(jì)- 18 -</p><p> 4.1.1 虛擬信號(hào)發(fā)生器的工作原理- 18 -</p><p> 4.1.2信
15、號(hào)的頻譜分析- 19 -</p><p> 4.1.3儀器硬件面板設(shè)計(jì)- 20 -</p><p> 4.1.4軟件設(shè)計(jì)(程序設(shè)計(jì))- 24 -</p><p> 4.1.5運(yùn)行程序完成項(xiàng)目文件- 36 -</p><p><b> 總結(jié)- 41 -</b></p><p>
16、致 謝- 43 -</p><p> 參考文獻(xiàn)- 44 -</p><p> 附錄一 英文翻譯資料- 45 -</p><p> 附錄二 程序- 53 -</p><p> ?。ㄒ唬┰谔摂M信號(hào)發(fā)生器面板All Code 產(chǎn)生*.c文件中程序清單:- 53 -</p><p> ?。ǘ┬盘?hào)發(fā)生器完整
17、程序清單:- 55 -</p><p> 附錄三 各函數(shù)的功能和插入方法- 60 -</p><p><b> 緒論</b></p><p> 隨著計(jì)算機(jī)技術(shù)的高速發(fā)展和普及帶動(dòng)了各個(gè)行業(yè)的進(jìn)步,有力地促進(jìn)了多年來發(fā)展相對(duì)緩慢的儀器技術(shù)的飛躍,給儀器儀表領(lǐng)域帶來了深刻的變化;新的測(cè)試?yán)碚摗y(cè)試方法、測(cè)試領(lǐng)域以及儀器結(jié)構(gòu)不斷出現(xiàn),而電
18、子測(cè)量技術(shù)的功能和作用也發(fā)生了質(zhì)的變化。 20世紀(jì)80年代中后期,國(guó)外提出了“虛擬儀器”,“虛擬系統(tǒng)”的概念,隨著微電子技術(shù)、計(jì)算機(jī)技術(shù)的飛速發(fā)展及其在測(cè)量與儀器上的應(yīng)用,測(cè)試領(lǐng)域的新理論、新方法以及儀器結(jié)構(gòu)不斷出現(xiàn)突破了傳統(tǒng)儀器的概念,繼而開創(chuàng)了儀器儀表的新時(shí)代-虛擬儀器。</p><p> 所謂虛擬儀器(Virtual Instrument,簡(jiǎn)稱VI),就是用戶在計(jì)算機(jī)平臺(tái)上,根據(jù)要求定義和設(shè)計(jì)儀器的測(cè)試
19、功能,使得使用者在操作這臺(tái)計(jì)算機(jī)時(shí),就像是在操作一臺(tái)自己設(shè)計(jì)的測(cè)試儀器。需要指出的是,虛擬儀器實(shí)質(zhì)是是一種創(chuàng)新的儀器設(shè)計(jì)思想,但虛擬儀器離不開計(jì)算機(jī)控制,軟件是虛擬儀器設(shè)計(jì)的核心。</p><p> 虛擬儀器的組成包括硬件和軟件兩個(gè)基本要素。虛擬儀器中硬件的主要功能是獲取真實(shí)世界中的被測(cè)信號(hào),而軟件的作用是控制現(xiàn)實(shí)數(shù)據(jù)采集、分析、處理、顯示等功能,并將其集成為儀器操作與運(yùn)行的命令環(huán)境。虛擬儀器的分類可以按照多種
20、分類方法,即可按照應(yīng)用領(lǐng)域,也可按照測(cè)量功能分類,但常按照虛擬儀器的接口總線方式分類。按照總線的接口方式分為:數(shù)據(jù)采集插卡式(DAQ)虛擬儀器、RS232/RS422虛擬儀器、并行接口虛擬儀器、USB虛擬儀器、GPIB虛擬儀器、VXI虛擬儀器、PXI虛擬儀器和最新的IEEE1394接口虛擬儀器。</p><p> 基于LabWindows/CVI的虛擬函數(shù)信號(hào)發(fā)生器、數(shù)據(jù)采集和信號(hào)處理的研究還處于發(fā)展階段,也是
21、國(guó)內(nèi)外研究的重要課題,國(guó)內(nèi)外都正在展開積極的研究。把信號(hào)發(fā)生、數(shù)據(jù)采集和信號(hào)處理集成在一起,利用網(wǎng)絡(luò)對(duì)其進(jìn)行控制和處理,并且在軟硬件的升級(jí)方面有很大的改善空間和靈活性,改變了人們對(duì)儀器的傳統(tǒng)觀念,適應(yīng)了現(xiàn)代測(cè)試系統(tǒng)的網(wǎng)絡(luò)化、智能化發(fā)展趨勢(shì)。就像我們所說的“軟件就是儀器”,他將成為一個(gè)具有廣泛應(yīng)用前景的新興產(chǎn)業(yè)。</p><p> 隨著計(jì)算機(jī)技術(shù)和個(gè)人電腦技術(shù)的出現(xiàn)和發(fā)展,傳統(tǒng)儀器開始向計(jì)算機(jī)化的方向發(fā)展,人們開
22、始考慮使用電腦來處理傳統(tǒng)儀器所測(cè)數(shù)據(jù)。20世紀(jì)80年代,隨著計(jì)算機(jī)技術(shù)的進(jìn)一步發(fā)展,個(gè)人電腦可以帶有多個(gè)擴(kuò)展槽,就出現(xiàn)了插在計(jì)算機(jī)里的數(shù)據(jù)采集卡。它可以金星一些簡(jiǎn)單的數(shù)據(jù)采集,數(shù)據(jù)的后處理由計(jì)算機(jī)軟件完成,這就是虛擬儀器技術(shù)的雛形。1986年,美國(guó)National Instrument公司(以下簡(jiǎn)稱NI公司)提出了“軟件即儀器的口號(hào)”,推出了NI-LabVIEW直觀的流程圖編程風(fēng)格的開發(fā)和運(yùn)行程序平臺(tái),同時(shí)提出了LabWindows/C
23、VI基于C語言的程序化編程風(fēng)格的開發(fā)和運(yùn)行程序平臺(tái),開啟了虛擬儀器的先河。虛擬儀器技術(shù)的提出與發(fā)展,標(biāo)志著二十一世紀(jì)自動(dòng)測(cè)試與電子測(cè)量?jī)x器領(lǐng)域技術(shù)發(fā)展的一個(gè)重要方向。</p><p> 虛擬儀器技術(shù)目前在國(guó)內(nèi)外發(fā)展很快,以美國(guó)國(guó)家儀器公司(NI公司)為代表的一批廠商已經(jīng)在市場(chǎng)上推出了基于虛擬儀器技術(shù)而設(shè)計(jì)的商品化儀器產(chǎn)品。</p><p> 本文圍繞基于LabWindows/CVI的虛
24、擬信號(hào)發(fā)生器的研究與設(shè)計(jì),主要完成以下工作:</p><p> 基于LabWindows/CVI的信號(hào)發(fā)生器的硬件平面設(shè)計(jì)。</p><p> 基于LabWindows/CVI的信號(hào)發(fā)生器的軟件程序設(shè)計(jì)。</p><p> 3. 虛擬信號(hào)發(fā)生器的仿真調(diào)試運(yùn)行結(jié)果。</p><p> 第二章 LabWindows/CVI簡(jiǎn)介</p
25、><p> 1986年,美國(guó)National Instrument公司(以下簡(jiǎn)稱NI公司)提出了“軟件即儀器的口號(hào)”,推出了NI-LabVIEW直觀的流程圖編程風(fēng)格的開發(fā)和運(yùn)行程序平臺(tái),同時(shí)提出了LabWindows/CVI基于C語言的程序化編程風(fēng)格的開發(fā)和運(yùn)行程序平臺(tái),開啟了虛擬儀器的先河。labwindows/cvi軟件,它以ANSI C為核心,功能強(qiáng)大,使用靈活的C語言平臺(tái)與數(shù)據(jù)采集,分析和表達(dá)的測(cè)控專業(yè)的工
26、具有機(jī)的結(jié)合起來。他的集成化開發(fā)平臺(tái),交互式編程方法,豐富的控件和庫(kù)函數(shù)大大增強(qiáng)了C語言的功能,為熟悉C語言的開發(fā)人員建立檢測(cè)系統(tǒng),自動(dòng)測(cè)量環(huán)境,數(shù)據(jù)采集系統(tǒng),過程監(jiān)控系統(tǒng)等提供了一個(gè)理想的軟件開發(fā)環(huán)境。</p><p> 2.1 LabWindows/CVI概述</p><p> LabWindows/CVI是面向儀器與測(cè)控過程的交互式C/C++開發(fā)平臺(tái),它是一個(gè)用C語言構(gòu)建儀器系統(tǒng)
27、的交互式軟件開發(fā)環(huán)境,可以模塊化方式對(duì)C語言進(jìn)行編輯、編譯、連接和調(diào)試。其有以下特點(diǎn):</p><p> 1.交互式程序開發(fā)。</p><p><b> 2.集成開發(fā)平臺(tái)。</b></p><p> 3.功能強(qiáng)大的函數(shù)庫(kù)。</p><p> 4.簡(jiǎn)單直觀的圖形用戶界面設(shè)計(jì)。</p><p>
28、;<b> 5.完善的兼容性。</b></p><p> 6. 多種靈活的程序調(diào)試手段。</p><p><b> 7.網(wǎng)絡(luò)功能。</b></p><p> 2.2 LabWindows/CVI的特點(diǎn)</p><p> LabWindows/CVI作為一個(gè)優(yōu)秀的軟件開發(fā)平臺(tái),和其他虛擬儀器
29、開發(fā)工具相比,具有如下特點(diǎn):</p><p> (1)交互式的程序開發(fā)</p><p> LabWindows/CVI將源代碼編程、32位ANSIC編譯、連接、調(diào)試及標(biāo)準(zhǔn)ANSIC庫(kù)等集成在一個(gè)交互式開發(fā)平臺(tái)中,采用簡(jiǎn)單直觀圖形用戶界面設(shè)計(jì),利用函數(shù)面板輸入函數(shù)參數(shù)的參數(shù),采用事件驅(qū)動(dòng)方式和回調(diào)函數(shù)方式的編程技術(shù),有效的提高了工程設(shè)計(jì)的效率和可靠性。</p><p&
30、gt; (2)功能強(qiáng)大的函數(shù)庫(kù)</p><p> 如接口函數(shù)、信號(hào)處理函數(shù)庫(kù)、Windows SDK(Software Development Kit)、儀器驅(qū)動(dòng)函數(shù)庫(kù)等,利用這些函數(shù)庫(kù)可以輕松實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)采集和儀器控制系統(tǒng)的開發(fā)。同時(shí),LabWindows/CVI附加了各種軟件開發(fā)包,如數(shù)據(jù)庫(kù)軟件包、Internet軟件包、小波分析軟件包等,大大增強(qiáng)了LabWindows/CVI的性能。</p>
31、;<p><b> 靈活的程序調(diào)試手段</b></p><p> LabWindows/CVI提供了單步執(zhí)行、斷點(diǎn)執(zhí)行、過程跟蹤、參數(shù)檢查、運(yùn)行時(shí)內(nèi)存檢查等多種調(diào)試手段。</p><p> LabWindows/CVI以面向虛擬儀器的交互式開發(fā)環(huán)境,滿足看用戶對(duì)軟件不斷變化的要求,在產(chǎn)品的設(shè)計(jì)中,可以快速的創(chuàng)建、配置并顯示測(cè)量。LabWindows
32、/CVI可以自動(dòng)生成代碼、編譯和連接,省去了手工編寫,更有利于系統(tǒng)的開發(fā)。</p><p><b> 開放式的框架結(jié)構(gòu)</b></p><p> 在LabWindows/CVI環(huán)境中,可以結(jié)合使用標(biāo)準(zhǔn)的ANSIC源文件、obj文件和動(dòng)態(tài)鏈接庫(kù)(DLL)。還可以將軟件中的儀器驅(qū)動(dòng)程序庫(kù)與其他標(biāo)準(zhǔn)的C編譯器結(jié)合使用,無需更改開發(fā)工具。同時(shí),可以在不同的工作小組之間共享
33、函數(shù)模塊和虛擬儀器程序。</p><p><b> 集成式的開發(fā)環(huán)境</b></p><p> LabWindows/CVI是集成式的開發(fā)環(huán)境,可用于創(chuàng)建基于DAQ、GPIB、PXI、VXI、串口和以太網(wǎng)的虛擬儀器系統(tǒng)。這一開發(fā)方式結(jié)合了交互式、簡(jiǎn)單易用的開發(fā)方式與ANSIC代碼的強(qiáng)大編寫功能和靈活性。LabWindows/CVI中的交互式開發(fā)工具和函數(shù)庫(kù)可以輕松
34、實(shí)現(xiàn)自動(dòng)化測(cè)試系統(tǒng)、實(shí)驗(yàn)室研發(fā)、數(shù)據(jù)采集監(jiān)視項(xiàng)目、驗(yàn)證測(cè)試和控制系統(tǒng)的設(shè)計(jì)。</p><p> 2.3基于LabWindows/CVI的虛擬儀器構(gòu)成</p><p> 基于LabWindows/CVI虛擬儀器通常由通用儀器硬件平臺(tái)和應(yīng)用軟件兩大部分構(gòu)成。</p><p> 2.3.1 儀器硬件平臺(tái)</p><p> 虛擬儀器的硬件平
35、臺(tái)主要是解決信號(hào)的輸入輸出,由計(jì)算機(jī)和I/O接口設(shè)備兩部分完成。計(jì)算機(jī)一般為一臺(tái)PC或工作站,它是硬件平臺(tái)的核心。I/O接口設(shè)備主要負(fù)責(zé)被測(cè)輸入信號(hào)的采集、放大和A/D轉(zhuǎn)換。根據(jù)采用不同的總線及其相應(yīng)的I/O接口硬件設(shè)備,如PC總線的數(shù)據(jù)采集卡/板(DAQ)、GPIB總線儀器模塊、VXI總線儀器模塊和串口總線儀器等,虛擬儀器的構(gòu)成只要分為5中類型,如圖1-1所示</p><p> 圖2-1 虛擬儀器結(jié)構(gòu)框圖&l
36、t;/p><p> 上述各種虛擬儀器系統(tǒng)都是通過應(yīng)用軟件將儀器硬件與計(jì)算機(jī)相結(jié)合構(gòu)成的,其中,串口測(cè)試系統(tǒng)是構(gòu)成虛擬儀器的最簡(jiǎn)單、最基本的方式。</p><p> 本文中的硬件由工控機(jī)及其接口,數(shù)據(jù)采集卡和放大及濾波電路構(gòu)成,其原理框圖如圖2-2所示:</p><p><b> 圖2-2 原理框圖</b></p><p&g
37、t; 2.3.2 虛擬儀器應(yīng)用軟件</p><p> 虛擬儀器軟件由應(yīng)用程序和I/O接口儀器驅(qū)動(dòng)程序兩大部分構(gòu)成。</p><p> 應(yīng)用程序包含兩個(gè)方面:</p><p> 實(shí)現(xiàn)虛擬儀器面板的流程圖軟件程序。</p><p> 定義測(cè)試功能的流程圖軟件程序。</p><p> I/O接口儀器驅(qū)動(dòng)程序完成特
38、定的外部硬件設(shè)備的擴(kuò)展、驅(qū)動(dòng)和通信。</p><p> 2.4 虛擬儀器的內(nèi)部功能</p><p> 虛擬儀器的內(nèi)被功能可以化分為:輸入信號(hào)的測(cè)量、數(shù)據(jù)分析處理和結(jié)果顯示三大部分。</p><p> 輸入信號(hào)的測(cè)量將模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)并輸入到計(jì)算機(jī)中。</p><p> 數(shù)據(jù)分析處理充分利用了計(jì)算機(jī)的存儲(chǔ)和運(yùn)算功能,并通過軟件實(shí)現(xiàn)
39、對(duì)輸入信號(hào)數(shù)據(jù)的分析處理。處理內(nèi)容包括數(shù)字信號(hào)處理、數(shù)字濾波、統(tǒng)計(jì)處理、數(shù)值計(jì)算與分析等。</p><p> 結(jié)果顯示充分利用了計(jì)算機(jī)資源,其測(cè)量結(jié)果數(shù)據(jù)的表達(dá)與輸出方式有多種方式。例如,虛擬儀器可以通過總線網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸、通過文件將測(cè)試數(shù)據(jù)存于硬盤內(nèi)存中、計(jì)算機(jī)屏幕顯示或圖形用戶接口。</p><p> 2.5 LabWindows/CVI的運(yùn)行環(huán)境</p><
40、p> 在LabWindows/CVI軟件平臺(tái)設(shè)計(jì)完成的虛擬儀器軟件由四個(gè)文件組成,如圖1-2所示。</p><p> 圖2-3 用LabWindows/CVI設(shè)計(jì)的虛擬儀器軟件組成</p><p> 1.*.prj文件:工程文件,由*.uir文件、*.c文件和*.h文件組成。</p><p> 2.*.c文件:源程序文件,此文件為標(biāo)準(zhǔn)的C語言程序文件。
41、文件由上部分組成,即頭文件(*.h)、主程序文件(Main)和回調(diào)函數(shù)(CallBack),其結(jié)構(gòu)和C語言的結(jié)構(gòu)一致。</p><p> 3.*.uir文件:用戶界面文件,該文件為虛擬儀器的面板文件,類似VB或VC中的窗體文件。該文件中包含儀器面板中的各類控件,如按鈕、開關(guān)等,每個(gè)控件都有自己的屬性,如按鈕的名稱,面板的標(biāo)題、長(zhǎng)度、位置等。同時(shí)控件還有事件,當(dāng)有鼠標(biāo)單擊控件或用鍵盤改變控件時(shí),將調(diào)用相應(yīng)的回調(diào)函
42、數(shù),完成相應(yīng)的功能,如完成數(shù)據(jù)處理、存盤、顯示、打印等功能。</p><p> 4.*.h文件:頭文件,與C中的*.h文件結(jié)構(gòu)完全一致在LabWindows/CV中,*.h文件是自動(dòng)生成的,當(dāng)設(shè)計(jì)完*.uir文件后,會(huì)自動(dòng)生成*.h文件。</p><p> 為設(shè)計(jì)完成上述4個(gè)文件,LabWindows/CVI開發(fā)環(huán)境提供了4個(gè)主要的界面窗口:工程文件編輯窗口(Project Windo
43、w)、用戶界面編輯窗口(User interface Editor Window)、源代碼文件編輯窗口(Source Window)和函數(shù)面板編輯窗口(Function Panel Window)。</p><p> 2.6 虛擬儀器技術(shù)及發(fā)展</p><p> 2.6.1 虛擬儀器特點(diǎn)</p><p> 虛擬儀器是計(jì)算機(jī)技術(shù)介入儀器領(lǐng)域所形成的一個(gè)新型的富有
44、生命力的儀器種類。其和傳統(tǒng)儀器相比,有以下幾個(gè)特點(diǎn):</p><p><b> ?。?)性價(jià)比高</b></p><p> 規(guī)模經(jīng)濟(jì)效益使通用個(gè)人計(jì)算機(jī)具有很高的性價(jià)比,而且基于個(gè)人計(jì)算機(jī)的虛擬儀器和儀器系統(tǒng)可共享計(jì)算機(jī)硬件資源,從而大大增加了儀器的功能,降低了儀器的成本。</p><p><b> ?。?)開放性好</b&g
45、t;</p><p> 具有開放性的規(guī)?;O(shè)計(jì),便于用戶根據(jù)測(cè)試任務(wù)隨心所欲的組建儀器或系統(tǒng),儀器擴(kuò)充、聯(lián)網(wǎng)和升級(jí)十分方便。</p><p><b> ?。?)智能化程度高</b></p><p> 虛擬儀器是基于計(jì)算機(jī)的儀器,其軟件具有強(qiáng)大的分析、計(jì)算、邏輯判斷等功能,可以在計(jì)算機(jī)上建立一個(gè)普通的智能儀器到智能專家系統(tǒng)。</p>
46、;<p> ?。?)界面友好,使用方便。 </p><p> 2.6.2 虛擬儀器技術(shù)應(yīng)用</p><p> 虛擬儀器技術(shù)作為計(jì)算機(jī)與儀器結(jié)合的產(chǎn)物,應(yīng)用前景十分廣泛。總體而言,虛擬儀器是測(cè)量/測(cè)試領(lǐng)域的一個(gè)創(chuàng)新概念,改變了人們對(duì)儀器的傳統(tǒng)觀念,適應(yīng)了現(xiàn)代測(cè)試系統(tǒng)的網(wǎng)絡(luò)化、智能化發(fā)展趨勢(shì)。虛擬儀器技術(shù)應(yīng)用方式多種多樣,主要有如下幾個(gè)方面:</p><p
47、><b> 工業(yè)自動(dòng)化</b></p><p> 虛擬儀器設(shè)計(jì)所采用的圖形化編程語言,十分適合工程師應(yīng)用,有利于提高企業(yè)自主開發(fā)和管理項(xiàng)目的能力,降低工業(yè)自動(dòng)化技術(shù)改造成本。另一方面,采用虛擬儀器技術(shù),根據(jù)實(shí)際工藝和控制要求,將分布在企業(yè)不同位置的各個(gè)測(cè)量?jī)x器和控制裝置連接為一個(gè)網(wǎng)絡(luò)系統(tǒng),通過計(jì)算機(jī)實(shí)施控制和管理,可降低成本,提高工業(yè)自動(dòng)化改造的經(jīng)濟(jì)效益。</p>&
48、lt;p><b> 儀器產(chǎn)業(yè)的改造</b></p><p> 儀器制造業(yè)代表著一個(gè)國(guó)家科技和工業(yè)發(fā)展的水平。目前,像數(shù)字示波器、頻譜分析儀和邏輯分析儀等要主要依賴進(jìn)口。而采用虛擬儀器技術(shù),將過去儀器中許多靠硬件實(shí)現(xiàn)的功能用軟件實(shí)現(xiàn),利用商品化的數(shù)據(jù)采集和PC技術(shù),完全可以開發(fā)出各行各業(yè)急需的各種測(cè)量?jī)x器。這是采用高新技術(shù)改造傳統(tǒng)產(chǎn)業(yè)的一個(gè)大有作為的領(lǐng)域。</p>&l
49、t;p><b> 實(shí)驗(yàn)室應(yīng)用</b></p><p> 虛擬儀器是用戶自定義儀器,供應(yīng)商提供軟件平臺(tái)。這種變化給實(shí)驗(yàn)教學(xué)帶 來了新的教學(xué)理念。實(shí)驗(yàn)室平臺(tái)將由硬件、界面友好的應(yīng)用軟件、虛擬原型模型一起組成的試驗(yàn)系統(tǒng),這種思想對(duì)從根本上改變傳統(tǒng)實(shí)驗(yàn)教學(xué)方法,降低實(shí)驗(yàn)室建設(shè)與管理成本,實(shí)現(xiàn)遠(yuǎn)程教學(xué)具有重要的參考價(jià)值。</p><p> 2.6.3 虛擬儀器的發(fā)展
50、</p><p> 電子測(cè)量?jī)x器發(fā)展至今,答題可以分成四代:模擬儀器、數(shù)字化儀器、智能化儀器和虛擬儀器。</p><p> 第一代:模擬儀器。如指針式萬用表、指針式電壓表、指針式電流表等,他們的基本結(jié)構(gòu)是電磁機(jī)械式的,借助指針來顯示最終結(jié)果。</p><p> 第二代:數(shù)字化儀器。數(shù)字式儀器目前相當(dāng)普及,如數(shù)字式電壓表、數(shù)字式頻率計(jì)等。這類儀器將模擬信號(hào)的測(cè)量
51、轉(zhuǎn)化為數(shù)字信號(hào)測(cè)量,并以數(shù)字方式輸出最終結(jié)果,適用于快速響應(yīng)和較高準(zhǔn)確度的測(cè)量。</p><p> 第三代:智能儀器。智能儀器內(nèi)置微處理器,既能進(jìn)行自動(dòng)測(cè)試,又具有一定的數(shù)據(jù)處理,可取代部分腦力勞動(dòng),習(xí)慣上稱為智能儀器。它的功能全部都是以硬件(或固化的硬件)的形式存在,無論是開發(fā)還是應(yīng)用,都缺乏靈活性。</p><p> 第四代:虛擬儀器。虛擬儀器是現(xiàn)代計(jì)算機(jī)技術(shù)、通信技術(shù)和測(cè)量技術(shù)相
52、結(jié)合的產(chǎn)物,是傳統(tǒng)儀器觀念的一次巨大變革,是儀器行業(yè)發(fā)展的一個(gè)重要方向。它的出現(xiàn)使得人類的測(cè)試技術(shù)進(jìn)入了一個(gè)新的發(fā)展紀(jì)元。</p><p> 隨著計(jì)算機(jī)技術(shù)、儀器技術(shù)和網(wǎng)絡(luò)通信技術(shù)的不斷完善,虛擬儀器將向三個(gè)方面發(fā)展:</p><p><b> 外掛式虛擬儀器</b></p><p> PXI型高精度集成虛擬儀器測(cè)試系統(tǒng)</p>
53、;<p><b> 網(wǎng)絡(luò)化虛擬儀器</b></p><p> 第三章 虛擬信號(hào)發(fā)生器的理論研究</p><p> 3.1虛擬信號(hào)發(fā)生器的基本原理</p><p> 信號(hào)發(fā)生器又稱信號(hào)源或震蕩器,在生產(chǎn)實(shí)踐和科技領(lǐng)域中有廣泛的應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、矩形波(含方波)、正弦波
54、的電路被稱為函數(shù)信號(hào)發(fā)生器。函數(shù)信號(hào)發(fā)生器在電路實(shí)驗(yàn)和設(shè)備檢測(cè)中具有十分廣泛的用途。例如在通信、廣播、電視系統(tǒng)中,都需要射頻(高頻)發(fā)射,這里的射頻波就是載波,把音頻(低頻)、視頻信號(hào)或脈沖信號(hào)運(yùn)載出去,就需要能夠產(chǎn)生高頻的振蕩器。在工業(yè)、農(nóng)業(yè)、生物醫(yī)學(xué)等領(lǐng)域內(nèi),如高頻感應(yīng)加熱、熔煉、淬火、超聲診斷、核磁共振成像等,都需要功率或大或小、頻率或高或低的振蕩器。函數(shù)信號(hào)發(fā)生器的實(shí)現(xiàn)方法通常有以下幾種:</p><p>
55、; 1.用分立元件組成的函數(shù)發(fā)生器:通常是單函數(shù)發(fā)生器且頻率不高,其工作不穩(wěn)定,不易調(diào)試。</p><p> 2.可以有晶體管、運(yùn)放IC等通用器件制作,更多的則是用專門的函數(shù)信號(hào)發(fā)生器IC產(chǎn)生。早期的函數(shù)信號(hào)發(fā)生器IC,如L8038、XR2207/2209等,他們的功能較少,精度不搞,頻率上限只有300KHz,無法產(chǎn)生更高的頻率信號(hào),調(diào)試方式也不夠靈活,頻率和占空比不能獨(dú)立調(diào)節(jié),二者相互影響。</p&g
56、t;<p> 3.利用單片集成芯片的函數(shù)發(fā)生器:能產(chǎn)生多種波形,達(dá)到較高的頻率,且易于調(diào)試鑒于此,美國(guó)美信公司開發(fā)了新一代函數(shù)信號(hào)發(fā)生器ICMAX038,它克服了“2”中芯片的缺點(diǎn),可以達(dá)到更高的技術(shù)指標(biāo),是上述芯片望塵莫及的。MAX038頻率高、精度好,因此它被稱為高頻精密函數(shù)信號(hào)發(fā)生器IC。在鎖相環(huán)、壓控振蕩器、頻率合成器、脈寬調(diào)制器等電路的設(shè)計(jì)上,MAX038都是優(yōu)選的器件。</p><p>
57、; 4.利用專用直接數(shù)字合成DDS芯片的函數(shù)發(fā)生器:能產(chǎn)生任意波形并達(dá)到很高的頻率。但成本較高。</p><p> 生產(chǎn)所需參數(shù)的電測(cè)試信號(hào)儀器。按其信號(hào)波形分為四大類:①正弦信號(hào)發(fā)生器。主要用于測(cè)量電路和系統(tǒng)的頻率特性、非線性失真、增益及敏度等。按其不同性能和用途還可細(xì)分為低頻(20赫至10兆赫)信號(hào)發(fā)生器、高頻(100兆赫至300兆赫)信號(hào)發(fā)生器、微波信號(hào)發(fā)生器、掃頻和程控信號(hào)發(fā)生器、頻率合成式信號(hào)發(fā)生器
58、等。②函數(shù)(波形)信號(hào)發(fā)生器。能產(chǎn)生某些特定的周期性時(shí)間函數(shù)波形(正弦波、方波、三角波、鋸齒波和脈沖波等)信號(hào),頻率范圍可從幾個(gè)微赫到幾千兆赫。除供通信、儀表和自動(dòng)控制系統(tǒng)測(cè)試用外,還廣泛用于其他非電測(cè)量領(lǐng)域。③脈沖信號(hào)發(fā)生器。能產(chǎn)生寬度、幅度和重復(fù)頻率可調(diào)的矩形脈沖的發(fā)生器,可用以測(cè)試線性心痛的瞬態(tài)響應(yīng),或用作模擬信號(hào)來測(cè)試?yán)走_(dá)、多路通信和其他脈沖數(shù)字系統(tǒng)的性能。④隨機(jī)信號(hào)發(fā)生器。通常又分為噪聲信號(hào)發(fā)生器和偽隨機(jī)信號(hào)發(fā)生器兩類。噪聲信
59、號(hào)發(fā)生器主要用途為:在待測(cè)系統(tǒng)中引入一個(gè)隨機(jī)信號(hào),以模擬實(shí)際工作條件中的噪聲而測(cè)定系統(tǒng)性能;外加一個(gè)已知噪聲信號(hào)與系統(tǒng)內(nèi)部噪聲比較以測(cè)定噪聲系數(shù);以隨機(jī)信號(hào)代替正弦或脈沖信號(hào),以測(cè)定系統(tǒng)動(dòng)態(tài)特性等。當(dāng)用噪聲信號(hào)進(jìn)行相關(guān)函數(shù)測(cè)量時(shí),若測(cè)量時(shí)間不夠長(zhǎng),會(huì)出現(xiàn)統(tǒng)計(jì)性誤差</p><p> 在這里介紹1款經(jīng)典使用的安捷倫ESG-D系列信號(hào)發(fā)生器E4421B 詳細(xì)內(nèi)容以作參考:</p><p>
60、 E4421B信號(hào)發(fā)生器主要技術(shù)指標(biāo):</p><p> 頻率:250KHz—3GHz</p><p> 分辨率:0.01Hz</p><p><b> 轉(zhuǎn)換速度</b></p><p> 調(diào)制接通:<45ms.典型值</p><p> 調(diào)制斷開:<35ms.典型值</p>
61、<p> 精度:穩(wěn)定度×fc時(shí)基</p><p><b> 掃描方式</b></p><p> 工作方式:步進(jìn):頻率和功率以及任意列表</p><p> 停留時(shí)間:1ms-60s</p><p> 頻率點(diǎn)數(shù):2-401</p><p><b> 內(nèi)部基
62、本準(zhǔn)震蕩器</b></p><p><b> 時(shí)基參考輸出:</b></p><p><b> 頻率:10MHz</b></p><p> 幅度:>0.35Vrms,50Ω負(fù)載</p><p><b> 外參考輸入:</b></p><p
63、> 頻率:1,2,5,10MHz±典型值10ppm</p><p> 用OptIE5時(shí)為1ppm</p><p> 幅度:>0.15Vrms </p><p><b> 輸入阻抗:50Ω</b></p><p><b> 輸出阻抗:50Ω</b></p>
64、<p> 頻帶 頻帶 頻率范圍 N#</p><p> 1 250KHz≤249.999MHz 1</p><p> 2 249.999≤500MHz 0.5</p><p> 3 500MHz≤1GHz 1</p><p> 4 1≤2GHz 2</p>
65、;<p> 5 2≤4GHz 4</p><p><b> 頻譜純度</b></p><p> 單邊帶相位噪聲(典型值,在20KHz頻偏處)</p><p> 在500MHz處:<-120dBc/Hz</p><p> 在1000MHz處:<-116 dBc/Hz</p&g
66、t;<p> 在2000MHz處:<-110 dBc/Hz</p><p> 在3000 MHz處:<-104 dBc/Hz</p><p> 在4000 MHz處:<-104 dBc/Hz</p><p><b> 脈沖</b></p><p> 周期:16µs-30s</p&g
67、t;<p> 寬帶:8µs-30s</p><p><b> 分辨率:4µs</b></p><p> 3.2.信號(hào)發(fā)生器現(xiàn)狀及發(fā)展</p><p> 信號(hào)發(fā)生器作為一種常見的應(yīng)用電子儀器設(shè)備,傳統(tǒng)的可以完全由硬件電路搭接而成,如采用555振蕩電路發(fā)生正弦波、三角波和方波的電路便是可取的路徑之一,不用依
68、靠單片機(jī)。如工業(yè)過程控制,生物醫(yī)藥,地震模擬機(jī)械振動(dòng)等領(lǐng)域常常用到低頻信號(hào)源。而由硬件電路構(gòu)成的低頻信號(hào)其性能難以令人滿意,而且由于低頻信號(hào)源所需的RC很大:大電阻,大電容在制作上有困難,參數(shù)精度亦難以保證,體積大,漏電,耗損顯著更是致命的弱點(diǎn)。一旦工作需求功能有增加,則電路復(fù)雜程度會(huì)大大增加。</p><p> 當(dāng)今是科學(xué)技術(shù)及儀器設(shè)備高度智能化飛速發(fā)展的信息社會(huì),電子技術(shù)的進(jìn)步,給人們帶來了根本性的轉(zhuǎn)變?,F(xiàn)
69、在帶電子領(lǐng)域中,單片機(jī)的應(yīng)用正在不斷的走向深入,這必將導(dǎo)致傳統(tǒng)控制與檢測(cè)技術(shù)的日益革新。單片機(jī)構(gòu)成的儀器具有高可靠性、高性能價(jià)格比,在智能儀表系統(tǒng)和辦公自動(dòng)化等諸多領(lǐng)域得以極為廣泛的應(yīng)用,并走入家庭,從洗衣機(jī)、微波爐到音響汽車,處處可見其應(yīng)用。因此,單片機(jī)技術(shù)開發(fā)和應(yīng)用水平已逐步成為一個(gè)國(guó)家工業(yè)發(fā)展水平的標(biāo)志之一。</p><p> 一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī)。由于單片機(jī)的這種特殊的結(jié)構(gòu)形式,在某些應(yīng)用領(lǐng)域中
70、,它承擔(dān)了大型計(jì)算機(jī)和通用微型計(jì)算機(jī)無法完成的一些工作。使其具有很多顯著的優(yōu)點(diǎn)和特點(diǎn),因此在各個(gè)領(lǐng)域中都得到了很迅猛的發(fā)展。</p><p> 單片機(jī)的應(yīng)用使得信號(hào)發(fā)生器的性能價(jià)格比提高很多,控制功能強(qiáng),集成度高、體積小、可靠性高,并且可以在很低的電壓下工作,功耗降至μA級(jí),一粒紐扣電池就可長(zhǎng)期使用。</p><p> 隨著科技的不斷進(jìn)步和電子化產(chǎn)品的日益普及,電子產(chǎn)品的規(guī)模和體積有了
71、巨大的變化。各種復(fù)雜電路不斷出現(xiàn),體積不斷縮小,產(chǎn)品更新速度不斷加快。這些新的變化使得電路的設(shè)計(jì)工作變得日益復(fù)雜和繁重。電子產(chǎn)品設(shè)計(jì)時(shí)使用常規(guī)的人工方法,要耗費(fèi)大量的人力財(cái)力。計(jì)算機(jī)硬件和軟件的發(fā)展,使得它應(yīng)用到各個(gè)領(lǐng)域。電子設(shè)計(jì)自動(dòng)化得到了快速發(fā)展,大大減輕了設(shè)計(jì)壓力,縮短了設(shè)計(jì)開發(fā)時(shí)間,是電子開發(fā)人員必須掌握的技術(shù)。</p><p> 本次設(shè)計(jì)中應(yīng)用的LabWindows/CVI 軟件是美國(guó)NI(Natio
72、nal Instrument)公司開發(fā)的Measurement Studio軟件組中的一員。它是32位的面向計(jì)算機(jī)測(cè)控領(lǐng)域的虛擬儀器軟件開發(fā)平臺(tái),可以在多種操作系統(tǒng)下運(yùn)行。LabWindows/CVI是以ANSIC為核心的交互式虛擬儀器開發(fā)環(huán)境,它將功能強(qiáng)大的C語言與測(cè)控技術(shù)有機(jī)結(jié)合,具有靈活的交互式編方法和豐富的庫(kù)函數(shù),為開發(fā)人員建立檢測(cè)系統(tǒng)、自動(dòng)測(cè)試環(huán)境、數(shù)據(jù)采集系統(tǒng)、過程監(jiān)控系統(tǒng)等提供了理想的軟件開發(fā)環(huán)境,是實(shí)現(xiàn)虛擬儀器及網(wǎng)絡(luò)化儀
73、器的快速途徑。通過信號(hào)發(fā)生器的計(jì)算機(jī)仿真設(shè)計(jì)研究,初步掌握軟件應(yīng)用及編程和信號(hào)發(fā)生器原理。</p><p> 第四章 虛擬信號(hào)發(fā)生器的設(shè)計(jì)</p><p> 4.1 虛擬信號(hào)發(fā)生器設(shè)計(jì)</p><p> 4.1.1 虛擬信號(hào)發(fā)生器的工作原理</p><p> 通過在圖形化用戶接口界面上(硬件面板)上鍵入信號(hào)幅值、頻率以及選擇生成的波
74、形和窗函數(shù)。通過軟件編程實(shí)現(xiàn)信號(hào)波形生成及頻譜分析。</p><p> 其設(shè)計(jì)的方法的基本思路:</p><p> 設(shè)計(jì)一個(gè)圖形化用戶接口。</p><p><b> 產(chǎn)生程序代碼。</b></p><p> 用功能面板插入相應(yīng)函數(shù),完成程序編制。</p><p><b> 封
75、裝代碼。</b></p><p> 4.1.2信號(hào)的頻譜分析</p><p> 所謂信號(hào)的頻譜分析就是指計(jì)算信號(hào)的傅里葉變換。連續(xù)信號(hào)與系統(tǒng)的傅里葉分析不便于直接用計(jì)算機(jī)進(jìn)行計(jì)算,使其應(yīng)用受到限制,而本設(shè)計(jì)用到的快速傅里葉變換(簡(jiǎn)稱FFT)是一種時(shí)域和頻域都是離散化的變換,適合數(shù)值運(yùn)算,成為分析離散和系統(tǒng)的有力工具。對(duì)于連續(xù)信號(hào)可以通過時(shí)域采樣,應(yīng)用FFT進(jìn)行近似譜分析。&
76、lt;/p><p> 快速傅里葉變換是離散傅里葉變換DFT的一種快速算法,由于有限長(zhǎng)序列在其頻域也可以離散化有限長(zhǎng)序列(DFT),因此離散傅里葉變換(DFT)在數(shù)字信息處理中是非常有用的。但是由于DFT的計(jì)算量太大,即使采用計(jì)算機(jī)也很難對(duì)問題進(jìn)行實(shí)時(shí)處理,而FFT出現(xiàn)以后使DFT的運(yùn)算大大簡(jiǎn)化,如:</p><p> 設(shè)x(n)為N點(diǎn)有限長(zhǎng)序列,其DFT為</p><p
77、><b> ??; </b></p><p> 一般來說x(n)和 都是復(fù)數(shù),X(k)也是復(fù)數(shù),因此每次計(jì)算一個(gè)X(k)值,需要N次復(fù)數(shù)乘法和N-1次復(fù)數(shù)加法,而X(k)一共有N個(gè)點(diǎn)(k從0取到N-1),故完成一次DFT運(yùn)算總共需要N2復(fù)數(shù)乘法及N(N-1)次復(fù)數(shù)加法。這樣運(yùn)算就復(fù)雜了,計(jì)算所需的時(shí)間也會(huì)多一些。而采用DIT-FFT算法(即時(shí)間抽取法)首先對(duì)時(shí)間進(jìn)行奇偶分解,然后對(duì)頻
78、率進(jìn)行前后分解</p><p> 下面為以N=8點(diǎn)為例的FFT的蝶形運(yùn)算流圖:</p><p> 圖4-1 N=8的快速傅里葉變換蝶形運(yùn)算流圖</p><p> 當(dāng)N=8時(shí),流程圖應(yīng)有3級(jí)蝶形,每一級(jí)都有4個(gè)蝶形運(yùn)算構(gòu)成。因此每一級(jí)運(yùn)算都需要4次復(fù)數(shù)乘和8次復(fù)數(shù)加。所以一次FFT總共需要復(fù)數(shù)乘12次,復(fù)數(shù)加24次復(fù)數(shù)加,而DFT要總共需要復(fù)數(shù)乘64次,復(fù)數(shù)加
79、56次。故使用FFT 能大大減少運(yùn)算量,減小了運(yùn)算時(shí)間,能實(shí)時(shí)完成信號(hào)處理。</p><p> 故本文基于labwindows/cvi的頻譜顯示是通過對(duì)一個(gè)時(shí)域信號(hào)一次進(jìn)行濾波、加窗函數(shù)和快速傅里葉變換FFT并在波形圖上進(jìn)行顯示生成的。</p><p> 4.1.3儀器硬件面板設(shè)計(jì)</p><p> 啟動(dòng)Labwindows/CVI 在設(shè)計(jì)面板之前先在File
80、菜單中新建Include(*.h)、Source(*.c)再新建User Interface(*.uir)面板。面板建好后開始創(chuàng)建控件。</p><p> 1、創(chuàng)建控件及修改空間屬性。</p><p> 用戶界面共12個(gè)控件,其中有兩個(gè) Graph控件、兩個(gè) Numeric Dial控件、兩個(gè)Ring Slide控件、四個(gè)Command Button 控件、兩個(gè)Ring控件。<
81、/p><p> 其整體硬件面板如下圖所示:</p><p> 圖4-2 用戶的圖形界面</p><p> 各種控件的相關(guān)屬性設(shè)置如下:</p><p> 面板:Constant Name為PANEL,Panel Title 為“虛擬信號(hào)發(fā)生器”。</p><p> 控件1:Graph控件,用于顯示波形,Const
82、ant Name為GRAPH1,Label為“波形顯示”,”Buttom X-Axis”中Axis Name是”t/s“,Minimum為0.00,Maximum為1000.00;Left Y-Axis中 Axis Name 是 A(t)/V,Minimum為-1,Maximum為1。 </p><p> 控件2: Graph控件,用于顯示頻譜,Constant Name為GRAPH2,Label為“頻譜顯示”
83、 Buttom X-Axis”中Axis Name是“w“ Minimum為0,Maximum為1000。Left Y-Axis中 Axis Name 是A(w)/V, Minimum為0,Maximum為100.</p><p> 控件3:Numeric Dial控件,用于設(shè)置幅值,Constant Name為AMPLE,Label為“幅值”, Default Values為0,Range Values
84、 中 Minimum為0,Maximum為1。</p><p> 控件4:Numeric Dial控件,用于設(shè)置頻率,Constant Name為FREQ,Label為“頻率”, Default Value為0, Range Values中 Minimum為0,Maximum為1000。</p><p> 控件5:Ring Slide控件,用于選擇波形,Constant Name為WA
85、VEFORM,Label為“波形選擇”,Lable/Value pairs 中 Lable分別為無、正弦波、三角波、鋸齒波、方波,其對(duì)應(yīng)的Value分別為0、1、2、3、4。</p><p> 控件6:Ring Slide控件,用于設(shè)置窗函數(shù),Constant Name為WINDOW,Label為“window”, Lable/Value pairs 中 Lable分別為none、Triangle、Hannin
86、g、Hamming、Blackman、Kaiser,其對(duì)應(yīng)的Value分別為0、1、2、3、4、5。</p><p> 控件7:Command Button控件,用于保存文件,Constant Name為SAVE,Callback Function為Save, ,Label為“_save to file”。</p><p> 控件8:Command Button 控件,用于讀取文件,C
87、onstant Name為READ,Callback Function為Read,Label為“ _read from file”。</p><p> 控件9:Command Button控件,用于開始運(yùn)行,Constant Name為COMMANDBUTTON,Callback Function為refe,Label為”_OK”。</p><p> 控件10:Command Butt
88、on控件,用來 關(guān)閉運(yùn)行,Constant Name為QUIT, Callback Function為quitCallback,Label為“ _QUIT”。</p><p> 控件11:Ring控件,Constant Name為OutputType,Lable/Value pairs 中 Lable分別為Binary、ASCII,其對(duì)應(yīng)的Value分別為0、1。</p><p> 控
89、件12:Ring控件,Constant Name為InputType,Lable/Value pairs 中</p><p> Lable分別為Binary、ASCII,其對(duì)應(yīng)的Value分別為0、1。</p><p><b> 2、創(chuàng)建源程序代碼</b></p><p> 控件創(chuàng)建完成即面板設(shè)計(jì)完成后,點(diǎn)擊功能菜單中的Code即可看見下
90、拉菜單Generate,鼠標(biāo)移至Generate則出現(xiàn)ALL Code如圖4-3,點(diǎn)擊ALL Code就會(huì)出現(xiàn)如圖4-4對(duì)話框選定QuitButton點(diǎn)擊OK即出現(xiàn)*.c文件及程序。</p><p> Code》generate》all code 選定 QuitButton點(diǎn)擊OK。</p><p> 圖4-3 產(chǎn)生源程序代碼的框圖</p><p> 當(dāng)選擇A
91、ll Code后,出現(xiàn)生成代碼窗口即generate all code窗口,如下圖所示:</p><p> 如圖4-4 生成所有代碼對(duì)話框</p><p><b> 在窗口中應(yīng)注意:</b></p><p> 當(dāng)你想讓你的程序的主函數(shù)為Win Main而不是Main是你可以選擇Generate WinMian() instead of M
92、ain()項(xiàng)前的矩形框。</p><p> Select panels to load and display at startup 項(xiàng)是指你選擇那一個(gè)Panel最為最初裝入并顯示的Panel,當(dāng)你創(chuàng)建多個(gè)Panel時(shí)你就需要選擇一個(gè)Panel作為最初顯示的面板。由于本程序只有一個(gè)Panel所以該P(yáng)anel就被缺省的作為最初顯示的面板而不再需要你去選擇。</p><p> Select
93、 QuituserInterface Callback 項(xiàng)是指你選擇那一個(gè)函數(shù)作為退出程序的終止函數(shù)。本程序是讓QuitCallback 作為退出函數(shù)。</p><p> 4.1.4軟件設(shè)計(jì)(程序設(shè)計(jì))</p><p> 在All code中生成的源代碼進(jìn)行穿插加入函數(shù)生成完整的程序。</p><p> 按照程序流程圖完成程序的編制:</p>&
94、lt;p><b> Y</b></p><p><b> N</b></p><p> 圖 4-5 程序流程圖</p><p> 1、ok按鈕的回調(diào)函數(shù)refe()的編輯</p><p> 為了當(dāng)按下ok鍵以后通過調(diào)節(jié)幅值、頻率、及窗函數(shù)和波形選擇在兩個(gè)grap</p>
95、<p> 控件中生成波形及頻譜,我設(shè)置如下程序完成此操作:</p><p> 在程序中調(diào)用show_wave1函數(shù),在申明show_wave函數(shù),如下程序:</p><p> int CVICALLBACK refe (int panel, int control, int event,void *callbackData, int eventData1, int eve
96、ntData2)</p><p> { int i;</p><p> switch (event)</p><p><b> { </b></p><p> case EVENT_COMMIT:</p><p> show_wave1(); </p><p
97、> for (i=0;i<1000;i++)</p><p> wave[i]=(double)(rand() % 32768);</p><p><b> break; </b></p><p><b> }</b></p><p><b> return 0;&l
98、t;/b></p><p><b> }</b></p><p> void show_wave1(void)</p><p><b> {</b></p><p> int waveForm,window;</p><p> double ample;<
99、;/p><p> double phase=0,waveData[1000],filterData[1000],specData[1000];</p><p> double sampleRate=10000,freq;</p><p> double cutoff_freq=3000;</p><p> GetCtrlVal (pane
100、lHandle, PANEL_WAVEFORM, &waveForm);</p><p> GetCtrlVal (panelHandle, PANEL_AMPLE, &le);</p><p> GetCtrlVal (panelHandle, PANEL_FREQ, &freq);</p><p> GetCtrlVal (p
101、anelHandle, PANEL_WINDOW, &window);</p><p> switch (waveForm)</p><p><b> {</b></p><p><b> case 1:</b></p><p> SineWave (1000, ample, fre
102、q/sampleRate, &phase, waveData);</p><p><b> break;</b></p><p><b> case 2:</b></p><p> TriangleWave (1000, ample, freq/sampleRate, &phase, waveData
103、);</p><p><b> break;</b></p><p><b> case 3:</b></p><p> SawtoothWave (1000, ample, freq/sampleRate, &phase, waveData);</p><p><b>
104、break;</b></p><p><b> case 4:</b></p><p> SquareWave (1000, ample, freq/sampleRate, &phase, 50.0, waveData);</p><p><b> break;</b></p>&l
105、t;p><b> }</b></p><p> if(waveForm==0)</p><p> DeleteGraphPlot (panelHandle, PANEL_GRAPH1, -1, VAL_IMMEDIATE_DRAW);</p><p><b> else </b></p><
106、;p> { DeleteGraphPlot (panelHandle, PANEL_GRAPH1, -1, VAL_IMMEDIATE_DRAW); </p><p> PlotWaveform (panelHandle, PANEL_GRAPH1, waveData, 1000, VAL_DOUBLE, 1.0, 0.0, 0.0, sampleRate/1000, VAL_THIN_LINE,
107、VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);</p><p> Bw_LPF (waveData, 1000, sampleRate, cutoff_freq, 5, filterData);</p><p> Copy1D (filterData, 1000, specData);</p><p> switch (wi
108、ndow)</p><p><b> {</b></p><p><b> case 1:</b></p><p> TriWin (specData,1000);</p><p><b> break;</b></p><p><b>
109、; case 2:</b></p><p> HanWin (specData,1000);</p><p> break;</p><p><b> case 3:</b></p><p> HamWin (specData,1000);</p><p>
110、;<b> break;</b></p><p><b> case 4:</b></p><p> BkmanWin (specData, 1000);</p><p><b> break;</b></p><p><b> case 5:</b&
111、gt;</p><p> KsrWin (specData,1000,10);</p><p><b> break;</b></p><p><b> }</b></p><p> if (window==0)</p><p> DeleteGraphPlot (
112、panelHandle, PANEL_GRAPH2, -1, VAL_IMMEDIATE_DRAW);</p><p><b> else</b></p><p><b> {</b></p><p> FFT (filterData,specData , 1000);</p><p> D
113、eleteGraphPlot (panelHandle, PANEL_GRAPH2, -1, VAL_IMMEDIATE_DRAW); </p><p> PlotWaveform (panelHandle, PANEL_GRAPH2, specData, 1000, VAL_DOUBLE, 1.0, 0.0, 0.0, sampleRate/1000, VAL_THIN_LINE, VAL_EMPTY_SQU
114、ARE, VAL_SOLID, 1, VAL_RED);</p><p><b> }</b></p><p><b> } </b></p><p><b> } </b></p><p> 下面為上面程序的實(shí)時(shí)函數(shù)的生成方法:</p><p&g
115、t; 1 、點(diǎn)擊library>>use interface在彈出的話框中選擇</p><p> Controls/Graphs/Strip charts>>Generate Funcations>>GetCtrVal點(diǎn)擊select出現(xiàn)一個(gè)函數(shù)面板,如</p><p> 圖4-6 獲取當(dāng)前值的控制面板</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于labview虛擬信號(hào)發(fā)生器的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文----基于labview的虛擬信號(hào)發(fā)生器
- 畢業(yè)論文—基于labview的虛擬信號(hào)發(fā)生器
- 信號(hào)發(fā)生器設(shè)計(jì)與制作畢業(yè)論文
- 合成信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文
- 函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文--方波信號(hào)發(fā)生器的設(shè)計(jì)
- 畢業(yè)論文——正弦信號(hào)發(fā)生器
- 秒信號(hào)發(fā)生器畢業(yè)論文
- 畢業(yè)論文——正弦信號(hào)發(fā)生器
- 簡(jiǎn)易函數(shù)信號(hào)發(fā)生器設(shè)計(jì)【畢業(yè)論文】
- 多功能信號(hào)發(fā)生器畢業(yè)論文設(shè)計(jì)
- 基于labview的信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文 基于fpga的信號(hào)發(fā)生器設(shè)計(jì)
- 數(shù)字信號(hào)發(fā)生器的設(shè)計(jì)畢業(yè)論文
- 基于labview的信號(hào)發(fā)生器設(shè)計(jì)畢業(yè)論文
- 函數(shù)信號(hào)發(fā)生器的fpga設(shè)計(jì)畢業(yè)論文
- 基于dds信號(hào)發(fā)生器的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--基于fpga的信號(hào)發(fā)生器設(shè)計(jì)
- 多功能信號(hào)發(fā)生器的設(shè)計(jì)-畢業(yè)論文
評(píng)論
0/150
提交評(píng)論