当前位置:文档之家› 清华大学谷源涛MATLAB音乐合成

清华大学谷源涛MATLAB音乐合成

清华大学谷源涛MATLAB音乐合成
清华大学谷源涛MATLAB音乐合成

matlab音乐合成葫芦娃

目录 音乐合成实验................................................................................................. 错误!未定义书签。 摘要: (1) 第一部分简单的合成音乐 (1) 1.1合成《葫芦娃》 (1) 1.2 除噪音,加包络 (5) 1.3改变程序,实现1.2中的音乐升高和降低一个八度 (8) 1.4在1.2的音乐中加入谐波 (9) 摘要: 本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB 基本使用的目标。 第一部分简单的合成音乐 1.1 合成《葫芦娃》 根据《葫芦娃》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB中生成幅度为1,抽样频率为8kHz的正弦信号表示这些乐音,用sound播放合成的音乐

而在MATLAB中表示乐音所用的抽样频率为fs=8000Hz,也就是所1s钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound函数播放即可。 clear all;clc; freq=8000; %抽样频率 T=1/freq; pattime=0.5; %节拍的时间 note2=0:T:2*pattime; note4=0:T:1*pattime; note8=0:T:0.5*pattime; note_1=261.63; %各个音乐对应的频率 note_2=293.67; note_3=329.63; note_5=391.99; note_6=440; note_7=493.88; note_1b=523.25; wave1=sin(2*pi*note_1*note4); %各个音符所对应的节拍 wave2=sin(2*pi*note_1*note4); wave3=sin(2*pi*note_3*note2); wave4=sin(2*pi*note_1*note4); wave5=sin(2*pi*note_1*note4); wave6=sin(2*pi*note_3*note2); wave7=sin(2*pi*note_6*note4); wave8=sin(2*pi*note_6*note4); wave9=sin(2*pi*note_6*note8); wave10=sin(2*pi*note_5*note8); wave11=sin(2*pi*note_6*note4); wave12=sin(2*pi*note_5*note4);

MATLAB自适应滤波去噪

《MATLAB自适应滤波去噪》 课程设计报告 1.课程设计目的 此次课程设计目的是为了让我们学会使用MATLAB进行计算机仿真,使用自适应滤波法设计一个语音去噪声电路。培养我们的电路设计思路及其算法,明白理论与实践相结合的重要性,培养了我们的实际操作能力以及锻炼我们对实际问题的分析与解决的能力。 2.课程设计内容 2.1 LMS自适应算法原理 自适应过程一般采用典型LMS自适应算法,但当滤波器的输入信号为有色随机过程时,特别是当输入信号为高度相关时,这种算法收敛速度要下降许多,这主要是因为输入信号的自相关矩阵特征值的分散程度加剧将导致算法收敛性能的恶化和稳态误差的增大。此时若采用变换域算法可以增加算法收敛速度。变换域算法的基本思想是:先对输入信号进行一次正交变换以去除或衰减其相关性,然后将变换后的信号加到自适应滤波器以实现滤波处理,从而改善相关矩阵的条件数。因为离散傅立叶变换DFT 本身具有近似正交性,加之有FFT快速算法,故频域分块LMS FBLMS 算法被广泛应用。 FBLMS算法本质上是以频域来实现时域分块LMS算法的,即将时域数据分组构成N个点的数据块,且在每块上滤波权系数保持不变。其原理框图如图2所示。FBLMS 算法在频域内可以用数字信号处理中的重叠保留法来实现,其计算量比时域法大为减少,也可以用重叠相加法来计算,但这种算法比重叠保留法需要较大的计算量。块数据的任何重叠比例都是可行的,但以50%的重叠计算效率为最高。对FBLMS算法和典

