機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
一種A/D+FPGA+DSPs的FFT系統(tǒng)設(shè)計(jì)方案
一種A/D+FPGA+DSPs的FFT系統(tǒng)設(shè)計(jì)方案
 更新時(shí)間:2008-8-3 15:58:20  點(diǎn)擊數(shù):6
【字體: 字體顏色


    

The Realization of FFT Based on UART and CCS
摘要:FFT是對(duì)實(shí)時(shí)采集的動(dòng)態(tài)數(shù)據(jù)進(jìn)行頻域分析、處理的基本算法,本文針對(duì)DSP系統(tǒng)特點(diǎn)設(shè)計(jì)了一種高效的FFT的實(shí)現(xiàn)方法,以完成對(duì)動(dòng)態(tài)信號(hào)的實(shí)時(shí)分析、處理。使用串口將DSP評(píng)估板與PC機(jī)相連,利用CCS作為開發(fā)平臺(tái)來進(jìn)行調(diào)試,分析了調(diào)試過程中遇到的問題給出了解決的方法,并利用MATLAB驗(yàn)證了該方法的正確性與可行性。
關(guān)鍵詞:動(dòng)態(tài)信號(hào)分析;數(shù)字信號(hào)處理器;代碼調(diào)試器;快速傅立葉變換;串口


Abstract: FFT is the fundamental algorithm of frequency-domain analysis and processing of the real-time dynamic data acquisition. Directing at DSP system’s characteristic, the present paper designs an efficient realization of FFT in order to realize real-time analysis and processing of dynamic signal. Through connecting DSP evaluation board with PC by UART and debugging them based on CCS, this paper analyzes the problems happened in the process of debugging and provides the solution to these problems,and use MATLAB to prove the correctness and feasibility of the method.
Key word: Dynamic Signal Analysis; DSPs; CCS;FFT; UART


1. 引言
動(dòng)態(tài)信號(hào)分析是現(xiàn)代機(jī)械系統(tǒng)、控制系統(tǒng)、電力系統(tǒng)等多領(lǐng)域的一種快速測試分析方法,它在設(shè)定的時(shí)間范圍內(nèi),對(duì)被測信號(hào)采樣、變換、數(shù)據(jù)處理,通過實(shí)時(shí)獲取系統(tǒng)的動(dòng)態(tài)參數(shù),并利用DSP對(duì)參數(shù)進(jìn)行實(shí)時(shí)處理,然后將處理結(jié)果以波形等形式顯示出來,從而可以直觀的反映系統(tǒng)的運(yùn)行狀態(tài),方便故障的診斷處理。
針對(duì)上述的應(yīng)用,設(shè)計(jì)了一種A/D+FPGA+DSPs的系統(tǒng)方案。在該方案中,A/D實(shí)現(xiàn)高速數(shù)據(jù)采集,F(xiàn)PGA實(shí)現(xiàn)對(duì)采集數(shù)據(jù)的緩沖、傳輸控制以及數(shù)據(jù)的預(yù)處理,DSPs實(shí)現(xiàn)對(duì)高速數(shù)據(jù)的處理,包括:諧波分析,相位分析等。而這些處理大多都是在頻域進(jìn)行的,需要把時(shí)域數(shù)據(jù)轉(zhuǎn)換成頻域數(shù)據(jù),而FFT算法正是實(shí)現(xiàn)這一變換的快速算法。
TMS320C6416是高性能的32-位定點(diǎn)DSP,主頻可達(dá)1GHz,處理性能高達(dá)8000MIPS,它采用多級(jí)流水結(jié)構(gòu),可以滿足對(duì)實(shí)時(shí)數(shù)據(jù)的高速處理的要求 。本文使用UART接口實(shí)現(xiàn)TMS320C6416與PC的相連,通過PC機(jī)輸入DSPs實(shí)時(shí)數(shù)據(jù),DSPs對(duì)數(shù)據(jù)進(jìn)行處理后再通過串口傳送到PC機(jī),實(shí)現(xiàn)DSP算法的調(diào)試。


2.FFT的原理及其在DSPs上的實(shí)現(xiàn)
傅立葉變換是一種將時(shí)域信號(hào)轉(zhuǎn)變?yōu)轭l域信號(hào)的變換形式,是數(shù)字信號(hào)處理中對(duì)信號(hào)進(jìn)行分析時(shí)經(jīng)常采用的一種方法。但是如果采用常規(guī)的傅立葉變換,則該算法的運(yùn)算量會(huì)特別大,不適于需要高速運(yùn)行的嵌入式控制系統(tǒng)中采用,而通常方法是采用快速傅立葉變換( FFT) ,實(shí)現(xiàn)FFT 通常有兩種方法:第一,按時(shí)間抽取(DIT) 的FFT 算法;第二,按頻率抽取(DIF) 的FFT 算法。


