2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論