張芳杰,王一凡,桑晉秋,鄭成詩(shī),李曉東
(1.中國(guó)科學(xué)院聲學(xué)研究所,北京 100190;2.中國(guó)科學(xué)院噪聲與振動(dòng)重點(diǎn)實(shí)驗(yàn)室,北京 100190;3.中國(guó)科學(xué)院大學(xué),北京 100049)
隨著科技和社會(huì)的不斷發(fā)展,噪聲污染和治理受到越來(lái)越多的重視。傳統(tǒng)噪聲控制方法主要采用隔聲、吸聲等無(wú)源方式,該方式對(duì)中高頻降噪效果明顯,但針對(duì)低頻噪聲要求材料的體積和質(zhì)量大,在多數(shù)場(chǎng)景中往往難以實(shí)現(xiàn)。有源噪聲控制技術(shù)利用控制系統(tǒng)產(chǎn)生反向聲波來(lái)抵消目標(biāo)位置的噪聲,從而實(shí)現(xiàn)消除噪聲的目的[1-7]。
文中旨在設(shè)計(jì)出一套能夠滿足多通道局部有源噪聲控制技術(shù)需求的系統(tǒng)。該系統(tǒng)具有支持通道數(shù)多、系統(tǒng)延時(shí)低、實(shí)時(shí)處理能力強(qiáng)等特點(diǎn),并且兼容音頻播放、回聲抵消功能。
有源噪聲控制技術(shù)原理圖如圖1 所示。
圖1 有源噪聲控制原理
作為有源噪聲控制中的一類,局部有源噪聲控制的研究和應(yīng)用是近期熱點(diǎn)[8-11]。同時(shí),如何實(shí)現(xiàn)音頻播放與有源噪聲控制功能的并發(fā),并消除音頻播放對(duì)有源噪聲控制過(guò)程的干擾,具有較大的市場(chǎng)需求。然而,有別于耳機(jī)等有源噪聲控制場(chǎng)景,局部有源噪聲控制技術(shù)的高性能實(shí)現(xiàn)對(duì)系統(tǒng)平臺(tái)的要求極高,研制相應(yīng)的實(shí)時(shí)信號(hào)采集、處理系統(tǒng)是順利開展相關(guān)工作的重要一環(huán)。
局部有源噪聲控制系統(tǒng)目標(biāo)區(qū)域的噪聲源來(lái)波方向復(fù)雜、時(shí)變性高,在局部空間有源噪聲控制的應(yīng)用中,往往需要由多個(gè)傳聲器撿拾參考信號(hào)和誤差信號(hào)作為輸入,并且需要生成多路控制信號(hào)饋給揚(yáng)聲器,以更好地消除噪聲和擴(kuò)大靜音區(qū)范圍。當(dāng)輸入和輸出通道數(shù)增多時(shí),系統(tǒng)的數(shù)據(jù)采集和播放模塊變得復(fù)雜。同時(shí),通道數(shù)的增加導(dǎo)致計(jì)算復(fù)雜度急劇上升,如采用時(shí)域自適應(yīng)控制算法,為了實(shí)現(xiàn)實(shí)時(shí)控制,系統(tǒng)的計(jì)算性能要求極高。
隨著各類音頻通信協(xié)議的不斷發(fā)展,音頻通信接口不斷增加,常見(jiàn)的音頻來(lái)源包括Micro SD 卡、網(wǎng)絡(luò)數(shù)據(jù)流、藍(lán)牙通信接口、音頻模擬信號(hào)線等。為了在高性能有源噪聲控制平臺(tái)的基礎(chǔ)上實(shí)現(xiàn)音頻播放并且支持回聲抵消功能,文中采用易擴(kuò)展、可升級(jí)的獨(dú)立音頻播放管理模塊。在設(shè)計(jì)多通道、高性能有源噪聲控制系統(tǒng)時(shí)預(yù)留出排針,并以子板形式設(shè)計(jì)與接口匹配的相應(yīng)音頻及其他對(duì)外接口管理模塊。文中系統(tǒng)整體設(shè)計(jì)框圖如圖2 所示。
圖2 系統(tǒng)整體設(shè)計(jì)框圖
除了電源、時(shí)鐘等配套模塊外,系統(tǒng)包括三個(gè)部分:①以XC7K325T 型號(hào)FPGA 為核心處理器的信號(hào)采集、輸出及邏輯管理模塊[12-14];②以TMS320C6678型號(hào)DSP 為核心的信號(hào)處理模塊;③以XC7Z020 型號(hào)ZYNQ 為核心處理器的音頻、視頻及其他對(duì)外接口管理模塊。
TMS320C6678是TI公司開發(fā)的高性能八核C66x定點(diǎn)和浮點(diǎn)DSP,可以支持高達(dá)1.4 GHz主頻[15-16]。單核的定點(diǎn)數(shù)據(jù)處理能力為44.8 GMAC,浮點(diǎn)數(shù)據(jù)處理能力為22.4 GFLOP,能夠滿足多通道實(shí)時(shí)計(jì)算的需求。
XC7Z020 是Xilinx 公司開發(fā)的一款小型SOC,內(nèi)置了雙核Cortex-A9 內(nèi)核的ARM 處理器和較低資源的FPGA,適合進(jìn)行音頻以及其他對(duì)外數(shù)字接口的邏輯管理[17-19]。
ARM 具有外圍標(biāo)準(zhǔn)接口豐富、驅(qū)動(dòng)資源充足并且可搭載Linux 操作系統(tǒng)進(jìn)行各類規(guī)范處理的優(yōu)點(diǎn),但是對(duì)非標(biāo)準(zhǔn)接口兼容性較差且計(jì)算能力受限。FPGA 具有極高的并行計(jì)算能力,接口豐富,方便實(shí)現(xiàn)各類非標(biāo)準(zhǔn)接口和數(shù)據(jù)流管理,但是復(fù)雜算法的開發(fā)難度大且程序綜合時(shí)間長(zhǎng)。DSP 以特定的架構(gòu)實(shí)現(xiàn)流水線計(jì)算,能夠以較低主頻實(shí)現(xiàn)高速計(jì)算,相對(duì)于FPGA 算法開發(fā)周期短,但是其接口資源較少,較難實(shí)現(xiàn)各類非標(biāo)準(zhǔn)通信。
文中結(jié)合三類處理器的優(yōu)勢(shì),利用FPGA 實(shí)現(xiàn)傳聲器信號(hào)的實(shí)時(shí)采集、控制信號(hào)的實(shí)時(shí)輸出和數(shù)據(jù)預(yù)處理,并且實(shí)現(xiàn)該模塊與ZYNQ 和DSP 之間的高速通信;接著利用DSP 的EMIF16 接口逐點(diǎn)接收FPGA 的各類數(shù)據(jù),之后實(shí)現(xiàn)有源噪聲控制算法的計(jì)算,并將控制系統(tǒng)回傳至FPGA;最后利用ZYNQ 實(shí)現(xiàn)SD 卡中音頻數(shù)據(jù)的讀取、用戶控制命令的獲取,并通過(guò)特定協(xié)議將數(shù)據(jù)傳輸至FPGA。
該模塊最主要的功能包括兩方面:一方面,通過(guò)控制ADC 芯片實(shí)現(xiàn)傳聲器信號(hào)采集,并根據(jù)EMIF16接口協(xié)議上傳采集數(shù)據(jù);另一方面,根據(jù)EMIF16 接口協(xié)議接收控制信號(hào),并由DAC 芯片轉(zhuǎn)換成模擬信號(hào)輸出。
在實(shí)現(xiàn)數(shù)據(jù)采集過(guò)程中,硬件電路設(shè)計(jì)示意圖如圖3 所示。
圖3 數(shù)據(jù)采集過(guò)程示意圖
在調(diào)理電路的干凈直流偏置下,傳聲器產(chǎn)生的微弱交流信號(hào)疊加在直流信號(hào)上,輸出到模擬信號(hào)處理電路。模擬信號(hào)處理電路包括隔直電路、一級(jí)交流增益電路、帶通濾波電路、二級(jí)交流增益電路以及低通濾波電路。隔直電流的功能是隔離輸入的直流成分,保證后級(jí)的信號(hào)增益過(guò)程中信號(hào)不會(huì)出現(xiàn)飽和問(wèn)題;兩級(jí)交流增益電路的設(shè)計(jì)是為了在中間插入帶通濾波器,進(jìn)而降低模擬信號(hào)中的噪聲分量;最后一級(jí)低通濾波電路為抗混疊濾波電路,用于濾除ADC 電路的帶外信號(hào)。模擬信號(hào)經(jīng)過(guò)ADC 電路后產(chǎn)生數(shù)字信號(hào),在FPGA 的邏輯控制下,數(shù)字信號(hào)快速發(fā)送到FPGA 內(nèi)部相應(yīng)的寄存器。
腦科學(xué),正成為生命科學(xué)中最活躍的一個(gè)分支,21世紀(jì)的腦科學(xué)最終將解開大腦的終極秘密,并攻克若干大腦疾病,讓我們擁有更健康的大腦。
該系統(tǒng)中,使用的ADC 器件為ADI 公司生產(chǎn)的AD7606B 型號(hào)芯片,該芯片為8 通道DAS、內(nèi)置16位、800 kSPS 雙極性輸入的同步采樣ADC,輸入的雙極差分范圍支持±10 V、±5 V 和±2.5 V 三檔,滿足多通道、高速采樣和高精度轉(zhuǎn)換的要求。
在實(shí)現(xiàn)控制信號(hào)輸出的過(guò)程中,硬件部分示意圖如圖4 所示。
圖4 控制信號(hào)輸出過(guò)程示意圖
FPGA 在接收到DSP 發(fā)送的數(shù)字控制信號(hào)后,首先通過(guò)控制DAC 芯片產(chǎn)生對(duì)應(yīng)的模擬信號(hào)。模擬信號(hào)經(jīng)過(guò)模擬信號(hào)處理電路和功放電路輸出到揚(yáng)聲器。模擬信號(hào)處理電路包含了重構(gòu)濾波電路、增益匹配電路、帶通濾波電路以及阻抗匹配電路。重構(gòu)濾波電路用以消除DAC 轉(zhuǎn)換過(guò)程產(chǎn)生的高頻噪聲,增益匹配電路用以實(shí)現(xiàn)DAC 輸出模擬信號(hào)范圍與功放輸入信號(hào)范圍之間的匹配帶通,濾波電路用以降低非關(guān)注頻段的信號(hào),阻抗匹配電路用以確保輸入到功放電路的信號(hào)與模擬信號(hào)處理電路的開環(huán)輸出信號(hào)一致。功放電路將輸入的信號(hào)放大后輸出到揚(yáng)聲器,即實(shí)現(xiàn)控制聲信號(hào)的播放。
該系統(tǒng)中使用的DAC 器件為ADI 公司生產(chǎn)的LTC2755-16 芯片,該芯片是具有并行I/O 的四通道電流輸出型16 位SoftSpan DAC。在雙極輸出模式下支持±5 V、±10 V、±2.5 V 以及-2.5~7.5 V 四種設(shè)置,且具有2 μs 穩(wěn)定時(shí)間及±1 LSB 的優(yōu)異性能,能夠滿足系統(tǒng)對(duì)高速轉(zhuǎn)換、低噪聲和多通道的需求。
該模塊的功能是實(shí)現(xiàn)SD 卡中音頻文件的讀取、網(wǎng)絡(luò)接口視頻信號(hào)的接收、遠(yuǎn)程服務(wù)器控制信號(hào)的傳遞等功能。模塊硬件框圖如圖5 所示。
圖5 模塊硬件框圖
音樂(lè)信號(hào)存儲(chǔ)在SD 卡中,視頻信號(hào)通過(guò)RJ45接口并經(jīng)過(guò)PHY 芯片后傳輸?shù)絑YNQ 芯片中,外部控制命令可通過(guò)Mini USB 口傳遞到模塊內(nèi)。ZYNQ芯片內(nèi)部包含PS 端和PL 端兩部分,PS 部分由ARM處理器主導(dǎo),負(fù)責(zé)SD 卡管理、網(wǎng)絡(luò)接口通信、串口命令處理等功能;PL 部分主要為小型FPGA,可通過(guò)并行總線與主FPGA 芯片XC7K325T 之間進(jìn)行數(shù)據(jù)交互。ZYNQ 芯片內(nèi)部的PS 部分與PL 部分通過(guò)axi4總線互聯(lián)。axi4 總線是ARM 公司開發(fā)的AMBA 總線中的一部分,包括axi4-lite、axi4-full 和axi4-stream三種類型,能夠?qū)崿F(xiàn)兩部分不同數(shù)據(jù)類型的高速通信。
核心信號(hào)處理模塊由TMS320C6678 處理器主導(dǎo),在該系統(tǒng)中除最小系統(tǒng)外,完成的主要功能為通過(guò)EMIF16 接口收發(fā)數(shù)據(jù)以及實(shí)現(xiàn)高速計(jì)算。
為了實(shí)現(xiàn)大量數(shù)據(jù)的緩存,該模塊中配置了四片MT41J128M16HA 緩存芯片以支持1 GB 緩存。同時(shí),利用NAND512R3A2DZA6 型號(hào)的Flash 實(shí)現(xiàn)程序和數(shù)據(jù)的存儲(chǔ)。
TMS320C6678 芯片對(duì)各路電源和時(shí)鐘的上電順序有嚴(yán)格要求,系統(tǒng)支持I/O 先上電和內(nèi)核先上電兩種模式。該系統(tǒng)采用內(nèi)核先上電模式(Core-before-IO),所有相關(guān)的電源芯片、時(shí)鐘芯片的使能信號(hào)和PowerGood 信號(hào)均由XC7K325T 芯片進(jìn)行控制。
在不需要音頻播放的工作場(chǎng)景中,為了實(shí)現(xiàn)有源噪聲控制功能,文中采用FPGA+DSP 的整體方案設(shè)計(jì)。所設(shè)計(jì)的系統(tǒng)數(shù)據(jù)流示意圖如圖6 所示。在FPGA 的硬線邏輯的管理下,ADC 芯片根據(jù)采樣時(shí)鐘進(jìn)行數(shù)據(jù)采集,并將數(shù)據(jù)通過(guò)16 位并行總線傳輸?shù)紽PGA。FPGA 接收到采樣數(shù)據(jù)后,首先對(duì)信號(hào)進(jìn)行必要的預(yù)處理,而后通過(guò)EMIF16 接口將輸出傳輸?shù)紻SP 芯片內(nèi)。當(dāng)DSP 接收到采樣數(shù)據(jù)后,通過(guò)有源噪聲控制算法計(jì)算出每個(gè)輸出通道相應(yīng)的控制信號(hào),并通過(guò)EMIF16 接口反饋給FPGA。FPGA 在接收到輸出控制信號(hào)后,控制DAC 芯片產(chǎn)生多通道模擬輸出信號(hào),最終實(shí)現(xiàn)有源噪聲控制功能。
圖6 有源噪聲控制系統(tǒng)數(shù)據(jù)流圖
以讀取采樣數(shù)據(jù)過(guò)程為例介紹EMIF16 接口:DSP 端利用EMIF16 異步讀取FPGA 數(shù)據(jù)的時(shí)序如圖7 所示,除了EMIFD[15:0]之外,其他信號(hào)全部由DSP 驅(qū)動(dòng)。EMIFCE[3:0]表示DSP 的片選信號(hào),低電平有效,文中FPGA 使用的片選地址為EMIFCE2;EMIFR/W 表示讀寫操作,高電平表示DSP 讀操作;EMIFOE 表示是否支持?jǐn)U展等待模式,取0 表示關(guān)閉;EMIFBE 表示字節(jié)使能信號(hào);EMIFA[21:0]總線表示DSP 對(duì)FPGA 的讀或?qū)懙刂贰PGA 在圖中EMIFD為白色的時(shí)間段驅(qū)動(dòng)數(shù)據(jù)總線,并將相關(guān)地址的信號(hào)發(fā)送給DSP。
圖7 EMIF16異步存儲(chǔ)器讀取時(shí)序
ZYNQ 芯片包含ARM,其是系統(tǒng)與外部交互的第一個(gè)環(huán)節(jié),也是FPGA 與DSP 芯片獲取用戶控制命令、音頻數(shù)據(jù)的來(lái)源。ZYNQ 與FPGA 之間的音頻數(shù)據(jù)交互流程如圖8 所示。ZYNQ 與FPGA 芯片之間啟動(dòng)音頻播放的命令通過(guò)一根專用I/O 線實(shí)現(xiàn)。
圖8 ZYNQ與FPGA音頻數(shù)據(jù)交互
當(dāng)ZYNQ 檢測(cè)到外部音頻播放命令后,進(jìn)行首次DMA 設(shè)置,用以讀取SD 卡中的音頻文件并放置到RAM 中。當(dāng)DMA 讀取完成后,CPU 將收到對(duì)應(yīng)中斷信號(hào),并在中斷函數(shù)中設(shè)置標(biāo)志位。CPU 檢測(cè)到標(biāo)志位且發(fā)現(xiàn)當(dāng)前仍處于啟動(dòng)音頻播放模式下,則立即發(fā)起下一次DMA 文件讀取,否則停止讀取音頻文件。在DMA進(jìn)行文件讀取時(shí),CPU不需要參與相關(guān)工作,可將RAM 中的數(shù)據(jù)實(shí)時(shí)發(fā)送給FPGA。
在實(shí)際應(yīng)用中,根據(jù)音頻來(lái)源的不同,音頻數(shù)據(jù)的讀取方式可以多種多樣,下面對(duì)播放SD 卡中音頻文件的方式進(jìn)行說(shuō)明,其他方式的差異僅是數(shù)據(jù)到音頻管理模塊中RAM 的方式不同。在添加音樂(lè)播放功能并實(shí)現(xiàn)回聲抵消算法的多通道有源噪聲控制系統(tǒng)數(shù)據(jù)流示意圖如圖9 所示。
圖9 增加音頻播放的數(shù)據(jù)流示意圖
系統(tǒng)上電后,ZYNQ 會(huì)執(zhí)行上電初始化操作,經(jīng)過(guò)初始化后,ZYNQ 內(nèi)部PS 部分相關(guān)的MIO 接口、串口或者網(wǎng)口處于打開狀態(tài),用于用戶設(shè)定工作模式。CPU 每500 ms 查詢一次當(dāng)前工作模式,同時(shí)對(duì)FPGA 和DSP 進(jìn)行模式同步。
系統(tǒng)工作模式包括休眠模式、僅有源噪聲控制模式、僅音頻播放模式以及有源噪聲控制模式疊加音頻播放模式。每個(gè)模塊根據(jù)同步后的模式確定是否開啟音頻播放和回聲抵消功能,以及是否啟動(dòng)有源噪聲控制功能。系統(tǒng)工作模式管理如圖10 所示。
圖10 系統(tǒng)工作模式管理
為了驗(yàn)證所設(shè)計(jì)系統(tǒng)的可行性,文中搭建了圖11 所示的實(shí)驗(yàn)系統(tǒng),并采用經(jīng)典多通道有源噪聲控制算法和回聲抵消算法來(lái)驗(yàn)證所設(shè)計(jì)系統(tǒng)的可行性。
圖11 多通道局部有源噪聲控制示意圖
實(shí)驗(yàn)系統(tǒng)中采用四個(gè)傳聲器拾取參考信號(hào),采用兩個(gè)傳聲器作為誤差傳聲器,設(shè)置了兩個(gè)揚(yáng)聲器作為用于播放次級(jí)聲源的揚(yáng)聲器。設(shè)置了四個(gè)初級(jí)聲源,噪聲類型為粉紅噪聲。實(shí)驗(yàn)過(guò)程中采用的有源噪聲控制算法為FxNLMS 算法,有源噪聲控制的次級(jí)路徑傳遞函數(shù)以及回聲抵消利用的傳遞函數(shù)均采用離線辨識(shí)獲得。通過(guò)實(shí)驗(yàn),在100 Hz 到500 Hz的目標(biāo)降噪頻帶內(nèi),在頭部半徑20 cm 內(nèi)獲得了大于8 dB 的平均降噪效果。測(cè)試結(jié)果表明,音頻播放正常,且音頻播放過(guò)程對(duì)有源降噪效果幾乎沒(méi)有負(fù)面影響。
文中設(shè)計(jì)了一種兼容音頻播放功能的多通道局部有源噪聲控制系統(tǒng)。利用FPGA、DSP 和ARM 處理器各自的特點(diǎn),實(shí)現(xiàn)了系統(tǒng)不同功能的分解,滿足了整個(gè)系統(tǒng)的各項(xiàng)任務(wù)需求。通過(guò)合理的硬件和軟件設(shè)計(jì)與實(shí)現(xiàn),該系統(tǒng)能夠?qū)崿F(xiàn)在進(jìn)行多通道有源噪聲自適應(yīng)控制的同時(shí),實(shí)現(xiàn)音頻播放以及回聲抵消功能。在經(jīng)過(guò)全系統(tǒng)的研制后,文中搭建了相應(yīng)的測(cè)試環(huán)境,進(jìn)行了系統(tǒng)功能測(cè)試,測(cè)試結(jié)果驗(yàn)證了所設(shè)計(jì)系統(tǒng)的實(shí)際性能。