2. 1  FFT 的原理[2]
對(duì)N 點(diǎn)序列x ( n) ,其DFT 變換定義為:



式中:X(k)是時(shí)間序列x(n)的頻譜;WN為蝶形因子。蝶形因子具有對(duì)稱性、周期性、可約性的特點(diǎn),因此,利用旋轉(zhuǎn)因子的這些特性,使DFT的有些項(xiàng)合并,將長序列的DFT合并為短序列的DFT?焖俑盗⑷~變換正是基于這樣的基本思路而發(fā)展起來的。
DIT―FFT的運(yùn)算具有以下規(guī)律:1. 原位運(yùn)算(同址運(yùn)算),這種運(yùn)算是很有規(guī)律的,其每級(jí)(每列)計(jì)算都是由N/2 個(gè)蝶形運(yùn)算構(gòu)成的,每一個(gè)蝶形結(jié)構(gòu)完成下述基本迭代運(yùn)算:
 


式中,m表示第m列迭代,k, j為數(shù)據(jù)所在行數(shù) 。2. 序列的倒序,當(dāng)運(yùn)算完成后,F(xiàn)FT的輸出X(k)按正常順序排列在存儲(chǔ)單元中,即按X(0…0),X(0…1),…,X(1…1)的順序排列,但是這時(shí)輸入x(n)卻不是按自然順序存儲(chǔ)的,而是按x(0…0),x(1…0), …, x(1…1)的順序即按k的倒序存入存儲(chǔ)單元。
2.2 FFT在DSPs上的實(shí)現(xiàn)[3]
在快速算法中,為了避免重復(fù)計(jì)算和提高運(yùn)算的速度,將旋轉(zhuǎn)因子表以固定的數(shù)組的形式存放。其實(shí)部和虛部交替存儲(chǔ)。FFT在DSPs上實(shí)現(xiàn)流程圖如下:



 
圖1.FFT在DSPs上實(shí)現(xiàn)的流程圖



一開始,先是DSP、串口的初始化,判斷是否接受夠一次FFT的數(shù)據(jù)量,如果沒有,進(jìn)行等待;這時(shí),如果串口的RX FIFO中接受到了數(shù)據(jù),就會(huì)立即產(chǎn)生中斷,RX 的數(shù)據(jù)首先存入short型的數(shù)組a中,之后,檢查數(shù)組a中的數(shù)據(jù)是否達(dá)到進(jìn)行FFT的要求,如果達(dá)到要求,將一次的數(shù)據(jù)量送入FFT函數(shù),對(duì)其進(jìn)行變換,再將計(jì)算的結(jié)果送入到TX FIFO中輸出;如果沒有達(dá)到要求,則等待RX FIFO接收新的數(shù)據(jù)而產(chǎn)生的中斷,進(jìn)而數(shù)組a繼續(xù)接收RX FIFO中的數(shù)據(jù),直到a中的數(shù)據(jù)達(dá)到要求。之所以采取兩個(gè)數(shù)組的ping-pong Buffer結(jié)構(gòu)是由DSP與串口結(jié)構(gòu)的特點(diǎn)決定的。(假設(shè)作n點(diǎn)FFT)
一旦RX FIFO接受到一個(gè)字節(jié),將導(dǎo)致DSP產(chǎn)生一個(gè)中斷,那么就需要一個(gè)Buffer對(duì)其進(jìn)行接收,當(dāng)接收到2n個(gè)字節(jié)時(shí),需要對(duì)其進(jìn)行一次FFT(因?yàn)镕FT的輸入的各點(diǎn)是16bit的)。若n的數(shù)目較大,那么如果在n點(diǎn)FFT還未算完時(shí),RX FIFO又接收到一個(gè)字節(jié),這時(shí)將導(dǎo)致前面接收的字節(jié)覆蓋后來接受的字節(jié)的后果,產(chǎn)生錯(cuò)誤;為了避免上述情況,可以通過復(fù)雜的軟件控制使FFT計(jì)算完后,再向Buffer中寫新的數(shù)據(jù),但這大大將降低數(shù)據(jù)的處理速度。所以,需要再開一個(gè)Buffer,形成ping-pong的結(jié)構(gòu),當(dāng)一個(gè)Buffer中的數(shù)據(jù)進(jìn)行FFT時(shí),如果再有數(shù)據(jù)進(jìn)來,可以放在另一個(gè)Buffer中,這樣反復(fù)交替進(jìn)行可以大大提高運(yùn)算的效率和結(jié)果的準(zhǔn)確性。


[1] [2]  下一頁



[1] [2]  下一頁
  • 上一篇: 基于運(yùn)動(dòng)目標(biāo)檢測算法的研究與DSP移植
  • 下一篇: 采用TMS320VC5509A自帶的USB接口來完成USB數(shù)據(jù)傳輸?shù)姆桨?/a>
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1