语音信号的数字滤波处理 下载本文

语音信号的数字滤波处理——巴特沃思、bartlett窗滤波器设计

常用的窗函数有以下几种:矩形窗(Rectangular window)、三角窗(Triangular window)、汉宁窗(Hanning window)、海明窗(Hamming window)、布拉克曼窗(Bartlett window)、切比雪夫窗(Chebyshev window)、巴特里特窗(Bartlett window)及凯塞窗(Kaiser window)。本实验中选用布拉克曼窗(Bartlett window)设计滤波器。

2.2.1.1 Bartlett窗低通滤波器

(1)选择来自于D盘的“ding.wav”声音作为语音信号(用如下语句调用[x,FS,bits]=wavread('D:\\ding.wav'))。

(2)给信号加一个大频率的噪声(取噪声频率远大于语音信号的最大频率),产生污染信号。

(3) 设计一个Bartlett窗低通滤波器,通带范围包括语音信号,阻带频率设定为小于噪声信号频率。

(4)将设计好的Bartlett窗低通滤波器滤除被噪声污染后的语音信号。还原语音信号。

2.2.1.2 Bartlett窗高通滤波器

(1)选择来自于D盘的“ding.wav”声音作为语音信号(用如下语句调用[x,FS,bits]=wavread('D:\\ding.wav'))。

(2)给信号加一个小频率的噪声(取噪声频率远小于语音信号的最小频率),产生污染信号。

(3)设计一个Bartlett窗高通滤波器,通带范围包括语音信号,阻带频率设定为大于噪声信号频率。

(4)将设计好的Bartlett窗高通滤波器滤除被噪声污染后的语音信号。还原语音信号。

2.2.1.3 Bartlett窗带通滤波器

(1)选择来自于D盘的“ding.wav”声音作为语音信号(用如下语句调用[x,FS,bits]=wavread('D:\\ding.wav'))。

(2)给信号加一个小频率或大频率的噪声(取噪声频率远小于语音信号的最小频率或大于语音信号的最大频率),产生污染信号。本实验取小频率的噪声信号。

第 5 页 共 56 页

语音信号的数字滤波处理——巴特沃思、bartlett窗滤波器设计

(3)设计一个Bartlett窗带通滤波器,通带范围包括语音信号,阻带频率设定为不包括噪声信号频率。

(4)将设计好的Bartlett窗带通滤波器滤除被噪声污染后的语音信号。还原语音信号。

3 设计步骤和过程

3.1 设计步骤 (1)语音信号的采集

要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000Hz,8位,单声道)录制一段自己的话音,或者采用Windows自带的声音文件(默认为22050Hz),时间控制在几秒左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。 wavread函数调用格式:

y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。 [y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。

y=wavread(file,N),读取前N点的采样值放在向量y中。

y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中。 (2)语音信号的频谱分析

要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。 (3)设计数字滤波器和画出频率响应

根据语音信号的特点给出有关滤波器的性能指标,例如:1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=2800 Hz,fp=3000 Hz,As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As=100dB,Ap=1dB。

第 6 页 共 56 页

语音信号的数字滤波处理——巴特沃思、bartlett窗滤波器设计

(4)回放语音信号

在MATLAB中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。这里可以通过两种方式进行信号采集,一是在自己电脑C:\\WINDOWS\\Media中有很多系统声音,我选择了自己电脑里的“Windows XP 叮当声”这个声音文件(.wav)。二用电脑自带录音软件(开始\\所有程序\\附件\\娱乐\\录音机),或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。

3.2设计详细过程

3.2.1语音信号的采集与频谱分析

将电脑D:\\ding.wav这一声音文件导入MATLAB软件中,绘出采样后的语音信号的时域波形和频谱图。

MATLAB程序如下: clf;

[x,FS,bits]=wavread('C:\\WINDOWS\\Media'); x=x(:,1); figure(1);

subplot(211);plot(x); %sound(x,FS,bits);

title('语音信号时域波形图') y=fft(x,3260);

f=(FS/1630)*[1:1630]; subplot(212);

plot(f(1:1630),abs(y(1:1630))); title('语音信号频谱图');

运行程序得到语音信号时域和频谱图形如图3.1所示。

第 7 页 共 56 页

语音信号的数字滤波处理——巴特沃思、bartlett窗滤波器设计

图3.1 语音信号时域和频谱图

3.2.2 IIR数字滤波器的设计

下面分别用巴特沃思数字滤波器(低通、带通、高通)对被噪声污染后的信号进行滤波。

3.2.2.1巴特沃思低通滤波器

(1)添加高频的噪声信号zs=0.05*cos(2*pi*10000*t/22050),MATLAB程序如下。噪声信号的时域及幅频图如图3.2所示。 %噪声信号

zt=0:length(x)-1;

zs=0.05*cos(2*pi*10000*t/22050); zs0=0.05*cos(2*pi*10000*t/22050000); figure(2); subplot(2,1,1) plot(zs0)

title('噪声信号波形'); zs1=fft(zs,1200);

%sound(zs,FS,bits); %回放噪音 subplot(2,1,2)

plot(f(1:600),abs(zs1(1:600))); title('噪声信号频谱');

第 8 页 共 56 页