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