已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信号与系统课程设计报告课题五 基于FIR滤波的语音信号处理系统设计课题五 基于FIR滤波的语音信号处理系统设计摘要: 本课题研究数字语音信号的初步分析方法、FIR数字滤波器的设计及应用。Matlab中实现对语音信号进行采集(读取),播放以及重采样的功能。对于加入噪声的语音信号设计合适的FIR数字滤波器进行滤波处理,并通过FFT变换对语音信号的频谱进行分析。还通过enframe函数实现对语音信号的分帧,计算出短时能量和短时平均过零率等参数,通过时域波形和自相关的处理可以看到清音帧和浊音帧的区别。本次设计中还采用LabVIEW进行仿真设计,实现了包括语音文件的读取及播放、滤波前后语音信号时域波形及频谱的显示、滤波器设计、滤波器幅频特性的显示等功能。最后,通过Express声音采集VI实现采集语音信号的功能,并对采集的语音信号进行后续分析。本设计很好的完成了设计课题的要求,并在一定程度上进行了延伸。关键词:语音信号采样 FFT FIR滤波器 频谱分析 LabVIEW仿真Abstract:This paper researches the initial analysis of the digital voice signal and the design and application of the digital filter.We use Matlab to achieve the function,such as the acquisition of voice,play the voice and the resample of voice signal.We design the proper FIR digital filter to obtain the pure signal and analyze the voice spectrum by FFT transformation.We also use “enframe” to achieve the framing of voice signal and calculate the short-time energy.We can see the distinguish between unvoiced speech frame and the voice frame through the voice transaction.Also,the paper introduce the LabVIEW simulation design.The design realize the functions such as read and play the audio files,display of the time domain waveform and the spectrum, filter design,display of the filter amplitude-frequency characteristic.Finally,we use VI named sound acquisition to collect sound signal and analyze.The research completes the requirement of the task well and make more further study.Keywords: Voice signal sampling FFT FIR filter spectral analysis LabVIEW simulation1课程设计介绍 1.1 课程设计目的 本设计课题主要研究数字语音信号的初步分析方法、FIR数字滤波器的设计及应用。通过完成本课题的设计,拟主要达到以下几个目的: (1)熟悉Matlab软件的特点和使用方法。 (2)熟悉LabVIEW虚拟仪器的特点以及采用LabVIEW进行仿真的方法。 (3)掌握信号和系统时域、频域特性分析方法。 (4)掌握FIR数字滤波器的设计方法(窗函数设计法、频率采样设计法)及应用。 (5)了解语音信号的特性及分析方法。 (6)通过本课题的设计,培养学生运用所学知识分析和解决实际问题的能力。1.2 课程设计任务1.2.1 简单数字语音信号处理系统的Matlab设计。 使用GUI进行系统的图形用户界面设计,在该界面中包括对语音信号的读取,对信号的时域,频域分析,添加噪声,设计FIR数字滤波器(利用窗函数设计法、频率采样设计法任选)实现噪声滤除。具体任务如下: (1)对语音信号进行采集(读取),对数字语音信号加入干扰噪声,画出原始信号及带噪信号的时域波形,利用FFT进行频域分析,画出相应波形,并对语音进行播放。 (2)根据对语音信号及噪声的实际情况分析,选择适当的FIR数字滤波器进行设计,并对噪声进行滤除。 (3)分析、对比噪声滤除前后的语音时域、频域特性,并对噪声滤除前后语音进行播放比较。 (4)利用GUI设计图形用户界面(包含以上功能)。1.2.2 利用LabVIEW进行仿真设计。 采用LabVIEW进行仿真设计,实现系统的功能,包括语音文件的读取及播放、滤波前后语音信号时域波形及频谱的显示、滤波器设计、滤波器幅频特性的显示等功能,要求给出系统的前面板和程序框图,并记录仿真结果。1.2.3 选作部分。(1) 语音信号部分时域参数计算。对语音信号进行分帧(enframe函数),分别取浊音帧和清音帧计算短时能量和短时平均过零率等参数,并对结果进行比较分析。(2) 利用LabVIEW录制语音利用Labview实现采集语音信号的功能,可以录音,播放等。2 设计原理2.1语音信号的采样与恢复 对模拟语音信号进行采集,需要遵循时域信号的采样定理。采样定理叙述如下:时域连续信号进行等间隔采样,时域信号的最高频率是,采样间隔为,采样频率为,采样信号的频谱是原模拟信号频谱沿频率轴以为周期延拓而成的,并且要不失真地还原出模拟信号时,要满足,即只有当时,采样的时域离散信号才能正确地反映原始语音信号。对采样语音信号进行恢复为模拟语音信号实际上就是內插的过程,在任意两点之间,根据端点值估计中间任意点的数值,采用的方法包括一阶线性插值法,非线性差值法等。对16000hz采样信号进行重采样,重新采样的频率分别为2000hz,4000hz和8000hz,采样间隔与原采样间隔相比,相当于, ,。采样得到的序列,,相当于对序列做尺度变换。2.2 FFT快速傅里叶变换离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。设是一个长度为M的有限长序列,则定义的N点离散傅里叶变换为 式中,称为DFT的变换区间长度,。2.3语音信号特征参数提取2.3.1短时能量及短时平均幅度(1)定义 短时能量函数和短时平均幅度函数是基于语音信号幅度的变化。清音段幅度小,其能量集中于高频段;浊音段幅度较大,其能量集中于低频段。短时能量函数对信号电平值过于敏感。由于需要计算信号样值的平方和,在实际应用中(如定点设备)很容易溢出,所以可以用平均幅度函数来代替短时能量函数。短时能量函数定义: (2-1)短时平均幅度函数定义: (2-2)(2)作用(a) 区分清/浊音:En、Mn大,对应浊音; En、Mn小,对应清音。(b) 在信噪比高的情况下,能进行有声/无声判决:无声时,背景噪声的En、Mn小;有声时,En、Mn显著增大。判决时可设置一个门限。2.3.2短时平均过零率(1)过零率定义:信号跨越横轴的情况。对于连续信号,观察语音时域波形通过横轴的情况;对于离散信号,相邻的采样值具有不同的代数符号,也就是样点改变符号的次数。 (2)短时平均过零率对于语音信号,是宽带非平稳信号,考察其短时平均过零率。 (2-3)其中sgn.为符号函数, (2-4)(3)作用(a) 区分清/浊音:浊音平均过零率低,集中在低频端;清音平均过零率高,集中在高频端。(b) 从背景噪声中找出是否有语音,以及语音的起点。2.3.3短时自相关函数相关函数用于确定两个信号在时域内的相似性。常用的物理量为自相关函数和互相关函数。当两个信号的互相关函数大时,则说明一个信号可能是另一个信号的时间滞后或提前;当互相关函数为0时,则两个信号完全不同。自相关函数用于研究信号本身,如波形的同步性和周期性。(1)自相关函数定义 (2-5)(2)自相关函数特点(a) 当时域信号为周期信号时,自相关函数也是周期性函数,两者具有同样的周期。(b)为偶函数, 。(c)最大,,,对于确定信号,是信号能量;对于随机信号或周期信号, 是平均功率。(3)作用(a) 区分清/浊音。浊音语音的自相关函数具有一定的周期性。清音语音的自相关函数不具有周期性,类似噪声。(b) 估计浊音语音信号的周期,即估计基音周期。3 设计方案及论证3.1 利用Matlab设计基于FIR滤波的数字语音信号处理系统3.1.1 总体设计结构对语音信号进行录制播放 内插回复加入噪声重采样分帧滤波滤波器的设计图设计框图3.1.2 对语音信号进行采样 使用matlab中自带的函数audiorecorder函数可以实现不同采样频率进行语音信号的采集,这里我们使用的语音信号的采样频率为16000hz。 采样得到的语音信号的时域波形以及频谱图:图采集语音信号的时域波形和频谱图 分析:对语音信号以16000hz的采样频率进行信号采集,并对其做快速傅立叶变换FFT,得到的时域波形图和频谱图,由频谱图可以看到语音信号的频率多集中在低频区,高频成分很少。3.1.3 对语音信号进行內插恢复对采样得到的语音信号进行內插恢复,得到恢复之后的连续信号,使用matlab工具箱中的interp1函数。 內插恢复的语音信号的时域波形和频谱图:图內插恢复信号的时域波形和频谱图 分析:对语音信号进行內插恢复,时域波形基本没有变换,但是对恢复后的信号做快速傅里叶变换可以看到频率成分中的高频成分更少了,多集中在低频区,而且低频成分的幅度值更大了,內插恢复后所得的信号更接近于连续信号,所以高频成分更少了。3.1.4 对采样信号重采样对16000hz采样得到的时域离散信号进行重采样,重采样的频率分别为2000hz,4000hz和8000hz。相当于对于得到的离散信号的序列做尺度变换,这里使用的for循环实现的重采样处理。重采样得到的时域离散信号波形和频谱图:图重采样信号 分析:对16000Hz的采样信号进行重采样,重采样的频率分别为2000Hz,4000Hz,8000Hz。有重采样得到的语音信号的频谱图可以看出采样频率越大,语音信号的频谱图越接近于最初的采样语音信号。通过播放语音也可以听出来2000Hz所得的采样信号的失真程度较大,4000Hz重采样得到的语音信号的失真程度较小,8000Hz冲采样的语音信号的失真程度更小。3.1.5 对采样信号加入噪声对采样信号加入噪声,即对在得到的信号的序列上,叠加一个噪声信号,在这里给语音信号加入的噪声为。加入噪声后的语音信号的时域波形以及频谱图:图加噪信号的时域波形和频谱图 分析:加入噪声之后,对所得的序列做快速傅里叶变换得到加噪信号的频谱图,如上图所以,可以看到在低频部分基本没什么变换,只是在频谱图的高频成分增多。加入噪声之后,为了出去该噪声,根据频谱图可以得出我们可以设计合适的数字低通滤波器,滤出高频处的成分,保留低频区的信号,就可以滤出噪声信号。3.1.6 滤波器的设计对加入的噪声的语音信号设计合适的滤波器并进行语音信号的滤波处理,这里我们选择的是凯塞窗,设计的,.设计的FIR数字滤波器的窗函数 和频谱图为:图滤波器窗函数()和幅度特性 分析:由设计结果可以看到所设计的FIR数字低通滤波器的阶数为:。 对语音信号进行滤波处理所得到的语音信号的时域波形和频谱图为: 图滤波之后的信号时域波形和频谱图 分析:通过FIR数字低通滤波器的滤波之后,由频谱图我们也可以看出原语音信号中的高频成分已经被滤出。通过播放滤波之后的语音序列也已经听不到所加入的噪声信号了,也说明了噪声已经被滤出。3.1.7 语音信号部分时域参数的计算 对语音信号进行分帧处理,并计算出每一帧的短时能量和短时平均过零率。这里分帧用到的是enframe函数,设置的帧长为400点,偏移为100点,总共分为157帧。根据短时能量和平均过零率区分出清音帧和浊音帧,清音帧的短时能量较浊音帧的短时能量低,但清音帧的平均过零率较浊音帧的平均过零率高。对清音帧和浊音帧分别做作自相关分析。 每一帧的短时能量和平均过零率波形图: 图滤波之后的信号时域波形和频谱图 分析:对原始语音序列进行分帧之后计算每一帧的短时能量和短时平均过零率所得结果由波形图的形式显示为图6,我们可以看到每一帧的短时能量和平均过零率,可以看到第60帧的短时能量较小但是确由很大的短时平均过零率,第80的短时能量较大但是短时平均过零率却比较小。由此可以判断第60帧为清音帧,第80帧为浊音帧。根据清音帧和浊音帧短时能量和平均过零率的区别可以判断第60帧为清音帧,第80帧为浊音帧。并分别画出他们的时域波形图:图清音帧和浊音帧的时域波形 分析:由两帧的时域波形图我们可以看出清音帧的时域波形类似于白噪声,没什么规律。但是浊音帧的时域波形呈现有周期的震荡,类似于周期信号。 对清音帧和浊音帧分别做自相关分析所得结果:图对清音帧和浊音帧分别做自相关处理结果 分析:分别对浊音帧和清音帧做自相关处理,可以看到对浊音帧做自相关处理后的结果同浊音帧的时域波形具有相同的周期,周期均为100点。该性质符合浊音具备的性质。但清音帧并不具有该性质。3.1.8 GUI界面的设计 利用matlab中GUI设计友好的图形界面。在这次的语音信号处理系统设计过程中,界面工分为四部分内容:时域语音信号的采集、恢复、重采样处理,对加入噪声之后的语音信号设计合适的滤波器指标并进行滤波,时域语音信号部分时域参数(短时能量、短时平均过零率),图形窗口的显示等。本次GUI实现的功能有,对语音信号的录制,语音信号时域波形以及频谱图的显示,对语音信号重新播放,对语音信号进行恢复,采样语音信号的重新采样之后的时域波形和频谱图的显示,对语音信号进行加噪处理,所得信号的时域波形和频谱图的显示。设计不同指标的数字滤波器,可以选择的滤波器类型有四种,哈明窗、凯塞窗、布莱克曼窗以及频率采样设计法,对语音信号进行滤波处理,可以显示所设计的滤波器的窗函数、滤波器的幅度特性、滤波之后语音信号的时域波形以及频谱图。还可以实现语音信号的分帧处理,计算语音信号的时域参数,包括短时能量和短时平均过零率,可以显示清音帧和浊音帧的时域波形。同时也设置了GUI界面的关闭选项,包含在file中。图清音帧和浊音帧的时域波形3.2 LibVIEW仿真设计 播放及FFT变换读取(采集)语音信号3.2.1 总体设计结构 播放及FFT变换和功率谱分析 加入噪声语音信号播放及FFT变换 滤波后语音信号图9 设计流程图 整个系统分为两大模块:采集并播放实时语音信号,读取历史语音信号。两模块功能分时实现,独立控制其运行、停止,同时由下拉选择菜单控制切换。系统的两功能模块的切换,是通过条件选择结构来实现的。运行程序后选择相应的功能选项,条件结构做出判断,进入读取语音信号程序或采集语音信号程序,从而进行后续的信号处理与分析。 语音信号读取或采集后,通过条件选择结构显示FFT变换后幅度和相位特性,同时对读取或采集的语音信号加入幅值为0.1,频率为40000Hz的正弦噪声信号,同样进行FFT变换以及功率谱分析,并通过条件选择结构在一张波形图上进行显示。在对加入噪声的语音信号进行滤波处理后即可得到去噪的信号。滤波器使用数字FIR滤波器,通过创建FIR滤波器规范和可选FIR滤波器规范对滤波器的参数进行设置以得到符合要求的滤波器。 程序的前面板主要由滤波器的参数控件、波形显示控件、功能切换控件、确认(读取、采集)控件、语音播放控件等组成。图10 前面板设计 分析:前面板左上角部分为滤波器信息,下面分别为FIR滤波器规范和可选FIR滤波器规范,可在运行时实时对滤波器的参数进行改变,通过滤波器幅度和相位特性的波形显示可观察滤波器的信息,而最后的两幅图用来显示滤波后语音的时域频谱和FFT变换波形。3.2.2 读取语音信号 选择读取语音信号功能时,在处理语音信号之前,需要在路径控件输入读取语音文件的路径,滤波器参数则在FIR滤波器规范控件里设置。 图 11 读取语音信号程序框图 运行程序后,修改滤波器参数,观察得到的滤除噪音后的语音信号,可判断出滤除噪音效果较好的低通滤波器参数为最低通带2000Hz,最高通带2100Hz,阻带增益为-40dB,窗函数的选择差别不是很大,可以通过观察不同窗函数滤波器的幅度相位特性和滤波后信号的FFT变换图来进行对比观察,下面的程序中选择的是Kaiser-Bessel窗。因为所选择的语音信号为自己录制的,其中夹杂一些录制时比较接近语音信号的频率的信号,选择Kaiser-Bessel窗是为了更好的滤除噪声。如果所读取的声音信号比较纯净,则可选用成本比较低的Hanning窗。图12 读取语音信号前面板 点击下拉菜单可观察到语音信号及加噪语音信号的FFT变换的相位特性。图13 语音信号及加噪语音信号的FFT变换的相位特性 分析:前面板的波形图中,可以很清晰的看到加入高频噪声的时域波形和频谱图。通过观察滤波器的幅度和相位显示波形图,可以看到所设计滤波器的特点。通带增益为-3dB,阻带增益为-40dB,抽头数N为50。滤波器符合第一类线性相位。滤波后的语音信号也和原信号基本相同。播放时会发现只有声音大小的差别,说明噪声滤除效果比较好。3.2.2 采集语音信号 采集语音信号时,将下拉菜单选择“采集语音信号”,即可开始录制语音。 图14 语音采集部分框图录制“你好”,前面板结果如图:图15 录制语音前面板 分析:从图中我们可以看到,由于录制语音的存储格式与“FFT”的格式不一致,所以录制语音信号的时域显示还可以,但是语音信号FFT和加噪语音FFT的波形显示出现问题,为了更好的展示出采集语音特点,将程序框图加以改变,得出合理的结果。图16 采集语音程序框图 经过分析,我在语音采集模块改用了FFT频谱VI,得出了符合要求的设计图。图17 改进后录制语音前面板 因为录制的为正常的语音信号,加入的是幅值为0.1,频率40000Hz的噪声信号,所以滤波器参数设计和读取语音时一致即可。设计的第一类线性相位FIR滤波器滤除噪音效果很好。4 结论 在基于FIR数字滤波器的语音信号处理系统设计的matlab设计模块,该系统实现了对语音信号的录制和语音信号的播放,以及对录制所得的原始信号的重采样,加入噪声等功能。在对于噪声信号,可以实现设置不同的滤波器指标,设计合适的FIR数字滤波器,并对含有噪声的语音信号进行滤波处理,除去语音中的噪声。本次系统的设计缺陷也有很多。比如不同设置语音信号的录音时间,只要在GUI界面设置一个参数调用即可,还可以设置一个窗口选择不同的语音文件进行播放。还可以在做时域语音信号的分帧时,可以设定提取出的哪一帧信号进行分析。采用LabVIEW进行仿真设计模块,很好的实现了系统的功能,前面板中包括语音文件的读取及播放、滤波前后语音信号时域波形及频谱的显示、滤波器设计、滤波器幅频特性的显示等功能。另外,利用条件选择结构可以实现语音信号的采集。通过前面板的FIR滤波器规范和可选FIR滤波器规范可是设计不同类型的滤波器,在滤波器幅度和相位特性波形图中可观察滤波器特性以选择合适的滤波器。但是,本设计中也存在一些不足,录制语音时,并没有将语音存储到固定的路径以备以后的利用,而是只能进行语音的实时处理,这将是改进的一个方向。同时,前面板的设计距离实际仪表还有一定距离,也可进行更好的设计。总得来说,设计任务中要求的所有功能,该系统基本都可以实现。后续的完善可以做到更好。六、参考文献1 章佳荣 王璨 张国宇.精通LabVIEW虚拟仪器程序设计与案例实现.人民邮电出版社,2013.42 郑对元. 精通LabVIEW虚拟仪器程序设计. 清华大学出版社,2012.53 陈垚光. 精通MATLAB GUI设计(第二版)电子工业出版社, 2011.14 高西全 丁玉美. 数字信号处理(第三版). 西安电子科技大学出版社,2008.85/link?url=ExSR6pMcNLarO4DqZPaaOajzTCJIGYs-YMe5rThxjwVvDOvbtfFoPELPKtH0VZxTtKilxTanjsM1ZufPyfCQrhyrqjf8ZtwgK1NA5df5r0W,2015.1.4附录:程序清单:%以16000hz频率对语音信号采样并保存为wav文件fs=16000;duration=1;fprintf(Press any key to start %g seconds of recording.n,duration);pause;disp(Recording.n);rec=audiorecorder(fs,8,1);recordblocking(rec,duration);y=getaudiodata(rec);fprintf(Finished recording.n);audiowrite(myvoice.wav,y,fs);fprintf(Press any key to play the recording.n);pause;sound(y,fs);.%读取保存的语音信号文件并画出它的时域波形和频谱图y=wavread(myvoice.wav,16000);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;subplot(2,1,1),plot(t,y),xlabel(t),ylabel(y),title(16000hz采样得到的时域语音信号)subplot(2,1,2),plot(w/pi,abs(Y),xlabel(w),ylabel(Y),title(16000hz采样信号的频谱图).%对采集的语音信号进行內插恢复m=1:0.1:16000;y1=interp1(y,m);t1=m;Y1=fft(y1);N1=length(Y1);w1=0:2*pi/N1:2*pi*(N1-1)/N1;Y2=abs(Y1);subplot(2,1,1),plot(t1,y1),xlabel(t),ylabel(y1),title(内插恢复的语音信号)subplot(2,1,2),plot(w1/pi,Y2),xlabel(w),ylabel(Y1),title(恢复信号的频谱图).%对采集的语音信号进行重采样,采样频率分别为2000hz,4000hz,8000hz.for i=1:2000 x_2(i)=y(i*8);endX_2=fft(x_2);N3=length(X_2);w_2=0:2*pi/N3:2*pi*(N3-1)/N3;t_2=1/2000:1/2000:1;for i=1:4000 x_4(i)=y(i*4);endX_4=fft(x_4);N4=length(X_4);w_4=0:2*pi/N4:2*pi*(N4-1)/N4;t_4=1/4000:1/4000:1;for i=1:8000 x_8(i)=y(i*2);endX_8=fft(x_8);N5=length(X_8);w_8=0:2*pi/N5:2*pi*(N5-1)/N5;t_8=1/8000:1/8000:1;subplot(2,3,1),plot(t_2,x_2),xlabel(t),ylabel(x_2),title(2000hz重采样)subplot(2,3,4),plot(w_2,abs(X_2),xlabel(w),ylabel(X_2),title(2000hz重采样频谱图)subplot(2,3,2),plot(t_4,x_4),xlabel(t),ylabel(x_4),title(4000hz重采样)subplot(2,3,5),plot(w_4,abs(X_4),xlabel(w),ylabel(X_4),title(4000hz重采样频谱图)subplot(2,3,3),plot(t_8,x_8),xlabel(t),ylabel(x_8),title(8000hz重采样)subplot(2,3,6),plot(w_8,abs(X_8),xlabel(w),ylabel(X_8),title(8000hz重采样频谱图).%对采集的语音信号加入噪声t=1/16000:1/16000:1;z=0.02*cos(4*109*t);y_z=y+z;Y_z=fft(y_z);N6=length(Y_z);w_z=0:2*pi/N6:2*pi*(N6-1)/N6;figuresubplot(2,1,1),plot(t,y_z),xlabel(t),ylabel(y_z),title(加入噪声之后的信号时域波形)subplot(2,1,2),plot(w_z/pi,abs(Y_z),xlabel(w/pi),ylabel(Y_z),title(加入噪声之后信号的频谱图).%FIR滤波器的设计,以及滤波信号的时域和频谱分析wp=1.25;ws=1.5;rs=40;Bt=ws-wp;alph=0.5842*(rs-21)0.4+0.07886*(rs-21);M=ceil(rs-8)/2.285/Bt);wc=(wp+ws)/2/pi;hn=fir1(M,wc,kaiser(M+1,alph);n=0:length(hn)-1;H,w=freqz(hn,1);subplot(2,1,1),stem(n,hn,.),title(h(n)subplot(2,1,2),plot(w,abs(H),title(滤波器的幅度特性)ywt=fftfilt(hn,y_z);figureH1,w1=freqz(ywt,1);subplot(2,1,1),plot(t,ywt),title(滤波信号的时域波形)subplot(2,1,2),plot(w1/pi,H1),title(滤波信号的频谱图).%enframe函数定义function f=enframe(x,win,inc)nx=length(x(:);nwin=length(win);if(nwin=1) len=win;else len=nwin;endif(nargin1) w=win(:); f=f.*w(ones(nf,1),:);end.%对原始语音信号进行分帧y=wavread(myvoice.wav,16000);t=1/16000:1/16000:1;f=enframe(y,400,100);subplot(2,1,1),plot(f(60,:);subplot(2,1,2),plot(f(80,:); %取出浊音帧和清音帧并作图figureamp2=sum(f.*f,2); %计算每帧信号的短时能量subplot(2,1,1)plot(amp2),title(短时能量) zcr=zeros(size(f,1),1); delta=0.02; for i=1:size(f,1) x = f(i,:); for j = 1:length(x)-1 if x(j) *x(j+1)delta zcr(i) = zcr(i)+1; end endendsubplot(2,1,2)plot(zcr),title(平均过零率) %计算每帧信号的平均过零率并作图an=f(60,:);bn=f(80,:);at=xcorr(an);bt=xcorr(bn);figuresubplot(2,1,1),plot(at),title(清音)subplot(2,1,2),plot(bt),title(浊音) %取出浊音帧和清音帧并做自相关处理.%GUI设置程序function varargout = GUI(varargin) gui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, GUI_OpeningFcn, . gui_OutputFcn, GUI_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end function GUI_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = GUI_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; %实现语音信号的录制function pushbutton1_Callback(hObject, eventdata, handles)fs=16000;duration=1;fprintf(Press any key to start %g seconds of recording.n,duration);pause;rec=audiorecorder(fs,8,1);recordblocking(rec,duration);y=getaudiodata(rec);audiowrite(myvoice.wav,y,fs);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel(t),ylabel(y),title(16000hz采样得到的时域语音信号)axes(handles.axes2)plot(w,abs(Y),xlabel(w),ylabel(Y),title(16000hz采样信号的频谱图)%播放所录制的原始语音信号 function pushbutton2_Callback(hObject, eventdata, handles)y=wavread(myvoice.wav,16000);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel(t),ylabel(y),title(16000hz采样得到的时域语音信号)axes(handles.axes2)plot(w,abs(Y),xlabel(w),ylabel(Y),title(16000hz采样信号的频谱图)sound(y,16000); %对原始信号加入高频单音噪声function pushbutton3_Callback(hObject, eventdata, handles)y=wavread(myvoice.wav,16000);Y=fft(y);N=length(Y);w=0:2*pi/N:2*pi*(N-1)/N;t=1/16000:1/16000:1;axes(handles.axes1)plot(t,y),xlabel(t),ylabel(y),title(16000hz采样得到的时域语音信号)axes(handles.axes2)plot(w,abs(Y),xlabel(w),ylabel(Y),title(16000hz采样信号的频谱图)t=1/16000:1/16000:1;z=0.02*cos(4*109*t);y_z=y+z;Y_z=fft(y_z);N6=length(Y_z);w_z=0:2*pi/N6:2*pi*(N6-1)/N6;axes(handles.axes3)plot(t,y_z),xlabel(t),ylabel(y_z),title(加入噪声之后的信号时域波形)axes(handles.axes5)plot(w_z/pi,abs(Y_z),xlabel(w/pi),ylabel(Y_z),title(加入噪声之后信号的频谱图) %对原始语音信号重采样function pushbutton4_Callback(hObject, eventdata, handles)y=wavread(myvoice.wav,16000);f=str2double(get(handles.f_input,String);for i=1:f x(i)=y(16000*i/f);endX=fft(x);N=length(X);w=0:2*pi/N:2*pi*(N-1)/N;t=1/f:1/f:1;axes(handles.axes4)plot(t,x),xlabel(t),ylabel(x),title(重采样得到的时域语音信号)axes(handles.axes6)plot(w/pi,abs(X),xlabel(w),ylabel(X),title(重采样信号的频谱图) function f_input_Callback(hObject, eventdata, handles) %设置重采样是的采样频率function f_input_CreateFcn(hObject, eventdata, handles)set(gcbo,String,2000);if ispc & isequal(get(hObject,BackgroundColor), get(0,defaultUicontrolBackgroundColor) set(hObject,BackgroundColor,white);end %设计哈明窗函数法设计FIR数字低通滤波器并对含有噪声的语音信号滤波处理functi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年低空经济产业集群合作创新研究报告
- 展期补充协议
- 姐妹赡养老人协议书
- 2026-2031中国光学镜头现状研究及发展趋势预测
- 2026-2031中国罐式汽车市场竞争策略及投资潜力研究预测报告
- 2025年法律法规合规与风险控制工程师职业技能考试试题及答案解析
- 道路旅客运输企业2025应急处理预案演练记录
- 物业项目停水、停电、停气应急预案
- 磷酸铁锂储能电池单元火灾的应急演练脚本
- (2025)垃圾分类知识竞赛题库及参考答案
- 三反五反运动课件
- 2025森蓝环保(上海)有限公司招聘2人考试笔试备考试题及答案解析
- 2025年科技部技术合同示范文本(技术支持服务)
- 山东省烟台市芝罘区2025-2026学年九年级上学期期中考试语文试题(无答案)
- 农家书屋各项管理制度
- 大数据平台项目实施规范实施方案
- 砥砺前行精准施策聚力提升-在高二年级期中考试质量分析会上的讲话
- 铝合金深槽阴角施工方案
- 2025年初级银行从业资格之初级公司信贷高分通关题库A4可打印版
- 2025年北京市综合评标专家库专家考试历年参考题库含答案详解(5套)
- 水罐清洗施工方案
评论
0/150
提交评论