河北经贸大学毕业论文
图5-5 音乐加谐波的时域图形
由图可见,每个音的连接处同样是衰减到一较小值而不是0,同时音乐听起来更加真是实,效果更好。
5.2 用傅里叶变换分析音乐频谱模块的设计与实现
为了更加清晰地了解经过不同处理的音乐所发生的变化,就要研究音乐的基波与谐波,即每种音乐的频谱图,可以对音乐时域波形进行傅里叶变换,得到的幅值谱,在频谱图上的第一个突出的波峰对应的频率即为基频。编写了如下程序。
function button10_Callback(hObject, eventdata, handles)%傅里叶分析 global flag global west fs f f_flag; %定义全局变量 if flag==1 if f_flag==1 f1=f*2; else if f_flag==2 f1=f/2; else if f_flag==0 f1=f;
end %所用到的抽样频率为8000. NFFT = 2^nextpow2(length(west));
16
河北经贸大学毕业论文
Y = fft(west,NFFT)*2/length(west); g = fs/2*linspace(0,1,NFFT/2+1);
set(handles.axes2,'HandleVisibility','ON');%开始使用坐标,更便于操作 axes(handles.axes2);%开始用图像,在坐标2处进行操作 plot(g,2*abs(Y(1:NFFT/2+1)));axis([-0.1 max(f1)+50 -0.1 max(2*abs(Y(1:NFFT/2+1)))+0.2]); xlabel('f/Hz');ylabel('幅度');
else errordlg('请您先点击简单音乐合成按钮!!','温馨提示'); end
经过分别处理的音乐通过调用该段程序就会分别显示出相对应的频谱图,以便从视觉上更加直观地了解各个音乐的不同之处,在各种相应处理前后的对比中更容易让用户接受与其对应的方法及特点。
音乐《社会主义好》简单合成后的仿真频谱图形如下图5-6所示。
图5-6 简单音乐合成频谱图
由图5-6可知,该段音乐的基波频率为329.1Hz,它的幅度值是0.125,以此类推,它对应的各个高次谐波幅度值如下表5-3所示。
表5-3 高次谐波幅值表
谐波 幅度
2 0.25 3 0.256 4 0.755 17
5 0.025 6 0.125 7 0.01 河北经贸大学毕业论文
图5-7为音乐加谐波之后的仿真频谱图。
图5-7 音乐加谐波频谱图
该图与图5-6所示的简单音乐合成有明显的区别,波形边缘更加平缓,音乐听起来更加清晰,效果更好。
图5-8与图5-9分别为音乐升八度和降八度处理的仿真频谱图。
图5-8 音乐升八度频谱图
18
河北经贸大学毕业论文
图5-9 音乐降八度处理频谱图
由上述图5-8与图5-9所示频谱图可以清楚地看到,升八度处理是在简单音乐合成图5-6的基础上频率增加了一倍,并且各个幅值有所升高,降八度处理是在图5-6的基础上频率降低了一倍,并且幅值有轻微的下降。
利用傅里叶级数的原理合成的音乐的仿真频谱图形,如图5-10所示。
图5-10 基于傅里叶级数合成的音乐频谱
由上图5-10与5-6频谱图的比较,可以直观的看出,利用傅里叶级数分析原
19
河北经贸大学毕业论文
理合成的音乐频谱曲线愈加光滑,噪声干扰少,只是幅值很小,质量较简单音乐合成的高。
5.3 基于傅里叶级数合成的音乐模块的设计与实现
运用傅里叶级数变换的原理来再次合成音乐《社会主义好》的第一小节,只需将5.1.4中音乐加谐波的程序幅度修改一下。
将 m=[1 0.3 0.2]; %波形幅值矩阵改为:
m=[0.125 0.25 0.256 0.755 0.025 0.125 0.01]; %波形幅值矩阵
运行后可以听出声音更加真实了。仿真时域波形如图5-11。
图5-11 基于傅里叶级数合成音乐的时域波形
利用傅里叶级数合成音乐的部分程序。
function button11_Callback(hObject, eventdata, handles)%傅里叶级数合成的 音乐
% m=[1 0.3 0.2]; %波形幅值矩阵 m=[0.125 0.25 0.256 0.755 0.025 0.125 0.01]*1; ss=zeros(1,length(t)); for i=1:length(m)
ss=ss+m(i)*sin(2*i*pi*f(a)*t); %加谐波
20