基于FPGA的简单音乐电路设计_第1页
基于FPGA的简单音乐电路设计_第2页
基于FPGA的简单音乐电路设计_第3页
基于FPGA的简单音乐电路设计_第4页
基于FPGA的简单音乐电路设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 基于FPGA的简单音乐电路设计F要求理解运用VHDL硬件描述语言和Quartus II开发工具进行音乐电路设计的方法&知识点 理解音乐电路总体方案设计方法 理解音乐电路各模块设计方法U重点和难点 理解音乐电路各模块设计方法引言 音乐电路广泛用于自动答录装置、手机铃声、集团电话及智能仪器仪表设备中。随着CPLD/FPGA 集成度的提高,价格下降, EDA 设计工具更新换代,功能日益强大,以CPLD/FPGA实现乐曲演奏电路会越来越多。本章将引导学生应用VHDL语言设计一个音乐电路。91 工作任务的陈述与背景一、工作任务的陈述使用层次化设计方法,设计并用FPGA实现一个能循环播放乐曲的音乐

2、电路。二、工作任务的背景据有关媒体介绍,中国的第一颗人造卫星东方红一号卫星,于1965年开始研制,1970年4月24日进入太空轨道,该星重量超过了苏、美、法、日等前4个国家第一颗卫星重量的总和,在某些技术方面超过上述4个国家第一颗卫星的水平,开创了中国航天史的新纪元。 东方红一号重173公斤,设计寿命为14天,实际寿命达到20天,1970年5月14日停止发送信号。关键技术包括东方红乐音装置、短波天线遥测系统等4项。其中电子乐音发生器是全星的核心部分,它通过20兆赫兹短波发射系统反复向地面播送“东方红”乐曲的前八小节,全中国人民乃至全世界的人民通过收音机都能听得到。 完成研制东方红乐音装置任务的

3、是中国科学院自动化所的一个小组。他们首先考虑,用什么样的方法来模拟出“东方红”乐曲。当时有三种方案提上了台面,一种是八音盒方案,它采用机械齿轮播放音乐;另一种就是把音乐录在磁带机上,但是当时中国还没有小磁带机,都是笨重的大磁带机,不可能装上卫星升空;因此第三种方案自然就是电子音乐,这也是后来被广泛接受的一种方案。根据上级要求,只需让卫星播放东方红前八个小节的旋律。小组决定在四十秒内连续播放两遍这八个小节,然后发射机就切换成遥测信号,用一个发射机就可以实现交替传送乐曲和遥测信号的目的。这是国内早期最知名,影响最大的一个音乐电路。在国内缺乏集成电路,没有微处理器的那个时代,东方红乐音装置全部用晶体

4、管分立元件做成。有人粗略统计,整个乐音装置全部共用了110多个晶体三极管(绝大多数是3DG6),大约150个二极管(都是2AP10),其他都是电阻电容。 现在,音乐电路广泛用于自动答录装置、手机铃声、集团电话及智能仪器仪表设备中。作为一个电子系统的一个模块,音乐电路的实现方法有以下几种: (1)购买专用音乐电路片。特点是价格便宜,多用于玩具, 无法更改乐曲,也无法编程。(2)录音重放电路,如ISD 系列录放电路。 可通过麦克风人工录音,分段放音,成本稍高。(3)利用微处理器来实现乐曲演奏,需要占用微处理器的资源较多(要占用D/ A 和定时器等) ,大多数情况无法采用这种方法。 (4)以CPLD

5、/FPGA实现乐曲演奏,也就是本任务要求使用的方法。用这种方法实现音乐电路,现在单独价格较高。但随着CPLD/FPGA 集成度的提高,价格下降, EDA 设计工具更新换代,功能日益强大,操作方便实用 ,以及IP core 概念日益普及与流行,使这种方案的应用领域会越来越多。 它的突出优点是:第一,仅占用FPGA 中很少的资源,因此增加的系统整体成本较低,甚至不增加成本。 这是因为某个产品选定某型号FPGA 芯片,产品的其它部分只用了其中一部分资源,还有相当一部分资源闲置没用;第二,更改乐曲非常方便;第三,可作为IP core 实现设计重用。92 完成工作任务的引导一、资讯1明确任务作为初步的开

