欢迎来到天天文库
浏览记录
ID:37912990
大小:558.00 KB
页数:15页
时间:2019-06-02
《FIR数字低通滤波器的(汉宁)窗函数法设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计说明书NO.15语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数法设计设计题目:语音信号的数字滤波——FIR数字滤波器的(汉宁)窗函数法设计一、课程设计的目的通过对常用数字滤波器的设计和实现,掌握数字信号处理的工作原理及设计方法;掌握利用数字滤波器对信号进行滤波的方法。并能够对设计结果加以分析。二、设计步骤2.1窗函数设计法的原理窗函数的基本思想:先选取一个理想滤波器(它的单位抽样响应是非因果、无限长的),再截取(或加窗)它的单位抽样响应得到线性相位因果FIR滤波器。这种方法的重点是选择一个合适的窗函数和理想滤波器。设x(n)是一个长序列,是长度为N的窗函数,用截断,得到N点
2、序列,即在频域上则有由此可见,窗函数不仅仅会影响原信号在时域上的波形,而且也会影响到频域内的形状。2.2汉宁窗函数简介汉宁窗、海明窗和布莱克曼窗,都可以用一种通用的形式表示,这就是广义余弦窗。这些窗都是广义余弦窗的特例,沈阳大学课程设计说明书NO.15汉宁(Hanning)窗又称升余弦窗,汉宁窗可以看作是3个矩形时间窗的频谱之和,或者说是3个sinc(t)型函数之和,而括号中的两项相对于第一个谱窗向左、右各移动了π/T,从而使旁瓣互相抵消,消去高频干扰和漏能。适用于非周期性的连续信号。公式如下:2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开
3、Windows系统中的录音机软件。如图1所示。图1windows录音机(2)用麦克风录入自己的声音信号并保存成wav文件。如图2所示。图2保存文件沈阳大学课程设计说明书NO.15保存的文件按照要求如下:①音信号文件保存的文件名为“yuxuejiao.wav”。②语音信号的属性为“8.000KHz,8位,单声道7KB/秒”,其它选项为默认。2.4语音信号的分析将“yuxuejiao.wav”语音文件复制到计算机装有Matlab软件的磁盘中相应Matlab目录中的“work”文件夹中。打开Matlab软件,在菜单栏中选择“File”-“new”将代码复制到空白处,并保存到“work”文件夹中,
4、和声音文件在同一个文件夹内。2.4.1语音信号的截取处理和频谱分析编写MATLAB编码实现对信号的截取处理,也就是对yf.wav语音的截取处理,截取范围为17000-57000。代码如下:[s,fs]=wavread('yuxuejiao.wav');s1=s(17000:57000);figure(1);subplot(211)plot(s)title('原始语音信号')subplot(212)plot(s1)title('截短语音信号');wavwrite(s1,fs,'s1.wav');S1=fft(s1);figure(2)subplot(311);plot(s1);title('
5、截短预处理语音信号')subplot(312)plot(abs(S1))title('预处理语音信号频谱');沈阳大学课程设计说明书NO.15subplot(313);k=0:39999;plot(k(1:20000)*1,abs(S1(1:20000)));title('预处理语音信号单边带频谱')在m文件编辑器中输入相应的指令将自己的语音信号导入Matlab工作台,点击“run”或者“F5”运行文件。效果如图3和图4图3语音信号的截取处理图在图3中,其中第一个图为原始语音信号;第二个图是截短后的信号图。沈阳大学课程设计说明书NO.15图4频谱分析图其中第二个图是信号的FFT结果,其横坐
6、标的具体值是X(k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循DFT定义式和频率分辨率求得的:当k等于0时,,从数字角频率上看,对应的正好是即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。相当于是信号的实际频谱采样,而又是连续时间语音信号的采样。的每两个相邻取值之间的频率间隔大小对应到语音信号的频谱中去,其频率间隔大小正好是沈阳大学课程设计说明书NO.15称频率分辨率,其中,,由于在第三个图中是遵循DFT定义式和频率分辨率求得,表示的是滤波频率的范围2.5滤波器的设计2.5.1滤波器理论参数设定(1)从图4
7、可知我们已经确定了通带截止频率和阻带截止频率和。由于hanning窗过渡带满足(2)给定所要求的频率响应函数沈阳大学课程设计说明书NO.15(3)求单位采样响应(4)计算线性相位延迟,hanning窗=(5)滤波器的单位采样响应:2.5.2滤波器的MATLAB仿真在M文件中继续编写代码,把计算出来的参数带入代码中。代码如下:s2=awgn(s1,30);%%%%%%%%%%%%%%%%%%%%%%%%%%完成加噪!30d
此文档下载收益归作者所有