《学士学位论文—-数字滤波在语音信号的应用张净丹》由会员分享,可在线阅读,更多相关《学士学位论文—-数字滤波在语音信号的应用张净丹(12页珍藏版)》请在金锄头文库上搜索。
1、2015 DSP结课设计 华水数字滤波器在语音信号的应用 姓 名: 学 号: 000000 专 业: 电气工程及自动化 授课教师: 000002016年11月4日摘要 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。20世纪60年代中期形成的一系列数字信号处理的理论和算
2、法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。近年来人工神经网络(AN
3、N)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。关键词:语音信号;滤波;处理;分析;MATLAB11.引言1.1 报告来源 语音信号处理包括语音通信、语音合成、语音识别和说话人识别等方面。只有通过语音信号的数字处理,语音信号的好坏、语音识别率的高低,都取决于语音信号处理的好坏。因此,语音信号处理是一项非常有意义的研究课程。1.2 报告的意义 语音,作为一种典型的非平稳随机信号,是人来交流最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。现在随着时代的发展,人类已开始进入了信息化时代,用现代手
4、段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度来了解语音。随着计算机技术和信息技术的发展,语音已经成为人机交互的必要手段,而语言信号的采集和处理是人机交互的前提和基础。在MATLAB环境中,可以通过数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音分析提供了十分丰富的功能函数,可利用这些功能函数快捷而方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。1.3滤波器的设计原理 设计数字滤波器的任务就是寻求一个因果稳定的线性
5、时不变系统,并使系统函数H(z)具有指定的频率特性。数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。1.4初步实现的目标 用MATLAB实现语音的播放、加噪及使用滤波器去噪等功能,同时画出时域、频域波形图及语谱图。后期目标实现滤波器的模拟化,制作guide界面。2.模拟过程 录制或加载一段5S左右的声音文件到MA
6、TLAB中,并进行初步播放;加载一定的干扰信号(如白噪声)并再次播放;设计FIR滤波器对干扰信号进行滤波;对滤波前后的波形进行比较,并回放各个部分的语音信号。此过程包括语音信号的滤波处理、语音信号的时频域分析、滤波器的设计、滤波后的语音信号的效果分析。2.1.1傅里叶变换及FFT算法 在数字信号处理中常常需要用到离散傅立叶变换(DFT),以获取信号的频域特征。尽管传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,不利于计算机实时对信号进行处理。因此至DFT被发现以来,在很长的一段时间内都不能被应用到实际的工程项目中,直到一种快速的离散傅立叶计算方法FFT,被发现,离散是傅立叶变换
7、才在实际的工程中得到广泛应用。 采样器的作用是把连续信号变为脉冲或数字序列。图中示出了一个连续信号f(t)经采样器采样后变为离散信号的过程图2 连续信号f(t)经采样器采样后变为离散信号图中f(t)为被采样的连续信号,S(t)为周期性窄脉冲信号,fs(t)为采样后的离散信号,它用下式来表征:fs(t)=f(t)s(t) 采样信号的频率特性为: 如果F*(j)中各个波形不重复搭接,相互间有一定的距离(频率)即若即采样定理可叙述如下:如果采样周期满足下列条件,即:式中max为连续信号f(t)的最高次谐波的角频率。则采样信号f*(t)就可以无失真地再恢复为原连续信号f(t)。需要指出的是,采样定理只
8、是在理论上给出了信号准确复现的条件。我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。(开始程序附件娱乐录音机,文件属性立即转换8000KHz,8位,单声道)或调用系统声音。然后在MATLAB软件平台下,利用函数audioread对语音信号进行采样,记住采样频率和采样点数。通过audioread函数的使用进一步理解采样频率、采样位数等概念。2.1.2方法本报告介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。综合运用本
9、课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。 Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。整个设计思路的设计原理示意图如图所示: 2
10、.1.3语音信号的读取 在matlab软件平台下,利用audioread函数对语音信号进行采样,记住采样频率和采样点数。通过使用audioread函数,理解采样频率、采样位数等概念。audioread函数调用格式y=audioread(file),读取file所规定的音乐文件,返回采样值放在向量y中。y,fs,nbits=audioread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。y=audioread(file,N),读取前N点的采样值放在向量y中。y=audioread(file,N1,N2),读取从N1到N2点的采样值放在向量y中。 对语音信号“
11、China.wav”进行采样其程序如下: y,fs,nbits=audioread(China.wav)可知该语音信号的采样频率fs = 8000Hz ,数据位nbits = 16Bit。2.1.4语音信号的频谱分析 首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在Matlab 中可以利用函数fft 对信号行快速傅里叶变换,得到信号的频谱特性,从而加深对频谱特性的理解。其程序如下:y,fs,nbits=audioread (China.wav ); %把语音信号进行加载入Matlab 仿真软件平台中sound(y,fs,nbits); %回放语音信号p = audioplayer(x
12、1,44100);play(p)%常用语音播放n = length (y) ; %求出语音信号的长度Y=fft(y,n); %快速傅里叶变换subplot(2,1,1);plot(y);title(原始信号波形);subplot(2,1,2);plot(abs(Y);title(原始信号频谱) 当然我们也可以利用系统自带的声音进行模拟实验,调用系统声音程序如下:MATLAB也自带了很多声音:%鸟声 %火车load train load chirpsound(y,Fs) sound(y,Fs)2.1.5程序结构图2.2实验结果说明:本实验声音取自于系统,程序设计如下:%鸟声load chirps
13、ound(x1,Fs)%加入噪声后声音播放load chirpt=0:1/13129:(size(y)-1)/13129;Au=0.03;d=Au*cos(2*pi*10000*t);x2=y+d; p = audioplayer(x2,13129);play(p)%模拟滤波器wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15;Fs=13129;Ts=1/Fs;wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标ws1=2/Ts*tan(ws/2); N,Wn=buttord(wp1,ws1,Rp,Rs,s);%选择滤波器的最小阶数Z,P,K=buttap(N); %
14、创建模拟滤波器Bap,Aap=zp2tf(Z,P,K);b,a=lp2lp(Bap,Aap,Wn); bz,az=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换H,W=freqz(bz,az); %绘制频率响应曲线figure(1)plot(W*Fs/(2*pi),abs(H)gridxlabel(频率Hz)ylabel(频率响应幅度)title(FIR滤波器)仿真图如下:图一 滤波器设计 图二 时域波形对比 图三 频域波形对比语音验证程序:fs=13129;%x1=audioread(C:UsersAdministratorDesktop33.wma);%自己的声音%鸟声load chirpsound(y,Fs)t=0:1/13129:(size(y)-1)/13129;Au=0.03;d=Au*c