6、发设计,为了简化设计,本任务设计的音乐电路可只考虑音的最重要的两个方面:“音的高低”和“音的长短”,即音高和音长,忽略音的力度和音色。要求音乐电路最少能连续循环演奏一首歌曲或一首歌曲的一部分,在此基础上可再做进一步的扩展。 由于不考虑音色,考虑到充分利用FPGA的数字电路资源,可用一个可控分频电路模块产生演奏音乐所需的每个音,而各个音演奏的顺序和持续的时间即音长可根据乐谱用一个控制电路模块来控制。电路输入是两路时钟信号:一路作为可控分频电路模块的输入时钟,经可控分频电路模块分频后,得到各种所需的乐音信号。一路作为控制电路模块的输入时钟,用来产生节拍。 这两路时钟信号的频率根据具体的实验条件和所

7、选歌曲可有所不同。电路的输出有:一路一线是乐音信号输出,用来驱动外接喇叭或蜂鸣器演奏音乐。一路一线用来驱动外接的一个LED,演奏高音时发光。一路四线用来驱动外接的数码管显示演奏的音符简谱符号。2查阅资料到图书馆、互联网查找有关资料。前人发表的有关音乐电路的文章主要散见在学术期刊和有关网页上。可用乐曲演奏电路、音乐发生器等关键词查找。另外,要理解这些文章所介绍的原理,还要具有音乐简谱、乐音频率的有关知识,如果缺乏,可再查找有关音乐简谱、乐音频率的知识。本章第三节,提供了一些与本任务有关的资料,请认真阅读。二、计划 音乐电路是模仿人歌唱的电路。故可用人歌唱作为原型来分析设计本任务的总体方案。人通过

8、声带振动发出声音,声带振动频率不同发出不同声音。故在用数字电路来模仿时,可用一个可控分频电路来产生不同频率时钟信号来用来驱动外接喇叭或蜂鸣器演奏音乐。 人在歌唱时,是根据歌谱,用大脑控制声带按照一定节拍来在不同时间发出不同的乐音的。故在用数字电路来模仿时,还应该有一个控制电路模块,用来根据歌谱控制可控分频电路模块按照一定节拍来在不同时间发出不同的乐音的。而控制电路模块应该分为两个小模块,一个用来产生节拍,称节拍产生模块。另一个用来根据歌谱控制可控分频电路模块在不同时间发出不同的乐音,称音符产生模块。 控制电路模块只是根据歌谱产生可供控制可控分频模块,按照一定节拍来在不同时间发出不同的乐音的音符

9、信号。具体要控制可控分频模块,还得要把音符信号转换为可控分频模块的分频系数输入信号,另外也要根据音符信号决定提供给外围数码管的用于显示简谱音符符号的数据和提供给外围LED的用于显示高低音的数据。这就需要另一个模块:分频系数、LED数据产生模块了。由于音乐电路是连续循环演奏,故控制电路模块的核心部分节拍产生模块应是一个计数器,每个状态持续的时间是需演奏的所有的音的音长的最小公因数,比如是一个十六分音符时值,具体时间长度应根据需演奏歌曲而定。这样,每个音持续的时间是每个状态持续的时间的整数倍,故占据整数倍个状态。具体占据状态的个数要根据每个音的音长来决定。 控制电路的计数器的模即状态数,可由需演奏

