《数字语音处理实验》指导书——中国地质大学 机械与电子工程学院 电信教研室 编制 2005年
《数字语音处理》
实验指导书
学校:中国地质大学
院系:机械与电子工程学院
专业:电子信息工程
编制:电信教研室
版本:2005
1
《数字语音处理实验》指导书——中国地质大学 机械与电子工程学院 电信教研室 编制 2005年
目录
前言
单元1 MATLAB练习
单元2 综合分析实验
附录1 MATLAB软件简介
附录2 MATLAB基本使用方法
附录3 wavread函数
附录4 specgram函数
参考文献
2
《数字语音处理实验》指导书——中国地质大学 机械与电子工程学院 电信教研室 编制 2005年
单元1 MATLAB练习
实验目的
了解信号谱分析特点,掌握各种窗函数功率谱的异同及其对短时信号谱分析的作用。 明确短时傅立叶变换与声谱图的关系,理解其对语音信号的时频分析作用。 学习音频文件的基本操作方法。
学习用MATLAB实现基本的语音信号处理,提高自学和动手能力,培养学习兴趣。
实验原理
1、 离散频谱、幅度谱和功率谱
离散频谱是信号序列的离散傅立叶变换,常用快速傅立叶变换(FFT)计算。离散频谱描述的是信号在频率采样点上的幅度和相位值,包括幅度-频率关系和相位—频率关系,幅度谱就是前者。功率谱是幅度平方—频率关系。
由于语音的对数听觉效应,幅度谱和功率谱常用对数形式表达,单位为分贝。对数幅度谱=10lg幅度谱,对数功率谱=10lg幅度谱2=20 lg幅度谱。由此可见,对数幅度谱与对数功率谱在谱形上是相似的,只不过谱的幅度方向相差一倍。
对于窗序列的离散频谱、幅度谱和功率谱,结论也是类似的。
2、 短时傅立叶变换和声谱图
短时傅立叶变换的实质,是在时间和频率上同时对信号序列进行分解,使得信号被分解成若干个时段和频段上的分量(即分信号)。根据微分原理,若每个时段和频段都很小,对具体某个时段和频段上的分信号进行抽样,无论具体的抽样时点和频点如何选取,抽样值都不会有大的差异,因而一个分信号可以仅用一个该分信号的抽样值来表示。
短时傅立叶变换的值X(n, k)实际上就是n时段和k频段上信号分量的幅度和相位抽样,这个抽样值大体代表了n时段和k频段上信号分量的幅度范围和相位范围。n和k的含义见下表。
表1 数字参数与模拟参数的对应关系
数字时间 模拟时间(s) 数字频率 模拟频率(HZ) n t = n/fs K f=k·fs/L 注:L—窗序列长度 fs—信号采样频率
应用在语音处理方面,声谱图就是语音信号的短时傅立叶变换,其图形化显示往往只表示各个时段和频段上的分信号幅度抽样值。
3、WAVE文件的基本操作
WAVE是Windows操作系统支持的一种标准的数字波形音频文件格式。通常我们用麦克风和Windows 录音机采集到计算中的声音就是WAVE格式的,WAVE文件后缀为.wav,多采用PCM格式或ADPCM格式,支持单声道或多声道数字音频数据采集和回放。
与MP3等其它格式相比,WAVE格式尽管压缩比不好,却非常直观(除文件头外,实际上就是所有通道的采样数据按时间顺序交错排列),适合于数据量不大的音频录放(例如Windows提示音)。因此,对WAVE文件进行读取、保存、剪辑、播放等基本操作相对容易些。软件基础较好,有志于开发自己的音频应用的读者可到网上下载WAVE等文件的存储格式。
3
《数字语音处理实验》指导书——中国地质大学 机械与电子工程学院 电信教研室 编制 2005年
实验器材
多媒体计算机
预装Windows 98/2000/XP操作系统 预装MATLAB6.5软件
预装“数字语言处理实验”软件包 自带移动存储
实验内容
1、输入并运行以下MATLAB代码: %(1)信号波形和对数功率谱示例
% 波形:100样点,抽样频率Fs=8kHz,信号频率f=2kHz x=sin(2*pi*(0:99)*2000/8000);
% 频谱:是波形的快速傅立叶变换 X=fft(x);
% 对数功率谱:功率谱取10lg或幅度谱取20lg P=20*log10(abs(X));
% 绘制波形和对数功率谱(注意观察25和75处的尖峰) figure(1); plot(x);
title('信号的波形'); figure(2); plot(P);
title('信号的对数功率谱');
%(2)窗函数的对数幅度谱示例 % 避免对0取对数 floor=0.1;
% 图1:矩形窗
W_rec=10*log10(abs(fft(boxcar(512),1024))+floor); figure(1);
plot(W_rec(1:end/2));
title('矩形窗的对数幅度谱'); % 图2:海明窗
W_hamming=10*log10(abs(fft(hamming(512),1024))+floor); figure(2);
plot(W_hamming(1:end/2)); title('海明窗的对数幅度谱'); % 图3:汉宁窗
W_hanning=10*log10(abs(fft(hanning(512),1024))+floor); figure(3);
plot(W_hanning(1:end/2)); title('汉宁窗的对数幅度谱');
2、编程绘制以下窗序列的对数幅度谱: (1)指数窗
(2)矩形窗
4

