基于matlab的音乐信 处理和分析
1音乐信 的音谱和频谱的观察
使用windows下的录音机录制一段音乐信 或者采用其他软件截取一段音乐信 (要求:时间不超过5s,文件格式为WAV)
使用wavread语句读取音乐信 获取抽样率;(注意:读取的信 是双声道信 ,即为双列向量,需要分列处理);
输出音乐信 的波形和频谱,观察现象;
使用sound语句播放音乐信 ,注意不同抽样率下的音调变化,解释现象
程序:
clear all;close all;clc
[y,fs,bit]=wavread(‘E:music11’); %读取音乐信
size(y) %看音乐信 是双列还是单列
y1=y(:,1); %取单列
fs=fs %获取音乐信 的抽样率
N=length(y1); %音乐信 的长度
Fy1=fft(y1,N); %对信 做快速傅里叶变换
w=2/N*[0:N-1];
figure %画音乐信 的波形和频谱
subplot(2,1,1);plot(y1);
grid on
title(‘音乐信 的波形’)
xlabel(‘time/s’)
ylabel(‘Magnitude’)
subplot(2,1,2);plot(w,abs(Fy1));
grid on
title(‘音乐信 的频谱’)
xlabel(‘Frequency/pi’)
ylabel(‘Magnitude’)
sound(y1,fs) %以抽样率fs播放音乐信
sound(y1,2*fs) %以抽样率2fs播放音乐信
sound(y1,1/2*fs) %以抽样率1/2fs播放音乐信
程序运行结果如下:
音乐信 的抽样率fs=44100
音乐信 的波形和频谱如下图:
抽样率较高时,听到的音乐音调较高,速度较快;抽样率较低时,听到的音乐音调低,速度慢。由此可知,音乐信 的音调和抽样率有关。
2音乐信 的抽取(减抽样)
观察音乐信 频率的上限,选择适当的抽取间隔对信 进行减抽样(给出两种抽取间隔,代表混叠与非混叠);
输出减抽样音乐信 的波形和频谱,观察现象,给出理论解释;
播放减抽样音乐信 ,注意抽样率的改变,比较不同抽取间隔下的声音,解释现象。
音乐信 的频率上限为0.2pi,这里分别采用3和60作为非混叠与混叠的抽样间隔进行抽样,程序如下:
clear all;close all;clc
[y,fs,bit]=wavread(‘E:music22’);%读取音乐信
y1=y(:,1); %取单列
x1=y1(1:180000); %截取音乐信
d=3;j=0;
for i=1:d:length(x1)
j=j+1;
x2(j)=x1(i);
end %对音乐信 以3为间隔做减抽样
N1=length(x1); %截断的音乐信 的长度
N2=length(x2); %以3为间隔减抽样后音乐信 的长度
Fx1=fft(x1,N1); %对截断信 做快速傅里叶变换
Fx2=fft(x2,N2); %对减抽样后的信 做快速傅里叶变换
w1=2/N1*[0:N1-1];
w2=2/N2*[0:N2-1];
figure %画出截断后的信 的波形和频谱
subplot(2,1,1);plot(x1);
grid on
title(‘截断后的波形’)
xlabel(‘time/s’)
ylabel(‘Magnitude’)
subplot(2,1,2);plot(w1,abs(Fx1));
grid on
title(‘截断信 的频谱’)
xlabel(‘Frequency/pi’)
ylabel(‘Magnitude’)
figure %画出以3为间隔减抽样后的信 的波形和频谱
subplot(2,1,1);plot(x2);
grid on
title(‘对截断信 以3为间隔减抽样后的波形’)
xlabel(‘time/s’)
ylabel(‘Magnitude’)
subplot(2,1,2);plot(w2,abs(Fx2));
grid on
title(‘对截断信 以3为间
相关资源:减压孔板计算软件v1.1免费绿色版-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!