文档介绍:语音信号的数字滤波
——FIR数字滤波器的(汉宁)窗函数设计
设计题目:语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数设计
一、课程设计的目的
通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;掌握利用数字滤波器对信号进行滤波的方法。并能够对设计结果加以分析。
二、设计步骤
⑴按“开始->程序->附件->娱乐->录音机”的顺序操作打开Windows系统中的录音机软件
⑵用麦克风录入自己的声音信号并保存成文件(语音信号的长度不得少于1秒)
⑶记录以下内容:
语音信号文件保存的文件名为“”、格式PCM,8位,单声道,如图1和图2所示。
语音信号的采样速率为8000Hz/s。
。
图1语音信号的采集
图2 原始语音信号
⑴将上一步骤中保存下来的语音信号文件“*.wav”复制到计算机装有Matlab软件的磁盘中相应Matlab目录中的“work”文件夹中
⑵双击桌面上Matlab软件的快捷图标,打开Matlab软件
⑶在菜单栏中选择“File->new->M-File”或是点击快捷按钮,打开m文件编辑器
⑷在m文件编辑器中输入相应的指令将自己的语音信号导入Matlab工作台。
程序部分首先用语音文件将自己的录音导入,指令为wavread(),本设计中为waveread(’’),然后将处理后的语音信号导出,指令为:wavwrite(‘’);本设计中录入的是单声道语音。一般情况下录入的双声道语音信号中()右导入交保存为变量后,其变量应当是一个二列的二维数组,其中每一列对应一个声道,数组的行数等于采样速率与时间的乘积(即单声道的采样点数);
本课程设计过程中的语音原始信号存为“”;
截短后的输出语音为:“”;
叠加噪声后的语音为“”。
具体程序段见小标题⑹,频谱分析如下图3。
图3截短后语音信号的时域和频域波形
如上图3所示,上面的图是原始声音截去大部分空白后的截短语音,这样有利于频谱分析;中间的图是截短后的声音在频域的分析,首先对语音进行采样,采样频率大于信号最高频率的2倍即可。不过有突变的信号的最高频率趋于无穷;按足够大的采样速率,本设计中采样频率为8000HZ/s; 采样后,进行离散傅立叶变换,就可以得到一组数据,(通常是复数),就生成频谱分析图,具体用到的编程函数为fft()。横坐标为离散的频谱,纵坐标为其对应的幅值,便可以画出其离散的频谱图通过对图的分析,确定滤波频率范围的参考,其横坐标的具体值应当是遵循DFT定义式和频率分辨率求得的:
(当k等于0时)
从数字角频率上看,幅值最大处对应的正好是0HZ,即直流分量,也就是说,在取滤波频段时,应当取能量最集中的频段的语音信号,其余频段部分的信号滤除。
因此主要能量保留的频段为:
频率分辨率
⑴确定滤波器的参数:
通带截止频率fp=800Hz
阻带截止频率fst=1400Hz;
②δ1=2dB,δ2=30dB;
③采样频率fs=8000HZ/s;
④滤波器类型:FIR(汉宁窗函数);
⑤根据图3得到=1100Hz,(把1500Hz—2000Hz那部分的峰值当做噪声与气流处理)。
3dB截止频率
⑥过渡带
。
⑦因为滤波器加的是汉宁窗,所以从教材上查表可得,即滤波器阶数
所以在设计滤波器时阶数
N=42
⑧FIR加窗滤波器中参数
⑨根据语音信号的特点滤波器设计为低通滤波器。
⑵设计滤波器:
①给定要求的频率响应
②选择汉宁窗,表达式为
滤波器的时域系统函数为
⑶叠加噪声
如下如4所示,是语音信号加20dB的高斯白噪声后的时域和频域波形。
图4叠加噪声后的语音信号的时域和频域波形
如上图所示,上面的图是加噪声后的时域波形,可见明显出现了很多毛刺,产生一个长度为N的噪声信号;中间图是对时域信号的频谱分析,下图是单边带的频谱分析。然后将噪声信号迭加到语音信号上,导出,保存成“”文件,具体导出的函数是wavewrite()。
⑷求系统的单位采样响应h(n)
所设计的滤波器是用单位采样响应h(n)表示的,可以利用带噪声语音与h(n)做时域卷积
即:。
下图5所示为hanning窗及系统的hd和hn函数特性图。
图5汉宁窗的函数特性图
⑸滤波器进行滤波
如下图6所示,为滤波器滤波后的效果图。第一个是滤波后的原始语音信号,第二个和第三个是滤波后的频谱图。由于参数中已经设定3dB截止频率为1