版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《数字信号处理》课程设计说明书设计题目:基于MATLAB的简单音乐合成姓名:专业年级:学号:指导老师:时间:2015年6月25日《数字信号处理课程设计》任务书题目基于MATLAB的简单音乐合成主要内容1、自学Matlab软件,了解相关编译语句;2、利用Matlab完成简单的音乐合成;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指导老师(签名):__________________________ 基于MATLAB的简单音乐合成4--4--图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部分乐音对应的频率乐音1231123134频率261.63293.66329.63261.63261.63293.66329.63261.63329.63349.23乐音5345频率392329.63349.23392在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.5此部分乐音的持续时间见表1-2部分乐音对应的时间:表1-2部分乐音对应的时间乐音1231123134时间0.5乐音45345时间0.510.50.51而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。 根据以上分析在MATLAB中编写如下程序:sound_1_1.mclear;clc;fs=8000; %抽样频率f=[261.63 293.66 329.63 261.63 261.63 293.66 329.63 261.63 329.63 349.23392 329.63 349.23 392];%各个乐音对应的频率time=fs*[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,1];%各个乐音的抽样点数N=length(time); %这段音乐的总抽样点数east=zeros(1,N); %用east向量来储存抽样点n=1;fornum=1:N %利用循环产生抽样数据,num表示乐音编号t=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); %播放音乐2设计与实现2.1简单的音乐合成2.1.1原理分析根据《两只老虎》片段的简谱和“十二平均律”计算出该片段中各个乐音的频率,在MATLAB中生成幅度为1、抽样频率为8000kHz的正弦信号表示这些乐音。请用sound函数播放每个乐音,听一听音调是否正确,最后用这一系列乐音信号拼出《两只老虎》片段,注意控制每个乐音持续的时间要符合节拍,用sound函数播放合成的乐音。2.12Matlab源代码clear;clc;fs=8000; %抽样频率f=[261.63 293.66 329.63 261.63 261.63 293.66 329.63 261.63 329.63 349.23392 329.63 349.23 392];%各个乐音对应的频率time=fs*[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,1];%各个乐音的抽样点数N=length(time); n=1;fornum=1:N %利用循环产生抽样数据,num表示乐音编号t=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); %播放音乐2.1.3运行结果分析初步合成的音乐音调符合曲谱,能听出《两只老虎》的旋律。2.2除噪音,加包络2.2.1原理分析你一定注意到(1)的乐曲中相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频分量。这种噪声严重影响合成音乐的质量,丧失真实感,下面通过加包络来消噪音。最简单的包络为指数衰减。最简单的指数衰减是对每个音乘以因子,在实验中首先加的是的衰减,这种衰减方法使用的是相同速度的衰减,但是发现噪音并没有完全消除,播放的音乐效果不是很好,感觉音乐起伏性不强。于是采用不同速度的衰减,根据乐音持续时间的长短来确定衰减的快慢,乐音持续时间越长,衰减的越慢,持续时间越短,衰减的越快。2.2.2Matlab源代码clear;clc;fs=8000; %抽样频率f=[261.63 293.66 329.63 261.63 261.63 293.66 329.63 261.63 329.63 349.23392329.63 349.23 392];%各个乐音对应的频率time=fs*[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,1];%各个乐音的抽样点数%各个乐音对应的频率N=length(time); %这段音乐的总抽样点数xio=zeros(1,N); %用east向量来储存抽样点n=1;fornum=1:N %利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:(time(num))/fs; %产生第num个乐音的抽样点P=zeros(1,time(num)); %P为存储包络数据的向量L=(time(num))*[01/53/85/81]; %包络线端点对应的横坐标T=[01.5110]; %包络线端点对应的纵坐标s=1;b=1:1:time(num); %产生包络线抽样点fork=1:4P(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);endlaohu(n:n+time(num)-1)=sin(2*pi*f(num)*t).*P(1:time(num)); %给第num个乐音加上包络n=n+time(num);endsound(laohu,8000);plot(laohu);wavwrite(laohu,'laohu2')2.2.3运行结果分析播放后可以听出噪音已经消除,同时因为不同时长的乐音衰减的快慢不一样,音乐听起来更有起伏感,如图为2-1波形图。图2-1laohu1加包络波形图2.3加谐波2.3.1原理分析在音乐中加上二、三、四次谐波,基波幅度为1,高次谐波幅度分别为0.2、0.3、0.1。2.3.2Matlab源代码clear;clc;fs=8000; %抽样频率f=[261.63 293.66 329.63 261.63 261.63 293.66 329.63 261.63 329.63 349.23392329.63 349.23 392];%各个乐音对应的频率time=fs*[0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,1,0.5,0.5,1];%各个乐音的抽样点数%各个乐音对应的频率N=length(time); %这段音乐的总抽样点数xio=zeros(1,N); %用east向量来储存抽样点n=1;fornum=1:N %利用循环产生抽样数据,num表示乐音编号t=1/fs:1/fs:(time(num))/fs; %产生第num个乐音的抽样点P=zeros(1,time(num)); %P为存储包络数据的向量L=(time(num))*[01/53/85/81]; %包络线端点对应的横坐标T=[01.5110]; %包络线端点对应的纵坐标s=1;b=1:1:time(num); %产生包络线抽样点fork=1:4P(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);endm=[10.30.2]; %波形幅值矩阵ss=zeros(1,length(t));fori=1:length(m)ss=ss+m(i)*sin(2*i*pi*f(num)*t); %加谐波endlaohu(n:n+time(num)-1)=ss.*P(1:time(num));%给第num个乐音加上包络laohu(n:n+time(num)-1)=sin(2*pi*f(num)*t).*P(1:time(num)); %给第num个乐音加上包络n=n+time(num);endsound(laohu,8000);plot(laohu);wavwrite(laohu,'laohu3')2.3.2运行结果分析音乐中加上二、三、四次谐波,基波幅度为1,高次谐波幅度分别为0.2、0.3、0.1,如图为2-2波形图。图2-1laohu2加谐波波形图3总结与体会通过这次的课程设计,加深了我们对数字信号处理所学知识的了解,增强了我们对教学知识的运用和主动研究的能力。让我们掌握信号处理过程的仿真设计方法。通过模仿老师所给的例题和所收集的资料例题,编写Matlab仿真程序,主要利用matlab软件来实现对乐音信号的仿真,从而加深我们对模拟信号数字化处理的理解,了解音乐信号时间特性、频率特性变化所带来的影响,初步学会改善音乐播放效果。在运用所学知识和学习Matlab软件的同时也学习到音乐的基本组成4参考文献[1]王力宁..MATLAB与通信仿真[M].北京:人民邮电出版社,1999[2]陈亚勇等..MATLAB信号处理详解[M].北京:人民邮电出版社,2001[3]高西全,丁玉美.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008[4]程佩青.数字信号处理教程(第四版)[M].北京:清华大学出版社,2013[5]余成波等.数字信号处理及MATLAB实现(第二版)[M].北京:清华大学出版社,2008[6]〔美〕VinayK.Ingle、JohnG.Proakis.数字信号处理——应用Matlab(第3版)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年三级营养师职业技能鉴定试题(附答案)
- 2026年燃气管网工安全生产考试笔试试题(含答案)
- 2026年全国(血吸虫病预防及治疗)科学技术知识试题库与答案
- 2026年全国特种作业操作证熔化焊接与热切割题及答案
- 《运筹学》课件 第6章 目标规划
- 2025年江苏省常熟市高二历史上册期末考试试卷含答案AB卷
- 2025年湖南省常宁市高一历史上册期末考试模拟卷附答案(巩固)
- 2026年山西省侯马市高三历史上册期末考试试卷附答案【研优卷】
- 2025年浙江省奉化市高二历史上册期末考试检测卷附参考答案(典型题)
- 2026年山东省龙口市高二历史上册期末考试考试卷及完整答案【名师系列】
- 宗白华生命美学思想研究
- 高中化学选择性必修3 教材习题答案
- 中建盘扣式悬挑脚手架施工方案
- 电站压力式除氧器安全技术规定
- GB/T 30819-2024机器人用谐波齿轮减速器
- 人民医院样本外送检测管理制度
- 电子防潮柜作业指导书
- 产学研用协同创新协议
- 高墩(40m高)安全专项施工方案(专家)
- 2023云南锡业职业技术学院教师招聘考试真题汇总
- 配电室运行维护投标方案(技术标)
评论
0/150
提交评论