版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)</p><p> 題目: 虛擬信號(hào)發(fā)生器的設(shè)計(jì) </p><p> 學(xué)院(系):電氣工程學(xué)院 </p><p> 年級(jí)專(zhuān)業(yè): 07級(jí)自動(dòng)化儀表 </p><p><b> 學(xué) 號(hào): </b></p><p> 學(xué)生姓名:
2、 </p><p><b> 指導(dǎo)教師: </b></p><p> 教師職稱(chēng): 教授 講師 </p><p> 課程設(shè)計(jì)(論文)任務(wù)書(shū)</p><p> 院(系): 電氣工程學(xué)院 基層教學(xué)單位: 自動(dòng)化儀表 </p>
3、;<p> 說(shuō)明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。</p><p> 2010年 7 月 5 日 </p><p><b> 課程設(shè)計(jì)評(píng)審意見(jiàn)表</b></p><p><b> 目錄</b></p><p> 一、課程設(shè)計(jì)題目·
4、3;···································2</p&
5、gt;<p> 1、引言························2</p><p> 2、虛擬信號(hào)發(fā)生器概述···
6、83;····················2</p><p> 二、設(shè)計(jì)思想和系統(tǒng)的實(shí)現(xiàn)與功能·········
7、3;··············3</p><p> 1、設(shè)計(jì)思路·················
8、183;···········2</p><p> 2、系統(tǒng)的實(shí)現(xiàn)與功能···················
9、183;·········3</p><p> 三、 運(yùn)行結(jié)果分析·····················
10、83;···············7</p><p> 1、運(yùn)行結(jié)果················&
11、#183;··················7</p><p> 2、結(jié)果分析·············
12、;····················8</p><p> 四、心得體會(huì)···········
13、83;······························8</p><p> 五、參考文獻(xiàn)·&
14、#183;····································
15、;···9</p><p> 六、程序源代碼清單····························
16、·········10</p><p><b> 一 課程設(shè)計(jì)題目</b></p><p><b> 引言</b></p><p> Matlab是Mathworks公司于1982年推出的一種功能強(qiáng)大、效率高、交互性好的數(shù)值計(jì)算
17、和可視化計(jì)算機(jī)高級(jí)語(yǔ)言,它將數(shù)值分析、矩陣運(yùn)算、信號(hào)處理和圖形顯示有機(jī)地融合為一體,形成了一個(gè)極其方便、用戶(hù)界面友好的操作環(huán)境。它提供了強(qiáng)大的科學(xué)運(yùn)算、靈活的程序設(shè)計(jì)流程、高質(zhì)量的圖形可視化與界面設(shè)計(jì)、便捷的與其他程序和語(yǔ)言接口等功能,被廣泛應(yīng)用于數(shù)值和符號(hào)計(jì)算、工程與科學(xué)繪圖、控制系統(tǒng)的設(shè)計(jì)與仿真、數(shù)字圖形處理、數(shù)字信號(hào)處理、通信系統(tǒng)設(shè)計(jì)與仿真等領(lǐng)域。</p><p> Matlab軟件在信號(hào)處理中的應(yīng)用主要
18、包括符號(hào)運(yùn)算和數(shù)值計(jì)算仿真分析,其中數(shù)值計(jì)算與仿真分析包括函數(shù)波形繪制、函數(shù)運(yùn)算、信號(hào)的時(shí)域分析、信號(hào)的頻譜分析等內(nèi)容,它可以幫助我們更深入理解數(shù)字信號(hào)處理中的理論知識(shí)。運(yùn)用Matlab軟件的數(shù)值分析和計(jì)算結(jié)果可視化功能,可以詳細(xì)生動(dòng)地揭示數(shù)字信號(hào)處理理論的物理實(shí)際意義。隨著計(jì)算機(jī)技術(shù)信息科學(xué)的飛速發(fā)展,數(shù)字信號(hào)處理已經(jīng)逐步發(fā)展成為一門(mén)獨(dú)立的學(xué)科并成為信息科學(xué)的重要組成部分。Matlab在數(shù)字信號(hào)處理方面具有得天獨(dú)厚的優(yōu)勢(shì)。將Matla
19、b的工具應(yīng)用與數(shù)字信號(hào)處理的算法與原理有機(jī)結(jié)合起來(lái),利用Matlab的圖形用戶(hù)界面(GraphicalUser Interface, GU I) ,進(jìn)行二次開(kāi)發(fā),開(kāi)發(fā)出具有很強(qiáng)實(shí)用性的輔助教學(xué)軟件,輔助數(shù)字信號(hào)處理課堂多媒體教學(xué),可以極大地提高教學(xué)效果。</p><p><b> 虛擬信號(hào)發(fā)生器概述</b></p><p> 虛擬儀器概念是1986年由美國(guó)國(guó)家儀器
20、公司(NI公司)提出的。所謂虛擬儀器(vi)就是利用通用計(jì)算機(jī),外加一些特殊設(shè)計(jì)的功能化硬件(如數(shù)據(jù)采集卡、輸出卡等)和一組專(zhuān)用軟件,構(gòu)成的功能強(qiáng)、靈活度高的集成新型儀器系統(tǒng)。虛擬儀器和傳統(tǒng)儀器一樣,可以分成采集和控制部分、數(shù)據(jù)處理和分析部分、用戶(hù)與儀器交互部分三個(gè)部分。對(duì)于傳統(tǒng)儀器,三部分基本上全部由硬件完成。而對(duì)于虛擬儀器,后兩部分由計(jì)算機(jī)來(lái)承擔(dān),利用計(jì)算機(jī)的人機(jī)交互接口來(lái)完成儀器面板的顯示和控制,利用計(jì)算機(jī)強(qiáng)大的運(yùn)算功能完成數(shù)據(jù)的
21、分析和處理。所以,虛擬儀器除了必備的硬件之外,都可以用基于計(jì)算機(jī)的軟件實(shí)現(xiàn),因此有“軟件就是儀器 ¨的概念。</p><p> 虛擬儀器的結(jié)構(gòu)可以分成硬件和軟件兩部分:</p><p> (1) 硬件部分:虛擬儀器硬件部分由I/,O接口設(shè)備和計(jì)算機(jī)構(gòu)成.如圖2所示。I/O接口設(shè)備能夠完成被測(cè)信號(hào)的采集和控制信號(hào)的輸出。根據(jù)實(shí)際情況,可采用不同的接口硬件設(shè)備(如數(shù)據(jù)采集卡OAQ
22、、GPIB總線(xiàn)儀器、VxI總線(xiàn)儀器模塊、串口儀器等)。</p><p> (2) 軟件部分:虛擬儀器軟件部分由I/,O接口設(shè)備驅(qū)動(dòng)程序和應(yīng)用程序組成。I/O接口設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)I/O接口設(shè)備和應(yīng)用程序之間的數(shù)據(jù)交換。應(yīng)用程序建立在驅(qū)動(dòng)程序之上,完成數(shù)據(jù)的分析處理,提供虛擬儀器的人機(jī)交互界面,供用戶(hù)操作。</p><p> 虛擬信號(hào)發(fā)生器不僅具有產(chǎn)生正弦波、方波、鋸齒波、三角波及TTL電
23、平等信號(hào)的功能,而且可以產(chǎn)生操作者自定義的信號(hào),特別是可以產(chǎn)生雙側(cè)向測(cè)井儀的發(fā)射波形,這在維修儀器時(shí)起到了很大的作用。通過(guò)軟件,自檢系統(tǒng)可實(shí)現(xiàn)對(duì)采集、計(jì)算、顯示等功能模塊的自檢,使系統(tǒng)在一個(gè)可以監(jiān)控的狀態(tài)下運(yùn)行。</p><p> 二 設(shè)計(jì)思想和系統(tǒng)的實(shí)現(xiàn)與功能</p><p><b> 1、設(shè)計(jì)思路</b></p><p> 利用“Ma
24、tlab+聲卡”實(shí)現(xiàn)任意波形虛擬信號(hào)發(fā)生器。要求至少輸出五種以上參數(shù)可調(diào)信號(hào)(如:方波,三角波,正弦波等)。將產(chǎn)生的信號(hào)通過(guò)聲卡輸出到示波器上,觀察實(shí)際輸出波形與理論輸出波形的關(guān)系。</p><p> 聲卡是將音頻輸入數(shù)據(jù)轉(zhuǎn)換為立體聲輸出的一種設(shè)備。現(xiàn)在PC機(jī)中的聲卡已經(jīng)是一個(gè)標(biāo)準(zhǔn)配置了。除了輸出語(yǔ)音信號(hào),通過(guò)編寫(xiě)程序,還可以讓PC機(jī)通過(guò)聲卡輸出各種波形。普通聲卡采樣頻率通??蛇x值為8000Hz、11000Hz
25、、16000Hz、22000Hz和44100Hz,已經(jīng)完全能夠滿(mǎn)足低頻信號(hào)發(fā)生器頻帶要求。</p><p> Matlab具有強(qiáng)大的音頻處理函數(shù)和數(shù)據(jù)處理能力,能夠方便的產(chǎn)生各種波形的數(shù)據(jù)數(shù)組,同時(shí)通過(guò)音頻處理函數(shù)又可以方便的將數(shù)據(jù)數(shù)組傳遞給聲音設(shè)備,并以特定的采樣頻率和傳輸比特位由聲卡輸出并且matlab完全支持可視化編程。Matlab和聲卡結(jié)合,便可以方便的實(shí)現(xiàn)設(shè)計(jì)所要求的虛擬信號(hào)發(fā)生器的功能。</p
26、><p> 2、系統(tǒng)的實(shí)現(xiàn)與功能</p><p> (1)虛擬信號(hào)發(fā)生器的軟件界面實(shí)現(xiàn)</p><p> 圖形用戶(hù)界面概念:圖形用戶(hù)界面或圖形用戶(hù)接口(Graphical User Interface,GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作環(huán)境用戶(hù)接口。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶(hù)來(lái)說(shuō)更為簡(jiǎn)便易用。GUIDE是Matlab提供的圖形用戶(hù)界面
27、開(kāi)發(fā)環(huán)境,提供了一系列用于創(chuàng)建圖形用戶(hù)界面的工具,從而簡(jiǎn)化界面布局和編程工作。</p><p><b> 圖形用戶(hù)界面實(shí)現(xiàn)</b></p><p><b> 1.GUI設(shè)計(jì)模板</b></p><p> 在MATLAB主窗口中,選擇File菜單中的New菜單項(xiàng),再選擇其中的GUI命令,就會(huì)顯示圖形用戶(hù)界面的設(shè)計(jì)模板。
28、MATLAB為GUI設(shè)計(jì)一共準(zhǔn)備了4種模板,分別是Blank GUI(默認(rèn)) 、GUI with Uicontrols(帶控件對(duì)象的GUI模板) 、GUI with Axes and Menu(帶坐標(biāo)軸與菜單的GUI模板)與Modal Question Dialog(帶模式問(wèn)話(huà)對(duì)話(huà)框的GUI模板)。當(dāng)用戶(hù)選擇不同的模板時(shí),在GUI設(shè)計(jì)模板界面的右邊就會(huì)顯示出與該模板對(duì)應(yīng)的GUI圖形。</p><p><b&
29、gt; 2.GUI設(shè)計(jì)窗口</b></p><p> 在GUI設(shè)計(jì)模板中選中一個(gè)模板,然后單擊OK按鈕,就會(huì)顯示GUI設(shè)計(jì)窗口。選擇不同的GUI設(shè)計(jì)模式時(shí),在GUI設(shè)計(jì)窗口中顯示的結(jié)果是不一樣的。GUI設(shè)計(jì)窗口由菜單欄、工具欄、控件工具欄以及圖形對(duì)象設(shè)計(jì)區(qū)等部分組成。GUI設(shè)計(jì)窗口的菜單欄有File、Edit、View、Layout、Tools和Help 6個(gè)菜單項(xiàng),使用其中的命令可以完成圖形用戶(hù)
30、界面的設(shè)計(jì)操作。</p><p> 3.GUI設(shè)計(jì)窗口的基本操作</p><p> 在GUI設(shè)計(jì)窗口創(chuàng)建圖形對(duì)象后,通過(guò)雙擊該對(duì)象,就會(huì)顯示該對(duì)象的屬性編輯器。例如,創(chuàng)建一個(gè)Push Button對(duì)象,并設(shè)計(jì)該對(duì)象的屬性值。</p><p><b> 4.GUI設(shè)計(jì)編程</b></p><p> 在GUI設(shè)計(jì)窗口
31、創(chuàng)建好圖形對(duì)象并進(jìn)行良好的布局后,就可以對(duì)相應(yīng)的對(duì)象或控件進(jìn)行編程實(shí)現(xiàn)所需要的功能。通常我們主要在所需要的控件的回調(diào)函數(shù)中編寫(xiě)相應(yīng)的程序功能代碼,以便讓它去完成我們需要的功能。</p><p><b> 5.運(yùn)行界面</b></p><p> 在完成上述幾步后,我們就可以點(diǎn)擊設(shè)計(jì)窗口中的運(yùn)行,顯示界面運(yùn)行后的結(jié)果,相應(yīng)的也可以點(diǎn)擊某些對(duì)象(如按鈕)測(cè)試相應(yīng)的功能。
32、</p><p> 如圖2所示,是運(yùn)行之后的設(shè)計(jì)好的軟件界面。在軟件界面中,我們可以進(jìn)行波形選擇,同時(shí)可以通過(guò)拉動(dòng)滾動(dòng)條調(diào)整一些波形的參數(shù),然后點(diǎn)擊信號(hào)輸出按鈕,即可在界面中的第一個(gè)坐標(biāo)軸中看到相應(yīng)的波形,還可以在第二個(gè)坐標(biāo)軸中看到對(duì)信號(hào)進(jìn)行頻譜分析后的頻譜圖。如果通過(guò)聲卡連接到示波器,我們也可以在示波器上看到相應(yīng)的波形。當(dāng)點(diǎn)擊全部重置按鈕后系統(tǒng)恢復(fù)初始界面,可以重新進(jìn)行選擇,點(diǎn)擊系統(tǒng)退出按鈕,則整個(gè)系統(tǒng)界面退
33、出。</p><p> 圖2虛擬信號(hào)發(fā)生器系統(tǒng)軟件界面</p><p><b> 信號(hào)發(fā)生器的功能:</b></p><p> (1)發(fā)出正弦波、三角波、方波、鋸齒波,并調(diào)整其頻率、幅度、相位、直流偏量,對(duì)方波能調(diào)整其占空比;(2)發(fā)出公式導(dǎo)出的波形 (3)能夠設(shè)置數(shù)據(jù)緩沖區(qū)的大?。?4)能疊加高斯噪聲,并調(diào)整其特征。(5)能顯示波形。&
34、lt;/p><p><b> ?。?)聲卡的實(shí)現(xiàn)</b></p><p> Matlab軟件的數(shù)據(jù)采集工具箱(DAT)提供了一系列的函數(shù)和命令來(lái)實(shí)現(xiàn)實(shí)時(shí)模擬信號(hào)的輸出,通過(guò)調(diào)用這些函數(shù)和命令可以直接控制聲卡輸出虛擬信號(hào),在Matlab中用聲卡產(chǎn)生虛擬信號(hào)的過(guò)程如下圖所示。Matlab的數(shù)據(jù)采集工具箱提供的控制聲卡輸出模擬信號(hào)的主要函數(shù)和命令如下:</p>
35、<p><b> 初始化操作</b></p><p> Matlab將聲卡等設(shè)備都作為對(duì)象處理,其后的一切操作都不與硬件直接相關(guān),而是通過(guò)對(duì)該 對(duì)象的操作來(lái)作用對(duì)象,所以,首先要為聲卡建立一個(gè)設(shè)備對(duì)象。Matlab建立設(shè)備對(duì)象的函數(shù)如下:ao=analogoutput('winsound') analogouput()為模擬輸出設(shè)備對(duì)象建立函數(shù),通過(guò)該函數(shù)將聲卡
36、映射為Matlab環(huán)境中的一個(gè)模擬輸出設(shè)備對(duì)象句柄。winsound為聲卡設(shè)備驅(qū)動(dòng)程序。</p><p> 添加數(shù)據(jù)輸出通道操作</p><p> Matlab中用于添加數(shù)據(jù)輸出通道操作的函數(shù)為addchannel,其函數(shù)格式如下:</p><p> chan=addchannel(ao,ch)</p><p> 其中:ao為聲卡對(duì)象
37、的句柄(下同),ch為聲卡通道號(hào),最大為2通道。</p><p> (3) 輸出數(shù)據(jù)操作</p><p> Matlab中用于輸出數(shù)據(jù)操作的函數(shù)為putdata,其函數(shù)格式如下:putudata(ao,data)</p><p> 其中:data為所需要輸出的數(shù)據(jù)。</p><p> (4) 啟動(dòng)并觸發(fā)聲卡設(shè)備操作</p>
38、<p> 當(dāng)完成輸出數(shù)據(jù)操作后,并沒(méi)有真正輸出數(shù)據(jù),必須啟動(dòng)聲卡,才能對(duì)外輸出信號(hào),啟動(dòng)并觸發(fā)聲卡設(shè)備操作的命令如下:start(ao)</p><p> (5) 停止并刪除聲卡設(shè)備操作</p><p> 信號(hào)輸出完成后,聲卡設(shè)備仍然保留在計(jì)算機(jī)系統(tǒng)中,若不將聲卡設(shè)備停止并刪除,計(jì)算機(jī)系統(tǒng)中仍會(huì)保留該設(shè)備,在下次啟動(dòng)虛擬信號(hào)發(fā)生器系統(tǒng)時(shí)將會(huì)發(fā)出聲卡設(shè)備仍然在使用的錯(cuò)誤信
39、息。從系統(tǒng)中停止和刪除聲卡設(shè)備操作的命令分別如下: stop(ao)</p><p> delete(ao)。</p><p> ?。?)示波器的軟件實(shí)現(xiàn)</p><p> 虛擬示波器主要由普通聲卡和相應(yīng)的軟件組成。其中測(cè)控軟件是應(yīng)用美國(guó)N I公司的LabV IEW軟件設(shè)計(jì)開(kāi)發(fā)的。LabV IEW 是一種基于圖形編程語(yǔ)言(G語(yǔ)言)的可視化(圖形化)優(yōu)秀
40、開(kāi)發(fā)平臺(tái),主要用于儀器控制、數(shù)據(jù)采集、數(shù)據(jù)分析和處理等領(lǐng)域。它與傳統(tǒng)編程語(yǔ)言最大的區(qū)別是使用圖形語(yǔ)言(即各種圖標(biāo)、圖形符號(hào)、連線(xiàn)等) ,以框圖的形式編寫(xiě)程序。一個(gè)LabV IEW 程序主要包括三部分: 前面板、框圖程序、圖標(biāo)/接線(xiàn)端口。前面板是交互式圖形化用戶(hù)界面,用于設(shè)置輸入數(shù)值和觀察輸出量??驁D程序是利用圖形語(yǔ)言對(duì)前面板的控制量和指示量進(jìn)行控制。圖標(biāo)/接線(xiàn)端口用于把LabV IEW程序定義成一個(gè)子程序, 以便在其它程序中加以調(diào)用[
41、2 ] 。本虛擬示波器由軟件控制完成參數(shù)的設(shè)置,信號(hào)的采集、處理和顯示。系統(tǒng)軟件總體上包括音頻參數(shù)的設(shè)置,音頻信號(hào)的采集、波形顯示、頻譜分析</p><p> 及波形存儲(chǔ)和回放等五大模塊,功能結(jié)構(gòu)框圖如下圖。</p><p> 示波器的功能:(1)實(shí)時(shí)顯示波形;(2)實(shí)時(shí)顯示頻譜;(3)實(shí)施測(cè)量波形幅值的最大值、最小值、基波頻率、直流偏量。</p><p>
42、虛擬示波器軟件結(jié)構(gòu)框圖</p><p><b> 三、 運(yùn)行結(jié)果分析</b></p><p><b> 1、運(yùn)行結(jié)果</b></p><p> 虛擬信號(hào)發(fā)生器輸出正弦波示意圖</p><p><b> 結(jié)果分析</b></p><p> 頻譜
43、分析:所謂信號(hào)的譜分析,就是計(jì)算信號(hào)的傅里葉變換。工程實(shí)際中,經(jīng)常遇到的是連續(xù)信號(hào),截取一段進(jìn)行FT變換后其頻譜函數(shù)也是連續(xù)函數(shù),因此其計(jì)算過(guò)程不便于用計(jì)算機(jī)實(shí)現(xiàn)。而DFT作為一種時(shí)域和頻域均離散化的變換,適合數(shù)值運(yùn)算,成為分析離散信號(hào)和系統(tǒng)的有力工具。對(duì)于連續(xù)信號(hào)和系統(tǒng),可以通過(guò)對(duì)時(shí)域采樣,得到離散時(shí)間序列,再對(duì)進(jìn)行DFT,因此是一種近似的譜分析但由于直接計(jì)算DFT的計(jì)算量與變換區(qū)間長(zhǎng)度N的平方成正比,當(dāng)N較大時(shí),計(jì)算量太大,所以在快
44、速傅里葉變換(Fast Fourier Transform,簡(jiǎn)稱(chēng)FFT)出現(xiàn)前,直接用DFT進(jìn)行譜分析和信號(hào)的實(shí)時(shí)處理是不切實(shí)際的。自從出現(xiàn)FFT快速算法之后,情況發(fā)生了根本性的變化。FFT并不是與DFT不同的另外一種變換,而是為減少DFT計(jì)算次數(shù)的一種快速算法,它是根據(jù)離散傅氏變換的奇、偶、虛、實(shí)等特性,對(duì)離散傅立葉變換的算法進(jìn)行改進(jìn)獲得的。它對(duì)傅氏變換的理論并沒(méi)有新的發(fā)現(xiàn),但是對(duì)于在計(jì)算機(jī)系統(tǒng)或者說(shuō)數(shù)字系統(tǒng)中應(yīng)用離散傅立葉變換,可以
45、說(shuō)是進(jìn)了一大步。</p><p> 離散傅里葉變換X(k)可看成是z變換在單位圓上的等距離采樣值。同樣,X(k)也可看作是序列傅氏變換的采樣,采樣間隔為ωN=2π/N 。由此看出,離散傅里葉變換實(shí)質(zhì)上是其頻譜的離散頻域采樣,對(duì)頻率具有選擇性(ωk=2πk/N),在這些點(diǎn)上反映了信號(hào)的頻譜。 </p><p> 根據(jù)采樣定律,一個(gè)頻帶有限的信號(hào),可以對(duì)它進(jìn)行時(shí)域采樣而不丟失任何信息,F(xiàn)F
46、T變換則說(shuō)明對(duì)于時(shí)間有限的信號(hào)(有限長(zhǎng)序列),也可以對(duì)其進(jìn)行頻域采樣,而不丟失任何信息。所以只要時(shí)間序列足夠長(zhǎng),采樣足夠密,頻域采樣也就可較好地反映信號(hào)的頻譜趨勢(shì),所以FFT可以用以進(jìn)行連續(xù)信號(hào)的頻譜分析。</p><p> 本文中采用FFT變換方法對(duì)幾種典型信號(hào)進(jìn)行了頻譜分析,并將結(jié)果波形顯示出來(lái)</p><p> 誤差分析:將所設(shè)計(jì)軟件系統(tǒng)通過(guò)聲卡與實(shí)際的示波器連接后,輸出相應(yīng)的信
47、號(hào)波形并在示波器上顯示出來(lái),與理想的波形進(jìn)行比較可知存在一定的偏差,造成這種情況的原因有很多,本文重點(diǎn)分析噪音對(duì)信號(hào)的干擾。</p><p> 采用這種方法實(shí)現(xiàn)的低頻信號(hào)發(fā)生器的噪音信號(hào)主要為:</p><p><b> 主機(jī)電源的噪音;</b></p><p><b> 主機(jī)的高頻幅射;</b></p>
48、<p> 環(huán)境噪音。降低噪音。</p><p><b> 我們可以:</b></p><p> 選擇信噪比比較高的主機(jī)電源將會(huì)對(duì)消除噪音源起到重要作用;</p><p> 實(shí)驗(yàn)設(shè)備在利用信號(hào)源時(shí)應(yīng)盡量與主機(jī)保持較遠(yuǎn)的距離,以減少電磁輻射對(duì)設(shè)備的影響;</p><p> 對(duì)于環(huán)境噪音,當(dāng)信號(hào)頻率與5
49、0Hz相差很大時(shí)可以忽略環(huán)境噪音對(duì)設(shè)備的影響,但當(dāng)信號(hào)頻率接近50Hz時(shí),應(yīng)對(duì)實(shí)驗(yàn)設(shè)備采取良好的屏蔽措施;</p><p> 采用濾波電路消除聲卡輸出的噪音。</p><p><b> 四 心得體會(huì)</b></p><p> 課程設(shè)計(jì)是一個(gè)讓我們能學(xué)以致用的很好方式,提高動(dòng)手能力,以及相互合作的能力。是對(duì)課堂的一個(gè)很好的補(bǔ)充。在整個(gè)設(shè)計(jì)過(guò)
50、程中用到了處理數(shù)字信號(hào)的強(qiáng)有力工具M(jìn)ATLAB,通過(guò)MATLAB信號(hào)處理的工具箱函數(shù)的調(diào)用,實(shí)現(xiàn)信號(hào)通過(guò)聲卡的簡(jiǎn)單輸出。本設(shè)計(jì)最重要的部分是利用MATLAB的另一強(qiáng)大功能——GUI界面設(shè)計(jì),設(shè)計(jì)出了虛擬信號(hào)發(fā)生器軟件系統(tǒng)界面,實(shí)現(xiàn)了簡(jiǎn)單的人機(jī)交互功能。</p><p> 通過(guò)這次課程設(shè)計(jì)使我了解了虛擬信號(hào)發(fā)生器的一些相關(guān)概念、性質(zhì)。因?yàn)樵诖诉^(guò)程中用到了MATLAB軟件,使我對(duì)該軟件的操作和使用有了更多的了解。&
51、lt;/p><p><b> 五 參考文獻(xiàn)</b></p><p> 1數(shù)字信號(hào)處理 謝平 林洪彬 燕山大學(xué)出版社</p><p> 2 信號(hào)處理原理及應(yīng)用 謝平等編著 機(jī)械工業(yè)出版社</p><p> 3 MATLAB擴(kuò)展編程 何強(qiáng) 何英編著 清華大學(xué)出版社</p><p>
52、 4 數(shù)字信號(hào)處理原理實(shí)現(xiàn)與仿真 唐向宏編著 高等教育出版社、</p><p> 5 MATLAB程序設(shè)計(jì)及其在信號(hào)處理中的應(yīng)用 聶祥飛等編著 西南交通大學(xué)出版社</p><p> 6 MATLAB仿真技術(shù)與實(shí)例應(yīng)用教程 張森 張正亮等編著 機(jī)械工業(yè)出版社</p><p><b> 六 程序源代碼清單</b></p><
53、;p><b> 源程序代碼如下:</b></p><p> function varargout = signal(varargin)</p><p> % SIGNAL M-file for signal.fig</p><p> % SIGNAL, by itself, creates a new SIGNAL or
54、 raises the existing</p><p> % singleton*.</p><p><b> %</b></p><p> % H = SIGNAL returns the handle to a new SIGNAL or the handle to</p><p> %
55、 the existing singleton*.</p><p><b> %</b></p><p> % SIGNAL('CALLBACK',hObject,eventData,handles,...) calls the local</p><p> % function named
56、CALLBACK in SIGNAL.M with the given input arguments.</p><p><b> %</b></p><p> % SIGNAL('Property','Value',...) creates a new SIGNAL or raises the</p>&l
57、t;p> % existing singleton*. Starting from the left, property value pairs are</p><p> % applied to the GUI before signal_OpeningFunction gets called. An</p><p> % unrecogni
58、zed property name or invalid value makes property application</p><p> % stop. All inputs are passed to signal_OpeningFcn via varargin.</p><p><b> %</b></p><p>
59、% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one</p><p> % instance to run (singleton)".</p><p><b> %</b></p><p> % See
60、also: GUIDE, GUIDATA, GUIHANDLES</p><p> % Copyright 2002-2003 The MathWorks, Inc.</p><p> % Edit the above text to modify the response to help signal</p><p> % Last Modified by
61、GUIDE v2.5 15-Jul-2010 14:57:25</p><p> % Begin initialization code - DO NOT EDIT</p><p> gui_Singleton = 1;</p><p> gui_State = struct('gui_Name', mfilename, ...&l
62、t;/p><p> 'gui_Singleton', gui_Singleton, ...</p><p> 'gui_OpeningFcn', @signal_OpeningFcn, ...</p><p> 'gui_OutputFcn', @signal_OutputFcn, ...</p>
63、<p> 'gui_LayoutFcn', [] , ...</p><p> 'gui_Callback', []);</p><p> if nargin && ischar(varargin{1})</p><p> gui_State.gui_Callback = str2func(va
64、rargin{1});</p><p><b> end</b></p><p> if nargout</p><p> [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});</p><p><b> else</b>&
65、lt;/p><p> gui_mainfcn(gui_State, varargin{:});</p><p><b> end</b></p><p> % End initialization code - DO NOT EDIT</p><p> % --- Executes just before signa
66、l is made visible.</p><p> function signal_OpeningFcn(hObject, eventdata, handles, varargin)</p><p> % This function has no output args, see OutputFcn.</p><p> % hObject handl
67、e to figure</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> % varargin
68、 command line arguments to signal (see VARARGIN)</p><p> % Choose default command line output for signal</p><p> handles.output = hObject;</p><p> % Update handles structure<
69、;/p><p> guidata(hObject, handles);</p><p> % UIWAIT makes signal wait for user response (see UIRESUME)</p><p> % uiwait(handles.figure1);</p><p> % --- Outputs from t
70、his function are returned to the command line.</p><p> function varargout = signal_OutputFcn(hObject, eventdata, handles) </p><p> % varargout cell array for returning output args (see VARARG
71、OUT);</p><p> % hObject handle to figure</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data
72、(see GUIDATA)</p><p> % Get default command line output from handles structure</p><p> varargout{1} = handles.output;</p><p> % --- Executes on button press in radioZHENGXIAN.<
73、;/p><p> function radioZHENGXIAN_Callback(hObject, eventdata, handles)</p><p> % hObject handle to radioZHENGXIAN (see GCBO)</p><p> % eventdata reserved - to be defined in a fu
74、ture version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> set (hObject,'value',1)</p><p> set (handles.radioFANGBO,'value
75、',0)</p><p> set (handles.radioSANJIAO,'value',0)</p><p> set (handles.radioJUCHI,'value',0)</p><p> set (handles.radioSINC,'value',0)</p><
76、p> set (handles.radioMAICHONG,'value',0)</p><p> set (handles.sliderPINLV,'enable','on')</p><p> set (handles.sliderFUZHI,'enable','on')</p>
77、<p> set (handles.sliderXIANGWEI,'enable','on')</p><p> % --- Executes on button press in radioFANGBO.</p><p> function radioFANGBO_Callback(hObject, eventdata, handles)&
78、lt;/p><p> % hObject handle to radioFANGBO (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and
79、user data (see GUIDATA)</p><p> set (hObject,'value',1)</p><p> set (handles.radioZHENGXIAN,'value',0)</p><p> set (handles.radioSANJIAO,'value',0)</p&
80、gt;<p> set (handles.radioJUCHI,'value',0)</p><p> set (handles.radioSINC,'value',0)</p><p> set (handles.sliderPINLV,'enable','on')</p><p>
81、; set (handles.sliderFUZHI,'enable','on')</p><p> set (handles.sliderXIANGWEI,'enable','on')</p><p> % Hint: get(hObject,'Value') returns toggle state
82、of radioFANGBO</p><p> function editPINLV_Callback(hObject, eventdata, handles)</p><p> % hObject handle to editPINLV (see GCBO)</p><p> % eventdata reserved - to be defined
83、in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> % Hints: get(hObject,'String') returns contents of editPINLV as text</p
84、><p> % str2double(get(hObject,'String')) returns contents of editPINLV as a double</p><p> % --- Executes during object creation, after setting all properties.</p><p>
85、; function editPINLV_CreateFcn(hObject, eventdata, handles)</p><p> % hObject handle to editPINLV (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB<
86、/p><p> % handles empty - handles not created until after all CreateFcns called</p><p> % Hint: edit controls usually have a white background on Windows.</p><p> % See ISPC
87、 and COMPUTER.</p><p><b> if ispc</b></p><p> set(hObject,'BackgroundColor','white');</p><p><b> else</b></p><p> set(hObjec
88、t,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> end</b></p><p> function editFUZHI_Callback(hObject, eventdata, handles)</p><p&
89、gt; % hObject handle to editFUZHI (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUID
90、ATA)</p><p> % Hints: get(hObject,'String') returns contents of editFUZHI as text</p><p> % str2double(get(hObject,'String')) returns contents of editFUZHI as a double&l
91、t;/p><p> % --- Executes during object creation, after setting all properties.</p><p> function editFUZHI_CreateFcn(hObject, eventdata, handles)</p><p> % hObject handle to editF
92、UZHI (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles empty - handles not created until after all CreateFcns called</p><p&
93、gt; % Hint: edit controls usually have a white background on Windows.</p><p> % See ISPC and COMPUTER.</p><p><b> if ispc</b></p><p> set(hObject,'Backgrou
94、ndColor','white');</p><p><b> else</b></p><p> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> e
95、nd</b></p><p> function editXIANGWEI_Callback(hObject, eventdata, handles)</p><p> % hObject handle to editXIANGWEI (see GCBO)</p><p> % eventdata reserved - to be defi
96、ned in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> % Hints: get(hObject,'String') returns contents of editXIANGWEI as tex
97、t</p><p> % str2double(get(hObject,'String')) returns contents of editXIANGWEI as a double</p><p> % --- Executes during object creation, after setting all properties.</p>
98、<p> function editXIANGWEI_CreateFcn(hObject, eventdata, handles)</p><p> % hObject handle to editXIANGWEI (see GCBO)</p><p> % eventdata reserved - to be defined in a future versi
99、on of MATLAB</p><p> % handles empty - handles not created until after all CreateFcns called</p><p> % Hint: edit controls usually have a white background on Windows.</p><p>
100、% See ISPC and COMPUTER.</p><p><b> if ispc</b></p><p> set(hObject,'BackgroundColor','white');</p><p><b> else</b></p><p
101、> set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));</p><p><b> end</b></p><p> % --- Executes on button press in radioSANJIAO.</p>
102、<p> function radioSANJIAO_Callback(hObject, eventdata, handles)</p><p> % hObject handle to radioSANJIAO (see GCBO)</p><p> % eventdata reserved - to be defined in a future version
103、 of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> set (hObject,'value',1)</p><p> set (handles.radioFANGBO,'value',0)<
104、/p><p> set (handles.radioZHENGXIAN,'value',0)</p><p> set (handles.radioJUCHI,'value',0)</p><p> set (handles.radioSINC,'value',0)</p><p> set
105、 (handles.sliderPINLV,'enable','on')</p><p> set (handles.sliderFUZHI,'enable','on')</p><p> set (handles.sliderXIANGWEI,'enable','on')</p>
106、;<p> % Hint: get(hObject,'Value') returns toggle state of radioSANJIAO</p><p> % --- Executes on button press in radioJUCHI.</p><p> function radioJUCHI_Callback(hObject, even
107、tdata, handles)</p><p> % hObject handle to radioJUCHI (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure wi
108、th handles and user data (see GUIDATA)</p><p> set (hObject,'value',1)</p><p> set (handles.radioFANGBO,'value',0)</p><p> set (handles.radioSANJIAO,'value
109、9;,0)</p><p> set (handles.radioZHENGXIAN,'value',0)</p><p> set (handles.radioSINC,'value',0)</p><p> set (handles.sliderPINLV,'enable','on')<
110、/p><p> set (handles.sliderFUZHI,'enable','on')</p><p> set (handles.sliderXIANGWEI,'enable','on')</p><p> % Hint: get(hObject,'Value') retur
111、ns toggle state of radioJUCHI</p><p> % --- Executes on button press in radioSINC.</p><p> function radioSINC_Callback(hObject, eventdata, handles)</p><p> % hObject handle to
112、 radioSINC (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p>
113、set (hObject,'value',1)</p><p> set (handles.radioFANGBO,'value',0)</p><p> set (handles.radioSANJIAO,'value',0)</p><p> set (handles.radioJUCHI,'valu
114、e',0)</p><p> set (handles.radioZHENGXIAN,'value',0)</p><p> set (handles.sliderPINLV,'enable','on')</p><p> set (handles.sliderFUZHI,'enable'
115、,'on')</p><p> set (handles.sliderXIANGWEI,'enable','on')</p><p> % Hint: get(hObject,'Value') returns toggle state of radioSINC</p><p> % --- Exe
116、cutes on button press in radioMAICHONG.</p><p> function radioMAICHONG_Callback(hObject, eventdata, handles)</p><p> % hObject handle to radioMAICHONG (see GCBO)</p><p> % eve
117、ntdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> set (hObject,'value',1)</p><p&
118、gt; set (handles.radioFANGBO,'value',0)</p><p> set (handles.radioSANJIAO,'value',0)</p><p> set (handles.radioJUCHI,'value',0)</p><p> set (handles.radi
119、oSINC,'value',0)</p><p> set (handles.radioZHENGXIAN,'value',0)</p><p> set (handles.sliderPINLV,'enable','on')</p><p> set (handles.sliderFUZHI,&
120、#39;enable','on')</p><p> set (handles.sliderXIANGWEI,'enable','on')</p><p> % Hint: get(hObject,'Value') returns toggle state of radioMAICHONG</p>&
121、lt;p> % --- Executes on slider movement.</p><p> function sliderPINLV_Callback(hObject, eventdata, handles)</p><p> % hObject handle to sliderPINLV (see GCBO)</p><p> % ev
122、entdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><p> f=get(hObject,'value');</p><p
123、> set(handles.editPINLV,'string',num2str(f));</p><p> % Hints: get(hObject,'Value') returns position of slider</p><p> % get(hObject,'Min') and get(hObject,&
124、#39;Max') to determine range of slider</p><p> % --- Executes on slider movement.</p><p> function sliderFUZHI_Callback(hObject, eventdata, handles)</p><p> % hObject hand
125、le to sliderFUZHI (see GCBO)</p><p> % eventdata reserved - to be defined in a future version of MATLAB</p><p> % handles structure with handles and user data (see GUIDATA)</p><
126、p> A=get(hObject,'value');</p><p> set(handles.editFUZHI,'string',num2str(A));</p><p> % Hints: get(hObject,'Value') returns position of slider</p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- labview(虛擬信號(hào)發(fā)生器)課程設(shè)計(jì)
- matlab課程設(shè)計(jì)---虛擬信號(hào)發(fā)生器
- 課程設(shè)計(jì)---雙通道虛擬信號(hào)發(fā)生器設(shè)計(jì)
- 信號(hào)發(fā)生器課程設(shè)計(jì)----函數(shù)信號(hào)發(fā)生器
- 虛擬儀器課程設(shè)計(jì)--信號(hào)發(fā)生器的設(shè)計(jì)
- 信號(hào)發(fā)生器課程設(shè)計(jì)報(bào)告--函數(shù)信號(hào)發(fā)生器的設(shè)計(jì)
- 信號(hào)發(fā)生器課程設(shè)計(jì)---函數(shù)發(fā)生器的設(shè)計(jì)
- 課程設(shè)計(jì)--信號(hào)發(fā)生器設(shè)計(jì)
- 基于虛擬儀器的信號(hào)發(fā)生器設(shè)計(jì) 課程設(shè)計(jì)
- 信號(hào)發(fā)生器課程設(shè)計(jì)
- 信號(hào)發(fā)生器課程設(shè)計(jì)
- 虛擬儀器課程設(shè)計(jì)-多路信號(hào)發(fā)生器
- 虛擬儀器課程設(shè)計(jì)-多路信號(hào)發(fā)生器
- 課程設(shè)計(jì)--信號(hào)發(fā)生器的設(shè)計(jì)
- labview課程設(shè)計(jì)報(bào)告(雙通道虛擬信號(hào)發(fā)生器設(shè)計(jì))
- 555信號(hào)發(fā)生器課程設(shè)計(jì)
- 函數(shù)信號(hào)發(fā)生器課程設(shè)計(jì)
- 簡(jiǎn)易信號(hào)發(fā)生器 課程設(shè)計(jì)
- 函數(shù)信號(hào)發(fā)生器課程設(shè)計(jì)
- 函數(shù)信號(hào)發(fā)生器課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論