10、歌曲的各个音所占据状态个数累加而得。例如一首用于演奏“梁祝”乐曲的音乐电路的控制电路的计数器的模是139。节拍产生电路的计数器,用来产生节拍定时,音符产生模块则将节拍产生电路的计数器的状态翻译成对应的音符,假如需演奏的歌曲中所用到的音符在9到16个之间,则音符产生模块的输出信号应有四位,其它情况,依此类推。分频系数、LED数据产生模块则根据音符产生模块输出的音符信息,产生每个时刻提供给可控分频模块的分频系数、提供给外围数码管的用于显示简谱音符符号的数据和提供给外围LED的用于显示高低音的数据。 因此,音乐电路设计总体参考方案如下:Clk4HzClk12MHzLedHigh分频系数、LED数据产

11、生模 块可控分频模 块节拍产生模 块音符产生模 块SpkOutSegCodeIndexTone图9-1 音乐电路设计总体参考方案其中的两个时钟频率取值,下面再做分析。三、决策本音乐电路设计重点在可控分频模块和控制电路模块的设计,故只讨论这两个模块以及顶层模块的设计方案的选择。1 可控分频模块设计方案的选择 (1)等占空比和非等占空比方案选择可控分频电路按输出时钟的占空比来分,有等占空比和非等占空比两类方案,为了得到足够功率驱动蜂鸣器,采用等占空比输出的可控分频电路方案。(2)偶数分频、整数分频方案的选择常见的分频电路有偶数分频、奇数分频和整数分频电路,本任务从原理来看,既有偶数分频又有奇数分频

12、,故应属于整数分频电路。非等占空比的偶数分频、奇数分频电路有统一的设计方法并且比较简单,但等占空比的偶数分频、奇数分频电路设计方法则不相同。对于偶数(2N)的等占空比分频,可先做N非等占空比分频,再做2分频即可,比较简单。对于等占空比的奇数分频电路则不能采用这种方法,比较复杂。本任务可采取用较高频率(比如12MHz)的输入时钟,这样分频比就比较大,故对于初学者,作为初步解决方案,可采用偶数分频比近似代替奇数分频比的方法,把整数分频电路变成偶数(2N)分频电路,用先做N非等占空比分频,再做2分频这种较简单的方法来设计。作为提高,可采用比较复杂的真正的整数分频电路设计方法设计。2 控制电路模块设计

13、方案的选择控制电路模块的核心部分节拍产生模块是一个计数器,可采用通常的方法设计。音符产生模块的输入信号是节拍产生模块输出的计数值,输出信号是表示音符的音符序号。在节拍产生模块输出的计数值变化范围不大并且音符产生模块的输出数值不需灵活改变时,可用VHDL语句直接来描述音符产生模块即可。在节拍产生模块输出的计数值变化范围较大或音符产生模块的输出数值需灵活改变时,可使用LPM_ROM来存储对应于不同计数值的音符序号。3 VHDL输入设计法和原理图输入设计法的选择本任务,底层模块采用VHDL输入设计法较简单,而顶层模块采用VHDL输入设计法或原理图输入设计法都可。四、实施下面用用于演奏“梁祝”乐曲的音

14、乐电路为例,对音乐电路各模块的实施进行进一步的分析。(一)控制电路模块 控制电路模块包含节拍产生模块和音符产生模块两子模块,可合写成一个文件。 1节拍产生模块设计分析根据以上分析,此模块为一计数器,现在需进一步决定计数器的模及其输入时钟频率。根据乐曲“梁祝”的简谱,此乐曲以四分音符为一拍,四拍为一节,所有的音的音长的最小公因数是一个十六分音符时值,所以以十六分音符时值作为一个状态持续时间,把乐曲“梁祝”中各个音所占据状态个数累加而得知节拍产生模块计数器的模是139,其中最后休止符用了三个时间单位。 乐曲“梁祝”的简谱没有明确标出演奏速度,根据经验设定一分钟演奏60拍,因此一拍持续时间即四分音符

