一種適用于采樣點數(shù)為復(fù)合數(shù)的fft實現(xiàn)方法
【專利摘要】本發(fā)明提供一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法,應(yīng)用于以數(shù)字信號處理器為核心的電能質(zhì)量監(jiān)測裝置中,適用于采樣點數(shù)為復(fù)合數(shù)的情況。DSP讀取N個采樣數(shù)據(jù),分解組合為行列的陣列,使用C28x_FixedPoint_Lib.lib庫文件對每一行個數(shù)據(jù)進(jìn)行基2FFT計算,再乘以對應(yīng)的旋轉(zhuǎn)因子,最后對所得陣列的每一列個數(shù)據(jù)進(jìn)行基FFT計算,即實現(xiàn)了N點FFT分析。本發(fā)明無需對采樣數(shù)據(jù)進(jìn)行插值或者補零處理,充分保留原始數(shù)據(jù)所含信息,也無需修改硬件裝置,就可直接對采樣數(shù)據(jù)進(jìn)行FFT分析,計算結(jié)果具有較好的精度。
【專利說明】一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于電力系統(tǒng)自動化領(lǐng)域,涉及一種電能質(zhì)量數(shù)據(jù)處理方法,具體為涉及 一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法。
【背景技術(shù)】
[0002] 電能質(zhì)量的好壞是電力系統(tǒng)安全穩(wěn)定運行的重要指標(biāo)。近年來,越來越多的非線 性負(fù)荷和沖擊負(fù)荷投入電網(wǎng),使得電力系統(tǒng)的電能質(zhì)量問題越加嚴(yán)重。且許多精密儀器對 電能質(zhì)量的要求也越來越高。這些都促使電能質(zhì)量監(jiān)測成為電力系統(tǒng)自動化領(lǐng)域的一個重 要研究方向。
[0003] 目前,通常將數(shù)字信號處理器OSP)作為電能質(zhì)量監(jiān)測裝置的核心控制器,DSP不 但具有強(qiáng)大的數(shù)字信號處理能力,而且還具有較為完善的事件管理和嵌入式控制功能,因 此被廣泛應(yīng)用于在處理速度、處理精度方面要求較高的電能質(zhì)量監(jiān)測領(lǐng)域。
[0004] 快速傅里葉變換(FFT)是電能質(zhì)量監(jiān)測領(lǐng)域的主流算法,該算法 在以DSP為核心的電能質(zhì)量裝置中運行,對所采集的原始數(shù)據(jù)計算分析, 得到電能質(zhì)量的各個指標(biāo)。傳統(tǒng)的FFT算法為基2FFT,適用于采樣點數(shù)為 2K的序列。但是隨著智能電網(wǎng)的發(fā)展,出現(xiàn)了采樣點數(shù)為復(fù)合數(shù)的情況,IEC61850-9-1標(biāo) 準(zhǔn)中規(guī)定的采樣點數(shù)有多個,比如80點、200點,并不滿足2K,如仍采用傳統(tǒng)FFT進(jìn)行電能 質(zhì)量分析,則計算結(jié)果會出現(xiàn)較大誤差。針對此種情況,如何進(jìn)行準(zhǔn)確地計算分析是急需解 決的問題。
【發(fā)明內(nèi)容】
[0005] 為了解決傳統(tǒng)FFT不能對采樣點數(shù)為復(fù)合數(shù)的數(shù)據(jù)進(jìn)行分析的問題,本發(fā)明提供 了一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法。由于該方法是應(yīng)用于電能質(zhì)量監(jiān)測領(lǐng) 域,故該方法是在以DSP為核心的電能質(zhì)量監(jiān)測裝置中實現(xiàn)的。
[0006] 本發(fā)明采用以下方式是實現(xiàn)上述目的: 一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法,應(yīng)用于以數(shù)字信號處理器為核心的電 能質(zhì)量監(jiān)測裝置中,適用于采樣點數(shù)為復(fù)合數(shù)Y1 _F/2的情況,包括以下步驟: 步驟一、DSP讀取N點原始數(shù)據(jù),原始數(shù)據(jù)為經(jīng)過AD芯片的數(shù)字電壓或電流信號,N為 復(fù)合數(shù),并不滿足2的整數(shù)次冪,但可將其分解為見=251 *F2s2 ; 步驟二、對原始數(shù)據(jù)重新組合,將N點數(shù)據(jù)分解并重新組合為況行2;1列的陣列; 步驟三、將陣列中的每一行2sl個數(shù)據(jù)使用基2FFT進(jìn)行計算,使用C28X_FiXedPoint_ Lib.lib庫文件進(jìn)行基2FFT計算,計算結(jié)果為維數(shù)相同的復(fù)數(shù)陣列; 步驟四、將步驟三所得結(jié)果陣列中的每一個值乘以旋轉(zhuǎn)因子; 步驟五、將步驟四所得陣列中每一列F/2個數(shù)據(jù)進(jìn)行基FFT計算。
[0007] 進(jìn)一步,所述的數(shù)字信號處理器為TMS320F2812型。
[0008] 進(jìn)一步,所述步驟三中C28x_FixedPoint_Lib.lib庫文件在本方法中的使用包括 如下步驟: 步驟一、將該庫文件C28x_FixedPoint_Lib.lib添加至所建工程中; 步驟二、配置配套的頭文件fft.h和CMD文件,CMD的作用是為FFT計算用到的計算緩 沖區(qū)和旋轉(zhuǎn)因子兩個數(shù)據(jù)段分配合適的存儲空間; 步驟三、選擇復(fù)數(shù)FFT(CFFT)作為計算方法,CFFT雖為復(fù)數(shù)FFT但同樣適用于原始數(shù) 據(jù)為實數(shù)的情況,只需將虛部置零即可; 步驟四、將原始數(shù)據(jù)寫入計算緩沖區(qū),經(jīng)過實部位倒序和虛部位倒序后再將該緩沖區(qū) 地址賦值給FFT計算指針; 步驟五、調(diào)用fft.init(&fft)和fft.calc(&fft)函數(shù)即可完成FFT計算;由于FFT具 有原址運算的特點,所以計算結(jié)果仍存儲在計算緩沖區(qū)內(nèi)。
[0009] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果為: 本發(fā)明適合采樣點數(shù)為復(fù)合數(shù)F= 231 *F/2的情況,使用本方法進(jìn)行電能質(zhì)量分析, 無需對采樣數(shù)據(jù)進(jìn)行插值或者補零處理,充分保留原始數(shù)據(jù)所含信息,也無需修改硬件裝 置,就可直接對采樣數(shù)據(jù)進(jìn)行FFT分析,計算結(jié)果具有較好的精度。
【專利附圖】
【附圖說明】
[0010] 圖1為本發(fā)明的總體流程圖; 圖2為電能質(zhì)量監(jiān)測裝置示意圖; 圖3為本發(fā)明中C28x_FixedPoint_Lib.lib使用流程圖; 圖4為80點的FFT流程圖。
[0011] 【具體實施方式】 假設(shè)電能質(zhì)量監(jiān)測裝置一個周波的采樣序列為攻〇),減1),…,4W-1),共有N個 采樣點。當(dāng)N不是2的整數(shù)次冪時,可將N分解為P?g,此時可將該序列用陣列的形 式表不:
【權(quán)利要求】
1. 一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法,其特征在于:應(yīng)用于 以數(shù)字信號處理器為核心的電能質(zhì)量監(jiān)測裝置中,適用于采樣點數(shù)為復(fù)合數(shù) 見=2/1 ? 的情況,包括以下步驟: 步驟一、DSP讀取N點原始數(shù)據(jù),原始數(shù)據(jù)為經(jīng)過AD芯片的數(shù)字電壓或電流信號,N為 復(fù)合數(shù),并不滿足2的整數(shù)次冪,但可將其分解為F = 251* JV/2 ; 步驟二、對原始數(shù)據(jù)重新組合,將N點數(shù)據(jù)分解并重新組合為F252行F1列的陣列; 步驟三、將陣列中的每一行251個數(shù)據(jù)使用基2FFT進(jìn)行計算,使用C28X_FiXedPoint_ Lib. Iib庫文件進(jìn)行基2FFT計算,計算結(jié)果為維數(shù)相同的復(fù)數(shù)陣列; 步驟四、將步驟三所得結(jié)果陣列中的每一個值乘以旋轉(zhuǎn)因子; 步驟五、將步驟四所得陣列中每一列F/2個數(shù)據(jù)進(jìn)行基F2 FFT計算。
2. 根據(jù)權(quán)利要求1所述的一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法,其特征在于: 所述的數(shù)字信號處理器為TMS320F2812型。
3. 根據(jù)權(quán)利要求1所述的一種適用于采樣點數(shù)為復(fù)合數(shù)的FFT實現(xiàn)方法,其特征在于: 所述步驟三中C28x_FixedPoint_Lib. Iib庫文件在本方法中的使用包括如下步驟: 步驟一、將該庫文件C28x_FixedPoint_Lib. Iib添加至所建工程中; 步驟二、配置配套的頭文件fft. h和CMD文件,CMD的作用是為FFT計算用到的計算緩 沖區(qū)和旋轉(zhuǎn)因子兩個數(shù)據(jù)段分配合適的存儲空間; 步驟三、選擇復(fù)數(shù)FFT (CFFT)作為計算方法,CFFT雖為復(fù)數(shù)FFT但同樣適用于原始數(shù) 據(jù)為實數(shù)的情況,只需將虛部置零即可; 步驟四、將原始數(shù)據(jù)寫入計算緩沖區(qū),經(jīng)過實部位倒序和虛部位倒序后再將該緩沖區(qū) 地址賦值給FFT計算指針; 步驟五、調(diào)用fft. init (&fft)和fft. calc (&fft)函數(shù)即可完成FFT計算;由于FFT具 有原址運算的特點,所以計算結(jié)果仍存儲在計算緩沖區(qū)內(nèi)。
【文檔編號】G06F17/10GK104330673SQ201410653971
【公開日】2015年2月4日 申請日期:2014年11月18日 優(yōu)先權(quán)日:2014年11月18日
【發(fā)明者】趙慶生, 王志偉, 郭賀宏, 何志方, 韓肖清 申請人:太原理工大學(xué)