1.创建GUI工程

在这里插入图片描述

2.布局添加示波器控件

在这里插入图片描述

3.布局添加按键

在这里插入图片描述
在这里插入图片描述

布局如下
每个数字和英文字母Button的Tag和它显示的数字一致,比如按键1的Tag就是pushbutton1,按键A的Tag为pushbuttonA,按键#的Tag为pushbuttonJin,按键*的Tag为pushbuttonStar。
在这里插入图片描述

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的回调
运行结果
按下按键,先播放声音,然后显示波形
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