型LMS算法的运算量做了比较,并从理论上讨论了两个算法中乘法部分的运算量。本文从实际工程出发,详细分析了两个算法中乘法和加法的总运算量,其结果为: 复杂度之比=FBLMS实数乘加次数/LMS实数乘加次数=(25Nlog2N+2N-4)/[2N(2N-1)] 采用ADSP的C语言来实现FBLMS算法的程序如下: for(i=0;i<=30;i++) {for(j=0;j<=n-1;j++) {in[j]=input[i×N+j;] rfft(in,tin,nf,wfft,wst,n); rfft(w,tw,wf,wfft,wst,n); cvecvmlt(inf,wf,inw,n); ifft(inw,t,O,wfft,wst,n); for(j=0,j<=N-1;j++) {y[i×N+j]=O[N+j].re; e[i×N+j]=re fere[i×N+j]-y[i×N+j]; temp[N+j]=e[i×N+j;}

matlab常用计算命令

Matlab常用计算命令(部分) by sunny_疑似天人 1.多项式运算: poly2sym函数,将给定的多项式系数向量转化为符号表达式,以降幂排序。 poly函数,得到矩阵的特征多项式(首项系数为1)的系数向量,然后也可以用poly2sym函数转化为多项式的符号表达式。 roots函数,得到方程的根,调用形式为roots(a),其中a 为多项式的系数;也可以直接调用roots([1 2 1])。 compan函数与eig函数,通过compan函数建立多项式的伴随矩阵再通过eig函数求伴随矩阵特征值以得到多项式的所有根。效果与roots函数相同;同时这两个函数也可单独使用: compan函数,建立多项式的伴随矩阵,如:a=[1 2 3 ];compan(a) ans = -2 -3 1 0 eig函数,求矩阵的特征值。 conv函数,求多项式的乘积,如:pd=conv(p,d),其中p和d均为多项式系数向量,得到的同样也是多项式的系数向量。 deconv函数,求多项式的除法。 polyder函数,求多项式的微分。即求一阶导数,如果要求多项式的高阶微分,可以通过循环实现。

polyfit 函数,对数据拟合得到多项式,这个多项式即可大致代表数据变化规律。例如: x=0:pi/20:pi/2; y=sin(x); p=polyfit(x,y,5) x1=0:pi/30:pi*2; y1=sin(x1); y2=polyval(p,x1); plot(x1,y1,'b-',x1,y2,'r*') legend('原曲线','拟合曲线') axis([0 7 -1.2 4]) p = 0.0057 0.0060 -0.1721 0.0021 0.9997 0.0000 1 2 3 4 5 6 7 -1-0.500.511.522.533.54 原曲线拟合曲线 2.向量及其运算 x=linspace(a,b,n),生成一个向量x ,其中a ,b 分别是生成矢量的第一个和最后一个元素,n 是采样总点数。当n 缺省时默认生成100维的向量。

matlab音乐处理合成实验报告

MATLAB高级编程与工程应用语音合成综合实验 姓名: 班级: 学号: 日期:

1.2.1 简单的合成音乐 (1) 请根据《东方红》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB 中生成幅度为1 、抽样频率为8kHz 的正弦信号表示这些乐音。请用sound 函数播放每个乐音,听一听音调是否正确。最后用这一系列乐音信号拼出《东方红》片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何 由“十二平均律”计算得到各个乐音的频率: “5”——“C”: “6”——“D”: “1”——“F”: “2”——“G”:392Hz “6.”频率是“6”的一半: 代码:() f=8000; T=1/f; t8=0:T:1*; t4=0:T:2*; t2=0:T:4*; t1=0:T:8*; part1=sin(2*pi**t4); part2=sin(2*pi**t8); part3=sin(2*pi**t8); part4=sin(2*pi**t2); part5=sin(2*pi**t4); part6=sin(2*pi**t8); part7=sin(2*pi**t8); part8=sin(2*pi**t2); total=[part1,part2,part3,part4,part5,part6,part7,part8]; sound(total); 试听发现,合成后的音乐基本保持了《东方红》的音调,但声音比较沉闷,相邻乐音之间有比较明显的“啪”的杂音。 (2) 你一定注意到(1) 的乐曲中相邻乐音之间有“啪”的杂声,这是由于相位不连续产生了高频分量。这种噪声严重影响合成音乐的质量,丧失真实感。为了消除它,我们可以用图所示包络修正每个乐音,以保证在乐音的邻接处信号幅度为零。此外建议用指数衰减的包络来表示。 首先尝试用折线包络,编写函数生成所需折线: function envelope = envelope_line(t) envelope(1:floor(t/8)) = linspace(0,1,floor(t/8)); envelope(floor(t/8)+1:floor(t/4)) = linspace(1,,floor(t/4)-floor(t/8))); envelope(floor(t/4)+1:floor(3*t/4)) = linspace,,floor(t*3/4)-floor(t/4)); envelope(floor(3*t/4)+1:t) = linspace,0,floor(t)-floor(3*t/4)); 对中的部分代码进行修改,调用envelope_line实现折线包络:() part1=sin(2*pi**t4).*envelope_line(t4);

