語(yǔ)音編碼技術(shù)在當(dāng)今數(shù)字通信尤其在無(wú)線系統(tǒng)中發(fā)揮著越來(lái)越重要的作用。利用語(yǔ)音編碼技術(shù)可有效降低信息存儲(chǔ)量、提高信道利用率。混合激勵(lì)線性預(yù)測(cè)(MELP)語(yǔ)音編碼算法能在較低碼率下提供較高的語(yǔ)音質(zhì)量、自然度和清晰度,已成為美國(guó)國(guó)防部新的2.4 Kb/s的語(yǔ)音編碼標(biāo)準(zhǔn)。
Nios II處理器是Intel公司為Altera公司推出的32位精簡(jiǎn)指令處理器軟核。在Altera公司推出的軟件SOPC中加載Nios II軟核和相應(yīng)的外圍接口以及與定義相應(yīng)的自定義指令,對(duì)設(shè)計(jì)進(jìn)行綜合,下載到FPGA中就可以方便地實(shí)現(xiàn)一個(gè)具有高速DSP功能的嵌入式處理器[1]。
由硬件實(shí)現(xiàn)復(fù)雜的算法通常比軟件實(shí)現(xiàn)更高效。利用Altera公司的Nios II嵌入式處理器的定制指令,可以把用戶自定義的功能直接添加到Nios IICPU的算術(shù)邏輯單元(ALU)中,以加快專項(xiàng)任務(wù)的執(zhí)行速度。自定義指令的優(yōu)勢(shì)就在于可以將程序代碼中的瓶頸部分改用硬件指令支持,用自定義的指令使程序得到加速。
1 MELP的構(gòu)成
MELP聲碼器的采樣率為8 kHz,每個(gè)樣點(diǎn)值用16bit量化,每180個(gè)樣點(diǎn)為1幀,幀長(zhǎng)22.5ms,每幀量化bit數(shù)為54bit,總的速率為2.4 Kb/s。
MELP聲碼器是建立在傳統(tǒng)的二元激勵(lì)LPC模型基礎(chǔ)上,采用了混合激勵(lì)、非周期脈沖、自適應(yīng)譜增強(qiáng)、脈沖整形濾波和傅氏級(jí)數(shù)幅度值等5項(xiàng)新技術(shù),使得合成語(yǔ)音能更好地?cái)M合自然語(yǔ)音。圖1所示為MELP編解碼原理框圖[2]。
2 Nios II可嵌入軟核的特點(diǎn)
Nios嵌入式處理器是用戶可配置的通用RISC嵌入式處理器,是一個(gè)非常靈活、強(qiáng)大的處理器,因此已成為世界上最流行的嵌入式處理器[3];采用改進(jìn)的哈佛存儲(chǔ)器結(jié)構(gòu),CPU帶有分離的數(shù)據(jù)和程序存儲(chǔ)器總線控制。SOPC Builder系統(tǒng)開發(fā)工具允許用戶容易地指定系統(tǒng)中Avalon控制器和從屬設(shè)備之間的連接,這些從屬設(shè)備可以是存儲(chǔ)器或外圍設(shè)備。
Nios指令總線為16位,用于從存儲(chǔ)器中讀取指令。Nios數(shù)據(jù)總線寬度為16位或32位,分別用于Nios CPU的16位或32位配置。
2.1 指令系統(tǒng)
Nios指令系統(tǒng)支持C和C++程序編譯,包括算術(shù)和邏輯運(yùn)算、位操作、字節(jié)讀、數(shù)據(jù)傳送、流程控制和條件轉(zhuǎn)移等指令。指令系統(tǒng)包含豐富的尋址方式以減少代碼長(zhǎng)度和提高處理器性能。
2.2 寄存器組
Nios CPU有1個(gè)大容量的窗口化的通用寄存器組、8個(gè)控制寄存器、1個(gè)程序計(jì)數(shù)器和1個(gè)用于指令前綴的K寄存器。通用寄存器在16位Nios CPU中是16位,在32位Nios CPU中是32位。寄存器組可配置為包含128、256或512個(gè)寄存器。軟件可以通過(guò)包含32個(gè)寄存器的滑動(dòng)窗口存取這些寄存器,滑動(dòng)窗口的移動(dòng)間隔是16個(gè)寄存器,且允許快速地進(jìn)行寄存器切換,加速子程序的調(diào)用和返回。