一種信號音的生成方法及其系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種信號音的生成方法,包括:配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù);提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù);為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址所對應(yīng)的存儲空間上;控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址;根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音;本發(fā)明還提供了一種信號音的生成系統(tǒng)。本發(fā)明提供的技術(shù)方案,具有配置靈活,資料利用率和處理效率高的優(yōu)點(diǎn),可靈活產(chǎn)生大容量的數(shù)字信號音。
【專利說明】一種信號音的生成方法及其系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉通信【技術(shù)領(lǐng)域】,尤其涉及一種信號音的生成方法及其系統(tǒng)。
【背景技術(shù)】
[0002]在通信系統(tǒng)中,各個通信設(shè)備之間通過多個端口來實(shí)現(xiàn)數(shù)據(jù)傳輸;在整個通信系統(tǒng)中,存在著成千上萬的端口 ;而根據(jù)國際標(biāo)準(zhǔn),通信設(shè)備的各個端口需要輸出種類繁多的信號音來表示各種數(shù)據(jù)的傳輸狀態(tài)。例如,在程控交換機(jī)、脈沖編碼復(fù)用(Pulse-codemodulation, PCM)設(shè)備和 SDH (Synchronous Digital Hierarchy,同步數(shù)字系列)系統(tǒng)中,需要處理電話呼叫雙音多頻信號(Dual-Tone Mult1-Frequency,DTMF)音、彩鈴音、忙音、回鈴音、催掛音等。在一些應(yīng)用場合中,則需要在同一時刻,同時向多個用戶進(jìn)行信號音的發(fā)送。
[0003]傳統(tǒng)的技術(shù)方案采用模擬電路生成模擬信號音,其電路硬件結(jié)構(gòu)較為簡單,但分立元件較多,且需要對信號音斷續(xù)切換進(jìn)行軟件控制,其軟件控制原理復(fù)雜、成本高且消耗了處理器的資源。
[0004]目前的信號音產(chǎn)生技術(shù)方案大多對傳統(tǒng)的模擬信號音生成方案進(jìn)行了改進(jìn)。如申請?zhí)枮?1126368.7的專利中記載了一種產(chǎn)生電話數(shù)字信號音的系統(tǒng),其通過采用ROM(Read-Only Memory,只讀內(nèi)存)存儲和一級交換矩陣技術(shù)結(jié)合的方式來實(shí)現(xiàn)電話系統(tǒng)的數(shù)字信號音。其中,每一個信號音源(簡稱信號音)單獨(dú)利用ROM單元存儲一定字節(jié)的信號音頻率數(shù)據(jù),通過控制頻率數(shù)據(jù)讀出的速率,再利用交換矩陣切換來實(shí)現(xiàn)需要的信號音輸出。
[0005]在現(xiàn)有的這種技術(shù)方案中,采用ROM單元具有所存信號音頻率數(shù)據(jù)穩(wěn)定,斷電后所存信號音頻率數(shù)據(jù)不會改變,結(jié)構(gòu)較簡單,數(shù)據(jù)讀出方便的優(yōu)點(diǎn)。但是,由于ROM單元一旦儲存資料就無法再將之改變或刪除,且每個信號音需要單獨(dú)的ROM進(jìn)行存儲,當(dāng)某個信號音的資源有剩余時,并不能將剩余資源提供給其他信號音使用。在現(xiàn)有技術(shù)中,一方面,當(dāng)完成設(shè)計以后,產(chǎn)生的信號音是相對固定的,不能根據(jù)改變輸出的信號音;另一方面也不能充分利用存儲資源;此外,現(xiàn)有技術(shù)中的這種信號音產(chǎn)生方案的每個信號音的產(chǎn)生都需要一套單獨(dú)的控制邏輯進(jìn)行控制,且在龐大的通信系統(tǒng)中,端口容量大、信號音種類繁多,獨(dú)立的邏輯控制勢必占用了 CPU的處理資源和降低了 CPU的處理效率。且申請?zhí)枮?1126368.7的專利所公開的技術(shù)方案僅將產(chǎn)生的信號音進(jìn)行直接輸出,因而不能復(fù)用信號音,以生成復(fù)合信號音。
【發(fā)明內(nèi)容】
[0006]本發(fā)明所要解決的技術(shù)問題是,提供一種信號音的生成方法及其系統(tǒng),可靈活地控制信號音的頻率數(shù)據(jù)和頻率數(shù)據(jù)長度,形成信號音數(shù)據(jù)隊(duì)列,控制信號音數(shù)據(jù)隊(duì)列采用流水線方式處理輸出,提高音頻數(shù)據(jù)資源利用率,以生成大容量的數(shù)字信號音,便于信號音的設(shè)計實(shí)現(xiàn)和維護(hù)。
[0007]為解決以上技術(shù)問題,一方面,本發(fā)明提供一種信號音的生成方法,包括: 配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù);
提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù);
為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址所對應(yīng)的存儲空間上;
控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址;
根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。
[0008]在一種可實(shí)現(xiàn)方式中,所述提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),包括:
設(shè)置任一信號音的基地址及與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度;
將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。
[0009]進(jìn)一步地,所述信號音數(shù)據(jù)隊(duì)列存儲在RAM上,則所述設(shè)置任一信號音的基地址,具體為:
當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址;
當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
[0010]在一種可實(shí)現(xiàn)方式中,所述配置信號音數(shù)據(jù)隊(duì)列,具體為:
分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示;
將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
[0011]再進(jìn)一步地,所述根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音,具體為:
判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音; 通過時隙控制,提取所述目標(biāo)信號音進(jìn)行輸出,包括:
當(dāng)所述目標(biāo)信號音為單一信號音時,將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),并將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述單一信號音;當(dāng)所述目標(biāo)信號音為復(fù)合信號音時,所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址,控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號音。
[0012]另一方面,為了解決現(xiàn)有的信號音生成方案的缺陷,本發(fā)明還進(jìn)一步提供了一種信號音的生成系統(tǒng),包括:
數(shù)據(jù)產(chǎn)生器,用于配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù);
主控制器,用于提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),并將所述各個信號音對應(yīng)的頻率數(shù)據(jù)存儲在信號音存儲器上;以及,時隙控制器,用于為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址在所述信號音存儲器中對應(yīng)的存儲空間上; 所述時隙控制器,還用于控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址;
所述主控制器,還用于根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的存儲在所述信號音存儲器上的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。
[0013]優(yōu)選地,所述主控制器為FPGA器件,設(shè)有:
基地址設(shè)置器,用于設(shè)置任一信號音的基地址;
長度控制器,用于設(shè)置與所述任一信號音的頻率數(shù)據(jù)對應(yīng)的長度;
地址偏移器,用于控制在提取所述任一信號音的頻率數(shù)據(jù)時的地址偏移量;
數(shù)據(jù)提取器,用于將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,根據(jù)所地址偏移量,逐一提取在所述信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù),直到所述地址偏移量的大小與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度相等,以實(shí)現(xiàn)在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。
[0014]優(yōu)選地,所述信號音存儲器為隨機(jī)存取存儲器RAM,用于存儲所述數(shù)據(jù)提取器所提取的各個信號音的頻率數(shù)據(jù),且,
當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址;
當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
[0015]進(jìn)一步地,所述數(shù)據(jù)產(chǎn)生器包括:
參數(shù)設(shè)置器,用于分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示;
數(shù)據(jù)排列器,用于將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
[0016]更進(jìn)一步地,所述主控制器在控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音時,還包括:
信號音類型判別器,用于判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音;
單一信號音提取器,用于在所述目標(biāo)信號音為單一信號音時,將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),并將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述單一信號音;
以及,復(fù)合信號音提取器,用于在所述目標(biāo)信號音為復(fù)合信號音時,所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址,控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號音。
[0017]實(shí)施本發(fā)明提供的技術(shù)方案,用戶可通過控制信號音的頻率數(shù)據(jù)和頻率數(shù)據(jù)長度來靈活配置不同的信號音,將各個信號音的頻率數(shù)據(jù)進(jìn)行順序排列形成信號音數(shù)據(jù)隊(duì)列后,可將其中的各個信號音的頻率數(shù)據(jù)分別提取出來,以流水線的方式存儲在RAM中,產(chǎn)生大容量的信號音頻率數(shù)據(jù),便于信號音的設(shè)計實(shí)現(xiàn)和維護(hù);通過地址與時隙的控制,輸出目標(biāo)信號音,并通過時隙交換控制,靈活地將該目標(biāo)信號音輸出為單一信號音或復(fù)合信號音。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明提供的信號音的生成方法的第一實(shí)施例的步驟流程圖;
圖2是本發(fā)明第二實(shí)施例提供的提取信號音數(shù)據(jù)隊(duì)列的頻率數(shù)據(jù)的步驟流程圖;
圖3是本發(fā)明第二實(shí)施例提供的讀取目標(biāo)信號音的一種實(shí)現(xiàn)方式的步驟流程圖;
圖4是本發(fā)明提供的信號音的生成系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖;
圖5是本發(fā)明提供的信號音的生成系統(tǒng)的又一結(jié)構(gòu)示意圖;
圖6是本發(fā)明提供的信號音的生成系統(tǒng)的數(shù)據(jù)傳輸過程示意圖;
圖7是本發(fā)明提供的信號音的產(chǎn)生系統(tǒng)生成目標(biāo)信號音的實(shí)現(xiàn)原理圖。
【具體實(shí)施方式】
[0019]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
[0020]參見圖1,是本發(fā)明提供的信號音的生成方法的第一實(shí)施例的步驟流程圖。
[0021]在本實(shí)施例中,所述的信號音的生成方法包括以下步驟:
步驟SlOl:配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù)。
[0022]在一種可實(shí)現(xiàn)方式中,所述步驟S101,具體包括步驟A和步驟B:
步驟A:分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示;
步驟B:將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
[0023]在本實(shí)施例中,優(yōu)選采用現(xiàn)場可編輯邏輯門陣列(Field Programmable GateArray),簡稱FPGA,以實(shí)現(xiàn)對所述信號數(shù)據(jù)隊(duì)列的配置。具體地,利用FPGA內(nèi)部中的塊隨機(jī)存儲器(Block RAM),確定實(shí)際應(yīng)用環(huán)境中所需的各個信號音的長度和各個信號音所對應(yīng)的頻率數(shù)據(jù)。
[0024]例如,可以通過FPGA例化一個64K byte (千字節(jié))的功能模塊來配置256個信號音的參數(shù),具體地:
首先配置該256個信號音的頻率數(shù)據(jù)的長度,每個信號音的頻率數(shù)據(jù)長度用16比特的二進(jìn)制數(shù)據(jù)表示,如靜音的數(shù)據(jù)長度為16,用二進(jìn)制數(shù)據(jù)表示為“0000 0000 0001 0000”,寫成16進(jìn)制后為“0x0010”,則各個信號音的頻率數(shù)據(jù)長度將形成由256個長度值組成的信號音頻率數(shù)據(jù)長度隊(duì)列(簡稱信號音長度隊(duì)列)。用戶可根據(jù)實(shí)際應(yīng)用需要決定所產(chǎn)生的信號音的頻率數(shù)據(jù)的長度。特別地,當(dāng)某一信號音為周期性信號音時,其頻率數(shù)據(jù)的長度應(yīng)為該信號音在一個周期所需要的頻率數(shù)據(jù)長度的整數(shù)倍。
[0025]然后根據(jù)信號音長度隊(duì)列中的各個信號音的長度,對每個信號音中的各個頻率數(shù)據(jù)進(jìn)行配置,其中,每一個頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示,如,可將第一個信號音設(shè)為靜音,其16個頻率數(shù)據(jù)均為“0101 0100”,采用16進(jìn)制改寫為“0x54”;第二個信號音為450Hz正弦波,信號音長度為“0x0047”,其頻率數(shù)據(jù)分別為:“0x96,0x87,0x8D,0x8E,0χ8Ε, 0x82,0x84,0x94,0x46,0x10,0x06,OxOCj 0x09,OxOEj 0x02,0x05,0x68,0xF6, 0x9D, 0x81,0x8C, 0x89,0x8E, 0x83,0x9B, OxEDj 0x78,OxlFj 0x00,OxOFj0x09,OxOFj 0x00,0x19,0x66,0xE6, 0x99,0x80,0x8F, 0x89,0x8F, 0x80,0x9F,0xF8, 0x6D, OxlBj 0x03,OxOEj 0x09,OxOCj 0x01,OxlDj 0x76,0xE8, 0x85,0x82,0x8E, 0x89,0x8C, 0x86,0x90,0xC6, 0x14,0x04,0x02,OxOEj OxOEj OxODj 0x07,0x16, 0xD5”,如此類推根據(jù)用戶的需要對信號音的頻率數(shù)據(jù)進(jìn)行配置,因此可構(gòu)造大容量、多種類的信號音。
[0026]最后將256個信號音的頻率數(shù)據(jù)均配置完畢之后,將全部信號音的頻率數(shù)據(jù)進(jìn)行排列:依次將第二個信號音的頻率數(shù)據(jù)排列在第一個信號音的頻率數(shù)據(jù)之后,將第三個信號音的頻率數(shù)據(jù)排列在第二個信號音的頻率數(shù)據(jù)之后,如此類推,即執(zhí)行順序排列,并將所有信號音的頻率數(shù)據(jù)和控制映射到連續(xù)的內(nèi)存空間RAM (Random Access Memory,隨機(jī)存儲器)上,以形成所述的信號音數(shù)據(jù)隊(duì)列,可充分利用RAM中的資源和提高數(shù)據(jù)存取的效率。需要說明的是,本發(fā)明提供的信號音的生成方法包括但不限于構(gòu)造256個或256種信號音。
[0027]由于FPGA作為可編程邏輯器件之一,既解決了全定制電路的不足,又克服了原有可編程邏輯器件門電路數(shù)有限的缺點(diǎn),而且與傳統(tǒng)的可編程邏輯器件,如PAL(Programmable Array Logic,可編程化陣列邏輯)、GAL (Generic Array Logic,通用陣列邏輯)、CPLD (Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)相比,F(xiàn)PGA 還具有可快速成品,內(nèi)部邏輯可以被設(shè)計者反復(fù)修改與調(diào)試以及成本低的優(yōu)點(diǎn),且其內(nèi)部的Block RAM可構(gòu)造數(shù)據(jù)高速緩沖存儲器、深的FIF0(First Input First Output,先進(jìn)先出)和緩沖器等,因此,在本實(shí)施例中,優(yōu)選采用FPGA實(shí)現(xiàn)對所述信號數(shù)據(jù)隊(duì)列的配置,大大提高對大量信號音頻率數(shù)據(jù)的處理效率。
[0028]在本實(shí)施例中,所述的步驟SlOl就為根據(jù)實(shí)際需要控制調(diào)用任一個信號音進(jìn)行輸出而提供了數(shù)據(jù)基礎(chǔ)。
[0029]步驟S102:提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù)。在接收到所述信號音數(shù)據(jù)隊(duì)列的輸入時,需要將信號音數(shù)據(jù)隊(duì)列中所包含的各個信號音的頻率數(shù)據(jù)進(jìn)行提取和合理存儲,以便于控制信號音的輸出調(diào)用。
[0030]步驟S103:為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址所對應(yīng)的存儲空間上。具體地,信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù)以一個時隙間隔依次順序?qū)懭隦AM中,如將信號音數(shù)據(jù)隊(duì)列中的第32個頻率數(shù)據(jù)“0x23”,控制寫入RAM中的第32個時隙地址中。特別地,在PCM(Pulse-Code Modulation),即脈沖編碼調(diào)制中,通過用戶接口輸入信號音數(shù)據(jù)隊(duì)列時,每一個PCM時隙中攜帶著一個頻率數(shù)據(jù),將各個頻率數(shù)據(jù)對應(yīng)存儲在RAM中的相應(yīng)位置上。
[0031]步驟S104:控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址。
[0032]步驟S105:根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。在控制輸出某一指定信號音時,需要設(shè)置該信號音的頻率數(shù)據(jù)在RAM中的存儲位置。具體地,可根據(jù)該指定信號音所在的輸出時隙位置,查找FPGA中的地址控制器在所述輸出時隙位置所對應(yīng)的讀出地址,根據(jù)該讀出地址再搜索RAM中的頻率數(shù)據(jù)。如,用戶輸出接口中的目標(biāo)信號音需要在第32個時隙里面輸出某一信號音,因此,通過查找地址控制器中的地址32,可獲得地址32中所存儲的一讀出地址,如30,則根據(jù)讀出地址30查找RAM在位置30中存儲的頻率數(shù)據(jù),如“0x54”,并將該頻率數(shù)據(jù)“0x54”輸送到用戶輸出接口的第32個時隙上進(jìn)行輸出播放,完成“控制讀出”的過程。
[0033]計算機(jī)中的流水線指在CPU中由多個不同功能的電路單元組成一條指令處理流水線,然后將一條指令分成多個步驟后再由這些電路單元分別執(zhí)行,從而實(shí)現(xiàn)在一個CPU時鐘周期完成一條指令,因此提高CPU的運(yùn)算速度。常用的流水線處理過程包括指令預(yù)取、譯碼、執(zhí)行、寫回結(jié)果。在本實(shí)施例中采用流水線方式控制生成所述目標(biāo)信號音,可有效利用CPU的資源,提高CPU的處理效率。
[0034]本發(fā)明還提供了信號音的生成方法的又一實(shí)施例。在第一實(shí)施例的基礎(chǔ)上,第二實(shí)施例提供了提取信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù)的一種可實(shí)現(xiàn)方式,并可控制所述目標(biāo)信
號音輸出為單一信號音或復(fù)合信號音。
[0035]參見圖2,是本發(fā)明第二實(shí)施例提供的提取信號音數(shù)據(jù)隊(duì)列的頻率數(shù)據(jù)的步驟流程圖。
[0036]在本實(shí)施例中,進(jìn)一步地,所述提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),具體包括以下步驟:
步驟S201:設(shè)置任一信號音的基地址及與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度。
[0037]步驟S202:將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。并根據(jù)預(yù)先為各個信號音的頻率數(shù)據(jù)配置的寫入地址,將所述信號音的頻率數(shù)據(jù)依次存儲在所述寫入地址所對應(yīng)的存儲空間上。
[0038]具體地,F(xiàn)PGA通過總線進(jìn)行信號音數(shù)據(jù)隊(duì)列的寫入,僅在上電初始化的過程配置一次;如信號音數(shù)據(jù)隊(duì)列未發(fā)生改變時,則不需要進(jìn)行再次配置。在對其進(jìn)行存儲時,需要正確讀出頻率數(shù)據(jù)。在所述步驟S201中,所述信號音數(shù)據(jù)隊(duì)列存儲在RAM上,所述設(shè)置任一信號音的基地址,具體為:
當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址;在本實(shí)施例中,基地址為在信號音數(shù)據(jù)隊(duì)列提取的某一信號音的第一個頻率數(shù)據(jù)的位置;
當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
[0039]具體地,所述信號音數(shù)據(jù)隊(duì)列中包含多個信號音,在提取各個信號音時需要清楚獲得各個信號音的頻率數(shù)據(jù)的界線。
[0040]在本實(shí)施例中,在所述信號音頻率數(shù)據(jù)中提取各個信號音的頻率數(shù)據(jù)時,其主要工作過程為:
a.讀取預(yù)先配置的第一信號音ToneO的頻率數(shù)據(jù)的長度LengthO;
b.設(shè)定第一信號音ToneO在信號音數(shù)據(jù)隊(duì)列中的基地址BaseAddressO;具體地,所述第一信號音的基地址為所述RAM的首地址;
c.設(shè)置一個地址偏移量Offset,通過控制地址偏移量Offset從O到LengthO的逐一遞增;所述地址偏移量Offset的初始值為零,且當(dāng)?shù)刂菲屏縊ffset等于長度LengthO時,地址偏移量Offset恢復(fù)為零值; d.將地址BaseAddressO?BaseAddressO+LengthO作為第一信號音ToneO在信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù)的存儲地址,逐一讀出地址BaseAddressO?BaseAddressO+LengthO所指向的頻率數(shù)據(jù),完成第一信號音ToneO的頻率數(shù)據(jù)的提取;
e.讀取預(yù)先配置的第二信號音Tonel頻率數(shù)據(jù)的長度Lengthl;
f.設(shè)定第二信號音Tonel在信號音數(shù)據(jù)隊(duì)列中的基地址BaseAddressl;具體地,第二信號音Tonel的基地址為第一信號音ToneO的基地址BaseAddressO與第一信號音ToneO的頻率數(shù)據(jù)長度值 LengthO 之和,即 BaseAddressl= BaseAddressO+LengthO ;
g.控制地址偏移量Offset從O到Lengthl的逐一遞增;所述地址偏移量Offset的初始值為零,且當(dāng)?shù)刂菲屏縊ffset等于長度LengthO時,地址偏移量Offset恢復(fù)為零值;
h.將地址BaseAddressl?BaseAddressl+Lengthl作為第二信號音Tonel在信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù)的存儲地址,逐一讀出地址BaseAddressI?BaseAddressl+Lengthl所指向的頻率數(shù)據(jù),完成第二信號音Tonel的頻率數(shù)據(jù)的提?。?br>
如此類推,可將信號音數(shù)據(jù)隊(duì)列的所有信號音的頻率數(shù)據(jù)分別提取出來,以將各個信號音的頻率數(shù)據(jù)寫入信號音存儲器中,便于控制目標(biāo)信號音的輸出播放。
[0041]在本實(shí)施例中,通過執(zhí)行以上步驟,可以將信號音數(shù)據(jù)隊(duì)列中的各個信號音的頻率數(shù)據(jù)順序?qū)懭胍?RAM中,進(jìn)一步地,為了獲得目標(biāo)信號音,需要根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音,具體地,判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音;通過時隙控制,提取所述目標(biāo)信號音進(jìn)行輸出。
[0042]參看圖3,是本發(fā)明第二實(shí)施例提供的讀取目標(biāo)信號音的一種實(shí)現(xiàn)方式的步驟流程圖。
[0043]具體實(shí)施時,控制輸出目標(biāo)信號音時包括以下步驟:
步驟S301:判斷所述目標(biāo)信號音的類型,當(dāng)所述目標(biāo)信號音的類型為單一信號音時,執(zhí)行步驟S302 ;當(dāng)所述目標(biāo)信號音的類型為復(fù)合信號音時,執(zhí)行步驟S304。
[0044]步驟S302:將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),繼續(xù)執(zhí)行步驟S303。
[0045]步驟S303:將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述
單一信號音。
[0046]步驟S304:所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址;繼續(xù)執(zhí)行步驟S305。
[0047]步驟S305:控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號音。
[0048]其中,復(fù)合信號音是指由2種或2種以上的單一信號音產(chǎn)生的信號音。其產(chǎn)生原理可通過控制在不同的時間內(nèi)向固定的時隙中輸出不同的單一信號音的頻率數(shù)據(jù)而疊加得到。例如,當(dāng)需要在輸出信號的時隙I中固定產(chǎn)生的單一信號音“靜音”時,則控制時隙I與“靜音”所在的地址上,以在時隙I中固定輸出“靜音”的頻率數(shù)據(jù);當(dāng)需要在輸出信號的時隙2中固定產(chǎn)生復(fù)合信號音“忙音”時,即在一個周期內(nèi),第I秒播放450Hz正弦波,后4秒播放靜音,則復(fù)合信號音“忙音”的讀出地址包括單一信號音“450Hz正弦波”的讀出地址和單一信號音“靜音”的讀出地址,并在時間間隔T=I秒中對以上兩個單一信號音的讀出地址進(jìn)行切換。具體地,可控制在第I秒時配置讀出分地址1,將時隙2關(guān)聯(lián)到“450Hz正弦波”的頻率數(shù)據(jù);在第2秒時配置讀出分地址2,將時隙2關(guān)聯(lián)到“靜音”的頻率數(shù)據(jù);經(jīng)過5秒的時間則完成一個“忙音”的頻率數(shù)據(jù)的讀出;在第6秒時又寫控制讀出分地址,將時隙2關(guān)聯(lián)到“450Hz正弦波”的頻率數(shù)據(jù),如此循環(huán),則可實(shí)現(xiàn)在時隙2中固定產(chǎn)生復(fù)合信號音“忙音”。由此可知,產(chǎn)生目標(biāo)信號音的過程為“控制讀出”過程。
[0049]參看圖4,是本發(fā)明提供的信號音的生成系統(tǒng)的一個實(shí)施例的結(jié)構(gòu)示意圖。
[0050]在本實(shí)施例中,所述的信號音的生成系統(tǒng)的工作原理與第一實(shí)施例和第二實(shí)施例所提供的信號音的生成方法的基本原理相同,具體地,本實(shí)施例提供的信號音的生成系統(tǒng)包括:
數(shù)據(jù)產(chǎn)生器401,用于配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù),為生成任意一個信號音并進(jìn)行輸出播放而提供了數(shù)據(jù)基礎(chǔ)。
[0051]主控制器402,用于提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),并將所述各個信號音對應(yīng)的頻率數(shù)據(jù)存儲在信號音存儲器403上。
[0052]以及,時隙控制器404,用于為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址在所述信號音存儲器403中對應(yīng)的存儲空間上。
[0053]所述時隙控制器404,還用于控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址。
[0054]所述主控制器402,還用于根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的存儲在所述信號音存儲器403上的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。具體地,時隙控制器404包括時隙計數(shù)器4041和讀出地址存儲器4042 ;時隙計數(shù)器4041用于產(chǎn)生寫入地址與查找讀出地址存儲器4042中的所需要的讀出地址,即:既可通過控制寫入地址的跳變,在主控制402將信號音數(shù)據(jù)隊(duì)列中的各個信號音頻率數(shù)據(jù)順序?qū)懭胄盘栆舸鎯ζ?03 ;也可在讀出地址存儲器4042查找出目標(biāo)信號音的頻率數(shù)據(jù)所在的地址,從而根據(jù)該地址找到目標(biāo)信號音的頻率數(shù)據(jù),將其輸出至用戶輸出接口。
[0055]參看圖5,是本發(fā)明提供的信號音的生成系統(tǒng)的又一結(jié)構(gòu)示意圖。
[0056]如圖5所示,在一種可實(shí)現(xiàn)方式中,本發(fā)明提供的信號音的生成系統(tǒng)可進(jìn)一步細(xì)分為多個模塊。
[0057]其中,所述數(shù)據(jù)產(chǎn)生器401包括:
參數(shù)設(shè)置器4011,用于分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示。
[0058]數(shù)據(jù)排列器4012,用于將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
[0059]例如,首先,參數(shù)設(shè)置器4011配置該256個信號音的頻率數(shù)據(jù)的長度,每個信號音的頻率數(shù)據(jù)長度用16比特的二進(jìn)制數(shù)據(jù)表示,如靜音的數(shù)據(jù)長度為16,用二進(jìn)制數(shù)據(jù)表示為“0000 0000 0001 0000”,寫成16進(jìn)制后為“0x0010”,則各個信號音的頻率數(shù)據(jù)長度將形成由256個長度值組成的信號音頻率數(shù)據(jù)長度隊(duì)列(簡稱信號音長度隊(duì)列)。在本實(shí)施例中,用戶可根據(jù)實(shí)際應(yīng)用需要決定所產(chǎn)生的信號音的頻率數(shù)據(jù)的長度。特別地,當(dāng)某一信號音為周期性信號音時,其頻率數(shù)據(jù)的長度應(yīng)為該信號音在一個周期所需要的頻率數(shù)據(jù)長度的整數(shù)倍。
[0060]然后,參數(shù)設(shè)置器4011根據(jù)信號音長度隊(duì)列中的各個信號音的長度,對每個信號音中的各個頻率數(shù)據(jù)進(jìn)行配置,其中,每一個頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示,如,可將第一個信號音設(shè)為靜音,其16個頻率數(shù)據(jù)均為“0101 0100”,采用16進(jìn)制改寫為“0x54”;第二個信號音為450Hz正弦波,信號音長度為“0x0047”,其頻率數(shù)據(jù)分別為:“0x96,0x87,0x8D,0χ8Ε, 0χ8Ε, 0x82,0x84,0x94,0x46,0x10,0x06,OxOCj0x09,OxOEj 0x02,0x05,0x68,0xF6, 0x9D, 0x81,0x8C, 0x89,0x8E, 0x83,0x9B,OxEDj 0x78,OxIFj 0x00,OxOFj 0x09,OxOFj 0x00,0x19,0x66,0xE6, 0x99,0x80,0x8F, 0x89,0x8F, 0x80,0x9F, 0xF8, 0x6D, OxlBj 0x03,OxOEj 0x09,OxOCj 0x01,OxlDj 0x76,0xE8, 0x85,0x82,0x8E, 0x89,0x8C, 0x86,0x90,0xC6, 0x14,0x04,0x02, OxOE, OxOE, OxOD, 0x07, 0x16, 0xD5”,如此類推,根據(jù)用戶的需要對信號音的頻率數(shù)據(jù)進(jìn)行配置,因此可構(gòu)造大容量、多種類的信號音。
[0061]最后,在參數(shù)設(shè)置器4011將256個信號音的頻率數(shù)據(jù)均配置完畢之后,數(shù)據(jù)排列器4012將全部信號音的頻率數(shù)據(jù)進(jìn)行排列:依次將第二個信號音的頻率數(shù)據(jù)排列在第一個信號音的頻率數(shù)據(jù)之后,將第三個信號音的頻率數(shù)據(jù)排列在第二個信號音的頻率數(shù)據(jù)之后,如此類推,以形成所述的信號音數(shù)據(jù)隊(duì)列,依次為第一信號音Tone(T第256信號音Tone255,可充分利用存儲器中的資源和提高數(shù)據(jù)存取的效率。需要說明的是,本發(fā)明提供的信號音的生成方法包括但不限于構(gòu)造256個或256種信號音。
[0062]在本實(shí)施例中,優(yōu)選地,所述主控制器402為FPGA器件,設(shè)有:
基地址設(shè)置器4021,用于設(shè)置任一信號音的基地址;
長度控制器4022,用于設(shè)置與所述任一信號音的頻率數(shù)據(jù)對應(yīng)的長度;
地址偏移器4023,用于控制在提取所述任一信號音的頻率數(shù)據(jù)時的地址偏移量;
數(shù)據(jù)提取器4024,用于將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,根據(jù)所地址偏移量,逐一提取在所述信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù),直到所述地址偏移量的大小與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度相等,以實(shí)現(xiàn)在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。
[0063]由于FPGA作為可編程邏輯器件之一,既解決了全定制電路的不足,又克服了原有可編程邏輯器件門電路數(shù)有限的缺點(diǎn),而且與傳統(tǒng)的可編程邏輯器件,如PAL(Programmable Array Logic,可編程化陣列邏輯)、GAL (Generic Array Logic,通用陣列邏輯)、CPLD (Complex Programmable Logic Device,復(fù)雜可編程邏輯器件)相比,F(xiàn)PGA 還具有可快速成品,內(nèi)部邏輯可以被設(shè)計者反復(fù)修改與調(diào)試以及成本低的優(yōu)點(diǎn),且其內(nèi)部的Block RAM可構(gòu)造數(shù)據(jù)高速緩沖存儲器、深的FIF0(First Input First Output,先進(jìn)先出)和緩沖器等,因此,在本實(shí)施例中,優(yōu)選采用FPGA實(shí)現(xiàn)對所述信號音數(shù)據(jù)隊(duì)列的配置,構(gòu)建多個系統(tǒng)功能模塊實(shí)現(xiàn)對信號音的頻率數(shù)據(jù)的提取,大大提高對大量信號音頻率數(shù)據(jù)的處理效率。
[0064]進(jìn)一步地,所述信號音存儲器403為隨機(jī)存取存儲器RAM,用于存儲所述數(shù)據(jù)提取器4024所提取的各個信號音的頻率數(shù)據(jù),且,當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址;
當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
[0065]參看圖6,是本發(fā)明提供的信號音的生成系統(tǒng)的數(shù)據(jù)傳輸過程示意圖。
[0066]在本實(shí)施例中,所述信號音數(shù)據(jù)隊(duì)列中包含多個信號音,在提取各個信號音時需要清楚獲得各個信號音的頻率數(shù)據(jù)的界線。數(shù)據(jù)提取器4024通過控制總線向數(shù)據(jù)產(chǎn)生器301、時隙計數(shù)器4041等功能模塊發(fā)出相應(yīng)的控制指令,產(chǎn)生了信號音數(shù)據(jù)隊(duì)列、信號音頻率數(shù)據(jù)長度隊(duì)列(簡稱長度隊(duì)列)和地址偏移量隊(duì)列(簡稱偏移隊(duì)列),通過控制以上三個參量的變化而控制各個信號音的頻率數(shù)據(jù)順序?qū)懭胄盘栆舸鎯ζ?03中。 [0067]具體地,數(shù)據(jù)提取器4024在執(zhí)行提取信號音數(shù)據(jù)隊(duì)列中的各個信號音的頻率數(shù)據(jù),并將其依次存儲在信號音存儲器403中的主要工作過程與第一實(shí)施例所記載的步驟a^h等步驟基本相同,在此不再贅述。
[0068]進(jìn)一步地,本實(shí)施例主控制器402在控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音時,還包括:
信號音類型判別器,用于判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音;
單一信號音提取器,用于在所述目標(biāo)信號音為單一信號音時,將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),并將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述單一信號音;
以及,復(fù)合信號音提取器,用于在所述目標(biāo)信號音為復(fù)合信號音時,所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址,控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號
曰?
[0069]其中,復(fù)合信號音的產(chǎn)生原理與第二實(shí)施例所記載的相應(yīng)內(nèi)容相同,在此不再贅述。
[0070]參看圖7,是本發(fā)明提供的信號音的產(chǎn)生系統(tǒng)生成目標(biāo)信號音的實(shí)現(xiàn)原理圖。
[0071]具體地,不管目標(biāo)信號音為單一信號音或復(fù)合信號音,主控制器402通過對時隙計數(shù)器4041的控制,通過寫入地址總線輸出寫入地址,從而將信號音數(shù)據(jù)隊(duì)列中的各個信號音的頻率數(shù)據(jù)順序?qū)懭胄盘栆舸鎯ζ?03中;在提取目標(biāo)信號音時,通過對時隙計數(shù)器4041的控制,輸出對讀出地址存儲器4042進(jìn)行查找的地址,從而控制讀出地址存儲器4042輸出各個讀出地址或讀出分地址(對復(fù)合信號音而言),再根據(jù)相應(yīng)的讀出地址或讀出分地址讀取在信號音存儲器403中的頻率數(shù)據(jù),將其輸出給用戶輸出接口的輸出信號的相應(yīng)時隙中。其中,在對信號音頻率數(shù)據(jù)隊(duì)列順序?qū)懭胄盘栆舸鎯ζ?03時,時隙計數(shù)器4041的輸出值為用戶輸入接口將要寫入的頻率數(shù)據(jù)所在的時隙值;在讀取信號音存儲器403的頻率數(shù)據(jù)時,時隙計數(shù)器4041的輸出值為目標(biāo)信號音將要輸出至用戶輸出接口的相應(yīng)時隙位置。
[0072]實(shí)施本發(fā)明提供的信號音的生成方法及其系統(tǒng),用戶可通過控制信號音的頻率數(shù)據(jù)和頻率數(shù)據(jù)長度來靈活配置不同的信號音,將各個信號音的頻率數(shù)據(jù)進(jìn)行順序排列形成信號音數(shù)據(jù)隊(duì)列后,可將其中的各個信號音的頻率數(shù)據(jù)分別提取出來,以流水線的方式存儲在RAM中,產(chǎn)生大容量的信號音頻率數(shù)據(jù),便于信號音的設(shè)計實(shí)現(xiàn)和維護(hù),提高數(shù)據(jù)的處理效率;通過地址與時隙的控制,輸出目標(biāo)信號音,并通過時隙交換控制,靈活地將該目標(biāo)
信號音輸出為單一信號音或復(fù)合信號音。
[0073]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種信號音的生成方法,其特征在于,包括: 配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù); 提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù); 為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址所對應(yīng)的存儲空間上; 控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址; 根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。
2.如權(quán)利要求1所述的信號音的生成方法,其特征在于,所述提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),包括: 設(shè)置任一信號音的基地址及與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度; 將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。
3.如權(quán)利要求2所述的信號音的生成方法,其特征在于,所述信號音數(shù)據(jù)隊(duì)列存儲在RAM上,則所述設(shè)置任一 信號音的基地址,具體為: 當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址; 當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
4.如權(quán)利要求f3任一項(xiàng)所述的信號音的生成方法,其特征在于,所述配置信號音數(shù)據(jù)隊(duì)列,具體為: 分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示; 將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
5.如權(quán)利要求4所述的信號音的生成方法,其特征在于,所述根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音,具體為: 判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音; 通過時隙控制,提取所述目標(biāo)信號音進(jìn)行輸出,包括: 當(dāng)所述目標(biāo)信號音為單一信號音時,將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),并將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述單一信號音; 當(dāng)所述目標(biāo)信號音為復(fù)合信號音時,所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址,控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號音。
6.一種信號音的生成系統(tǒng),其特征在于,包括: 數(shù)據(jù)產(chǎn)生器,用于配置信號音數(shù)據(jù)隊(duì)列;所述信號音數(shù)據(jù)隊(duì)列包括多個信號音所對應(yīng)的頻率數(shù)據(jù); 主控制器,用于提取所述信號音數(shù)據(jù)隊(duì)列中的各個信號音對應(yīng)的頻率數(shù)據(jù),并將所述各個信號音對應(yīng)的頻率數(shù)據(jù)存儲在信號音存儲器上; 以及,時隙控制器,用于為各個所述信號音的頻率數(shù)據(jù)分別配置寫入地址,并將所述信號音的頻率數(shù)據(jù)存儲在所述寫入地址在所述信號音存儲器中對應(yīng)的存儲空間上; 所述時隙控制器,還用于控制產(chǎn)生用戶所需的目標(biāo)信號音的讀出地址; 所述主控制器,還用于根據(jù)所述讀出地址,控制與所述讀出地址對應(yīng)的存儲在所述信號音存儲器上的頻率數(shù)據(jù)依次順序讀出,以流水線方式生成所述目標(biāo)信號音。
7.如權(quán)利要求6所述的信號音的生成系統(tǒng),其特征在于,所述主控制器為FPGA器件,設(shè)有: 基地址設(shè)置器,用于設(shè)置任一信號音的基地址; 長度控制器,用于設(shè)置與所述任一信號音的頻率數(shù)據(jù)對應(yīng)的長度; 地址偏移器,用于控制在提取所述任一信號音的頻率數(shù)據(jù)時的地址偏移量; 數(shù)據(jù)提取器,用于將所述基地址作為提取所述信號音的頻率數(shù)據(jù)的起始地址,根據(jù)所地址偏移量,逐一提取在所述信號音數(shù)據(jù)隊(duì)列中的頻率數(shù)據(jù),直到所述地址偏移量的大小與所述信號音的頻率數(shù)據(jù)對應(yīng)的長度相等,以實(shí)現(xiàn)在所述信號音數(shù)據(jù)隊(duì)列中讀取與所述長度對應(yīng)的頻率數(shù)據(jù)作為所述信號音的頻率數(shù)據(jù)。
8.如權(quán)利要求7所述的信號音的生成系統(tǒng),其特征在于,所述信號音存儲器為隨機(jī)存取存儲器RAM,用于存儲所述數(shù)據(jù)提取器所提取的各個信號音的頻率數(shù)據(jù),且, 當(dāng)所述信號音為第一信號音時,所述第一信號音的基地址為所述RAM的首地址或者為一指定地址; 當(dāng)所述信號音為第N信號音時,所述第N信號音的基地址為:所述第(N-1)信號音的基地址+所述第(N-1)信號音的頻率數(shù)據(jù)的長度;其中N > 2。
9.如權(quán)利要求61任一項(xiàng)所述的信號音的生成系統(tǒng),其特征在于,所述數(shù)據(jù)產(chǎn)生器包括: 參數(shù)設(shè)置器,用于分別對多個信號音的參數(shù)進(jìn)行設(shè)置,所述參數(shù)包括信號音的長度和信號音的頻率數(shù)據(jù);其中,每個所述信號音的長度為組成所述信號音的頻率數(shù)據(jù)的個數(shù),采用16比特的二進(jìn)制數(shù)據(jù)表示;每個所述的頻率數(shù)據(jù)采用8比特的二進(jìn)制數(shù)據(jù)表示; 數(shù)據(jù)排列器,用于將每個所述信號音的頻率數(shù)據(jù)依次排列,形成所述信號音數(shù)據(jù)隊(duì)列。
10.如權(quán)利要求9所述的信號音的生成系統(tǒng),其特征在于,所述主控制器在控制與所述讀出地址對應(yīng)的頻率數(shù)據(jù)依次順序讀出,以生成所述目標(biāo)信號音時,還包括: 信號音類型判別器,用于判斷所述目標(biāo)信號音的類型,所述目標(biāo)信號音的類型包括單一信號音和復(fù)合信號音; 單一信號音提取器,用于在所述目標(biāo)信號音為單一信號音時,將第一時隙關(guān)聯(lián)至所述讀出地址所對應(yīng)的頻率數(shù)據(jù),并將所述頻率數(shù)據(jù)輸出至所述第一時隙,以在所述第一時隙中生成所述單一信號音; 以及,復(fù)合信號音提取器,用于在所述目標(biāo)信號音為復(fù)合信號音時,所述讀出地址包括M個讀出分地址,將第二時隙在時間間隔T的控制下依次關(guān)聯(lián)至所述M個讀出分地址,控制所述M個讀出分地址所對應(yīng)的頻率數(shù)據(jù)在所述時間間隔T切換輸出至所述第二時隙,以在所述第二時隙中疊加所述M個讀出分地址所對應(yīng)的信號音頻率數(shù)據(jù),生成所述復(fù)合信號曰?
【文檔編號】H04M1/253GK103647864SQ201310630754
【公開日】2014年3月19日 申請日期:2013年12月2日 優(yōu)先權(quán)日:2013年12月2日
【發(fā)明者】曾熙璘, 李寶勛, 方輝, 孫業(yè)全, 李敏 申請人:廣州廣哈通信股份有限公司