MATLAB程序设计报告--基于MATLAB动画播放及音乐播放
Matlab课程设计报告--MATLAB GUI的音乐键盘仿真

《 MATLAB 实践》课程设计目录1.设计目的 (3)2.题目分析 (3)3.总体设计 (4)4.具体设计 (4)5.结果分析 (15)6.心得体会 (15)1、设计目的:运用MATLAB实现MATLAB的GUI程序设计。
2、题目分析:课程设计题目:MATLAB GUI的音乐键盘仿真课程设计的基本要求:1)熟悉和掌握MATLAB 程序设计方法。
2)掌握MATLAB GUI 程序设计。
3)学习音乐合成基本知识。
设计分析:这次使用的设计软件是MATLAB的GUI模块,要设计一个音乐键盘要知道一个最简单的键盘本身要有36个发音键,既21个音阶和15个辅音阶。
于是就要在界面上画出36个pushbutton键,再根据其他要求的功能设计出其他相应的模块。
模拟键盘发音是使用音频函数soundsc将不同频率的函数以声音的模式表现出来,而每个音阶相差频率f=440*2^2/12;音阶与相应的辅音阶相差频率f=440*2^1/12。
有了音乐合成的这些基本知识后便可根据自己需要设计界面根据功能编写相应的回调函数。
课程设计的内容:学习MATLAB GUI程序设计,设计和实现一个音乐键盘仿真系统。
要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。
然后按照自己拟定的功能要求进行程序设计和调试。
1)设计音乐键盘GUI界面,实现单音键盘的发声。
2)实现键盘的双音多频,即每个键盘对应低音频组的一个频率和高音频组的一个频率,实现按键的发出双音。
3)能改变音乐包络形式,实现音型的改变。
4)能够演奏一段音乐。
5)改变键盘的音色,给基音加上泛音序列,模拟不同的乐器演奏。
6)选作:根据节奏节拍,根据简谱自动演奏一段音乐。
3、总体设计其中琴键区域实现按键发声,可用鼠标点击,也可以用键盘实现;显示屏区域实现声音波形的实时显示;控制区域实现对整个系统的控制,包括音乐播放、暂停、停止,视屏播放,乐器切换,节拍切换和谐波切换。
matlab程序设计实验报告

