專利名稱:用于dft演算的器件的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及特別但并非排他地適配成用于全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)的接收機中 的積分的DFT(離散傅立葉變換)處理器。本發(fā)明的實施例涉及基于對單個DFT線的選擇 性激活而使功率和面積得到優(yōu)化的架構(gòu)。相關(guān)技術(shù)傅立葉變換(FT)是將信號從時域變換到頻域的函數(shù)。在為有限歷時的離散信號 Ixtl, . . .,xN_J的情況下,傅立葉變換常被稱為離散傅立葉變換(DFT)。在眾多應(yīng)用中,傅立葉變換尤其被應(yīng)用于GPS、Galileo、GLONASS以及其他GNSS信 號的解調(diào)和處理。在這些應(yīng)用中,應(yīng)用于收到數(shù)據(jù)的傅立葉變換允許以并行方式處理若干 載波頻率,極大降低了硬件復(fù)雜度。現(xiàn)代GNSS接收機或處理器在大多情況下包括“DFT引 擎”,它是專用于DFT演算的部分?;贔T的GNSS信號處理的理論和細節(jié)是本領(lǐng)域所公知的,從而在本說明書中將 不作詳細討論。詳盡信息可在可用文獻中找到,例如由倫敦Artech House出版、由E.D Kaplan 和 C. Hegarty 所編的書籍“UnderstandingGPS and its applications (了解 GPS 及 其應(yīng)用)”(第2版),該書通過引用納入于此。
所提及的有限采樣信號{%}的DFT點Xk的定義為Xlc =^xn-e' ^ A: = 0,l,...,iV-l(1) Xk = Zxn-Wk:(2)
其中是單位1的N階復(fù)根,也被稱為“旋轉(zhuǎn)因子(twiddle factor) ”,或者將(1) 中的諸加總項的實部和虛部顯式地寫成
Xn = I+jQ Wn = cos —kn + j-Sin^:= C1+j-Cq Xn-W1^ = -C1-Q-Cq) +j(l-CQ+Q-C,)(4)式(1)由此可被表達為DFT項妒窮的加總。計算所有Xk點所需的DFT項的數(shù)目 為Ν2,但每一項將要求4次乘法和2次加法。演算DFT的高效算法是公知的基于分治法的快速傅立葉變換(FFT)。若有N個(2 的冪)樣本的數(shù)據(jù)流被對分并作并行處理,則計算階數(shù)降為Ν2/2次復(fù)數(shù)加法和(Ν2/2+Ν)次 復(fù)數(shù)乘法。由于可能拆分的次數(shù)等于Im2(N),由此得出計算階數(shù)由N · Iog2(N)次復(fù)數(shù)加 法和N · Iog2 (N) /2次復(fù)數(shù)乘法給定。使用FFT算法一般被認為是從N個樣本演算N個DFT點最為高效的方法。然而, 存在某些DFT配置,其中FFT算法并不是最優(yōu)的。例如,在那些僅要求M條DFT線的精簡集 合(其中M彡N)的應(yīng)用中,如在信號處理尤其是在GNSS處理器中就經(jīng)常是這種情形,F(xiàn)FT 架構(gòu)的計算階數(shù)并未得到優(yōu)化。
此外,F(xiàn)FT算法僅在N為2的冪的情況下才取其最為簡單和最為高效的形式。存 在用于任意N的各種FFT算法,但它們一般效率不高。在GNSS信號處理器中,DFT計算直接反應(yīng)在接收機的成本、硅面積和功耗上。因 此,亟需提供一種具有最低的可能計算負荷的DFT算法。傅立葉變換可被視作為時域中的函數(shù)在正弦和余弦函數(shù)標(biāo)準(zhǔn)正交基上的譜因式 分解。許多其他的離散積分變換在對應(yīng)于不同標(biāo)準(zhǔn)正交基的信號處理技術(shù)中是相關(guān)的。這 些變換包括例如余弦變換(DCT)及其各種變形(MDCT)、離散哈特利變換(DHT)及其他。為 了簡單起見,前述說明書僅提及DFT變換。然而應(yīng)該理解,本發(fā)明并不限于此特定情形,而 是包括其所適用的所有離散積分變換。本發(fā)明的目標(biāo)是提供一種在用于處理GNSS信號的信號處理器中計算DFT線集合 的更加高效的算法。此外本發(fā)明旨在提供一種低功率GNSS接收機。
發(fā)明概要本發(fā)明的目標(biāo)通過所附獨立權(quán)利要求的客體、包含重要但并非必要特征的從屬權(quán) 利要求的變體來實現(xiàn)。參照僅作為示例被提供的一些實施例的詳細描述以及示意性地解說 的附圖,將能更好地理解本發(fā)明。附圖簡述
圖1 :DFT計算的已知實現(xiàn)。圖2 圖1中的已知器件的流水線化變形。圖3 根據(jù)本發(fā)明的一方面的DFT引擎的結(jié)構(gòu)。圖4 圖3的結(jié)構(gòu)中所用的半蝶形架構(gòu)。圖5 具有(K+l)/2個常數(shù)乘法器模塊的偶系數(shù)排的細節(jié)。圖6 具有(K+1V2個常數(shù)乘法器模塊的奇系數(shù)排的細節(jié)。圖7 =GNSS衛(wèi)星捕獲中搜索空間的表示。圖8 =GNSS接收機架構(gòu)。圖9 特定情形下DFT的旋轉(zhuǎn)因子在復(fù)平面中的位置。發(fā)明詳細描述本發(fā)明是基于對GNSS處理一般要求演算有限數(shù)目的DFT線的觀察。GNSS DFT引 擎中所使用的旋轉(zhuǎn)因子是有限集合,此外在其實部和虛部中具有特殊的對稱屬性。本發(fā)明 由此提議一種優(yōu)化的DFT算法,該算法利用了這些對稱性,能夠從N個樣本演算M條DFT線 的精簡集合(M彡N),N不必為2的冪。出于這些目的,數(shù)據(jù)格式考量、未使用的DFT線的動態(tài)禁用以及具有路由效率的 設(shè)計分割必須被納入考慮。如圖1上所示的直接DFT實現(xiàn)是基于演算式(4)中的實部和虛部所需的4個乘法 器和2個加法器。這通常被稱為全蝶形電路或算法。系數(shù)Cp Cq可從例如未在圖中示出的 預(yù)先演算的表中獲取。圖2解說采用了流水線辦法的全蝶形電路的變體,或即半蝶形。復(fù)用器201和分 用器206被用來在只有兩個乘法器202、203和一個加法器204的算術(shù)塊205中分開地計算 實部2071 · C1-Q · Cq和虛部2081 · Cq+Q · C1。結(jié)果被存儲在復(fù)寄存器209中。
使用實數(shù)通用乘法器的常規(guī)DFT實現(xiàn)是次優(yōu)的,因為它們并未考慮可能的旋轉(zhuǎn)因 子妒廣和CpCe系數(shù)不能取任何值但必然被包括在預(yù)定義的有限集合中這一事實。旋轉(zhuǎn)因子 P^fa是單位1的N階復(fù)根,因此它們的實部和虛部具有某些在常規(guī)DFT實現(xiàn)中未被挖掘利用 的對稱性。優(yōu)選地,本發(fā)明的電路使用一組常數(shù)乘法器模塊,其數(shù)目等于不同的可能系數(shù) (不考慮其符號)的數(shù)目K加1 (該額外的模塊是需要用來考慮單位1的±V^/2±yV^/2形 式的根,這些根對于實部和虛部而言在絕對值上具有相同的系數(shù))。用于近似計算每個DFT的頻率跨度的簡單公式被給定為 其中Ts是采樣周期,N是DFT的輸入信號的長度(用點數(shù)來表達),M是演算的DFT 線的數(shù)目(Μ彡N),以及Nijs是有效DFT長度(有效積分了多少點)。不同系數(shù)的數(shù)目K取決于DFT點的數(shù)目N。假設(shè)N為8的整數(shù)倍并挖掘利用單位 1的N階復(fù)根的對稱性,則不同系數(shù)的數(shù)目K等于Ν/4+1。此式給出,對于N = 8,16,24,32, 40,48,K的順次的值=3,5,7,9,11,15。將此擴展到支持N的其他值、或K值的任何有限選 擇的DFT引擎是簡單直接的。例如若N想要能在值范圍{8,16,24,32}中配置,則所需系數(shù) 的數(shù)目K為(K (24)+K (32)-Kc),KcSN= 24和N = 32之間公共系數(shù)(具有復(fù)幅角0°或 45°的那些系數(shù))的數(shù)目。現(xiàn)在將參照圖3描述本發(fā)明的實施例。半蝶形算術(shù)塊205在功能上等效于圖2中 用相同標(biāo)號標(biāo)記的塊。然而其結(jié)構(gòu)并不相同,這將在下文進行解釋??刂七壿媶卧?03驅(qū)動DFT引擎的操作。它使用傳入的配置參數(shù)301從輸入緩沖 器302選擇要被處理201的數(shù)據(jù)。配置參數(shù)301和緩沖器302中的輸入數(shù)據(jù)可具有各種來 源。例如,在GNSS接收機的情形中,配置可由未表示出的CPU提供,而輸入數(shù)據(jù)可由相關(guān) (correlation)單元生成。然而其他配置也是可能的。取決于是正在處理式(4)中的實部 還是虛部,控制邏輯單元303還控制對當(dāng)前系數(shù)對304的選擇并確定應(yīng)在半蝶形單元205 中加上還是扣除部分項。半蝶形205首先演算實部207 (I · C1-Q · Cq),并且分用器206將該結(jié)果驅(qū)動至復(fù) 數(shù)結(jié)果寄存器209的I部。然后,半蝶形演算虛部208(1 · Cq+Q · C1)并將該結(jié)果存儲在復(fù) 數(shù)結(jié)果寄存器209的Q部。復(fù)數(shù)結(jié)果209任選地通過定標(biāo)單元305被乘以常數(shù)因子,并在累加器中與先前DFT 項相累加,該累加器包括加法器306和例如RAM的存儲器308。本發(fā)明的DFT優(yōu)選地包括飽和級307以檢測累加RAM 308中的上溢。若發(fā)生飽和, 則激活標(biāo)志310。DFT控制邏輯303或外部控制單元實現(xiàn)用以演算合適的定標(biāo)因子的算法 以避免飽和。本發(fā)明的DFT處理單元優(yōu)選地被安排成動態(tài)地禁用如配置參數(shù)301所指示的任何 未使用的DFT線。輸入數(shù)據(jù)選擇器201可被固定到‘0’,從而減少對應(yīng)被丟棄的DFT線的半 蝶形205和定標(biāo)器305的翻轉(zhuǎn)。另外,控制邏輯303可被用來更新RAM 308的地址,但避免不必要且消耗功率的存儲器讀/寫訪問。根據(jù)本發(fā)明的一優(yōu)選變形,DFT處理器包括具有如圖4中所示結(jié)構(gòu)的半蝶形205, 其分兩步演算式⑷。首先演算實部(I · C1-Q · Cq),然后是虛部(I · Cq+Q · C1)。圖4的結(jié)構(gòu)利用了這樣的事實,即除了具有45°倍數(shù)的復(fù)幅角的對角線系數(shù)C45這 唯一的例外,總是Ci Φ Cq ;系數(shù)集合可被拆分成偶常數(shù)系數(shù)ICtl, C2, ... , Ck_J和奇常數(shù)系 數(shù)IC1, C3, ... , Ck_2}這兩個分開的組。該細分是以這樣的方式進行的,即絕不會發(fā)生需要 用同一組的兩個系數(shù)來演算半蝶形項。塊403包含多個被專門安排成乘以常數(shù)偶系數(shù)ICtl, C2,...,Ck_J中的一個系數(shù)的乘法器,而塊406包含多個被專門安排成乘以常數(shù)奇系數(shù){C” C3, ... , Ck_2}中的一個系數(shù)的乘法器。這兩個塊皆包含C45系數(shù)乘法器。本發(fā)明的此特征由圖9示范,圖9示出對應(yīng)于特別情形N= 32在式(4)中出現(xiàn)的 旋轉(zhuǎn)因子壞言的位置。汗言沿復(fù)平面中的單位圓分布,并且處在關(guān)于45°虛線對稱的位置。 忽略可以簡單計算出的符號,系數(shù)(^和^必定取所示的值Ctl, -C8中的一個值。除了 45° 旋轉(zhuǎn)因子這唯一的例外,式⑷的所有項皆涉及來自有限常數(shù)集合ICtl, C2, C4, C6, C8I中的 一個系數(shù)和來自有限常數(shù)集合IC1, C3, C5, C7,,C8}中的另一個系數(shù)。半蝶形單元205的結(jié) 構(gòu)被設(shè)計成利用此對稱性?,F(xiàn)在參照圖4,輸入樣本I、Q和K個系數(shù)優(yōu)選地被編碼為符號_量值。如果傳入 的數(shù)據(jù)不是以符號-量值格式,則最后可以面積上的微小開銷來在I、Q數(shù)據(jù)之前添加額外 的轉(zhuǎn)換邏輯。在塊403和406中將數(shù)據(jù)的量值和所選系數(shù)的量值相乘以獲得乘積的量值。 由于乘法器必須處理絕對量值這一事實,因此相對于被安排成處理2進制補碼格式的數(shù)字 的傳統(tǒng)乘法器極大降低了內(nèi)部翻轉(zhuǎn)和動態(tài)功耗。排403和406中所含的常數(shù)乘法器優(yōu)選地被實現(xiàn)成整數(shù)算術(shù),并且被高度優(yōu)化。具 有0°或90°復(fù)幅角的簡單系數(shù)被實現(xiàn)為移位和截斷操作以進一步最小化面積和功率。在 合適的情況下,一些系數(shù)可略微偏離理論值以便簡化乘法器的結(jié)構(gòu)和降低其功耗。在所給出的示例中,半蝶形的輸出是2進制補碼格式。由于在403和406中演算 出的乘積是以符號_量值格式編碼的,因此在數(shù)據(jù)經(jīng)加法器410組合之前,轉(zhuǎn)換塊409實施 必要的轉(zhuǎn)換。配置端口 407選擇半蝶形是計算復(fù)DFT結(jié)果209的實部(I · C1-Q · Cq)還是 虛部(I · Cq+Q · C1)。在將數(shù)據(jù)轉(zhuǎn)換成2進制補碼格式之前,還必須知曉數(shù)據(jù)的符號以及系 數(shù)的符號。旁路掉轉(zhuǎn)換塊409以具有符號-量值編碼的輸出也是可能的。加法器410的輸 出是式(4)的DFT之一的實部或虛部。根據(jù)變形,值I、Q被表示為無符號整數(shù),并且排403 和406中的乘法器以無符號模式操作。分開地計算出的結(jié)果的符號通過對2進制補碼單元 408和409的動作來設(shè)置。排403和406中所含的常數(shù)乘法器模塊中的每一個模塊由來自控制單元303的配 置總線402和405來動態(tài)地激活。由此,在任何給定時刻電路系統(tǒng)中僅真正需要用于當(dāng)前 DFT線演算的部分是激活的,并且對于大多數(shù)時間,排403和406中的乘法器處于非活躍的 靜態(tài)。優(yōu)選地,式⑷中各項的加總的順序可被重排(加擾)。圖5示出用于偶系數(shù)排403的可能結(jié)構(gòu)。輸入信號501是由復(fù)用器401 (圖4)執(zhí) 行的在I和Q之間選擇的結(jié)果。此信號501對于所有的(K+1)/2個常數(shù)乘法器模塊503是 共用的。僅激活電路系統(tǒng)中真正需要用于當(dāng)前DFT線演算的那部分的可能性是使用來自 402 并被列為(Sel_I_0,Sel_Q_0, . . .,Sel_I_K_l,Sel_Q_K_l)的控制信號來執(zhí)行的。
圖6中示出了用于奇系數(shù)排的類似辦法。輸入信號601是由復(fù)用器404執(zhí)行的在 I和Q之間選擇的結(jié)果。此信號601對于406內(nèi)所有的(K+1)/2個常數(shù)乘法器模塊是共用 的。僅激活電路系統(tǒng)中真正需要用于當(dāng)前DFT線演算的那部分的可能性是使用來自405并 被列為(Sel_I_l,Sel_Q_l, · · ·,Sel_I_K_2,Sel_Q_K_2,Sel_I_45°,Sel_Q_45° )的控制 信號來執(zhí)行的。具有對應(yīng)45°的系數(shù)的乘法單元605也在403中可用,但必須在406中被 復(fù)制。來自403的什么系數(shù)在406內(nèi)也被標(biāo)記為605取決于所采用的系數(shù)的編碼。僅需要2個系數(shù),因此僅2個常數(shù)乘法單元被同時激活(每個系數(shù)排403和406 中有一個)。其他常數(shù)乘法器塊的輸入連接至0 (沒有歸因于組合邏輯翻轉(zhuǎn)的消耗)。此辦法與標(biāo)準(zhǔn)乘法器辦法相比降低了約30%的翻轉(zhuǎn)活動。此外,此架構(gòu)完全是組 合性的,其內(nèi)部不存在流水線級。通常,數(shù)字電路系統(tǒng)中的流水線是使用基于簡單觸發(fā)器的 寄存器來實現(xiàn)的,而這些寄存器就面積和功耗而言并不是最優(yōu)的。繞開它們使得面積和功 率得到最優(yōu)化。在控制邏輯塊303和304內(nèi)部管理正在演算的DFT線的順序。DFT線可以可編程 順序來演算以使得降低CPU的后處理計算負荷。參照圖5和6并假設(shè)C1 = Ctl且Cq = C1,則式(4)的演算可用以下所述的兩個步 驟來執(zhí)行。 步驟 1 演算式(4)的實部:Sel_I_0 = l,Sel_Q_l = l,Sel_I_x = 0(若 χ 乒 0), Sel_Q_x = 0(若 χ 乒 1),Sel_I = 1,Sel_Q = 1,DFT_Re =1。則 A = I · C0,B = -Q · C1 步驟 2 演算式(4)的虛部:Sel_I_l = 1,Sel_Q_0 = 1,Sel_I_x = 0 (若 χ 乒 1), Sel_Q_x = 0 (若 χ 乒 0),Sel_I = 0,Sel_Q = 0,DFT_Re = 0。貝丨J D = Q · C0,C = I · C1GNSS接收機實施例DFT算法是本領(lǐng)域眾所周知的且在技術(shù)文獻中有記載。以下,將參照圖7和8僅討 論GNSS實現(xiàn)特有的方面。參照圖7,對GPS空間飛行器(SV)的捕獲和跟蹤要求確定頻/碼槽705。出于此 目的,需要特別的資源來確定碼相偏移量槽703和多普勒槽704。在沒有對以上所引用的參 數(shù)中一個或更多個參數(shù)的估計的情況下,應(yīng)執(zhí)行在整個頻/碼搜索空間上的完全搜索。順序搜索法是被廣泛用于GNSS系統(tǒng)中的捕獲步驟的方法,其中在傳入的GPS信號 的所有可能的多普勒上進行頻率掃掠并在GPS PRN(偽隨機噪聲)碼的1023個可能的值上 進行碼相掃掠。可使用并行頻率法來加速捕獲過程。圖8中所示的接收機架構(gòu)實施頻域中的并行 搜索,該搜索演算由經(jīng)處理的GNSS信號802與給定SV的PRN的本地生成副本804之間的 相關(guān)(correlation)805所生成的信號的DFT 806。衛(wèi)星參照于接收機的視線速度導(dǎo)致+/-IOKHz量級的多普勒效應(yīng)。150Hz的頻率步 長是用于低級GNSS信號情景所需的最小步長。相關(guān)信號805的增益具有格式Sinc(X): = sin (χ)…1,其中χ = JifTt^fMsinc 包絡(luò)應(yīng)用于DFT變換函數(shù),變得明顯的是,在PRN碼被理想對準(zhǔn)的條件下,除了中心頻率線 f(其對應(yīng)于多普勒頻率),所有DFT線都將受到振幅損耗的影響。否則不存在峰值。前述屬性證明了使用來自相關(guān)器(correlator) 805的N個數(shù)據(jù)樣本的精簡的M個 DFT線是有道理的。
本發(fā)明還涉及用于精簡數(shù)目的譜線的DFT處理器以降低硬件復(fù)雜度和功耗。
通過謹慎地施加專屬于SV導(dǎo)航的恰適設(shè)計約束和對DFT算法的分析,可實現(xiàn)一種 用于將頻域分析高效地嵌入到GNSS芯片組中的最優(yōu)化的硬件架構(gòu)。
權(quán)利要求
一種用于將值乘以常數(shù)系數(shù)的有限集中的項的器件,包括多個乘法器,其中每個乘法器被專門安排成乘以所述有限集中的所述常數(shù)系數(shù)中的一個系數(shù)。
2.如前項權(quán)利要求所述的器件,其特征在于,包括邏輯控制塊,其作用于被安排成選擇 性地將所述值路由至乘以所述有限集中的合需系數(shù)的乘法器。
3.如前項權(quán)利要求所述的器件,其特征在于,所述值和所述系數(shù)具有復(fù)值。
4.如在前權(quán)利要求中任一項所述的器件,其特征在于,所述器件被專門安排成計算 DFT或DCT或離散積分變換。
5.一種用于計算DFT變換的器件,包括多個乘法器電路(503),每個乘法器電路被安排 成將輸入值乘以對應(yīng)于所述DFT的旋轉(zhuǎn)因子的實部或虛部的預(yù)定常數(shù)系數(shù)(C0-C8),所述 器件包括控制邏輯塊(303)以及加法器(410),所述控制邏輯塊作用于被安排成激活所述 乘法器中與所述DFT的旋轉(zhuǎn)因子相對應(yīng)的乘法器對,以及所述加法器作用于被安排成加總 或扣除所述乘法器對中乘法器的輸出從而獲得DFT項的實部或虛部。
6.如前項權(quán)利要求所述的器件,其特征在于,所述乘法器被安排在兩個分開的排 (403,406)中。
7.如前項權(quán)利要求所述的器件,其特征在于,對應(yīng)一常數(shù)系數(shù)的乘法器在兩個排 (403,406)中皆被復(fù)制。
8.如權(quán)利要求5-7中任一項所述的器件,其特征在于,包括作用于被安排成累加若干 DFT項的累加器(306,308)。
9.如權(quán)利要求5-8中任一項所述的器件,其特征在于,所述乘法器對符號/量值格式、 或無符號整數(shù)格式的整數(shù)進行操作。
10.如權(quán)利要求5-9中任一項所述的器件,其特征在于,未被所述控制單元(303)激活 的乘法器的輸入被強制為常數(shù)值。
11.一種用于在GNSS接收機中處理無線電定位信號的信號處理器,包括如權(quán)利要求 5-10中的一項的用于計算DFT的器件。
12.用于將值乘以常數(shù)系數(shù)的有限集中的項的方法,包括以下步驟提供多個乘法器單元,每個乘法器單元被專門安排成乘以所述有限集中的所述常數(shù)系 數(shù)中的一個系數(shù);將所述值選擇性地路由至乘以所述有限集中的合需系數(shù)的乘法器。
13.如前項權(quán)利要求所述的方法,其特征在于,所述值和所述系數(shù)具有復(fù)值。
全文摘要
一種用于執(zhí)行例如GNSS接收機中的DFT演算的器件,包括兩排乘以常整數(shù)值的乘法器,這些值代表DFT中旋轉(zhuǎn)因子的實部和虛部??刂茊卧x擇性地將數(shù)據(jù)路由通過恰適的乘法器以獲得合需的DFT項。未使用的乘法器被連接至常數(shù)輸入值以便最小化動態(tài)功率。
文檔編號G06F17/14GK101933012SQ200880126309
公開日2010年12月29日 申請日期2008年5月15日 優(yōu)先權(quán)日2008年1月31日
發(fā)明者A·辛西歐蒂, N·盧卡斯, P·楊 申請人:高通股份有限公司