ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:295.63KB ,
资源ID:276891      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/276891.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通讯原理与技术.docx)为本站会员(b****0)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通讯原理与技术.docx

1、通讯原理与技术福建农林大学金山学院课程设计课程名称:通讯原理与技术系 别:信息与机电工程系专业班级:10电科 2 班学 号:100203055姓 名:题 目:基于MATLAB的简单音乐合成 2013 年 12 月 1 日通讯原理与技术课程设计任务书题目基于MATLAB的简单音乐合成主要内容1、自学Matlab软件,了解相关编译语句;2、利用Matlab完成简单的音乐合成;3、分析仿真结果,得出合理结论。设计要求1、利用Matlab实现对自选乐曲的简单音乐合成,生成 .wav文件;2、给各个乐音加载包络,生成.wav,并显示音乐信号的包络图像;3、在音乐中加上二、三、四次谐波,基波幅度为1,高次

2、谐波幅度分别为0.2、0.3、0.1,并生成.wav文件。4、按要求完成设计报告。主要仪器设备1、计算机1台,Matlab 仿真软件一套。主要参考文献1 樊昌信等.通信原理(第6版)M. 北京:国防工业出版社,2006.2 肖伟等.MATLAB程序设计与应用M.北京:清华大学出版社,北京交通大学出版社,2005. 3 赵鸿图等.通信原理MATLAB仿真教程M.北京:人民邮电出版社,2010. 课程设计进度安排(起止时间、工作内容)每位同学选择不同乐曲进行音乐合成,每人1套实验环境。整个课程设计共1周20学时,具体安排如下:前期准备工作 4学时 学习设计题目相关知识,查阅资料,掌握实现的原理;计

3、划内上机14学时 按要求,完成设计方案,编写并调试仿真程序;计划内上机2学时 结果验收,并完成课程设计报告。课程设计开始日期2013.11.25课程设计完成日期2013.12.01指导老师(签名):_ 1 设计基础 1.1 MATLAB软件简介MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室MATLAB工作界面)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效

4、数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRA

5、N等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。1.2 1.2 乐曲解析乐音的基本特征可以用基波频率、谐波频率和包络波形三个方面来描述,我们用大写英文字母 CDEFGAB 表示每个音的“音名”(或称为“音调”),当指定某一音名时,它对应固定的基波信号频率。图 1-1 表示钢琴的键盘结构,并注明了每个琴键对应的音名和基波频率值。这些频率值是按“十二平均律”计算导出。钢琴是十二

6、平均律制乐器。国际标准音规定,钢琴的a1(小字一组的a音,对应钢琴键是49A)的频率是为440Hz;又规定每相邻半音的频率比值为2(1/12)1.059463,(解释:这表示“2的十二分之一次方”),根据这规定,就可以得出钢琴上每一个琴键音的频率。如与a1右边相邻#a1的频率是4401.059463=466.16372Hz;再往上,b1的频率是493.088321Hz;c2的频率是523.25099.同理,与a1左边相邻的#g1的频率是4401.059463=415.030473Hz.这种定音的方式就是“十二平均律”。图 1-1 钢琴键盘和相应频率从图1-1 可以看到,靠下边的 A 键称为小字

7、组 A,它的频率值 fA0= 220Hz,而靠上面的另一个 A 键是小字一组 A,它的频率值是 fA1= 440Hz。两者为二倍频率关系,即 fA1 相当于 fA0 的二次谐波。也称为 8 度音或倍频程 Octave(即我们画频响特性图时所用的术语“倍频程”)。选取乐曲荷塘夜色前奏,见图1-2。图1-2 乐曲荷塘夜色曲谱由图可知荷塘夜色的曲调定为C,即1=C,对应的频率为261.63Hz,据此可以计算出乐谱中各个乐音的频率,见表1-1。表1-1 各乐音对应的频率乐音1235频率220196261.63293.66329.63392在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有四拍

8、,设一拍的时间是1s,因此部分乐音的持续时间见表1-2部分乐音对应的时间:表1-2 乐音对应的时间乐音151512315151时间(s)1.50.50.50.50.50.541.50.50.50.50.5乐音2215152112时间(s)0.541.50.50.50.50.50.52.50.50.50.5乐音151511时间(s)1.50.50.50.50.50.54而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。2 设计与实现 2