实验报告课程名称:可视化计算机语言实验项目名称:matlab程序设计学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:班级:实验时间:实验报告提交时间:教务部制一、实验目的与要求:1、熟练掌握matlab的程序流程控制结构..2、熟悉掌握M文件的结构和函数调用..3、掌握内联函数和函数句柄的使用..4、了解程序性能剖析窗口..二、内容和步骤:MATLAB的语法规则简洁;编程效率高;作为一个完整的程序语言;MATLAB也有各种程序流程控制;文件格式和函数调用的规则;通过对函数的调用就能够组成庞大的程序;完成复杂的功能..1.使用程序流程控制Fibonacci数列的各元素为:1、1、2、3、5、8、...满足一下关系F1=1 F2=1 F n=F n-1+F n-2用M函数文件实现;数列的元素个数为输入变量..(1)按M函数文件格式创建文件开头..function f=shiyan0501n%SHIYAN0501%Fibonacci数列%n 元素个数%f 构成Fibonacci数列向量%%copyright 2015-11-25(2)用while循环实现程序功能f1=1;f2=1;i=2;while i<=nfi+1=fi-1+fi;i=i+1;End运行后;输入参数10;运行结果如下所示:(3)使用for循环实验for i=2:nfi+1=fi-1+fi;end运行结果如下所示:(4)当某个元素大于50时;退出循环结构;程序修改如下:for i=2:nif fi>10breakelsefi+1=fi-1+fi;endend当某个元素大于50;程序便退出循环结构当n=10;最后一个元素刚好是大于50的;正好退出循环结构当n=12时;第十个元素对应的fi大于50;于是退出循环结构;不再运行f11;f12了..(5)将该.m文件生成P码文件>> pcode shiyan0501将shiyan0501.m删除;重新运行该文件夹;结果如下所示:练习:将该M文件函数改为M脚本文件;将数列元素个数通过键盘输入;程序应该如何修改①将M文件函数另存为M脚本文件;②在函数前加n=input'please input a num:'便可通过键盘键入文件f=mf;endk=f1/2^2n1f^22n1+1;end调用程序shiyan0502;运行结果如下所示:>> y=shiyan05020.7y =0.7754运行结果与使用子函数factorial的运行结果一致..(4)使用程序性能剖析..选择菜单‘view’->‘profile’命令;或使用在命令窗口输入‘profile viewer’命令都可以打开程序性能剖析窗口..在程序性能剖析窗口的‘命令输入栏’中输入需要剖析的命令;‘y=shiyan05020.7’;然后单击‘start profiling’按钮;查看剖析报告..(5)程序的调试..当有多个函数调用时;由于函数变量的工作空间是独立的;被调用的函数执行结束后变量消失;因此调试时要使用matlab调试器查看运行过程中的变量值..①设置断点..在需要查看的程序的地方设置断点;>> shiyan05020.7K>> yy =0.7000K>> x=0.5x =0.5000在K>>输入x=0.5即可将x的值从0.7修改为0.5.去除断点;查看结果:ans =0.7236结果与x值为0.7时不一致;当x=0.7时;y =0.7754;由此可知;x的值已被修改..②单步运行>> shiyan05020.79 n=n+1;K>>按单步运行键:可看到箭头不断的移动:6使用函数句柄..在命令窗口使用函数句柄调用函数..>> h_shiyan0502=shiyan0502h_shiyan0502 =shiyan0502>> y=fevalh_shiyan0502;0.5y =0.5236(7)使用全局变量..Matlabe的编程不提倡使用全局变量;本例中的程序主要是为了查看全局变量的概念..将n 作为全局变量;子函数factorial不修改;子函数cal程序和主函数shiyan0502修改如下:function y=shiyan0502x%shiyan0502 arcsinxglobal n;n=1;if absx<1y=x;while caln>0.0001y=y+calnx^2n+1;n=n+1;endelsedisp'输入错误';y=0;returnendfunction k=caln1global nfor m=1:nk=factorial2n/2^2nfactorialn^222n+1;Endglobal为设置的全局变量;子函数没有输入变量;而用全局变量n传递..在全局变量前设置断点;然后运行程序;当程序运行到断点处停止;接着不断使用单步运行调试;结果如下所示:|||练习:使用单步运行调试;查看全局变量n的变化;并在工作空间查看n;3、利用泛函命令实现数值分析①创建函数shiyan0503实现上述表达式关系..function y=shiyan0503t%shiyan0503 y=sint.^2.expat-babsta=0.1;b=0.5;y=sint.^2.expat-babst;②查看该函数的输出波形;如下图所示:注:1、报告内的项目或内容设置;可根据实际情况加以调整和补充..2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内..。
基于matlab的声音文件播放器设计_毕业论文设计[管理资料]
![基于matlab的声音文件播放器设计_毕业论文设计[管理资料]](https://img.taocdn.com/s3/m/a878f5ecde80d4d8d05a4f13.png)
实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告I am going to write the report for the Matlab program design experiment 3. In this experiment, I was required to use Matlab to design a program to solve a specific problem.I had to write the program, test it, and then write areport on the results.First, I started by analyzing the problem and breaking it down into smaller, more manageable parts. This is a crucial step in programming, as it allows me to understand the problem fully and come up with an effective solution. Once I had a clear understanding of the problem, I began writing the program in Matlab.I encountered some challenges along the way, such as debugging errors and optimizing the code for efficiency. However, with some perseverance and problem-solving skills, I was able to overcome these challenges and successfully write the program.After writing the program, I tested it with different inputs to ensure that it produced the correct outputs inall cases. Testing is an essential part of programming, asit helps to identify and fix any errors or bugs in the code.Once the program was tested and working correctly, I wrote a report on the results. In the report, I explainedthe problem, my approach to solving it, and the results of the program. I also included any insights or observations that I gained from working on the program.Overall, this experiment was a valuable learning experience for me. It allowed me to practice my programming skills and problem-solving abilities, and it also gave me a better understanding of how to use Matlab for real-world applications.中文回答:我要写实验3的Matlab程序设计实验报告。
基于MatlabGUI的音乐播放器设计

基于Matlab/GUI的音乐播放器设计作者:燕丽红来源:《现代电子技术》2015年第08期摘要:随着社会大数据化的提出,数据分析时要求能使用一种快速、简洁、高效的软件进行数据处理工作,其中Matlab软件就是一种有效的分析工具。
利用Matlab强大的仿真和数据分析功能,通过编程M文件和Matlab GUI界面设计进行了音乐播放器的设计,其中M文件编程可以播放任意歌曲,GUI界面设计的播放器具有音乐播放、暂停、单音播放、多音播放、视频播放、歌词显示等功能。
实践表明,在教学上采用Matlab软件进行系统设计具有良好的实用性,也可以很直观、方便地进行人机交互,教学效果良好。
关键词: M文件; Matlab/GUI;数据分析功能;人机交互中图分类号: TN911⁃34; G642 文献标识码: A 文章编号: 1004⁃373X(2015)08⁃0114⁃03Design of music player based on Matlab/GUIYAN Li⁃hong(Information Engineering College,Xi’an Eurasia University,Xi’an 710065, China)Abstract: with the occurrence of the big⁃datamation, the rapid, simple and efficient softwares are required to realize data processing when carrying out data analysis, in which the Matlab software is an effective analysis tool. With powerful simulation and data analysis function of Matlab, the music player was designed by means of M file programming and Matlab GUI interface design. The M file programming can play any song, and the player designed with GUI interface has the functions of play, pause, monophonic music play, multitone play, video playback, lyrics display, etc. The practice shows that the Matlab software for system design has good practicability in teaching, with which man⁃machine interaction can be realized intuitively and expediently, and the perfect teaching effect can be achieved.Keywords: M File; Matlab/GUI; data analysis function; man⁃machine interaction0 引言Matlab是美国MathWorks公司设计的数学软件,主要包括Matlab/Simulink和GUI设计两大部分[1⁃2]。
matlab程序设计实验报告

matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。
本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。
通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。
它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。
本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。
2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。
通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。
3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。
通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。
6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。
通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
MATLAB程式设计入门篇音讯读写录制与播放Audio

Volume (音量): the amplitude of audio signals
Also known as intensity, or energy.
Pitch (音高): Fundamental frequency (the number of fundamental periods in a second) in audio signals.
0.2
0.1
0
-0.1
-0.2
-0.3
0
0.5
1
1.5
Enlarge to see fundamental periods!
MATLAB 程式設計入門篇:音訊讀寫、錄製與播放
中介資料
Read Metadata from .wav Files
Reading metadata
info=audioInfo('file'); Different types of audio files may return different fields of info.
張智星 (Roger Jang) 台大資訊系 多媒體檢索實驗室 CSIE/NTU, MIR Lab
MATLAB 程式設計入門篇:音訊讀寫、錄製與播放
音訊的基本介紹
聲音訊號(Audio Signals)簡稱音訊,泛指由人耳 聽到的各種聲音的訊號。 音訊的基本聲學特徵
音量(Volume):聲音的大小稱為音量,又稱為力度、強度 (Intensity)或是能量(Energy)。音量越大,代表音訊波形的震幅 越大。 音高(Pitch):聲音的基本頻率(Fundamental Frequency)越高, 代表音高越高(例如女高音的歌聲);反之,聲音的基本頻率越低, 代表音高越低(例如男低音的歌聲)。 音色(Timbre):音訊波形在每個週期內的變化,就形成了此音訊的 音色。不同的音色即代表不同的音訊內容,例如不同的字有不同的發 音,或是不同的歌手有不同的特色,這些都是由於音色不同而產生。
基于MATLAB的音乐分析与合成演示程序的设计

科技风2021年2月科技创新DOI:10. 19392/ki.1671-7341.202104011基于MATLAB的音乐分析与合成演示程序的设计毛艺晓王志鹏#南阳师范学院物理与电子工程学院河南南阳473061摘要:利用MATLABGUI平台,设计了一个音乐分析与合成综合演示系统。
用户通过简单的鼠标点击操作,就可以实现音乐载入、波形显示、频域分析、音乐合成以及音频播放等一系列功能。
该演示系统可以让用户更直观地理解音乐信号分析与合成的基本原理,激发对音频信号分析和处理的兴趣。
关键词:MATLAB#音乐分析与合成;傅里叶变换Desij^n of demonstration program of music analysisand composition based on MATLABMao Yixiao Wang Zhipeng#College of physics and Electronic Engineering,Nanyang Normal University HenanNanyang473061 Abstract:Using Matlab GUI platform,a music analysis and synthesis integrated demonstration system is designed.Through mouse click operation,users can achieve a series of functions such as music loading,waveform disf)lay,frequency domain analysis,music synthesis and audio playback.The demo system can make users understand the basic principle of m more intuitively and stimulate their interest in audio signal analysis and processing.Key words :MATLAB;music analysis and synthesis;Fourier transform1绪论MATLAB是是矩阵实验室(Matrix Laboratory)的简称,是 美国MahWoks公司出品的商业数学软件,可以进行矩阵运 算、绘制函数和数据、实现算法、创建用户界面、连接其他编 程语言的程序等,在信号处理领域已得到广泛的应用[1]。
实验3 Matlab程序设计1实验报告

实验3 Matlab程序设计1实验报告
实验3 Matlab程序设计1自查报告。
在本次实验中,我学习了如何使用Matlab进行程序设计,并完
成了相应的实验任务。
在实验过程中,我遇到了一些困难,但通过
查阅资料和与同学讨论,最终顺利完成了实验。
首先,我学习了Matlab的基本语法和常用函数,包括变量的定义、数组的操作、条件语句和循环结构等。
在实验中,我成功地运
用了这些知识,编写了一些简单的程序来实现特定的功能。
其次,我学习了Matlab的绘图功能,包括如何绘制二维和三维
图形,以及如何对图形进行美化和标注。
通过实验,我掌握了
Matlab中绘图函数的使用方法,并成功地绘制了一些图形来展示实
验结果。
在实验过程中,我也遇到了一些问题。
例如,在编写程序时,
我经常会忘记Matlab的语法规则,导致程序出现错误。
此外,我在
绘图时也遇到了一些困难,比如不知道如何设置图形的颜色和线型。
但通过查阅Matlab的官方文档和向同学请教,我逐渐解决了这些问
题。
总的来说,本次实验让我对Matlab的程序设计和绘图功能有了更深入的了解,也提高了我的编程能力和解决问题的能力。
通过不断地练习和实践,我相信我会在Matlab编程方面取得更大的进步。
基于MATLAB的动画制作

Abstract: This text introduces the theory of make M atlab animation. According the theory and w ith M atlab
p rogramm ing, two examp les of M atlab animation are m ade.
《江西电力职业技术学院学报 》编辑部
[M ]. 北京 :电子工业出版社 , 2005. [ 2 ]网冠科技. M atlab 6. 0 时尚创作百例 [M ]. 北京 :
机械工业出版社 , 2002.
An ima tion Production ba sed on M a tlab
L IU Zhi - yong
( Shenzhen Vocational and Technical College, Shenzhen Guangdong 518055, China)
1 M atlab动画制作原理
常见的动画都是将离散的静态图形连续播放或快速变 化并利用人眼的视觉暂留性来造成一种的感官上的连续动 态效果 。市面上流行甚广的 FLASH 等动画制作软件 ,都是 基于这一原理 ,将现成图形图像进行处理和变化来制作动画 的 。而 M atlab是基于矩阵运算的工程科学计算软件 ,它不能 简单的依靠图形图像的可视化编辑来制作动画 ,而是将矩 阵 、逻辑 、函数等底层元素的变化通过图形外现来达到动画 效果 。在 M atlab中 ,每一个图形元素就是一个对象 ,每个对 象都有一个相应的唯一的标识符 (句柄 ) ,并且每个对象都有 一组可以根据需要进行调整的属性 ,对象的属性反映了对象 的特征 ,通过设置 、修改这些属性 ,用户可以灵活地改变 、调 整图形对象显示的方式 。M atlab句柄图形的这一基本思想 就是它实现动画功能的基本方法和重要原则 。在 M atlab中 常用 set语句来修改句柄图形对象的属性 。基本语法为 : set (H ,‘PropertyName’, PropertyValue ) , 其 中 H 为 图 形 句 柄 , PropertyName为属性名称 , PropertyValue为属性值 , M atlab中 允许在一个语句中对同一图形句柄的多个不同属性值进行 设置 。在 M atlab绘图中常用 line函数来定义动画的基本变 化元素 ,基本语法为 : line ( x, y, z) ,其中 x、y、z为坐标点数据 。
MATLAB实验报告-动画

数学实验报告
姓名:唐楚禹
学号:1104101023
指导老师:易昆南
专业班级:交通设备1004
学号
1104101023
班级
交通设备1004
姓名
唐楚禹
指导教师
易昆南
实验题目
简单动画的制作
评分
1、设计(实习)目的:
利用matlab制作函数的动态图像,掌握动画制作的基本要领,提高学习兴趣。
2、实验内容:
plot(t,0,'.r');
set(p,'erasemode','none');%设置擦除方式,这里应用none模式
set(p,'xdata',t,'ydata',(t-sin(t))./(t+sin(t)+eps));%计算活动对象的新位置,重新设置x,y轴的数据
drawnow%使新对象及时显示出来
plot(t,(t-sin(t))./(t+sin(t)+eps),'.')
m(:,j)=getframe;%将每一幅截取的画面信息组成一个列向量,保存在矩阵m中
end
movie(m,30)%播放m矩阵所定义的画面
实时动画的程序如下:
clear
holdoff;
axis([0,10*pi,0,2])
holdon*pi/50;
t2=j*10*pi/50;
t=t1:0.01:t2;
title('影片动画');
xlabel('x');ylabel('y');
text(5*pi,1.5,'{\bf y=(x-sinx)/(x+sinx)}');
MATLAB实现动态播放和频谱

MATLAB实现WAV文件动态播放和频谱可以对声卡录制、WA V文件、滤波后信号或均衡化后信号进行动态播放,动态显示信号波形和频谱。
MATLAB缺少多线程的处理机制,也就是说所有的任务都在一个线程内完成,新任务必须等已经在执行的任务完成后才会交付处理。
缘此,一开始我想到用timer函数,设定一个定时器,每隔一定的时间读取若干数据,进行播放和频谱,只要两次数据处理间隔很短,比如说0.04秒刷新一次数据,那么就能得到每秒1/0.04=25帧的动态效果。
但是此方法效果不佳。
首先刷新率不高,每秒大概只有5帧不到,其次由于没法往timer的回调函数中传递创建的虚拟声卡设备,导致每次循环都要反复的创建和删除虚拟声卡设备,这严重拖累了运行速度而且,最关键的是声卡没法在这种高频率下播放出声音来,声音时断时续,或者长时间的根本没有声音输出。
但是最终问题还是被解决了,而且使用的就是类似“双线程”的方法。
虽然MATLAB只能进行单一线程的数据运算,我也不否定这个说法,但是有时候说法总得根据事实进行多多少少的改变。
最终我使用MATLAB数据采集箱,解决了动态播放问题。
基本实现方法如下:ad=analogoutput('winsound');。
%获取所要播放的数据start(ad); %这里声卡开始工作,进程腾空while isrunning(ad) %使用while循环,生成所要动态显示的内容。
%放置所需动态显示的内容。
drawnow; %刷新数据enddelete(ad);clear ad;有上面程序段看出,这个问题的关键就在于给虚拟声卡设备输入数据并启动设备后,也就是开始播放声音信号后,进程腾空了,于是我们使用一个while循环,判断只要虚拟声卡设备还在运行,就不停的刷新一些数据(波形或频谱之类的),如此便实现了动态,而且刷新率之和while循环内数据处理的速度相关,最后结果每秒帧数是极高的。
如此便只剩下一个问题,如何实现实时显示的数据和播放的数据同步。
基于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 MMA表示帧同步,都为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,对不同的版本,不同层索引值表示不同的位率;单位KbitF 采样频率,单位:HzG 填充位(0 –无填充;1 –额外的填充)H 私有bit,用做特殊应用I 声道(00 –立体声;01 –联合立体声;10 –双声道;11 –单声道);J 扩展模式,仅在联合立体声有效K 版权(0 –无版权;1 –有版权);L 原创(0 –拷贝;1 –原创);M 强调(00 –无;01 – 50/15ms;10 –保留;11 – CCIT J.17);2、2 CRC 校验如果帧头的校验位为0 ,则帧头后就有一个16位的CRC值,这个值是big-endian的值,把这个值和该帧通过计算得出的CRC 值进行比较就可以知道该帧是否有效。
基于MATLAB·GUI的音频文件播放器

基于MATLAB·GUI的音频文件播放器作者:王涛田述珍陈丁王志雄周慧来源:《电脑知识与技术》2018年第35期摘要:基于MATLAB GUI的音频文件播放器的设计是随着社会大数据化提出的,Matlab 软件是一种有效的分析工具,在数据分析时能使用一种快速、简捷、高效的软件进行数据处理工作。
MATLAB如今已成为世界上最流行的科技应用软件之一,可以把使用者从繁杂、无聊的编程中解救出来,以便能够有更多的时间来学习其他专业领域。
该项目利用Matlab强大的仿真功能和数据分析功能,通过Matlab·GUI界面进行音频播放器的设计。
利用GUI界面设计的播放器具有音频播放、暂停、变速、多音频播放等功能。
关键词:M文件;MATLAB/GUI;人机交互;数据分析处理中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2018)35-0207-02Abstract: The design of the audio file player Based on MATLAB GUI is proposed with the big data of society. Matlab software is an effective analysis tool, and can use a fast, simple and efficient software for data processing when analyzing data. MATLAB has now become one of the most popular technology applications in the world, saving users from complicated and boring programming so that they can have more time to learn other professional fields. This project uses Matlab's powerful simulation function and data analysis function to design audio player through Matlab GUI interface. The player designed using the GUI interface has music playback, pause,fast forward, fast retreat, multiple audio playback and other functions.Key words: M file; MATLAB/GUI; human-computer interaction; data analysis and processing1 背景MATLAB是一款商业数学软件,主要用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,包括GUI和Simulink两大部分,具有完备的图形处理和仿真功能。
基于Matlab的音乐播放器设计

