f1=fft(x); w1=2/N1*[0:N1/2-1]; figure
subplot(2,1,1);
plot(w1,abs(f1(1:N1/2))); legend('抽样前声音信号的频谱'); xlabel('频率x'); ylabel('幅度y'); N2=length(x*z);
f2=fft(x*z); w2=2/N2*[0:N2/2-1]; subplot(2,1,2);
plot(w2,abs(f2(1:N2/2))); legend('抽样后声音信号的频谱'); xlabel('频率x');
ylabel('幅度y');图示:
9
由图可知:当抽样率变为原来的2后,可听出音乐信号,但音乐明显比原来速度播放的快,播放时间缩短,而且音乐中听到的更多的是高频成分。如果继续增加抽样率,当抽样率变为原来的五倍时,已经听不出原信号了,且播放时间缩的更短。当抽样率变为原来的1/2,仍可辨别出音乐信号,但此时音乐中主要是低频成分,音乐信号听起来播放速度明显比原信号慢了,而且播放时间也比原来延长了。如果继续降低抽样率,当抽样率变为原来的五分之一时,已经不能辨别出音乐信号了,且播放时间比原来更长。由此可知,音乐信号的音调和抽样频率fs有关。
3、选取合适的点数,对抽样后的三段语音信号分别做DFT,画图并比较。
(1)、实现方法
离散傅里叶变换是有限长序列的傅里叶变换,它相当于把信号的傅里叶变换进行等频率间隔采样,并且有限长序列的离散傅里叶变
10
换和周期序列的离散傅里叶级数本质是一样的。
(2)、设计过程
Matlab源程序代码(以256点为例): clear all;
[x,fs,bits]=wavread('父亲.wav'); n=1:10; k=0:255; fs=44100;T=1/fs; L(n)=1; z=stem(n,L(n)); dft_256=fft(x*z,256); plot(k/256,abs(dft_256),'*'); grid on;
xlabel('Normalized frequency'); %归一化频率 ylabel('Magnitude'); %间隔 图示
256点的离散傅里叶变换:
2048点的离散傅里叶变换:
11
由图可知:对抽样后的语音信号选择合适点数做DFT时,点数越多,图形越接近原始抽样后的频谱。
四、总结
数字信号处理已成为今一门极其重要的学科和技术领域,数字信号处理技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科。
Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。
通过本次课程设计,熟练掌握了Matlab编译系统的应用,对抽样定理及其过程有了更深的体会,并且学会了对语音信号的采集及抽样等过程,将信号从时域用离散傅立叶变换转换到频域,加深了对信号抽样前后变化的理解。
12
五、参考文献
1、郑君里等.信号与系统(第二版).北京:高等教育出版社.2000 2、程佩青.数字信号处理(第3 版) [M] .北京:清华大学出版社,2008 3、高西金、丁玉美等《数字信号处理第三版》西安电子科技大学出版社。
4、张志涌.精通MATLAB6. 5 版[M] .北京:北京航空航天大学出版社,2004
13