李勝銘, 蘇子粱, 吳振宇, 盧湖川
(大連理工大學(xué)創(chuàng)新創(chuàng)業(yè)學(xué)院,遼寧 大連 116024)
遇到微弱信號(hào)或信噪比較低的信號(hào)時(shí),鎖相放大技術(shù)能以較高的靈敏度檢測(cè)出所需的信號(hào),因而是許多儀器儀表的信號(hào)處理方法[1-3]。微處理器系統(tǒng)中,使用數(shù)字信號(hào)處理(DSP)技術(shù)實(shí)現(xiàn)的鎖相放大技術(shù)較模擬方式能顯著提高測(cè)量穩(wěn)定度及抗噪聲能力,降低系統(tǒng)成本,適合作為智能儀表的信號(hào)檢測(cè)方案[4-6]。本文以STM32 微處理器為例,設(shè)計(jì)了數(shù)字鎖相放大器,并以交互方式展示數(shù)字鎖相放大器工作效果與指標(biāo)參數(shù)。
為體現(xiàn)數(shù)字正交鎖相放大器對(duì)信號(hào)幅值與角度的分辨能力,系統(tǒng)中設(shè)計(jì)了一個(gè)音頻產(chǎn)生與接收裝置,通過(guò)測(cè)量經(jīng)空氣傳輸?shù)囊纛l信號(hào)在不同距離下衰減與相移,從而探究噪聲對(duì)信號(hào)的干擾。在此基礎(chǔ)上,系統(tǒng)通過(guò)蜂鳴器產(chǎn)生固定頻率方波信號(hào),驗(yàn)證數(shù)字正交鎖相放大器的頻率選擇特性。
如圖1 所示,系統(tǒng)以STM32 微處理器為核心,由微處理器完成音頻信號(hào)接收與產(chǎn)生,通過(guò)帶觸摸功能的TFT顯示屏完成人機(jī)交互。其中,驅(qū)動(dòng)蜂鳴器發(fā)生的方波信號(hào)在空氣中傳播后通過(guò)駐極體麥克風(fēng)采集,經(jīng)前級(jí)放大輸入到微處理器中。微處理器對(duì)輸入信號(hào)進(jìn)行數(shù)字正交鎖相放大,得到信號(hào)各頻率分量的幅值與相位,并通過(guò)顯示屏顯示。為定量測(cè)量系統(tǒng)性能,采用將待測(cè)的正弦波信號(hào)源與噪聲信號(hào)疊加,通過(guò)選擇開(kāi)關(guān)選通的方式,從而與產(chǎn)生的參考信號(hào)比較評(píng)估數(shù)字鎖相放大器的性能。
圖1 系統(tǒng)設(shè)計(jì)框圖
設(shè)計(jì)中,使用1 kHz方波驅(qū)動(dòng)蜂鳴器發(fā)聲,方波信號(hào)與外界噪聲疊加后有著復(fù)雜的頻譜,如圖2 所示。因?yàn)轭l率分量豐富,常規(guī)辦法難以對(duì)有效信號(hào)進(jìn)行提取與測(cè)量。
圖2 1 kHz方波驅(qū)動(dòng)蜂鳴器發(fā)聲信號(hào)頻譜圖
主控制器選用STM32F767IGT6 微處理器,其為帶DSP和FPU的高性能ARM Cortex-M7 內(nèi)核,工作頻率可高達(dá)216 MHz[7]。其內(nèi)置模數(shù)轉(zhuǎn)換器(A/D)模塊,擁有18 個(gè)定時(shí)器,可以在不使用外部器件的情況下完成信號(hào)采樣、方波輸出等任務(wù)。片上的浮點(diǎn)處理器(FPU)也有助于快速完成相關(guān)的信號(hào)處理運(yùn)算。
為充分顯示信號(hào)圖形數(shù)據(jù),系統(tǒng)顯示屏采用分辨率為800 ×480 的LCD-TFT 面板。顯示屏顯示的信號(hào)為輸入信號(hào)的幅值、相位以及微處理器片上A/D采樣的波形,以便觀察輸出信息與排查故障。顯示屏包含一片由GT911 芯片控制的電容觸摸屏,用于人機(jī)交互,從而調(diào)整系統(tǒng)工作參數(shù)。
音頻采集需要頻率范圍寬、高保真且小體積的電-聲換能器,駐極體麥克風(fēng)的性能優(yōu)異,符合系統(tǒng)音頻采集設(shè)計(jì)要求。駐極體麥克風(fēng)的輸出電阻較高,一般在內(nèi)部集成有阻抗變換電路(常由場(chǎng)效應(yīng)管組成),經(jīng)阻抗變換后輸出電阻小于2 kΩ[8]。為保證駐極體麥克風(fēng)內(nèi)部電路正常工作,需要提供偏壓(常采用偏置電阻的方式)。
如圖3 所示,R1為駐極體麥克風(fēng)偏置電阻。系統(tǒng)中使用LMV358 芯片構(gòu)成正向比例放大器,從而實(shí)現(xiàn)麥克風(fēng)信號(hào)放大。為使得輸入信號(hào)滿足STM32 微處理器A/D模塊的量程范圍,C1進(jìn)行隔直,R2與R4構(gòu)成偏置電路,使得信號(hào)可以輸入微處理器中供下一步處理。放大電路的倍數(shù)由R3與R5決定,其中R5采用可變電阻,因此調(diào)整此電阻可改變放大器的增益。
圖3 音頻采樣與蜂鳴器電路圖
音頻信號(hào)的發(fā)生通過(guò)有源蜂鳴器實(shí)現(xiàn),其使用S8050 三極管構(gòu)成的開(kāi)關(guān)電路驅(qū)動(dòng),并在蜂鳴器上反向并聯(lián)二極管以快速釋放反向電流。為便于檢驗(yàn)鎖相放大器的抗噪聲性能,蜂鳴器使用方波信號(hào)驅(qū)動(dòng)。
鎖相放大使用互相關(guān)檢測(cè)原理實(shí)現(xiàn)信號(hào)的檢測(cè)[9-11]。鎖相放大器包含兩個(gè)輸入,其中一個(gè)為同頻同相參考信號(hào),而對(duì)于正交鎖相放大器,其功能上包含兩個(gè)鎖相放大器,因此需要兩路正交的參考信號(hào)。對(duì)于與參考信號(hào)同頻同相的輸入信號(hào)x1(t)與x2(t),在1 個(gè)周期內(nèi),其積分不為零,
而對(duì)于不同頻率的信號(hào),在足夠長(zhǎng)時(shí)間的積分后,其值趨向于零。此為三角函數(shù)正交性,因此可以將不同頻率信號(hào)區(qū)分。
由于噪聲的帶寬一般較寬,而鎖相放大器等效于一個(gè)窄帶濾波器,噪聲經(jīng)過(guò)處理后其功率降低,使得信號(hào)的信噪比提高。以常見(jiàn)的低通白噪聲為例,若其噪聲功率譜密度為Sni,帶寬為Bni,則輸入噪聲均方值
若系統(tǒng)的功率增益為G,帶寬為Be,可得其輸出噪聲均方值
設(shè)信號(hào)輸入電壓為Usi,輸出電壓為Uso,則有:
根據(jù)式(2)~(4)即可求得信噪改善比(SNIR):
由式(5)可知,信噪改善比取決于噪聲帶寬和系統(tǒng)帶寬之比。系統(tǒng)帶寬越小,信噪改善比越好。而鎖相放大器的帶寬可以做到小于1 Hz,因此其抗噪效果是數(shù)字帶通濾波器難以達(dá)到的??紤]到鎖相放大器參考信號(hào)與待測(cè)信號(hào)在頻率上需要嚴(yán)格同步,因此系統(tǒng)中使用內(nèi)部時(shí)鐘源并進(jìn)行時(shí)鐘同步[12]。
對(duì)于數(shù)字信號(hào)處理系統(tǒng),使用乘加的系統(tǒng)結(jié)構(gòu),計(jì)算輸入信號(hào)與參考信號(hào)的乘積,并積分得到最終結(jié)果,能大幅降低計(jì)算量,得到更好的性能[13-15]。對(duì)于正交鎖相放大器,將同相輸出I與正交輸出Q分別進(jìn)行計(jì)算,對(duì)于已知的輸入信號(hào)頻率fn與采樣頻率fs有:
對(duì)于輸入信號(hào)的幅度與相位,可分別通過(guò)下式計(jì)算:
可知系統(tǒng)輸出與輸入信號(hào)幅值相關(guān),而與初始相位、噪聲無(wú)關(guān)。由于arctan 函數(shù)值域僅為(-π/2,π/2),為求得四象限角度,系統(tǒng)中使用C 語(yǔ)言庫(kù)頭文件math.h中atan2 函數(shù),其取值
即可得知輸入信號(hào)在參考頻率處的幅度與相位,并使得無(wú)用信號(hào)與絕大部分噪聲因互相關(guān)為零而被濾除。其在微處理器上的實(shí)現(xiàn)結(jié)構(gòu)如圖4 所示。
圖4 數(shù)字正交鎖相放大器實(shí)現(xiàn)結(jié)構(gòu)框圖
系統(tǒng)中,微處理器產(chǎn)生頻率為1 kHz方波,并使用100 kS/s采樣速率采樣,若要求數(shù)據(jù)刷新時(shí)間小于1 s,積分點(diǎn)數(shù)應(yīng)控制在1 ×105點(diǎn)以內(nèi),并為緩沖區(qū)大小的整數(shù)倍。系統(tǒng)采用長(zhǎng)度為512 點(diǎn)的緩沖區(qū),采用99 840 點(diǎn)積分,從而兼顧數(shù)據(jù)刷新速度同時(shí),使得采樣信號(hào)帶寬足夠窄。對(duì)此鎖相放大器設(shè)計(jì)的頻率特性進(jìn)行仿真,如圖5 所示,此時(shí)系統(tǒng)具有優(yōu)異的選頻能力,半功率帶寬為0.46 Hz。
圖5 數(shù)字鎖相放大器的頻率響應(yīng)
為保證系統(tǒng)內(nèi)部參考信號(hào)與蜂鳴器輸入信號(hào)初始相位同步,使用2 個(gè)定時(shí)器產(chǎn)生所需信號(hào)。其中定時(shí)器4(TIM4)用于模數(shù)轉(zhuǎn)換器觸發(fā),定時(shí)器3(TIM3)用于輸出方波,使用定時(shí)器同步功能,使得兩個(gè)定時(shí)器有同樣起始值。定時(shí)器同步設(shè)計(jì)如圖6 所示。
圖6 定時(shí)器同步結(jié)構(gòu)圖
為減少對(duì)處理器占用,模擬信號(hào)采樣使用直接存儲(chǔ)器訪問(wèn)(DMA)方式。DMA 單次傳輸512 個(gè)采樣點(diǎn)作為1 個(gè)數(shù)據(jù)幀,并使用雙緩沖方式使得DMA傳輸與數(shù)據(jù)計(jì)算同步進(jìn)行。在微處理器處理1 幀數(shù)據(jù)時(shí),DMA可直接控制系統(tǒng)總線,采樣并傳輸下1 幀的數(shù)據(jù),通過(guò)交換2 個(gè)緩沖區(qū)的功能,實(shí)現(xiàn)計(jì)算資源利用最大化。
在軟件實(shí)現(xiàn)上通過(guò)編寫(xiě)DMA 傳輸完成回調(diào)函數(shù),并通過(guò)計(jì)數(shù)變量實(shí)現(xiàn)計(jì)算點(diǎn)數(shù)的處理,使用全局變量保存計(jì)算的中間結(jié)果,DMA傳輸完成回調(diào)函數(shù)流程如圖7 所示。
圖7 DMA傳輸完成回調(diào)函數(shù)流程圖
數(shù)字正交鎖相放大計(jì)算中,包含大量的三角函數(shù)計(jì)算,如何加速三角函數(shù)計(jì)算是效率優(yōu)化的重點(diǎn),對(duì)于固定的計(jì)算,可以利用函數(shù)表解決[16],而函數(shù)表會(huì)限制待測(cè)頻率與采樣速率。系統(tǒng)中使用ARMCMSIS-DSP專(zhuān)用庫(kù),利用函數(shù)表進(jìn)行線性插值處理,能產(chǎn)生任意頻率的參考信號(hào)且速度可調(diào)整,提升了程序的通用性。
實(shí)驗(yàn)流程設(shè)計(jì)如下:①連接系統(tǒng)電路,編譯并燒錄代碼。②將示波器通道連接蜂鳴器引腳,觀察輸出波形,確認(rèn)波形正常,程序工作。③將信號(hào)發(fā)生器接入示波器另一通道,調(diào)整信號(hào)發(fā)生器頻率以保證其與微處理器輸出頻率相位一致。④選擇正弦波信號(hào)源作為輸入信號(hào),改變信號(hào)幅度,并調(diào)整噪聲源輸出幅度,記錄系統(tǒng)測(cè)量結(jié)果。⑤測(cè)量完成且確認(rèn)系統(tǒng)工作正常后,將麥克風(fēng)、蜂鳴器接入系統(tǒng)。⑥觀察并記錄麥克風(fēng)與蜂鳴器距離變化對(duì)系統(tǒng)示數(shù)的影響。
在仿真基礎(chǔ)上,制作的實(shí)物如圖8 所示,其可實(shí)時(shí)顯示測(cè)量信號(hào)的幅度及相位,并繪制顯示模數(shù)轉(zhuǎn)換器采樣得到的數(shù)據(jù)。通過(guò)移動(dòng)蜂鳴器可看到接收信號(hào)幅
圖8 基于STM32的數(shù)字正交鎖相放大器實(shí)物
度及角度均發(fā)生變化,并可以此推斷麥克風(fēng)與蜂鳴器的距離。
實(shí)驗(yàn)過(guò)程中,可以改變麥克風(fēng)前級(jí)放大器增益,或?qū)?shí)驗(yàn)裝置置于不同聲音環(huán)境中觀察實(shí)驗(yàn)現(xiàn)象。
為便于觀測(cè)系統(tǒng)工作狀態(tài)是否正常,接入1 kHz激勵(lì)信號(hào),將鎖相放大器乘法器后、積分器前的內(nèi)部信號(hào)通過(guò)數(shù)模轉(zhuǎn)換器(D/A)輸出,并通過(guò)示波器顯示。圖9 為輸入信號(hào)與內(nèi)部參考信號(hào)相位差分別為0、π/2、π時(shí)內(nèi)部乘法器輸出。
圖9 輸入信號(hào)與內(nèi)部信號(hào)不同相位差時(shí)波形
進(jìn)行Matlab 仿真的結(jié)果如圖10 所示,其與實(shí)測(cè)波形相似,輸出信號(hào)與激勵(lì)信號(hào)相位的差異為數(shù)據(jù)處理產(chǎn)生的延時(shí),可見(jiàn)內(nèi)部參考信號(hào)發(fā)生器及乘法器均正常工作。
通過(guò)測(cè)量正弦信號(hào)輸入幅度誤差及相位誤差評(píng)估所設(shè)計(jì)鎖相放大器性能。此時(shí)將噪聲源關(guān)閉,在系統(tǒng)輸入端串聯(lián)放大倍數(shù)為60 dB 的前級(jí)放大電路,改變正弦波信號(hào)源的幅度,觀察并記錄數(shù)據(jù)(見(jiàn)表1)。得到的正弦信號(hào)幅度誤差于相位誤差如圖11、12 所示。
由表1 及圖11 可知,幅度檢測(cè)的誤差能控制在5%以內(nèi)。由圖12 可知,在激勵(lì)電壓1 μV 以上,相位誤差小于0.06 rad。值得注意的是,系統(tǒng)中3 V 參考電壓下工作的12 bit A/D的化誤差為0.4 mV,而前級(jí)放大輸入端的輸入電壓僅為4 μV??傻弥獢?shù)字正交鎖相放大器可用于小信噪比的信號(hào)處理場(chǎng)合,尤其適合相位測(cè)量相關(guān)應(yīng)用。
圖10 內(nèi)部信號(hào)不同相位差時(shí)仿真圖
表1 正弦小信號(hào)檢測(cè)表
圖11 正弦信號(hào)幅度誤差
系統(tǒng)抗噪聲性能測(cè)量,通過(guò)信號(hào)發(fā)生器提供按比例混合的同頻率正弦信號(hào)及均勻白噪聲輸入系統(tǒng),記錄讀數(shù)與輸入信號(hào)混合比例關(guān)系,測(cè)量前通過(guò)示波器將信號(hào)發(fā)生器的頻率校準(zhǔn)到微處理器輸出頻率。在0% ~95%范圍內(nèi)混合正弦信號(hào)與均勻白噪聲,記錄并整理系統(tǒng)輸出結(jié)果如表2 所示。
圖12 正弦信號(hào)相位誤差
表2 噪聲影響記錄表
系統(tǒng)噪聲影響下所測(cè)量的幅度誤差如圖13 所示。
圖13 噪聲影響下幅度誤差
由圖13 可知,系統(tǒng)在噪聲幅度為系統(tǒng)輸入信號(hào)的95%時(shí),幅度測(cè)量誤差最大,為4.27%。因此,在強(qiáng)噪聲環(huán)境下所設(shè)計(jì)的數(shù)字正交鎖相放大器依然對(duì)信號(hào)有很強(qiáng)的分辨能力。
本文設(shè)計(jì)了基于STM32 的數(shù)字正交鎖相放大器,通過(guò)理論分析與實(shí)驗(yàn)測(cè)試驗(yàn)證了該鎖相放大器的性能。在嘈雜環(huán)境下,肉眼難以分辨波形時(shí),該鎖相放大器仍可分離出所需的信號(hào)。在教學(xué)實(shí)踐活動(dòng)中,可讓學(xué)生直觀感受數(shù)字鎖相放大器性能,從而進(jìn)一步設(shè)計(jì)提升指標(biāo)與擴(kuò)展應(yīng)用場(chǎng)景。