clear;clc;
fs=8000; %抽样频率
part1=[fre(55) fre(60) fre(60) fre(62) fre(64) fre(60) fre(64) fre(62) fre(59)];
part2=[fre(60) fre(60) fre(62) fre(64) fre(60) fre(59) fre(55)];
part3=[fre(60) fre(60) fre(62) fre(64) fre(65) fre(64) fre(62) fre(60) fre(59) fre(55) fre(57) fre(59) fre(60) fre(60)];
part4=[fre(57) fre(59) fre(57) fre(55) fre(57) fre(59) fre(60)];
part5=[fre(55) fre(57) fre(55) fre(53) fre(52) fre(53) fre(55)];
part6=[fre(57) fre(59) fre(57) fre(55) fre(57) fre(59) fre(60)];
part7=[fre(55) fre(60) fre(59) fre(62) fre(60) fre(60)];
para1=[part1 part2 part3 ];
para2=[part4 part5 ];
para3=[part6 part7 ];
f=[para1 para2 para3]; %各个乐音对应的频率
part1time=[0.5 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25];
part2time=[0.25 0.25 0.25 0.25 0.5 0.25 0.25];
part3time=[0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.25 0.5 0.5];
part4time=[0.25 0.125 0.25 0.25 0.25 0.25 0.5];
part5time=[0.25 0.125 0.25 0.25 0.25 0.25 0.5];
part6time=[0.25 0.125 0.25 0.25 0.25 0.25 0.5];
part7time=[0.25 0.25 0.25 0.25 0.5 0.5];
para1time=[part1time part2time part3time ];
para2time=[part4time part5time ];
para3time=[part6time part7time ];
time=fs*[para1time para2time para3time];%各个乐音的抽样点数
N=length(time); %这段音乐的总抽样点数
east=zeros(1,N); %用east标的目的量来储存抽样点
n=1;
for num=1:N %操纵轮回发生抽样数据 , num暗示乐音编号
t=1/fs:1/fs:time(num)/fs; %发生第num个乐音的抽样点
baoluo=zeros(1,time(num)); %P为存储包络数据的标的目的量
for j=1:time(num)
if(j<0.2*time(num))
y=7.5*j/time(num);
else
if(j<0.333*time(num))
y=-15/4*j/time(num)+9/4;
else
if(j<0.666*time(num))
y=1;
else
y=-3*j/time(num)+3;
baoluo(j)=y;
h=[1 0.2 0.3 0.1];
xiebo=zeros(1,length(t));
for i=1:length(n)
xiebo=xiebo+h(i)*sin(2*i*pi*f(num)*t);
east(n:n+time(num)-1)=xiebo.*baoluo(1:time(num));
n=n+time(num);
sound(east,8000) %播放音乐
plot(east) %图像
插手谐波后音色获得较着好转
运行获得的图像为:




22.用傅里叶变换阐发音乐
2.1 阐发can.wav的调子和节奏
我们对can进行傅里叶变换阐发其基波协调波 , 获得can的幅值谱 , 频谱图上的第一个凸起的波峰对应的频率即为can的基频 , 可编写了如下法式:
clear;clc;
[y,Fs]= audioread('can.wav');
fs=8000;
NFFT = 2^nextpow2(length(y));
Y = fft(y,NFFT)/length(y);
g = fs/2*linspace(0,1,NFFT/2+1);
plot(g,2*abs(Y(1:NFFT/2+1)))
运行后获得的成果为
经由过程增添can的周期性显示出离散化水平高的幅值谱 , 即让can在时域反复多次后在进行傅里叶变换 。
猜你喜欢
- 笑里藏刀,面善却心狠的生肖
- 怎么用PR2018将视频做成电影风格的上下白边
- 生肖属猪的人,婚姻运势解析
- 农历这几天出生的人,早年霉运连连,中年财运暴涨
- 生活小语,指引人生的灯
- 揭秘婚后不老实易出轨的四大生肖 你中招了吗?
- 关于生肖的起名法
- 这4个生肖的女人,福气旺,旺夫
- 断肠草是什么植物?真的可以让人中毒、断肠吗?
- 什么样的发型适合自己?
