毕业设计(论文)-语音信号处理技术.doc

上传人:小小飞 文档编号:3950975 上传时间:2019-10-11 格式:DOC 页数:32 大小:200.50KB
返回 下载 相关 举报
毕业设计(论文)-语音信号处理技术.doc_第1页
第1页 / 共32页
毕业设计(论文)-语音信号处理技术.doc_第2页
第2页 / 共32页
毕业设计(论文)-语音信号处理技术.doc_第3页
第3页 / 共32页
毕业设计(论文)-语音信号处理技术.doc_第4页
第4页 / 共32页
毕业设计(论文)-语音信号处理技术.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《毕业设计(论文)-语音信号处理技术.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-语音信号处理技术.doc(32页珍藏版)》请在三一文库上搜索。

1、语音信号处理技术目 录目 录1摘 要2Abstract3前 言4(一)课题介绍4(二)文献综述4一 绪 论6(一)语音信号处理的研究意义6(二)国内外语音信号的研究背景和现状6(三)本设计的主要研究内容7二 语音信号概述8(一)语音信号的特点8(二)语音信号处理的理论基础9(三)Matlab基础11三 基于MATLAB的语音信号短时傅里叶变换14(一)语音信号频谱分析理论基础14(二)短时傅里叶变换原理14四 基于Matlab的语音信号特效处理18(一)语音信号常见的特效14(二)语音信号特效处理的原理14五 设计实现(一) 系统设计流程图18(二) 实时录放音实现方法18(三) 信号延时的设

2、计23(四) 频谱搬移的设计24(五) 短时傅里叶变换的设计25(六) 信号特效处理的设计28(七) 测试结果分析25六 结束语30七 致谢词31参考文献32附录33摘 要语音信号处理技术是语音处理领域中新近发展起来的一个学科分支。Matlab是一个数据分析和处理功能十分强大的工程实用软件,运用它来进行语音信号的采集、分析和处理相当便捷。本文对话音变换的多种方法和多种音频特效的实现方法进行了讨论,并给出了Matlab 语言的描述。综合话音变换和一部分音频特效技术,设计了一种广泛适合于电影配音、话音安全以及娱乐等多领域的实时变声器,并在短时傅里叶基础上分析了语音信号的频谱。关键词:话音变换,音频

3、特效,Matlab,短时傅里叶变换 AbstractThe speech signal processing technology is in the field of speech processing newly developed a subject branch. Matlab is a data analysis and processing functions very strong engineering practical software, the use of it to carry on the speech signal collection, analysis and

4、 processing is quite convenient.In this paper, the voice of a variety of methods and a variety of transform audio effects method of realization of the discussions, and gives the Matlab language description. Comprehensive voice transform and some of the audio special effects technology, design a wide

5、ly suitable for soundtrack, voice security and entertainment the fields of real-time voice changer, and in the short-time Fourier analysis based on the speech signal spectrum.Keywords: Voice transformation Special sound efficiency Matlab STFT前 言(一)课题介绍随着数字化时代的来临,科学技术的进步而生产发展需求的与日俱增,促进了数字信号处理学科的发展,产生

6、了各种巧妙的信号处理算法;特别是计算机技术的飞速发展,为数字信号处理增添了巨大的生命力。而语音信号是最常见、应用最广泛的信号之一,研究数字技术在语音信号上的应用具有十分重要的意义。本文所设计的语音信号短时傅里叶分析和特效处理系统,可以实时录放音,并对声音信号进行延时、频谱搬移。语音信号的短时傅里叶变换解决了FFT在非平稳随机过程中的应用局限。在此基础上,对语音信号进行了各种场景的模拟,此技术广泛应用于电影配音、话音安全以及娱乐等多领域。(二)文献综述/前景与改进。随着计算机技术和信息技术的发展, 语音交互已经成为人机交互的必要手段, 而语音信号的采集和处理是人机交互的前提和基础。 Matlab

7、是美国Math Works公司推出的一种面向工程和科学计算的交互式计算软件, 它以矩阵运算为基础, 把计算、 可视化、 程序设计融合到了一个简单易用的交互式工作环境中。 同时由于Matlab是一个数据分析和处理功能十分强大的工程实用软件, 它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化, 使人机交互更加便捷。Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件, 它可以将声音文件变换为离散的数据文件, 然后利用其强大的矩阵运算能力处理数据, 如数字滤波、 傅里叶变换、 时域和频域分析、 声音

