<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種實時信號處理系統(tǒng)的研究和實現(xiàn)

          一種實時信號處理系統(tǒng)的研究和實現(xiàn)

          作者:西安電子科技大學雷達信號處理國家重點實驗室 吳令宇 羅豐 吳順君 時間:2008-06-03 來源:電子設計應用 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/83580.htm

            近年來,實時的要求越來越高,所用系統(tǒng)要求具有處理大量數(shù)據(jù)的能力,這就要求系統(tǒng)硬件要達到很高的運算速度,并且軟件處理程序也要盡可能優(yōu)化,以保證系統(tǒng)的實時性。本文基于和A-TS101S所實現(xiàn)的一種高速數(shù)據(jù)并行處理系統(tǒng),可以進行實時連續(xù)波和脈沖波的處理,并將連續(xù)波的頻譜和脈沖波脈沖幅度信息、脈前時刻、脈寬及載頻打包輸出。整個系統(tǒng)的輸出延時被控制在1ms之內。

            系統(tǒng)任務及系統(tǒng)結構

            系統(tǒng)任務

            系統(tǒng)頻譜分析電路組成結構如圖1所示。前端輸入為高頻寬帶模擬信號經(jīng)過數(shù)字化采樣后得到的數(shù)字信號。系統(tǒng)主要完成的任務是對該數(shù)字信號進行實時處理,并識別出高頻寬帶模擬信號為連續(xù)波還是脈沖波。如為連續(xù)波,系統(tǒng)計算出它的頻率,并輸出其頻譜;如為脈沖波,系統(tǒng)計算出它的脈沖寬度和脈載頻,并把載頻與時域中的脈沖前沿時刻信息、寬度信息及幅度信息對應起來,傳送給后面的系統(tǒng)進行處理。

            系統(tǒng)先對輸入的數(shù)字信號進行電平轉換,然后進行正交變換。接下來開始對信號進行頻域處理,并以1.92μs為最小時段輸出其頻譜,同時進行預處理和連續(xù)波/脈沖波判別。對連續(xù)波,將各小時段的信號頻譜進行綜合處理后輸出其頻譜。對脈沖波,確定其脈沖前延時刻和脈沖后延時刻,從而確定其脈沖寬度,接著將脈沖幅度、后延時刻及寬度進行數(shù)據(jù)合成,之后再結合各個小時段的頻譜進行綜合處理,最終將脈沖幅度信息、脈沖前延時刻、寬度及載頻打包輸出。

            系統(tǒng)結構

            該信號并行處理系統(tǒng)結構框圖如圖2所示。

            該系統(tǒng)主要由1片和11片TS101系列的構成。首先將16位高速ADC采集進來的數(shù)據(jù)預處理后拼接成64位,使數(shù)據(jù)總線上的數(shù)據(jù)傳輸速率降低為輸入速率的1/4,然后通過數(shù)據(jù)總線依次送給TS0~TS8,同時產生TS0~TS9的控制信號R和IRQ來控制每片讀取數(shù)據(jù)總線上的數(shù)據(jù)。

                 

            由圖2可以看出,TS0、TS1、TS2(第1組)和TS3、FS4、TS5(第2組)以及TS6、TS7、TS8(第3組)在結構上為完全相同的三部分,且所進行的工作也完全相同,都需將處理完的數(shù)據(jù)通過鏈路口送給TS9和TS10。接著由TS9和TS10進行綜合比較,最后再通過鏈路口將處理結果送給后級板,并將結果分為3組,可進行相同的處理。每片TS101S只有4個鏈路口,因此TS9和TS10只能提供3個鏈路口給TS0~FS8,TS0的數(shù)據(jù)通過TS2的鏈路口中轉給TS9和TS10,TS1的數(shù)據(jù)也通過TS2的鏈路口中轉給TS9和TS10,其它兩組與第1組處理方法相同。

            在1.92μs內,TS0~TS8將接收到的一幀64×64位數(shù)據(jù)拆分擴展成256×32位浮點數(shù),然后對數(shù)據(jù)進行32位浮點FFT(快速傅立葉變換)運算,接著求模平滑,將得到的頻域數(shù)據(jù)發(fā)送給TS9和TS10進行綜合處理。TS9負責完成脈沖波綜合處理任務,TS10負責完成連續(xù)波綜合處理任務。最后,TS9和TS10將數(shù)據(jù)通過鏈路口送往后級進行處理。

            軟件實現(xiàn)

            在整個并行分析系統(tǒng)中,TS0~TS8需要各片DSP在時序上達到高度統(tǒng)一,每片DSP都應盡量簡化流程,節(jié)約時間開銷。TS0~TS8的主要任務是將接收到的數(shù)據(jù)進行FFT運算,并最終將各個小段信號的頻譜發(fā)送到TS9和TS10進行綜合處理。其操作流程如圖3。

            這里,DSP首先進行初始化設置,設置完畢進入等待,直到接收到FPGA發(fā)出的信號,DSP跳出等待,進入IRQ中斷服務子程序。在IRQ中斷服務子程序中,進行通道初始化,準備從總線上接數(shù),設置完畢DSP前臺進入等待。DSP后臺接數(shù)操作每接到一個FPGA發(fā)出的信號,就完成接一個數(shù)。當接滿64個64位數(shù)時,發(fā)出中斷,并使DSP跳出等待,進入DMA中斷服務子程序。在DMA中斷服務子程序中,進行拆數(shù)、FFT、求平方和、平滑等運算,待所有運算完畢,DSP開始設置鏈路口,將平滑后的結果,即128個32位的數(shù)傳給每組的最后一片,最后一片發(fā)往TS9和TS10。

            連續(xù)波信號需要在FFT變換后再做平滑處理,然后依次輸出各頻率點的幅度值,從而獲取連續(xù)波信號的頻譜信息。具體而言,就是TS0~TS8分成3組,每組3片;每組DSP中,前兩片的鏈路口分別與第3片的鏈路口相連,然后通過第3片的鏈路口將其運算結果傳送到TS10中;以17.28μs×4=69.12μs為一幀,9片DSP分時并行完成2.56點FFT運算和求模運算,TS10將這9片DSP的運算結果在一幀內進行平滑,完成一幀內信號的頻譜分析,同時將該幀的譜信息打包處理,最后通過TS10的第4個鏈路口將包數(shù)據(jù)發(fā)送到后級處理器。圖4為TS10的處理流程圖。

            對于脈沖波綜合處理,其操作流程如圖5所示。

                 

            脈沖波綜合處理要同時輸出該段時間內的時域脈沖幅度信息、脈沖起始時間、寬度及載頻信息。上述參數(shù)中,時域脈沖幅度信息、脈沖起始時間和脈沖寬度已經(jīng)通過相應的DMA中斷送到TS9,TS9通過32位總線中的高24位接收數(shù)據(jù),次高位用于設置脈后標志(即當次高位為1時脈沖結束,低22位即為脈后時刻),脈后時刻前的數(shù)據(jù)為脈沖幅度信息,脈后時刻后的數(shù)據(jù)信息表示了脈沖寬度,由此可得到脈沖起始時刻)。另外,對于載頻信息,TS0~TS8將FFT結果送到TS9之中,TS9連續(xù)循環(huán)存儲多幀頻域數(shù)據(jù),由于前9片DSP所得到的信息是按照嚴格的幀定時運算所得的,所以需要將它們的信息做相應的融合合并才能打包輸出。具體融合原則為:

            a.當在接收到的時域數(shù)據(jù)中搜索到脈沖結束標志時,計算出該脈沖的脈前信息,并存儲脈前信息、時域脈沖幅度信息、脈沖起始時間及脈沖寬度;

            b.在TS0~TS8送來的譜信息中搜索,與存儲的時域脈沖波信息相結合確定脈沖波,且將數(shù)個小段數(shù)據(jù)(1.92μs)內的幾個(最多只加5個)譜信息組合合并,得到相對完整準確的脈沖載頻;

            c.向后級發(fā)送數(shù)據(jù)時發(fā)送脈沖前沿時刻、時域幅度信息、脈寬及載頻等信息。

            結語

            本文中的高速實時信號并行處理系統(tǒng)已通過測試,系統(tǒng)能夠完成連續(xù)波和脈沖波的處理,對連續(xù)波計算出它的頻率并輸出其頻譜,對脈沖波計算出它的脈沖寬度和脈沖載頻,并把脈沖載頻與時域中的脈沖前沿時刻信息,脈沖寬度信息及脈沖幅度信息很好地對應起來打包輸出。各個DSP算法程序均已完成,并已通過測試。整個DSP中程序均使用匯編程序編寫,最大地簡化了運算流程,節(jié)約了時間開銷。



          關鍵詞: FPGA DSP 信號處理 DMAR DMA

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();