让MATLAB响起来~

欢迎访问我的个人网站:http://www.qingshuimonk.com/


期末了想水一水,突然想起让MATLAB发点音,于是上网搜索资料倒腾了一下,功夫不负有心人,终于是弄出来了。


以下内容参考自“可健康了”的博客:

http://blog.sina.com.cn/s/blog_8e356e16010119lp.html

 

matla播放音乐是由sound(Y,fs,bits)函数完成的,该函数的3个参数代表输入信号、采样率、比特率。先说采样率fs的设置,人耳能够听到的声音范围是20~20000Hz。根据采样定理fs只需要大于40000即可(其实这里没懂)。此处采样率的设置采用了MP3的标准,即fs=44.1k.再说输入信号Y,Y一般是一个正弦波,如A*sin(2*pi*w*t)。其中A控制着声音的大小,w控制着声音的高低,t的范围控制着声音的长短,所以理论上利用这个公式可以发出任何声音,只是不能控制音色和音质(音色音质很难用参数量化,我问了一下学语音的同学,这个东西跟音频谱重心,音频扩展度和音频谱平坦度有关系,这里不作讨论)。比特率采用默认值即可,该参数省略。

于是用下面的公式就可以播放出标准音la:

fs=44100;

t=0: 1/fs: 0.5;

la =sin(2*pi*440*t); 

sound(la, fs)

另外,音高和频率是指数的关系,, 其中p是音高,f是频率。


程序设计:

a)        编写一个程序,能够产生2,4,8分音符,从Do到Xi的节拍。

代码如下:

你可能感兴趣的:(matlab)