基于matlab的音乐信号处理和分析
1音乐信号的音谱和频谱的观察
使用windows下的录音机录制一段音乐信号或者采用其他软件截取一段音乐信号(要求:时间不超过5s,文件格式为WAV)
使用wavread语句读取音乐信号获取抽样率;(注意:读取的信号是双声道信号,即为双列向量,需要分列处理);
输出音乐信号的波形和频谱,观察现象;
使用sound语句播放音乐信号,注意不同抽样率下的音调变化,解释现象
程序:
clear all;close all;clc
[y,fs,bit]=wavread('E:\music\11'); %读取音乐信号
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')