筆記九簡單設(shè)計(jì)一個(gè)信號發(fā)生器的GUI界面,通過輸入波形參數(shù),然后選擇波形,就可以生成對應(yīng)的波形。
1. 打開GUI
選擇Blank GUI,然后更改保存路徑
2. 點(diǎn)擊坐標(biāo)區(qū)
然后拖動(dòng)出來
3.再拖動(dòng)兩個(gè)面板
4. 雙擊面板查看它的屬性
更改字體大小和顯示內(nèi)容
5. 拖動(dòng)6個(gè)靜態(tài)文本和6個(gè)可編輯文本
6. 雙擊靜態(tài)文本查看它的屬性
可以更改字體大小和顯示內(nèi)容
7 點(diǎn)擊可編輯文本
更改字體大小和顯示內(nèi)容以及標(biāo)簽Tag
8. 拖動(dòng)一個(gè)按鈕
9. 雙擊按鈕查看它的屬性
更改字體大小和顯示內(nèi)容以及Tag
10. 拖動(dòng)2個(gè)靜態(tài)文本和1個(gè)可編輯文本
11. 雙擊靜態(tài)文本查看屬性
更改字體大小和顯示內(nèi)容
12. 雙擊可編輯文本查看屬性
更改字體大小和顯示內(nèi)容以及Tag
13. 右鍵方波按鈕
選擇查看回調(diào),點(diǎn)擊Callback
A=str2num(get(handles.fudu,'string')); % 獲取信號的幅度
w=str2num(get(handles.pinlv,'string'));% 獲取信號的頻率
z=str2num(get(handles.zhankongbi,'string'));% 獲取方波的占空比
x1=str2num(get(handles.x1,'string')); % 獲取橫坐標(biāo)的起始值
x2=str2num(get(handles.x2,'string')); % 獲取橫坐標(biāo)的終止值
y1=str2num(get(handles.y1,'string')); % 獲取縱坐標(biāo)的起始值
y2=str2num(get(handles.y2,'string')); % 獲取縱坐標(biāo)的終止值
t=x1:0.01:x2; % 信號的橫坐標(biāo)范圍
y=A*square(w*t,z); % 生成方波信號
plot(handles.axes1,t,y,'LineWidth',2); % 繪制方波信號,藍(lán)色,寬度為2
axis([x1,x2,y1,y2]); % 設(shè)置坐標(biāo)軸范圍
guidata(hObject,handles); % 刷新數(shù)據(jù)
14 展示方波
15. 同樣可以生成三角波(三角波需要寬度和斜率這兩個(gè)參數(shù))
拖動(dòng)1個(gè)按鈕,2個(gè)靜態(tài)文本和2個(gè)可編輯文本
然后更改字體大小和顯示內(nèi)容以及Tag
16. 右鍵三角波
查看回調(diào),點(diǎn)擊callback
x1=str2num(get(handles.x1,'string'));% 獲取橫坐標(biāo)的起始值
x2=str2num(get(handles.x2,'string'));% 獲取橫坐標(biāo)的終止值
y1=str2num(get(handles.y1,'string'));% 獲取縱坐標(biāo)的起始值
y2=str2num(get(handles.y2,'string'));% 獲取縱坐標(biāo)的終止值
kuandu=str2num(get(handles.kuandu,'string'));% 獲取三角波寬度
xielv=str2num(get(handles.xielv,'string')); % 獲取三角波斜率
A=str2num(get(handles.fudu,'string'));% 獲取三角波幅度
w=str2num(get(handles.pinlv,'string'));% 獲取三角波頻率
t=x1:0.01:x2; % 信號的橫坐標(biāo)范圍
y=A*tripuls(w*t,kuandu,xielv); % 生成三角波信號
plot(handles.axes1,t,y); % 繪制三角波
axis([x1 x2 y1 y2]); % 坐標(biāo)軸范圍設(shè)置
guidata(hObject,handles); % 刷新數(shù)據(jù)
17. 三角波展示
18. 再拖動(dòng)一個(gè)按鈕
雙擊查看屬性,更改字體大小和顯示內(nèi)容以及Tag
19. 右鍵正弦波按鈕
查看回調(diào),點(diǎn)擊callback
x1=str2num(get(handles.x1,'string')); % 獲取橫坐標(biāo)的起始值
x2=str2num(get(handles.x2,'string')); % 獲取橫坐標(biāo)的終止值
y1=str2num(get(handles.y1,'string')); % 獲取縱坐標(biāo)的起始值
y2=str2num(get(handles.y2,'string')); % 獲取縱坐標(biāo)的終止值
A=str2num(get(handles.fudu,'string'));% 獲取信號的幅度
w=str2num(get(handles.pinlv,'string'));% 獲取信號的頻率
t=x1:0.01:x2; % 信號的橫坐標(biāo)范圍
y=A*sin(w*t); % 生成正弦信號
plot(handles.axes1,t,y,'LineWidth',2);% 繪制正弦信號,線寬為2,藍(lán)色
axis([x1 x2 y1 y2]); % 坐標(biāo)軸范圍設(shè)置
guidata(hObject,handles); % 刷新數(shù)據(jù)
20. 正弦波展示
21. 再拖動(dòng)一個(gè)按鈕
雙擊查看屬性,更改字體大小和顯示內(nèi)容以及Tag
22. 右鍵鋸齒波按鈕
點(diǎn)擊查看回調(diào),選擇Callback
xl=str2num(get(handles.x1,'string')); % 獲取橫坐標(biāo)的起始值
x2=str2num(get(handles.x2,'string')); % 獲取橫坐標(biāo)的終止值
y1=str2num(get(handles.y1,'string')); % 獲取縱坐標(biāo)的起始值
y2=str2num(get(handles.y2,'string')); % 獲取縱坐標(biāo)的終止值
A=str2num(get(handles.fudu,'string'));% 獲取信號的幅度
w=str2num(get(handles.pinlv,'string'));% 獲取信號的頻率
t=xl:0.01:x2; % 信號的橫軸范圍
y=A*sawtooth(w*t); % 生成鋸齒波信號
plot(handles.axes1,t,y,'LineWidth',2);% 繪制鋸齒波,線寬為2,
axis([xl x2 y1 y2]); % 坐標(biāo)軸范圍設(shè)置
guidata(hObject,handles); % 刷新數(shù)據(jù)
23. 鋸齒波展示
24. 清空按鈕
拖動(dòng)一個(gè)按鈕,雙擊查看屬性,更改字體大小和顯示內(nèi)容以及Tag
25. 右鍵清空按鈕
查看回調(diào),點(diǎn)擊callback文章來源:http://www.zghlxwxcb.cn/news/detail-466167.html
try
delete(allchild(handles.axes1));% 清空坐標(biāo)區(qū)
end
guidata(hObject,handles); % 刷新數(shù)據(jù)
26. 整體信號發(fā)生器展示
文章來源地址http://www.zghlxwxcb.cn/news/detail-466167.html
到了這里,關(guān)于MATLAB GUI筆記(九):信號發(fā)生器的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!