科技风2021年2月科技创新
DOI:10. 19392/jki.1671-7341.202104011
毛艺晓王志鹏#
南阳师范学院物理与电子工程学院河南南阳473061
摘要:利用MATLABGUI平台,设计了一个音乐分析与合成综合演示系统。用户通过简单的鼠标点击操作,就可以实
现音乐载入、波形显示、频域分析、音乐合成以及音频播放等一系列功能。该演示系统可以让用户更直观地理解音乐信号分
析与合成的基本原理,激发对音频信号分析和处理的兴趣。
关键词:MATLAB#音乐分析与合成;傅里叶变换
Desij^n of demonstration program of music analysis
and composition based on MATLAB
Mao 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 transform
1绪论
MATLAB是是矩阵实验室(Matrix Laboratory)的简称,是 美国MahWoks公司出品的商业数学软件,可以进行矩阵运 算、绘制函数和数据、实现算法、创建用户界面、连接其他编 程语言的程序等,在信号处理领域已得到广泛的应用[1]。MATLAB还可以快速生成GUI'图形用户界面)程序。图形 用户界面程序由一系列按钮、菜单、列表框、滑动条和文本框 等控件组成,用户只需要通过鼠标和键盘操作,
就可以实现 各种运算,实现相应功能,具有形象生动、方便灵活的特点,是现代软件普遍采用的一种交互方式。m atlab是一个数 据分析和处理功能十分强大的工程实用软件,故运用它来进 行音乐信号的采集、分析和处理相当便捷。
2乐理知识介绍
将调式中的音,从以主音开始到以主音结束,由低到高 (叫做上行),或者由高到低(叫做下行)以阶梯状排列起来,就叫做音阶。基本音阶为c调大音阶,也有D调、F调等。不同的音阶有不同的声音频率,而不同的声音频率也对应着 不同的信号波形。利用软件模拟,可以用不同的频率代表不 同的音阶,从而起到调节音调的作用,进而可以用数学方法 模拟出原唱的效果[2]。由于不同的乐器其信号包络信号也 不同,故在音乐合成研究中,常用少量的直线来近似表示复 杂的包络形状。于是,乐音信号的波形包络就呈折线分布。同时,为了保证在两个乐音的邻接处信号幅度为零,也经常采用指数衰减的信号包络来表示。如果连接的音符产生了谢娜李湘
一个杂音,可以通过加包络来消噪音[3]。
3苜乐分析与合成演示平台的设计
3.1主界面
陈思安
在音乐分析与合成演示平台的设计中,每个模块的GUI 程序设计都包含两个部分内容:GUI界面设计和m文件设 计。⑶I界面设计可以利用MATLAB提供的可视化⑶IDE 工具通过添加各种控件来完成;而m文件设计则主要根据界 面设计,通过编写回调函数来实现相应的功能,音乐信号处
理的功能均需在控件的回调函数中实现[4]。该音乐分析与
合成演示系统的主界面如图1所示。主界面包含音乐信号
分析和音乐信号合成两个子模块,分别点击对应的按钮就可
以打开对应的子模块操作界面。
图1GUI音乐信号设计主界面
3.2音乐信号分析子模块
该子模块的具有以下功能:
(1)载入音频文件。用户点击载入音频按钮后,可载入
2
1
^科技创新 科技风2021年2月
计算机中的任意音频文件(• wa ;等)。载入完毕后,上方的 坐标轴内将生成对应的时域波形。
(2) 音频的播放。载入音频后,点击播放音乐按钮,可播 放当前载入的音频文件内容。
(3)
生成分析图像。完成(1)步骤后,在第一个弹出式 菜单中选择一种分析种类(频谱分析/功率谱分析/倒谱分 析)后,点击生成图像按钮,将会在右方的坐标轴内生成对应 的图谱,如图2所示。
图2音乐信号分析子界面
(4)保存图像。用户在第二个弹出式菜单中选择一种保 存图像类型(时域波形保存/频谱保存/功率谱保存/倒谱保 存)后,点击保存图像按钮,将会弹出该类型图像的保存操作 窗口(选择保存位置),进行保存。
该音乐信号分析子模块可以分别实现频谱分析、倒谱分 析以及功率谱分析等功能[5]。
3.3音乐信号合成子模块
音乐信号合成子模块如图3所示。该模块可以用两种 方法实现音乐信号的合成!( 1)方法1 (载入曲谱)!在弹出式 菜单中选择一种歌曲片段(东方红/雪绒花/小步舞曲)后,点 击合成音频信号按钮,将会在坐标轴中生成该歌曲的时域波 形,点击播放音乐按钮后,将会播放当前选择的歌曲片段。 选择输入中下拉菜单的第二个曲目《雪绒花》。通过部分歌 曲音阶可知对应的频率为!392 261.63 293.66 329.63 349.23 392 261.63 261.63 440 349. 23 392 440 493. 88 523. 25 261.63 261.63 349. 23 392 349. 23 329. 63 293. 66 329. 63 349. 23 329. 63 293. 66 261.63 293. 66 329. 63 293. 66 261.63 246. 94 261.63。每小节有两拍,一拍的时间是0.5s ,因此各音节的 持续时间分别为!0. 5、0. 25、0. 25、1、0. 5、0. 25、0. 25、1。在
MATLAB 中用一个行向量来存储这段音乐对应的抽样点,再
用sound 函数播放音乐即可[6]。《雪绒花》的合成效果图如
哎呀哎呀对不起图3所示。
演员邢佳栋
图3《雪绒花》合成效果图
(2)方法2(琴键输入)!通过按下琴键来输入音频信号, 输入完毕后,点击播放按钮,将会按照顺序合成所有按下琴 键的音频信号并生成对应的时域波形,同时播放合成的音频 信号,点击重新输入按钮,之前输入的音频信号将被清除,可
以重头开始输入。每个琴键都有对应的频率,因此可以通过
GUI 上的按键及MATLAB 的相关函数实现琴键输入的效果。
按下前三个白琴键的输出效果图如图4所示。
图4琴键输入效果图
4结语
本文在MATLAB 2017 for windows 10的环境下,建立了一个音乐信号分析与合成演示程序。它以图形窗口为主窗 口,加入了下拉菜单、控制按钮、坐标轴等模块,实现了音乐 信号的采集、播放、处理,以及信号功率谱、频谱、倒谱图的分 析和图形显示。另外,通过按钮可在MATLAB 图形窗口上实 现音乐信号的输入与合成,收到的效果清晰直观。
参考文献:
% 1 ]宋晓婷.利用MATLAB 合成音乐的函数模拟实现与比 对[J ].太原师范学院学报:自然科学版,2018,17(1):27-32.
双面飞轮海%2]张林,王艳芬,张晓光,等.基于MatlabGUI 的数字信 号处理演示平台设计[J ].实验技术与管理,2016,243(12): 154-157.
[3 ]连丽红.基于Matlab 的信号与系统实验平台开发 [J ].实验技术与管理,2016(6):150-153.
[4] 罗湘娟,陈丽,谢超.基于MATLAB 的音乐分析与合 成研究[J ].科技经济导刊,2017 (15):32.[5] 金波.基于Matlab 的“信号与系统”实验演示系统 [J ].实验技术与管理,2011,27(12):104-107.
[6]
闰红梅,吴冬梅,吴延海.M
a l
b 在周期信号分解及
频谱中的应用[J ].实验技术与管理,2016(5):37-39,43.
红遍全球基金项目:南阳师范学院教学研究项目(2019-JXYJYB - 65,2017-JXYJYB -20);南阳师范学院课堂教学模式改革项目 (2019-JXYJKT -26 )#南阳师范学院大学生实践教学活动创新 项目(SPCP 2020427)
作者简介:毛艺晓(1999一 ),女,浙江舟山人,本科,主 要研究方向:计算机技术应用。
#通讯作者:王志鹏(1982— ),男,河南南阳人,副教授,主要研究方向:光学信息处理。
22
发布评论