15、的时值为一秒,一个状态持续时间即一个十六分音符时值为0.25秒。故节拍产生模块输入时钟周期为0.25秒,频率为4Hz。2音符产生模块设计分析音符产生模块的功能是将节拍产生电路的计数器的计数值按照乐曲“梁祝”的简谱翻译成对应的音符,若用Counter表示计数器的状态,Index表示音符符号,可把乐曲“梁祝”的简谱出现的音规定如下:表9-1 音符与Index、LED数据的对应关系低音中音高音音名123456712345671Index123456789101112131415那么,根据乐曲“梁祝”的简谱可得其真值表如下:表9-2音符产生模块真值表Counter:IndexCounter:Index

16、Counter:IndexCounter:IndexCounter:Index00: 3 ;01: 3 ;02: 3 ;03: 3;04: 5;05: 5;06: 5;07: 6;08: 8;09: 8;10: 8 ;11: 9 ;12: 6 ;13: 8;14: 5;15: 5;16: 12;17: 12;18: 12;19:15;20:13 ;21:12 ;22:10 ;23:12;24: 9;25: 9;26: 9;27: 9;28: 9;29: 9;30: 9 ;31: 9 ;32: 9 ;33: 9;34: 9;35:10;36: 7;37: 7;38: 6;39: 6;40: 5

17、;41: 5 ;42: 5 ;43: 6;44: 8;45: 8;46: 9;47: 9;48: 3;49: 3;50: 8 ;51: 8 ;52: 6 ;53: 5;54: 6;55: 8;56: 5;57: 5;58: 5;59: 5;60: 5 ;61: 5 ;62: 5 ;63: 5;64:10;65:10;66:10;67:12;68: 7;69: 7;70: 9 ;71: 9 ;72: 6 ;73: 8;74: 5;75: 5;76: 5;77: 5;78: 5;79: 5;80: 3 ;81: 5 ;82: 3 ;83: 3;84: 5;85: 6;86: 7;87: 9;88:

18、 6;89: 6;90: 6 ;91: 6 ;92: 6 ;93: 6;94: 5;95: 6;96: 8;97: 8;98: 8;99: 9;100:12 ;101:12 ;102:12 ;103:10;104: 9;105: 9;106:10;107: 9;108: 8;109: 8;110: 6 ;111: 5 ;112: 3 ;113: 3;114: 3;115: 3;116: 8;117: 8;118: 8;119: 8;120: 6 ;121: 8 ;122: 6 ;123: 5;124: 3;125: 5;126: 6;127: 8;128: 5;129: 5;130: 5 ;1

19、31: 5 ;132: 5 ;133: 5;134: 5;135: 5;136: 0;137: 0;138: 0; 3设计文件实体描述两模块可合起来写成一个文件NoteTabs.vhd,其实体描述如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY NoteTabs IS PORT ( clk : IN STD_LOGIC; Index : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );END;其中输入时钟信号与Clk4Hz相连,Index表示音符信息。因为Index取值从1到15,故为4位二进制信号。其结构体设计可参考例

20、9.3。(二)分频系数、LED数据产生模块1设计文件实体描述此模块的功能是产生提供给可控分频模块的分频系数、提供给外围数码管和外围LED的数据。其实体描述如下:LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; Seg : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; Led : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END

21、; 其中Index为4位二进制信号,表示音符的信息,Seg为4位二进制信号,是提供给外围数码管的用于显示简谱音符符号的数据,Led是提供给外围LED的用于显示高低音的数据。Tone是供给可控分频模块的分频系数。它们的关系如表9-3所示。2结构体设计分析乐曲“梁祝”是F调,其频率数据如表9-3所示。在表中,可控分频模块的输入时钟设为12M Hz,经前后122 分频后为500000Hz, 故供给可控分频模块的分频系数Tone =211 -500000/f。又考虑到最大分频比为500000/349.21432,其二进制表示是10110011000,故可控分频模块的计数器为11位二进制计数器。表9-3

