




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上课程设计音乐合成实验报告专 业: 测控技术与仪器 班 级: 测控11-2 班 姓 名: 谷晓峰 学 号: 指导教师: 贺婷 广东石油化工学院计算机与电子信息学院信号与系统课程设计 -利用matlab合成音乐一、实验目的1. 熟悉MATLAB的软件和语言指令的使用; 2. 学习利用MATLAB进行连续信号的时域、频域分析; 3. 熟悉抽样信号与连续信号的区别。二、实验内容1请根据画心片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB 中生成幅度为1抽样频率为8kHz 的正弦信号表示这些乐音。请用sound 函数播放每个乐音,听一听音调是否正确。最后用
2、这一系列乐音信号拼出画心片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何?并用图显示生成的音乐信号。相关知识: 画心完整曲谱,实验时从中随机截取几节用于编程。 利用十二平均律计算频率以及相关音乐知识。如图1,其中,相当于的二次谐波,二者是倍频的关系。从A到A1共有12个键,7个白色键,5个黑色键。中间这些频率值得计算规律为相邻音倍乘系数。即,别的依次类推。图1 钢琴键盘图1中各键对应的频率如下表:FbGGbAAbBBC1bD1D1bE1E1174.61184.99196207.65220233.08246.94261.63277.18293.66311
3、.13329.63F1bG1G1bA1A1bB1B1C2bD2D2bE2E2349.23369.99392415.30440466.16493.88523.25554.36587.33622.25659.25D调名与音名对应:1234567D1E1F1G1A1B1C1D2bG表示的F升高半音,在乐谱中用#表示。或者G降低半音,用b表示。乐谱这中的4/4表示每小节有四拍,一个1/4音符的持续时间为一拍,一拍大概0.5s左右。eg:y=0*t; %初始化y(t0.25)=sin(440*2*pi*t(t0.25); %第一个音 5,持续时间0.25s y(0.25t&t0.5)=sin(392*2
4、*pi*t(0.25t&t0.5); %第二个音3,持续时间0.25ssound(y,8000) %播放音乐 三实验步骤 3.1音乐合成根据画心第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound播放合成的音乐。由图可知画心的曲调定为D,即1=D,对应的频率为293.66Hz,据此可以计算出其他乐音的频率,一次类推计算出第一小节各乐音对应的频率为:乐音533212253频率440349.23349.23329.63293.66329.63329.63440349.23乐音533213563频率440349.2
5、3349.23329.23293.66349.23440493.88349.23乐音53321217频率440349.23349.23329.63293.66329.63293.66277.96在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.5s,因此各乐音的持续时间为:乐音533212253时间0.250.250.50.250.250.50.250.251.5乐音533213563时间0.250.250.50.250.250.50.250.251.5乐音53321217时间0.250.250.50.250.250.50.250.25而在MATLAB中表示乐音
6、所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。根据以上分析在MATLAB中编写如下程序:sound_1_1.mclear;clc;fs=8000; %抽样频率f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329
7、.63 293.66 277.96; %各个乐音对应的频率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各个乐音的抽样点数N=length(time); %这段音乐的总抽样点数east=zeros(1,N); %用east向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:time(num)/fs; %产生第num个乐
8、音的抽样点east(n:n+time(num)-1)=sin(2*pi*f(num)*t); %抽样点对应的幅值 n=n+time(num);end sound(east,8000) %播放音乐在MATLAB中运行sound_1_1.m,播放出了画心的第一段,但是可以听出效果很不好,只能听出具有画心的调子而已。3.2除噪音,加包络最简单的包络为指数衰减。最简单的指数衰减是对每个音乘以因子,在实验中首先加的是的衰减,这种衰减方法使用的是相同速度的衰减,但是发现噪音并没有完全消除,播放的音乐效果不是很好,感觉音乐起伏性不强。于是采用不同速度的衰减,根据乐音持续时间的长短来确定衰减的快慢,乐音持续时
9、间越长,衰减的越慢,持续时间越短,衰减的越快。在1.1程序的基础上加上包络,编写如下程序:sound_1_21.mclear;clc;fs=8000; %抽样频率f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各个乐音对应的频率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.2
10、5,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各个乐音的抽样点数N=length(time); %这段音乐的总抽样点数east=zeros(1,N); %用east向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:time(num)/fs; %产生第num个乐音的抽样点baoluo=zeros(1,time(num); %为存储包络数据的向量for j=1:time(num) if (j0.2
11、*time(num) y=7.5*j/time(num); else if(j0.333*time(num) y=-15/4*j/time(num)+9/4; else if(j0.666*time(num) y=1; else y=-3*j/time(num)+3; end end end baoluo(j)=y;end east(n:n+time(num)-1)=sin(2*pi*f(num)*t).*baoluo(1:time(num); %给第num个乐音加上包络 n=n+time(num);endsound(east,8000) %播放音乐plot(east)播放后可以听出噪音已经消
12、除,同时因为不同时长的乐音衰减的快慢不一样,音乐听起来更有起伏感,下图是加包络后的east图像。3.3改变程序,实现3.2中的音乐升高和降低一个八度升高一个八度即每个乐音的频率都提高一倍,变为原来的2被;降低一个八度即每个乐音的频率都减小一倍,变为原来的1/2。因此最简单的办法是将存储乐音频率的向量每个元素改变为2或1/2倍。即将程序中的即将程序中的f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.
13、23 349.23 329.63 293.66 329.63 293.66 277.96;改为f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; *2;或f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 32
14、9.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; /2;将上述音乐上高半个音阶,即将频率变为原来的(1.06)倍,可以利用resamlpe函数对原来的数据点进行重采样来实现east=resample(east,100,106);因为resample进行重新采样后会使每个乐音的持续时间改变,但是因为升高半个音阶,频率改变不大,所以每个音的持续时间是基本不变的。升高一个八度:fs=8000; %抽样频率f=440 349.23 349.23 329.63 293.66
15、 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各个乐音对应的频率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各个乐音的抽样点数 N=length(ti
16、me); %这段音乐的总抽样点数 east=zeros(1,N); %用east向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号 f=f*2t=1/fs:1/fs:time(num)/fs; %产生第num个乐音的抽样点east(n:n+time(num)-1)=sin(2*pi*f(num)*t); n=n+time(num);endsound(east,8000) %播放音乐运行得到图像为:降低一个八度:fs=8000; %抽样频率 f=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23
17、 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各个乐音对应的频率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25; %各个乐音的抽样点数 N=length(time); %这段音乐的总抽样点数east=zero
18、s(1,N); %用east向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号 f=f/2t=1/fs:1/fs:time(num)/fs; %产生第num个乐音的抽样点east(n:n+time(num)-1)=sin(2*pi*f(num)*t); n=n+time(num);endsound(east,8000) %播放音乐plot(east)运行得到图像为:在3.2的音乐中加入谐波在1.2的音乐中加上二、三、四次谐波,基波幅度为1,高次谐波幅度分别为0.2、0.3、0.1。只需将1.2程序改为sound_1_4.m fs=8000; %抽样频率f
19、=440 349.23 349.23 329.63 293.66 329.63 329.63 440 349.23 440 349.23 349.23 329.63 293.66 349.23 440 493.88 349.23 440 349.23 349.23 329.63 293.66 329.63 293.66 277.96; %各个乐音对应的频率time=fs*0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0.25,0.25,1.5,0.25,0.25,0.5,0.25,0.25,0.5,0
20、.25,0.25; %各个乐音的抽样点数N=length(time); %这段音乐的总抽样点数 east=zeros(1,N); %用east向量来储存抽样点n=1;for num=1:N %利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:time(num)/fs; %产生第num个乐音的抽样点baoluo=zeros(1,time(num); %为存储包络数据的向量for j=1:time(num) if (j0.2*time(num) y=7.5*j/time(num); else if(j0.333*time(num) y=-15/4*j/time(num)+9/4; else if(j0.666*time(num) y=1; else y=-3*j/ti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基础知识2025年高中化学模拟试题及答案
- 2025年联盟山东省菏泽一中学业水平考试语文试题模拟卷(九)含解析
- 把握脉络的保安证试题及答案
- 福建省福州市长乐高中、城关中学2024-2025学年高三第一次质量调研(一模)数学试题含解析
- 高效备考2025保安证试题及答案
- 针对性保安证考试试题及答案解析
- 2025年保安证考试现场技能试题及答案
- 烟台城市科技职业学院《品牌策划与管理》2023-2024学年第二学期期末试卷
- 2025年保安证考纲解读试题及答案
- 吉林省“五地六校”2025届高三第二次适应性训练物理试题含解析
- 读后续写+社会温情类(extra+photos)讲义 高三英语一轮复习
- 三年级数学下册课件-制作活动日历-人教版-(共45张PPT)
- 《胶结颗粒料筑坝技术导则》摘读
- 石油化工建设工程竣工报告
- 诗歌鉴赏之思乡怀人诗课件
- 高考语文一轮复习:下定义(含答案)
- 成人高考辅导资料教学课件
- 2022春大学英语A2学习通课后章节答案期末考试题库2023年
- “家校合育”手册
- 抛物线及其标准方程说课课件
- 数字营销广告技术行业rta巨量引擎实时接口
评论
0/150
提交评论