基于Matlab的音乐播放器设计韩萍;周航;金昌旺【摘要】In this paper,music player design scheme based on Matlab and the knowledge of the course of Digital Signal Processing is proposed.The functions and realization of the main modulars in the player are introduceds in detail.It can be used as a practical project for the students who learn major in electrical information engineering.By doing the project,learning interesting of the students will be stimulated and their knowledge application and creative ability are improved.%本文结合"数字信号处理"课程和"Matlab程序设计"课程的相关知识,给出了基于Matlab的音乐播放器的总体设计方案,介绍了播放器主要模块的功能,设计与实现方法。
我们将该设计作为电子信息类专业数字信号处理课程设计项目,有助于激发学生的学习兴趣,提高其综合设计和应用创新能力。
【期刊名称】《电气电子教学学报》【年(卷),期】2012(034)004【总页数】4页(P57-59,72)【关键词】Matlab;音乐播放器;均衡器【作者】韩萍;周航;金昌旺【作者单位】中国民航大学电子信息工程学院,天津300300;中国民航大学电子信息工程学院,天津300300;中国民航大学电子信息工程学院,天津300300【正文语种】中文【中图分类】TP311.1;TP316本文以“数字信号处理”课程为基础,利用“Matlab程序设计”课程的知识,设计了一种音乐播放器,实现与一般的计算机媒体播放器相同的音乐播放功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《MATLAB程序设计》课程设计报告设计题目:基于MATLAB的动画演示及背景音乐插入专业:2011级通信工程姓名(学号):储兆雄1162310213邓少林1162310214徐凯越1162310223指导教师:倪建军(博士/副教授)时间:2013年12月20日目录1、设计目的2、总体设计3、具体设计(功能实现)4、结果分析5、改进方向6、心得体会文献附录1、设计目的学会运用matlab工具箱实现matlab GUI设计,处理动画运行,以及添加背景音乐,并实现其动态操作,如继续、暂停等功能。
2、总体设计主要包括:动画模块,音乐模块,动画显示模块3、具体设计(功能实现)1) 动画模块(1)打开动画文件:从文件打开对话框选择动画程序,实现动画播放的可选择性程序实现代码如下:function btnvopen_Callback(hObject, eventdata, handles)% hObject handle to btnvopen (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global vfname %动画文件名[vfname vpname vindex]=uigetfile('*.m','choose moive file');len=length(vfname);if vindexset(handles.txtvname,'string',vfname(1:len-2))end打开对话框效果如下:(2)开始动画播放:先获取文件名称vfname(1:len-2),然后用run()命令来执行程序实现代码如下:function btnvstart_Callback(hObject, eventdata, handles)% hObject handle to btnvstart (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global vfnametrylen=length(vfname);run(vfname(1:len-2));catchmsgbox('sorry, there are some error while playing movie!','NOTICING');end以下是其中两个动画程序snow动画%***************设置背景****************************%A=imread('H:\YOU.jpg');h=figure;imshow(A);axesaxis([0 1 0 1]);axis off;set(gcf,'color','k');N=20;handles=zeros(1,N);x=rand(2,N);fontsize=floor(rand(1,N)*17+32);new_handles_N=0;%绘图for i=1:Nhandles(i)=text(x(1,i),x(2,i),'*','fontsize',fontsize(i),'color','w');endwhile 1if ~ishandle(h)returnendfor i=1:Ntemp=get(handles(i),'position');step=get(handles(i),'fontsize')/48*0.05;if temp(2)<0new_handles_N=new_handles_N+1;new_handles(new_handles_N)= copyobj(handles(i),gca);if new_handles_N==500delete(new_handles);new_handles_N=0;endtemp(1)=rand(1);temp(2)=1;elsetemp(1)=temp(1)+rand(1)*0.1-0.05;temp(2)=temp(2)-step;endset(handles(i),'position',temp,'rotation',get(handles(i),'rotation')+5);endpause(.2)end简单程序动画tryMovie=moviein(16);for k=1:16plot(fft(eye(k+16)))axis equalaxis offM(k)=getframe;endmovie(M,30);catchmsgbox('sorry, there are some error while playing movie!','NOTICING');end动画效果如下:(3)暂停/继续功能:获取pause按钮string参数,实现暂停和继续播放功能的切换,而通过timerPause()函数来实现其功能程序实现代码如下:function btnvpause_Callback(hObject, eventdata, handles)% hObject handle to btnvpause (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global symPausetryif strcmp(get(handles.btnvpause,'string'),'pause')handles.timer1 = timer('Period', 0.1, 'ExecutionMode','singleShot','timerFcn', {@timerPause});set(handles.btnvpause,'string','continue')start(handles.timer1);elseif strcmp(get(handles.btnvpause,'string'),'continue')symPause =0;set(handles.btnvpause,'string','pause')endcatchmsgbox('sorry, there are some error while excuting thefunction!','NOTICING','error');endfunction timerPause(hObject,eventdata,handles)global symPausesymPause=1;while symPause==1pause(1)end(4)添加文字function btnvshow_Callback(hObject, eventdata, handles)% hObject handle to btnvshow (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) tryif get(handles.txtvword,'string')set(handles.stxtshow,'string',get(handles.txtvword,'string'),...'visible','on','fontname','¿¬Ìå','fontsize',12.0);elseset(handles.stxtshow,'visible','off');msgbox('Add some words first!');endcatchmsgbox('sorry, there are some error while excuting thefunction!','NOTICING','error');end2)音乐模块(1)打开音乐function btnmbrowse_Callback(hObject, eventdata, handles)% hObject handle to btnmbrowse (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global mfilepathtry[mfname mpname mindex]=uigetfile('*.wav','choose music');if mindexmfilepath=[mpname mfname];set(handles.edit1,'string',mfilepath);endcatchmsgbox('Error,while importing music£¡','NOTICING','error'); end(2)播放音乐function btnstart_Callback(hObject, eventdata, handles)% hObject handle to btnstart (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global mfilepath player signsign='false';tryif mfilepath~=0[data,Fs,nbits]=wavread(mfilepath);elsetry[data,Fs,nbits]=wavread('you are a song in my heart.wav');catchmsgbox('sorry,the default music does not exist','NOTICING');endendplayer=audioplayer(data,Fs,nbits);play(player);sign='ture';set(handles.btnmpause,'string','pause','Enable','on');catchmsgbox('Rrror while playing music!','NOTICING');end(3)暂停/继续功能function btnmpause_Callback(hObject, eventdata, handles)% hObject handle to btnmpause (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global player signtryif strcmp(get(handles.btnmpause,'string'),'pause')pause(player);set(handles.btnmpause,'string','continue');elseif strcmp(get(handles.btnmpause,'string'),'continue')resume(player);set(handles.btnmpause,'string','pause');endcatchmsgbox('sorry, there are some error while excuting thefunction!','NOTICING');end(4)停止播放音乐function btnmstop_Callback(hObject, eventdata, handles)% hObject handle to btnmstop (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global player signtrystop(player);sign='false';set(handles.btnmpause,'string','pause','Enable','off');catchmsgbox('ERROR','NOTICING');end3)其他辅助功能(1)关闭程序:在退出程序时,音乐不会自动停止,所以为了在退出程序时同时关闭音乐,才加入此功能function figure1_DeleteFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global player signtryif strcmp(sign,'true')stop(player);close allendcatchmsgbox('sorry, there are some error while excuting thefunction!','NOTICING','error');end(2)异常捕捉机制try-catch由于程序功能再设计上考虑的并不是十分全面,可能会出现预料不到的错误,因此加入此功能,避免在出现未知错误时,程序崩溃。