22、 分频系数、LED数据产生模块真值表F调简谱音名IndexSegLed频率fTone Tone(B)低音1f1100010349.2616010011010002g1200100392.0773011000001013a1300110440.0912011100100004b1b401000466.2976011110100005c2501010523.31092100010001006d2601100587.31197100101011017e2701110659.3129010100001010中音1f2800011698.51372101010111002g2900101784.0141

23、0101100000103a21000111880.01480101110010004b2b 1101001932.31512101111010005c3120101110471570110001000106d3130110111751622110010101107e314011111319166811010000100高音1f315000111397169011010011010这是一个简单的组合逻辑模块,其VHDL描述比较简单,这里不再介绍。(三)可控分频模块 此模块的功能是用一个可控分频电路来产生演奏音乐所需的每个音。可控分频模块实体描述如下:LIBRARY ieee;USE ieee.

24、std_logic_1164.ALL;USE IEEE.std_logic_unsigned.ALL;ENTITY Speakera IS PORT ( clk : IN STD_LOGIC; Tone : IN STD_LOGIC_VECTOR (10 DOWNTO 0); SpkS : OUT STD_LOGIC );END;作为初步解决方案,采用偶数分频比近似代替奇数分频比的方法,把整数分频电路变成偶数分频电路来设计。可控分频模块是一个具有12预分频和2后分频的可控分频电路。可控分频模块的输入时钟clk频率选12MHz,为了使可控分频模块分频系数取值范围比较合适,输入时钟先经12 分频,

25、同时为了使输出信号SpkS具有较高的驱动功率,可控分频后再经2分频,使输出信号SpkS具有50%的占空比,从而具有较高的驱动功率。可控分频模块的输入时钟为12M Hz,经前后122 分频后为500000Hz,应根据此频率来计算各音的分频系数,计算中对小数四舍五入。这相当于把整数分频电路变成偶数(2N)分频电路,用先做N非等占空比分频,再做2分频这种较简单的方法来设计。根据最大分频比的二进制表示的位数来确定可控分频电路的计数器的位数。例如乐曲“梁祝”,最大分频比为500000/349.21432,其二进制表示是10110011000,故可控分频模块的计数器为11位二进制计数器。 分频电路的描述与

26、计数器电路相似,下面进程描述一个12分频电路。PROCESS(clk) VARIABLE Count4 : STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN PreCLK 11 THEN PreCLK CLK4HZ,Index=ToneIndex);u2 : ToneTaba PORT MAP (Index=ToneIndex,Seg=SegCode,Led=LedHigh,Tone=Tone);u3 : Speakera PORT MAP(clk=Clk12MHZ,Tone=Tone, SpkS=SpkOut );END;五、检查分别编译各底层模块和整个电路设计,并

27、分别仿真控制电路模块和分频系数、LED数据产生模块。通过后,若有条件,应将源代码下载到硬件中做最后的验证。六、评估对本次设计进行评估,可尝试更好的方案、方法。写出设计报告,设计报告应包括所应用到的EDA方法及知识的总结。93 相关技术基本知识与基本技能一、相关音乐知识1乐音的四个基本要素一般来说,所有乐音有四个基本要素,而其中最重要的是“音的高低”和“音的长短”:(1) 音的高低:任何一首曲子都是由高低相间的音组成的,从钢琴上直观看就是越往左面的键盘音越低,越往右面的键盘音越高。(2)音的长短:除了音的高低外,还有一个重要的因素就是音的长短。音的高低和长短的标注决定了该首曲子有别于另外的曲子,

