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