8、回放以及各种分析图的呈现等。数字信号处理一书中,阐述了离散信号的Z变换,离散傅里叶变换,信号的窗函数处理方法等,这些都是语音信号处理的基础知识。书中详细介绍了窗函数的工作原理及设计方法,同时给出了多种离散数字信号的傅里叶变换算法。 数字信号处理实践教程一书提供了不同层次、不同类型的DSP处理实例,为本设计提供了参考。 MATLAB基础与应用介绍了MATLAB的使用方法,操作过程,语言描述,信号处理工具箱的应用方法等。通信原理一书介绍了信号的各种表现形式,不同信号所对应的调制与解调办法,为语音信号的频谱搬移提供了参考。本设计还参考了Matlab在数字语音分析中的应用、基于Matlab实现对语音信

9、号的频谱分析、基于帧的实时话音变换技术与DSP实现等方面的学术论文,当中讲述了语音信号的特征,如何有效处理语音信号及相关算法等。一 绪 论(一)语音信号处理的研究意义 当今,数字信号处理(DSP:Digtal Signal Processing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科,它与国民经济息息相关,与国防建设紧密相连,它影响或改变着我们的生产、生活方式,因此受到人们普遍的关注。数字信号处理主要是研究用数字或符号序列表示和处理信号。处理的目的可以是削弱信号中的多余内容,滤除混杂的噪声和干扰,或者是将信号变换为容易分析和识别的形式,便于估计和选择它的特征参数

10、。声音信号是一维连续信号,而计算机只能处理离散信号。为了从离散信号还原连续信号,根据采样定理,可以确定采样频率的最小值。wav文件是一种数字声音文件格式,本课程设计基于Matlab分析了wav声音文件频谱与声音的关系。通过采集个人的一段声音进行频谱分析等处理,然后进行频谱分析和各种声音特效处理。/(二)国内外数字滤波器的研究背景和现状(三)本设计的主要研究内容本论文主要讨论了语音信号的分析及处理问题,分为七章:第一章为绪论,主要介绍了课题设计的背景、目的和意义。第二章介绍了语音信号的特点、分析的基本原理及相关Matlab的基础知识。第三章介绍了基于MATLAB的语音信号短时傅里叶变换的原理及理

11、论基础。第四章介绍了常见的语音特效及其处理办法。第五章介绍了整个系统的设计流程、系统设计框图。详细介绍了各部分模块电路的设计,并对最终效果进行调试。第六章总结了本次语音信号处理的设计工作。第七章 致谢词,感谢论文期间给与我帮助的老师同学。二 语音信号概述 语音信号处理技术是语音处理领域中新近发展起来的一个学科分支, MATLAB是一个数据分析和处理功能十分强大的工程实用软件, 运用它来进行语音信号的采集、分析和处理相当便捷。 文章介绍了在Matlab环境中如何采集语音信号和语音信号采集后的频谱分析处理, 并通过实例分析了语音信号处理的Matlab。随着计算机技术和信息技术的发展, 语音交互已经

12、成为人机交互的必要手段, 而语音信号的采集和处理是人机交互的前提和基础。(一)语音信号的特点 语音转换(VC,voice conversion 或VT ,voice transformation )是指改变一个说话人(源说话人,source speaker )的语音个性特征,使之具有另外一个说话人(目标说话人,target speaker)的语音个性特征。 语音转换拥有很广泛的应用空间,例如: (1) 在文语转换(TTS,text-to-speech)系统中应用。 (2) 可以在电影配音中应用。 (3) 语音转换的思想可以用于恢复受损语音,帮助声道受损的说话人的语音提高可 懂度。 (4 ) 可

13、用于在保密通信中进行语音个性化的伪装。 (5) 作为语音识别的前端预处理,减少说话人差异的影响。 语音的个性化特征可以分为以下三类: 音段特征:描述的是语音的音色特征。特征参数主要包括基音频率、共振峰位 置、共振峰带宽、基音频率、能量等。 超音段特征:描述的是语音的韵律特征。特征参数主要包括因素的时长、基音 频率的变化(音调)、能量等。 语言特征:包括习惯用语、方言、口音等。 (二)语音信号处理的理论基础进行频谱分析时,在时域数据进行短时FFT处理之前都要进行加窗处理。 在FFT处理之后,普通频谱分析可以进行频域上的滤波处理,从而使频谱更加平滑。为了得到各种音频信号的特技效果,也需要对各种变声

14、算法进行研究。1. 窗的选择一般来讲,一个好的窗函数的标准是:在时域因为是语音波形乘以窗函数,所以要 减小时间窗两端的坡度,使窗口边缘两端不引起急剧变化而平滑过渡到零,这样可以使截出的语音波形缓慢降为零,减小语音帧的阶段效应;在频域要有较宽的3dB 带宽以 及较小的边带最大值。另外一方面,不同人的基音周期变化很大,主要集中在 70Hz1000Hz。所以窗一般选择在10ms20ms 之间。此外,为了避免在加窗时加入多 余的高频信号,应该使用平滑窗,例如汉明窗。2、变声算法的讨论语声可以分为声带振动的浊音部分、声带不振动的清音部分以及静音部分。在这里,我们主要是改变原始话音的基音频率,以达到变声的

15、目的。 第一种方法是不修改采样数据,仅改变Fs 。这种方法操作非常简便。第二种方法是直接乘以一个余弦函数,把语音信号频段搬移到较高频段,以达到变声的目的。第三种方法是插值以后重新抽样。基本过程是这样的:已知当前帧帧长FL(采样)点,采样频率Fs ,目标变换帧频率Fs,则目标变换帧帧长FL=FL*Fs/Fs 。记Rate = Fs/Fs ,那么FL=FL * Rate,其中Rate 为基频变化率。变换开始时,先求得FL 和FL的最小公倍数AL,再将原音频帧插值为AL点,最后将插值后的语音段重新抽样,得到长FL点的变声后的数据。 三种方法操作起来都还比较简单,但为了便于分析时域、频域特效,本设计选

16、择了通信中常用的调制方法,即方案二。(三)Matlab基础MATLAB是Matrix Laboratory的缩写,由MathWorks公司于1984年正式推出,内核采用C语言编写。MATLAB是一个包括数值计算,高级图形和可视化的集成科技计算环境,也是一种高级程序设计语言。灵活的MATLAB语言可使工程师和科学家简练地表达他们的思想,其强有力的数值计算方法和图形便于测试和探索新的思想,而集成的计算环境便于产生快速的实时结果。MATLAB得到了各个领域专家学者的广泛关注,其强大的扩展功能为用户提供了强有力的支持; 它集数学计算、图形计算、语言设计和神经网络等30多个工具箱于一体,具有极高的编程效

17、率1,极大地方便了科学研究和工程应用。语音处理中往往把数字化的语音信号表示为一维或二维(对应于双声道立体声数据)矩阵,因此基于矩阵运算的MATLAB就很自然地应用到语音处理领域。MATLAB提供了语音文件的读写函数以及录音和放音功能,如表1所示, 使用时只需按照函数的语法规则正确输入参数即可。通过这些函数可以得到语音的采样频率、量化精度和通道数等参数。同时,MATLAB提供了语音的和、 差等线性运算,以及卷积、 相关等非线性运算。对于语音处理中常用到的各种窗函数, MATLAB也都提供了相应的函数, 比如hamming(n)即长度为n点的汉明窗。MATLAB一个重要的特点是易扩展性。近几年来,

18、有许多科学家、 数学家、 工程师等开发了一些新的、 有价值的应用程序, 这些应用程序都可以被纳入MATLAB工具箱。比如voicebox工具箱, 其中包含了很多与语音信号处理相关的函数, 可以在有关网站上下载, 将其加入到MATLAB的搜索路径, 就可以作为MATLAB的库函数来方便地调用了。使用MATLAB编程与人们进行科学计算的思路和表达方式相近,不需要大量原始而传统的编程过程,要解决很多复杂的问题只需要短短的几条命令就能实现;研究人员可直观、方便地进行分析、计算及设计工作,从而能节省大量时间。 表1 与语音输入输出相关的函数 函数名 功能描述 wavread auread 读语音文件 w

19、avwrite auwrite 写语音文件 sound wavplay 放音 soundsc 归一化放音 soundview 可视化语音输出 wavrecord 录音三 基于MATLAB的语音信号短时傅里叶变换时域上的原函数中含有包含全部信息量的频谱函数, 而频谱函数中也含有原函数, 我们可以在时域与频域之间对信号进行相互变换,这种变换通过称之为傅立叶变换。 傅立叶变换可将时域上较复杂的运算简化为相对简单的频域运算, 因而在信号处理中具有十分重要的作用, 例如通过傅立叶变换可以使信号的某些感兴趣的特性变得明显, 而在原始信号中这些感兴趣的特性可能含糊不清或甚至不明显。 在传统的语音信号的处理中

20、,傅立叶变换也一直起主要作用。语音信号是一个非平稳过程, 而标准傅立叶变换仅适用于周期信号、 瞬变信号或平稳随机信号,因此标准傅立叶变换不能用来直接表示语音信号。然而,对语音处理来说,短时分析的方法是一个比较有效的解决途径, 因为语音信号的特性是随时间缓慢变化的,因而可以假设它在一个短的段时间内保持不变。 将短时分析应用于频域分析即是傅立叶变换, 相应的频谱称为“ 短时谱” , 即有限长度的傅立叶变换。(一) 语音信号频谱分析理论基础进行频谱分析时, 在时域数据进行短时FFT处理之前都要进行加窗处理。 在FFT处理之后, 普通频谱分析可以进行频域上的滤波处理, 从而使频谱更加平滑。 最后IFF

21、T观察恢复后的时域信号图形, 频谱分析过程 (如图1所示) 。 频域信号恢复后的时域信号时域信号原始信号图1 频谱分析过程 (二) 短时傅里叶变换原理传统的傅立叶变换是一种纯频域分析, 它可将一般函数 f(x)表示为一簇标准函数的加权求和, 而权函数亦即 f的傅立叶变换。 设 f是 R 上的实值或复值函数, 则 f为一能量有限的模拟信号。在任意的有限区间上任意信号定义的任意函数都可以转化成单纯的正弦与余弦的和。傅立叶变换的定义如公式(1)所示: (1)由于可以认为语音信号是局部平稳的, 所以可以对某一帧语音进行傅立叶变换, 即短时傅立叶变换。其定义如下: (2)由公式(2)可以看到,短时傅立叶

22、变换所选取的窗是音信号的标准傅立叶变换。在这里我们用下标n以区别于标准的傅立叶变换, w(n- m)是窗口函数序列。针对不同的窗口函数序列,我们可以将得到不同的傅立叶变换的结果。由公式(2)知,短时傅立叶变换有两个自变量n 和 w, 所以它既是关于时间 n 的离散函数, 又是关于角频率 w的连续函数。当 n 固定不变时, 它们是序列w(n-m)x(n)的标准傅立叶变换或标准的离散傅立叶变换。可以从两个角度理解函数 X()的物理意义:第一种解释是,当n固定时, 如n=n0,则X()是将窗函数的起点移至n0处截取信号x(n),再做傅里叶变换而得到的一个频谱函数。这是直接将频率轴方向来理解的。另一种

23、解释是从时间轴方向来理解, 当频率固定时,例如,则 X()可以看作是信号经过一个中心频率为的带通滤波器产生的输出。这是因为窗口函数w(n)通常具有低通频率响应,而指数对语音信号x(n)有调制的作用,使频谱产生移位,即将x(n)频谱中对应于频率的分量平移到零频。四 基于MATLAB的语音信号特效处理基音是指发浊音时声带振动所引起的周期性,而基音周期是指声带振动频率的倒数。基音周期是语音信号最重要的参数之一,它描述了语音激励源的一个重要特征。不同的人以及同一个人在不同的年龄时期有不同的基音周期。人唱歌时,其基音频率范围大约是:童声高音频率范围为260-880Hz,低音频率范围为196-700Hz,

24、女声高音频率范围为220-1.1KHz,低音频率范围为200-700Hz,男声高音频率范围为160-523Hz低音频率范围为80-358Hz。 此外,基音的变化模式称为声调,它携带着非常重要的具有辨意作用的信息。 (一) 语音信号常见的特效1、 音量调节 可改变文件的音量大小,存放为另一音量不同的文件。 2、 回声 模拟产生出不同的听音环境(峡谷,大厅,小厅,太空)。 3、 回响 多重的回声,模拟产生出不同的听音环境(峡谷,大厅,小厅,太空)。 4、 左右移动 使声音动态地从一边移到另一边。 5、 相位变化 左右声道的声音不同步,有延时。 6、 淡入淡出 声音由小变大,或由大变小。 (二) 语

25、音信号特效处理的原理1、音量调节 直接将 PCM 采样数据点乘以调节系数就可以改变音量。2、回声 不同的听音环境中有不同的吸声与反射系数的材料,所以反射回来的音量大小与延时是不同的。通过调整回声处理单元中的延迟音量与延迟时间两个参数,就可以模拟产生出不同的听音环境。根据研究,这两个参数可以确定如表2: 表2 回声效果参数 参数 峡谷 大厅 小厅 太空 延迟音量 0.45 0.4 0.4 0.65 延迟时间 500ms 100ms 60ms 180ms3、回响 在房间中,由于房间四壁对声音的反射,造成多个声音的混合而形成的特殊声音效果称为回响。回响的效果需要的参数与回声的相同,见表2。回响与回声

26、不同的地方是,有放亏,所以听起来有多个回声,而回声是无反馈的。回声是回响的特殊表现。 4、左右移动 感觉声音从一边移到另一边,即声音从左到右,或从右到左(只针对立体声)。 实现的时候可以对左声道音量线性增加的同时对右声道的音量线性降低(从右到左);或者是左声道的音量线性降低的同时对右声道的音量线性增加(从左到右)。 5、相位变化 实现方法:将左(或者右)声道前一段添 0,文件在播放的时候左右声道就会不同步右(左)声道的数据会超前。 6、淡入淡出 声音由小变大,由大变小,模拟音源由远到近,由近到远的变化。实现时,只需要线性改变音量即可。 五 设计实现直接调用wavrecord函数实时录音提前录制

27、一段语音文件,时间10s以内(1) 系统设计流程图/miao shu语音信号的频谱分析:画出采样后语音信号的时域波形和短时傅里叶变换后的频谱图将信号加入延时,再分析其时域波形与频谱,并分别与原始信号进行比较对原始语音信号进行音量变换、回声、回响、相位移动、淡入淡出等特效处理 回放语音信号图2 系统设计流程图(2) 实时录放音实现方法MATLAB拥有非常强大的函数库,直接调用函数wavrecord即可实现实时录音。具体程序如下;fs=11025; %取样频率duration=3; %录音时间fprintf(Press any key to start %g seconds of recordin

28、g.n,duration);pause;fprintf(Recording.n);y=wavrecord(duration*fs,fs); %duration*fs 是总的采样点数fprintf(Finished recording.n);fprintf(Press any key to play the recording.n);pause;(3) 信号延时的设计信号延时通常有以下方法:方法一:构造一个增益为1,相位与时间成正比变化的滤波器,让语音信号通过该延时网络,即可实现延时。方法二:原语音信号经采样后以离散数据形式存储在数组中,构造一个新的数组,数组前一段置零,后一段放置经采用后的语音

29、数据。经比较,方法2简单易实现,故本设计采用方法二,。具体实现如下:z=zeros(1500,1);y; %对语音信号进行延时(4) 频谱搬移的设计语音信号的频率一般比较低,把频率搬移到较高频段是实现变声常采用的一种方法。实际应用中常采用的频谱搬移有如下方法:方法一:插值以后重新抽样。基本过程是这样的:已知当前帧帧长FL(采样)点,采样频率Fs ,目标变换帧频率Fs,则目标变换帧帧长FL=FL*Fs/Fs 。记Rate = Fs/Fs ,那么FL=FL * Rate,其中Rate 为基频变化率。变换开始时,先求得FL 和FL的最小公倍数AL,再将原音频帧插值为AL点,最后将插值后的语音段重新抽

30、样,得到长FL点的变声后的数据。 方法二:直接乘以一个余弦函数,把语音信号频段搬移到较高频段,以达到变声的目的。两种方法操作起来都还比较简单,但为了便于分析时域、频域特效,本设计选择了通信中常用的调制方法,即方法二。具体程序如下:n7=length(y);t3=linspace(0,1,n7);%0-1之间有n7个点,保证截取的语音信号和载波信号所取点数相同y3=cos(2*2000*pi*t3);%f0=2000hzsm=y.*y3; %矩阵乘:(m*n).*(m*n)sm1=sm;(5) 短时傅里叶变换的设计语音信号是一个非平稳过程, 而标准傅立叶变换仅适用于周期信号、 瞬变信号或平稳随机

31、信号,因此标准傅立叶变换不能用来直接表示语音信号。然而,对语音处理来说,短时分析的方法是一个比较有效的解决途径, 因为语音信号的特性是随时间缓慢变化的,因而可以假设它在一个短的段时间内保持不变。 将短时分析应用于频域分析即是傅立叶变换, 相应的频谱称为“ 短时谱” , 即有限长度的傅立叶变换。基于短时傅里叶变换的频谱分析具体程序如下:NW=512;d=100; %连续段之间的重叠长度L=512; %每段长为512k=NW-d;Ts=fix(ns/k);%每段实际取的点数nfft=512;TF=zeros(Ts,nfft); %将存放三维谱图,先清零for i=1:Ts n1=(L-d)*(i-

32、1)+1; n2=(L-d)*(i-1)+NW; xw=sm1(n1:n2); temp=fft(xw,nfft); %FFT变换 temp=fftshift(temp); %频谱以0频为中心,保证所有频谱的坐标值一样 TF(i,:)=temp; %把谱图存放在TF中endsubplot(2,2,2)mesh(abs(TF); %三维绘图title(STFT-Move); xlabel(时间); %量化间隔,detylabel(频率 f/hz); grid;subplot(2,2,3);contour(abs(TF);%绘等高线图title(等高图-Move); xlabel(时间); yla

33、bel(频率);axis equal ; %纵、横坐标轴采用等长刻度 set the axes aspect ratiogrid;(6) 信号特效处理的设计语音信号的常见特效有:音量调节、回声 、回响、 左右移动 、相位变化、 淡入淡出 。具体实现程序如下:音量调节:fprintf(音量调节n);x=input(Please input a number to amplify or decrease the volume,number:);y1=x*y_original; %调节音量sound(y1,Fs);回声:% stereo_echo.m % 回声效果 function y = ster

34、eo_echo(y_original,Fs,mode) if mode = 1 scale = 0.45;delay_time = 0.5; % 峡谷效果 elseif mode =2 scale = 0.40;delay_time = 0.1; % 大厅效果 elseif mode = 3 scale = 0.40;delay_time = 0.06; % 小厅效果 else scale = 0.65;delay_time = 0.18; % 太空效果 end y_y1 = y_original(:,1);zeros(floor(Fs*delay_time),1); y_delay1 = z

35、eros(floor(Fs*delay_time),1);y_original(:,1); % delay y1 = y_y1 + scale * y_delay1; y_y2 = y_original(:,2);zeros(floor(Fs*delay_time),1); y_delay2 = zeros(floor(Fs*delay_time),1);y_original(:,2); % delay %t = (0:length(y_delay1)-1)/Fs; y2 = y_y2 + scale * y_delay2; y = y1 y2; 回响:%stereo_reecho.m % 回

36、响效果 function y = stereo_reecho(y_original,Fs,mode) if mode = 1 scale = 0.45;delay_time = 0.5; % 峡谷效果 elseif mode =2 scale = 0.40;delay_time = 0.1; % 大厅效果 elseif mode =3 scale = 0.40;delay_time = 0.06; % 小厅效果 else scale = 0.65;delay_time = 0.18; % 太空效果 end delay_bits = floor(Fs * delay_time); y_1 = y

37、_original(:,1); y_y1 = y_1;zeros(delay_bits,1);zeros(delay_bits,1); y_delay1 = zeros(delay_bits,1);y_1;zeros(delay_bits,1); y_delay_delay1 = zeros(delay_bits,1);zeros(delay_bits,1);y_1; y_reecho1 = y_y1 + scale * y_delay1 + scale * scale * y_delay_delay1; y_2 = y_original(:,2); y_y2 = y_1;zeros(dela

38、y_bits,1);zeros(delay_bits,1); y_delay2 = zeros(delay_bits,1);y_1;zeros(delay_bits,1); y_delay_delay2 = zeros(delay_bits,1);zeros(delay_bits,1);y_2; y_reecho2 = y_y2 + scale * y_delay2 + scale * scale * y_delay_delay2; y = y_reecho1,y_reecho2; 左右移动:%stereo_shift function y = stereo_shift(y_stereo,Fs

39、,mode) % mode = 1 : from right to left % mode = else : from left to right %y_original Fs= wavread(sample.wav); %y_stereo = y_original,y_original; i = linspace(1,0,length(y_stereo(:,2); j = linspace(0,1,length(y_stereo(:,1); if mode = 1 y = y_stereo(:,1).*i,y_stereo(:,2).*j; else y = y_stereo(:,1).*j

40、,y_stereo(:,2).*i; end 相位变化:%stereo_phase_movement.m function y = stereo_phase_movement(y_original,Fs,mode,delay_time)%mode = 1: 左声道慢于右声道 %mode = else:右声道慢于左声道 %delay_time = 0.1; %y_original Fs= wavread(sample.wav); y_1 = y_original(:,1); y_2 = y_original(:,2); delay_bits = floor(Fs * delay_time); i

41、f mode = 1 y_d0 = y_1;zeros(delay_bits,1); y_d1 = zeros(delay_bits,1);y_2; else y_d0 = zeros(delay_bits,1);y_1; y_d1 = y_2;zeros(delay_bits,1); end y = y_d0,y_d1; end 淡入淡出:%stereo_coming.m function y = stereo_coming(y_original,Fs,mode) %mode = 1 : comming %mode = else : leaving %y_original Fs= wavre

42、ad(sample.wav); Len = length(y_original); if mode = 1 am = linspace(0,1,Len); else am = linspace(1,0,Len); end am = am,am; y = y_original .* am; end (7) 测试结果分析(1) 频谱分析:图3、4分别给出了原始信号、延时后的信号、调制后信号的时域波形、及基于短时傅里叶变换的各频域波形图3 原语音信号与延时语音信号的时域、频域对比图4 语音信号频谱搬移后时域、频域及等高线图(2) 语音信号特效处理 图5给出了系统输出界面显示,由该图可以看出系统所处理

43、的特效。图5 系统输出界面(3) 调试心得做本毕业设计过程中,主要遇到矩阵乘、长度不一致、六 结束语本次毕业设计所涉及到的主要知识是数字信号处理、MATLAB方面的。我将把本次毕业设计的心得和体会简述如下:(一)系统思维 必须有系统的设计思维,把每一个细节都放到整个系统中考虑,考虑整个系统设计的可行性、完整性、稳定性和功能的实现,这样才不会局限在细节上,才能快速的完成性能优越的软件设计。(二)把握细节 系统也是由细节构成的,在把握整个系统思维的基础上把握每一个细节,因为每一个细节都有可能决定整个系统的性能。在写代码时,把每一个变量与过程考虑清楚才可能完成整个程序。(三)勇于尝试 系统即使经过了

44、非常严格的论证也仍然可能存在问题,或许面对问题一时没有很好的解决方案,但是有一个或许可行的大胆的想法,不要犹豫,试一试吧。勇于尝试往往能够找到更好的解决方法。(四)保持自信 无论遇到什么困难,我都相信自己一定能够找到解决的方法,有的时候只要稍微再用一点力、使一点劲,结果就会不一样。六 致谢词本设计是在李俊老师的悉心指导下完成的,论文从选题到测试成功再到最后成文,无不倾注着李老师的心血,为我个人的成长和进步倾注了大量的汗水,诚挚地感谢李老师给与我的关怀和教诲,老师高深的学术造诣、严谨的治学态度、一丝不苟的工作作风、渊博的知识以及诲人不倦的导师风范,使我在学习生活中受益匪浅,并激励着我在今后的工作和学习中不断进步。在此,借论文完成之际,向我的导师致以最诚挚的敬意和感谢。感谢四年来给予我教诲的张淑玲老师、王金庭老师、汪成义老师、田浩老师、杨蕊老师、沈田老师、李荆洪老师、刘光然老师、高刃老师、陈莹老师。因为有了诸位老师的耕耘才让我的大学生活过的充实而精彩,谢谢老师们!我也要感谢我的母校湖北经济学院,是她为我提供了良好的学习环境和生活环境,让我

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1