28、因此成为构成音乐的最重要的基础元素。(3) 音的强度:一首音乐作品总会有一些音符的力度比教强一些,有些地方弱一些。而强度的变化是音乐作品中表达情感的因素之一。(4)音色:同样的旋律音高男生和女声唱就不一样的音色,小提琴和钢琴的音色就不一样。2音名与唱名不同音高的乐音,是用CDEFGAB来表示的,这七个拉丁字母就是乐音的音名,它们一般依次唱成do(多)、re瑞)、mi(米)、fa(发)、sol(梭)、la(拉)、si(西)。即唱成简谱的1、2、3、4、5、6、7。do(多)、re瑞)、mi(米)是唱曲时乐音的发音,所以叫唱名。3简谱中的音符简谱是国内广泛使用的记录音乐的方式。简谱是一种比较简单易

29、学的音乐记谱法,它仅用7个阿拉伯数字1、2、3、4、5、6、7表示CDEFGAB,通过这7个阿拉伯数字,就能将千变万化的音乐曲子记录并表示出来。简谱虽然不是出现在中国,但在中国得到非常广泛的传播。在简谱中,记录音的高低和长短的符号,叫做音符。简谱的音符相对应的数字的大小决定音的相对高低。比如数字2比1大,re就比do高;数字2比3小,re就比mi低,等等。音符有多种类型。(1)按所记录的音的相对高低来分音符分为中音音符、高音音符、低音音符、倍高音音符、倍低音音符、超高音音符、超低音音符、最高音音符和最低音音符。 七个音符主体1、2、3、4、5、6、7就表示七个中音音符。在七个基本的音符1 2

30、3 4 5 6 7上面各加一个圆点即成为七个高音音符:。在七个基本的音符1 2 3 4 5 6 7下面各加一个圆点即成为七个低音音符:。如果在中音音符上下各加两个圆点,就成为叫倍高音音符和倍低音音符,在中音音符上下各加三个圆点,就成为叫超高音音符和超低音音符,在中音音符上下各加三个圆点,就成为叫最高音音符和最低音音符。(2)按所记录的音的相对长短来分音符分为全音符、二分音符、四分音符、八分音符、十六分音符和三十二分音符。七个音符主体1 2 3 4 5 6 7表示四分音符。在四分音符后面每加一条短横线就表示增加等于一个四分音符的时值(时间长度),在四分音符后面加一条短横线就成为二分音符,例如2,

31、在四分音符后面加三条短横线就成为全音符例如3;在四分音符下面每加一条短横线,就表示将其上面的音符的时值削减一半,在四分音符下面加一条短横线就成为八分音符,例如,在四分音符下面加两条或者三条短横线就成为十六分音符或者三十二分音符,例如、 。 (3)附点音符附点音符又分为单附点音符和双附点音符。通常说附点音符即指单附点音符,如指双附点音符,必须加“双”字。单附点音符和双附点音符是在以上音符基础上,在其后面加上一个或两个附点(园点或短横线)构成。单附点将音符的时值增加一半,第二附点则将第一附点的时值增加一半。全音符和二分音符的附点不用园点而用短横线,其他情况的附点使用园点。例如4、3、2是单附点音符

32、,而4、3、2是双附点音符。 (4)休止符 音乐有时会出现一定时间的休止(间断),以适应表达乐思的需要,同时也与乐音形成对比。简谱用数字0作记录休止的符号,叫做休止符。 3调、节拍与速度简谱中的音符的音高只是相对的音高,需要指定其中一个基本音比如1的绝对音高才能确定所有音符的绝对音高,简谱中使用表明一首乐曲的调的方法来规定乐曲中各音符的绝对音高。例如1=C,称为C调,表明中音1发钢琴键盘中间的白色的C键的音。一首乐曲的简谱是由一个一个小节构成的,小节之间用一条小竖线隔开。一个小节中用某种时值的音符(四分音符或八分音符等)作一拍,结合每小节的拍数(二拍、三拍等)、就构成拍子。标明拍子的记号叫拍号

