蔣富旭,馬 琪,楊 洋
(1.杭州電子科技大學(xué)微電子CAD研究所,浙江 杭州 310018;2.杭州微納科技有限公司,浙江 杭州 310012)
?
用于低音炮的數(shù)字低通濾波器算法實現(xiàn)
蔣富旭1,馬琪1,楊洋2
(1.杭州電子科技大學(xué)微電子CAD研究所,浙江 杭州 310018;2.杭州微納科技有限公司,浙江 杭州 310012)
介紹一種音頻低通濾波器的嵌入式軟件實現(xiàn)方法,先使用MATLAB設(shè)計符合指標(biāo)要求的數(shù)字低通濾波器,確定濾波器系數(shù);再采用嵌入式軟件實現(xiàn)低通濾波器算法.低通濾波器算法實現(xiàn)了設(shè)計指標(biāo)要求,已應(yīng)用于實際產(chǎn)品.
低音炮;數(shù)字低通濾波器;濾波器系數(shù)
人耳對不同頻率的聲音靈敏度、聞閥和痛閥都不一樣.200 Hz,30 dB的聲音和1 000 Hz,10 dB的聲音,人耳聽起來響度相同[1].如果音箱中低音混在一起,那么人耳區(qū)分比較困難,人們就感受不到低音的震撼力了.低音炮的是獨立的低音音箱,通常工作頻段在20~120 Hz[1].低音炮的內(nèi)置功放比主功放更大,才聽起來與主機(jī)箱中高頻音樂響度相同,在較寬的音量范圍內(nèi)整個系統(tǒng)才能保持一致的聽覺效果.在許多低音炮中,音頻低通濾波器都是采用硬件設(shè)計實現(xiàn),成本較高.本文實現(xiàn)了一種嵌入式軟件實現(xiàn)的低通濾波器算法,濾除高頻信號,保留低頻信號.算法設(shè)計的最初目的是應(yīng)用于低音炮,也可以經(jīng)過適當(dāng)修改應(yīng)用于其他數(shù)字信號處理產(chǎn)品上.
數(shù)字濾波器分為無限長脈沖響應(yīng)(Infinite Impulse Response, IIR)濾波器和有限長脈沖響應(yīng)(Finite Impulse Response, FIR)濾波器[2].IIR濾波器設(shè)計時只考慮幅頻特性,適用于對相位要求不敏感的場合,如語音通信等[2].FIR濾波器設(shè)計時實現(xiàn)線性相位較容易,一般同時考慮幅頻和相頻特性,更適用于對輸出波形有要求的應(yīng)用(波形傳輸、圖像信號處理等)中[2].所以針對低音炮選用了IIR濾波器.
濾波器設(shè)計理論已經(jīng)很成熟,有多種性能優(yōu)良的典型濾波器可供選擇(如巴特沃斯、切比雪夫、橢圓濾波器),可以使用MATLAB輔助設(shè)計.
數(shù)字信號處理中常用網(wǎng)絡(luò)結(jié)構(gòu)表示算法的實現(xiàn)[2].IIR級聯(lián)型網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,將系統(tǒng)函數(shù)H(z)的分子分母分解成二階子系統(tǒng).整個系統(tǒng)由多個二階子系統(tǒng)級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)(直接II型)實現(xiàn),如圖2所示.直接型網(wǎng)絡(luò)結(jié)構(gòu)公式[2]如下:
(1)
式中:N為濾波器的階數(shù),bi、ai為濾波器系數(shù).
圖1級聯(lián)型網(wǎng)絡(luò)結(jié)構(gòu)
圖2 IIR網(wǎng)絡(luò)的直接型網(wǎng)絡(luò)結(jié)構(gòu)
圖1、圖2中,只要知道每個二階子系統(tǒng)函數(shù)的分子分母系數(shù),便可以由輸入信號x(n)得到過濾后的輸出信號y(n),即第1個系統(tǒng)的輸出信號再作為第2個系統(tǒng)的輸入信號,依次處理,最終得到整個系統(tǒng)的輸出信號.
利用MATLAB工具軟件FDATool[3]設(shè)計出滿足指標(biāo)要求的濾波器,確定含有濾波器系數(shù)[4]的頭文件.
在滿足幅頻響應(yīng)指標(biāo)的條件下,通過比較不同種濾波器階數(shù),確定橢圓濾波器階數(shù)最低、效果最好[2].選用10階橢圓濾波器,44.1 kHz采樣率,100 Hz通帶截止頻率,設(shè)計的IIR低通濾波器仿真[3,5]效果如圖3所示.
圖3 MATLAB濾波仿真圖
從圖3中可以看出,設(shè)計的濾波器通帶截止頻率是99.6 Hz,3 dB通帶截止頻率是105 Hz,與設(shè)計指標(biāo)相符.
3.1WAV聲音文件解析
WAV文件[6]采用的主要編碼方式有脈沖編碼調(diào)制(Pulse Code Modulation,PCM)和自適應(yīng)差分脈沖編碼調(diào)制(Adaptive Differential Pulse Code Modulation,ADPCM).采用PCM脈沖編碼調(diào)制的采樣文件,其文件頭共44 Byte.
16位立體聲語音文件每個采樣點需分左聲道、右聲道進(jìn)行采樣,存放數(shù)據(jù),且單個聲道的采樣數(shù)據(jù)為2 Byte.
每個WAV文件,頭部包含基本信息,然后再是真實的聲音數(shù)據(jù).算法處理每幀數(shù)據(jù)時,處理的是真實數(shù)據(jù).用UltraEdit打開文件,查看文件頭可以解析整個文件詳細(xì)信息.
圖4 幀數(shù)據(jù)處理流程圖
3.2算法流程
音頻[7-8]數(shù)字信號依次被拆分成長度是512 Byte的幀數(shù)據(jù),分別濾波.每個音量大小由16個位元表示(其值范圍是-32 767~32 767).每幀數(shù)據(jù)算法處理流程如圖4所示.
3.3算法實現(xiàn)
低音炮是單聲道,真實數(shù)據(jù)分為左右聲道,算法處理左聲道數(shù)據(jù)便可實現(xiàn)低音炮的低通濾波.首先,循環(huán)控制左聲道每幀數(shù)據(jù)依次進(jìn)出二階子系統(tǒng),二階子系統(tǒng)的個數(shù)是(MWSPT_NSEC-1),MWSPT_NSEC是在濾波器系數(shù)頭文件中宏定義的.具體實現(xiàn)流程如圖5所示,其中函數(shù)SOrdFilter()實現(xiàn)的是IIR數(shù)字低通濾波器二階子系統(tǒng)即式⑴的功能,實現(xiàn)流程如圖6所示.
然后,將濾波后的數(shù)據(jù)(即圖5中的數(shù)組指針變量值*y)分別按左右聲道順序存儲(右聲道數(shù)據(jù)保持與左聲道數(shù)據(jù)相同),存放在數(shù)組指針變量output中,即為低音炮所需的低頻信號.具體實現(xiàn)流程圖如圖7所示.
圖5 算法實現(xiàn)流程
圖6 SOrdFilter()實現(xiàn)
圖7 左右聲道存儲實現(xiàn)
用Cool Edit[9]軟件顯示的低通濾波器算法處理前后的音頻數(shù)據(jù)波形如圖8和圖9所示,低通濾波器的截止頻率與設(shè)計要求、MATALB設(shè)計的仿真結(jié)果的比較如表1所示.
圖8 算法處理前的音頻波形
圖9 算法處理后的音頻波形
從表1可以看出,算法的實現(xiàn)效果與設(shè)計要求、MATLAB設(shè)計仿真效果相近,很好地濾除了高頻部分,保留了低頻信號.算法處理后的3 dB通帶截止頻率是129 Hz,基本達(dá)到仿真設(shè)計100 Hz的要求.
本文先用MATLAB設(shè)計濾波器,再用算法實現(xiàn)數(shù)字低通濾波器,保留的低頻信號滿足設(shè)計指標(biāo)要求,但在通帶截止頻率較小時仍有細(xì)微誤差,日后需要進(jìn)一步優(yōu)化.值得一提的是,實驗數(shù)據(jù)表明通帶截止頻率設(shè)定在300 Hz以上時,算法實現(xiàn)效果非常好,誤差只有1 Hz左右.其他類型濾波器也可以參考此算法實現(xiàn)方式,過濾得到所需頻段信號.
[1]阿龍.走進(jìn)PC低音箱[J].電腦知識與技術(shù)——經(jīng)驗技巧,2010(9):60-61.
[2]徐以濤,程云鵬,張冬梅,等.數(shù)字信號處理[M].西安:西安電子科技大學(xué)出版社,2009:129-201.
[3]施琴紅,趙明鏡.基于MATLAB/FDATOOL工具箱的IIR數(shù)字濾波器的設(shè)計及仿真[J].科技廣場,2010(7):56-58.
[4]PARHI K K,Liu Y.Architectures for IIR digital filters using stochastic computing[C]//Circuits and Systems(ISCAS),2014 IEEE International Symposium on.Melbourne VIC:IEEE,2014:373-376.
[5]嚴(yán)小軍,趙妮,秦泓江.基于MATLAB的IIR數(shù)字濾波器設(shè)計與仿真[J].計算機(jī)與現(xiàn)代化,2007(6):100-102.
[6]鄒明光,李芝棠.基于振幅值修改的wav音頻隱寫算法[J].通信學(xué)報,2014,35(Z1):36-40.
[7]DONG J,ZHANG X,WANG F,et al.Single-to-Dual channel NRZ-to-RZ format conversionby four-wave mixing in single semiconductor optical amplifier[J].Electronics Letters,2008,44(12):763-764.
[8]WAKIYAMA M,HIDAKA Y,NOZAKI K.An Audio Steganography by a Low-Bit Coding Method With Wave Files[C]//Intelligent Information Hiding and Multimedia Signal Processing(IIH-MSP),2010 Sixth International Conference on.Darmstadt:IEEE,2010:530-533.
[9]王發(fā)科.利用Cool Edit處理陜西關(guān)中方言語音信息[J].寶雞文理學(xué)院學(xué)報,2014,34(4):45-47.
The Implementation of Digital Low-pass Filter Algorithm for Subwoofer
JIANG Fuxu1, MA Qi1, YANG Yang2
(1.InstituteofMicro-electronicsCAD,HangzhouDianziUniversity,HangzhouZhejiang310018,China;2.HangzhouNanoICTechnologiesCo.Ltd,HangzhouZhejiang310012,China)
This paper introduces an embedded-software implementation method of digital low-pass filter for subwoofer. Firstly, MATALAB is used to design digital low-pass filter and getting the filter coefficients, then the digital low-pass filter algorithm is implemented with embedded-software. The algorithm has achieved primary demand and applied in products.
subwoofer; digital low-pass filter; filter coefficients
10.13954/j.cnki.hdu.2016.01.003
2015-06-24
蔣富旭(1989-),男,安徽六安人,碩士研究生,嵌入式系統(tǒng)設(shè)計.通信作者:馬琪研究員,E-mail:maq68@126.com.
TN911.72
A
1001-9146(2016)01-0012-04