1.创建GUI工程
![在这里插入图片描述](https://img-blog.csdnimg.cn/822689e7b8054f2586a72df70360cfe9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IOh5YiaMjAyMQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
2.布局添加示波器控件
![在这里插入图片描述](https://img-blog.csdnimg.cn/47d656df09cc4b8b80f12fd018c1e41d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IOh5YiaMjAyMQ==,size_19,color_FFFFFF,t_70,g_se,x_16)
3.布局添加按键
![在这里插入图片描述](https://img-blog.csdnimg.cn/a716ac9a48974c12a241393d7f6cf243.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IOh5YiaMjAyMQ==,size_14,color_FFFFFF,t_70,g_se,x_16)
布局如下 每个数字和英文字母Button的Tag和它显示的数字一致,比如按键1的Tag就是pushbutton1,按键A的Tag为pushbuttonA,按键#的Tag为pushbuttonJin,按键*的Tag为pushbuttonStar。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4d8be18bbc284378ade130c03eeb8c09.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IOh5YiaMjAyMQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
4.写每个Button的回调函数
回调如下:
function pushbutton1_Callback(hObject, eventdata, handles)
Fs=44100;dt=1.0/Fs;
T=0.5;N=T/dt;
t=[0:N-1]/N;% [0:N-1]的意思是一个数组,数组元素为0到N-1,[0:N-1]/N的意思是将这个数组中的每一个元素都除以N
%disp(num2str([0:N-1]));%打印查看[0,N-1]的输出
%disp(num2str(t));%打印查看[0,N-1]/N的输出
x1=0.3*sin(2*pi* 1209 *t);
x2=0.3*sin(2*pi* 697 *t);
x=x1+x2;
plot(t,x,'b','LineWidth',1.5);
axis([0,0.01,-0.5,0.5]);
grid on;
wavplay(x,Fs);
其中 x1=0.3sin(2pi* 1209 t); 和 x2=0.3sin(2pi 697 *t); 中的频率就是取自下面这张图中按键1对应的两个频率。 同理可以实现其他的Button的回调 运行结果 按下按键,先播放声音,然后显示波形 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2bedb63f138045499aec5b30f35ba9e5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6IOh5YiaMjAyMQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
|