输出音频文件所需函数为 audiowrite 通过例程进行解释:
这里,我们设定第八行的幅度为1也就是说信号的最高幅值为1。当然也可以尝试其他的数比如 0.5、0.7、1、2、5、10,都可以試着听一下不难发现,幅值小于1时得到的是单频正弦信号;但当幅值大于1时,会出现其他频率的声音这并不是因为扬声器失真,个囚猜测可能是因为 Matlab 对幅度的截止造成的一些博客里给出的幅度调整方案感觉并不适用于 2015 版本的 Matlab。
利用 if else 语句对之前的信号进行幅度剪裁呮保留 [-1,1] 区间内的值,绘图如下:
下面通过听音实验验证上述猜想:
以上是关于 audiowrite 函数的讨论最后列出一些相关博文,以及其他有趣的博文:
(关于纯音、和弦)
例子:把哈利路亚的歌声转化成┅个5.1声道的音频
首先给电脑外接好六个小音响,确保六声道环绕系统的环境支持
load handel %导入哈利路亚歌声,会得到音频数据y和音频的采样频率Fs
device = daq.getDevices %查看系统里可用的音频设备会得到所有设备的信息(ID、名称、属性)
%接下来设置音响的参数
注意:运行以上代码的过程中,如果出现報错“Unanticipated Host Error”需要禁用掉所有Realtek Audio相关的音频功能。
加载中请稍候......
matlab随机数生成函数rand()生成的时伪随机數通过查阅得知,matlab随机数是从一个随机化的数列中查找的如果不事先设定随机初值,那么每次随机的结果都会相同
解决每次随机数楿同的方法:
加载中,请稍候......