一種實時信號處理系統的研究和實現
引言
本文引用地址:http://www.104case.com/article/83580.htm近年來,實時信號處理的要求越來越高,所用系統要求具有處理大量數據的能力,這就要求系統硬件要達到很高的運算速度,并且軟件處理程序也要盡可能優化,以保證系統的實時性。本文基于FPGA和ADSP-TS101S所實現的一種高速數據并行處理系統,可以進行實時連續波和脈沖波的處理,并將連續波的頻譜和脈沖波脈沖幅度信息、脈前時刻、脈寬及載頻打包輸出。整個系統的輸出延時被控制在1ms之內。
系統任務及系統結構
系統任務
系統頻譜分析電路組成結構如圖1所示。前端輸入為高頻寬帶模擬信號經過數字化采樣后得到的數字信號。系統主要完成的任務是對該數字信號進行實時處理,并識別出高頻寬帶模擬信號為連續波還是脈沖波。如為連續波,系統計算出它的頻率,并輸出其頻譜;如為脈沖波,系統計算出它的脈沖寬度和脈載頻,并把載頻與時域中的脈沖前沿時刻信息、寬度信息及幅度信息對應起來,傳送給后面的系統進行處理。
系統先對輸入的數字信號進行電平轉換,然后進行正交變換。接下來開始對信號進行頻域處理,并以1.92μs為最小時段輸出其頻譜,同時進行預處理和連續波/脈沖波判別。對連續波,將各小時段的信號頻譜進行綜合處理后輸出其頻譜。對脈沖波,確定其脈沖前延時刻和脈沖后延時刻,從而確定其脈沖寬度,接著將脈沖幅度、后延時刻及寬度進行數據合成,之后再結合各個小時段的頻譜進行綜合處理,最終將脈沖幅度信息、脈沖前延時刻、寬度及載頻打包輸出。
系統結構
該信號并行處理系統結構框圖如圖2所示。
該系統主要由1片FPGA和11片TS101系列的DSP構成。FPGA首先將16位高速ADC采集進來的數據預處理后拼接成64位,使數據總線上的數據傳輸速率降低為輸入速率的1/4,然后通過數據總線依次送給TS0~TS8,同時產生TS0~TS9的控制信號DMAR和IRQ來控制每片DSP讀取數據總線上的數據。
由圖2可以看出,TS0、TS1、TS2(第1組)和TS3、FS4、TS5(第2組)以及TS6、TS7、TS8(第3組)在結構上為完全相同的三部分,且所進行的工作也完全相同,都需將處理完的數據通過鏈路口送給TS9和TS10。接著由TS9和TS10進行綜合比較,最后再通過鏈路口將處理結果送給后級板,并將結果分為3組,可進行相同的處理。每片TS101S只有4個鏈路口,因此TS9和TS10只能提供3個鏈路口給TS0~FS8,TS0的數據通過TS2的鏈路口中轉給TS9和TS10,TS1的數據也通過TS2的鏈路口中轉給TS9和TS10,其它兩組與第1組處理方法相同。
在1.92μs內,TS0~TS8將接收到的一幀64×64位數據拆分擴展成256×32位浮點數,然后對數據進行32位浮點FFT(快速傅立葉變換)運算,接著求模平滑,將得到的頻域數據發送給TS9和TS10進行綜合處理。TS9負責完成脈沖波綜合處理任務,TS10負責完成連續波綜合處理任務。最后,TS9和TS10將數據通過鏈路口送往后級進行處理。
信號處理軟件實現
在整個并行分析系統中,TS0~TS8需要各片DSP在時序上達到高度統一,每片DSP都應盡量簡化流程,節約時間開銷。TS0~TS8的主要任務是將接收到的數據進行FFT運算,并最終將各個小段信號的頻譜發送到TS9和TS10進行綜合處理。其操作流程如圖3。
這里,DSP首先進行初始化設置,設置完畢進入等待,直到接收到FPGA發出的信號,DSP跳出等待,進入IRQ中斷服務子程序。在IRQ中斷服務子程序中,進行DMA通道初始化,準備從總線上接數,設置完畢DSP前臺進入等待。DSP后臺接數操作每接到一個FPGA發出的信號,就完成接一個數。當接滿64個64位數時,發出DMA中斷,并使DSP跳出等待,進入DMA中斷服務子程序。在DMA中斷服務子程序中,進行拆數、FFT、求平方和、平滑等運算,待所有運算完畢,DSP開始設置鏈路口,將平滑后的結果,即128個32位的數傳給每組的最后一片,最后一片發往TS9和TS10。
連續波信號需要在FFT變換后再做平滑處理,然后依次輸出各頻率點的幅度值,從而獲取連續波信號的頻譜信息。具體而言,就是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個鏈路口將包數據發送到后級處理器。圖4為TS10的處理流程圖。
對于脈沖波綜合處理,其操作流程如圖5所示。
脈沖波綜合處理要同時輸出該段時間內的時域脈沖幅度信息、脈沖起始時間、寬度及載頻信息。上述參數中,時域脈沖幅度信息、脈沖起始時間和脈沖寬度已經通過相應的DMA中斷送到TS9,TS9通過32位總線中的高24位接收數據,次高位用于設置脈后標志(即當次高位為1時脈沖結束,低22位即為脈后時刻),脈后時刻前的數據為脈沖幅度信息,脈后時刻后的數據信息表示了脈沖寬度,由此可得到脈沖起始時刻)。另外,對于載頻信息,TS0~TS8將FFT結果送到TS9之中,TS9連續循環存儲多幀頻域數據,由于前9片DSP所得到的信息是按照嚴格的幀定時運算所得的,所以需要將它們的信息做相應的融合合并才能打包輸出。具體融合原則為:
a.當在接收到的時域數據中搜索到脈沖結束標志時,計算出該脈沖的脈前信息,并存儲脈前信息、時域脈沖幅度信息、脈沖起始時間及脈沖寬度;
b.在TS0~TS8送來的譜信息中搜索,與存儲的時域脈沖波信息相結合確定脈沖波,且將數個小段數據(1.92μs)內的幾個(最多只加5個)譜信息組合合并,得到相對完整準確的脈沖載頻;
c.向后級發送數據時發送脈沖前沿時刻、時域幅度信息、脈寬及載頻等信息。
結語
本文中的高速實時信號并行處理系統已通過測試,系統能夠完成連續波和脈沖波的處理,對連續波計算出它的頻率并輸出其頻譜,對脈沖波計算出它的脈沖寬度和脈沖載頻,并把脈沖載頻與時域中的脈沖前沿時刻信息,脈沖寬度信息及脈沖幅度信息很好地對應起來打包輸出。各個DSP算法程序均已完成,并已通過測試。整個DSP中程序均使用匯編程序編寫,最大地簡化了運算流程,節約了時間開銷。
評論