2023/5/19 第一次写文章 记录一下本周学习Matlab Appdesigner 完成作业的思路和一些注意事项
一、信号发生器
信号发生器的功能是生成信号通过拖动滑块改变函数的有关参数 变化体现在坐标轴的函数形状上
作者在这里做了5个函数 用的是switch case 来实现函数的选择
分别是正弦函数Sin 方波函数Square 锯齿波Sawtooth 白噪声Randn 线性扫频波Chrip
通过Appdesigner的下拉框控件 实现选择我们需要显示的函数
使用一个开关Switch按钮 来控制整个信号发生器 如果开关置于off 则信号发生器不起作用
接着需要考虑好我们需要哪些变量,通过何种控件来改变变量的值
关键部分
1.如何更新值 当我们改变滑块的值时 因为不在同一个函数内 而且一个函数需要改变的值不止是一个 所以我们需要把信号发生函数写在全局变量这一部分 通过点击按钮 来调用全局变量这里的函数 实现值的传递
2.基本格式
properties(Access = private)
%定义全局变量
end
methods(Access = private)
function updatePlot(app)%这部分是主函数部分
end
end
3.需要熟悉基本控件的用法
二、电子琴
在完成了第一个信号发生器之后 电子琴的思路也是一样 因为电子琴发出声音的音调不同的关键点在于在于正弦函数的频率不同 所以我们只需要每次在不同的按键激活的时候给主函数不同的频率值 就可以实现不同按键发出不同的声音
可以定义一个全局变量f 按下的时候按键值为app.f 通过f全局变量的性质 可以实现每次按下将特定的f值输入主函数 实现绘图和发出声音
三、拨号键盘
拨号键盘和电子琴类似 首先要明白他的发声原理
上图是所给的参数和要求 编程思路为 首先定义横坐标a1 a2 a3 a4 纵坐标b1 b2 b3 b4
接下来设计主函数
因为这里有两个变量 f1 f2 所以我们需要定义两个全局变量
然后在每个按钮的回调函数中 设置全局变量f1 f2的值 接着调用主函数 就可以实现不同的按键组合不同的频率 发出不同的声音
三个题目的最重要的部分就是实现值更新 这也是困扰了我很久的问题
理清楚回调函数和全局变量函数的关系 就能比较容易的完成本次作业
Appdesigner编程是面向对象编程 具有抽象性 封装性 继承性 多态性 模块化的特点
今后要加强编程能力和程序设计思想的锻炼