版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.- - - .可修编 .:*:2013248731本科生毕业论文设计基于MATLAB的简单音乐合成仿真设计学 院: 信息工程 年 级: 13级专 业: 通信工程学生: 何世欣 指导教师:涛封面还是错的,指导教师也是错的-. z.- .可修编 .学士学位论文原创性声明本人重声明:所呈交的论文设计是本人在指导教师的指导下独立进展研究,所取得的研究成果。除了文中特别加以标注引用的容外,本论文设计不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要奉献的个人和集体,均已在文中以明确方式说明。本人完全意识到本申明的法律后果由本人承当。学位论文作者签名手写: 签字日期: 年 月
2、 日学位论文使用授权书本学位论文作者完全了解学校有关保存、使用学位论文的规定,同意学校保存并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权科技学院可以将本论文的全部或局部容编入有关数据库进展检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于保 密 , 在 年解密后适用本授权书。不 。请在以上相应方框打 学位论文作者签名手写: 指导教师签名手写: 签字日期: 年 月 日 签字日期: 年 -. z.- - - .可修编 .摘要科学技术的开展使得社会生活越来越趋于信息化和数字化,在此根底上语音信号也可以基于数字信号处理技术和语音学相关知识进展信
3、息化处理,此类技术因应用性广便捷性高受到社会的广泛关注,已成为信息科学工程与研究领域的核心技术,被越来越多的高科技产业广泛使用。计算机合成音乐也在其根底上得以迅速普及,而且理论上可以创造出任何一种声音。MATLAB是一种用于数据分析和处理的计算机应用软件,它可以将语音文件进展信息化处理转化为离散的数据文件,再通过置强大的矩阵运算能力如数字滤波、时域和频域分析、傅里叶变换、时域和频域分析、声音合成以及各种图形的呈现等处理数据。利用MATLAB自带的功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。音乐可视为不同频率与振幅的正弦波叠加并加以不同包络所形成的信号
4、,它的这个特点使得MATLAB的处理有了可能,通过处理不同的音频MATLAB可以进展简单的音乐合成。本文主要是基于MATLAB环境下的音乐合成研究,首先基于相关的处理函数合成简单的音乐,并且对音乐进展降噪、升降度和加谐波等处理;然后基于傅里叶变换分析处理后的音乐频谱;最后根据傅里叶级数的原理来再次合成音乐。关键词:音乐合成;MATLAB;傅里叶分析-. z.AbstractIn the current society, information technology and digitization bee more and more high. As a new technology to p
5、rocess speech signals based on digital signal processing technology and phonetic knowledge, voice signal processing technology is widely used in more and more high-tech industries. Technology has bee one of the core technologies in the field of information science engineering and research. puter syn
6、thesis of music to the rapid spread, in theory, you can create any kind of sound.MATLAB is a puter application for data analysis and processing that transforms sound files into discrete data files and then processes their data with powerful matri* operations such as digital filtering, Fourier transf
7、orm, time domain and Frequency domain analysis, sound synthesis and a variety of graphics rendering. Using MATLABs own function function can quickly and easily plete the voice signal processing and analysis and signal visualization, human-puter interaction more convenient. As the music signal can be
8、 seen as a series of different frequency and amplitude of the sine wave superposition and the formation of different envelopes, so you can use this feature based on MATLAB software analysis and processing of different audio signals for simple music synthesis.This paper is mainly based on the study o
9、f music position under MATLAB environment, using the relevant audio processing functions for simple music synthesis, the music noise reduction, plus harmonic and lifting processing; Fourier transform with the corresponding treatment of the Music spectrum; Finally, re-synthesis the music according to
10、 the principle of Fourier series.Key Word:Music synthesis; MATLAB; Fourier analysisADDIN KISM.UserStyle目 录目录格式全错 TOC o 1-3 h z u HYPERLINK l _Toc478633296第1章绪论 PAGEREF _Toc478633296 h 1HYPERLINK l _Toc4786332971.1 选题意义及背景 PAGEREF _Toc478633297 h 1HYPERLINK l _Toc4786332981.2 国外研究现状 PAGEREF _Toc47863
11、3298 h 1HYPERLINK l _Toc4786332991.3 本文主要研究容 PAGEREF _Toc478633299 h 2HYPERLINK l _Toc4786333001.4 MATLAB音乐合成的原理 PAGEREF _Toc478633300 h 3HYPERLINK l _Toc478633301所涉及的乐理知识简述 PAGEREF _Toc478633301 h 3HYPERLINK l _Toc4786333021.4.2音调与唱名 PAGEREF _Toc478633302 h 3HYPERLINK l _Toc478633303音色与谐波 PAGEREF _
12、Toc478633303 h 3HYPERLINK l _Toc478633304十二平均律 PAGEREF _Toc478633304 h 4HYPERLINK l _Toc478633305傅里叶变换与频谱分析 PAGEREF _Toc478633305 h 4HYPERLINK l _Toc4786333061.5 MATLAB的开展史 PAGEREF _Toc478633306 h 4HYPERLINK l _Toc478633307第2章音乐合成的相关算法 PAGEREF _Toc478633307 h 6HYPERLINK l _Toc4786333082.1 基于统计声学模型的合
13、成算法 PAGEREF _Toc478633308 h 6HYPERLINK l _Toc4786333092.2 基于离散变换的合成算法 PAGEREF _Toc478633309 h 7HYPERLINK l _Toc4786333102.3 本文算法 PAGEREF _Toc478633310 h 7HYPERLINK l _Toc478633311第3章基于MATLAB的简单音乐合成设计 PAGEREF _Toc478633311 h 9HYPERLINK l _Toc4786333123.1 MATLAB简介 PAGEREF _Toc478633312 h 9HYPERLINK l
14、_Toc478633313的运行 PAGEREF _Toc478633313 h 11HYPERLINK l _Toc478633314变量、语句、矩阵与函数 PAGEREF _Toc478633314 h 12HYPERLINK l _Toc4786333153.1.3 绘制三维图形 PAGEREF _Toc478633315 h 12HYPERLINK l _Toc4786333163.3 核心算法实现 PAGEREF _Toc478633316 h 13HYPERLINK l _Toc4786333173.4 算法设计 PAGEREF _Toc478633317 h 14HYPERLIN
15、K l _Toc4786333183.4.1 调用相关的MATLAB函数 PAGEREF _Toc478633318 h 14HYPERLINK l _Toc4786333193.4.2 音乐初步处理 PAGEREF _Toc478633319 h 14HYPERLINK l _Toc4786333203.4.3 音乐合成 PAGEREF _Toc478633320 h 15HYPERLINK l _Toc478633321第4章 基于MATLAB的简单音乐合成仿真 PAGEREF _Toc478633321 h 17HYPERLINK l _Toc4786333224.1 合成音乐 PAGE
16、REF _Toc478633322 h 17HYPERLINK l _Toc4786333234.1.1 初始音乐合成 PAGEREF _Toc478633323 h 17HYPERLINK l _Toc4786333244.1.2 消除噪音 PAGEREF _Toc478633324 h 17HYPERLINK l _Toc4786333254.1.3 重新生成音乐 PAGEREF _Toc478633325 h 19HYPERLINK l _Toc4786333264.2 原始声测试和傅里叶分析 PAGEREF _Toc478633326 h 20HYPERLINK l _Toc47863
17、33274.2.1 原始声测试 PAGEREF _Toc478633327 h 20HYPERLINK l _Toc4786333284.2.2 傅里叶分析 PAGEREF _Toc478633328 h 23HYPERLINK l _Toc4786333294.2.3 重新合成新音乐 PAGEREF _Toc478633329 h 25HYPERLINK l _Toc478633330第5章总结与展望 PAGEREF _Toc478633330 h 26HYPERLINK l _Toc4786333315.1 总结 PAGEREF _Toc478633331 h 26HYPERLINK l
18、_Toc4786333325.2 展望 PAGEREF _Toc478633332 h 27HYPERLINK l _Toc478633333参考文献 PAGEREF _Toc478633333 h 29HYPERLINK l _Toc478633334致 PAGEREF _Toc478633334 h 30-. z.第1章绪 论1.1 选题意义及背景半个多世纪以来,音乐家们一直致力于利用当今的科技和新材料来探索新的音乐,在原来的根底上进展不断的创新,音乐合成此项技术由于其强大的数据处理能力和创造能力便随之进入音乐家们的视野。音乐合成技术,不仅可以巧妙模仿现有乐器的音色,还能够创造新的声音,极
19、丰富了人类的音乐,给我们带来了无穷无尽的新音乐体验。随着科技的开展,计算机合成音乐迅速在音乐界流传并普及。作曲家和音乐家们为了创新和追求个性,往往选择在音乐中参加新的声音,而计算机合成音乐技术即为其提供了可能,因为在理论上它可以创造出任何一种声音。现在,合成音乐已经逐渐脱离模仿现有乐器音色的道路,转而向创造音色方面开展。虽然合成音乐在现代音乐领域已有相对广泛的应用,但是开展仍有所受限,国在该方面的权威理论著作也很少。这是因为它其涉及音色、声学、计算机等相关学科,是一门综合性强且专业性高的学科。通过分析近年来使用合成音乐的现代音乐,可以发现合成音乐相较声学乐器在层次和音色上都具有显现的独特性,这
20、些分析也能为计算机合成音乐在现代音乐制作的应用提供相对有实践价值的参考。MATLAB是英文MATri* LABoratory矩阵实验室的缩写。自1984年由美国MathWorks公司推向市场以来,得到了广泛的关注和开展。在兴旺国家,MATLAB已经是大学以上学历者所必须具备的一项技能,是数字信号处理、时间序列分析、线性代数、自动化控制理论、动态系统仿真等诸多课程的根本教学工具。而在设计和工业部门,MATLAB也有广泛的应用,主要用于解决各种具体的工程和交互问题。根据国外的开展历史和近几年MATLAB在中国的开展趋势,可以预见其在不久的将来,将会在科学研究和工程应用领域发挥越来越大的作用。1.2
21、 国外研究现状音乐合成技术是语音合成技术的一个分支。国外对于语音合成的研究已长达200多年,虽然研究时间长但是显著的研究成果是在计算机技术和数字信号处理技术开展之后才出现的,主要表现为让计算机能够输出高清晰度和自然度的连续音乐。近几十年,该技术在国外的研究重点为规则文语转化,也就是将书面语转化为口语。在语音合成技术的历史开展过程中,早期研究主要应用参数合成法。其中最具意义的就是Holmes的并联共振峰合成器1973和Klatt的串/并联共振峰合成器1980,这两个合成器只需要细致的参数调节即可合成自然的语音。美国DEC 公司的DECtalk,是当时最具代表性的文语转换系统,它就是搭载串/并联共
22、振峰合成器,从而使得人机交互有了更大的便捷和可能,该系统可以通过计算机联网或者接入网来提供各项语音效劳,不仅发音标准清楚,而且还具备7种不同的音色,受到了当时的广泛追捧。但是后来人们发现,共振峰合成器尽管可以提供逼真的合成语音,但是其音质却因为提取共振峰参数的困难存在较大的缺陷,并不能满足当下需求。因此在不断的研究下,语音合成技术又有了新的开展基音同步叠加PSOLA方法1990。这项技术基于时域波形的拼接,大大提高了合成音乐的音色和自然度,因此在九十年代初受到了广泛的关注,包括法语、英语、日语、德语等在的文语转换系统都被成功开发研制出来,而且此项技术构造简单易于实时实现,有着非常美好的商用前景
23、。近年来的研究,也开发出一种基于数据库的新的语音合成方法。该数据库为预先录下的庞大语音数据库,每个合成语句的语音单元都能从数据库中进展调取和拼接,因此只要数据库足够庞大,则理论上任何语音都可以被合成出来且具有不同语境下的语气和音调差异,清晰度和自然度将会有质的提升!1.3 本文主要研究容在本设计中,MATLAB软件通过对音乐信号频率与时长的分析与组合来简单合成音乐。频率表现音调,时长表达时长,基于该根底MATLAB在编程中能够存储音乐的频率和时长,并且通过将正弦波形的不同叠加与包络设置来仿真实现音乐的音调与节奏的变化。主要特色:1、直观而集中的显示各运行参数,能分析音乐合成的运行。2、参数便于
24、修改,从而方便改变音色和音调。论文的主要构造分为五个局部:第一章为绪论,简单介绍了选题背景和意义,同时介绍了国外关于语音合成的研究状况,也描述了本文的主要研究容和方向;第二章是介绍了一些合成算法,本文的研究算法是从这些算法中综合而来;第三章是简单音乐合成的设计思路,同时对根本原理进展了分析;第四章是仿真实验局部,介绍了本文的实验成果;第五章是总结;最后局部是致。1.4 MATLAB的开展史MATLAB由美国New Me*ico大学Cleve Moler教授编写并命名,起初他是为了方便学生调用EISPACK和LINPACK从而编写了其接口软件。MATLAB的便捷性使其之后成为了国外许多大学的教学
25、辅助软件。1984年,Cleve Moler和John Little创立了Math Works并推出了第一版MATLAB DOS,核心使用C语言编写。随着MATLAB的不断开展,20世纪90年代末推出了MATLAB5.*版本,功能更加强大,能处理更多的数据构造。2000年,MATLAB6.0出现,操作界面有了三个窗口:程序、历史信息及变量管理,而FFTW系统的应用使得其计算速度上了一个台阶。一年后2001,MATLAB6.1及Simulink4.0相继问世,功能更强大的MATLAB6.5也在2002年推出。2004年,MATLAB7.0版本发行,优化了编程环境、数据可视化、计算和文件I/O等方
26、面的功能。此后几年,MATLAB7.17.14也不断更新迭代,性能不断优化,功能不断完善。近几年推出的MATLAB2012b8.0版及MATLAB2013a相较之前有了较大的改变,主窗口中工具条替代了菜单和工具栏显得更加齐整和简洁,帮助文档在搜索、浏览和筛选功能上也有了大幅度的提升。MATLAB2014a和MATLAB2014b版本也在之后推出。本设计使用的是MATLAB2013a,它功能强大而且方便快捷。1.5MATLAB音乐合成的原理在本设计中,MATLAB软件通过对音乐信号频率与时长的分析与组合来简单合成音乐。频率表现音调,时长表达时长,基于该根底MATLAB在编程中能够存储音乐的频率和
27、时长,并且通过将正弦波形的不同叠加与包络设置来仿真实现音乐的音调与节奏的变化。1.4.1所涉及的乐理知识简述音乐合成过程中不可防止需要考虑音乐的三大特性:音调、响度、音色。音调就是音的上下,其主要影响因素为声波的频率。响度为音的强弱,其主要影响因素为声波的振动幅度。音色是声音的感觉特性,其变化是由音乐波形中谐波的作用产生的。1.4.2音调与唱名音乐曲谱中所对应的的1(do)、2(re)、3(mi)、4(fa)即为唱名,每个唱名代表着各自独特的基波频率,但是要确定其基波频率必须先确定音调。如,乐谱为1=C,代表音调为C调则1(do)的基波频率是261.6Hz,假设乐谱为1=E则1(do)频率是2
28、39.6Hz,乐谱为1=G则1(do)的频率是392.1Hz。1.4.3音色与谐波音色是声音的感觉特性,其变化是由音乐波形中谐波的作用产生的。在专业术语中,泛音指谐波,音调确认后可以确定唱名的基波频率,但是谐波频率的却无法确定。乐器不同,所发出声音的音乐也不同,这是因为不同乐器会产生不同的谐波成分和频谱构造。不仅如此,不同乐器多产生的音乐包络波形也迥乎不同,在合成音乐时常将音乐的复杂包络函数直线化,这是便于用程序来表示波形包络,因而常呈折线型。1.4.4十二平均律十二平均律,是指将音乐的八度按照频率等比例地分成十二份,是一种音乐定律的方法。它被广泛应用在键盘乐器与交响乐队中,因为它不仅与五度相
29、生律发音相似,而且能轻松解决转调问题。国际标准音的规定显示,相邻的半音之间的频率之比定为2(1/12)1.059,钢琴就是所有乐器中应用该规律的最常用乐器。其琴键a1的频率规定为440Hz,所以根据国际标准音规定就可以算出钢琴其他所有琴键所对应的频率。如,与a1左边相邻#g1频率是440/1.059=415.03Hz,与a1右边相邻的半音#a1的频率是466.16Hz,也可以算出不同音调下1do的对应的基波频率,即C:261.63Hz,F:349.23Hz和G:392Hz等。1.4.5傅里叶变换与频谱分析音乐合成过程中不可防止需要考虑音乐的三大特性:音调、响度、音色,因此必须了解音乐的基波、谐
30、波频率成分以及包络的形状特征。应用傅里叶变化理论对音乐信号的频谱构造进展分析处理,有利于提取其频谱特征。现代信号频谱的主要分析方法为有限长序列的离散傅氏变换(DFT),它能够将频域也离散化。N点DFT实质上是其频谱的离散频域采样,对频率具有选择性(k=2k/N),在这些点上反映了信号的频谱。N点DFT虽然能克制时间域与频率域之间相互转换的计算障碍,但是其计算量大计算复杂。因此引用快速傅里叶变化FFT算法最简单、编程最容易的基2FFT,还有基4FFT、基8FFT等快速算法。采样定律说明,FFT变换相当于对有限长序列进展频域采样,计算速度快而且也不会丧失信息,具有双重作用。所以只要时域序列的长度足
31、够长,采样的点数足够多,频域采样也可以很好地反映信号的频谱趋势,基于以上优点,在设计中可以用FFT进展语音信号的频谱分析。第2章 音乐合成的相关算法音乐合成是语音合成的一种,因此语音合成的算法思路可以直接运用于音乐合成中。对于语音合成的研究已经到了一个比拟深入的阶段,也出现了多种不同的算法,但是归结起来,主要是两个大的方向,其中一种是通过统计学建立声学模型来进展语音合成,另一种是挑选语音的特征参数来识别并合成新的语音。2.1 基于统计声学模型的合成算法这种算法的思路是在模型训练阶段,首先提取语料库中语音数据的频谱、基频等声学相关指数,与统计声学模型可以用于匹配之前和之后的容,并通过语料库中音位
32、以及韵律予以注释。使用的模型构造为隐马尔柯夫模型。当进入到合成阶段时,以使目标合成句对应的声学模型具有最大的似然值输出为准则,来进展最正确合成单元的挑选,最后通过平滑连接各备选单元波形来生成合成语音。其核心在于对录入过程中中,对待合成字符产生的研究数据,需要将匹配的单元从前期进展录制的语料库中进展筛选,得到的结果为由波形进展编辑而成的语音成品。这种效果制作的语音成品相比普通算法在自然度上有所超越,原因在于波形自身便具备自然的特性。前期筹划的语料库的容越广泛,自然度的优势就越明显,甚至会影响到语音合成未来的前进开展问题。随着对语音合成技术的不断探究,目前以隐马尔柯夫模型作为主流算法,并且得到快速
33、的推广。类似统计建模的统计模型,围在语音识别方面以获得广泛推广。在这种参数的操作原理中,即是在参数合成的方式以统计模型为主,声学模型为辅的方式进展模拟,其中参数生成的方式为最大似然,通过对生成语音成品需求的频谱和韵律进展评估,再通过参数合成的方式转化语音。以这种方式为原则,将提升系统的应用性,在运算期间,可以无视语种的区别以及进展自动化训练,最终使综合的自然度质量提高。通常在自动化训练环节,在前期筹备的语料库里,可针对音素声学参数匹配音段、韵律进展容注释,对HMM模型中之前和之后的容进展信号频率、基频和时间长度进展训练。在最后的合成环节,需要进展录入文本的解析,才可获取目标合成句中所有语音最小
34、单位进展上下容的注释,测试已优化好的模型与声学模型的匹配程度。可以参照Kullback-Leibler算法原则进展单元的选择和MLE算法原则下进展单元值的选择,生成的最终单元序列可到达合成语音的平滑输出。详细训练算法以及合成算法如图2.1所示。图里面的字太大了,说了好几遍了图 2.1基于统计声学模型的合成算法2.2 基于离散变换的合成算法这种算法是在离散变换域中合成语音信号,建立语音线性预测模型,信号经过加窗后随着信号帧推进逐一展开处理,随之对语音取样值的线性组合进展预测以及运行基音检测算法择取语音帧,对语音信号进展模拟重建。其主要特质为,通过对样本进展频率滤除,进而通过预测器进展预测,以语音
35、线性预测模型进展优化,以到达控制信号的带宽,加窗后随着信号帧推进逐一展开处理,音频的重构合成将在声道模型中进展。采用此种算法的亮点在于传输能力方面要好过模拟信号。通常情况下,信号在转换过程中需要将模拟变为数字,而语音信号也不例外,作为对语音信号进展重构合成的变换域即Z域,就是由离散系统转变而成。2.3 本文算法通过结合实际情况,本文的算法思路是:首先利用相关的语音处理函数进展简单的音乐合成,对音乐进展降噪、加谐波以及升降度处理;然后用傅里叶变换分析经相应处理后的各音乐频谱;最后运用傅里叶级数的原理来再次合成音乐针对语音音频进展对应的优化合成,对音乐频率中产生的噪音、非正弦电量、音调等参数进展分
36、析优化。采用此种的亮点在于,方便快捷,可以使普通音频合成的效果显著。只不过,如果面对非常复杂的音频,就会出现诟病。在噪音、音调等方面受到阻碍。下文将着重通过博里叶技术变化进展剖析,证明此种方法的合理性。第3章 基于MATLAB的简单音乐合成设计本章主要简单音乐合成设计,并对设计的根本原理进展分析,在介绍之前先对MATLAB进展一个简介。3.1 MATLAB简介一个简介将了这么多你不如单独列一章来将matlabMatlab为缩写的英文名,而它中文命名为矩阵实验室MATri* LABoratory,矩阵实验室的缩写。在1979年的时候,克里夫莫勒尔正在为美国新墨西哥大学任教,当他在授课的时候,希望
37、自己的学生可以运用EISPACK和LINPACK进展运算,当时他发现自己的学生在对接口进展编程经常要花费大量精力,给运算带来极大的不便。为了解决这一问题,方便学生的运算,他便自己编写出程序库的接口程序,并且根据程序库的运算方式命名为矩阵实验室。雏形时期的Matlab是用FORTRAN语言进展简编,用途比拟单一,因为无偿使用又在学生中有良好的口碑,经常被各个大学所应用。工程师John Little敏锐地觉察到Matlab在工程领域的广阔前景。同年,他和 Cleve Moler、Sieve Bangert一起合作成立了公司。以C语言开发使之成为专业进展数据运算以及图表显示功能的专业软件。在九十年代
38、初期,公司不断对Matlab进展更新、升级、换代,使之成为多功能化计算软件,在软件超凡的数据运算能力为前提,增加了符号运算以及模拟建模等功能。使编程更方便。1999年初推出了的5.3版本在很多方面又进展了进一步改良。2001年7月,MathWorks公司退了Matlab最新版本6.1版,6.1版对计算机配置要求比拟高。之后又推出了7.0版本。现在用户用的最多的是7.0版本。 截止到目前,Mat lab已经逐步成为专业功能更强大的软件,它所具备的灵活运算能力以及通俗易懂的语言使之更为实用,其中在各个国家知名大学中被普及应用,并受到广泛的好评。主要运用于数学、机械自动化、自然科学、工程科技、测量测
39、绘等多种学科,是众多学科专家教授以及学生都需要必备的应用软件,并在一些更为专业的学术部门被普及运用,进展专业性的科研开发。在国的科研工程之中,Matlab也被普遍应用,而本文中主要需要Matlab的通讯处理和仿真模式。Matlab的计算功能分两个方面,一方面是数值计算,一方面则以针对数据中的符号计算进而提供分析数据,对于精度以及解析进展求解。另外它包含的函数容以及函数算法等兼容性较强,算法公式为经过专业计算专家进展审核认可,并经过精心设计。另外,对于符号计算的分析功能也十分强大,在通过与MAPLE软件进展强强联手,并以其明显的功能优势成为计算软件中的主流软件。Matlab在制图方面的功能也非常
40、完整,可进展两种层次的制图进展操作:首先可以对图形变量进展低层制图,再次也可以在此根底上进展高层制图。尤其是在高层制图方面,不仅在制图的功能上比拟丰富,在操作上设计中也合理便捷。图片的变量在绘制过程中可随意的进展控制。此外,Matlab的额外亮点还在于它会用户提供的工具箱,在进展根底的计算制图等功能时,可使用根底款工具,就完全能满足需求。而在扩展工具箱中,包括功能、学科等多种针对性操作工具,例如:模拟建模、符号处理、系统操作、通讯信号、金融数据等多种专业性工具。Matlab能够在数据计算软件中占据主流的位置,在科研单位以及高校各学科中得到如此的普及运用得益于它的可视化图表、数值运算、算法测试等
41、。其中包含Matlab和Simulink,两者可以将诸多专业性工具可视化图表、数值运算、模拟建模等在软件视图进展优化,以到达更高的客户体验。主要运用于数学、机械自动化、自然科学、工程科技、测量测绘等多种学科。Mat lab的主要特点分析如下:1.编程语言简单,应变能力强大;依靠其种类繁多、数量大、涉及围较广的数据库,可以通过便利的函数应用进展制作测试,对初学者根本无太多要求,而且非常容易上手。2. 用户体验良好,在Matlab能将根底功能进展掌握之后,根本对程序调试也非常熟练,开发人员对程序的编制更加得心应手,而且其具备通俗易懂的操作界面,以人性化和实用化的开发环境满足开发人员的实际需求,可以
42、尽快对于错误进展修复和排除,另外由于学习难度降低,使之成为比VB更为简单的语言系统。3扩展兼容能力强 , Matlab强大的数据库使开发人员对程序的编制更加得心应手,并且库函数兼容能力强,针对可以根据用户的体验进展自行改变,调动、翻阅。根据开发人员的实际需求,还可以自行对一些元素进展自定义的建立和扩展,使其具有的多元化的特征跟拓展性的功能。4语句简单,容综合表达 ,Matlab主要依靠函数成为自身重要语言,通常用以下表示:(a,6,c)= fund,e ,f,含义为函数在函数命数之,输入变量d,e,f,和输出变量a,b,c .组成,同一函数名F,不同数目的输入变量包括无输入变量及不同数据存在的
43、变量。其中每一种变量,有存在针对性的数值,使之将繁杂的运算符转化更加精简,从而大量减少字符的数量,提供了良好的编辑和调试的环境。5矩阵和数组运算能力强 Basic、Fortra一样规定了矩阵的一系列运算符,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,将其用于在通讯方式、模拟建模、语音识别等角度的应用,可以提高研究的效率,尤其是科研类软件的开发,它具有的功能性以及可控制性使一些专业围的软件得到更好的研发及应用。6制图功能简单有效,对于制图的功能性,Matlab的优势在于简单,通过输入制图函数的指令,就可以对其图形、颜色、线、点等多重要素进展绘制。而且对于制图表标题、注释也仅需要简
44、单指令就可以达成。3.1.1MATLAB的运行启动MATLAB 点击MATLAB图标,进入到MATLAB命令窗MATLAB mand Window.在命令窗,可以输入命令、编程、进展计算. 学会使用help命令在命令窗输入help命令,再敲回车键.在屏幕上出现了在线帮助 总览.注意:MATLAB命令被输入后,必需敲回车键才能执行.为行文方便,以后不再每次提醒敲回车键.学会使用help命令,是学习MATLAB的有效方法.例如:要想知道MATLAB中的根本数学函数有哪些,可以在总览的第五行查到:MATLAB中的根本数学函数用elfun表示,于是,可进一步键入:help elfun,屏幕上将出现根本
45、数学函数表.注意:help elfun之间有空格,以后不再每次提醒.如果想了解sin函数怎样使用,可进一步键入help sin.在工具栏中点击help按扭,或点击?号按扭,与上面获取帮助信息的方法是等效的. 学会使用demo命令 在命令窗输入demo命令,再敲回车,键屏幕上将出现演示窗口. MATLAB Demo Window一共有三个窗口,左边的窗口显示欲演示容的大标题,选定其中一项,右下方的小窗口显示欲演示的具体容,选中其中一栏,再点击run按扭,屏幕上将演示选定的演示程序.右上方的窗口显示关于大标题的一些说明.在命令窗输入type (文 tob_id_4294 2 件名),将显示演示程序
46、的M文件,仔细研究演示程序的M文件,是学习MATLAB的又一有效方法. 进入演示窗还有另一方法:在工具栏中点击Help栏,下拉式菜单中点击e*amples and demos项,即可进入演示窗口. 退出 在工具栏中点击File按钮,在下拉式菜单中单击E*it MATLAB项即可3.1.2变量、语句、矩阵与函数1变量 在MATLAB中,变量由字母、数和下划线组成.第一个字符必须是字母.一个变量最多由31个字符组成,并区分大小写.下面是MATLAB中表示特殊量的字符: pi圆周率、eps最小浮点数、Inf正无穷大、NaN表示0/0或inf-inf等不定值、i,j虚数单位 2语句 MATLAB语句的
47、一般形式为:变量=表达式.当*一语句的输入完成后,按回车键,计算机就执行该命令.如果该语句末没输入其它符号或输入了逗号,将显示结果;如果句末输入了分号,将不显示结果.如果语句中省略了变量和等号,则计算机将结果赋值给变量ans. 3矩阵把mn个数排成m行n列的数表,此数表被称为m行n列的矩阵,记为 mnmnnmaaaaA1111 MATLAB中矩阵的输入方法如下:A=a11,a1n;am1,amn.逗号是数之间的分隔符也可用空格代替;分号是换行符. 3.1.3 绘制三维图形空间曲线的绘制 绘制空间曲线的根本命令为: plot3(*,y,z);plot3(*,y,z,s)或plot3(*1,y1,
48、z1,s1,*2,y2,z2,s2,) 其中*,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s是线形、颜色开关,这一点与二维曲线时的情形一样. 曲面的绘制绘制空间曲面的根本命令为mesh(*,y,z). 如果*、y是向量,则要求*的长度=矩阵z的列维;y的长度=矩阵z的行维.以zij为竖坐标,*的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图多幅图形的创立 有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比拟,往往在一个窗口画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为: subplotm,n,p
49、 使用此命令后,把窗口分为mn个图形区域,p表示当前区域号. 例如把sin*,cos*,atan*,sin*cosy画在一个窗口,可键入: *=0:pi/6:2*pi;y=*; z1=sin(*);z2=cos(*);z3=atan(*); subplot(2,2,1); plot(*,z1,r,*,z2,g) subplot(2,2,2);plot(*,z3,m) subplot(2,2,3);*,y=meshgrid(*,y);z4=sin(*).*cos(y); mesh(*,y,z4);subplot(2,2,4);surfc(*,y,z4) 3.3 核心算法设计这个算法核心就是傅里叶
50、变换,傅里叶变换本来是数学专业的容,但是在MATLAB中运用的非常广泛,本文根据福利叶变换创立了信号频谱的概念。傅里叶分析就是将信号的频率构成、频率宽度等特征进展分析。音乐的基波频率和谐波构成是合成一段音乐的根本。所以,傅里叶变换是在处理时必须要使用到的根本工具。当时间信号是连续时,根据傅里叶变换有如下公式:。因为等式两边都是连续性函数,并不能用作计算机来进展计算。需要MATLAB提供的符号函数fourier来进展计算。但是有一个前提要求,就是需要信号解析的表达式。但是在工程实际应用中,并不能得到信号是解析表达式,在这种情况下,就需要傅里叶变换的数值计算的方法。如果f(t)的主要取值区间为t1
51、,t2,则将T=t2-t1定义为区间长度。在该区间抽样N个点,抽样间隔为t=T/N,则通过上述公式则可以计算出任意频点的傅里叶变换值。假设F()的主要取值区间是 1,2 ,要计算其间均匀抽样的k个值,故在上面的式子中有如下表达式其表达的意思为频域抽样间隔。3.4 算法实现3.4.1 调用相关的MATLAB函数相关的几个声音信号分析与处理的MATLAB函数及其功能,见下表表3.1 函数功能表函数功能wavread读.wav文件sound将向量转换成声音kron矩阵的量积(叉乘)resample改变信号的采样率interp上采样(提高采样率)decimate下采样(降低采样率)3.4.2 音乐初步
52、处理要注意音乐时间的分割。在进展音乐信号处理时,需要考虑样品数据是否是该软件承受围的点。假设以8000Hz为取样样品,意味着在一秒就有8000个取样数据点。需要再进展相当长时间的数学计算。由于时间较长,可能会出现死机的情况。所以,需要对音乐进展分割成假设干个小段落后在进展分析计算。并且分割的段落越多,其计算分析的速度越快,效率越高。科学时间段落为0.5秒一个段落。在进展音乐分析工作时,分析的重点应该落在每一小段的最高幅度周围,其他处当做幅度衰减其频率不变,可以不用重复分析。能够减少工作时间。减少无用功。但是为了防止出现漏掉基波频率,就需要严格参考时域波形,确定每个音的起止时间和持续时间。承接上
53、文提及到的音乐的起始时间和持续时间,这二者是合成音乐中的重要环节。音调的持续时间就是音乐的节拍,俗称的拍子。一个节拍大约有零点五秒。需要准确把我每个音的起始时间和持续时间,这样才不会在合成音乐时完成失真的现象,才能真正把握住各个基波频率的顺序和节拍。音乐中一个重要的因素就是音乐的波形包络。为了减小合成过程中造成的误差,可以通过音乐时域波形判断音乐在下一个音乐开场时是否会衰减为零。音乐的包络有两种形式,一是折线型,二是指数衰减。其重要步骤是如何采取衰减指数。假设是采取折线方式,其操作会更繁琐一点,但是可以通过时域波形来判断折线斜率。如果采取指数衰减的形式,就要简单一些,只需要确定衰减系数。本文采
54、用的方式是指数衰减方法,根据工程上电容充放电理论来确定衰减系数,当t大于等于3S以后,可认为电路已趋稳定,其中,S为RC电路的时间常数,S=RC。假设*一个音乐的持续时间为T,并且在持续时间衰减为零。当包络采用指数eat时,则衰减因子a=3/T。计算器的计算的容量是有限的,为了提高计算的速度,也应该考虑合成时的频率分量,并不能将所有的分量都参与到合成中。只需要选择其中音频超过0.35倍最大幅度的频率分量,这样才能保障计算机稳定高效地工作。同时我们也发现,合成音乐并不是真正的音乐,由于舍弃了一些音乐频谱中的频率分量,导致合成音乐的频率分量比真是音乐中的分量要少,并且采用了指数衰减包络的形式对音乐
55、进展了波形形状的筛选。并没有完全具备真实音乐的波形形状。从而简化了程序的编制。3.4.3 音乐合成合成的局部代码如下:function k= play()rhythm = 5 5 6 2 1 1 6 2;0 0 0 0 0 0 -1 0 ; 0.5 0.25 0.25 1 0.5 0.25 0.25 1;y=generaterhythm(rhythm, 8);sound(y);end用MATALB语言编程实现音乐的分析与合成实验流程如图3.1所示。图3.1 音乐合成流程图-. z.基于MATLAB的简单音乐合成仿真这章主要是根据之前的程序进展进一步的仿真验证。充分利用了MATLAB良好的信号处
56、理能力。主要的设计图如下列图。基于MATLAB 软件的音乐合成系统简单合成及处理音乐的模块音乐的傅里叶频域分析模块傅里叶级数合成音乐模块音乐的字幕动态显示模块图4.1 设计框架4.1 合成音乐4.1.1 初始音乐合成4.1.2 消除噪音在前面的音乐中会听到杂音,使啪音效出的最简便的方法是,可以通过包络来消除噪音,为每个音都加上外形相似的包络,让其连接响度为零即可。主要是两个判断语句:if p/l0.7y=p/l*e*p(-7*p/l);elsey=0.7/0.3*e*p(-4.9)*(1-p/l);endend程序运行后,可明显发现没有啪音的出现,但由于不管音的长短,最终都要衰减到零,这使音乐
57、的真实感大大降低。加过包络后的波形图如图4.1所示。图4.1 加过包络后的波形图在两个不同音的交界处放大图如4.2所示,由图可见,在交响处的响度为0,因此,不会出现大的高频分量图4.2 交界处放大图在试验程序中发现,当交界处的响度非常小而非零时,啪音也不会出现,例如当交界处响度为最大的10%时,啪也会消除,波形如图4.3所示。图4.3 响度为10%的波形图4.1.3 重新生成音乐由乐理知识可以知道,八度的频率差是两倍,将原频率升高或者降低成原来的两倍或者二分之一,就能够实现将原音乐升高一个八度或者降低一个八度。并且仅需要在频率标记上乘以二或者除以二就可以了。假设要低一个八度,利用resampl
58、e 函数将上述音乐升高半个音阶即可。假设要上升半个音阶,将其频率上升为原来的21/121.06倍就可以实现,只需要利用resample函数改变原数据采样率即可,即y=resample(y,100,106);在上面结果的根底上参加适量谐波,重新生成音乐,代码如下:function y = generatetune (freq, time, fs)c=1 0.2 0.3;t = 0:1/fs:(time - 1/fs);y = zeros(1, length(t);for count = 1:3;y=y+c(count)*sin(t*freq*count*2*pi);endfor count1 =
59、 1 : length(y)y(1, count1) = 20*y(1, count1) * amendment(count1, length(y);end仅修改generaterune函数即可。4.2 原始声测试和傅里叶分析4.2.1 原始声测试测试原始声音的命令为:d=wavread(fmt.wav);sound(d)听到声音真实。载入文件Guitar.mat,并绘制realwave和wave2proc的图像,我们得到图4.4和图4.5两图。图4.4 realwave原始声音波形图图4.5wave2proc原始声音波形图根据如下程序,我们可以近似求出一个周期的长度约为25个点。a=zero
60、s(1,length(realwave)-24);for count=1:length(realwave)-24a(count)=sum(realwave(1:25).*realwave(count:count+24);endagain=resample(realwave,250,243);sample=zeros(1,25);for count=1:25for count2=0:9sample(count)=sample(count)+again(25*count2+count);endendsample=sample/10;again=repmat(sample,1,10);again=r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度奶业品牌保护与知识产权维权合同2篇
- 2025年度个人向企业借款利率固定及调整机制合同范本4篇
- 2025年新能源储能技术投资入股分红合同4篇
- 二零二五年度2025年国际贸易风险管理合同模板2篇
- 2025年度拆除工程拆除物运输保险合同4篇
- 二零二五年度智能家居系统标准采购合同3篇
- 2025年度民房建筑工程保修服务合同4篇
- 2025年度个人房产买卖合同附件标准范本2篇
- 二零二四年度智能物流系统开发与应用合同
- 2025年度个人二手车交易合同4篇
- 2025年度车辆抵押借款合同模板(专业二手车交易平台)
- 2025年人民教育出版社有限公司招聘笔试参考题库含答案解析
- 康复医学治疗技术(士)复习题及答案
- 完整版100以内加减法混合运算4000道100
- 2024年产权管理部年终工作总结例文(3篇)
- 《血管性血友病》课件
- 高三日语一轮复习日语助词「に」和「を」的全部用法课件
- 机场地勤劳动合同三篇
- 2024年山东省高考政治试卷真题(含答案逐题解析)
- 《用锐角三角函数解决问题(3)》参考课件
- 订婚协议书手写模板攻略
评论
0/150
提交评论