才源 陳瑞國(guó) 劉忠 趙廣忠 劉居輝
【摘 要】本文主要介紹了一種應(yīng)用于高壓電塔接地防雷測(cè)試裝置的數(shù)字信號(hào)處理系統(tǒng),介紹該數(shù)字信號(hào)處理系統(tǒng)的原理實(shí)現(xiàn)過(guò)程,設(shè)計(jì)方法。這些配置可根據(jù)STM32F4數(shù)據(jù)手冊(cè)進(jìn)行配置。調(diào)試此系統(tǒng)時(shí)可借助MATLAB工具,由于MATLAB具有強(qiáng)大的計(jì)算能力以及仿真能力,是數(shù)字信號(hào)處理中非常有用。
【關(guān)鍵詞】數(shù)字信號(hào)處理 接地 防雷
【Abstract】This paper describes a high-voltage tower grounding lightning protection applies to test device digital signal processing system, to introduce the principle of digital signal processing systems process design methods.
【Key words】Digital Signal Processing,Grounding,Lightning
1 數(shù)字信號(hào)處理簡(jiǎn)介
數(shù)字信號(hào)處理(DigitalSignal Processing,簡(jiǎn)稱(chēng) DSP)是一門(mén)涉及許多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。數(shù)字信號(hào)處理是利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)字形式對(duì)信號(hào)進(jìn)行采集、變換、濾波、估值、增強(qiáng)、壓縮、識(shí)別等處理,以得到符合人們需要的信號(hào)形式。數(shù)字信號(hào)處理已經(jīng)在通信等領(lǐng)域得到極為廣泛的應(yīng)用。
2 數(shù)字信號(hào)處理技術(shù)對(duì)管線定位系統(tǒng)的意義
高壓電塔接地防雷測(cè)試裝置是根據(jù)電磁感應(yīng)的原理來(lái)設(shè)計(jì)的,主要由發(fā)射機(jī)和接收機(jī)兩部分構(gòu)成。發(fā)射機(jī)將特定頻率電磁信號(hào)加在地下埋藏線上,由地下埋藏線產(chǎn)生二次感應(yīng)電磁場(chǎng)。接收機(jī)與配套的發(fā)射機(jī)一起使用,接收機(jī)通過(guò)接收由發(fā)射機(jī)經(jīng)地下埋藏線產(chǎn)生的特定頻率的電磁信號(hào),通過(guò)分析和計(jì)算可以得出地下管線的位置和埋藏深度。在接收機(jī)將線圈的模擬信號(hào)經(jīng)ADC采集轉(zhuǎn)換為數(shù)字信號(hào),然后將數(shù)據(jù)經(jīng)過(guò)數(shù)字信號(hào)處理得到線圈感應(yīng)磁場(chǎng)的強(qiáng)度并進(jìn)行分析判斷。數(shù)字信號(hào)處理質(zhì)量結(jié)果在此裝置中尤為重要。
3 數(shù)字信號(hào)處理器的選擇
該系統(tǒng)選用STM32F407系列處理器,其CPU主頻達(dá)到168MHz,自帶3*12bitADC,單個(gè)ADC采樣速度達(dá)到2.4MSPS,滿(mǎn)足本系統(tǒng)采樣速率 所需,這款是ARM公司推出的 Cortex-M4F 內(nèi)核是帶有 FPU,DSP 和 SIMD 單元的見(jiàn)圖1,針對(duì)這些單元也增加了專(zhuān)用指令,并且官方對(duì)此也有專(zhuān)門(mén)的庫(kù)以方便客戶(hù)調(diào)用,這是區(qū)別于Cortex-M3系列的。Cortex-M3以及以下的版本由于沒(méi)帶FPU,DSP和SIMD單元,其處理方式主要由程序來(lái)處理,其速度遠(yuǎn)達(dá)不到要求,
只能用來(lái)做測(cè)試使用,與實(shí)際運(yùn)用相差甚遠(yuǎn)。
以下圖2為不同情況下FFT的實(shí)現(xiàn)所需要的時(shí)間對(duì)比:
由上圖2可知STM32F407在開(kāi)啟FPU功能時(shí)對(duì)數(shù)字信號(hào)處理速度有很好的提高。
4 數(shù)字信號(hào)處理系統(tǒng)處理流程
如圖3所示。
4.1 信號(hào)預(yù)處理模塊
線圈接收到的信號(hào)較弱,要經(jīng)過(guò)信號(hào)預(yù)處理,信號(hào)預(yù)處理主要是講信號(hào)放大。本信號(hào)預(yù)處理模塊采用AD8231數(shù)字可編程儀表放大器,其放大倍數(shù)為1,2,4,8,16,32,64,128倍軟件可編程增益,還包含一個(gè)通用運(yùn)放放大器,提供額外的增益。由于STM32F407的ADC采集為單電源采集方式,其采集范圍為0~3.3V所以信號(hào)預(yù)處理時(shí)提供的基準(zhǔn)電壓VRef為采集最大電壓1/2,即為1.65V,將信號(hào)上拉至1.65V給ADC采集,保證采樣信號(hào)完整性,CPU判斷數(shù)據(jù)可為信號(hào)預(yù)處理模塊提供不同的增益以提高采集精度。
4.2 ADC采集數(shù)據(jù)
STM32F407有三個(gè)12bit ADC,單個(gè)采樣速率2.4MSPS,3個(gè)一共開(kāi)啟采集速度可達(dá)7.2MSPS采樣率。由于發(fā)射機(jī)最高頻率為30K,根據(jù)奈奎斯特采樣定理可知采樣速度要達(dá)到采樣頻率的2倍以上可還原信號(hào),系統(tǒng)采用2^N采樣倍數(shù)進(jìn)行采樣,采樣點(diǎn)數(shù)為1024個(gè),當(dāng)采樣點(diǎn)數(shù)達(dá)到1024個(gè)時(shí)進(jìn)行FFT變換處理,得出所需要的值,N=3時(shí)為8倍的采樣速率,所以單個(gè)ADC采樣為240KSPS再乘以8路信號(hào),一共是1.92MSPS小于2.4MSPS滿(mǎn)足要求。
系統(tǒng)采用ADC1,其頻率設(shè)置為:
PCLK2 = HCLK / 2
ADCCLK = PCLK2 /2 = HCLK / 4 = 168 / 4 = 42M
但是ADCCLK最大頻率為36M,所以ADCCLK只能為36M
Sampling Time + Conversion Time = 3 + 12 cycles = 15cyc
Conversion Time = 36MHz / 15cyc = 2.4MSPS
通道數(shù)為8通道,12bit的采樣位數(shù),通道為ADC_Channel_1~ ADC_Channel_8八個(gè)采樣通道,采用DMA傳輸至定義好的數(shù)組中ADCConvertedValue[8*1024],數(shù)組大小為8*1024.其存放順序是1-8重復(fù)存放,每次采樣由TIM1定時(shí)器觸發(fā),當(dāng)采樣數(shù)達(dá)到8*1024時(shí)將ADCConvertedValue[8*1024]分別拆分在八路信號(hào)的數(shù)組中ADCConvertedValue1_in[1024]~ ADCConvertedValue8_in[1024],配置DMA滿(mǎn)時(shí)中斷即可對(duì)數(shù)據(jù)進(jìn)行處理。
4.3 數(shù)據(jù)進(jìn)行數(shù)字信號(hào)處理
數(shù)字信號(hào)處理部分采用傅立葉變換,傅立葉變換是一種分析信號(hào)的方法,它可分析信號(hào)的成分,也可用這些成分合成信號(hào)。許多波形可作為信號(hào)的成分,比如正弦波、方波、鋸齒波等,傅立葉變換用正弦波作為信號(hào)的成分。
連續(xù)形式的傅里葉變換其實(shí)是傅里葉級(jí)數(shù)的推廣,因?yàn)榉e分其實(shí)是一種極限形式的求和算子而已。對(duì)于周期函數(shù),它的傅里葉級(jí)數(shù)(Fourier series)表示被定義為:
其中 T 為函數(shù)的周期,F(xiàn)n 為傅里葉展開(kāi)系數(shù),F(xiàn)n為:
對(duì)于實(shí)值函數(shù),其里葉級(jí)數(shù)可以寫(xiě)成:
其中 an 和 bn 是實(shí)頻率分量的振幅,由理論可知,一個(gè)周期的信號(hào)是由無(wú)窮個(gè)正余弦波疊加而成的,當(dāng)要得到某種信號(hào)的幅度時(shí),信號(hào)經(jīng)過(guò)傅里葉變換取得對(duì)應(yīng)頻率的幅值。
當(dāng)采樣頻率為Fs,采樣信號(hào)頻率f,采樣點(diǎn)數(shù)為N,F(xiàn)s一般為f的2^n倍,n為正整數(shù),其得到采樣信號(hào)分辨率為Fs/N,例如:Fs=1024HZ,N=1024,f=256HZ,其分辨率為1024HZ/1024=1HZ,分辨率隨著采樣點(diǎn)數(shù)增加而增加,由于分辨率為1HZ,所以f為傅里葉變換的第257個(gè)點(diǎn),第一點(diǎn)為直流分量,傅里葉變換得出的幅值K,轉(zhuǎn)換為信號(hào)的幅值公式為:直流分量幅值=K/N,交流分量幅值=K/(N/2)。
以下使用本系統(tǒng)最大頻率進(jìn)行說(shuō)明,其它頻率也一致:
由于采樣頻率為240K,采樣點(diǎn)數(shù)為1024,其分辨率為240KHZ/1024=234.375HZ,當(dāng)發(fā)射機(jī)發(fā)射信號(hào)為30K時(shí),此時(shí)FFT變換的所得的模值最大為30K所在的位置,即30KHZ/234.375=128,即第129個(gè)值為最大值。
用到STM32F4庫(kù)函數(shù)為:
cr4_fft_1024_stm32(ADCConvertedValue1_out[1024], ADCConvertedValue1_in[1024], 1024);//將ADC采樣回來(lái)的值進(jìn)行FFT變換,這是為DSP庫(kù)自帶的處理函數(shù)
這個(gè)匯編的FFT庫(kù)是來(lái)自STM32F10x DSP library,由于是匯編實(shí)現(xiàn)的,而且是基4算法,所以實(shí)現(xiàn)FFT在速度上比較快。
如果x[N]是采樣信號(hào)的話,使用FFT時(shí)必須滿(mǎn)足如下兩條:
(1)N得滿(mǎn)足4n(n =1,2, 3…..),也就是以4為基數(shù)。
(2)采樣信號(hào)必須是32位數(shù)據(jù),高16位存實(shí)部,低16位存虛部(這個(gè)是針對(duì)大端模式),小端模式是高位存虛部,低位存虛部。一般常用的是小端模式。
此時(shí),我們將其中的一路信號(hào)串口打印輸出,放到MATLAB上仿真可得如下:
MATLAB參數(shù)如下
>> N=1024;
>> n=0:N-1;
>>x=將串口打印出來(lái)數(shù)據(jù)存放在此處;
>>y=fft(x);
>> M=abs(y);
>> plot(n,M);
得到如下圖4所示。
這時(shí)可在MATLAB workplace查看M的值如下圖5所示。
可以見(jiàn)到第129個(gè)點(diǎn)的值為3.0732*10^5,即此處為30K頻率所在位置,與理論得出結(jié)果相似,將此時(shí)得到值3.0732*10^5/(N/2)=600.234單位為mv,即為線圈感應(yīng)到的電壓值。將示波器搭在ADC采樣前端并開(kāi)啟濾波功能,得到的峰峰值為590mv與數(shù)字信號(hào)處理得出結(jié)果相仿??芍獢?shù)字信號(hào)處理正確。
4.4 CPU判斷處理后數(shù)據(jù)
將八路信號(hào)處理過(guò)數(shù)據(jù)進(jìn)行管線定位和深度的算法計(jì)算,并控制增益等。
5 結(jié)語(yǔ)
電壓電塔接地防雷測(cè)試裝置的數(shù)字信號(hào)處理系統(tǒng)關(guān)鍵在于ADC采集配置,8路ADC采集所需的時(shí)間較長(zhǎng),STM32F4系列的采樣頻率剛好滿(mǎn)足所需要的速度,并且自帶的DSP單元大大提高計(jì)算效率,其采樣頻率可由定時(shí)器來(lái)控制,數(shù)據(jù)傳輸采用DMA,DMA設(shè)置中斷,當(dāng)采樣數(shù)據(jù)滿(mǎn)時(shí)觸發(fā)中斷進(jìn)行數(shù)字信號(hào)處理。這些配置可根據(jù)STM32F4數(shù)據(jù)手冊(cè)進(jìn)行配置。調(diào)試此系統(tǒng)時(shí)可借助MATLAB工具,由于MATLAB具有強(qiáng)大的計(jì)算能力以及仿真能力,是數(shù)字信號(hào)處理中非常有用。