版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課程名稱:計算機輔助分析大作業(yè)</p><p> 設(shè)計題目: 虛擬信號發(fā)生器 </p><p> 院 系: </p><p> 專 業(yè): </p><p> 年
2、級: </p><p> 姓 名: </p><p> 指導(dǎo)教師: </p><p> 2011 年 5 月 20 日</p><p><b>
3、; 原理分析</b></p><p> 該虛擬信號發(fā)生器的設(shè)計由GUI界面及其對應(yīng)的程序組成。信號發(fā)生器又稱信號源或振蕩器,在生產(chǎn)實踐和科技領(lǐng)域中有著廣泛地應(yīng)用。各種波形曲線均可以用三角函數(shù)方程式來表示。能夠產(chǎn)生多種波形,如三角波、鋸齒波、方波、正弦波的電路被稱為函數(shù)信號發(fā)生器。函數(shù)信號發(fā)生器在電路實驗和設(shè)備檢測中具有十分廣泛的用途。本文設(shè)計了一種可以產(chǎn)生正弦波、方波、三角波、鋸齒波的虛擬信號發(fā)生
4、器。</p><p><b> 建立圖形用戶界面</b></p><p> 圖形用戶界面(Graphical User Interface,簡稱GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。</p><p><b> 具體步驟如下:</b></p><p> 在Comm
5、and 里面輸入 GUIDE 或者從菜單里面,或者從快捷按鈕均可進入GUIDE,然后新建一個GUI,進入布局編輯器。</p><p> 為GUI添加控件:編輯框(Edit Text)控件、靜態(tài)文本(Static Text)、 滾動條(Slider)控件、按鈕(Push Button)控件 、坐標(biāo)軸(Axes)控件、面板(Panel)控件,并按照自己的想象擺放GHI控件,即做布局設(shè)計。<
6、;/p><p><b> 設(shè)置控件的屬性</b></p><p><b> 圖1 對象瀏覽器</b></p><p><b> 控件主要屬性列表:</b></p><p> 注:其余屬性中,大小位置就不敘述了,其他默認,或者在m文件中有設(shè)置</p><
7、p> 為各個控件添加回調(diào)函數(shù),然后保存或者運行它,自動生成FIG文件和M文件</p><p> 在M文件對應(yīng)回調(diào)函數(shù)中編程</p><p><b> 界面外觀:</b></p><p> 圖2 GUI界面</p><p><b> GUI程序設(shè)計</b></p>&
8、lt;p> 1)正弦按鈕的Callback函數(shù):</p><p> global p1;%GLOBAL Define global variable.</p><p> global p2;</p><p> global p3;</p><p> global p4;</p><p><b>
9、; p2=0;</b></p><p><b> p3=0;</b></p><p><b> p4=0;</b></p><p> p1=get(handles.pushbuttonZHENGXIAN,'value');%獲取正弦按鈕的當(dāng)前值并賦給p1</p><p
10、> while p1==1</p><p> j=get(handles.sliderfuzhi,'value');%獲取幅值滾動條的值,并且賦給j</p><p> k=get(handles.sliderpinlv,'value');</p><p> l=get(handles.sliderxiangwei,
11、9;value');</p><p> set(handles.editfuzhi,'string',num2str(j));%修改editfuzhi 的值為滾動條當(dāng)前的值</p><p> set(handles.editpinlv,'string',num2str(k));</p><p> set(handles.
12、editxiangwei,'string',num2str(l));</p><p> A=str2num(get(handles.editfuzhi,'string'));%獲取幅值選擇框的值,并且賦給A</p><p> f=str2num(get(handles.editpinlv,'string'));</p>&l
13、t;p> P=str2num(get(handles.editxiangwei,'string'));</p><p> t=0:0.001:8*pi;</p><p> y=A*sin(2*pi*f*t+P*2*pi);</p><p> plot(t,y);</p><p> axis([0,8*pi,-1
14、.2,1.2]); </p><p><b> grid on;</b></p><p><b> break;</b></p><p><b> end</b></p><p> 方波按鈕的Callback函數(shù):</p><p> globa
15、l p1;</p><p> global p2;</p><p> global p3;</p><p> global p4;</p><p><b> p1=0;</b></p><p><b> p3=0;</b></p><p>&
16、lt;b> p4=0;</b></p><p> p2=get(handles.pushbutton2FANGBO,'value');</p><p> j=get(handles.sliderfuzhi,'value');</p><p> k=get(handles.sliderpinlv,'va
17、lue');</p><p> l=get(handles.sliderxiangwei,'value');</p><p> set(handles.editfuzhi,'string',num2str(j));</p><p> set(handles.editpinlv,'string',num2s
18、tr(k));</p><p> set(handles.editxiangwei,'string',num2str(l));</p><p> A=str2num(get(handles.editfuzhi,'string'));</p><p> f=str2num(get(handles.editpinlv,'st
19、ring'));</p><p> P=str2num(get(handles.editxiangwei,'string'));</p><p> t=0:0.001:6; </p><p> y=A*square(2*pi*f*t+4*P/f,50);</p><p> plot(t,y);</p>
20、;<p><b> grid on;</b></p><p> axis([0,6,-1.2,1.2]);</p><p> 鋸齒波按鈕的Callback函數(shù):</p><p> global p1;</p><p> global p2;</p><p> global
21、 p3;</p><p> global p4;</p><p><b> p1=0;</b></p><p><b> p2=0;</b></p><p><b> p4=0;</b></p><p> p3=get(handles.push
22、button3JUCHIBO,'value');% --- Executes on slider movement.</p><p> j=get(handles.sliderfuzhi,'value');</p><p> k=get(handles.sliderpinlv,'value');</p><p>
23、 l=get(handles.sliderxiangwei,'value');</p><p> set(handles.editfuzhi,'string',num2str(j));</p><p> set(handles.editpinlv,'string',num2str(k));</p><p> se
24、t(handles.editxiangwei,'string',num2str(l));</p><p> A=str2num(get(handles.editfuzhi,'string'));</p><p> f=str2num(get(handles.editpinlv,'string'));</p><p>
25、; P=str2num(get(handles.editxiangwei,'string'));</p><p> t=0:0.001:20; y=A*sawtooth(pi*f*t+4*P/f,1);</p><p> plot(t,y);</p><p><b> grid on;</b></p>&l
26、t;p> axis([0,20,-1.2,1.2]);</p><p> 三角波按鈕的Callback函數(shù):</p><p> global p1;</p><p> global p2;</p><p> global p3;</p><p> global p4;</p><p
27、><b> p2=0;</b></p><p><b> p3=0;</b></p><p><b> p1=0;</b></p><p> p4=get(handles.pushbutton4SANJIAO,'value');</p><p>
28、 j=get(handles.sliderfuzhi,'value');</p><p> k=get(handles.sliderpinlv,'value');</p><p> l=get(handles.sliderxiangwei,'value');</p><p> set(handles.editfu
29、zhi,'string',num2str(j));</p><p> set(handles.editpinlv,'string',num2str(k));</p><p> set(handles.editxiangwei,'string',num2str(l));</p><p> A=str2num(get
30、(handles.editfuzhi,'string'));</p><p> f=str2num(get(handles.editpinlv,'string'));</p><p> P=str2num(get(handles.editxiangwei,'string'));</p><p> t=0:0.00
31、1:20; y=A*sawtooth(pi*f*t+4*P/f,0.5);</p><p> plot(t,y);</p><p><b> grid on;</b></p><p> axis([0,20,-1.2,1.2]);</p><p> 滾動條的Callback函數(shù)(各個滾動條都一樣)</p&g
32、t;<p> global p1;</p><p> global p2;</p><p> global p3;</p><p> global p4;</p><p> j=get(handles.sliderfuzhi,'value');%獲取幅值滾動條的值,并且賦給j</p>&l
33、t;p> k=get(handles.sliderpinlv,'value');%獲取頻率滾動條的值,并且賦給k</p><p> l=get(handles.sliderxiangwei,'value');%獲取相位滾動條的值,并且賦給l</p><p> set(handles.editfuzhi,'string',num2s
34、tr(j));%修改editfuzhi 的值為滾動條當(dāng)前的值</p><p> set(handles.editpinlv,'string',num2str(k));</p><p> set(handles.editxiangwei,'string',num2str(l));</p><p> A=str2num(get(ha
35、ndles.editfuzhi,'string'));%獲取幅值選擇框的值,并且賦給A</p><p> f=str2num(get(handles.editpinlv,'string'));</p><p> P=str2num(get(handles.editxiangwei,'string'));</p><p&
36、gt; while 1 %一直判斷,遇到有按鍵就執(zhí)行,然后退出。</p><p> if p1==1 %如果選擇了正弦波</p><p> t=0:0.001:8*pi;</p><p> y=A*sin(2*pi*f*t+P*2*pi);</p><p> plot(t,y);</p><p><
37、;b> grid on;</b></p><p> axis([0,8*pi,-1.2,1.2]); </p><p><b> end</b></p><p> if p2==1 %如果選擇了方波</p><p> t=0:0.001:6; y=A*square(2*pi*f*t+4*P/f
38、,50);</p><p> plot(t,y);</p><p><b> grid on;</b></p><p> axis([0,6,-1.2,1.2]);</p><p><b> end</b></p><p> if p3==1 %如果選擇了鋸齒波&l
39、t;/p><p> t=0:0.001:20; y=A*sawtooth(pi*f*t+4*P/f,1);</p><p> plot(t,y);</p><p><b> grid on;</b></p><p> axis([0,20,-1.2,1.2]);</p><p><b&g
40、t; end</b></p><p> if p4==1 %如果選擇了三角波</p><p> t=0:0.001:20; y=A*sawtooth(pi*f*t+4*P/f,0.5);</p><p> plot(t,y);</p><p><b> grid on;</b></p>
41、<p> axis([0,20,-1.2,1.2]);</p><p><b> end</b></p><p><b> break;</b></p><p><b> end</b></p><p> 清除按鈕的Callback函數(shù)</p>
42、;<p> t=0:pi/360:8*pi;</p><p><b> y=0;</b></p><p> global p1;</p><p> global p2;</p><p> global p3;</p><p> global p4;</p>
43、<p><b> p1=0;</b></p><p><b> p2=0;</b></p><p><b> p3=0;</b></p><p><b> p4=0;</b></p><p> set(handles.sliderfuz
44、hi,'value',0);</p><p> set(handles.sliderpinlv,'value',0);</p><p> set(handles.sliderxiangwei,'value',0);</p><p> set(handles.editfuzhi,'string',n
45、um2str(0));</p><p> set(handles.editpinlv,'string',num2str(0));</p><p> set(handles.editxiangwei,'string',num2str(0));</p><p> plot(t,y);</p><p><
46、b> grid on;</b></p><p> axis([0,8*pi,-1.2,1.2]); </p><p><b> 仿真結(jié)果</b></p><p> 圖3 正弦波(對應(yīng)參數(shù)見圖)</p><p> 圖4 方波(對應(yīng)參數(shù)見圖)</p><p> 圖5
47、 鋸齒波(對應(yīng)參數(shù)見圖)</p><p> 圖6 三角波(對應(yīng)參數(shù)見圖)</p><p><b> 圖6 清除</b></p><p><b> 結(jié)果分析</b></p><p> 通過建立GUI界面,編輯控件對應(yīng)的回調(diào)函數(shù),然后運行仿真,即可實現(xiàn)虛擬信號發(fā)生器的功能。通過選擇信號類型,
48、虛擬信號發(fā)生器能夠?qū)崿F(xiàn)正弦、方波、三角波、鋸齒波的信號的輸出,調(diào)節(jié)滾動條得到需要波形的頻率幅值相位參數(shù),就能得到對應(yīng)波形。</p><p><b> 結(jié)論</b></p><p> 使用matlab 軟件產(chǎn)生信號波形,實現(xiàn)了虛擬數(shù)字信號發(fā)生器的設(shè)計。設(shè)計界面簡單直觀,具有一定的參考應(yīng)用價值。</p><p><b> 參考文獻&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- labview(虛擬信號發(fā)生器)課程設(shè)計
- 課程設(shè)計---虛擬信號發(fā)生器的設(shè)計
- 信號發(fā)生器課程設(shè)計----函數(shù)信號發(fā)生器
- 課程設(shè)計---雙通道虛擬信號發(fā)生器設(shè)計
- 虛擬儀器課程設(shè)計-多路信號發(fā)生器
- 虛擬儀器課程設(shè)計-多路信號發(fā)生器
- 信號發(fā)生器課程設(shè)計
- 信號發(fā)生器課程設(shè)計
- 課程設(shè)計--信號發(fā)生器設(shè)計
- 信號發(fā)生器課程設(shè)計報告--函數(shù)信號發(fā)生器的設(shè)計
- 虛擬儀器課程設(shè)計--信號發(fā)生器的設(shè)計
- 信號發(fā)生器課程設(shè)計---函數(shù)發(fā)生器的設(shè)計
- 函數(shù)信號發(fā)生器課程設(shè)計
- 正交信號發(fā)生器課程設(shè)計
- 簡易信號發(fā)生器課程設(shè)計
- 課程設(shè)計-簡易信號發(fā)生器
- 函數(shù)信號發(fā)生器課程設(shè)計
- 555信號發(fā)生器課程設(shè)計
- 函數(shù)信號發(fā)生器課程設(shè)計
- 簡易信號發(fā)生器 課程設(shè)計
評論
0/150
提交評論