9、.1 简单的音乐合成2.1.1原理分析根据荷塘夜色片段的简谱和“十二平均律”计算出该片段中各个乐音的频率,在 MATLAB 中生成幅度为 1、抽样频率为 8000kHz 的正弦信号表示这些乐音。请用 sound 函数播放每个乐音,听一听音调是否正确,最后用这一系列乐音信号拼出荷塘夜色片段,注意控制每个乐音持续的时间要符合节拍,用 sound 函数播放合成的乐音。2.1.2 Matlab 源代码clear;clc;fs=8000 %抽样频率f=261.63 392 261.63 392 261.63 293.66 329.63 261.63 392 261.63 392 261.63 293.6

10、6 293.66 261.63 392 261.63 392 293.66 261.63 220 220 196 261.63 293.66 261.63 392 261.63 392 261.63 220 261.63; %各个乐音对应的频率time=fs*3/2,1/2,1/2,1/2,1/2,1/2,4,3/2,1/2,1/2,1/2,1/2,1/2,4,3/2,1/2,1/2,1/2,1/2,1/2,2,1/2,1/2,1/2,1/2,3/2,1/2,1/2,1/2,1/2,1/2,4;%各个乐音的抽样点数N=length(time); n=1;for num=1:N %利用循环产生抽

11、样数据,num表示乐音编号 t=1/fs:1/fs:time(num)/fs; %产生第num个乐音的抽样点hetangyuese (n:n+time(num)-1)=sin(2*pi*f(num)*t); %抽样点对应的幅值 n=n+time(num);endsound(hetangyuese,8000); %播放音乐2.1.3 运行结果分析初步合成的音乐音调符合曲谱,能听出荷塘夜色的旋律。但是每个乐音之间有“啪”的杂声,且无法分辨是何种乐器演奏。2.2 除噪音,加包络2.2.1 原理分析较为科学的包络如图2-1所示,每个乐音都经过冲激、衰减、持续、消失四个阶段。图2-1 音量变化由上图可以

12、看出这个包络是四段直线段构成的,因此只要确定了每段线段的端点,即可用端点数据写出直线方程,因为直线方程可以用通式写出(我用的是斜截式),因此这段包络可以用简单的循环来完成。例如认为包络线上的数据如图2-2所示:图2-2 包络线上的数据2.2.2 Matlab 源代码clear;clc;fs=8000; %抽样频率f=261.63 392 261.63 392 261.63 293.66 329.63 261.63 392 261.63 392 261.63 293.66 293.66 261.63 392 261.63 392 293.66 261.63 220 220 196 261.63

13、293.66 261.63 392 261.63 392 261.63 220 261.63;time=fs*3/2,1/2,1/2,1/2,1/2,1/2,4,3/2,1/2,1/2,1/2,1/2,1/2,4,3/2,1/2,1/2,1/2,1/2,1/2,2,1/2,1/2,1/2,1/2,3/2,1/2,1/2,1/2,1/2,1/2,4; %各个乐音对应的频率N=length(time); %这段音乐的总抽样点数hetangyuese=zeros(1,N); %用hetangyuese向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号 t=1/

14、fs:1/fs:(time(num)/fs; %产生第num个乐音的抽样点 P=zeros(1,time(num); %P为存储包络数据的向量L=(time(num)*0 1/5 333/1000 333/500 1; %包络线端点对应的横坐标 T=0 1.5 1 1 0; %包络线端点对应的纵坐标 s=1; b=1:1:time(num); %产生包络线抽样点 for k=1:4 P(s:L(k+1)-1)=(T(k+1)-T(k)/(L(k+1)-L(k)*(b(s:L(k+1)-1)-L(k+1)*ones(1,L(k+1)-s)+T(k+1)*ones(1,L(k+1)-s); %包络线直线方程通式 s=L(k+1); end hetangyese(n:n+time(num)-1)=sin(2*pi*f(num)*t).*P(1:time(num);%给第num个乐音加上包络 n=n+time(num);endsound(hetangyese,8000);plot(hetangyese);wavwrite(hetangyese,hetangyese2)2.2.3 运行结果分析播放后可以听出

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1