《数字信号处理》课程设计
说明书
设计题目:基于MATLAB的简单音乐合成
姓名:
专业年级:
学号:
指导老师:
时间:2015年6月25日
《数字信号处理课程设计》任务书
题目 | 基于MATLAB的简单音乐合成 | |||
主要 内容 | 1、自学Matlab软件,了解相关编译语句; 2、利用Matlab完成简单的音乐合成; 基于java的课程设计题目3、分析仿真结果,得出合理结论。 | |||
设计 要求 | 1、利用Matlab实现对自选乐曲的简单音乐合成,生成.wav文件; 2、给各个乐音加载包络,生成.wav,并显示音乐信号的包络图像; 3、在音乐中加上二、三、四次谐波,基波幅度为1,高次谐波幅度分别为0.388、0.1557、0.2424,并生成.wav文件。 4、按要求完成设计报告。 | |||
主要 仪器 设备 | 1、计算机1台,Matlab仿真软件一套。 | |||
主要 参考 文献 | [1]高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008 [2]程佩青.数字信号处理教程(第四版)[M].北京:清华大学出版社,2013 [3]余成波等.数字信号处理及MATLAB实现(第二版)[M].北京:清华大学出版社,2008 | |||
课程设计进度安排(起止时间、工作内容) | ||||
单人一组,每组选择不同乐曲进行音乐合成,每人1套实验环境。整个课程设计共1周20学时,具体安排如下: 前期准备工作4学时学习设计题目相关知识,查阅资料,掌握实现的原理; 计划内上机14学时按要求,完成设计方案,编写并调试仿真程序; 计划内上机2学时结果验收,并完成课程设计报告。 | ||||
课程设计开始日期 | 2015.06.23 | 课程设计完成日期 | 2015.06.30 | |
指导老师(签名):__________________________
1设计基础 -1-
1.1MATLAB软件简介 -1-
1.2乐曲解析 -1-
2设计与实现 -2-
2.1简单的音乐合成 -2-
2.1.1原理分析 -2-
2.1.2Matlab源代码 -2-
2.1.3运行结果分析 -2-
2.2除噪音,加包络 -2-
2.2.1原理分析 -2-
2.2.2Matlab源代码 -2-
2.2.3运行结果分析 -2-
2.3加谐波 -2-
2.3.1原理分析 -2-
2.3.2Matlab源代码 -2-
2.3.2运行结果分析 -3-
3总结与体会 -4-
4参考文献 -5-
1设计基础
1.1MATLAB软件简介
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室MATLAB工作界面)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MAT
LAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.2乐曲解析
乐音的基本特征可以用基波频率、谐波频率和包络波形三个方面来描述,我们用大写英文字母CDEFGAB表示每个音的“音名”(或称为“音调”),当指定某一音名时,它对应固定的基波信号频率。
图1表示钢琴的键盘结构,并注明了每个琴键对应的音名和基波频率值。这些频率值是按“十二平均律”计算导出,下面解释计算规则:
图1-1钢琴键盘和相应频率
从图1-1可以看到,靠下边的A键称为小字组A,它的频率值fA0=220Hz,而靠上面的另一个A键是小字一组A,它的频率值是fA1=440Hz。两者为二倍频率关系,即fA1相当于fA0的
二次谐波。也称为8度音或倍频程Octave(即我们画频响特性图时所用的术语“倍频程”)。
根据《两只老虎》简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8000kHz的正弦信号表示这些乐音,用sound播放合成的音乐
图1-2乐曲《两只老虎》曲谱
由图可知《两只老虎》的曲调定为C,即1=C,对应的频率为261.63Hz,据此可以计算出其他乐音的频率,类推计算出各乐音对应的频率见表1-1部分乐音对应的频率:
表1-1部分乐音对应的频率
乐音 | 1 | 2 | 3 | 1 | 1 | 2 | 3 | 1 | 3 | 4 | ||
频率 | 261.63 | 293.66 | 329.63 | 261.63 | 261.63 | 293.66 | 329.63 | 261.63 | 329.63 | 349.23 | ||
乐音 | 5 | 3 | 4 | 5 | ||||||||
频率 | 392 | 329.63 | 349.23 | 392 | ||||||||
在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.
5此部分乐音的持续时间见表1-2部分乐音对应的时间:
表1-2部分乐音对应的时间
乐音 | 1 | 2 | 3 | 1 | 1 | 2 | 3 | 1 | 3 | 4 |
时间 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 | 0.5 |
乐音 | 4 | 5 | 3 | 4 | 5 | |||||
时间 | 0.5 | 1 | 0.5 | 0.5 | 1 | |||||
而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。
根据以上分析在MATLAB中编写如下程序:
sound_1_1.m
clear;clc;
fs=8000; %抽样频率
f=[261.63 293.66 329.63 261.63 261.63 293.66 329.63 261.63 329.63 349.23
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论