当前位置:文档之家› 语音信号处理实验一采集和预处理

语音信号处理实验一采集和预处理

实验一 语音信号的采集及预处理
一、实验目的
在理论学习的基础上,进一步地理解和掌握语音信号预处理及短时加窗的意义及基于matlab 的实现方法。

二、实验原理
1. 语音信号的录音、读入、放音等:练习matlab 中几个音频处理函数,利用函数wavread 对语音信号进行采样,记住采样频率和采样点数,给出以下语音的波形图(
2.wav )。

利用wavplay 或soundview 放音。

也可以利用wavrecord 自己录制一段语音,并进行以上操作(需要话筒)。

2. 语音信号的分帧:对语音信号进行分帧,可以利用voicebox 工具箱中的函数enframe 。

voicebox 工具箱是基于GNU 协议的自由软件,其中包含了很多语音信号相关的函数。

3. 语音信号的加窗:本步要求利用window 函数设计窗口长度为256(N=256)的矩形窗(rectwin)、汉明窗(hamming)及汉宁窗(hann)),利用wvtool 函数观察其时域波形图及频谱特性,比较得出结论。

观察整个信号加矩形窗及汉明窗后的波形,利用subplot 与reshape 函数将分帧后波形、加矩形窗波形及加汉明窗波形画在一张图上比较。

取出其中一帧,利用subplot 与reshape 函数将一帧语音的波形、加矩形窗波形及加汉明窗波形画在一张图上比较将得出结论。

4. 预加重:即语音信号通过一个一阶高通滤波器1
9375.01--z 。

三、实验步骤、实验程序、图形及结论
1.语音信号的录音、读入、放音等
程序:
[x,fs,nbit]=wavread('D:\2.wav'); %fs=10000,nbit=16
y=soundview('D:\2.wav')
2.语音信号的分帧
程序:
[x,fs,nbit]=wavread('D:\2.wav');
len=256;
inc=128;
y=enframe(x,len,inc);
figure;
subplot(2,1,1),plot(x)
subplot(2,1,2),plot(y)
3.语音信号加窗:
程序:
N=120;
w = window('rectangle',N);
w1 = window('hamming',N);
w2 = window('hanning',N); wvtool(w,w1,w2)
4.预加重
程序:
[x,fs,nbit]=wavread('D:\2.wav'); len=256;
inc=128;
y=enframe(x,len,inc);
z=filter([1-0.9375],1,y)
figure(2)
subplot(2,1,1),plot(y)
subplot(2,1,2),plot(z)
四、思考题
1.语音信号包括哪些预处理,作用分别是什么?
2.不同窗口的优缺点,窗口长度如何选取?
答:1. 预处理通常包括:放大与自动增益控制、反混叠滤波、模数变换等内容。

2. 窗口长度的选取原则。

N选择太大,则短时能量En随时间变化就很小,不能充分反映语音信号的幅度变化;而N选择得小,即选择N等于或小于一个基音周期时,En将按照信号波形的细微变化而起伏不定,以致短时能量En不够匀化和平滑。

因此,折衷考虑N的值,在通常情况下,当取样频率为10kHz,N=100~200被认为是合适的。

相关主题