⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab_singsing.m

📁 让程序直接运行
💻 M
字号:
%本程序作用:
%在简谱序列确定情况下,拟合电子音乐
%简谱频率对照表,可由相关资料查得
%然后找到简谱对应的频率F
%各个音符在时间轴上的位置,既是相移Phy
%波形函数采用正弦震荡,
%起振用一个阶跃函数,衰减采用指数衰减
%输出波形,播放声音,并写入wav文件
clear
%简谱表
%----1---2---3---4---5---6---7----
fl=[262 294 330 349 392 440 496];
flt=[277 311 0 370 415 466 0];
fm=[523	578 659	698 784	880 988];
fmt=[554 622 0 740 831 932 0];
fh=[1046 1175 1318 1397 1568 1760 1976];
fht=[1109 1245 0 1480 1661 1865 0];

%简谱序列:
%1 2 3 1 1 2 3 1 3 4 5 - 3 4 5 - 56 54 3 1 56 54 3 1 2 5- 1 - 2 5- 1 -
pu=[1 2 3 1 1 2 3 1 3 4 5 3 4 5 5 6 5 4 3 1 5 6 5 4 3 1 2 5 1 2 5 1];
[m,n]=size(pu);
F=zeros(1,n);
for i=1:n
    if i==28||i==31
        F(i)=fl(pu(i));
    else
        F(i)=fm(pu(i));
    end
end

%时间轴位置,即相移
Phy=[0:.5:5,6:.5:7,8:.25:9,9.5,10:.25:11,11.5:.5:13,14:.5:15];

%波形函数
t=0:1/20e3:18;
[t1,t2]=size(t);
y=zeros(n,t2);
for i=1:n
    y(i,:)=0.2.*heaviside(t-Phy(i)).*exp(2.*(-t+Phy(i))).*cos(2*pi*F(i).*(t-Phy(i)));
end
Y=sum(y);
plot(t,Y)
sound(Y,20e3)
%wavwrite(Y,20e3,'.\voice\tigers1.wav')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -