用FPGA實(shí)現(xiàn)音頻采樣率的轉(zhuǎn)換
如今,即使低成本FPGA也能提供遠(yuǎn)遠(yuǎn)大于DSP的計(jì)算能力。目前的FPGA包含專用乘法器甚至DSP乘法/累加(MAC)模塊,能以550MHz以上的時(shí)鐘速度處理信號(hào)。
本文引用地址:http://m.butianyuan.cn/article/191789.htm不過,直到現(xiàn)在,音頻信號(hào)處理中還很少需要用到這些功能。串行實(shí)現(xiàn)千赫級(jí)音頻算法使用的資源與數(shù)百兆赫級(jí)信號(hào)處理所需的完全相同。
因此,像PLD和FPGA這類可編程邏輯元件很少用來處理低頻信號(hào)。畢竟,與基于傳統(tǒng)DSP的實(shí)現(xiàn)相比,用硬件并行處理數(shù)??算無益可言;對(duì)于如此低的采樣率,大多數(shù)串行DSP實(shí)現(xiàn)都是綽綽有余。其實(shí),音頻應(yīng)用所含乘法運(yùn)算之多曾使其只能使用很大的FPGA實(shí)現(xiàn)。因此,用DSP實(shí)現(xiàn)低采樣率音頻應(yīng)用曾經(jīng)比使用大型FPGA更有效DD成本較低,而且有成熟的軟件支持。
Synplicity公司最近推出的Synplify DSP綜合工具可以將具有大量乘法運(yùn)算和低采樣率的算法有效地映射到FPGA中的專用DSP模塊上。該工具基于MathWorks公司推出的十分普及的 MATLAB和Simulink工具。
算法先用專用模塊集或?qū)S械摹癕”腳本語言描述定義,然后轉(zhuǎn)換成RTL硬件描述語言。該模塊集允許單速率和多速率實(shí)現(xiàn)。它不僅能生成VHDL和Verilog代碼,還可以處理定點(diǎn)量化、流水線和環(huán)路展開這類任務(wù),并且能連接到 Simulink開發(fā)環(huán)境中的模塊集進(jìn)行仿真(見圖1)。
圖1:在 MATLAB/Simulink中實(shí)現(xiàn)、量化并驗(yàn)證模型。Synplify DSP工具可以將模型轉(zhuǎn)換成RTL代碼,并針對(duì)空間或速度對(duì)這些代碼進(jìn)行優(yōu)化。
應(yīng)用示例:采樣率轉(zhuǎn)換
下面以音頻采樣率轉(zhuǎn)換器作為實(shí)例加以說明。這種轉(zhuǎn)換器可以將信號(hào)從一種采樣率轉(zhuǎn)換成另一種采樣率,而對(duì)信號(hào)的影響極小。處理具有不同采樣率的信號(hào)時(shí)需要用到這種轉(zhuǎn)換器。
例如,光盤的采樣率是44.1kHz,而數(shù)字音頻磁帶的采樣率通常是48kHz。由于存在數(shù)據(jù)格式轉(zhuǎn)換,用新采樣率播放源數(shù)據(jù)就不夠了。以數(shù)字音頻磁帶使用的采樣率播放光盤資料會(huì)引起失真。因此,必須對(duì)采樣率加以轉(zhuǎn)換。
處理音頻信號(hào)時(shí)使用的采樣頻率有多種,常見的有 44.1kHz、48kHz、96kHz和192kHz。轉(zhuǎn)換過程必須慎重,務(wù)必保持0-20kHz可聞?lì)l率信號(hào)的完整性。應(yīng)保持信號(hào)所含信息的變化最小,以免音質(zhì)下降(圖2)。
圖2:用Synplify DSP模塊集和Simulink FDA工具提供的模塊實(shí)現(xiàn)采樣率轉(zhuǎn)換器。用Simulink模塊集元件進(jìn)行驗(yàn)證。
評(píng)論