收藏 分销(赏)

数字滤波在语音信号的应用-张净丹.doc

上传人:胜**** 文档编号:3142311 上传时间:2024-06-19 格式:DOC 页数:12 大小:364.50KB 下载积分:10 金币
下载 相关 举报
数字滤波在语音信号的应用-张净丹.doc_第1页
第1页 / 共12页
数字滤波在语音信号的应用-张净丹.doc_第2页
第2页 / 共12页


点击查看更多>>
资源描述
☆2015 DSP结课设计 华水☆ 数字滤波器在语音 信号的应用 姓 名: 学 号: 000000 专 业: 电气工程及自动化 授课教师: 00000 2024年6月1日 摘要 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。 关键词:语音信号;滤波;处理;分析;MATLAB 1 1.引言 1.1 报告来源 语音信号处理包括语音通信、语音合成、语音识别和说话人识别等方面。只有通过语音信号的数字处理,语音信号的好坏、语音识别率的高低,都取决于语音信号处理的好坏。因此,语音信号处理是一项非常有意义的研究课程。 1.2 报告的意义 语音,作为一种典型的非平稳随机信号,是人来交流最自然、最有效、最方便的手段,在人类文明和社会进步中起着重要的作用。现在随着时代的发展,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。随着电子通信业的出现和计算机技术的发展,人们开始可以从数字信号处理的角度来了解语音。随着计算机技术和信息技术的发展,语音已经成为人机交互的必要手段,而语言信号的采集和处理是人机交互的前提和基础。在MATLAB环境中,可以通过数据分析和处理功能十分强大的工程实用软件,它的信号处理与分析工具箱为语音分析提供了十分丰富的功能函数,可利用这些功能函数快捷而方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。 1.3滤波器的设计原理 设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。 1.4初步实现的目标 用MATLAB实现语音的播放、加噪及使用滤波器去噪等功能,同时画出时域、频域波形图及语谱图。后期目标实现滤波器的模拟化,制作guide界面。 2.模拟过程 录制或加载一段5S左右的声音文件到MATLAB中,并进行初步播放;加载一定的干扰信号(如白噪声)并再次播放;设计FIR滤波器对干扰信号进行滤波; 对滤波前后的波形进行比较,并回放各个部分的语音信号。此过程包括语音信号的滤波处理、语音信号的时频域分析、滤波器的设计、滤波后的语音信号的效果分析。 2.1.1傅里叶变换及FFT算法 在数字信号处理中常常需要用到离散傅立叶变换(DFT),以获取信号的频域特征。尽管传统的DFT算法能够获取信号频域特征,但是算法计算量大,耗时长,不利于计算机实时对信号进行处理。因此至DFT被发现以来,在很长的一段时间内都不能被应用到实际的工程项目中,直到一种快速的离散傅立叶计算方法——FFT,被发现,离散是傅立叶变换才在实际的工程中得到广泛应用。 采样器的作用是把连续信号变为脉冲或数字序列。图中示出了一个连续信号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)。需要指出的是,采样定理只是在理论上给出了信号准确复现的条件。我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或调用系统声音。然后在MATLAB软件平台下,利用函数audioread对语音信号进行采样,记住采样频率和采样点数。通过audioread函数的使用进一步理解采样频率、采样位数等概念。 2.1.2方法 本报告介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。 Matlab 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是 Matlab 重要应用的领域之一 。本文是用 Matlab对含噪的的语音信号同时在时域和频域进行滤波处理和分析。整个设计思路的设计原理示意图如图所示: 2.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中。 对语音信号“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(x1,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 chirp sound(y,Fs) sound(y,Fs) 2.1.5程序结构图 2.2实验结果 说明:本实验声音取自于系统,程序设计如下: %鸟声 load chirp sound(x1,Fs) %加入噪声后声音播放 load chirp t=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); %创建模拟滤波器 [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)) grid xlabel('频率/Hz') ylabel('频率响应幅度') title('FIR滤波器') 仿真图如下: 图一 滤波器设计 图二 时域波形对比 图三 频域波形对比 语音验证程序: fs=13129; %x1=audioread('C:\Users\Administrator\Desktop\33.wma');%自己的声音 %鸟声 load chirp sound(y,Fs) t=0:1/13129:(size(y)-1)/13129; Au=0.03; d=[Au*cos(2*pi*10000*t)]'; x2=y+d; 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); %创建模拟滤波器 [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)) grid xlabel('频率/Hz') ylabel('频率响应幅度') title('FIR滤波器') f1=filter(bz,az,x2); figure(2) subplot(2,1,1) plot(t,x2) %画出滤波前的时域图 title('滤波前的时域波形'); subplot(2,1,2) plot(t,f1); %画出滤波后的时域图 title('滤波后的时域波形'); sound(f1,13129); %播放滤波后的信号 F0=fft(f1,1024); f=fs*(0:511)/1024; figure(3) y2=fft(x2,1024); subplot(2,1,1); plot(f,abs(y2(1:512))); %画出滤波前的频谱图 title('滤波前的频谱') xlabel('频率/Hz'); ylabel('幅值'); subplot(2,1,2) F1=plot(f,abs(F0(1:512))); %画出滤波后的频谱图 title('滤波后的频谱') xlabel('Hz'); ylabel('幅值'); 3. 总结与感想 通过这次的数字滤波器的设计与仿真,让我更加深刻地明白了滤波器的实际作用,而不只是停留在理论上。同时也巩固以前所学过的知识,更进一步学到很多在书本上所没有学到过的知识。加深了我对数字信号处理的了解,让我对它有了更加浓厚的兴趣。 真正的动手实践,让我明白了不同格式的语音信号有着不同的通道,噪声信号的叠加也要考虑原语音信号的维数,这一点是一个关键。不断的实验,我渐渐地发现最新版本的Matlab里已经将Wavread函数(有局限性)剔除,替而代之的是应用广的Audioread函数,这样就更方便语音的读取。 总的来说,通过这次的课程设计我对语音信号有了全面的认识,对数字信号处理的知识又有了深刻的理解,让我感受到只有在充分理解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助! 11
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服