33、,用一个分数来表示。拍号的分母表示用什么时值的音符作一拍,分子表示每小节的拍数。例如,分母数字4表示用四分音符作一拍,分子数字2表示每小节容纳两拍。速度指唱奏时节拍、节奏的快慢程度。唱奏速度是用每一分钟唱奏多少拍表示,唱奏速度一定后,每一拍以至每个音符就有了确定的时值,在此之前,每一拍和每个音符只有相对时值。4音阶与调性 按照一定关系结合在一起的几个音(一般是七个音左右)组成一个有主音(中心音)的音列体系,构成一个调式。把调式中的个音,从主音到主音,按一定的音高关系排列起来的音列,叫音阶。(1)12个大调音阶音与音之间的距离符合全全半全全全半的八个音,就称为大调音阶。这里的全和半分别指全音和半

34、音。距离是一个半音的相邻两个音,高音频率是低音频率的“2的1/12次方倍”。一个全音的距离等于两个半音的距离。首先以大家最熟悉的C大调音阶为例,做一个说明。 C大调音阶:C D E F G A B C,主音是C。C与D之间的音程为全音 ;D与E之间的音程为全音 ;E与F之间的音程为半音 ;F与G之间的音程为全音 ;G与A之间的音程为全音 ;A与B之间的音程为全音 ;B与C之间的音程为半音。 又例如G大调:G A B C D E F# G(这里的F#是比F升半音的音),也符合全全半全全全半的规则。 了解大调的定义之后,就可以排出所有的大调音阶。因为一个八度内总共有十二个半音,每一个都可以作为大调

35、的起音,所以总共有12个大调。 C Major C D E F G A B CG Major G A B C D E F# G 一个升 D Major D E F# G A B C# D 两个升 A Major A B C# D E F# G# A 三个升 E Major E F# G# A B C# D# E 四个升 B Major B C# D# E F# G# A# B 五个升 F# Major F# G# A# B C# D# E# F# 六个升 等于 Gb Major Gb Ab Bb Cb Db Eb F Gb 六降个 (这里的Gb是比G降半音的音)C# Major C# D# E

36、# F# G# A# B# C# 七个升 等于 Db Major Db Eb F Gb Ab Bb C Db 五个降 Ab Major Ab Bb C Db Eb F G Ab 四个降 Eb Major Eb F G Ab Bb C D Eb 三个降 Bb Major Bb C D Eb F G A Bb 两个降 F Major F G A Bb C D E F 一个降 其中F#和Gb、C#和Db音名不同,但实际上是相同的音。 从以上的12的大调可以看出,每往上五度就多一个升,C G D A E B F#,而每往下五度就多一个降,C F Bb Eb Ab Db.图9-2 五度圈也就是说,从任一

37、个音往上或往下数完全五度,数完12个之后又会回到同一个音,这就叫做五度圈(如图9-2)。 所以以后听到两个升的大调一定是D大调,升F升C:两个降的大调一定是Bb大调,降B降E。 (2)小调音阶小调与大调的不同点在于小调听起来比较忧郁、哀伤,而大调比较明快。小调有三种,在这里只讲最简单的自然小调。自然小调的规则为全半全全半全全。完全没有升降的小调是A小调:A B C D E F G A。同样每往上完全五度就多一个升,往下完全五度就多一个降。自然小调的升降数目与他上方小三度的大调相同。例如:A小调跟C大调一样没有升降,E小调跟G大调一样升F,D小调跟F大调一样降B。也就是说,A小调与C大调共享这七

38、个音,只是一个从A开始一个从C开始。所以归纳起来,如果看到乐谱最前面的调号是两个升(一定是升F升C,不会有别种情况),你可以判断他是D大调或者B小调。如果是两个降(一定是降B降E),可以判断是Bb大调或G小调。至于怎么分别到底是大调还是小调,要从旋律来看,必须先熟悉小调的感觉,听旋律就来分辨是大调还是小调。5钢琴上各音的名称和频率如图9-3 所示为钢琴上各音的名称和频率 (以a1 = 440Hz为标准)。图9-3 钢琴上各音的名称和频率6简谱中各调各音符的频率 简谱中各调的do(多)对应于钢琴上各组中此调的主音。以C调为例,C调是C D E F G A B C,主音C 唱为do(多)。有些资料

