《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于頻域?yàn)V波數(shù)字均衡器的設(shè)計(jì)
基于頻域?yàn)V波數(shù)字均衡器的設(shè)計(jì)
李倩然,周 南
摘要: 為了解決多頻段數(shù)字均衡濾波器處理過程中數(shù)據(jù)計(jì)算量的問題,通過對(duì)數(shù)字均衡器設(shè)計(jì)的分析,將數(shù)字音頻信號(hào)進(jìn)行頻域?yàn)V波處理,最終設(shè)計(jì)出一種高效的數(shù)字均衡濾波器。通過將數(shù)字信號(hào)在頻域中進(jìn)行傅里葉變換,提出了一種基于快速傅里葉變換原理的算法,該算法中碼位倒置和蝶形運(yùn)算方法的處理與通常的快速傅里葉變換相比,更有效地減少了數(shù)據(jù)的運(yùn)算量,減少了數(shù)據(jù)處理的時(shí)間。結(jié)果表明,使用該種算法設(shè)計(jì)的數(shù)字均衡濾波器與傳統(tǒng)的時(shí)域?yàn)V波方法相比,具有很好的實(shí)時(shí)處理效果。
Abstract:
Key words :

在音頻處理中,均衡器" title="均衡器">均衡器可以改變音頻信號(hào)的頻響特性,從而彌補(bǔ)信號(hào)在傳輸過程中的缺陷或是達(dá)到特定的聲音處理效果。通常情況下,均衡器將音頻處理信號(hào)(20~20 K)按一定的規(guī)律分為10段,15段,25段或31段來進(jìn)行調(diào)節(jié)。
    常采用的均衡器算法是使用IIR或者FIR濾波" title="濾波">濾波器濾波的設(shè)計(jì)方法。這種方法有幾個(gè)不足之處:IIR濾波器具有反饋回路,會(huì)出現(xiàn)相位偏差;FIR濾波器會(huì)造成很大的時(shí)間延遲,這對(duì)于實(shí)時(shí)濾波是非常不利的。另外,如果使用IIR或者FIR濾波器,所調(diào)節(jié)的頻段越多,增加的濾波器的個(gè)數(shù)也越多,運(yùn)算量也明顯增大。而通過傅里葉變換設(shè)計(jì)均衡器,不但在濾波的過程中具有很大的優(yōu)越性,不存在相位誤差、時(shí)間延遲這些問題,對(duì)調(diào)節(jié)多段均衡程序運(yùn)算量上也有明顯的減少。另外,這段程序是在TMS320DM642上進(jìn)行的,該芯片的特點(diǎn)就是可以進(jìn)行快速的乘法運(yùn)算,因此,卷積等運(yùn)算可以在芯片上高速的運(yùn)行。

1 設(shè)計(jì)原理
   
均衡器的基本功能就是調(diào)節(jié)信號(hào)各段頻率的強(qiáng)弱,從而彌補(bǔ)信號(hào)在傳輸過程中的缺陷或是達(dá)到特定的聲音處理效果。因此為了達(dá)到這個(gè)目的,調(diào)節(jié)信號(hào)的各段頻率可以將輸入的信號(hào)進(jìn)行以下處理:
    1)對(duì)輸入的信號(hào)進(jìn)行快速傅里葉變換,使得各個(gè)頻段的信號(hào)分開;
    2)對(duì)需要變化的頻點(diǎn)及其周圍的頻點(diǎn)進(jìn)行相應(yīng)的處理;
    3)將處理后的信號(hào)進(jìn)行傅里葉反變換,得到最后需要的信號(hào)。

2 傅里葉變換
   
快速傅里葉變換的時(shí)域抽取方法是將輸入的信號(hào)按奇偶分開,打亂原來的順序,之后進(jìn)行蝶形運(yùn)算,以保證輸出的序列是按著時(shí)間順序排列的。分解過程遵循兩條規(guī)則:1)對(duì)時(shí)間進(jìn)行偶奇分解,即碼位倒置;2)對(duì)頻率進(jìn)行前后分解,即蝶形運(yùn)算。
2.1 碼位倒置
  
將長(zhǎng)度為Ⅳ的時(shí)域序列x(n)按n的奇偶分為兩組,變成兩個(gè)N/2序列
   
    碼位倒置可以將輸入數(shù)據(jù)依照奇偶分開,如表1所示。


2.2 蝶形運(yùn)算
2.2.1 蝶形運(yùn)算的原理

    蝶形變換是將處理的信號(hào)進(jìn)行分級(jí)處理,逐次進(jìn)行DFT變換,以減少?gòu)?fù)數(shù)的乘法減少運(yùn)算次數(shù)。對(duì)于輸入x(n)序列奇偶按分開的兩個(gè)序列的DFT運(yùn)算分別是
   