自适应滤波LMS与RLS地matlab实现

MATLAB 仿真实现LMS 和RLS 算法的二阶AR 模型 及仿真结果分析 一、题目概述:二阶AR 模型如图1a 所示,可以如下差分方程表示: )()()2()1()()(21n d n v n x a n x a n v n x +=----= (1) 图1a 其中,v(n)是均值为0、方差为0.965的高斯白噪声序列。 , 为描述性参数, .95,0,195.021=-=a a 设x(-1)=x(-2)=0,权值 , =0.04①推导最优 滤波权值(理论分析一下)。②按此参数设置,由计算机仿真模拟权值收敛曲线并画出,改变步长在此模拟权值变化规律。③对仿真结果进行说明。④应用RLS 算法再次模拟最优滤波权值。 解答思路: (1)高斯白噪声用normrnd 函数产生均值为0、方差为0.965的正态分布随机1*N 矩阵来实现。随后的产生的信号用题目中的二阶AR 模型根据公式(1)产生,激励源是之前产生的高斯白噪声。 (2)信号长度N 取为2000点,用以观察滤波器权值变化从而估计滤波器系数,得到其收敛值。 (3)仿真时分别仿真了单次LMS 算法和RLS 算法下的收敛性能以及100次取平均后的LMS 和RLS 算法的收敛性能,以便更好的比较观察二者的特性。 (4)在用不同的分别取3个不同的 值仿真LMS 算法时, 值分别取为

0.001,0.003,0.006;用3个不同的λ值仿真RLS 算法时λ值分别取为1,0.98,0.94,从而分析不同步长因子、不同遗忘因子对相应算法收敛效果的影响。 二、 算法简介 1.自适应算法的基本原理 自适应算法的基本信号关系如下图所示: 图 1b 自适应滤波器框图 输入信号x(n)通过参数可调的数字滤波器后产生输出信号y(n),将其与参考信号d(n)进行比较,形成误差信号e(n)。e(n)通过某种自适应算法对滤波器参数进行调整,最终是e(n)的均方值最小。当误差信号e(n)的均方误差达到最小的时候,可以证明信号y(n)是信号d(n)的最佳估计。 2. LMS 算法简介 LMS 算法采用平方误差最小的原则代替最小均方误差最小的原则,信号基本关系如下: 1 ()()() ()()()(1)()2()()(0,1,2,....1) N i i i y n w n x n i e n d n y n w n w n e n x n i i N μ-=-=-+=+-=-∑ (2) 写成矩阵型式为: ()()()()()() (1)()2()() T y n W n X n e n d n y n W n W n e n X n μ==-+=+ (3) 式(3)中,W(n) 为n 时刻自适应滤波器的权值, 011()[(),(),....()]T N W n w n w n w n -=,N 为自适应滤波器的阶数,本设计中取为2000;X( n) 为n 时刻自适应滤波器的参考输入矢量,由最近N 个信号采样值构成,()[(),(1),....(1)]T X n x n x n x n N =--+;d ( n) 是期望的输出值;e ( n) 为自适应滤波器的输出误差调节信号(简称失调信号) ;μ是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。

MATLAB计算概率

一、实验名称 已知随机向量(X ,Y )独立同服从标准正态分布,D={(x,y)|a0&&e<6 if e==1

p=erchong(a,b,c,d) end if e==2 p=wangge(a,b,c,d); end if e==3 p=fenbu(a,b,c,d); end if e==4 p=mente(a,b,c,d); end if e==5 [X,Y]=meshgrid(-3:0.2:3); Z=1/(2*pi)*exp(-1/2*(X.^2+Y.^2)); meshz(X,Y,Z); end e=input('请选择: \n'); end % ===============================用二重积分计算function p=erchong(a,b,c,d) syms x y; f0=1/(2*pi)*exp(-1/2*(x^2+y^2)); f1=int(f0,x,a,b); %对x积分 f1=int(f1,y,c,d); %对y积分 p=vpa(f1,9); % ================================等距网格法function p=wangge(a,b,c,d) syms x y ; n=100; r1=(b-a)/n; %求步长 r2=(d-c)/n; za(1)=a;for i=1:n,za(i+1)=za(i)+r1;end %分块 zc(1)=c;for j=1:n,zc(j+1)=zc(j)+r2;end for i=1:n x(i)=unifrnd(za(i),za(i+1));end %随机取点 for i=1:n y(i)=unifrnd(zc(i),zc(i+1));end s=0; for i=1:n for j=1:n s=1/(2*pi)*exp(-1/2*(x(i)^2+y(j)^2))+s;%求和end end p=s*r1*r2;

Matlab音乐合成实验报告

音乐合成实验 目录 音乐合成实验 (1) 摘要: (1) 第一部分简单的合成音乐 (2) 1.1合成《东方红》 (2) 1.2 除噪音,加包络 (3) 1.3改变程序,实现1.2中的音乐升高和降低一个八度 (8) 1.4在1.2的音乐中加入谐波 (9) 1.5自选音乐合成——《两只老虎》 (10) 第二部分用傅里叶变换分析音乐 (11) 2.1载入fmt.wav并播放 (11) 2.2载入文件Guitar.mat,处理原始数据realwave (11) 2.3分析wave2proc的基波和谐波 (13) 2.4自动分析fmt.wav的音调和节拍 (16) 第三部分基于傅里叶级数的音乐合成 (19) 3.1 用2.3分析出来的结果重新加谐波 (19) 3.2 通过2.4提取的吉他音调信息弹奏《东方红》 (19) 实验收获 (21) 摘要:

本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB 进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB 基本使用的目标。 第一部分 简单的合成音乐 1.1 合成《东方红》 根据《东方红》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB 中生成幅度为1,抽样频率为8kHz 的正弦信号表示这些乐音,用sound 播放合成的音乐 由图可知《东方红》的曲调定为F ,即1=F ,对应的频率为349.23Hz ,据此可以计算出其他乐音的频率,例如5对应的频率为 7/125349.232523.25f =?=,一次类推计算出第一小节各乐音对应的频率为: 乐音 5 5 6 2 1 1 6 2 在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍, 一拍的时间是0.5s ,因此各乐音的持续时间为: 乐音 5 5 6 2 1 1 6 2 而在MATLAB 中表示乐音所用的抽样频率为fs=8000Hz ,也就是所1s 钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,在用sound 函数播放即可。 根据以上分析在MATLAB 中编写如下程序: sound_1_1.m

Matlab音乐合成实验报告

课程设计《音乐合成》实验报告 专业:测控技术与仪器 班级:测控11-2 班 姓名:谷晓峰 学号: 11034010219 指导教师:贺婷 广东石油化工学院计算机与电子信息学院

信号与系统课程设计 -------利用matlab合成音乐 一、实验目的 1. 熟悉MATLAB的软件和语言指令的使用; 2. 学习利用MATLAB进行连续信号的时域、频域分析; 3. 熟悉抽样信号与连续信号的区别。 二、实验内容 1.请根据《画心》片断的简谱和“十二平均律”计算出该片断中各个乐音的频率,在MATLAB 中生成幅度为1抽样频率为8kHz 的正弦信号表示这些乐音。请用sound 函数播放每个乐音,听一听音调是否正确。最后用这一系列乐音信号拼出《画心》片断,注意控制每个乐音持续的时间要符合节拍,用sound 播放你合成的音乐,听起来感觉如何?并用图显示生成的音乐信号。 相关知识: ①《画心》完整曲谱,实验时从中随机截取几节用于编程。

②利用十二平均律计算频率以及相关音乐知识。 如图1,其中错误!未找到引用源。,错误!未找到引用源。,错误!未找到引用源。相当于错误!未找到引用源。的二次谐波,二者是倍频的关系。从A 到A1共有12个键,7个白色键,5个黑色键。中间这些频率值得计算规律为相邻音倍乘系数错误!未找到引用源。。即错误!未找到引用源。,别的依次类推。 图1 钢琴键盘 图1中各键对应的频率如下表: bG表示的F升高半音,在乐谱中用#表示。或者G降低半音,用b表示。乐谱这中的4/4表示每小节有四拍,一个1/4音符的持续时间为一拍,一拍大概0.5s左右。 eg: y=0*t; %初始化 y(t<0.25)=sin(440*2*pi*t(t<0.25)); %第一个音 5,持续时间0.25s y(0.25

基于MATLAB软件的音乐合成毕业设计论文

毕业设计(论文) 基于MATLAB的软件的音乐合成 Music Synthesis Based On MATLAB Software

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于MATLAB的简单音乐合成

《数字信号处理》课程设计 说明书 设计题目:基于MATLAB 的简单音乐合成 姓名:_________________________________________ 专业年级:______________________________________ 学号:_________________________________________ 指导老师:______________________________________ 时间:2015 年 6 月25 日

《数字信号处理课程设计》任务书 指导老师(签名):

1设计基础.................................... 1.1 MATLAB软件简介.............................. 1.2乐曲解析.................................. 2设计与实现................................... 2.1 简单的音乐合成 ................................ 2.1.1原理分析 ................................ 2.1.2 Matlab 源代码 .............................. 2.1.3运行结果分析 ............................... 2.2除噪音,加包络................................. 2.2.1原理分析 ................................ 2.2.2 Matlab 源代码 .............................. 2.2.3运行结果分析 .............................. 2.3加谐波.................................... 2.3.1原理分析 ................................ 2.3.2 Matlab 源代码 .............................. 2.3.2运行结果分析 .............................. 3总结与体会................................... 4参考文献....................................

MatLab基本运算

MatLab & 数学建模 第一讲简介及基本运算 一、简介 MATLAB名字由MATrix和 LABoratory 两词的前三个字母组合而成。那是20世纪七十年代后期的事:时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授出于减轻学生编程负担的动机,为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即用FORTRAN编写的萌芽状态的MATLAB。 经几年的校际流传,在Little的推动下,由Little、Moler、Steve Bangert合作,于1984年成立了MathWorks公司,并把MATLAB正式推向市场。从这时起,MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB 已经成为国际控制界公认的标准计算软件。 在欧美大学里,诸如应用代数、数理统计、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程的教科书都把MATLAB作为内容。这几乎成了九十年代教科书与旧版书籍的区别性标志。在那里,MATLAB是攻读学位的大学生、硕士生、博士生必须掌握的基本工具。 在国际学术界,MATLAB已经被确认为准确、可靠的科学计算标准软件。在许多国际一流学术刊物上,(尤其是信息科学刊物),都可以看到MATLAB的应用。 在设计研究单位和工业部门,MATLAB被认作进行高效研究、开发的首选软件工具。如美国National Instruments公司信号测量、分析软件LabVIEW,Cadence公司信号和通信分析设计软件SPW等,或者直接建筑在MATLAB之上,或者以MATLAB为主要支撑。又如HP公司的VXI硬件,TM公司的DSP,Gage公司的各种硬卡、仪器等都接受MATLAB的支持。 MATLAB具有用法简易、可灵活运用、程式结构强又兼具延展性。以下为其几个特色: ?功能强的数值运算 - 在MATLAB环境中,有超过500种数学、统计、科学及工程方面的函数可使用,函数的标示自然,使得问题和解答像数学式子一般简单明了,让使用者可全力发挥在解题方面,而非浪费在电脑操作上。 ?先进的资料视觉化功能 - MATLAB的物件导向图形架构让使用者可执行视觉数据分,并制作高品质的图形,完成科学性或工程性图文并茂的文章。 ?高阶但简单的程式环境 - 作为一种直译式的程式语言,MATLAB容许使用者在短时间内写完程式,所花的时间约为用 FORTRAN 或 C 的几分之一,而且不需要编译 (compile)及联结 (link) 即能执行,同时包含了更多及更容易使用的内建功能。 ?开放及可延伸的架构 - MATLAB容许使用者接触它大多数的数学原使码,检视运算法,更改现存函数,甚至加入自己的函数使 MATLAB成为使用者所须要的环境。 ?丰富的程式工具箱 - MATLAB的程式工具箱融合了套装前软体的优点,与一个灵活的开放但容易操作之环境,这些工具箱提供了使用者在特别应用领域所需之许多函数。现有工具箱有:符号运算(利用Maple V的计算核心执行)、影像处理、统计分析、讯号处理、神经网路、模拟分析、控制系统、即时控制、系统确认、强建控制、弧线分析、最佳化、模糊逻辑、mu分析及合成、化学计量分析。 二、MatLab界面

基于Matlab的简易计算器

工程设计报告 设计题目:基于Matlab的简易计算器 学院: 专业: 班级: 学号: 姓名: 电子邮件: 日期:2015年12 月 成绩: 指导教师:

西安电子科技大学 电子工程学院 工 程设计 任务书 学生姓名指导教师职称 学生学号专业 题目基于Matlab 的简易计算器 任务与要求 任务如下: 利用MATLAB GUI 设计实现一个图形用户界面的计算器程序,实现: A.实现十进制数的加、减、乘、除、简单计算。 B. 科学计算函数,包括正弦、余弦、正切、余切、开方、指数等函数运行。 C. 有清除键,能清除操作。 要求如下: A .熟练掌握MatlabGUI 界面的设计与应用 B .最终计算器能够实现预期的相关功能 开始日期2015年 11月日完成日期2016年1月日 课程设计所在单位 本表格由电子工程学院网络信息中心编辑录入 https://www.doczj.com/doc/7518878614.html,. …………………………装…………………… … … … … 订 … … … … … … … … … … … …线 … …… …… …… …… …… … …… …… …… …… …… … …

摘要 基于Matlab GUI计算器设计时利用GUI的创建图像用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。 计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。计算器实现的功能有:数字0~9和小数点的输入显示,平方开方和对数的输入显示。进行四则运算、正弦函数、余弦函数、正切函数以及反正弦函数、反余弦函数、反正切函数的计算等等。最后运行调试,实现基于MatlabGUI的计算器的设计。 关键词:MatlabGUI计算器 Abstracts Based on Matlab GUI calculator design using the user interface to create images of GUI calculator design.Design calculator, mainly considering the ease of use, function calculators calculator interface and function of the common level of design.By adjusting the control and the layout of the text and color, make the interface simple and easy, rational layout, to achieve the effect of friendly interface. Calculator design used to get and set two main function for each attribute value transfer and control Settings.Calculator the functions are: 0 ~ 9, according to input and decimal square root and logarithm of input.Arithmetic, sine function and cosine function, tangent function and the arcsine function,arccosine function, the calculation of the arctangent function and so on.Finally running debugging, implementation design based on Matlab GUI calculator. Keywords: Matlab GUI calculator

Matlab音乐合成实验报告(重大 通院)

重庆大学Matlab音乐合成实验报告 班级:实验班 指导老师:印勇 学生: 覃继良 20114909 学号:

音乐合成实验 介绍 本文共有三大部分:第一部分,简单的音乐合成;第二部分,用傅里叶变换分析音乐;第三部分,基于傅里叶级数的音乐合成。由潜入深,一步一步分析了用MATLAB 进行音乐合成的过程。通过本实验达到了加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB 基本使用的目标。 第一部分 简单的合成音乐 1.1 合成《东方红》 根据《东方红》第一小节的简谱和十二平均律计算出该小节每个乐音的频率,在MATLAB 中生成幅度为1,抽样频率为8kHz 的正弦信号表示这些乐音,用sound 播放合成的音乐 由图可知《东方红》的曲调定为F ,即1=F ,对应的频率为349.23Hz ,据此可以计算出其他乐音的频率,例如5对应的频率为7/125349.232523.25f =?=,一次类推计算出第一小节各乐音对应的频率为: 在确定了各乐音的频率之后需要确定每个乐音的持续时间。每小节有两拍,一拍的时间是0.5s ,因此各乐音的持续时间为: 而在MATLAB 中表示乐音所用的抽样频率为fs=8000Hz ,也就是所1s 钟内有8000个点,抽样点数的多少就可表示出每个乐音的持续时间的长短。用一个行向量来存储这段音乐对应的抽样点,

在用sound函数播放即可。 根据以上分析在MATLAB中编写如下程序: east1.m clear;clc; fs=8000; %抽样频率 f=[523.25 523.25 587.33 392 349.23 349.23 293.66 392]; %各个乐音对应的频率 time=fs*[1/2,1/4,1/4,1,1/2,1/4,1/4,1]; %各个乐音的抽样点数 N=length(time); %这段音乐的总抽样点数 east=zeros(1,N); %用east向量来储存抽样点 n=1; for num=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); end sound(east,8000); %播放音乐 在MATLAB中运行east1.m,播放出了《东方红》的第一段,但是可以听出效很不好,只能听出具有《东方红》的调子而已。 图1-1 由图1-1我们可以看到,每一个调子并没有能够区分出来,就是连续一片的。幅度也是相当的,都是1。

基于Matlab的MP3播放器

基于Matlab的MP3播放器 1.概述 MP3的全称为MPEG1(Moving Picture Experts Group) Layer – 3音频文件。它根据压缩质量和编码复杂程度划为三层,Layer –1 、Layer –2 、Layer –3 ,且分别对应MP1 、MP2\ MP3 这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频的层次越高,编码器越复杂,压缩率也越高,MP3的压缩率则高达10:1 – 12:1。 MA TLAB 是国际上公认的最优秀的科技应用软件,它在数据分析和处理功能都是很强大,利用它可以灵活方便地处理音频信号。本文将使用matlab对MP3进行解码,做一个简易的MP3播放器。 2.MP3文件格式 MP3文件大体分为三部分:TAG_V2(ID3V2),frame,TAG_V1(ID3V1) 一个MPEG音频文件是许多的称为帧的较小部分组成的,通常,帧是独立的组成部分,每个帧都拥有之间的头和音频信息,没有文件头。所以我们可以剪切MPEG文件的任何部分并且能够正常播放。但在LayerIII中就并不总是正确的。 2.1、帧头格式 下面是一个头内容图示,使用字符A到M表示不同的区域

AAAAAAAAAAA BB CC D EEEE FF G H II JJ K L MM A表示帧同步,都为1,长度为11; B 表示MPEG音频版本ID (00 – MPEG 2.5; 01 –保留;10 – MPEG 2; 11 – MPEG 1); C 表示Layer描述,(00 –保留;01- LayerIII;10 – LayerII;11 - LayerI); D 表示校验位(0 有跟16位CRC校验位;1 无校验位); E 位率索引,长度为4,对不同的版本,不同层索引值表示不同的位率;单位Kbit

matlab音乐合成报告

MATLAB音乐合成综合实验 学院: 班级: 指导老师:吴宪祥 同做者: 二0一六年十二月

摘要 本实验共有三部分:1.简单的音乐合成;2.用傅里叶变换分析音乐;3.基于傅里叶级数的音乐合成。一步一步分析了用MATLAB进行音乐合成的过程。通过本实验达到加深对傅里叶级数和傅里叶分析的理解,熟悉对MATLAB基本使用的目标。该实验采用MATLAB软件仿真来实现。首先,通过编程对一段真实的音乐进行分析、处理,求得这段音乐的基频、谐波分量、等数据;然后,通过对乐理的研究,根据分析中求得的数据编写程序,进行基于傅里叶分析的音乐合成设计,并设计了图形用户界面。

目录 1.绪论 1.1 引言 (3) 1.2 实验要求 (3) 1.3 实验原理 (3) 2.简单的合成音乐 2.1 乐理知识介绍 (4) 2.2 利用MATLAB实现音乐合成器,生成 WAV文件 (5) 2.3 除噪音,加包络 (5) 2.4 音乐升高和降八度 (9) 2.5 加入谐波 (9) 3.用傅里叶变换分析音乐 3.1 载入fmt.wav并播放 (11) 3.2 处理realware (11) 3.3 分析wave2proc的基波和谐波 (13) 3.4 自动分析fmt.wav的音调和节拍 (16) 4.基于傅里叶级数的音乐合成 4.1 重新加谐波 (17) 4.2 通过音调信息弹奏《送别》 (19) 5.制作GUI界面 (20) 6.实验难点及问题 (21) 7.实验收获 (22)

1.绪论 1.1 引言 信号与系统的概念及分析方法广泛应用于通信、自动控制、航空航天、电子信息、地震学、生物工程等领域,因此“信号与系统”是一门电子信息学科相关专业的主干技术课程。MATLAB 是国际上公认的优秀的科技应用软件,随着版本的不断升级,内容也在不断扩充。基于MATLAB 的音乐分析与合成实验是针对“信号与系统”课程的重点和难点之一的傅里叶变换和傅里叶级数等内容而设计的。由于该实验是真实音乐的实际应用,可以增进对傅里叶级数和傅里叶变换的理解,加深对信号分析工程应用的理解,提高在信号分析领域的应用能力。 1.2 实验要求 1、3-5人一组,选择不同乐曲,利用MATLAB 实现音乐合成器,生成WAV 文件; 2、给乐音加包络消噪; 3、实现音乐的升八度和降八度; 4、在音乐中添加谐波; 5、用傅里叶级数分析音乐的基频、音调和节拍; 6、模仿一些常用乐器(如钢琴、吉他等)实现音乐合成; 7、设计GUI 界面; 8、提交设计报告。 1.3实验原理 傅里叶变换建立了信号频谱的概念。所谓傅里叶分析即分析信号的频谱(频率构成)、频带宽度等。要想合成出一段音乐,就要了解该段音乐的基波频率、谐波构成等。因此,必须采用傅里叶变换这一工具。对于连续时间信号f(t),其傅里叶变换为: dt jwt e t f w ?∞ ∞--=)(F )( 由于其变换两边的函数f (t) 和F (w )都是连续函数,不适合于计算机处理。MATLAB 语言提供了符号函数FOURIER 来实现傅里叶变换,但该函数需要信号的解析表达式。而工程应用中经常需要对抽样数据进行傅里叶分析,这种情况下往往无法得到信号的解析表达式,必须采用傅里叶变换的数值计算方法。

基于MATLAB的简单音乐合成仿真设计

本科生毕业论文(设计)基于MATLAB的简单音乐合成仿真设计

学士学位论文原创性声明 本人郑重声明:所呈交的论文(设计)是本人在指导老师的指导下独立进行研究,所取得的研究成果。除了文中特别加以标注引用的内容外,本论文(设计)不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式表明。本人完全意识到本申明的法律后果由本人承担。 学位论文作者签名(手写):签字日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 (请在以上相应方框内打“√”) 学位论文作者签名(手写):指导老师签名(手写): 签字日期:年月日签字日期:年

摘要 科学技术的发展使得社会生活越来越趋于信息化和数字化,在此基础上语音信号也可以基于数字信号处理技术和语音学相关知识进行信息化处理,此类技术因应用性广便捷性高受到社会的广泛关注,已成为信息科学工程与研究领域的核心技术,被越来越多的高科技产业广泛使用。计算机合成音乐也在其基础上得以迅速普及,而且理论上可以创造出任何一种声音。 MATLAB是一种用于数据分析和处理的计算机应用软件,它可以将语音文件进行信息化处理转化为离散的数据文件,再通过内置强大的矩阵运算能力如数字滤波、时域和频域分析、傅里叶变换、时域和频域分析、声音合成以及各种图形的呈现等处理数据。利用MATLAB自带的功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。音乐可视为不同频率与振幅的正弦波叠加并加以不同包络所形成的信号,它的这个特点使得MATLAB的处理有了可能,通过处理不同的音频MATLAB可以进行简单的音乐合成。 本文主要是基于MATLAB环境下的音乐合成研究,首先基于相关的处理函数合成简单的音乐,并且对音乐进行降噪、升降度和加谐波等处理;然后基于傅里叶变换分析处理后的音乐频谱;最后根据傅里叶级数的原理来再次合成音乐。 关键词:音乐合成;MATLAB;傅里叶分析

相关主题
相关文档 最新文档