MATLAB番外篇之播放音乐

默认采样率

在这里插入图片描述
这个波的震动并没有声音,因为他太短了,所以听不到
在这里插入图片描述
1hz,次声波,我们人耳听不到,所以要想办法增加周期


音乐里边有标准音高
440

 Fs=8192;
>> x=linspace(0,2*pi,Fs);
>> y=sin(x);
>> plot(x,y);
>> sound(y,Fs);
>> y=sin(440*x);
>> plot(x,y);
>> sound(y,Fs);
>>  sound(y,Fs);
>> 

这个有声音,哈哈哈,激动。
——————————————————————
声音的采样率不会对声音产生影响
在这里插入图片描述
所以唯一对声音产生影响的是它的频率
——————————————————————————————————————————————————————————————————————————

十二平均律

在这里插入图片描述
一个八度,那几个do re mi fa so la si 过一遍就是一个八度
在这里插入图片描述
这七个音都可以发出来

Fs=8192;
>> x=linspace(0,2*pi,Fs);
>> y1=sin(440*x);
>> y2=sin(500*x);
>> freqs=[523,587,659,698,783,880,988];
>> y1=sin(freqs(1)*x);
>> y2=sin(freqs(2)*x);
>> y3=sin(freqs(3)*x);
>> 
>> y4=sin(freqs(4)*x);
>> y5=sin(freqs(5)*x);
>> y6=sin(freqs(6)*x);
>> y7=sin(freqs(7)*x);
>> y=[y1,y2,y3,y4,y5,y6,y7];
>> sound(y,Fs)

一闪一闪亮晶晶

Fs=8192;
x=linspace(0,2*pi,Fs);
freqs=[523,587,659,698,783,880,988];
y1=sin(freqs(1)*x) .* (1-x/(2*pi));
y2=sin(freqs(1)*x) .* (1-x/(2*pi));
y3=sin(freqs(5)*x) .* (1-x/(2*pi));
y4=sin(freqs(5)*x) .* (1-x/(2*pi));
y5=sin(freqs(6)*x) .* (1-x/(2*pi));
y6=sin(freqs(6)*x) .* (1-x/(2*pi));
y7=sin(freqs(5)*x) .* (1-x/(2*pi));
y8=sin(freqs(5)*x);
y=[y1,y2,y3,y4,y5,y6,y7,y8];
%plot(y)
sound(y,Fs);

本次终极版

调用函数

Fs=8192;
y1=gen_wave(1,0.5);
y2=gen_wave(1,0.5);
y3=gen_wave(5,0.5);
y4=gen_wave(5,0.5);
y5=gen_wave(6,0.5);
y6=gen_wave(6,0.5);
y7=gen_wave(5,1);
y=[y1,y2,y3,y4,y5,y6,y7];

y1=gen_wave(4,0.5);
y2=gen_wave(4,0.5);
y3=gen_wave(3,0.5);
y4=gen_wave(3,0.5);
y5=gen_wave(2,0.5);
y6=gen_wave(2,0.5);
y7=gen_wave(1,1);
y=[y,y1,y2,y3,y4,y5,y6,y7];
%plot(y)
sound(y,Fs);

被调用函数

function y=gen_wave(tone,rythm)
Fs=8192;
freqs=[523,587,659,698,783,880,988];
x=linspace(0,2*pi*rythm,floor(Fs*rythm));
y=sin(freqs(tone)*x).*(1-x/(rythm*2*pi));
end

看下图形

在这里插入图片描述

声音效果

littlestar音乐

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是数学系的小孩儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值