欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 基于Matlab/GUI的音乐播放器系统开发

基于Matlab/GUI的音乐播放器系统开发

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


  本文由wWW. 提供,第一 论 文 网专业写作教育教学论文和毕业论文以及发表论文服务,欢迎光临  0 引 言
  Matlab是美国MathWorks公司设计的数学软件,主要包括Matlab/Simulink和GUI设计两大部分[1?2]。Matlab可以进行矩阵运算、绘制函数和数据、创建用户界面、系统仿真设计等,主要应用于工程计算、信号处理与通信、图像处理、控制设计等领域。
  笔者在近几年的教学中,结合应用型人才培养的目标,采用CDIO工程理念,能充分根据学生的兴趣和爱好进行Matlab教学,针对其系统仿真和人机界面设计两大功能进行模块主题式教学,充分调动了学生学习的积极性。本文采用M文件和GUI界面进行了音乐播放器的设计,并总结了两者之间的联系。
  1 基于M文件的音乐设计
  1.1 Matlab播放音乐的前提
  Matlab具有强大的功能,主要归功于强大的内置函数功能[3?4]。在Matlab中,可以借助sound函数来播放声音,其格式为:
  sound(Y,FS) :通过扬声器产生一个采样频率为FS的信号Y,其中Y的范围定义为-1.0≤y≤1.0,超过这个范围的值将被重新调整,以产生更符合人耳的声音。 同时当Y为N×2大小的矩阵时,可以通过该函数产生立体声。
  sound(Y):产生默认的采样频率为8 192 Hz的声音。
  sound(Y,FS,BITS):产生按位采样的声音,其中大部分的平台支持BITS=8 or 16。
  同时可以通过wavwrite 产生*.wav视频/音频文件,其格式为:
  wavwrite(Y,FS,NBITS,WAVEFILE):写入一个采样频率为FS Hz,位数为NBITS (其中NBITS 必须为8, 16, 24或32)的数据信息Y,并生成相应的WAVE文件。如果产生立体声的数据需  
  图1 《荷塘月色》的简谱
  依据《荷塘月色》简谱中的谱音,节奏,音节,高低音在matlab *.m文件中建立对应代码,依据响应函数实现。
  paragraph1= [1 1 6 5 6 1 1 2 3 2 2 1 2 2 5 5 3 3 2 3 1 1 6 5 5 3 2 3 2 1 2 2 1 2 2 3 2 1 6 2 1;
  0 0 ?1 ?1 ?1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ?1 ?1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ?1 0 0;
  0.5 1 0.5 1 1 1 0.5 0.5 2 0.5 1 0.5 1 0.5 0.5 0.5 0.5 0.5 0.5 2 0.5 1 0.5 1 1 0.5 0.5 0.5 0.5 2 0.5 1 0.5 0.5 1 0.5 0.5 0.5 0.5 0.5 2];
  以上代码功能说明:第一部分为所演奏歌曲的谱;第2部分为各谱音对应的音调;第3部分为各谱音对应的音节。
  1.3 歌曲播放
  fs = 8000;
  sound_pose = [0 2 4 5 7 9 11 0:12];
  y = zeros(1, sum(music(3,:))*fs + 1); %初始化
  cure_pose = 1;
  for count = 1 : length(music)
  cure_sound_name = music(1, count); %处理音乐
  cure_sound_pose= sound_pose(cure_sound_name);
  %产生音乐
  cure_freq = 220 * 2 .^ ((cure_sound_pose + rhythm + 3) / 12 + music(2, count));
  cure_sound = generate_tune(cure_freq, music(3, count), fs);
  y(1,cure_pose:(cure_pose+ length(cure_sound) ? 1)) = cure_sound;
  cure_pose=cure_pose+ length(cure_sound);
  为了歌曲播放的连续性,需要对其频率进行修正,其代码为:
  function y = amendment(p, l)
  if p < 0.2
  y = p*5;
  elseif p < 0.3
  y = 1.8 ? p * 4;
  else
  y = 0.6 * exp((0.3 ? p)/5);
  end
  2 基于GUI的音乐设计
  在Matlab 提供的GUI 上利用Matlab 语言编写核心代码并构建框架是一种不错的选择。这不但减少了代码编写的工程量,而且制作出的软件同时具有界面友好和能够方便进行各种数据处理及图像分析等特点[7?8]。图形用户界面(Graphic User Interface,GUI)的程序是在图形界面[9]下创建与用户交互的控件元素,使用户可以通过操作这些交互控件实现特定的功能,并且可以返回显示在程序界面相应的结果显示区域中[10]。本文通过GUI的GUIDE进行音乐键盘的设计来说明GUI的功能和使用。
  2.1 总体界面显示
  根据键盘的显示,通过GUI各功能键设置了音乐键盘,其总体设计包括单频发音模块、多频模块、播放谱曲模块、播放视频模块和关闭模块。
  图2中键盘的黑、白键通过Pushbutton控件相应属性改变进行设置。
  
  图2 音乐键盘的总体设计
  2.2 部分按键代码实现
  (1) 关闭功能模块
  通过设置一个push button键来实现,在该键callback下,编写该回调函数。程序如下:
  selection=questdlg([′是否关闭′,get(gcf,′Name′),′窗口?′], ...
  [′Close ′,get(gcf,′Name′),′...′],′是′,′否′,′是′);
  %当选择退出按钮时,得出一个问是否确定关闭的框
  if strcmp(selection,′否′)
  return;
  else
  clc;
  clear all;
  delete(gcf);
  end
  (2) 多频功能模块
  通过设置一个radio button 来实现双音多频的功能,当选中该按钮时,则增加它的频率分量。使其含有丰富频率分量。通过设置一个全局变量,当选中该控件时,全局变量的值改变,程序如下:
  function duopin_Callback(hObject, eventdata, handles)
  global r;
  r=get(,′value′); %多频的按钮是否选中
  2.3 歌曲的显示
  通过查阅资料,发音频率对应的表达式为f=440*2^((f0-49)/12),当所发音为低音时f0的取值为31~37,发中音时f0的取值为40~46,发高音时f0的取值为49~55。播放音乐可以通过设置一个push button键来实现,通过编辑该键callback功能通过wavplay函数就可以播放该歌曲了。  A=440; %标准音A
  ft=44100; %频率
  f0=ft/2;
  scale12=A4/2^(9/12)*2.^((0:11)/12);
  ma1=[1 3 5 6 8 10 12]; %七音符
  score=[1 1 5 5 6 6 5,...do do sol sol la la sol?
  4 4 3 3 2 2 1,...fa fa mi mi re re do?
  5 5 4 4 3 3 2,...sol sol fa fa mi mi re?
  5 5 4 4 3 3 2,...sol sol fa fa mi mi re?
  1 1 5 5 6 6 5,...do do sol sol la la sol?
  4 4 3 3 2 2 1];%fa fa mi mi re re do? %乐谱
  3 结 语
  Matlab具有强大的图形显示功能,同时具有丰富的人机交互界面设计的功能,通过Matlab中的GUIDE创建GUI设计时,既能将已有的M文件进行仿真,又能将仿真的图形结果通过人机交互的方式显示,从而给使用者留下更形象、深刻的印象。而在GUI设计时,可以将设计的GUI界面保存为Fig文件的同时生成对应的M文件,方便用户随时进行编辑处理。利用Matlab/GUI进行界面设计可以为用户提供友好、方便、形象的图形显示和数据分析处理,将会在教学和工程应用上带来良好的效果。
  参考文献
  [1] 郑阿奇.Matlab实用教程[M].3版.北京:北京电子工业出版社,2012.
  [2] 徐明远,邵玉斌.Matlab仿真在通信与电子工程中的应用[M].西安:西安电子科技大学出版社,2009.
  [3] 邬晓红,唐红军,赵琳,等.基于Matlab GUI的说话人识别测试平台设计[J].现代电子技术,2013,36(8):59?62.
  [4] 沈媛媛.基于Matlab的数字信号处理综合性实验设计[J].实验室研究与探索,2009,28(8):60?61.
  [5] 黄飞,李灿平,任小庆,等.基于Matlab/GUI的图像处理软件开发[J].长沙通信职业技术学院学报,2010,9(3):22?25.
  [6] 白晓梅,王茹,赵云兵.基于Delta3D的气象仿真框架设计与实现[J].现代电子技术,2012,35(4):29?32.
  [7] 李京秀.基Matlab GUI的电路特性演示平台设计[J].现代电子技术,2012,35(22):160?162.
  [8] 施晓红,周佳.精通GUI 图形界面编程[M].北京:北京大学出版社,2003.
  .微型电脑应用,2011(8):53?56.
  [10] 陈瑞峰,左曙光,郭伟.基于Matlab GUI的信号分析系统[J].佳木斯大学学报,2009,27(5):645?647.要建立二维矩阵。
  wavwrite(Y,FS,WAVEFILE):产生WAV文件时 NBITS=16 b。
  wavwrite(Y,WAVEFILE):产生WAV文件时NBITS=16 b并且FS=8 000 Hz。
  1.2 频率转换
  本文根据《荷塘月色》的歌谱(如图1所示),通过学习相应的乐理知识后,生成了对应的乐谱矩阵,以进行歌曲的播放[5?6]。其中产生的音符:1?do;2?re;3?mi;4?fa;5?so;6?la;7?ti。音阶:0?低音;1?中音;2?高音;3?超高音;音长:指的是节拍,最低支持1/16拍。

本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/243449.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学