利用matlab对音频的左右声道做频谱分析。
syms y fs;
syms in_put;
in_put= 'C:\Users\getao\Desktop\立体声.wav'
%in_put 为音频文件所在的位置,.wav文件为文件的名称。
[y,fs] = audioread(in_put);
info=audioinfo(in_put) ;
sound(y,fs);
T=1/fs;
t=(0:length(y)-1)*T;
f=(0:length(y)-1)*fs/length(y);
figure(1);
yz=y(:,1);
%提取音频信号的左声道数据
subplot(2,2,1);
plot(t,yz);
title('原始信号时域(左声道)');
xlabel('时间');
ylabel('振幅');
yz2=y(:,2);
%提取音频信号的右声道数据
subplot(2,2,2);
plot(t,yz2);
title('原始信号时域(右声道)');
xlabel('时间');
ylabel('振幅');
subplot(2,2,3);
n=length(yz);
y1=fft(yz,n);
F=fs/length(yz);
plot(f,abs(y1));
title('原始信号频谱(左声道)');
xlabel('F(Hz)');
ylabel('H(jw)');
subplot(2,2,4);
n2=length(yz2);
y1=fft(yz2,n2);
F=fs/length(yz2);
plot(f,abs(y1));
title('原始信号频谱(右声道)');
xlabel('F(Hz)');
ylabel('H(jw)');
syms y fs;
syms in_put;
in_put= 'C:\Users\getao\Desktop\右声道.wav';
[y,fs] = audioread(in_put);
info=audioinfo(in_put) ;
sound(y,fs);
T=1/fs;
t=(0:length(y)-1)*T;
f=(0:length(y)-1)*fs/length(y);
figure(1);
yz=y(:,1);
subplot(2,2,1);
plot(t,yz);
title('原始信号时域(左声道)');
xlabel('时间');
ylabel('振幅');
yz2=y(:,2);
subplot(2,2,2);
plot(t,yz2);
title('原始信号时域(右声道)');
xlabel('时间');
ylabel('振幅');
subplot(2,2,3);
n=length(yz);
y1=fft(yz,n);
F=fs/length(yz);
plot(f,abs(y1));
title('原始信号频谱(左声道)');
xlabel('F(Hz)');
ylabel('H(jw)');
subplot(2,2,4);
n2=length(yz2);
y1=fft(yz2,n2);
F=fs/length(yz2);
plot(f,abs(y1));
title('原始信号频谱(右声道)');
xlabel('F(Hz)');
ylabel('H(jw)');
下图分别为三段音频的分析,三段音频文件对同一首音乐的某一段进行录音得到。立体声左右声道都录制了声音,左右声道的文件则通过录音设备的两端进行分别录制。
立体声 音频分析
左声道 音频分析
从上图可以看出,该段声音的频率在0-10KHz范围内,在未录制声音的音道有杂音的干扰使其频谱有尖峰的存在。