ADSP Tiger SHARC芯片TS101S及其應用
關鍵詞:ADSP Tiser SHARC;FBLMS;窄帶干擾;TS101S
1 引言
利用數(shù)字信號處理器(DSP)來進行模擬信號的處理同時具有很大的優(yōu)越性,其主要表現(xiàn)有精度高,靈活性大,可靠性好等方面。它不但可以廣泛應用于通信系統(tǒng)、圖形/圖像處理、雷達聲納、醫(yī)學信號處理等實時信號處理領域。而且隨著人們對實時信號處理要求的不斷提高和大規(guī)模集成電路技術的迅速發(fā)展,數(shù)字信號處理器也發(fā)生著日新月異的變革。就AD公司而言,繼16-bit定點ADSP21xx和32-bit浮點ADSP21xxx系列之后,日前又推出了ADSP Tiger SHARC系列的新型器件。這種Tiger SHARC系列器件是基于AD2106x的下一代高性能芯片,其內部集成有更大容量的RAM,它可以在單周期內執(zhí)行4條指令,且可以很方便地實現(xiàn)多片并行處理系統(tǒng)的擴展,這些新添的特性更增加了高速實時信號處理的可行性。本文將介紹該系列中的TS101S芯片,以及利用該芯片實現(xiàn)FBLMS?Frequency-domain Block LMS?算法的自適應預測濾波的設計方法。此外,筆者還在EZ-KIT開發(fā)板上測試通過并驗證了該算法抑制同頻窄帶信號對雷達干擾的有效性。
2?。裕樱保埃保酉到y(tǒng)器件的結構性能
2.1 結構特點
TS101S的系統(tǒng)結構邏輯框圖如圖1所示。TS101S依舊采用超級哈佛結構(SHARC),并運用流水線技術,目前可以達到8級流水線(3級取指5級執(zhí)行),其結構特點如下:
●具有特殊的指令集和較長的指令字,一個指令字可以同時控制芯片內多個功能單元的操作;
●片內集成有可由用戶自己定義的6Mbit大容量SRAM存儲器;
●具有2個獨立的計算單元,每個單元都有算術邏輯單元、乘法器、移位器、寄存器組及相關的數(shù)據(jù)對齊緩沖器,并可通過加速器支持Trellis解碼?如,Viterbi和Turbo解碼?和復數(shù)相關運算;
●帶有兩個Integer ALU,每個IALU含有兩個通用寄存器組,因而具有強大的地址產生能力,可支持環(huán)形緩沖和位反序尋址;
●支持SIMD操作。
2.2 主要性能
TS101S具有極高的處理能力,它采用靜態(tài)超標量結構,既有超標量處理器所具備的大容量指令緩沖池和指令跳轉預測功能,又可以在程序執(zhí)行前就對指令級進行并行操作并用編譯器預測出來。TS101S的其它重要性能指標如下:
●指令周期為4ns(主頻250MHz)?運算能力達到250MIPS;
●DSP每周期能執(zhí)行4條指令,具有24個16-bit定點運算和6個浮點運算能力,能提供1500MIPS或6.0GOPS的性能;
●每周期可實現(xiàn)816 bit乘與40 bit累加或者216 bit乘與80 bit累加;
●支持32 bit IEEE浮點數(shù)據(jù)和8 bit/16 bit/32 bit/64 bit定點數(shù)據(jù)格式。
TS101的其它典型性能指標如表1所列。
表1 250M運行時通用算法性能
性能指村 | 速 度 | 時鐘周期 |
32-bit處,500百萬MACs/s峰值性能 | ||
1024點復數(shù)FFT(基2) | 39.34μs | 9835 |
1024點輸入50抽頭FIR | 110μs | 27500 |
單FIR MAC | 2.2ns | 0.55 |
16-bit算法,20億次MACs/s峰值性能 | ||
256點復數(shù)FFT(基2) | 4.4μs | 1100 |
1024點輸入50抽頭FIR | 28.8μs | 7200 |
單FIR MAC | 0.56ns | 0.14 |
單復數(shù)FIR MAC | 2.28ns | 0.57 |
雷達信號處理一般需要很高的實時性,比如在干擾抑制算法處理時,必須在一個回波脈沖周期內完成相關算法。由上述分析可知,TS101S可以滿足高速實時數(shù)字信號處理的要求。下面以TS101S實現(xiàn)FBLMS自適應算法抑制同頻窄帶信號對雷達的干擾為例進一步介紹該芯片。
3?。疲拢蹋停铀惴ǚ治雠c實現(xiàn)
自適應過程一般采用典型LMS自適應算法,但當濾波器的輸入信號為有色隨機過程時,特別是當輸入信號為高度相關時,這種算法收斂速度要下降許多,這主要是因為輸入信號的自相關矩陣特征值的分散程度加劇將導致算法收斂性能的惡化和穩(wěn)態(tài)誤差的增大。此時若采用變換域算法可以增加算法收斂速度。變換域算法的基本思想是:先對輸入信號進行一次正交變換以去除或衰減其相關性,然后將變換后的信號加到自適應濾波器以實現(xiàn)濾波處理,從而改善相關矩陣的條件數(shù)。因為離散傅立葉變換?DFT?本身具有近似正交性,加之有FFT快速算法,故頻域分塊LMS?FBLMS?算法被廣泛應用。
FBLMS算法本質上是以頻域來實現(xiàn)時域分塊LMS算法的,即將時域數(shù)據(jù)分組構成N個點的數(shù)據(jù)塊,且在每塊上濾波權系數(shù)保持不變。其原理框圖如圖2所示。FBLMS算法在頻域內可以用數(shù)字信號處理中的重疊保留法來實現(xiàn),其計算量比時域法大為減少,也可以用重疊相加法來計算,但這種算法比重疊保留法需要較大的計算量。塊數(shù)據(jù)的任何重疊比例都是可行的,但以50%的重疊計算效率為最高。對FBLMS算法和典型LMS算法的運算量做了比較,并從理論上討論了兩個算法中乘法部分的運算量。本文從實際工程出發(fā),詳細分析了兩個算法中乘法和加法的總運算量,其結果為:
復雜度之比=FBLMS實數(shù)乘加次數(shù)/LMS實數(shù)乘加次數(shù)=(25Nlog2N+2N-4)/[2N(2N-1)]?
采用ADSP的C語言來實現(xiàn)FBLMS算法的程序如下:
for(i=0;i<=30;i++)
{for(j=0;j<=n-1;j++)
{in[j]=input[iN+j;]
rfft(in,tin,nf,wfft,wst,n);
rfft(w,tw,wf,wfft,wst,n);
cvecvmlt(inf,wf,inw,n);
ifft(inw,t,O,wfft,wst,n);
for(j=0,j<=N-1;j++)
{y[iN+j]=O[N+j].re;
e[iN+j]=refere[iN+j]-y[iN+j];
temp[N+j]=e[iN+j;}
rfft(temp,t,E,wfft,wst,n);
for(j=0;j<=n-1;j++)
{inf_conj[j]=conjf(inf[j]);}???
cvecvmlt(E,inf_conj,Ein,n);
ifft(Ein,t,Ein,wfft,wst,n);
for(j=0;j<=N-1;j++)
{OO[j]=Ein[j].re;
w[j]=w[j]+2*u*OO[j];}??
}
在EZ-KIT測試板中,筆者用匯編語言和C語言程序分別測試了典型LMS算法的運行速度,并與FBLMS算法的C語言運行速度進行了比較,表2所列是其比較結果,從表2可以看出濾波器階數(shù)為64時,即使是用C語言編寫的FBLMS算法也比用匯編編寫的LMS算法速度快20%以上,如果濾波器的階數(shù)更大,則速度會提高更多。
表2 FBLMS和LMS算法在運行速度比較
算 法 | 條 件 | 時鐘周期 | 速度 |
LMS-ASM | 1024點實數(shù)據(jù),64階 | 1257493 | 5.030ms |
LMS-C | 1024點實數(shù)據(jù),64階 | 8394862 | 33.579ms |
FBLMS-C | 1024點實數(shù)據(jù),64階 | 986524 | 3.946ms |
評論