專(zhuān)利名稱(chēng):用于產(chǎn)生三角波的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電子裝置,且特定來(lái)說(shuō),涉及可產(chǎn)生三角波的電子裝置。
技術(shù)背景樂(lè)器數(shù)字接口 (MIDI)是用于產(chǎn)生、傳送及/或回放例如音樂(lè)、話(huà)音、音調(diào)、警報(bào) 及其類(lèi)似物的音頻聲音的格式。支持MIDI格式的裝置可存儲(chǔ)可用以產(chǎn)生各種"語(yǔ)音" 的音頻信息的集合。每一語(yǔ)音可對(duì)應(yīng)于特定聲音,例如由特定器具產(chǎn)生的音符。舉例來(lái) 說(shuō),第一語(yǔ)音可對(duì)應(yīng)于如由鋼琴演奏的中音C,第二語(yǔ)音可對(duì)應(yīng)于如由長(zhǎng)號(hào)演奏的中音 C,第三語(yǔ)音可對(duì)應(yīng)于如由長(zhǎng)號(hào)演奏的D并,等等。為了復(fù)制由各種器具演奏的聲音,兼 容MIDI的裝置可包括指定各種音頻特征(例如低頻振蕩器的特性、例如震音等效果及 可影響對(duì)不同聲音的感知的許多其它音頻特征)的語(yǔ)音信息的集合??山缍?、在MIDI 文件中輸送并由支持MIDI格式的裝置重現(xiàn)幾乎任何聲音。支持MIDI格式的裝置可在指示裝置應(yīng)開(kāi)始產(chǎn)生音符的事件發(fā)生時(shí)產(chǎn)生音符(或其 它聲音)。類(lèi)似地,裝置在指示裝置應(yīng)停止產(chǎn)生音符的事件發(fā)生時(shí)停止產(chǎn)生音符。可通 過(guò)指定指示特定語(yǔ)音何時(shí)應(yīng)開(kāi)始及停止的事件而根據(jù)MIDI格式對(duì)整個(gè)音樂(lè)作品進(jìn)行編 碼。以此方式,可以根據(jù)MIDI格式的緊湊文件格式來(lái)存儲(chǔ)及傳輸音樂(lè)作品。多種裝置中支持MIDI。舉例來(lái)說(shuō),例如無(wú)線電電話(huà)等無(wú)線通信裝置可支持用于可 下載的鈴聲或其它音頻輸出的MIDI文件。例如蘋(píng)果計(jì)算機(jī)有限公司(Apple Computer, Inc)售賣(mài)的"iPod"裝置及微軟公司(Microsoft Corp)售賣(mài)的"Zune"裝置等數(shù)字音 樂(lè)播放器也可支持MIDI文件格式。支持MIDI格式的其它裝置可包括多種音樂(lè)合成器, 例如鍵盤(pán)、音序器、語(yǔ)音編碼器(音碼器)和節(jié)奏器。另外,廣泛多種裝置還可支持9MIDI文件或音軌的播放,所述裝置包括無(wú)線移動(dòng)裝置、直接雙向通信裝置(有時(shí)稱(chēng)為 對(duì)講機(jī))、網(wǎng)絡(luò)電話(huà)、個(gè)人計(jì)算機(jī)、桌上型及膝上型計(jì)算機(jī)、工作站、衛(wèi)星無(wú)線電裝置、 內(nèi)部通信裝置、無(wú)線電廣播裝置、手持型游戲裝置、安裝在裝置中的電路板、信息查詢(xún) 站(information kiosk)、視頻游戲控制臺(tái)、各種用于兒童的計(jì)算機(jī)化玩具、用于汽車(chē)、 船只及飛機(jī)中的機(jī)載計(jì)算機(jī)及多種其它裝置。業(yè)內(nèi)還已開(kāi)發(fā)若干其它類(lèi)型的音頻格式、標(biāo)準(zhǔn)和技術(shù)。僅舉幾個(gè)例子,其它實(shí)例包 括由運(yùn)動(dòng)圖片專(zhuān)家組(MPEG)界定的標(biāo)準(zhǔn)、窗口媒體音頻(WMA)標(biāo)準(zhǔn)、杜比實(shí)驗(yàn)室 (Dolby Laboratories, Inc.)的標(biāo)準(zhǔn)和由THX, ltd.開(kāi)發(fā)的質(zhì)量保證技術(shù)。此外,許多音頻 編碼標(biāo)準(zhǔn)和技術(shù)相繼出現(xiàn),包括數(shù)字MP3標(biāo)準(zhǔn)和MP3標(biāo)準(zhǔn)的變型,例如用于"iPod" 裝置中的高級(jí)音頻編碼(AAC)標(biāo)準(zhǔn)。各種視頻編碼標(biāo)準(zhǔn)還可使用音頻編碼技術(shù),(例 如)以編碼包括音頻和視頻信息的多媒體幀。MIDI格式的一個(gè)重要特征為其存儲(chǔ)關(guān)于特定音符的發(fā)音的數(shù)據(jù)的能力。發(fā)音數(shù)據(jù) 包括關(guān)于聲音效果的信息,例如顫音或震音,其可幫助仿真聲學(xué)器具的聲音。利用MIDI 的裝置可使用低頻振蕩器與包絡(luò)產(chǎn)生器(envelope generator)的組合實(shí)施這些效果。通 常,低頻振蕩器(LFO)可用于產(chǎn)生周期性低頻率波以調(diào)制特定音符的音高、振幅和頻 率。為了產(chǎn)生在可接受容許范圍內(nèi)操作的低頻波,需要大量和復(fù)雜的計(jì)算,其可需要存 儲(chǔ)若干參數(shù)且利用顯著數(shù)量的芯片區(qū)域。發(fā)明內(nèi)容一般來(lái)說(shuō),本發(fā)明描述用于產(chǎn)生三角波的技術(shù)。盡管所述技術(shù)可用于其它音頻格式、 技術(shù)或標(biāo)準(zhǔn),但是所述技術(shù)對(duì)于遵照樂(lè)器數(shù)字接口 (MIDI)格式的音頻文件的播放可尤 其有用。在一個(gè)方面中,本發(fā)明提供一種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的 一組數(shù)據(jù)點(diǎn)的方法。所述方法包括基于所述三角波的所述所要頻率和所述所要增益確定 增量值的步驟(a)。所述方法進(jìn)一步包括將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù) 據(jù)點(diǎn)的步驟(b),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組。所述方 法進(jìn)一步包括反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)的步驟。在另一方面中,本發(fā)明提供一種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的 一組數(shù)據(jù)點(diǎn)的裝置。所述裝置包括電路,所述電路基于所述三角波的所述所要頻率和所 述所要增益確定增量值。所述裝置進(jìn)一步包括加法器,所述加法器將所述增量值相加到 當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組,其中所述電路反復(fù)確定增量值且所述加法器反復(fù)地將所述增量值相加到連續(xù)數(shù)據(jù) 點(diǎn)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。在另一方面中,本發(fā)明提供一種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的 一組數(shù)據(jù)點(diǎn)的裝置。所述裝置包括用于基于所述三角波的所述所要頻率和所述所要增益 確定增量值的第一裝置。所述裝置進(jìn)一步包括用于將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn) 生下一數(shù)據(jù)點(diǎn)的第二裝置,所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子 組,其中所述第一裝置反復(fù)確定增量值且所述第二裝置反復(fù)地將所述增量值相加到連續(xù) 數(shù)據(jù)點(diǎn)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)??梢杂布④浖⒐碳蚱淙魏谓M合實(shí)施本發(fā)明中所描述的技術(shù)的各種方面。如果 以軟件實(shí)施,則可在一個(gè)或一個(gè)以上處理器中執(zhí)行軟件,所述處理器例如為微處理器、 專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)或數(shù)字信號(hào)處理器(DSP)。執(zhí)行 所述技術(shù)的軟件最初可存儲(chǔ)于計(jì)算機(jī)可讀媒體中且加載并在處理器中執(zhí)行。因此,本發(fā)明還涵蓋一種包含指令的計(jì)算機(jī)可讀媒體,所述指令在由一個(gè)或一個(gè)以 上處理器執(zhí)行時(shí),致使所述處理器產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù) 據(jù)點(diǎn),其中所述指令致使所述一個(gè)或一個(gè)以上處理器(a)基于所述三角波的所述所要 頻率和所述所要增益確定增量值;(b)將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù) 點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;且反復(fù)執(zhí)行(a)和 (b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。在某些情況下,計(jì)算機(jī)可讀媒體可形成計(jì)算機(jī)程序產(chǎn)品的部分,計(jì)算機(jī)程序產(chǎn)品可 出售給制造商和/或用于視頻編碼裝置中。計(jì)算機(jī)程序產(chǎn)品可包括計(jì)算機(jī)可讀媒體,且在 某些情況下,還可包括封裝材料。在其它情況下,本發(fā)明可針對(duì)一種電路,例如經(jīng)配置或適于執(zhí)行本文所描述的技術(shù) 中的一者或一者以上的集成電路、芯片組、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列 (FPGA)、邏輯或其各種組合。因此,本發(fā)明還涵蓋一種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù) 據(jù)點(diǎn)的電路,其中所述電路適于(a)基于所述三角波的所述所要頻率和所述所要增益 確定增量值;(b)將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn) 和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;且反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述 三角波的所述組數(shù)據(jù)點(diǎn)。在附圖和以下描述中陳述本發(fā)明的一個(gè)或一個(gè)以上實(shí)施例的細(xì)節(jié)。根據(jù)所述描述和 圖式且根據(jù)權(quán)利要求書(shū)將明白本發(fā)明的其它特征、目的和優(yōu)點(diǎn)。1
圖1為說(shuō)明可實(shí)施根據(jù)本發(fā)明的用于處理音頻文件的技術(shù)的示范性音頻裝置的框圖。圖2為根據(jù)本發(fā)明的用于處理合成參數(shù)的硬件單元的一個(gè)實(shí)例的框圖。圖3為說(shuō)明根據(jù)本發(fā)明的用于產(chǎn)生形成具有所要增益和頻率的三角波的一組數(shù)據(jù)點(diǎn) 的示范性三角波產(chǎn)生器的示意圖。圖4為說(shuō)明根據(jù)本發(fā)明的用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù) 據(jù)點(diǎn)的示范性方法的流程圖。圖5為說(shuō)明由分別在圖3和圖4中展示的三角波產(chǎn)生器和方法產(chǎn)生的示范性三角波 的一個(gè)周期的曲線圖。
具體實(shí)施方式
本發(fā)明描述用于產(chǎn)生三角波的技術(shù)。盡管所述技術(shù)可與利用三角波的其它音頻格 式、技術(shù)或標(biāo)準(zhǔn)一起使用,但所述技術(shù)對(duì)于遵照樂(lè)器數(shù)字接口 (MIDI)格式的音頻文件 的回放可尤為有用。如本文所使用,術(shù)語(yǔ)MIDI文件指含有符合MIDI格式的至少一個(gè) 音軌的任何音頻數(shù)據(jù)或文件。可包括MIDI音軌的各種文件格式的實(shí)例包括(例如)CMX、 SMAF、 XMF、 SP-MIDI。 CMX代表由高通有限公司(Qualcomm Inc.)開(kāi)發(fā)的緊湊媒體 擴(kuò)展。SMAF代表由雅馬哈公司(Yamaha Corp.)開(kāi)發(fā)的合成音樂(lè)移動(dòng)應(yīng)用格式。XMF 代表可擴(kuò)展音樂(lè)格式且SP-MIDI代表可縮放多音MIDI??稍诳砂ㄒ纛l信息或音頻-視頻(多媒體)信息的音頻幀內(nèi)在裝置之間輸送MIDI 文件或其它音頻文件。音頻幀可包含單一音頻文件、多個(gè)音頻文件或(可能) 一個(gè)或一 個(gè)以上音頻文件和例如經(jīng)編碼視頻幀的其它信息。如本文所使用,可將音頻幀內(nèi)的任何 音頻數(shù)據(jù)稱(chēng)為音頻文件,其包括串流音頻數(shù)據(jù)或上文列出的一個(gè)或一個(gè)以上音頻文件格 式。同時(shí)操作的多個(gè)硬件元件可用于服務(wù)從一個(gè)或一個(gè)以上音頻文件(例如MIDI文件) 產(chǎn)生的各種合成參數(shù)。通用處理器可執(zhí)行用以剖析MIDI文件且調(diào)度與MIDI文件相關(guān)聯(lián)的MIDI事件的軟 件。如由MIDI文件中的時(shí)序參數(shù)所指定,經(jīng)調(diào)度的事件可接著由DSP以同步方式服務(wù)。 通用處理器以時(shí)間同步方式將MIDI事件分派到DSP,且DSP根據(jù)時(shí)間同步調(diào)度處理 MIDI事件以產(chǎn)生MIDI合成參數(shù)。DSP接著調(diào)度合成參數(shù)在硬件中的處理,且硬件單元可基于合成參數(shù)產(chǎn)生音頻樣本。
通用處理器可服務(wù)第一幀(幀N)的MIDI文件,且在第一幀(幀N)由DSP服務(wù) 時(shí),第二幀(幀N+1)可同時(shí)由通用處理器服務(wù)。此外,在第一幀(幀N)由硬件服務(wù) 時(shí),第二幀(幀N+1)同時(shí)由DSP服務(wù),同時(shí)第三幀(幀N+2)由通用處理器服務(wù)。以 此方式,MIDI文件處理被分離成可同時(shí)處理的管線化級(jí),此可改進(jìn)效率且可能減少給 定級(jí)(例如與DSP相關(guān)聯(lián)的級(jí))所需的計(jì)算資源。每一幀經(jīng)過(guò)各種管線化級(jí),從通用處 理器到DSP,且接著到硬件。在某些情況下,由硬件產(chǎn)生的音頻樣本可(例如)經(jīng)由中 斷驅(qū)動(dòng)技術(shù)遞送回到DSP,使得可執(zhí)行任何后處理??山又鴮⒁纛l樣本轉(zhuǎn)換成模擬信號(hào), 其可用于驅(qū)動(dòng)揚(yáng)聲器且將音頻聲音輸出到用戶(hù)。
或者,可將與MIDI文件處理相關(guān)聯(lián)的任務(wù)委派于DSP和專(zhuān)用硬件的兩個(gè)不同線程 之間。即,與通用處理器相關(guān)聯(lián)的任務(wù)(如本文描述)可替代地由多線程DSP的第一線 程執(zhí)行。在此情況下,DSP的第一線程執(zhí)行調(diào)度,DSP的第二線程產(chǎn)生合成參數(shù),且硬 件單元基于合成參數(shù)產(chǎn)生音頻樣本。此替代實(shí)例還可以類(lèi)似于使用用于調(diào)度的通用處理 器的實(shí)例的方式被管線化。
圖1為說(shuō)明示范性音頻裝置4的框圖。作為一實(shí)例,音頻裝置4可包含能夠處理 MIDI文件(例如,包括至少一個(gè)MIDI音軌的文件)的任何裝置。而且,然而,本發(fā)明 的技術(shù)可發(fā)現(xiàn)具有其它音頻格式、技術(shù)或標(biāo)準(zhǔn)的應(yīng)用。音頻裝置4的實(shí)例包括無(wú)線通信 裝置,例如無(wú)線電電話(huà)、網(wǎng)絡(luò)電話(huà)、數(shù)字音樂(lè)播放器、音樂(lè)合成器、無(wú)線移動(dòng)裝置、直 接雙向通信裝置(有時(shí)稱(chēng)為對(duì)講機(jī))、個(gè)人計(jì)算機(jī)、桌上型或膝上型計(jì)算機(jī)、工作站、 衛(wèi)星無(wú)線電裝置、內(nèi)部通信裝置、無(wú)線電廣播裝置、手持型游戲裝置、安裝于裝置中的 音頻電路板、公共査詢(xún)站裝置、視頻游戲控制臺(tái)、各種用于兒童的計(jì)算機(jī)化玩具、用于 汽車(chē)、船只或飛機(jī)中的機(jī)載計(jì)算機(jī),或處理并輸出音頻的多種其它裝置。
提供圖1中所說(shuō)明的各種組件來(lái)闡釋本發(fā)明的方面。然而,在一些實(shí)施方案中,其 它組件可能存在,且可能不包括所說(shuō)明的組件中的一些。舉例來(lái)說(shuō),如果音頻裝置4為 無(wú)線電電話(huà),則可包括天線、發(fā)射器、接收器和調(diào)制解調(diào)器(調(diào)制器-解調(diào)制器)以促進(jìn) 音頻文件的無(wú)線通信。
如圖l的實(shí)例中所說(shuō)明,音頻裝置4包括用以存儲(chǔ)音頻文件(例如MIDI文件)的 音頻存儲(chǔ)單元6。此外,MIDI文件一般指包括以MIDI格式編碼的至少一個(gè)音軌的任何 音頻文件。音頻存儲(chǔ)單元6可包含任何易失性或非易失性存儲(chǔ)器或存儲(chǔ)裝置。出于本發(fā) 明的目的,可將音頻存儲(chǔ)單元6視為將MIDI文件轉(zhuǎn)發(fā)到處理器8的存儲(chǔ)單元,或者處 理器8從音頻存儲(chǔ)單元6檢索MIDI文件,以使得所述文件得以處理。音頻存儲(chǔ)單元6還可為與數(shù)字音樂(lè)播放器相關(guān)聯(lián)的存儲(chǔ)單元或與從另一裝置傳送的信息相關(guān)聯(lián)的臨時(shí) 存儲(chǔ)單元。舉例來(lái)說(shuō),音頻存儲(chǔ)單元6可緩沖從服務(wù)器或廣播源獲得的串流音頻。音頻 存儲(chǔ)單元6可為經(jīng)由數(shù)據(jù)總線或其它連接耦合到處理器8的單獨(dú)的易失性存儲(chǔ)器芯片或 非易失性存儲(chǔ)裝置??砂ù鎯?chǔ)器或存儲(chǔ)裝置控制器(未圖示)以促進(jìn)信息從音頻存儲(chǔ) 單元6的傳送。
裝置4可實(shí)施分離軟件、硬件與固件之間的音頻處理任務(wù)的架構(gòu)。如圖l所示,裝 置4包括處理器8、數(shù)字信號(hào)處理器(DSP) 12和音頻硬件單元14。這些組件中的每一 者可(例如)直接或經(jīng)由總線耦合到局部存儲(chǔ)器單元10。處理器8可包含執(zhí)行用以剖析 音頻文件且調(diào)度與音頻文件相關(guān)聯(lián)的音頻事件的軟件的通用處理器。如由音頻文件中的 時(shí)序參數(shù)所指定,可以時(shí)間同步方式將經(jīng)調(diào)度的事件分派到DSP 12,且借此由DSP12 以同步方式服務(wù)。DSP12可包含根據(jù)由通用處理器8產(chǎn)生的時(shí)間同步調(diào)度來(lái)處理音頻事 件以產(chǎn)生合成參數(shù)的固件。DSP 12還可調(diào)度音頻硬件單元14對(duì)合成參數(shù)的后續(xù)處理。
一旦DSP 12己產(chǎn)生合成參數(shù),就可將這些合成參數(shù)存儲(chǔ)于存儲(chǔ)器單元10中。存儲(chǔ) 器單元IO可包含易失性或非易失性存儲(chǔ)器。為了支持快速數(shù)據(jù)傳送,存儲(chǔ)器單元10可 包含隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ) 器(SDRAM)、快閃存儲(chǔ)器或其類(lèi)似物。存儲(chǔ)于存儲(chǔ)器單元10中的合成參數(shù)可由音頻 硬件單元14服務(wù)以產(chǎn)生音頻樣本。
音頻硬件單元14可包括用于服務(wù)合成參數(shù)的若干處理元件。處理元件可包含支持 例如乘法、加法和累加等運(yùn)算的算術(shù)邏輯單元(ALU)。另外,每一處理元件還可支持 用于加載和/或存儲(chǔ)到其它硬件組件的硬件特定操作。音頻硬件單元14中的其它硬件組 件(例如)可包含低頻振蕩器(LFO)、波獲取單元(WFU)以及求和緩沖器(SB)。因 此,音頻硬件單元14中的處理元件可支持并執(zhí)行用于與音頻處理中的這些其它硬件組 件相互作用且使用所述其它硬件組件的指令。根據(jù)本發(fā)明,處理元件可與低頻振蕩器相 互作用以便產(chǎn)生例如顫音或震音的特定發(fā)音的聲音效果。低頻振蕩器可響應(yīng)于由處理元 件提供到LFO的特定參數(shù)而提供周期性波形(例如三角波)。舉例來(lái)說(shuō),處理元件可在 去往低頻振蕩器的指令中指定三角波的所要增益和所要頻率。作為響應(yīng),LFO可提供對(duì) 應(yīng)于由處理元件請(qǐng)求的三角波的一系列數(shù)據(jù)點(diǎn)。下文參看圖2更詳細(xì)地提供音頻硬件單 元14的一個(gè)實(shí)例的額外細(xì)節(jié)。
在某些情況下,可將裝置4對(duì)音頻文件的處理管線化。舉例來(lái)說(shuō),處理器8、 DSP12 和音頻硬件單元14可關(guān)于連續(xù)音頻幀同時(shí)操作。每一音頻幀可對(duì)應(yīng)于一時(shí)間塊(例如, IO毫秒(ms)的時(shí)間間隔),其包括許多經(jīng)編碼音頻樣本。硬件單元14的數(shù)字輸出(例如)可每音頻幀包括480個(gè)數(shù)字音頻樣本,其可由數(shù)/模轉(zhuǎn)換器16轉(zhuǎn)換成模擬音頻信號(hào)。 許多事件可對(duì)應(yīng)于一個(gè)時(shí)間實(shí)例(instance of time),使得許多不同聲音或音符可根據(jù) MIDI格式或類(lèi)似音頻格式包括于一個(gè)時(shí)間實(shí)例中。當(dāng)然,委派給任何音頻幀的時(shí)間量 和在一個(gè)幀中所界定的音頻樣本的數(shù)目在不同實(shí)施方案中可變化。
在某些情況下,由音頻硬件單元14產(chǎn)生的音頻樣本(例如)經(jīng)由中斷驅(qū)動(dòng)技術(shù)被 遞送回到DSP12。在此情況下,DSP 12還可對(duì)音頻樣本執(zhí)行后處理技術(shù)。后處理可包 括可最終增強(qiáng)聲音輸出的濾波、縮放、音量調(diào)整或廣泛多種音頻后處理。數(shù)/模轉(zhuǎn)換器 (DAC) 16接著將音頻樣本轉(zhuǎn)換成模擬信號(hào),模擬信號(hào)可由驅(qū)動(dòng)電路18用來(lái)驅(qū)動(dòng)揚(yáng)聲器 19A和19B以用于將音頻聲音輸出到用戶(hù)。
局部存儲(chǔ)器IO可經(jīng)建構(gòu)以使得處理器8、 DSP 12和MIDI硬件14可存取執(zhí)行委派 給這些不同組件的各種任務(wù)所需的任何信息。在某些情況下,MIDI信息在局部存儲(chǔ)器 10中的存儲(chǔ)布局可經(jīng)布置以允許從不同組件8、 12和14進(jìn)行有效存取。而且,局部存 儲(chǔ)器IO用于存儲(chǔ)與一個(gè)或一個(gè)以上音頻文件相關(guān)聯(lián)的合成參數(shù)。 一旦DSP12產(chǎn)生這些 合成參數(shù),其便可由硬件單元14處理以產(chǎn)生音頻樣本。由音頻硬件單元14產(chǎn)生的音頻 樣本可包含脈沖編碼調(diào)制(PCM)樣本,其為模擬信號(hào)的數(shù)字表示,其中以規(guī)則時(shí)間間 隔對(duì)模擬信號(hào)進(jìn)行取樣。在下文參看圖2更詳細(xì)地論述由音頻硬件單元14進(jìn)行的示范 性音頻產(chǎn)生的額外細(xì)節(jié)。
圖2為說(shuō)明可對(duì)應(yīng)于音頻裝置4的音頻硬件單元14的示范性音頻硬件單元20的框 圖。圖2所示的實(shí)施方案僅為示范性的,因?yàn)檫€可界定其它硬件實(shí)施方案以與本發(fā)明的 教示相一致。如圖2的實(shí)例中所說(shuō)明,音頻硬件單元20包括用以發(fā)送和接收數(shù)據(jù)的總 線接口 30。舉例來(lái)說(shuō),總線接口 30可包括AMBA高性能總線(AHB)主接口、 AHB 從屬接口和存儲(chǔ)器總線接口。 AMBA代表高級(jí)微處理器總線架構(gòu)?;蛘?,總線接口 30 可包括AXI總線接口或另一類(lèi)型的總線接口 。 AXI代表高級(jí)可擴(kuò)展接口 。
另外,音頻硬件單元20可包括協(xié)調(diào)模塊32。協(xié)調(diào)模塊32協(xié)調(diào)音頻硬件單元20內(nèi) 的數(shù)據(jù)流。當(dāng)音頻硬件單元20從DSP 12 (圖1)接收指令以開(kāi)始合成音頻樣本時(shí),協(xié) 調(diào)模塊32從存儲(chǔ)器10讀取音頻幀的合成參數(shù)(其由DSP 12 (圖1)產(chǎn)生)。這些合成 參數(shù)可用以重建音頻幀。對(duì)于MIDI格式,合成參數(shù)描述給定幀內(nèi)的一個(gè)或一個(gè)以上 MIDI語(yǔ)音的各種聲學(xué)特性。舉例來(lái)說(shuō),MIDI合成參數(shù)的集合可指定諧振水平、交混回 響、音量和/或可影響一個(gè)或一個(gè)以上語(yǔ)音的其它特征。
在協(xié)調(diào)模塊32的指導(dǎo)下,可從存儲(chǔ)器10 (圖1)將合成參數(shù)加載到與相應(yīng)處理元 件34A或34N相關(guān)聯(lián)的語(yǔ)音參數(shù)集合(VPS) RAM 46A或46N中。在DSP12(圖1)的指導(dǎo)下,從存儲(chǔ)器10將程序指令加載到與相應(yīng)處理元件34A或34N相關(guān)聯(lián)的程序 RAM單元44A或44N中。
加載到程序RAM單元44A或44N中的指令指令相關(guān)聯(lián)的處理元件34A或34N合 成VPS RAM單元46A或46N中的合成參數(shù)的列表中所指示的語(yǔ)音中的一者??赡艽嬖?任何數(shù)目的處理元件34A到34N (統(tǒng)稱(chēng)為"處理元件34"),且每一者可包含能夠執(zhí)行 數(shù)學(xué)運(yùn)算的一個(gè)或一個(gè)以上ALU以及用以讀取和寫(xiě)入數(shù)據(jù)的一個(gè)或一個(gè)以上單元。為 簡(jiǎn)單起見(jiàn)僅說(shuō)明兩個(gè)處理元件34A和34N,但硬件單元20中可包括更多處理元件。處 理元件34可以彼此并行的方式合成語(yǔ)音。具體來(lái)說(shuō),多個(gè)不同處理元件34并行工作以 處理不同合成參數(shù)。以此方式,音頻硬件單元20內(nèi)的多個(gè)處理元件34可加速且可能改 進(jìn)音頻樣本的產(chǎn)生。
當(dāng)協(xié)調(diào)模塊32指令處理元件34中的一者合成語(yǔ)音時(shí),相應(yīng)處理元件可執(zhí)行與合成 參數(shù)相關(guān)聯(lián)的一個(gè)或一個(gè)以上指令。而且,可將這些指令加載到程序RAM單元44A或 44N中。加載到程序RAM單元44A或44N中的指令致使處理元件34中的相應(yīng)者執(zhí)行 語(yǔ)音合成。舉例來(lái)說(shuō),處理元件34可向波形獲取單元(WFU) 36發(fā)送對(duì)合成參數(shù)中所 指定的波形的請(qǐng)求。處理元件34中的每一者可使用WFU36。如果兩個(gè)或兩個(gè)以上處理 元件34同時(shí)請(qǐng)求使用WFU 36,則可使用仲裁方案來(lái)解決任何沖突。
響應(yīng)于來(lái)自處理元件34中的一者的請(qǐng)求,WFU36向請(qǐng)求處理元件傳回一個(gè)或一個(gè) 以上波形樣本。然而,因?yàn)椴稍跇颖緝?nèi)相移(例如,高達(dá)一個(gè)波循環(huán)),所以WFU36 可傳回兩個(gè)樣本以使用內(nèi)插來(lái)補(bǔ)償相移。此外,因?yàn)榱Ⅲw聲信號(hào)可包括用于兩個(gè)立體聲 通道的兩個(gè)單獨(dú)的波,所以WFU 36可傳回用于不同通道的單獨(dú)樣本,(例如)從而導(dǎo) 致立體聲輸出的高達(dá)四個(gè)單獨(dú)樣本。
在WFU 36將音頻樣本傳回到處理元件34中的一者之后,相應(yīng)處理元件可基于合 成參數(shù)執(zhí)行額外程序指令。具體來(lái)說(shuō),指令致使處理元件34中的一者從音頻硬件單元 20中的低頻振蕩器(LFO) 38請(qǐng)求不對(duì)稱(chēng)三角形波。通過(guò)使WFU36傳回的波乘以LFO 38傳回的三角形波,相應(yīng)處理元件可操縱波的各種聲學(xué)特性以實(shí)現(xiàn)所要音頻效果。舉例 來(lái)說(shuō),使波乘以三角形波可導(dǎo)致聽(tīng)起來(lái)更像所要樂(lè)器的波。
基于合成參數(shù)執(zhí)行的其它指令可致使處理元件34中的相應(yīng)者使波形循環(huán)特定數(shù)目 次、調(diào)節(jié)波形的振幅、添加交混回響、添加顫音效果或造成其它效果。以此方式,處理 元件34可計(jì)算持續(xù)一個(gè)MIDI幀的語(yǔ)音的波形。最后,相應(yīng)處理元件可遇到退出指令。 當(dāng)處理元件34中的一者遇到退出指令時(shí),處理元件以信號(hào)向協(xié)調(diào)模塊32通知語(yǔ)音合成 的結(jié)束??稍诔绦蛑噶畹膱?zhí)行期間在另一存儲(chǔ)指令的指導(dǎo)下將經(jīng)計(jì)算的語(yǔ)音波形提供到求和緩沖器40。此致使求和緩沖器40存儲(chǔ)經(jīng)計(jì)算的語(yǔ)音波形。
當(dāng)求和緩沖器40從處理元件34中的一者接收到經(jīng)計(jì)算的波時(shí),求和緩沖器40將 經(jīng)計(jì)算的波添加到與MIDI幀的整體波相關(guān)聯(lián)的適當(dāng)時(shí)間實(shí)例。因此,求和緩沖器40 組合多個(gè)處理元件34的輸出。舉例來(lái)說(shuō),求和緩沖器40最初可存儲(chǔ)平頂波(即,所有 數(shù)字樣本均為零的波)。當(dāng)求和緩沖器40從處理元件34中的一者接收到例如經(jīng)計(jì)算的 波等音頻信息時(shí),求和緩沖器40可將經(jīng)計(jì)算的波的每一數(shù)字樣本添加到存儲(chǔ)于求和緩 沖器40中的波的相應(yīng)樣本。以此方式,求和緩沖器40累加并存儲(chǔ)完整音頻幀的波的整 體數(shù)字表示。
求和緩沖器40本質(zhì)上對(duì)來(lái)自處理元件34中的不同者的不同音頻信息進(jìn)行求和。不 同音頻信息指示與不同的所產(chǎn)生的語(yǔ)音相關(guān)聯(lián)的不同時(shí)間實(shí)例。以此方式,求和緩沖器 40產(chǎn)生表示給定音頻幀內(nèi)的整體音頻編輯的音頻樣本。
處理元件34可彼此并行但獨(dú)立地操作。g卩,處理元件34中的每一者可處理一合成 參數(shù),且一旦將針對(duì)第一合成參數(shù)產(chǎn)生的音頻信息添加到求和緩沖器40,其便接著移動(dòng) 到下一合成參數(shù)。因此,處理元件34中的每一者獨(dú)立于其它處理元件34執(zhí)行其針對(duì)一 個(gè)合成參數(shù)的處理任務(wù),且當(dāng)針對(duì)合成參數(shù)的處理完成時(shí),相應(yīng)處理元件便立即可用于 另一合成參數(shù)的后續(xù)處理。
最后,協(xié)調(diào)模塊32可確定處理元件34已完成合成當(dāng)前音頻幀所需要的所有語(yǔ)音且 己將那些語(yǔ)音提供到求和緩沖器40。此時(shí),求和緩沖器40含有指示當(dāng)前音頻幀的完整 波的數(shù)字樣本。在協(xié)調(diào)模塊32作出此確定時(shí),協(xié)調(diào)模塊32向DSP12(圖l)發(fā)送中斷。 響應(yīng)于中斷,DSP 12可經(jīng)由直接存儲(chǔ)器交換(DME)向求和緩沖器40中的控制單元(未 圖示)發(fā)送請(qǐng)求以接收求和緩沖器40的內(nèi)容。或者,DSP 12還可經(jīng)預(yù)編程以執(zhí)行DME。 DSP12可接著在將數(shù)字音頻樣本提供到DAC 16以用于轉(zhuǎn)換成模擬域之前對(duì)數(shù)字音頻樣 本執(zhí)行任何后處理。在某些情況下,由音頻硬件單元20關(guān)于幀N+2而執(zhí)行的處理與由 DSP 12 (圖1)關(guān)于幀N+1而進(jìn)行的合成參數(shù)產(chǎn)生和由處理器8 (圖1)關(guān)于幀N進(jìn)行 的調(diào)度操作同時(shí)發(fā)生。
圖2中還展示高速緩沖存儲(chǔ)器48、 WFU/LFO存儲(chǔ)器39和鏈接列表存儲(chǔ)器42。高 速緩沖存儲(chǔ)器48可由WFU36用來(lái)以快速且有效的方式獲取基本波形。WFU/LFO存儲(chǔ) 器39可由協(xié)調(diào)模塊32用以存儲(chǔ)語(yǔ)音參數(shù)集合的語(yǔ)音參數(shù)。以此方式,可將WFU/LFO 存儲(chǔ)器39視為專(zhuān)用于波形獲取單元36和LFO 38的操作的存儲(chǔ)器。鏈接列表存儲(chǔ)器42 可包含用以存儲(chǔ)由DSP 12產(chǎn)生的語(yǔ)音指示符的列表的存儲(chǔ)器。語(yǔ)音指示符可包含指向 存儲(chǔ)于存儲(chǔ)器10中的一個(gè)或一個(gè)以上合成參數(shù)的指針。列表中的每一語(yǔ)音指示符可指定存儲(chǔ)相應(yīng)MIDI語(yǔ)音的語(yǔ)音參數(shù)集合的存儲(chǔ)器位置。圖2中所示的各種存儲(chǔ)器和存儲(chǔ) 器的布置僅為示范性的??捎枚喾N其它存儲(chǔ)器布置實(shí)施本文所描述的技術(shù)。
在音頻硬件單元20中可包括任何數(shù)目的處理元件34,只要多個(gè)處理元件34關(guān)于存 儲(chǔ)于存儲(chǔ)器10(圖1)或存儲(chǔ)器42(圖2)中的不同合成參數(shù)同時(shí)操作。第一音頻處理 元件34A (例如)處理第一音頻合成參數(shù)以產(chǎn)生第一音頻信息,同時(shí)另一音頻處理元件 34N處理第二音頻合成參數(shù)以產(chǎn)生第二音頻信息。求和緩沖器40可接著在產(chǎn)生一個(gè)或 一個(gè)以上音頻樣本中組合第一與第二音頻信息。類(lèi)似地,第三音頻處理元件(未圖示) 和第四處理元件(未圖示)可處理第三和第四合成參數(shù)以產(chǎn)生第三和第四音頻信息,其 還可在產(chǎn)生音頻樣本中在求和緩沖器40中進(jìn)行累加。
處理元件34可處理用于音頻幀的所有合成參數(shù)。在處理每一相應(yīng)合成參數(shù)后,處 理元件34中的相應(yīng)者將其所處理的音頻信息添加到求和緩沖器40中的累加中,且接著 繼續(xù)移動(dòng)到下一合成參數(shù)。以此方式,處理元件34共同工作以處理針對(duì)音頻幀的一個(gè) 或一個(gè)以上音頻文件而產(chǎn)生的所有合成參數(shù)。接著,在處理音頻幀且將求和緩沖器中的 樣本發(fā)送到DSP 12以用于后處理后,處理元件34可開(kāi)始處理用于下一音頻幀的音頻文 件的合成參數(shù)。
圖3為說(shuō)明示范性三角波產(chǎn)生器44的示意圖,三角波產(chǎn)生器44可對(duì)應(yīng)于音頻硬件 單元20的低頻振蕩器38。三角波產(chǎn)生器40可產(chǎn)生形成具有所要頻率和增益的三角波的 一組數(shù)據(jù)點(diǎn)。所述裝置包括累加器寄存器50;相位累加器52;多路復(fù)用器54、 56;加 法器58、 60;強(qiáng)制歸零邏輯(zero forcing logic) 62和線64、 66、 68、 70、 72、 74、 78、 80、 82、 84、 86、 88、 90、 92、 94。
累加器寄存器50可存儲(chǔ)來(lái)自形成三角波的所述組數(shù)據(jù)點(diǎn)的單一數(shù)據(jù)點(diǎn)。累加器寄 存器50電耦合到加法器58和多路復(fù)用器56的輸出。累加器寄存器50經(jīng)由線66輸出 當(dāng)前數(shù)據(jù)點(diǎn)。在單一時(shí)鐘周期期間,累加器寄存器50依據(jù)多路復(fù)用器56的輸出而經(jīng)由 線64接收下一數(shù)據(jù)點(diǎn)或零值。在下一時(shí)鐘周期期間,累加器寄存器50經(jīng)由線66輸出 從前一時(shí)鐘周期接收到的值作為當(dāng)前數(shù)據(jù)點(diǎn)。對(duì)于給定時(shí)鐘周期,將當(dāng)前數(shù)據(jù)點(diǎn)界定為 累加器寄存器經(jīng)由線66的輸出,且將下一數(shù)據(jù)點(diǎn)界定為加法器58經(jīng)由線68的輸出。
相位累加器52可存儲(chǔ)對(duì)應(yīng)于三角波的時(shí)間軸的單一相位數(shù)據(jù)點(diǎn)。 一般來(lái)說(shuō),相位 數(shù)據(jù)確定將四個(gè)比率70、 72、 76、 78中的哪一者選擇為增量值70。相位累加器52經(jīng)由 線80和82電耦合到加法器60,且經(jīng)由線84電耦合到強(qiáng)制歸零邏輯62。在特定時(shí)鐘周 期期間,相位累加器52經(jīng)由線80接收下一相位數(shù)據(jù)點(diǎn),且經(jīng)由線82輸出當(dāng)前相位數(shù) 據(jù)點(diǎn)。在下一時(shí)鐘周期期間,相位累加器52輸出經(jīng)由線80從前一時(shí)鐘周期接收到的值作為當(dāng)前相位數(shù)據(jù)點(diǎn)。對(duì)于給定時(shí)鐘周期,將當(dāng)前相位數(shù)據(jù)點(diǎn)界定為相位累加器52經(jīng) 由線82的輸出,且將下一相位數(shù)據(jù)點(diǎn)界定為加法器60經(jīng)由線80的輸出??衫美?觸發(fā)器、鎖存器、RAM單元等任何連續(xù)存儲(chǔ)元件實(shí)施累加器寄存器50和相位累加器52。 多路復(fù)用器54基于在輸入線72、 74、 76、 78上提供的四個(gè)比率中的一者的選擇在 線76上輸出增量值。所述選擇是基于控制線86,控制線86含有下一相位數(shù)據(jù)點(diǎn)的兩個(gè) 最高有效位。當(dāng)兩個(gè)最高有效位為"00"時(shí),多路復(fù)用器54選擇比率Rp作為增量值。 類(lèi)似地,當(dāng)兩個(gè)最高有效位為"01"時(shí),多路復(fù)用器54選擇比率-Rp作為增量值。當(dāng)最 高有效位為"10"時(shí),多路復(fù)用器54選擇比率-RN作為增量值。最后,當(dāng)最高有效位為 "11"時(shí),多路復(fù)用器54選擇比率RN作為增量值。將增量值放置于多路復(fù)用器54的 輸出上,增量值經(jīng)由線70被傳輸?shù)郊臃ㄆ?8。可使用例如邏輯門(mén)、FPGA、 RAM等任 何數(shù)字選擇方案實(shí)施多路復(fù)用器54。雖然此處展示的多路復(fù)用器54具有四個(gè)比率值且 選擇是基于下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位,但應(yīng)認(rèn)識(shí)到,本文所描述的技術(shù)的其它 實(shí)例可利用具有或多或少輸入和額外或更少選擇位的多路復(fù)用器54。另外,本文所描述
的技術(shù)的其它實(shí)例可利用基于當(dāng)前相位數(shù)據(jù)點(diǎn)來(lái)選擇增量值的多路復(fù)用器,當(dāng)前相位數(shù) 據(jù)點(diǎn)為相位累加器52經(jīng)由線82的輸出。
加法器58可產(chǎn)生當(dāng)前數(shù)據(jù)點(diǎn)與增量值的和。加法器58經(jīng)由線66從累加器寄存器 50接收當(dāng)前數(shù)據(jù)點(diǎn),且經(jīng)由線70從多路復(fù)用器54接收增量值。將和界定為下一數(shù)據(jù)點(diǎn), 且將其作為輸出放置于線68上。
加法器60可產(chǎn)生當(dāng)前相位數(shù)據(jù)點(diǎn)與相位增量的和。加法器60經(jīng)由線82從相位累 加器52接收當(dāng)前相位數(shù)據(jù)點(diǎn),且經(jīng)由線90接收相位增量。將和界定為下一相位數(shù)據(jù)點(diǎn), 且將其作為輸出放置于線80上??墒褂么隧?xiàng)技術(shù)中已知的任何常規(guī)數(shù)字加法電路實(shí)施 加法器58、 60兩者。
根據(jù)本發(fā)明的實(shí)例,比率Rp和Rw和相位增量可根據(jù)以下公式計(jì)算
7 p =應(yīng)"d (4 * GP* ("
/ w =訓(xùn)wd(4求Gw承。 (2) 相位增量二ra訓(xùn)rf(2八B沐巧) M)其中G嚴(yán)正增益 GF負(fù)增益
B二相位累加器中的位的數(shù)目 F^規(guī)范化的所要頻率
正增益為三角波的正峰值或最高點(diǎn)的值。負(fù)增益為三角波的負(fù)峰值或最低點(diǎn)的值。 計(jì)算相位增量,以使得相位累加器52中的值在所要三角波的一個(gè)周期中將橫越相位累 加器52的整個(gè)范圍。值B表示相位累加器中的位的數(shù)目。規(guī)范化的所要頻率為所要頻 率除以硬件的計(jì)時(shí)速率(clocking rate)。
在圖2中展示的示范性音頻硬件單元20中,當(dāng)特定處理元件需要特定發(fā)音(例如 顫音或震音)時(shí),正增益、負(fù)增益和規(guī)范化的所要頻率可由不同處理元件34A到34N 供應(yīng)到低頻振蕩器38。
本文所描述的技術(shù)的一個(gè)優(yōu)點(diǎn)在于正和負(fù)比率含有關(guān)于所得三角波的所要增益和 頻率兩者的信息。這些比率允許三角波產(chǎn)生器44通過(guò)將連續(xù)增量值相加來(lái)計(jì)算連續(xù)數(shù) 據(jù)點(diǎn),而不需要在每一時(shí)鐘周期期間利用乘法器來(lái)校正增益。因?yàn)橛布朔ㄆ骺烧紦?jù)珍 貴的芯片區(qū)域,且常需要大量處理時(shí)間,所以消除對(duì)乘法器的需要可減少硬件的復(fù)雜性 且允許三角波產(chǎn)生器的更有效操作。
強(qiáng)制歸零邏輯塊62檢測(cè)相位累加器翻轉(zhuǎn)(roll over)條件且將累加器寄存器50復(fù) 位到零值以開(kāi)始三角波的新周期。當(dāng)下一相位數(shù)據(jù)點(diǎn)的最高有效位為邏輯零且當(dāng)前相位 數(shù)據(jù)點(diǎn)的最高有效位為邏輯一時(shí),檢測(cè)翻轉(zhuǎn)條件。相位累加器52中的翻轉(zhuǎn)條件可與累 加器寄存器50中的負(fù)到正轉(zhuǎn)變同時(shí)發(fā)生。因此,應(yīng)注意,在其它實(shí)例中,可通過(guò)檢測(cè) 當(dāng)前數(shù)據(jù)點(diǎn)何時(shí)為負(fù)且下一數(shù)據(jù)點(diǎn)何時(shí)為正來(lái)實(shí)施強(qiáng)制歸零邏輯塊62。
多路復(fù)用器56可基于強(qiáng)制歸零邏輯塊62的輸出而強(qiáng)制由累加器寄存器50接收到 的下一數(shù)據(jù)點(diǎn)為零值。多路復(fù)用器56可在來(lái)自線68的下一數(shù)據(jù)點(diǎn)與線92上的零值之 間選擇。所述選擇可基于經(jīng)由線94傳輸?shù)蕉嗦窂?fù)用器的強(qiáng)制歸零邏輯塊62的輸出。在 無(wú)翻轉(zhuǎn)條件的正常操作期間,控制線94保持無(wú)效,且多路復(fù)用器56將下一數(shù)據(jù)點(diǎn)放置 于線64上以作為三角波產(chǎn)生器44的輸出且作為到累加器寄存器50的輸入。當(dāng)翻轉(zhuǎn)條 件發(fā)生時(shí),強(qiáng)制歸零邏輯塊62啟動(dòng)控制線94且多路復(fù)用器56將零值放置于線64上。 應(yīng)注意,在本發(fā)明的其它實(shí)施例中,三角波產(chǎn)生器44的輸出還可經(jīng)由線68連接到累加 器寄存器50的輸出。
本文所描述的技術(shù)的另一優(yōu)點(diǎn)在于強(qiáng)制歸零邏輯62防止正和負(fù)偏置歸因于相位累 加器52和相位增量的有限精度而在三角波的后續(xù)周期中發(fā)生。舉例來(lái)說(shuō),考慮在三角波形的單一周期中數(shù)據(jù)點(diǎn)的數(shù)目不為四的偶數(shù)倍的情況。當(dāng)翻轉(zhuǎn)條件發(fā)生時(shí),累加器寄 存器50中的值可不為零。如果無(wú)校正發(fā)生,則非零偏移可繼續(xù)在連續(xù)時(shí)鐘周期內(nèi)累加, 其中存在在連續(xù)三角波中產(chǎn)生正或負(fù)偏置的可能。正或負(fù)偏置的引入還可具有引起若干 周期內(nèi)三角波的頻率中的偏差的可能。通過(guò)利用強(qiáng)制歸零邏輯62,因?yàn)槊慨?dāng)發(fā)生翻轉(zhuǎn)條 件時(shí),強(qiáng)制歸零邏輯62均強(qiáng)制下一數(shù)據(jù)點(diǎn)為零,所以可移除與翻轉(zhuǎn)偏移值相關(guān)聯(lián)的偏 置和頻率問(wèn)題。
圖4為說(shuō)明根據(jù)本發(fā)明的一實(shí)例的用于產(chǎn)生形成具有所要頻率和所要增益的三角波 的一組數(shù)據(jù)點(diǎn)的示范性方法100的流程圖。圖4中所說(shuō)明的方法可利用圖3中的示范性 三角波產(chǎn)生器44。
在步驟102中,由三角波產(chǎn)生器44接收波形參數(shù)??赏ㄟ^(guò)音頻硬件單元20中的處 理元件34將波形參數(shù)傳輸?shù)饺遣óa(chǎn)生器44。波形參數(shù)可含有關(guān)于將要產(chǎn)生的三角波 的所要正增益、所要負(fù)增益和所要頻率的信息。在其它實(shí)施例中,由三角波產(chǎn)生器44 接收的波形參數(shù)可含有關(guān)于所要三角波的正比率、負(fù)比率和相位增量的信息。
在步驟104中,三角波產(chǎn)生器44根據(jù)等式(1)到(3)計(jì)算正比率、負(fù)比率和相 位增量。此步驟為可選的且由虛線說(shuō)明,因?yàn)檎嚷?、?fù)比率和相位增量可已在步驟102 中由處理元件提供。
在步驟106中,三角波產(chǎn)生器44將累加器寄存器50和相位累加器52復(fù)位到零以 開(kāi)始產(chǎn)生三角波形。在步驟108中,三角波產(chǎn)生器44將相位增量相加到相位累加器52 的當(dāng)前值以產(chǎn)生下一相位數(shù)據(jù)點(diǎn)。相位累加器52的當(dāng)前值對(duì)應(yīng)于當(dāng)前相位數(shù)據(jù)點(diǎn)。
在步驟110中,三角波產(chǎn)生器44從一組比率中選擇增量值。所述組比率可包括正 比率、負(fù)比率以及正和負(fù)比率兩者的加性逆元素。增量值的選擇可基于在步驟108中產(chǎn) 生的和的兩個(gè)最高有效位。在其它實(shí)例中,增量的選擇可基于當(dāng)前相位數(shù)據(jù)點(diǎn)的兩個(gè)最 高有效位。
在步驟112中,三角波產(chǎn)生器44將在步驟110中選擇的增量值添加到累加器寄存 器50的當(dāng)前值。累加器寄存器50的當(dāng)前值對(duì)應(yīng)于當(dāng)前數(shù)據(jù)點(diǎn)。
在步驟114中,三角波產(chǎn)生器44檢測(cè)翻轉(zhuǎn)條件是否已在相位累加器52中發(fā)生???通過(guò)檢查相位累加器52的當(dāng)前值的最高有效位和步驟108中所產(chǎn)生的和的最高有效位 來(lái)檢測(cè)翻轉(zhuǎn)條件。如果相位累加器52的當(dāng)前值的最高有效位為邏輯一且步驟108中所 產(chǎn)生的和的最高有效位為邏輯零,則翻轉(zhuǎn)條件己發(fā)生且三角波產(chǎn)生器進(jìn)行到步驟118。 如果發(fā)生任何其它組合,則翻轉(zhuǎn)條件未發(fā)生且三角波產(chǎn)生器進(jìn)行到步驟116。
在其它實(shí)例中,可通過(guò)檢查累加器寄存器50的當(dāng)前值的輸出和步驟112中所產(chǎn)生的和來(lái)檢測(cè)翻轉(zhuǎn)條件。如果累加器寄存器50的當(dāng)前值為負(fù)且步驟112中所產(chǎn)生的和為 正,則翻轉(zhuǎn)條件已發(fā)生且三角波產(chǎn)生器44進(jìn)行到步驟118。如果發(fā)生任何其它組合,則 翻轉(zhuǎn)條件未發(fā)生且三角波產(chǎn)生器進(jìn)行到步驟116。
在步驟116中,三角波產(chǎn)生器44將步驟112中所產(chǎn)生的和存儲(chǔ)于累加器寄存器50 中。此步驟致使當(dāng)前時(shí)鐘周期的下一數(shù)據(jù)點(diǎn)變成下一時(shí)鐘周期中的當(dāng)前數(shù)據(jù)點(diǎn)。在步驟 118中,三角波產(chǎn)生器44強(qiáng)制累加器寄存器50歸零。此步驟致使當(dāng)前數(shù)據(jù)點(diǎn)在下一時(shí) 鐘周期中為零。
在步驟120中,三角波產(chǎn)生器44將步驟108中所產(chǎn)生的和存儲(chǔ)于相位累加器52中。 此步驟致使當(dāng)前時(shí)鐘周期中的下一相位數(shù)據(jù)點(diǎn)變成下一時(shí)鐘周期中的當(dāng)前相位數(shù)據(jù)點(diǎn)。
在步驟120后,三角波產(chǎn)生器44循環(huán)回到步驟108。必要時(shí)三角波產(chǎn)生器44可循 環(huán)許多次以反復(fù)地產(chǎn)生形成三角波的一組數(shù)據(jù)點(diǎn)。
圖5為說(shuō)明由三角波產(chǎn)生器(例如由圖3中展示的三角波產(chǎn)生器44使用圖4中所 展示的方法100)產(chǎn)生的示范性三角波的一個(gè)周期的圖140。實(shí)線142表示具有所要正 增益、所要負(fù)增益和所要頻率的所要三角波。虛線144表示由三角波產(chǎn)生器44使用方 法100產(chǎn)生的三角波。存儲(chǔ)于相位累加器52中的當(dāng)前相位數(shù)據(jù)點(diǎn)對(duì)應(yīng)于位于時(shí)間軸146 上的特定時(shí)間值。隨著相位累加器52中的值增加,當(dāng)前相位數(shù)據(jù)點(diǎn)從左到右橫越時(shí)間 軸146?;谙辔焕奂悠?2的兩個(gè)最高有效位,沿時(shí)間軸界定四個(gè)區(qū)域152、 154、 156、 158。
存儲(chǔ)于累加器寄存器50中的當(dāng)前數(shù)據(jù)點(diǎn)對(duì)應(yīng)于與軸148相關(guān)聯(lián)的輸出值。在橫越 時(shí)間軸146時(shí),基于三角波產(chǎn)生器44的操作區(qū)域152、 154、 156、 158選擇不同比率作 為增量值。舉例來(lái)說(shuō),在區(qū)域152中,下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位為"00"且添 加到累加器寄存器50的比率為Rp。此致使三角波產(chǎn)生器44的輸出數(shù)據(jù)點(diǎn)增加到所要正 增益或接近所要正增益的值。類(lèi)似地,在區(qū)域154中,下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效 位為"01"且將比率Rp的加性逆元素添加到累加器寄存器50。此致使輸出數(shù)據(jù)點(diǎn)減少 到零或接近零的值。在區(qū)域156中,下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位為"10"且將比 率Rn的加性逆元素添加到累加器寄存器50。此致使輸出數(shù)據(jù)點(diǎn)減小到RN的加性逆元素 或接近Rw的加性逆元素的值。最后,在區(qū)域158中,下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效 位為"11"且將比率Rw添加到累加器寄存器50。此致使輸出數(shù)據(jù)點(diǎn)增加到零或接近零 的值。在波已橫越區(qū)域158后,檢測(cè)到翻轉(zhuǎn)條件且強(qiáng)制累加器寄存器50歸零(160)以 開(kāi)始三角波的新周期。
在本發(fā)明中已描述各種實(shí)例。舉例來(lái)說(shuō),已揭示不需要使用乘法器的三角波產(chǎn)生器。消除對(duì)乘法器的需要可減少硬件的復(fù)雜性且允許三角波產(chǎn)生器的更有效操作。另外,還 已描述在翻轉(zhuǎn)條件期間校正任何偏移的三角波產(chǎn)生器。校正在翻轉(zhuǎn)條件期間發(fā)生的任何 偏移可減輕與翻轉(zhuǎn)偏移相關(guān)聯(lián)的許多偏置問(wèn)題且還允許對(duì)所得三角波的頻率的較好控 制。然而,可對(duì)上文所描述的技術(shù)進(jìn)行各種修改。舉例來(lái)說(shuō),其它類(lèi)型的裝置也可實(shí)施 本文所描述的三角波產(chǎn)生技術(shù)。而且,可利用其它方法來(lái)檢測(cè)和校正翻轉(zhuǎn)偏移值,例如 檢査累加器寄存器的輸出或在三角波的負(fù)斜坡上而非正斜坡上強(qiáng)制累加器歸零。
可以硬件、軟件、固件或其任何組合實(shí)施本文所描述的技術(shù)。作為模塊或組件而描 述的任何特征可一起實(shí)施于整合邏輯裝置中或單獨(dú)地實(shí)施為離散但可互操作的邏輯裝 置獨(dú)立地實(shí)施。如果以軟件實(shí)施,則所述技術(shù)的一個(gè)或一個(gè)以上方面可至少部分通過(guò)包 含指令的計(jì)算機(jī)可讀媒體實(shí)現(xiàn),所述指令在執(zhí)行時(shí)執(zhí)行上文所述的方法中的一者或一者 以上。計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)媒體可形成可包括封裝材料的計(jì)算機(jī)程序產(chǎn)品的部分。計(jì)算 機(jī)可讀媒體可包含例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)的隨機(jī)存取存儲(chǔ)器(RAM)、 只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、電可擦可編程只讀存儲(chǔ)器 (EEPROM)、快閃存儲(chǔ)器、磁性或光學(xué)數(shù)據(jù)存儲(chǔ)媒體和其類(lèi)似物。另外或替代地,可至 少部分地通過(guò)計(jì)算機(jī)可讀通信媒體來(lái)實(shí)現(xiàn)所述技術(shù),所述計(jì)算機(jī)可讀通信媒體以指令或 數(shù)據(jù)結(jié)構(gòu)的形式來(lái)攜載或傳送代碼且可由計(jì)算機(jī)存取、讀取和/或執(zhí)行。
可由例如一個(gè)或一個(gè)以上數(shù)字信號(hào)處理器(DSP)、通用微處理器、專(zhuān)用集成電路 (ASIC)、現(xiàn)場(chǎng)可編程邏輯(FPGA)或其它等效整合或離散邏輯電路的一個(gè)或一個(gè)以上 處理器來(lái)執(zhí)行所述代碼。因此,如本文中所使用,術(shù)語(yǔ)"處理器"可指上述結(jié)構(gòu)或適于 實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)中的任一者。另外,在一些方面中,可在經(jīng)配 置或適于執(zhí)行本發(fā)明的技術(shù)的專(zhuān)用軟件模塊或硬件模塊內(nèi)提供本文中所描述的功能性。
如果以硬件實(shí)施,則本發(fā)明可針對(duì)經(jīng)配置或適于執(zhí)行本文所描述的技術(shù)中的一者或 一者以上的例如集成電路、芯片組、ASIC、 FPGA、邏輯或其各種組合等電路。
還應(yīng)注意,所屬領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,電路可實(shí)施上文所描述的功能中的一些 或全部??赡艽嬖趯?shí)施所有功能的一個(gè)電路,或者還可能存在實(shí)施功能的電路的多個(gè)部 分。在當(dāng)前移動(dòng)平臺(tái)技術(shù)的情況下,集成電路可包含至少一個(gè)DSP和至少一個(gè)高級(jí)精簡(jiǎn) 指令集計(jì)算機(jī)(RISC)機(jī)器(ARM)處理器以控制和/或傳送到一個(gè)或一個(gè)以上DSP。 另外,電路可經(jīng)設(shè)計(jì)或?qū)嵤┯谌舾刹糠种校以谝恍┣闆r下,可重新使用若干部分以執(zhí) 行本發(fā)明中所描述的不同功能。
這些和其它實(shí)施例處于所附權(quán)利要求書(shū)的范圍內(nèi)。
權(quán)利要求
1.一種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù)據(jù)點(diǎn)的方法,所述方法包含(a)基于所述三角波的所述所要頻率和所述所要增益確定增量值;(b)將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;以及反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。
2. 根據(jù)權(quán)利要求l所述的方法,其中所述反復(fù)執(zhí)行(a)和(b)的步驟包括將所述增量值相加到所述下一數(shù)據(jù)點(diǎn)以產(chǎn)生第三數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)、所述 下一數(shù)據(jù)點(diǎn)和所述第三數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的新子組。
3. 根據(jù)權(quán)利要求1所述的方法,其中從一組比率中選擇所述增量值,所述比率對(duì)應(yīng)于 所述三角波的所要正增益、所要負(fù)增益和所述所要頻率。
4. 根據(jù)權(quán)利要求3所述的方法,其中所述所要正增益與所述所要負(fù)增益彼此相等。
5. 根據(jù)權(quán)利要求3所述的方法,其進(jìn)一步包含基于所述三角波的所述所要頻率確定相位增量;將所述相位增量相加到當(dāng)前相位數(shù)據(jù)點(diǎn)以產(chǎn)生下一相位數(shù)據(jù)點(diǎn);以及 基于所述下一相位數(shù)據(jù)點(diǎn)的值選擇所述增量值。
6. 根據(jù)權(quán)利要求5所述的方法,其中所述組比率含有四個(gè)比率且所述增量值的所述選 擇是基于所述下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位。
7. 根據(jù)權(quán)利要求5所述的方法,其中所述相位增量的所述選擇是基于相位累加器中的 位的數(shù)目和所述三角波的所述所要頻率。
8. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包含在所述當(dāng)前數(shù)據(jù)點(diǎn)為負(fù)且所述當(dāng)前數(shù)據(jù)點(diǎn)與所述增量值的和為正時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
9. 根據(jù)權(quán)利要求5所述的方法,其進(jìn)一步包含在所述當(dāng)前相位數(shù)據(jù)點(diǎn)的最高有效位為一且所述下一相位數(shù)據(jù)點(diǎn)的最高有效位 為零時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
10. 根據(jù)權(quán)利要求1所述的方法,其中所述三角波是低頻振蕩器的輸出。
11. 根據(jù)權(quán)利要求IO所述的方法,其中在樂(lè)器數(shù)字接口 (MIDI)硬件實(shí)施方案中利用 所述低頻振蕩器。
12. —種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù)據(jù)點(diǎn)的裝置,所述裝 置包含電路,其基于所述三角波的所述所要頻率和所述所要增益確定增量值;以及 加法器,其將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組其中所述電路反復(fù)確定增量值且所述加法器反復(fù)地將所述增量值相加到連續(xù)數(shù)據(jù)點(diǎn)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。
13. 根據(jù)權(quán)利要求12所述的裝置,其中所述加法器將所述增量值相加到所述下一數(shù)據(jù) 點(diǎn)以產(chǎn)生第三數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)、所述下一數(shù)據(jù)點(diǎn)和所述第三數(shù)據(jù)點(diǎn)形成所 述組數(shù)據(jù)點(diǎn)的新子組。
14. 根據(jù)權(quán)利要求12所述的裝置,其中所述電路包含選擇單元,所述選擇單元從一組 比率中選擇所述增量值,所述比率對(duì)應(yīng)于所述三角波的所要正增益、所要負(fù)增益和 所述所要頻率。
15. 根據(jù)權(quán)利要求14所述的裝置,其中所述所要正增益與所述所要負(fù)增益彼此相等。
16. 根據(jù)權(quán)利要求14所述的裝置,其中所述電路進(jìn)一步包含相位計(jì)算單元,其基于所述三角波的所述所要頻率確定相位增量;以及 第二加法器,其將所述相位增量相加到當(dāng)前相位數(shù)據(jù)點(diǎn)以產(chǎn)生下一相位數(shù)據(jù)點(diǎn); 其中所述選擇單元基于所述下一相位數(shù)據(jù)點(diǎn)的值選擇所述增量值。
17. 根據(jù)權(quán)利要求16所述的裝置,其中所述組比率含有四個(gè)比率,且所述選擇單元基 于所述下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位選擇所述增量值。
18. 根據(jù)權(quán)利要求16所述的裝置,其中所述相位計(jì)算單元基于相位累加器中的位的數(shù) 目和所述三角波的所述所要頻率確定所述相位增量。
19. 根據(jù)權(quán)利要求16所述的裝置,其進(jìn)一步包含強(qiáng)制歸零邏輯塊,其在所述當(dāng)前數(shù)據(jù)點(diǎn)為負(fù)且所述當(dāng)前數(shù)據(jù)點(diǎn)與所述增量值的和 為正時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
20. 根據(jù)權(quán)利要求16所述的裝置,其進(jìn)一步包含強(qiáng)制歸零邏輯塊,其在所述當(dāng)前相位數(shù)據(jù)點(diǎn)的最高有效位為一且所述下一相位數(shù) 據(jù)點(diǎn)的最高有效位為零時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
21. 根據(jù)權(quán)利要求12所述的裝置,其進(jìn)一步包含低頻振蕩器,所述低頻振蕩器將形成 所述三角波的所述組數(shù)據(jù)點(diǎn)輸出到處理器。
22. 根據(jù)權(quán)利要求21所述的裝置,其中在樂(lè)器數(shù)字接口 (MIDI)硬件實(shí)施方案中利用 所述低頻振蕩器。
23. —種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù)據(jù)點(diǎn)的裝置,所述裝 置包含第一裝置,其用于基于所述三角波的所述所要頻率和所述所要增益確定增量值; 以及第二裝置,其用于將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前 數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;其中所述第一裝置反復(fù)確定增量值且所述第二裝置反復(fù)地將所述增量值相加到 連續(xù)數(shù)據(jù)點(diǎn)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。
24. 根據(jù)權(quán)利要求23所述的裝置,其進(jìn)一步包含用于將所述增量值相加到所述下一數(shù)據(jù)點(diǎn)以產(chǎn)生第三數(shù)據(jù)點(diǎn)的裝置,所述當(dāng)前數(shù)據(jù)點(diǎn)、所述下一數(shù)據(jù)點(diǎn)和所述第三數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組。
25. 根據(jù)權(quán)利要求22所述的裝置,其進(jìn)一步包含用于從一組比率中選擇所述增量值的裝置,所述比率對(duì)應(yīng)于所述三角波的所要正 增益、所要負(fù)增益和所述所要頻率。
26. 根據(jù)權(quán)利要求25所述的裝置,其中所述所要正增益與所述所要負(fù)增益彼此相等。
27. 根據(jù)權(quán)利要求25所述的裝置,其進(jìn)一步包含用于基于所述三角波的所述所要頻率確定相位增量的裝置;用于將所述相位增量相加到當(dāng)前相位數(shù)據(jù)點(diǎn)以產(chǎn)生下一相位數(shù)據(jù)點(diǎn)的裝置;以及 用于基于所述下一相位數(shù)據(jù)點(diǎn)的值選擇所述增量值的裝置。
28. 根據(jù)權(quán)利要求27所述的裝置,其中所述組比率含有四個(gè)比率,且所述增量值的所 述選擇是基于所述下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位。
29. 根據(jù)權(quán)利要求27所述的裝置,其中所述相位增量的所述選擇是基于相位累加器中 的位的數(shù)目和所述三角波的所述所要頻率。
30. 根據(jù)權(quán)利要求27所述的裝置,其進(jìn)一步包含用于在所述當(dāng)前數(shù)據(jù)點(diǎn)為負(fù)且所述當(dāng)前數(shù)據(jù)點(diǎn)與所述增量值的和為正時(shí)強(qiáng)制所 述下一數(shù)據(jù)點(diǎn)歸零的裝置。
31. 根據(jù)權(quán)利要求27所述的裝置,其進(jìn)一步包含用于在所述當(dāng)前相位數(shù)據(jù)點(diǎn)的最高有效位為一且所述下一相位數(shù)據(jù)點(diǎn)的最高有 效位為零時(shí)強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零的裝置。
32. 根據(jù)權(quán)利要求23所述的裝置,其中所述三角波是低頻振蕩器的輸出。
33. 根據(jù)權(quán)利要求32所述的裝置,其中在樂(lè)器數(shù)字接口 (MIDI)硬件實(shí)施方案中利用 所述低頻振蕩器。
34. —種包含指令的計(jì)算機(jī)可讀媒體,所述指令在由一個(gè)或一個(gè)以上處理器執(zhí)行時(shí)致使 所述處理器產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù)據(jù)點(diǎn),其中所述指 令致使所述一個(gè)或一個(gè)以上處理器(a) 基于所述三角波的所述所要頻率和所述所要增益確定增量值;(b) 將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述 下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;以及反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。
35. 根據(jù)權(quán)利要求34所述的計(jì)算機(jī)可讀媒體,其中反復(fù)執(zhí)行(a)和(b)包括將所述增量值相加到所述下一數(shù)據(jù)點(diǎn)以產(chǎn)生第三數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)、所述 下一數(shù)據(jù)點(diǎn)和所述第三數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的新子組。
36. 根據(jù)權(quán)利要求34所述的計(jì)算機(jī)可讀媒體,其中所述增量值選自一組比率,所述比 率對(duì)應(yīng)于所述三角波的所要正增益、所要負(fù)增益和所述所要頻率。
37. 根據(jù)權(quán)利要求36所述的計(jì)算機(jī)可讀媒體,其中所述所要正增益與所述所要負(fù)增益 彼此相等。
38. 根據(jù)權(quán)利要求36所述的計(jì)算機(jī)可讀媒體,其中所述指令致使所述一個(gè)或一個(gè)以上 處理器基于所述三角波的所述所要頻率確定相位增量;將所述相位增量相加到當(dāng)前相位數(shù)據(jù)點(diǎn)以產(chǎn)生下一相位數(shù)據(jù)點(diǎn);以及 基于所述下一相位數(shù)據(jù)點(diǎn)的值選擇所述增量值。
39. 根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述組比率含有四個(gè)比率且所述增 量值的所述選擇是基于所述下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位。
40. 根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述相位增量的所述選擇是基于相 位累加器中的位的數(shù)目和所述三角波的所述所要頻率。
41. 根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述指令致使所述一個(gè)或一個(gè)以上處理器在所述當(dāng)前數(shù)據(jù)點(diǎn)為負(fù)且所述當(dāng)前數(shù)據(jù)點(diǎn)與所述增量值的和為正時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
42. 根據(jù)權(quán)利要求38所述的計(jì)算機(jī)可讀媒體,其中所述指令致使所述一個(gè)或一個(gè)以上 處理器在所述當(dāng)前相位數(shù)據(jù)點(diǎn)的最高有效位為一且所述下一相位數(shù)據(jù)點(diǎn)的最高有效位 為零時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
43. 根據(jù)權(quán)利要求34所述的計(jì)算機(jī)可讀媒體,其中所述三角波是低頻振蕩器的輸出。
44. 根據(jù)權(quán)利要求43所述的計(jì)算機(jī)可讀媒體,其中在樂(lè)器數(shù)字接口 (MIDI)實(shí)施方案 中利用所述低頻振蕩器。
45. —種用于產(chǎn)生形成具有所要頻率和所要增益的三角波的一組數(shù)據(jù)點(diǎn)的電路,其中所 述電路適于(a) 基于所述三角波的所述所要頻率和所述所要增益確定增量值;(b) 將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述 下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組;以及反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)。
46. 根據(jù)權(quán)利要求45所述的電路,其中反復(fù)執(zhí)行(a)和(b)包括將所述增量值相加到所述下一數(shù)據(jù)點(diǎn)以產(chǎn)生第三數(shù)據(jù)點(diǎn),所述當(dāng)前數(shù)據(jù)點(diǎn)、所述 下一數(shù)據(jù)點(diǎn)和所述第三數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的新子組。
47. 根據(jù)權(quán)利要求45所述的電路,其中所述增量值選自一組比率,所述比率對(duì)應(yīng)于所 述三角波的所要正增益、所要負(fù)增益和所述所要頻率。
48. 根據(jù)權(quán)利要求47所述的電路,其中所述所要正增益與所述所要負(fù)增益彼此相等。
49. 根據(jù)權(quán)利要求47所述的電路,其中所述電路適于基于所述三角波的所述所要頻率確定相位增量;將所述相位增量相加到當(dāng)前相位數(shù)據(jù)點(diǎn)以產(chǎn)生下一相位數(shù)據(jù)點(diǎn);以及基于所述下一相位數(shù)據(jù)點(diǎn)的值選擇所述增量值。
50. 根據(jù)權(quán)利要求49所述的電路,其中所述組比率含有四個(gè)比率且所述增量值的所述 選擇是基于所述下一相位數(shù)據(jù)點(diǎn)的兩個(gè)最高有效位。
51. 根據(jù)權(quán)利要求49所述的電路,其中所述相位增量的所述選擇是基于相位累加器中 的位的數(shù)目和所述三角波的所述所要頻率。
52. 根據(jù)權(quán)利要求49所述的電路,其中所述電路適于-在所述當(dāng)前數(shù)據(jù)點(diǎn)為負(fù)且所述當(dāng)前數(shù)據(jù)點(diǎn)與所述增量值的和為正時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
53. 根據(jù)權(quán)利要求49所述的電路,其中所述電路適于在所述當(dāng)前相位數(shù)據(jù)點(diǎn)的最高有效位為一且所述下一相位數(shù)據(jù)點(diǎn)的最高有效位 為零時(shí),強(qiáng)制所述下一數(shù)據(jù)點(diǎn)歸零。
54. 根據(jù)權(quán)利要求45所述的電路,其中所述三角波是低頻振蕩器的輸出。
55. 根據(jù)權(quán)利要求54所述的電路,其中在樂(lè)器數(shù)字接口 (MIDI)實(shí)施方案中利用所述 低頻振蕩器。
全文摘要
本發(fā)明描述用于產(chǎn)生形成具有所要增益和所要頻率的三角波的一組數(shù)據(jù)點(diǎn)的技術(shù)。在一個(gè)實(shí)例中,方法包括基于所述三角波的所述所要頻率和所述所要增益確定增量值的步驟(a)。所述方法進(jìn)一步包括將所述增量值相加到當(dāng)前數(shù)據(jù)點(diǎn)以產(chǎn)生下一數(shù)據(jù)點(diǎn)的步驟(b),所述當(dāng)前數(shù)據(jù)點(diǎn)和所述下一數(shù)據(jù)點(diǎn)形成所述組數(shù)據(jù)點(diǎn)的子組。所述方法進(jìn)一步包括反復(fù)執(zhí)行(a)和(b)以產(chǎn)生形成所述三角波的所述組數(shù)據(jù)點(diǎn)的步驟。
文檔編號(hào)G10H7/12GK101636782SQ200880008803
公開(kāi)日2010年1月27日 申請(qǐng)日期2008年3月17日 優(yōu)先權(quán)日2007年3月22日
發(fā)明者尼迪什·拉馬錢(qián)德拉·卡馬特, 斯蒂芬·莫洛伊, 蘇雷什·德瓦拉帕里 申請(qǐng)人:高通股份有限公司