[记录帖]Matlab Appdesigner 信号发生器 电子琴 拨号键盘

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编程是面向对象编程 具有抽象性 封装性 继承性 多态性 模块化的特点

今后要加强编程能力和程序设计思想的锻炼

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值