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