2.2.2 蝶形運(yùn)算的算法
   
蝶形運(yùn)算是逐級(jí)運(yùn)算累加實(shí)現(xiàn)的,在傳統(tǒng)的蝶形運(yùn)算中,旋轉(zhuǎn)因子的N是保持一個(gè)固定的值而k是不斷變化的,第一級(jí)到第級(jí)中,k的變化是以2為底的冪指數(shù)的變化,而到第級(jí)時(shí),k的變化則是0,1,…,(N/2)-1。如果依照k的這種變化規(guī)律,在第級(jí)時(shí),就很難繼續(xù)依照前級(jí)進(jìn)行變化。因此,根據(jù)以上分析,采用另外一種思路來對(duì)蝶形運(yùn)算進(jìn)行重新的整理。在旋轉(zhuǎn)因子中,N是每個(gè)
蝶形單元輸入數(shù)據(jù)的個(gè)數(shù),k的變化規(guī)律是0,1,…,(N/2)-1,采用這種方法就可以有效的縮短代碼的長(zhǎng)度,提高運(yùn)行速度。圖1為蝶形運(yùn)算流程圖。


2.3 快速傅里葉變換的實(shí)現(xiàn)
   
蝶形運(yùn)算的旋轉(zhuǎn)因子,輸入的復(fù)數(shù)表示為InputData=RealInData+j*ImagInData,因此在計(jì)算過程中,旋轉(zhuǎn)因子和輸入數(shù)據(jù)的計(jì)算過程是將實(shí)數(shù)和復(fù)數(shù)分開計(jì)算所得到的。
    因?yàn)樾D(zhuǎn)因子中k=0,1,…,(N/2)-1,因此隨著k的增長(zhǎng)cos(-2Pik/N)和sin(-2Pik/N)也相繼發(fā)生成倍的變化。
    對(duì)這一現(xiàn)象采用的處理方法是使用正余弦的倍角公式:
   
    這樣,處理的變化的過程就變?yōu)樘幚碚液陀嘞冶督亲兓倪^程,從而簡(jiǎn)化了程序。部分程序如下:

    其中,Block是每一個(gè)蝶形單元輸入個(gè)數(shù)的一半即N/2,r0和i0分別是旋轉(zhuǎn)因子的實(shí)部和虛部。

3 均衡處理
   
對(duì)于頻點(diǎn)的調(diào)節(jié)是調(diào)節(jié)頻點(diǎn)周圍這一段的頻率幅度的大小,以最終達(dá)到調(diào)節(jié)頻率的目的。為了防止在抽取頻點(diǎn)時(shí),因某一點(diǎn)的調(diào)節(jié)范圍過大而使這一段的聲音聽起來不和諧,在對(duì)頻點(diǎn)進(jìn)行調(diào)節(jié)時(shí),采用的方法是調(diào)節(jié)該頻點(diǎn)及其附近的頻點(diǎn)以達(dá)到最終的調(diào)節(jié)效果。
    算法的實(shí)現(xiàn):取頻率點(diǎn)周圍的點(diǎn),將所取的點(diǎn)調(diào)節(jié)的范圍是該點(diǎn)與對(duì)應(yīng)頻率點(diǎn)的距離的反比,這樣就避免該點(diǎn)頻率的影響太強(qiáng)烈。算法流程如圖2所示。針對(duì)某一個(gè)頻點(diǎn)的處理的程序如下:
   


    Mid為調(diào)節(jié)頻點(diǎn)對(duì)應(yīng)的頻率軸的位置,i為Mid相鄰近的后面的點(diǎn)。

4 結(jié)束語(yǔ)
  
本文提出的采用頻率濾波器對(duì)均衡器進(jìn)行設(shè)計(jì)的方法,區(qū)別于其他的均衡器的實(shí)時(shí)濾波器的設(shè)計(jì),既避免了IIR濾波器相位偏移的現(xiàn)象,又避免了FIR濾波器的延遲,因此對(duì)頻率濾波具有很好的效果。另外,由于處理采用頻域?yàn)V波,在處理音頻信號(hào)時(shí)可以只經(jīng)過一次傅里葉變換,就能處理各個(gè)頻段的信號(hào),大大減少了數(shù)據(jù)的運(yùn)算量,因此使用頻域?yàn)V波器可以更快捷、更高效地對(duì)數(shù)據(jù)進(jìn)行處理。在使用該種方法
進(jìn)行濾波處理時(shí),應(yīng)注意采樣點(diǎn)個(gè)數(shù)的選取,可以根據(jù)處理器緩存的大小決定采樣點(diǎn)的個(gè)數(shù),從而可達(dá)到更好的處理效果。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。