CN1953049B - 调频合成的波形生成 - Google Patents

调频合成的波形生成 Download PDF

Info

Publication number
CN1953049B
CN1953049B CN200610142006.8A CN200610142006A CN1953049B CN 1953049 B CN1953049 B CN 1953049B CN 200610142006 A CN200610142006 A CN 200610142006A CN 1953049 B CN1953049 B CN 1953049B
Authority
CN
China
Prior art keywords
waveform
sampling
address
predetermined
section
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200610142006.8A
Other languages
English (en)
Other versions
CN1953049A (zh
Inventor
阿朗·萨多
凯西·利伯曼
维克托·曼泽拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
KY WIRE ELECTRIC CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by KY WIRE ELECTRIC CO Ltd filed Critical KY WIRE ELECTRIC CO Ltd
Publication of CN1953049A publication Critical patent/CN1953049A/zh
Application granted granted Critical
Publication of CN1953049B publication Critical patent/CN1953049B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/08Instruments in which the tones are synthesised from a data store, e.g. computer organs by calculating functions or polynomial approximations to evaluate amplitudes at successive sample points of a tone waveform
    • G10H7/12Instruments in which the tones are synthesised from a data store, e.g. computer organs by calculating functions or polynomial approximations to evaluate amplitudes at successive sample points of a tone waveform by means of a recursive algorithm using one or more sets of parameters stored in a memory and the calculated amplitudes of one or more preceding sample points
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/471General musical sound synthesis principles, i.e. sound category-independent synthesis methods
    • G10H2250/475FM synthesis, i.e. altering the timbre of simple waveforms by frequency modulating them with frequencies also in the audio range, resulting in different-sounding tones exhibiting more complex waveforms

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

公开一种由存储在一个或多个存储表中的至少一个原型波形的一个或多个连续段生成一个或多个波形的方法和系统,该方法和系统包括下面采样处理步骤的迭代:在预定地址上读取存储的原型波形的至少一个采样;根据预定逻辑修正该采样;以及累加修正的采样,其中,通过上述步骤的多次迭代,由累加的修正采样形成新波形的周期。

Description

调频合成的波形生成
技术领域
本发明总的涉及调频(FM)合成,尤其涉及一种用于生成在FM音乐声音合成中使用的音频波形的方法和系统。 
背景技术
一般的普通波形的再现、特别是乐器声音的再现,需要该声音的各主分量(primary component)的集合。当声音被适当处理时,可以产生该声音的副本。最精确但不切实际的方法是对该声音的记录-包括它在频率、起声(attack)等上的所有变化。实际的方法需要减少再现声音所需的参数量。在波表合成的情况下,在少量音调(pitch)周期上、在八度音程(octave)的子集上记录和采样每个乐器的声音。这些采样的声音记录被存储在波表中,并且声音再现的方法包括在该表上循环再现采样的声音记录。 
FM合成方法可以复制乐器的声音,因此可以用作音乐再现的合成器。与其它音乐生成方法相比,FM合成对音乐再现处理所需要的存储量最少,同时还保持可接受的乐器声音的完整性。该合成方法需要小得多的ROM和/或RAM存储器,这是因为它只需要存储查找波表的集合中的预定义波形的一小部分。另一方面,波表合成需要大得多的存储量,以便达到可接受的性能水平。FM合成需要大约24KB的乐器合成数据(包括波形表和波形成型数据)的示例情况下,波表合成器将需要至少512KB的波表存储器。这是FM合成所需存储量的21倍。 
除了由乐器所产生的不同声音的幅度包络外,乐器所产生的侧音(sidetone)产生使乐器有可以相互区别的音色。由于侧音是自然存在、并且可通过对预定义波形执行调频而分析得到的效果,因此可以使用音频FM合成来模拟乐器声音。这是通过匹配FM合成波形的侧音与实际乐器侧音实现的。最基本的FM合成音频发生器使用自调制的调制器频率和调制载波频率。 
图1示出该基本FM合成音频发生器100的框图。FM合成音频发生器100使用调制器102的频率来执行自调制(103)以及调制载波104的频率。 由调制器频率 与调制器信号的部分βr[[n-1]之和,计算波形波表索引φm[n]。然后使用波形波表索引与波形查找波表106来生成第一序列输出采样W1[n]。将增益系数(Am[n])施加到该输出,得到r[n],其中r[n]=Am[n]W1[n]。然后该信号的延迟部分βr[n-1]被反馈到调制器,以计算下一采样的调制器波表索引。反馈的量是由增益系数(β)决定的,后者表示调制器的频率偏移。在施加了载波增益系数α后,调制器信号的部分αr[n]也被反馈用来调制载波频率。载波频率 
Figure S061E2006820061024D000022
与αr[n]相加,得到波表索引φc[n]。使用该值与波表108来产生第二序列输出采样W2[n]。然后施加载波增益系数(Ac[n])来获得最终的模拟乐器声音SFM[n],其中SFM[n]=Ac[n]W2[n]。使用这种类型的合成只需要几个波形波表。例如,可以使用6个波形波表来再现所有的128种一般MIDI乐器和47种一般MIDI鼓。 
由于小的波表带来经济上的好处,因此可以选择FM合成作为音乐再现的音频发生器。对于这种合成方法,位于查找波表中的这个较小的波形集合将需要小得多的ROM和/或RAM存储器。 
在一个实现中,查找波形波表包含完整周期的所有必要波形。软件算法计算由载波和调制器频率所计算出的波表步长索引。该步长索引被累加并用来获得适当波表中的载波和调制器波形的采样。可以使用简单的卷绕算法(wrapping algorithm)(周期模运算)来再现连续的波形流。该单周期卷绕算法只要求重新产生载波和调制器波形所需的最小数量的指令周期。 
在另一实现中,可以利用波形的对称性来大大减少存储器大小,这是因为只需要波形之一部分周期(例如,1/4周期或1/2周期)来生成所有波形。通过存储的周期分段,可以进一步产生复杂的波形。这要求更复杂的软件波表查找算法。该查找算法需要计算累加的波表索引的段,需要在缩短周期和完整周期上执行模算术运算,需要进行索引的移动(shift)来调节步长,并且需要使用段修正(segment modification)的波表来在段内缩放(scale)波形。 
然而,当今FM合成系统使用的常规波表查找算法有几个缺点。对于上述第一种实现,由于存储完整周期的波形,因此可能需要较大的存储器件。 同样地,当需要存储更多波表时,需要较大的存储器件。大的存储器件可能占用较大的物理面积,从而增加芯片大小、成本、以及芯片的功耗。对大存储器件的存取时间也比小存储器件的要高,因此也可能出现违反定时(timingviolation)。违反定时的问题通常修复起来是很昂贵的。 
对于上述利用波形周期的对称性和相似性的第二种实现,需要较小的存储器件,这是以增加指令周期使用率为代价的。这种增加是有很大影响的,并且在FM合成中被加倍,这是因为每个采样存取波表两次,一次用于调制器频率,一次用于载波频率。 
因此,希望实现一种波表查找算法,可以减少存储器大小以及处理器负载。 
发明内容
需要下面的实施例。当然,本发明不限于这些实施例。 
根据本发明的第一方面,一种由存储在一个或多个存储表中的至少一个原型波形的一个或多个连续段生成一个或多个预定波形的方法,包括下面采样处理步骤的迭代:在一预定地址上读取存储的原型波形的至少一个采样;根据预定逻辑修正该采样;以及累加修正的采样,提供具有预定行数和预定列数的预定段修正矩阵修正该采样,且所述预定行数等于需要生成的波形数,所述预定列数等于原型波形被分成的段数,其中,通过上述步骤的预定次数的迭代,由累加的修正采样形成新波形的周期。 
根据本发明的第二方面,一种由存储在一个或多个存储表中的至少一个原型波形的一个或多个连续段生成一个或多个预定波形的方法,包括下面采样处理步骤的迭代:用至少一个地址指针加载第一寄存器;移位第一寄存器预定数的位以提供表地址;在该表地址上读取存储的原型波形的至少一个采样;提供具有预定行数和预定列数的预定段修正矩阵表,其中所述预定行数等于需要生成的波形数,所述预定列数等于原型波形被分成的段数;通过第一寄存器提供的地址,选择预定段修正矩阵表的列;用至少一个行选择地址加载第二寄存器;通过第二寄存器提供的地址,选择预定段修正矩阵表的行;基于在所选行和列的预定段修正矩阵表的内容,选择预定逻辑;根据预定逻辑(-1,0,1)修正采样;以及累加修正的采样,其中,通过上述步骤的预定次迭代,由累加的修正采样形成新波形的周期。 
根据本发明的第三方面,一种利用存储在一个或多个存储表中的至少一个原型波形的一个或多个连续段的波形生成系统,该波形生成系统包括:至少一个修正逻辑模块,用于根据预定的逻辑集合修正原型波形的至少一个采样;至少一个段修正矩阵表,用于从预定逻辑集合中选择逻辑操作,以修正采样,并累计修正的采样,其中,所述段修正矩阵表具有预定行数和预定列数,所述预定行数等于需要生成的波形数,而所述预定列数等于原型波形被分成的段数;第一寄存器,用于存储段修正矩阵表的列选择地址;第二寄存器,用于存储段修正矩阵表的行选择地址,其中段修正矩阵表的所选列和行上的内容决定逻辑操作的选择;和至少一个移位模块,用于移位第一寄存器的内容预定位数以提供表地址,来从存储表中读取原型波形的预定采样。 
然而,当结合附图阅读时,通过下面对特定实施例的描述,本发明的结构和操作方法以及其它目的和优点将得到最好的理解。 
附图说明
构成本说明书一部分的附图被包含来描述本发明的特定方面。通过参照附图中所示的示例性(因而非限制性)实施例,本发明的更清晰的构思、以及配有本发明的系统的组件和操作将变得更易于理解,其中相似的附图标记(如果它们出现在不止一幅视图中)指代相同的组件。通过结合这里的描述,参照一个或多个这些附图,可以更好地理解本发明。应当注意,附图中所示的特征不一定是按比例绘出的。 
图1是示出使用自调制的调制器频率和调制载波频率的、常规FM合成音频发生器的框图。 
图2A示出示例性原型波形。 
图2B示出由图2A所示的原型波形产生的七个波形。 
图2C示出由图2A所示的原型波形产生的另外三个波形。 
图3是示出根据本发明一个实施例的、建议的波形生成系统的总的构思的框图。 
图4是示出根据本发明一个实施例的、建议的波形生成系统的实现的详细框图。 
图5A示出图4所示的建议的波形生成系统使用四段生成的一些示例性波形。 
图5B示出图4所示的建议的波形生成系统使用八段生成的一些示例性波形。 
图6是示出根据本发明另一实施例的、更复杂的波形生成系统的实现的详细框图。 
图7A~7C示出图6所示的建议的波形生成系统所生成的一些示例性波 形。 
图8是示出根据本发明一个实施例的、用软件实现的建议的波形生成方法的流程图。 
具体实施方式
下面将提供对可适用硬件和软件的波形生成方法和系统的详细描述,它可以用硬件实现波表查找算法,从而消除了由于更复杂的算法而导致的处理周期的增加。本发明可以同时减少存储器大小、存储器存取时间和处理器指令周期使用率。 
前面已经作为本发明的相关背景描述和讨论了图1。这里不需要进一步讨论。 
为了获得期望的波形,首先必需选择原型波形,然后适当地对其分段和进行幅度调整。然后使用经过分段和幅度调整的原型波形来生成期望的、并且常常更复杂的波形。原型波形的选择取决于应用。例如,在音频FM合成中,原型波形可以是正弦、锯齿、斜坡或指数波。可以使用任何波形作为原型波形,只要它具有可利用的对称性。 
图2A示出用2N个采样的周期指定的原型波形200,其中N是整数。然后它被分成2K个等距离的段(segment),每个段具有2N-K个采样。通过划分原型波形200,可以利用波形200的对称性,从而允许生成大量可能的输出波形。例如,假设N=11且K=2,则将有211或者2048个采样,以及22或4个段,其中每个段具有512个采样。 
可以使用存储表来存储原型波形的一个或多个连续段。用于存储该信息的存储表可以是RAM或ROM。然而,可以实施其它存储数据的方法(例如,触发器)来满足特定实现的设计准则。存储表具有至少等于2M个采样的长度,其中M满足关系N-K<=M<=N。例如,假设N=11,K=2且M=10,则对于波形的一个周期将有2048个采样和4个段,其中每个段具有512个采样。在这个示例中,存储器将包含210或1024个采样。 
图2B示出使用前述划分技术、由原型波形200生成的七个波形(a~g),其中K=1且M=N。这些波形仅仅是示例,并且由原型波形200还可以生成许多其它波形。 
使用与图2A相同的原型波形200,通过将原型波形200划分成更多段, 其数量由K定义,更增加其复杂度。此外,加倍或减半波表的步长,可以增加或降低波形的频率。这可以通过将步长值右移位或左移位(乘以或除以2)来完成。 
图2C示出可以通过将段的数量增加到8、以及将原型波形的段进行左移位或右移位生成的三种可能的波形。 
图3是示出根据本发明一个实施例的建议的波形生成系统300的总的构思的框图。波形生成系统300展示了下面三个硬件器件(数字信号处理(DSP)模块302、存储接口模块304和存储器件306)之间的关系。存储器件306被设计成包含原型波形(如图2A所示的原型波形200)的一个或多个连续段。DSP模块302可以通过存储接口模块304存取存储器件306内的波形。存储接口模块304生成为了从存储器件306中读取所需的地址和其它信号。存储接口模块304还被设计成根据由DSP模块302编程的存储接口模块304内的控制寄存器(未示出),来修改输出数据,并且该修改的数据被DSP模块302读取。 
要注意,该算法或方法的软件实现不仅需要周期的模算术运算,还需要用于实际存储的部分周期的模算术运算。还需要进行段的模算术运算来指示该段,并且需要定义新的表来对所有期望波形指定每段的极性。 
存储接口模块304被设计成根据波表相位步长(phase step)执行周期、部分周期和段模算术运算。存取大小被缩减的波形的表和段极性的表,来产生采样输出。用软件执行所有的操作会导致使用较多的周期,因此最好使用硬件实现的存储接口。 
在FM合成期间,进行调制器采样处理之后是载波采样处理。在采样处理期间,使用该方法的软件计算对每个采样的相位步长。该相位步长值和波形原型被送到存储接口硬件。在这里首先执行周期、部分周期和段模算术运算,然后施加段的极性修正(不变、求反、或者0),来产生输出采样值。 
图4是示出根据本发明一个实施例的、更详细的波形生成系统400的框图。波形生成系统400包括处理器302,在该示例中它是与数据存储模块306相接的一DSP,数据存储模块306可以包括RAM、ROM或者这两者。处理器302还与存储接口模块304相接,后者包括移位逻辑器件408、多路器410、段修正矩阵表412、修正逻辑414、以及两组寄存器416和418。寄存器组416包括TableModCfgReg[0]寄存器和TableModCfgReg[1]寄存器,而寄存器组418 包括TableIndexReg[0]寄存器和TableIndexReg[1]寄存器。本实施例还实现波形波表存储模块420,它包括RAM和/或ROM,用于存储构成原型波形的部分周期(例如,1/2周期)的2M个采样。处理器302被设计成具有对数据存储模块404的直接存取,而波形波表存储模块420内的数据只能通过存储接口304存取。 
在波形生成的开始,处理器302向寄存器组416内的寄存器TableModCfgReg[0]和TableModCfgReg[1]进行写入。这些寄存器416可以包含在整个波形的处理和生成中需要的信息,如用于选择一行的段修正矩阵表412的指针。当执行调制器采样处理时使用TableModCfgReg[0]寄存器。当执行载波采样处理时使用TableModCfgReg[1]寄存器。段修正矩阵表412包含Y行(Y是整数),每个要求的波形一行,段修正矩阵表412并且包含2K=X列(X是整数),原型波形的每个段是一列。例如,如果段修正矩阵表412支持6个波形,并且原型波形被分成4个段(四分部),则Y等于6,并且X等于4。因此对于这个示例,段修正矩阵表412具有6×4的尺寸。TableIndexReg[0,1]418提供的信号Col_sel确定将选择段修正矩阵表412的哪一列。段修正矩阵表412的每列包含控制位,可以使用到它原型波形的相应段的修正逻辑414。 
每行矩阵包括2K个段乘法器,用于载波波形和再现调制器的完整周期。使用段修正矩阵表412的输出来修正读取的存储器输出数据。表1示出段修正矩阵表412的样本内容。当行和列被选择时,在所选行和列上的特定数字或键值将被选中并送到修正逻辑414。 
  01   01   11   11
  01   11   00   00
  01   00   01   00
  ...   ...   ...   ...
  01   01   01   01
表1 
修正逻辑414得到段修正矩阵表412的输出,并且根据所选键值修正数据。在一个预定键值集合示例中,可以使用2位的键值,如表2所示,其中 00表示0输出,01表示不改变,而11表示求反。要注意,可以使用其它选项和/或键值来满足具体实现的设计准则。 
  段修正矩阵表输出   修正逻辑输出
  00   0输出
  01   不变
  11   求反
表2 
处理器302计算波表步长索引,并且将该值写入寄存器组TableIndexReg[0,1]418中的寄存器之一。由于生成FM合成波形要求调制器采样处理后面跟着载波采样处理,因此当执行调制器采样处理时使用TableIndexReg[0]寄存器,而当执行载波采样处理时使用TableIndexReg[1]寄存器。处理器302每次采样都向寄存器组418中的每个寄存器写入一次。 
寄存器组TableIndexReg[0,1]418中的值可以被移位逻辑器件408移位,并且移位后的值成为用于读取波表存储器420的地址。从波表存储器420输出的数据可以被修正逻辑414修正,并且将修正后的数据值放在处理器302的输入数据总线上。 
对于移位逻辑器件408,SFT_RIGHT操作基2的移位以增加或减少波形的频率。对于SFT_RIGHT=0,原始波形的频率保持不变。对于SFT_RIGHT=1,频率加倍,而对于SFT_RIGHT=-1,频率减半。根据移位逻辑器件408提供的地址,读取操作从波表存储模块420中进行读取。 
处理器302的数据空间可以包括数据存储器404,用于支持与本发明无关的其它功能。处理器302具有对数据存储器404的直接存取。读取的数据通过多路器410进入处理器302的输入数据总线。当存在不止一个源可以将数据放在处理器302的输入数据总线时,需要多路器410。 
要注意,尽管数据存储模块404和波表存储模块420被描绘为两个逻辑存储模块,但它们也可以被合并成物理存储器的一个连续模块。在这种情况下,需要另外的逻辑(例如,图4中未示出的译码器和多路器),以便允许处理器302在需要时对数据存储器直接存取,或者在处理器生成FM合成波形时通过存储接口304进行存取。 
图5A示出图4所示的建议的波形生成系统使用四段生成的一些示例性波形。图5A(a)示出原型波形。图5A(b)示出载入图4中所示的波表存储器420中的缩减波形。图5A(c)示出特定的生成波形,其中虚椭圆线502内的数字是从段修正矩阵表412中提取的修正值,而垂直虚直线506标出段修正矩阵表412的列的变换。在随后的图中,除非另外标注,否则圈起的数字502和垂直虚直线506将具有相同的定义,因此将不再重复说明。除了图5A(c)到(h)中所示的段修正矩阵表内的修正值不同外,其SFT_RIGHT值也不同。表3表示用于生成各个波形(c)到(h)的SFT_RIGHT值。 
  FIG.5A   SFT_right
  (c)   0
  (d)   1
  (e)   0
  (f)   2
  (g)   -1
  (h)   -2
表3 
图5B示出图4所示的建议的波形生成系统使用八段生成的一些示例性波形。图5B(a)示出原型波形。图5B(b)示出载入图4中所示的波表存储器420中的缩减波形。图5B(c)~(h)示出使用段修正矩阵表412(图4)的不同修正值生成的波形,修正值在每个波形中标注出,并且在下面表4中显示不同的SFT_RIGHT值。 
  FIG.5B   SFT_right
  (c)   0
  (d)   1
  (e)   0
 
  (f)   2
  (g)   -1
表4 
图6是示出根据本发明另一实施例的、更复杂的波形生成系统600的实现的详细框图。除了对存储接口模块304进行了修改以外,波形生成系统600与图4的系统400相似,其中存储接口模块304使用了地址偏移之和以及幅度偏移之和。与图4的系统400相同,系统600仍使用处理器302、数据存储模块404和波表存储模块420。在存储接口模块304内,寄存器组416和418、移位逻辑器件408、多路器410和修正逻辑414仍以相同的方式实现。存储接口模块304可以包含幅度偏移之和。本实施例的实现包括触发器和XOR逻辑门的简单比较器626,来检测到新段的变换。对于每个段的变换,存储一值,其可以是前一段的最后值或者是预定偏移。根据段修正矩阵表612中的额外控制位,每个段变换的存储值可以被加到当前段的所有值的修正逻辑414的输出上。存储接口模块304可以包含地址偏移之和。段修正矩阵表612的每列除了其它控制位外,还可以包含偏移地址。本发明可以实现其它提供偏移地址的方式(例如,单独的查找表)来满足特定实现的设计准则。然后对于特定段的所有采样,所存储的偏移地址被加到来自移位逻辑器件408的计算出的地址上,并且在对波表存储模块420的存取中使用累加的地址。由于每个段乘法器包含额外的控制位和偏移地址,因此对该设计使用不同的段修正矩阵表612。表5示出包含M=10、N=11、K=2时的偏移地址和其它控制位的新段修正矩阵表612的样本内容。结果是用可利用的频谱特性生成更复杂的波形。图7A~7C中示出了这些复杂波形的一些示例。 
  图  段1   段2   段3   段4
  7A(c)  0000000000001   1111111111111   0000000000001   1111111111111
  7A(d)  0000000000001   1111111111111   01111111111101   0000000000011
  7A(e)  0111111111111   1111111111101   0111111111111   1111111111101
表5 
图7A示出图6所示的建议的波形生成系统所生成的一些示例性波形。在生成这些波形时使用了四个段。图7A(a)示出原型波形。图7A(b)示出载入波形生成系统600的波表存储器中的缩减波形。段修正矩阵表612和SFT_RIGHT以及执行波形生成时使用的偏移参数的值显示在图7A的各个波形后面。参数“Offset Sum”代表幅度偏移之和,而参数“Offset Addr”代表偏移地址。这些值和参数也在图7B和7C中显示在它们各自波形的后面,因此当讨论这些图时不再注解它们。 
图7B示出图6所示的建议的波形生成系统所生成的独特唯一的波形。在生成这些波形时也使用了四个段。图7B(a)示出原型波形。图7B(b)示出载入波形生成系统的波表存储器中的缩减波形。使用该设计,可以生成如图7B(c)所示的方波。 
图7C示出图6所示的建议的波形生成系统所生成的另两个波形。这里,在生成这些波形时使用了八个段。图7C(a)示出原型波形。图7C(b)示出载入波形生成系统的波表存储器中的缩减波形。图7C(c)和(d)是使用波形后面显示的值和参数生成的复杂波形。 
生成这样复杂的波形本来要求指令和数据的大量增加,然而,利用修改存储接口和添加几个逻辑门,并且可以保持相同的软件操作,以生成更复杂的波形并不增加处理器302的指令周期使用率。 
使用该方法,当原型波形被分成多个段时,可以产生具有较高复杂度的其它FM波形,可能可以提高乐器声音的复制。 
除了前面段落中所述之外,在不背离本发明宗旨和范围的前提下,对存储接口模块304的其它修改和各种改变也是可能的,以便生成FM合成波形或任何其它类型的波形。 
图8是示出根据本发明实施例的复杂波表查找算法的实现方法800的流程图。在步骤801中,DSP在采样处理前预先加载寄存器TableModCfgReg[0]和TableModCfgReg[1]的配置参数。这些寄存器是在调制器和载波采样处理期间使用的段极性修正矩阵的地址。该矩阵包括段乘法器,用于再现调制器处理和载波处理波形的周期。当在步骤804和806中执行调制器采样处理时,使用TableModCfgReg[0]寄存器。当在步骤808和810中执行载波采样处理时, 使用TableModCfgReg[1]寄存器。寄存器可以包含段修正矩阵表的行选择,选择要在整个调制器和载波采样处理中使用的波形波表。寄存器可以包含右移位操作的长度。 
在步骤802中,DSP每采样后便加载一次寄存器TableIndexReg[0,1]。这些寄存器确定可以选择段修正矩阵表的哪列(参照图4和6)。由于生成FM合成波形要求调制器采样处理后面跟着执行载波采样处理,因此当执行调制器采样处理时使用TableIndexReg[0]寄存器,而当执行载波采样处理时使用TableIndexReg[1]寄存器。 
由于原型波形每周期具有2N(例如,2048)个采样,因此对累加的波表索引执行模(2N-1)算术运算,以便在步骤804中进行调制器处理和步骤808中进行载波处理。该操作是处理器自动执行的,处理器将x位值写入到TableIndexRegX[N-1:0]寄存器(X=0或1)。对于N=11,模算术运算在0×7FF(或2047)的值上进行。 
下面描述步骤806或810的波形处理的细节。该寄存器TableIndexRegX[N-1:N-1-K]的‘N-1’到‘N-1-K’位决定波形的段。这些位用于寻址段修正矩阵的相应列,该列提供对该段的极性。例如,对于N=11和K=2,波表索引将在值0×7FF绕回,并且表6中定义了4段(2K=4): 
  段   COL_SEL   位地址
  段1  段2  段3  段4   00  01  10  11   0到0x1FF  0x200到0x3FF  0x400到0x5FF  0x600到0x7FF
表6 
在步骤806或810中,TableIndexRegX[N-1:0]寄存器被向右移位(SFT_RIGHT)其值所指出的长度(或len)。SFT_RIGHT操作实现两个功能:(1)执行部分周期模(2M-1)算术运算,和(2)调整原型波形频率。模(2M-1)算术运算起到这样的作用:使波表索引围着存储器中存储的部分波形周期的全部或一部分大小绕回。例如,对于N=11和M=10,只有全部周期(2N个采样)的1/2保存在存储器中。因此,len将为N-M,或者1。对于大于1的整 数值,每次移位起到加倍原型波形的频率的作用。对于len=1,原型波形的频率仍然相同,并且右移位操作只起到围着波形的1/2周期绕回的作用。对于len=2和3,原型波形将分别在频率上加倍和四倍。得到的值用作到所存储的波形波表的地址,以从中提取采样值。 
处理器从预定义的地址进行读取,根据计算出的地址从波表存储器中的读取。采样值被段修正矩阵值修正(乘以0、1或-1)以产生由处理器读取的最终采样值。 
在步骤812中,处理器检查是否达到了每个块的预定数量的采样,如果没有,则处理器将通过重新开始步骤802来进行另一回合的调制器处理和载波处理,否则,处理器将退出处理。 
要注意,本发明可以在码分多址(CDMA)芯片组的部件中使用。尽管本发明可以用于CDMA设计,但对于其它设计,也可以应用本发明来生成FM波形或任何其它类型的波形。 
上面的描述提供了许多不同实施例或者用于实现本发明不同特征的实施例。描述了组件和处理的特定实施例以便帮助明了本发明。这些当然仅仅是实施例,而非意图限制权利要求书所述的本发明。 
尽管这里将本发明说明和描述为在一个或多个特定示例中实现的,但它并不限于所示的细节,因为在不背离本发明宗旨的前提下、在权利要求书的等效范畴和范围内,可以对其进行各种修改和结构变化。因此,应当以与权利要求书所述的本发明范围一致的方式来广义地解释权利要求书。 

Claims (16)

1.一种由存储在存储表中的原型波形的一个或多个连续段生成波形的方法,该方法包括下面采样处理步骤的迭代:
在一地址上读取存储的原型波形的至少一个采样;
修正该采样;以及
将修正后的波形以时间顺序首尾相接地依次叠加在时间轴上,提供具有预定行数和预定列数的预定段修正矩阵表来修正该采样,且所述预定行数等于需要生成的波形数,而所述预定列数等于原型波形被分成的段数,
其中,通过上述步骤的多次迭代,由叠加的修正采样形成新波形的周期。
2.如权利要求1所述的方法,其中所述读取步骤还包括下面地址提供步骤的其中之一:
第一地址提供步骤,包括:
用至少一个第一地址指针加载第一寄存器;以及
移位所述第一寄存器以提供所述地址;
第二地址提供步骤,包括:
用至少一个第二地址指针加载第二寄存器;
移位所述第二寄存器来生成第二地址;以及
将第二地址与偏移地址相加来提供所述地址。
3.如权利要求2所示的方法,其中,偏移地址存储在预定的段修正矩阵表中。
4.如权利要求1所述的方法,其中所述修正步骤还包括:
基于在所选行和所选列指示的预定段修正矩阵表的内容,所述修正该采样的逻辑从下面选择:
不变;
求反;和
零输出。
5.如权利要求1所述的方法,还包括:
存储从当前采样读取得到的值;
检测对存储的原型波形的读取从一个段到另一个段的变换;以及
如果下一采样读取是对存储的原型波形的新的段,则将段变换的存储值加到当前采样读取得到的值的修正值上。
6.如权利要求1所述的方法,还包括对调制器波形的第一采样处理和后面跟着的对载波波形的第二采样处理的迭代,其中调制器波形和载波波形都是为了调频合成而形成的。
7.一种由存储在存储表中的原型波形的一个或多个连续段生成波形的方法,该方法包括下面采样处理步骤的迭代:
用至少一个地址指针加载第一寄存器;
移位第一寄存器以提供表地址;
在该表地址上读取存储的原型波形的至少一个采样;
提供具有预定行数和预定列数的预定段修正矩阵表,其中所述预定行数等于需要生成的波形数,而所述预定列数等于原型波形被分成的段数;
通过第一寄存器提供的地址,选择预定段修正矩阵表的列;
用至少一个行选择地址加载第二寄存器;
通过第二寄存器提供的地址,选择预定段修正矩阵表的行;
基于在所选行和列的预定段修正矩阵表的内容,选择预定逻辑;
修正该采样;以及
将修正后的波形以时间顺序首尾相接地依次叠加在时间轴上,
其中,通过上述步骤的多次迭代,由叠加的修正采样形成新波形的周期。
8.如权利要求7所述的方法,其中,所述修正该采样的逻辑从下面选择:
不变;
求反;和
零输出。
9.如权利要求7所述的方法,还包括:
存储从当前采样读取得到的值;
检测对存储的原型波形的读取从一个段到另一个段的变换;以及
如果下一采样读取是对存储的原型波形的新的段,则将段变换的存储值加到当前采样读取得到的值的修正值上。
10.如权利要求7所述的方法,还包括对调制器波形的第一采样处理和后面跟着的对载波波形的第二采样处理的迭代,其中调制器波形和载波波形都是为了调频合成而形成的。
11.一种利用存储在存储表中的原型波形的一个或多个连续段的波形生成系统,该波形生成系统包括:
逻辑模块,用于根据预定的逻辑集合修正原型波形的至少一个采样;
段修正矩阵表,用于从预定逻辑集合中选择逻辑操作,以修正采样,并将修正后的波形以时间顺序首尾相接地依次叠加在时间轴上,其中,所述段修正矩阵表具有预定行数和预定列数,所述预定行数等于需要生成的波形数,而所述预定列数等于原型波形被分成的段数;
第一寄存器,用于存储段修正矩阵表的列选择地址;
第二寄存器,用于存储段修正矩阵表的行选择地址,其中段修正矩阵表的所选列和行上的内容决定逻辑操作的选择;和
移位模块,用于移位第一寄存器的内容以提供表地址,来从存储表中读取原型波形的采样。
12.如权利要求11所述的波形生成系统,还包括连接在移位模块输出端与存储表输入端之间的累加器,被配置成将第一寄存器移位后的内容与预定偏移地址相加,以提供表地址。
13.如权利要求12所述的波形生成系统,其中,所述预定偏移地址存储在段修正矩阵表中。
14.如权利要求11所述的波形生成系统,还包括数字信号处理器,用于将地址信息写入第一和第二寄存器中,并且用于读取原型波形的修正后的采样。
15.如权利要求14所述的波形生成系统,其中,数字信号处理器通过一个或多个多路器从存储表直接读取原型波形的预定采样,而不经任何修正。
16.如权利要求11所述的波形生成系统,其中,从下面选择预定逻辑:
不变;
求反;和
零输出。
CN200610142006.8A 2005-10-04 2006-10-08 调频合成的波形生成 Expired - Fee Related CN1953049B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72334305P 2005-10-04 2005-10-04
US60/723,343 2005-10-04

Publications (2)

Publication Number Publication Date
CN1953049A CN1953049A (zh) 2007-04-25
CN1953049B true CN1953049B (zh) 2014-08-20

Family

ID=38059349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610142006.8A Expired - Fee Related CN1953049B (zh) 2005-10-04 2006-10-08 调频合成的波形生成

Country Status (2)

Country Link
US (1) US7470849B2 (zh)
CN (1) CN1953049B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI222620B (en) * 2003-06-02 2004-10-21 Sunplus Technology Co Ltd Audio signal synthesizing method and system to reduce loading of CPU
US7847177B2 (en) * 2008-07-24 2010-12-07 Freescale Semiconductor, Inc. Digital complex tone generator and corresponding methods
CN105869614B (zh) * 2016-03-29 2019-07-19 北京精奇互动科技有限公司 音频文件导出方法和装置
CN111341290A (zh) * 2020-02-28 2020-06-26 腾讯音乐娱乐科技(深圳)有限公司 确定音频的波形的方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616546A (en) * 1981-10-15 1986-10-14 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument forming tones by wave computation
US4813326A (en) * 1984-07-16 1989-03-21 Yamaha Corporation Method and apparatus for synthesizing music tones with high harmonic content
CN1519815A (zh) * 2003-01-30 2004-08-11 雅马哈株式会社 声源装置和语音合成装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4440058A (en) * 1982-04-19 1984-04-03 Kimball International, Inc. Digital tone generation system with slot weighting of fixed width window functions
US4810977A (en) * 1987-12-22 1989-03-07 Hewlett-Packard Company Frequency modulation in phase-locked loops
KR100313349B1 (ko) * 1993-07-10 2002-02-28 데이비드 지. 훌션 보조 펄스를 이용한 다중 어드레싱
US5541354A (en) * 1994-06-30 1996-07-30 International Business Machines Corporation Micromanipulation of waveforms in a sampling music synthesizer
US5619535A (en) * 1994-07-27 1997-04-08 Alvarez, Jr.; Cesar E. Digital frequency synthesizer
US6438422B1 (en) * 1998-10-28 2002-08-20 Medtronic, Inc. Power dissipation reduction in medical devices using adiabatic logic
US6373316B1 (en) * 2000-01-18 2002-04-16 International Business Machines Corporation Digital cosine and sine multiplication circuits
JP4294204B2 (ja) * 2000-06-29 2009-07-08 ローランド株式会社 波形再生装置
US6462679B1 (en) * 2000-07-19 2002-10-08 Vdv Media Technologies, Inc. Method and apparatus for modulating a signal
US6983024B2 (en) * 2003-03-18 2006-01-03 Qualcomm Inc. Quadra-polar modulator
WO2004095731A1 (ja) * 2003-04-21 2004-11-04 Sanyo Electric Co., Ltd. 受信装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616546A (en) * 1981-10-15 1986-10-14 Nippon Gakki Seizo Kabushiki Kaisha Electronic musical instrument forming tones by wave computation
US4813326A (en) * 1984-07-16 1989-03-21 Yamaha Corporation Method and apparatus for synthesizing music tones with high harmonic content
CN1519815A (zh) * 2003-01-30 2004-08-11 雅马哈株式会社 声源装置和语音合成装置

Also Published As

Publication number Publication date
US20070079689A1 (en) 2007-04-12
US7470849B2 (en) 2008-12-30
CN1953049A (zh) 2007-04-25

Similar Documents

Publication Publication Date Title
US4953437A (en) Method and apparatus for digitally generating musical notes
CN1953049B (zh) 调频合成的波形生成
JPS60258594A (ja) 音楽的音調発生装置
EP0013490A1 (en) An output processing system for a digital electronic musical instrument
US4108036A (en) Method of and apparatus for electronically generating musical tones and the like
CN101159134A (zh) 用于频率调制合成的波形产生
JPH04330496A (ja) 楽音信号処理装置
CN1039368C (zh) 具有算法可选择功能的电子乐器
JP2766662B2 (ja) 楽音発生装置の波形データ読み出し装置及び波形データ読み出し方法
JP2619242B2 (ja) 時変スペクトルを有する楽音を発生する電子楽器
JPH035593B2 (zh)
US4513651A (en) Generation of anharmonic overtones in a musical instrument by additive synthesis
KR100809783B1 (ko) 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기
USRE31648E (en) System for generating tone source waveshapes
US4178825A (en) Musical tone synthesizer for generating a marimba effect
JP4070347B2 (ja) 楽音信号発生装置
JPH08211879A (ja) 音響シミュレーション用システム、装置並びに方法
US4338844A (en) Tone source circuit for electronic musical instruments
US4649787A (en) Ensemble tone generation in a musical instrument
JP2576614B2 (ja) 処理装置
JPS6175393A (ja) 複音シンセサイザにおける拡張高調波装置
JPS585798A (ja) 電子楽器のビブラート制御装置
JPH0583917B2 (zh)
JP3371643B2 (ja) 信号処理装置
JPS5846036B2 (ja) 電子楽器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: KY WIRE ELECTRIC CO., LTD.

Free format text: FORMER OWNER: WEISHENG ELECTRONIC CO. LTD.

Effective date: 20121026

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20121026

Address after: The Cayman Islands, British West Indies

Applicant after: Ky Wire Electric Co., Ltd.

Address before: Taiwan County, Taipei, China

Applicant before: Weisheng Electronic Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160803

Address after: American California

Patentee after: Intel Corporation

Address before: The Cayman Islands, British West Indies

Patentee before: Ky Wire Electric Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140820

Termination date: 20171008