信号频谱分析
信号与系统综合训练项目一
声音信号的频谱分析
姓名:苏小平 学号:1305080116
专业:智能电网信息工程
第一部分:
利用gold wave软件截取的一部分音乐的时域波形图 图一为歌曲《繁星》的30秒时域波形图
图一
第二部分:关于声音的Matlab 分析
(1)将导入Matlab 软件,选用歌曲为至上励合《繁星》中的30秒音乐片段,以利于观察。 程序如下:
[y,Fs,bits]=wavread(' 至上励合 - 繁星.wav' ); y=y(:,1);
sigLength=length(y); Y=fft(y,sigLength); Pyy=Y.*conj(Y)/sigLength; halflength=floor(sigLength/2); f=Fs*(0:halflength)/sigLength; figure;
plot(f,Pyy(1:halflength+1)); xlabel('Frequency(Hz)'); t=(0:sigLength-1)/Fs; figure; plot(t,y);
xlabel('Time(s)');
图二
图二为处理前的声道频域波形
(2)在音乐中加入随机噪声后的频谱: 程序如下:
[y,fs,bits]=wavread(' 至上励合 - 繁星.wav' ); L=length(y);
noise=0.1*randn(L,2); y_z=y+noise;
wavwrite(y_z,8000*6,' 加噪声音乐' ); n=length(y); y_zp=fft(y_z,n); f=fs*(0:n/2-1)/n; figure(1); subplot; plot(y_z);
title(' 加噪语音信号时域波形' );
xlabel('time' ); ylabel(' 幅值A' );
(2)利用低通滤波器将噪声滤除 程序如下:
fp=1500; fc=1700; As=100; Ap=1;
wc=2*pi*fc/fs; wp=2*pi*fp/fs; wdel=wc-wp;
beta=0.112*(As-8.7); N=ceil((As-8)/2.285/wdel); wn=kaiser(N+1,beta);
ws=(wp+wc)/2/pi; b=fir1(N,ws,wn); freqz(b,1);
[y,fs,bits]=wavread(' 至上励合 - 繁星.wav' ); L=length(y);
noise=0.1*randn(L,2); y_z=y+noise; n=length(y); x=fftfilt(b,y_z); X=fft(x,n); f=fs*(0:n/2-1)/n; figure; grid on ; plot(abs(X));
title(' 滤波后信号的频谱' ); grid on
wavwrite(x,fs,bits,' 滤波后音乐' );
滤波器的幅值与相位图:
通过低通滤波器后有用的声音的频谱:
第三部分: 作为对比信号,选取了歌曲Linkin 中的一部分片段导入Matlab 中利用部分二中的程序作出时域波形的频谱图。
加入随机噪声以后的频谱图
从以上两张图中可以清楚地观察出加了噪声以后的频谱与原声音的频谱明显不同。