39、规定中音do(多)对应小字1组的c1,有些资料则升八度,规定低音do(多)对应小字1组的c1。这里采用低音do(多)对应小字1组的c1,频率为261.63 Hz。根据钢琴上各音的频率,其余各音的频率依次列出如下:表9-4 简谱中C调各音符的频率音符 频率/Hz音符 频率/Hz音符 频率/Hzc1低音1 261.63c2中音1 523.25c3高音1 1046.5d1低音2 293.67d2中音2 587.33d3高音2 1174.7e1低音3 329.63e2中音3 659.25e3高音3 1318.5f1低音4 349.23f2中音4 698.46f3高音4 1396.9g1低音5 391.

40、99g2中音5 783.99g3高音5 1568.0a1低音6 440.00a2中音6 880.00a3高音6 1760.0b1低音7 493.88b2中音7 987.76b3高音7 1975.5 又例如F调,F调是F G A Bb C D E F,主音是F。采用低音do(多)对应小字1组的f1,频率为349.23Hz。根据钢琴上各音的频率,其余各音的频率依次列出如下:表9-5 简谱中F调各音符的频率音符 频率/Hz音符 频率/Hz音符 频率/Hzf1低音1 349.23f2中音1 698.46f3高音1 1396.9g1低音2 391.99g2中音2 783.99g3高音2 1568.0a1

41、低音3 440.00a2中音3 880.00a3高音3 1760.0b1b低音4 466.16b2b中音4 932.33b3b高音4 1864.7c2低音5 523.25c3中音5 1046.5c4高音5 2093.0d2低音6 587.33d3中音6 1174.7d4高音6 2349.3e2低音7 659.25e3中音7 1318.5e4高音7 2637.0 其他各调可模仿以上做法得出。7歌曲简谱例子图9-4 梁祝化蝶简谱二、本项目用到的其他VHDL语言知识复习 (一)组合逻辑模块的VHDL描述实例 简单的组合逻辑模块的VHDL描述,最常用的方法是应用CASE语句或IF语句来描述,就好像下面

42、所介绍的例子。例9.1LIBRARY ieee;USE ieee.STD_LOGIC_1164.ALL;ENTITY ToneTaba IS PORT ( Index : IN STD_LOGIC_VECTOR (3 DOWNTO 0) ; Seg : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; Led : OUT STD_LOGIC; Tone : OUT STD_LOGIC_VECTOR (10 DOWNTO 0) );END;ARCHITECTURE one OF ToneTaba ISBEGINPROCESS(Index) BEGIN CASE Index

43、IS WHEN 0000 = Tone=11111111111 ; Seg=0000; Led Tone=01001101000 ; Seg=0001; Led Tone=01100000101 ; Seg=0010; Led Tone=01110010000 ; Seg=0011; Led Tone=01111010000 ; Seg=0100; Led Tone=10001000100 ; Seg=0101; Led Tone=10010101101 ; Seg=0110; Led Tone=10100001010 ; Seg=0111; Led Tone=10101011100 ; Se

44、g=0001; Led Tone=10110000010 ; Seg=0010; Led Tone=10111001000 ; Seg=0011; Led Tone=10111101000 ; Seg=0100; Led Tone=11000100010 ; Seg=0101; Led Tone=11001010110 ; Seg=0110; Led Tone=11010000100 ; Seg=0111; Led Tone=11010011010 ; Seg=0001; Led NULL; END CASE; END PROCESS;END; 在这个例子中,输入信号是Index ,输出信号有Tone、Seg、Led。使用CASE语句描述简单组合逻辑模块,具有与真值表对应的关系。 (二)时序逻辑模块的VHDL描述实例 例9.2LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE IEEE.std_logic_unsig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论