惠亮 於二軍 閆穩(wěn)
摘 要:本文基于數(shù)字信號(hào)處理的理論,提出了一種全新的頻率信號(hào)采集方法。把頻率信號(hào)看作普通的模擬量信號(hào),利用傳統(tǒng)的模擬量采集接口對(duì)頻率信號(hào)進(jìn)行高速采集,采用FFT算法對(duì)采樣得到的數(shù)據(jù)進(jìn)行計(jì)算,提取出頻譜中幅值最大的下標(biāo),從而得到輸入信號(hào)的頻率值。經(jīng)工程實(shí)踐證明,該設(shè)計(jì)方案可行,采集準(zhǔn)確。
關(guān)鍵詞:頻率采集;數(shù)字信號(hào)處理;快速傅里葉變換
引言:傳統(tǒng)頻率采集接口首先將頻率信號(hào)輸入經(jīng)調(diào)理電路和放大電路處理后,送至遲滯比較單元,遲滯比較單元經(jīng)比較后將方波信號(hào)送入FPGA,F(xiàn)PGA通過記周法或者記頻法計(jì)算輸入信號(hào)的頻率,該電路設(shè)計(jì)較為復(fù)雜,抗干擾能力有限,邏輯設(shè)計(jì)較為復(fù)雜。對(duì)比分析模擬量采集接口與頻率采集接口電路組成,二者可以做到歸一化處理,將頻率信號(hào)經(jīng)模數(shù)轉(zhuǎn)換后直接引入FPGA或DSP內(nèi)部,通過快速傅里葉變換計(jì)算出信號(hào)頻譜,從頻譜中提取出頻率信號(hào)的頻率。歸一化設(shè)計(jì)的優(yōu)點(diǎn)在于減少了電路接口種類,簡(jiǎn)化了軟、硬件設(shè)計(jì)、增強(qiáng)了抗干擾能力,其功能框圖如圖1所示。
1 工作原理及相關(guān)概念
1.1周期信號(hào)頻譜圖的特點(diǎn)
周期信號(hào)如有如下特點(diǎn)[1]:a.離散性:每條譜線代表一個(gè)頻率分量;b.諧波性:譜線出現(xiàn)在基波的整數(shù)倍頻率上;c.收斂性:諧波次數(shù)越高,諧波分量越小。
周期信號(hào)傅里技術(shù)展開如式1所示。
1.2計(jì)算機(jī)系統(tǒng)對(duì)信號(hào)的處理
用計(jì)算機(jī)進(jìn)行測(cè)試信號(hào)處理時(shí),不可能對(duì)無(wú)限長(zhǎng)的信號(hào)進(jìn)行測(cè)量和運(yùn)算,而是取其有限的時(shí)間片段進(jìn)行分析,這個(gè)過程成為信號(hào)截?cái)唷楸阌跀?shù)學(xué)處理,對(duì)截?cái)嘈盘?hào)做周期延拓,得到虛擬無(wú)限長(zhǎng)信號(hào)。
1.2.1截?cái)嘈盘?hào)的能量泄露
從數(shù)學(xué)角度看,信號(hào)截?cái)嘞喈?dāng)于用一個(gè)矩形窗與正弦函數(shù)相乘,按傅里葉變換性質(zhì),是與相乘等價(jià)于頻域卷積[2]。而正弦信號(hào)的譜是脈沖信號(hào),因此,截?cái)嘈盘?hào)的譜就是將矩形窗的譜搬移到脈沖的位置。周期信號(hào)延拓后的信號(hào)與真實(shí)信號(hào)是不同的,接頭處信號(hào)會(huì)有跳變,產(chǎn)生了能量泄露。
1.2.2柵欄效應(yīng)
為提高效率,通常采用FFT算法計(jì)算信號(hào)頻譜,設(shè)采樣頻率為Fs,采樣數(shù)據(jù)點(diǎn)數(shù)為N,則信號(hào)的截?cái)嘀芷诤突l為:,。FFT計(jì)算的各傅里葉級(jí)數(shù)的頻率位置為:
如果信號(hào)的頻率分量與頻率取樣點(diǎn)不重合,則只能取相鄰頻率取樣點(diǎn)譜線值代替,這稱為柵欄效應(yīng)[3]。實(shí)際中,由于信號(hào)截?cái)嗟脑?,產(chǎn)生了能量泄露,即使信號(hào)頻率與頻譜離散采樣點(diǎn)不相等,也能得到該頻率分量的一個(gè)近似值。從這個(gè)意義上說,能量泄露誤差不完全是有害的。如果沒有信號(hào)截?cái)喈a(chǎn)生的能量泄露,頻譜離散取樣造成的柵欄效應(yīng)誤差將是不能接受的。
1.2.3快速傅里葉變換
快速傅里葉變換(Fast Fourier Transform,F(xiàn)FT)是離散傅里葉變換(Discrete Fourier Transform,DFT)的一種有效算法,通過選擇和排列中間結(jié)果,可有效減小運(yùn)算量,其結(jié)果與DFT時(shí)相同的。以1024采樣點(diǎn)為例,DFT要求一百萬(wàn)次以上計(jì)算量,而FFT則只需要一萬(wàn)次。
對(duì)A/D采樣后的數(shù)字信號(hào),無(wú)法給出函數(shù)表達(dá)式。因此,也很難推導(dǎo)出其傅里葉級(jí)數(shù)展開式,但可以用數(shù)字積分方法求出傅里葉級(jí)數(shù)。
2 設(shè)計(jì)驗(yàn)證
2.1驗(yàn)證平臺(tái)及方案
本文采用基于ARM CortexM4內(nèi)核的STM32F407開發(fā)板進(jìn)行驗(yàn)證。ADC1_Ch5以2667.683Hz的采樣頻率對(duì)外部正弦信號(hào)進(jìn)行采樣,共采樣4096個(gè)點(diǎn),并通過DMA2_Stream0_Ch0將數(shù)據(jù)存儲(chǔ)在內(nèi)存中。當(dāng)采樣點(diǎn)數(shù)滿足4096時(shí),DMA觸發(fā)中斷,并在中斷中激活FFT計(jì)算任務(wù)。在任務(wù)層面,采用基4的FFT算法對(duì)采樣得到的數(shù)據(jù)進(jìn)行計(jì)算,并求出頻譜中幅值最大的下標(biāo),從而計(jì)算出外部信號(hào)的頻率值。
2.2軟件設(shè)計(jì)
在主程序中,ADC以2667Hz的采樣速率采集輸入信號(hào),每次轉(zhuǎn)換結(jié)束都會(huì)生成一次DMA請(qǐng)求,DMA會(huì)自動(dòng)將ADC轉(zhuǎn)換的結(jié)果存儲(chǔ)在預(yù)先設(shè)置好的片內(nèi)RAM數(shù)組中。DMA的數(shù)據(jù)傳輸不需要主CPU干預(yù),而且在數(shù)據(jù)傳輸?shù)耐瑫r(shí),ADC可以并行轉(zhuǎn)換下一個(gè)采樣點(diǎn)。4096點(diǎn)的FFT的運(yùn)算需要較多的CPU算力,會(huì)消耗較長(zhǎng)的時(shí)間,因此,對(duì)采樣所得的數(shù)據(jù)進(jìn)行FFT運(yùn)算不適合放在中斷函數(shù)中進(jìn)行,需放在主任務(wù)函數(shù)中執(zhí)行。當(dāng)DMA傳輸4096個(gè)采集數(shù)據(jù)后,會(huì)觸發(fā)一次CPU中斷,在中斷函數(shù)對(duì)一個(gè)全局變量做標(biāo)志,使能主任務(wù)函數(shù)中的FFT計(jì)算。
2.3驗(yàn)證結(jié)果
設(shè)置APB2的時(shí)鐘為10.5Mhz,ADC_CLK的時(shí)鐘為1312500Hz,采樣保持480,采樣頻率2667.68,采樣點(diǎn)4096個(gè),數(shù)字基頻為0.6513Hz[4]。
測(cè)試數(shù)據(jù)如表1所示。
結(jié)論
本文充分利用了嵌入式系統(tǒng)中廣泛存在的傳統(tǒng)模擬量接口電路,把頻率信號(hào)當(dāng)做普通模擬量信號(hào),對(duì)其進(jìn)行高速采樣。基于數(shù)字信號(hào)處理的理論,采用FFT算法對(duì)采樣數(shù)據(jù)進(jìn)行計(jì)算,得到信號(hào)頻譜,通過對(duì)頻譜的分析最終得到輸入信號(hào)的頻率。該設(shè)計(jì)在保持硬件不變的前提下,實(shí)現(xiàn)了一種全新的頻率信號(hào)采集方法,具有較好的應(yīng)用價(jià)值。經(jīng)工程實(shí)踐證明,該設(shè)計(jì)方案可行,采集準(zhǔn)確。
參考文獻(xiàn):
[1]程佩青. 數(shù)字信號(hào)處理教程[M],第五版,北京:清華大學(xué)出版社,2017。
[2]劉樹棠. 信號(hào)與系統(tǒng)[M],第二版,北京:電子工業(yè)出版社。
[3]Alan V. Oppenheim, Ronald W. Schafer. 離散時(shí)間信號(hào)處理[M],第三版,北京:電子工業(yè)出版社,2019。
[4]ST.? STM32F4xxx中文參考手冊(cè),4版。
作者簡(jiǎn)介:
惠亮(1988.04-),男,漢族,陜西榆林人,本科,工程師,航空工業(yè)西安計(jì)算技術(shù)研究所,研究方向:機(jī)載機(jī)電系統(tǒng)設(shè)計(jì)。
(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710065)