專利名稱:在數(shù)字信號(hào)處理器中恢復(fù)被復(fù)頻的信號(hào)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于無(wú)線電話應(yīng)用的數(shù)字信號(hào)處理器,更具體地說(shuō),涉及用接近正交的代碼隔離信號(hào)各組成部分的指令。
本發(fā)明的現(xiàn)有技術(shù)在實(shí)現(xiàn)蜂巢式電話系統(tǒng)的時(shí)候,重要的是使能在可用的頻率下傳輸?shù)臄?shù)據(jù)的數(shù)量達(dá)到最大值。這往往涉及變更數(shù)據(jù)信號(hào)以允許過(guò)傳輸更多的數(shù)據(jù)。這些變更必須是可逆的以便最初的信號(hào)能在接收端被充份地重新獲得。變更數(shù)據(jù)的一種方法是通過(guò)碼分多址(CDMA)和擴(kuò)頻。
擴(kuò)頻是一種把正常的窄帶信號(hào)轉(zhuǎn)變成非常寬帶的信號(hào)的變更數(shù)據(jù)的方法。在寬頻帶上給信號(hào)擴(kuò)頻允許使用較低的功率發(fā)送和接收信號(hào)。擴(kuò)頻是通過(guò)將最初的信號(hào)乘以展開(kāi)和復(fù)制信號(hào)的代碼實(shí)現(xiàn)的。信號(hào)被復(fù)制在寬頻帶上的次數(shù)被稱為擴(kuò)頻因子。例如,擴(kuò)頻代碼(1,1,1,1)有擴(kuò)頻因子4,因?yàn)樵谠摯a與信號(hào)相乘的時(shí)候,每個(gè)信號(hào)部分(被稱為“符號(hào)”)被重復(fù)四次。上述的擴(kuò)頻代碼實(shí)例在與由符號(hào)“abcd”組成的信號(hào)相乘的時(shí)候得到擴(kuò)頻的信號(hào)“aaaabbbbccccdddd”。如果為了將同樣的符號(hào)擴(kuò)頻,發(fā)出的擴(kuò)頻代碼是(1,-1,1,-1),那么擴(kuò)頻信號(hào)是“aa-aa-bb-bb-cc-cc-dd-dd-”(-應(yīng)在前一字符上方),其中x代表原始符號(hào)x的負(fù)值。一旦擴(kuò)頻,寬帶信號(hào)就被傳送給接收器。信號(hào)在接收端被復(fù)頻,以復(fù)原最初的信號(hào)。用來(lái)將信號(hào)擴(kuò)頻的代碼被用來(lái)使信號(hào)復(fù)頻。
由于包括復(fù)頻功能需要的強(qiáng)化計(jì)算在內(nèi)的一些因素,接收器已實(shí)現(xiàn)包括各種ASIC的使用和具有數(shù)字信號(hào)處理器的最基本的組成部分的硬件模塊的使用的復(fù)頻裝置。這些工具因缺乏編程能力而受到損害。其它的復(fù)頻裝置已包括各種FPGA的使用,但是這些裝置因?yàn)槌杀竞退鼈冊(cè)诰幊谭矫娌惶峁┏浞莸撵`活性而不受歡迎。
數(shù)字信號(hào)處理器(而不是ASIC)因?yàn)樗能浖幊棠芰Τ蔀榉弦蟮慕鉀Q方案。然而,數(shù)字信號(hào)處理器處理實(shí)現(xiàn)令人滿意的復(fù)頻裝置必不可少的高速?gòu)?fù)數(shù)計(jì)算是困難的。
因此,存在改進(jìn)用在被傳輸?shù)臒o(wú)線電話信號(hào)解碼方面的復(fù)頻裝置的落實(shí)的需要。
本發(fā)明的概述提供一種在數(shù)字信號(hào)處理器中用來(lái)處理信號(hào)數(shù)值的方法,該方法包括下述步驟,作為對(duì)至少規(guī)定信號(hào)數(shù)值和復(fù)頻代碼的單一指令的響應(yīng),將信號(hào)數(shù)值乘以復(fù)頻代碼。該方法可以進(jìn)一步包括將相乘的結(jié)果與來(lái)自先前的乘法運(yùn)算的結(jié)果相加的步驟。復(fù)頻代碼可以有能被4除盡的擴(kuò)頻因子。復(fù)頻代碼可以被分為代碼片段,每個(gè)代碼片段包括一個(gè)包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。就這些代碼位而言,設(shè)定代碼位可以代表-1的數(shù)值,而清零代碼位可以代表+1的數(shù)值。信號(hào)數(shù)值可以包括16位,其中包括8實(shí)數(shù)位和8虛數(shù)位。
進(jìn)一步提供在數(shù)字信號(hào)處理器中用來(lái)計(jì)算數(shù)據(jù)集的方法,該方法包括下述步驟,作為對(duì)一條或多條至少規(guī)定信號(hào)數(shù)值和一組代碼的指令的響應(yīng),對(duì)那組代碼中的每個(gè)代碼完成信號(hào)數(shù)值與那組代碼之一的乘法運(yùn)算;將乘法運(yùn)算的結(jié)果相加;以及產(chǎn)生來(lái)自相加結(jié)果的數(shù)據(jù)集。相加可以包括將相乘的結(jié)果與乘以先前一組代碼的結(jié)果相加。那組代碼可以有能被4除盡的擴(kuò)頻因子。那組代碼中的每個(gè)代碼都可以是包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。設(shè)定代碼位可以代表-1的數(shù)值,而清零代碼位可以代表+1的數(shù)值。信號(hào)數(shù)值可以包括16位,其中包括8實(shí)數(shù)位和8虛數(shù)位。
在進(jìn)一步的實(shí)施方案中,提供一種數(shù)字信號(hào)處理器,該數(shù)字信號(hào)處理器包括用來(lái)儲(chǔ)存用于數(shù)字信號(hào)計(jì)算的指令和操作數(shù)的存儲(chǔ)器;用來(lái)產(chǎn)生用來(lái)從所述的存儲(chǔ)器取出一些選定的所述指令的指令地址的程序定序器;以及包括用于暫時(shí)儲(chǔ)存操作數(shù)和結(jié)果的寄存器堆和用來(lái)執(zhí)行規(guī)定數(shù)據(jù)信號(hào)和代碼的解碼指令的執(zhí)行模塊的計(jì)算模塊,所述的執(zhí)行模塊包括用來(lái)將數(shù)據(jù)信號(hào)的各個(gè)部分與代碼相乘并且將結(jié)果累加的復(fù)數(shù)乘法和累加引擎。數(shù)字信號(hào)處理器可以作為對(duì)數(shù)字信號(hào)處理器執(zhí)行解碼指令的響應(yīng)完成一組關(guān)于數(shù)據(jù)信號(hào)的各個(gè)部分和代碼的各個(gè)部分的復(fù)數(shù)乘法運(yùn)算;以及將復(fù)數(shù)乘法運(yùn)算的結(jié)果相加。代碼可以有能被4除盡的擴(kuò)頻因子。在進(jìn)一步的實(shí)施方案中,代碼被分為若干代碼片段,每個(gè)代碼片段包括一個(gè)包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。在更進(jìn)一步的實(shí)施方案中,設(shè)定代碼位代表-1的數(shù)值,而清零代碼位代表+1的數(shù)值。數(shù)據(jù)信號(hào)可以包括16位,其中包括8實(shí)數(shù)位和8虛數(shù)位。
在另一個(gè)實(shí)施方案中,提供一種在數(shù)字信號(hào)處理器中用來(lái)計(jì)算輸出數(shù)據(jù)的方法,該方法包括下述步驟,作為對(duì)一條或多條至少規(guī)定一組復(fù)數(shù)的第一操作數(shù)(第一操作數(shù)每個(gè)都包括8實(shí)數(shù)位和8虛數(shù)位)和一組復(fù)數(shù)的第二操作數(shù)(第二操作數(shù)每個(gè)都包括1實(shí)數(shù)位和1虛數(shù)位)的指令的響應(yīng),針對(duì)每個(gè)第二操作數(shù)完成第一操作數(shù)之一乘以第二個(gè)操作數(shù)之一的復(fù)數(shù)乘法運(yùn)算;把在那組第二操作數(shù)范圍內(nèi)從頭到尾相乘的結(jié)果相加;以及從相加的結(jié)果產(chǎn)生一組數(shù)據(jù)作為輸出。在進(jìn)一步的實(shí)施方案中,在第二操作數(shù)之一中的設(shè)定位代表-1的數(shù)值,而在第二操作數(shù)之一中的清零位代表+1的數(shù)值。在更進(jìn)一步的實(shí)施方案中,那組復(fù)數(shù)的第二操作數(shù)包括復(fù)頻代碼。在又一個(gè)實(shí)施方案中,那組復(fù)數(shù)的第一操作數(shù)包括引入的數(shù)據(jù)信號(hào)。在進(jìn)一步的實(shí)施方案中,引入的數(shù)據(jù)信號(hào)是聲音傳輸信號(hào)。
進(jìn)一步提供一種在數(shù)字信號(hào)處理器中用來(lái)處理信號(hào)數(shù)值的方法,該方法包括下述步驟,根據(jù)指令規(guī)定的復(fù)數(shù)信號(hào)數(shù)值和兩位的復(fù)數(shù)代碼片段,完成信號(hào)數(shù)值乘以代碼片段的復(fù)數(shù)乘法運(yùn)算提供經(jīng)過(guò)處理的數(shù)據(jù)數(shù)值。
進(jìn)一步提供一種在數(shù)字信號(hào)處理器中用來(lái)處理信號(hào)數(shù)值的方法,該方法包括下述步驟,(a)根據(jù)指令規(guī)定的一組復(fù)數(shù)信號(hào)數(shù)值和對(duì)應(yīng)的一組復(fù)數(shù)代碼片段,完成每個(gè)信號(hào)數(shù)值乘以對(duì)應(yīng)的代碼片段的復(fù)數(shù)乘法運(yùn)算提供一組中間數(shù)值;和(b)完成中間數(shù)值的復(fù)數(shù)加法運(yùn)算提供經(jīng)過(guò)處理的信號(hào)數(shù)值。該方法可以進(jìn)一步包括針對(duì)許多組復(fù)數(shù)信號(hào)數(shù)值重復(fù)步驟(a)和(b)的步驟以提供一連串經(jīng)過(guò)處理的信號(hào)數(shù)值。在該方法中,每個(gè)復(fù)數(shù)代碼片段都可以是兩位復(fù)數(shù)代碼附圖簡(jiǎn)要說(shuō)明為了更好地理解本發(fā)明,參考在此處通過(guò)引證被并入的附圖,其中
圖1是無(wú)線電話基站信號(hào)鏈的方框圖;圖2是適合依照本發(fā)明的一個(gè)方面實(shí)現(xiàn)信道譯碼器的數(shù)字信號(hào)處理器的方框圖;圖3是在圖2的數(shù)字信號(hào)處理器中展示的每個(gè)計(jì)算模塊的實(shí)施方案的方框圖;圖4是舉例說(shuō)明使用正交代碼擴(kuò)頻和復(fù)頻的程序的方框圖;圖5舉例說(shuō)明數(shù)字位對(duì)復(fù)平面上的表示點(diǎn)的映射;圖6舉例說(shuō)明數(shù)字位對(duì)對(duì)復(fù)平面上的表示點(diǎn)的映射;圖7舉例說(shuō)明正交代碼樹(shù)的例子;圖8是舉例說(shuō)明兩組符號(hào)的擴(kuò)頻和復(fù)頻的數(shù)據(jù)流程圖;圖9是舉例說(shuō)明可以作為對(duì)復(fù)頻指令的響應(yīng)完成的各項(xiàng)操作的第一實(shí)施方案的數(shù)據(jù)流程圖;圖10是舉例說(shuō)明可以作為對(duì)復(fù)頻指令的響應(yīng)完成的各項(xiàng)操作的第二實(shí)施方案的數(shù)據(jù)流程圖;圖11舉例說(shuō)明用來(lái)依照本發(fā)明的一個(gè)方面完成復(fù)頻的軟件程序;圖12是舉例說(shuō)明可以作為對(duì)復(fù)頻指令的響應(yīng)完成的各項(xiàng)操作的第三實(shí)施方案的數(shù)據(jù)流程圖。
本發(fā)明的詳細(xì)描述為了舉例說(shuō)明的目的,下面描述的技術(shù)是按蜂巢式電話信號(hào)的傳輸?shù)南群箨P(guān)系描述的。然而,許多被描述的技術(shù)在對(duì)移動(dòng)電話有用的同時(shí)對(duì)其它的高速數(shù)據(jù)傳輸應(yīng)用也可能是有用的。
無(wú)線電話基站信號(hào)鏈實(shí)例的方框圖被展示在圖1中。信號(hào)鏈包括符號(hào)率處理10和碼片率處理12。符合需要的是將符號(hào)率處理10并入數(shù)字信號(hào)處理器。在發(fā)送一側(cè)上,符號(hào)率處理10包括CRC附件模塊20、信道編碼模塊22、比率匹配模塊24和交織模塊26。在接收一側(cè),符號(hào)率處理10包括解交織模塊30、比率確定模塊32、信道解碼模塊34和CRC附件模塊36。
碼片率處理12包括在發(fā)送一側(cè)的擴(kuò)頻和調(diào)制模塊40和在接收一側(cè)的分離多徑接收器42。完成復(fù)頻的數(shù)字信號(hào)處理器可以被用在接收一側(cè)邊。
適合實(shí)現(xiàn)本發(fā)明的特征的數(shù)字信號(hào)處理器(DSP)110的示例方框圖被展示在圖2中。數(shù)字信號(hào)處理器110的主要部分是計(jì)算模塊112和114、存儲(chǔ)器116、控制模塊124、鏈路口緩沖器126、外部口128、DRAM控制器130、指令調(diào)整緩沖器(IAB)132和主要的指令譯碼器134。計(jì)算模塊112和114、指令調(diào)整緩沖器132、主要的指令譯碼器134和控制模塊124構(gòu)成完成DSP110的主要的計(jì)算和數(shù)據(jù)處理功能的核心處理器。外部口128借助外部地址總線158和外部數(shù)據(jù)總線168控制外部通信。鏈路口緩沖器126借助通信口136控制外部通信。DSP優(yōu)選被配置成單一的單片集成電路。
存儲(chǔ)器116可以包括三個(gè)獨(dú)立的大容量?jī)?nèi)存條140、142和144。在優(yōu)選的實(shí)施方案中,內(nèi)存條140、142和144每個(gè)都有64K32位字的容量。如同下面討論的那樣,內(nèi)存條140、142和144優(yōu)選每個(gè)都有128位的數(shù)據(jù)總線。高達(dá)四個(gè)連續(xù)排列的32位的數(shù)據(jù)字每個(gè)都能在單一時(shí)鐘周期中轉(zhuǎn)移到或轉(zhuǎn)移出每個(gè)內(nèi)存條。
DSP110的各個(gè)要素通過(guò)適合于有效的高速操作的總線相互連接。每條總線都包括適合并行轉(zhuǎn)移二進(jìn)制數(shù)據(jù)的多條線。第一地址總線150(MA0)將內(nèi)存條140(M0)和控制模塊124相互連接。第二地址總線152(MA1)將內(nèi)存條142(M1)和控制模塊124相互連接。第三地址總線154(MA2)將內(nèi)存條144(M2)和控制模塊124相互連接。地址總線150、152和154每條都優(yōu)選16位寬。外部地址總線156(MAE)將外部口128和控制模塊124相互連接。外部地址總線156通過(guò)外部口128與外部地址總線158相互連接。外部地址總線156和158每條都優(yōu)選32位寬。第一數(shù)據(jù)總線160(MD0)將內(nèi)存條140、計(jì)算模塊112和114、控制模塊124、鏈路口緩沖器126、IAB132和外部口128相互連接。第二數(shù)據(jù)總線162(MD1)將內(nèi)存條142、計(jì)算模塊112和114、控制模塊124、鏈路口緩沖器126、IAB132和外部口128相互連接。第三數(shù)據(jù)總線164(MD2)將內(nèi)存條144、計(jì)算模塊112和114、控制模塊124、鏈路口緩沖器126、IAB132和外部口128相互連接。數(shù)據(jù)總線160、162和164都通過(guò)外部口128接到外部數(shù)據(jù)總線168上。數(shù)據(jù)總線160、162和164每條都優(yōu)選是128位寬,而外部數(shù)據(jù)總線168優(yōu)選是64位寬。
第一地址總線150和第一數(shù)據(jù)總線160包括用來(lái)把數(shù)據(jù)轉(zhuǎn)移到或轉(zhuǎn)移出內(nèi)存條140的總線。第二地址總線152和第二數(shù)據(jù)總線162包括用來(lái)把數(shù)據(jù)轉(zhuǎn)移到或轉(zhuǎn)移出內(nèi)存條142的第二總線。第三地址總線154和第三數(shù)據(jù)總線164包括把數(shù)據(jù)轉(zhuǎn)移到或轉(zhuǎn)移出內(nèi)存條144的第三總線。由于內(nèi)存條140、142和144每個(gè)都有獨(dú)立的總線,所以內(nèi)存條140、142和144可以被同時(shí)訪問(wèn)。如同本文中使用的那樣,“數(shù)據(jù)”表示二進(jìn)制的字,它可以代表與DSP110的操作有關(guān)的指令或操作數(shù)。
在典型的操作模式中,程序指令被儲(chǔ)存在內(nèi)存條之一中,而操作數(shù)被儲(chǔ)存在另外兩個(gè)內(nèi)存條中。因此,在單一的時(shí)鐘周期中能給計(jì)算模塊112和114提供至少一條指令和兩個(gè)操作數(shù)。內(nèi)存條140、142和144每個(gè)都可以是為了允許在單一的時(shí)鐘周期中讀和寫(xiě)多個(gè)數(shù)據(jù)字而配置的。在單一的時(shí)鐘周期中同時(shí)轉(zhuǎn)移來(lái)自每個(gè)內(nèi)存條的多個(gè)數(shù)據(jù)字不需要指令高速緩沖存儲(chǔ)器或數(shù)據(jù)高速緩沖存儲(chǔ)器就能完成。
如同前面指出的那樣,內(nèi)存條140,142和144每個(gè)都優(yōu)選有64K 32位字的容量。每個(gè)內(nèi)存條都可以被接到128位寬的數(shù)據(jù)總線上。在其它替代實(shí)施方案中,每條數(shù)據(jù)總線都可以是64位寬的,而且在每個(gè)時(shí)鐘相位(時(shí)鐘相位1和時(shí)鐘相位2)都轉(zhuǎn)移64位,因此提供128位的有效總線寬度。在單一時(shí)鐘周期中能在每個(gè)內(nèi)存條中存取多個(gè)數(shù)據(jù)字。明確地說(shuō),數(shù)據(jù)每個(gè)都能作為單一的、成雙的或四個(gè)一組的32位字被存取。
使用四個(gè)一組的字的轉(zhuǎn)移,四條指令和八個(gè)操作數(shù)(每個(gè)32位)能在單一時(shí)鐘周期中提供給計(jì)算模塊112和114。被轉(zhuǎn)移的數(shù)據(jù)字的數(shù)量和接受數(shù)據(jù)字的一個(gè)或多個(gè)計(jì)算模塊是由指令中的控制位選定的。單一的、成雙的或四個(gè)一組的數(shù)據(jù)字能被轉(zhuǎn)移到計(jì)算模塊112、計(jì)算模塊114或兩者。成雙的和四個(gè)一組的數(shù)據(jù)字存取在許多應(yīng)用中由于允許一些操作數(shù)在單一的時(shí)鐘周期中轉(zhuǎn)移到計(jì)算模塊112和114提高了DSP110的性能。在每個(gè)時(shí)鐘周期中存取多條指令的能力允許在每個(gè)時(shí)鐘周期中執(zhí)行多重操作,借此提高性能。
每個(gè)計(jì)算模塊112和114的實(shí)施方案的方框圖被展示在圖3。多口寄存器堆200為操作數(shù)和結(jié)果提供暫存。在優(yōu)選的實(shí)施方案中,寄存器堆200每個(gè)都有32個(gè)32位字的容量,每個(gè)都被組織成128位的八排。寄存器堆200通過(guò)多路復(fù)用器和鎖存器(未示出)連接到每條數(shù)據(jù)總線160、162和164上(圖2)。當(dāng)操作數(shù)從存儲(chǔ)器116中取出的時(shí)候,三條數(shù)據(jù)總線中的兩條被選定,而且在被選定的總線上的操作數(shù)被提供給寄存器堆200。
圖3展示的計(jì)算模塊包括乘法器/累加器210、算術(shù)邏輯單元(ALU)212、移相器214和加速器216。乘法器/累加器220、ALU212、移相器214和加速器216能夠同時(shí)執(zhí)行指令到能將足夠的指令和操作數(shù)提供給計(jì)算模塊的程度。來(lái)自寄存器堆200的操作數(shù)是在操作數(shù)總線220上傳送給乘法器/累加器210、ALU210、移相器214和加速器216的。來(lái)自乘法器/累加器210、ALU212、移相器214和加速器216的結(jié)果在結(jié)果總線222上返回寄存器堆200。計(jì)算模塊的組成部分作為對(duì)解碼指令的響應(yīng)受來(lái)自次級(jí)指令譯碼器224的信號(hào)的控制。計(jì)算模塊優(yōu)選具有改善性能的流水線體系結(jié)構(gòu)。
DSP中的每個(gè)計(jì)算模塊112和114都包括在無(wú)線電話基站中用來(lái)提高性能的加速器216。加速器包括用于暫存數(shù)據(jù)和控制數(shù)值的寄存器和用來(lái)執(zhí)行指定的指令的加速器電路。加速器如同下面描述的那樣完成在復(fù)頻功能中必不可少的復(fù)數(shù)乘法。
舉例說(shuō)明擴(kuò)頻和復(fù)頻過(guò)程的簡(jiǎn)化圖表被展示在圖4。兩個(gè)數(shù)字化的聲音信號(hào)300和302在傳輸準(zhǔn)備中由調(diào)制器304處理。調(diào)制是將數(shù)字位變換成適合無(wú)線傳輸?shù)膹?fù)數(shù)的過(guò)程。如同在圖5中展示的那樣,數(shù)字位0和數(shù)字位1被變換成復(fù)平面上的點(diǎn)。為了提高傳輸率,復(fù)平面上的一點(diǎn)可以代表多位。例如在圖6中,位對(duì)被變換成復(fù)平面上的點(diǎn)。以這種方式,接收有數(shù)值1+j的復(fù)數(shù)信號(hào)的接收器把那個(gè)信號(hào)解釋為數(shù)字位對(duì)00。這些點(diǎn)可以在以這種方式被選來(lái)代表數(shù)字位的三元組、四元組等。然而,這些點(diǎn)必須被選擇在復(fù)平面中離得足夠遠(yuǎn),以便接收器可以正確解釋收到的復(fù)數(shù)數(shù)值。由此產(chǎn)生的經(jīng)過(guò)調(diào)制的數(shù)據(jù)信號(hào)部分被稱為符號(hào)。
符號(hào)306和308在乘法器307和309中乘以各自的復(fù)數(shù)擴(kuò)頻代碼310或312。復(fù)數(shù)擴(kuò)頻代碼310和312是這樣選定的,以致它們彼此正交。通過(guò)使復(fù)數(shù)代碼正交,由此產(chǎn)生的編碼信號(hào)314和316可以在不干擾系統(tǒng)稍后接收代碼的能力的情況下通過(guò)加法單元318相加。兩個(gè)彼此正交的代碼的例子是(1,1)和(1,-1)。
重要的是記住盡管圖4描繪用于僅僅包含兩個(gè)信號(hào)的傳輸?shù)臄U(kuò)頻和復(fù)頻,但是兩個(gè)以上信號(hào)可以被合并起來(lái)傳輸。如果多樣的信號(hào)被合并,每個(gè)信號(hào)都需要一個(gè)與所有其它的代碼正交的擴(kuò)頻代碼,以便這些符號(hào)可以在接收端被重新獲得。存在幾種用來(lái)確定有足夠的正交性的代碼集的方法;優(yōu)選的方法是用圖7中的樹(shù)描述的。為了產(chǎn)生與樹(shù)中所有其它的代碼正交的代碼,基本代碼[在這個(gè)例子中,(1)]在頂部分支中被重復(fù)兩次并且在底部分支中被重復(fù)一次和求反一次。例如,代碼(1)被重復(fù)兩次后變成(1,1)。代碼(1)被重復(fù)和求反后變成(1,-1)。然后,由此產(chǎn)生的代碼依照?qǐng)D7所示的算法在頂部分支中重復(fù)兩次,并且在底部分支中被重復(fù)和求反。用這種方法最終的全部代碼都是彼此正交的。選擇正交代碼保證信號(hào)能被接收器重新獲得。
擴(kuò)頻之后,編碼信號(hào)被求和且被傳送到接收器。求和后的擴(kuò)頻信號(hào)部分被稱為碼片。收到的信號(hào)在復(fù)頻模塊317和319被復(fù)頻。復(fù)頻功能被簡(jiǎn)化成相乘和累加功能。收到的信號(hào)被提供給不同的分支并且在每個(gè)分支中乘以最初的擴(kuò)頻代碼之一。在每個(gè)分支中相乘的結(jié)果被累加起來(lái)。因?yàn)閺?fù)數(shù)擾頻代碼是彼此正交的,所以當(dāng)擴(kuò)頻代碼與編碼信號(hào)相乘的時(shí)候,用那個(gè)擴(kuò)頻代碼擴(kuò)頻的原始符號(hào)被保留而所有其它的符號(hào)被取消。復(fù)頻操作下面將被詳細(xì)討論。
現(xiàn)在被分離的原始符號(hào)被送往通濾波器(BPF)324。BPF324用來(lái)除去在信號(hào)頻率范圍之外的噪聲。帶外噪聲被除去之后,信號(hào)通過(guò)解調(diào)器326和328解調(diào),于是原始的數(shù)字信號(hào)300和302被重新獲得。
擴(kuò)頻和復(fù)頻的過(guò)程允許多重聲音信號(hào)被一起傳輸。如上所述,上方,圖4的例子被局限于兩個(gè)聲音信號(hào)。
擴(kuò)頻和復(fù)頻對(duì)符號(hào)的影響的詳細(xì)實(shí)例被展示在圖8中。兩個(gè)符號(hào)集abcd500和fghk502分別乘以正交代碼504和506。代碼504與代碼506正交。由此產(chǎn)生的編碼符號(hào)集508和510相加,然后作為編碼信號(hào)512被傳送。當(dāng)編碼信號(hào)的各個(gè)部分,即“碼片”,(編碼信號(hào)512包含16個(gè)碼片)被接收的時(shí)候,它們被乘以它們各自的代碼,加在一起,并且除以擴(kuò)頻因子(在圖8的示例情況該擴(kuò)頻因子是4)。于是原始信號(hào)abcd和fghk在接收一側(cè)被重新獲得。
這個(gè)復(fù)頻過(guò)程需要強(qiáng)化計(jì)算的。為了在接收器一側(cè)獲得由此產(chǎn)生的數(shù)據(jù)信號(hào),必須執(zhí)行幾次復(fù)數(shù)乘法運(yùn)算。每個(gè)碼片必須乘以復(fù)頻代碼的每個(gè)片段,然后這些結(jié)果必須被累加起來(lái)。這些乘法運(yùn)算和累加運(yùn)算的速率必須以等于(canal to)或大于接收器接收信號(hào)的速率。鑒于蜂巢式聲音傳輸?shù)母邤?shù)據(jù)率,DSP直到現(xiàn)在仍然不能提供實(shí)現(xiàn)復(fù)頻計(jì)算必不可少的計(jì)算速度。
用于復(fù)頻裝置的核心操作是復(fù)數(shù)乘法和累加。依照一個(gè)實(shí)施方案,復(fù)頻功能是在數(shù)字信號(hào)處理器的加速器部分216中通過(guò)幾條DESPREAD(復(fù)頻)指令之一的運(yùn)用實(shí)現(xiàn)的。用于復(fù)頻指令的操作數(shù)可以包括碼片、代碼和先前累加的復(fù)頻數(shù)值。
DESPREAD指令允許DSP快速地完成對(duì)于復(fù)頻操作必不可少的復(fù)數(shù)乘法運(yùn)算和累加運(yùn)算功能。參照?qǐng)D8的實(shí)例,信號(hào)512被標(biāo)注為(a+f)、(a-f)、(a+f)及其它的部分是碼片[(a+f)是碼片]。每個(gè)都優(yōu)選用8實(shí)數(shù)位和8虛數(shù)位的數(shù)字表示。(在實(shí)踐中,碼片在大小方面可以改變,取決于抽樣率或其它與系統(tǒng)有關(guān)的事物,但是為了舉例說(shuō)明,和就目前系統(tǒng)的優(yōu)先選擇而言,碼片被假定為16位)。如上所述,碼片是被傳輸?shù)臄?shù)據(jù)信號(hào)的一部分。收到的碼片數(shù)值被儲(chǔ)存在DSP的寄存器中以便用復(fù)頻指令進(jìn)行處理。
類似地,復(fù)數(shù)代碼數(shù)值被儲(chǔ)存在DSP的寄存器中供復(fù)頻指令使用。選擇代碼數(shù)值為±1±j有一些優(yōu)勢(shì)。首先,代碼片段小而且更容易變成正交的。其次,它們非常容易僅僅用兩位表達(dá)一個(gè)實(shí)數(shù)位和一個(gè)虛數(shù)位,如果該位被設(shè)定,則它代表-1的數(shù)值,如果該位被清零,則它代表+1的數(shù)值。這種表達(dá)大大減少用代碼完成復(fù)數(shù)乘法運(yùn)算所必需的硬件。第三,這些代碼足夠小,很容易儲(chǔ)存在寄存器中,而且在執(zhí)行期間不必從存儲(chǔ)器裝載。
如上所述,擴(kuò)頻因子定義每次復(fù)頻操作的復(fù)數(shù)乘法的次數(shù)。因?yàn)橛布南拗?,本發(fā)明的優(yōu)選實(shí)施方案利用能被4除盡的擴(kuò)頻因子,而且為了舉例說(shuō)明利用擴(kuò)頻因子8。
帶擴(kuò)頻因子8的代碼是用16位數(shù)字表達(dá)的八個(gè)代碼片段,每個(gè)片段有1實(shí)數(shù)位部分和1虛數(shù)位部分。就數(shù)字表達(dá)而言,清零位代表+1的數(shù)值,而設(shè)定位代表-1的數(shù)值。以這種方式,兩個(gè)16位代碼可以被儲(chǔ)存在32位字中。DESPEREAD指令的操作下面予以描述。
如同前面解釋的那樣,為了把信號(hào)從編碼數(shù)據(jù)數(shù)值中分離出來(lái),碼片被乘以復(fù)數(shù)代碼。第一DESPREAD指令通過(guò)進(jìn)行下面的函數(shù)運(yùn)算完成這個(gè)操作 ResultingSignalImag.=(nCodeReal*nChipImag.+nCodeImag.*nChipReal(2)上述等式計(jì)算碼片乘以復(fù)頻代碼的復(fù)數(shù)乘法運(yùn)算產(chǎn)生的信號(hào)。Resulting SignalReal是最終信號(hào)的實(shí)部,而Resulting SignalImag是最終信號(hào)的虛部。nCodeReal是復(fù)頻代碼在位數(shù)值n的實(shí)部,而nCodeImag是復(fù)頻代碼在位數(shù)值n的虛部。類似地,nChipReal是對(duì)應(yīng)于復(fù)頻代碼在n的碼片數(shù)值的實(shí)部,而nChipImag是對(duì)應(yīng)于代碼數(shù)值在n的碼片數(shù)值的虛部。
這種第一類型的DESPREAD指令具有下述形式TRs=DESPREAD(RmQ,THrd)舉例說(shuō)明作為對(duì)這種第一類型的DESPREAD指令的響應(yīng)完成的操作的數(shù)據(jù)流程圖被展示在圖9。八個(gè)16位碼片(每個(gè)碼片由8個(gè)實(shí)數(shù)位和8個(gè)虛數(shù)位構(gòu)成)的數(shù)值被保存在四個(gè)一組的寄存器Rmq704(總共128位)中,而32個(gè)2位代碼片段(每個(gè)代碼由1個(gè)實(shí)數(shù)位和1個(gè)虛數(shù)位構(gòu)成)的數(shù)值被保存在寄存器對(duì)THrd702中。寄存器對(duì)702中只有八個(gè)代碼(16位)在指令的執(zhí)行期間被使用。在這個(gè)第一DESPREAD指令被執(zhí)行之后,代碼寄存器THrd被邏輯右移16位,以便將新的代碼裝進(jìn)寄存器的現(xiàn)役部分。
如圖9所示,使用復(fù)數(shù)乘法器710-717將每個(gè)儲(chǔ)存在702中的代碼片段乘以儲(chǔ)存在704中的對(duì)應(yīng)的碼片。這些乘法運(yùn)算的結(jié)果借助復(fù)數(shù)加法單元720相加,并且被儲(chǔ)存結(jié)果寄存器TRs724中。圖9舉例說(shuō)明的操作對(duì)應(yīng)于前面的等式(1)和(2)。
復(fù)數(shù)乘法運(yùn)算是用DSP的加速器216(圖3)執(zhí)行的。通過(guò)限制系統(tǒng)將可以表示成±1±j的代碼復(fù)頻,復(fù)數(shù)乘法運(yùn)算可以被DSP執(zhí)行成乘以正1或負(fù)1,這可以被DSP實(shí)現(xiàn)為碼片部分的通過(guò)或碼片部分的否定。例如,如果復(fù)數(shù)代碼是(1,-j),那么代碼的實(shí)部是1,而代碼的虛部是-1。任何碼片部分乘以實(shí)部都保持不變,而任何碼片部分乘以虛部都被否定。
如圖9所示,八個(gè)代碼片段乘以8個(gè)碼片然后加在一起提供結(jié)果。因?yàn)檫@個(gè)第一DESPREAD指令只能同時(shí)使用八個(gè)代碼片段,所以第一復(fù)頻指令優(yōu)選與擴(kuò)頻因子為8的復(fù)頻代碼一起使用。第一復(fù)頻指令也可以通過(guò)將第一復(fù)頻指令的結(jié)果與后面的復(fù)頻指令的結(jié)果相加完成完整的復(fù)頻操作用于擴(kuò)頻因子大于8的復(fù)頻代碼。例如,如果復(fù)頻代碼有擴(kuò)頻因子32,為了將最初的8個(gè)碼片解碼,執(zhí)行一次第一復(fù)頻指令是必要的,而為了將最后16位代碼片段復(fù)頻,執(zhí)行兩次帶累加的復(fù)頻指令是必要的。
這第二種復(fù)頻指令,帶累加的復(fù)頻,執(zhí)行下面的運(yùn)算
其中Accum.SignalReal是先前被累加和復(fù)頻的信號(hào)的實(shí)部,而Accum.SignalImag是先前被累加和復(fù)頻的信號(hào)的虛部。這第二個(gè)復(fù)頻指令(帶累加的復(fù)頻)具有下述形式TRs=DESPREAD(RmQ,THrd)+TRn舉例說(shuō)明作為對(duì)這第二種類型的DESPREAD指令的響應(yīng)完成的操作的數(shù)據(jù)流程圖被展示在圖10。圖9和圖10中相似的要素具有相同的參考數(shù)字。圖10所示的操作和圖9所示的那些相同,不同之處在于加法器720還把先前的寄存器數(shù)值722加到當(dāng)前產(chǎn)生的信號(hào)上并且把結(jié)果放在輸出寄存器數(shù)值724中。這第二個(gè)DESPREAD指令或許被稱為帶累加的復(fù)頻指令(a DESPREADwith accumulate instruction)。
將這些指令合并的軟件程序的例子被展示在圖11。在行602中,信號(hào)部分的最初八個(gè)碼片(儲(chǔ)存在寄存器R3:0中)乘以最初的八個(gè)代碼片段(儲(chǔ)存在寄存器THR1:0中)而且結(jié)果被存入結(jié)果寄存器TRO。在同一周期中,新的碼片被裝入寄存器R3:0。(DESPREAD指令在它的優(yōu)選實(shí)施方案中為了把新的代碼部分移入寄存器的現(xiàn)役部分自動(dòng)地將寄存器THR移位。)在行604中,信號(hào)部分的第二組八個(gè)碼片(儲(chǔ)存在寄存器R7:4中)乘以新的代碼部分,乘法運(yùn)算結(jié)果被加到先前的結(jié)果上并且把新的結(jié)果存入寄存器TRO。在同一周期中,新的碼片被裝入寄存器R7:4。在行606和608中重復(fù)乘法和累加功能。在執(zhí)行四次DESPREAD指令之后,寄存器THR(36位寄存器)已被全部移位(四次8位的移位),而且新的代碼必須被DSP裝入寄存器THR;在行610,寄存器THR被再次加載。
上述的DESPREAD指令的兩個(gè)實(shí)施方案優(yōu)選被用于擴(kuò)頻因子為8以上的代碼,因?yàn)檫@些指令是為使用代碼的8個(gè)片段將同時(shí)將8個(gè)碼片解碼而設(shè)計(jì)的。這些指令可以被用來(lái)通過(guò)多次調(diào)用帶累加的復(fù)頻指令(次數(shù)與完成信號(hào)部分的復(fù)頻必不可少的次數(shù)相同)將擴(kuò)頻因子能被8除盡的信號(hào)復(fù)頻。針對(duì)擴(kuò)頻因子為4(或能被4除盡的)的代碼,描述DESPREAD指令的第三實(shí)施方案。這個(gè)DESPREAD指令的第三實(shí)施方案具有下述形式TRsd=DESPREAD(RmQ,THrd)舉例說(shuō)明作為對(duì)這第三種類型的DESPREAD指令的響應(yīng)完成的操作的數(shù)據(jù)流程圖被展示在圖12。在圖9、圖10和圖12中相似的元素具有相同的參考數(shù)字。圖12所示的操作類似于圖10展示的那些,不同之處在于因?yàn)樵谟眠@個(gè)指令復(fù)頻的代碼中擴(kuò)頻因子是4,所以只有四個(gè)碼片需要被加在一起。因此,這個(gè)指令通過(guò)將8個(gè)碼片同時(shí)解碼、累加和把結(jié)果存入雙重結(jié)果寄存器TRsd924分開(kāi)的半邊利用那八個(gè)可用的復(fù)數(shù)乘法器。在DSP中DESPREAD功能的三個(gè)描述過(guò)的實(shí)施方案在處理引入的無(wú)線數(shù)據(jù)信號(hào)方面考慮到大得多靈活性和速度。
上述的DESPREAD指令實(shí)例被展示按圖9、圖10和圖12執(zhí)行,同時(shí)完成關(guān)于位片段(優(yōu)選八位長(zhǎng))的八個(gè)復(fù)數(shù)乘法運(yùn)算。這些指令被局限于這些實(shí)施方案并且可以使用更多的復(fù)數(shù)乘法器或不同長(zhǎng)度的位流來(lái)實(shí)現(xiàn),這些操作能在兩個(gè)計(jì)算模塊112和114(圖2)中完成,達(dá)到兩倍的處理速度。
盡管已經(jīng)展示和描述了目前考慮到的本發(fā)明的優(yōu)選的實(shí)施方案,但是在不脫離權(quán)利要求書(shū)定義的發(fā)明范圍的情況下可以有各種不同的變化和修正,這對(duì)于本領(lǐng)域技術(shù)人員將是顯而易見(jiàn)的。
權(quán)利要求
1.一種在數(shù)字信號(hào)處理器中用來(lái)處理信號(hào)數(shù)值的方法,該方法包括如下步驟作為對(duì)至少規(guī)定信號(hào)數(shù)值和復(fù)頻代碼的單一指令的響應(yīng),將信號(hào)數(shù)值乘以復(fù)頻代碼。
2.根據(jù)權(quán)利要求1的方法,進(jìn)一步包括將相乘的結(jié)果與來(lái)自先前的乘法運(yùn)算的結(jié)果相加的步驟。
3.根據(jù)權(quán)利要求1的方法,其中復(fù)頻代碼有能被4除盡的擴(kuò)頻因子。
4.根據(jù)權(quán)利要求1的方法,其中復(fù)頻代碼被分為若干代碼片段,每個(gè)代碼片段已包括一個(gè)包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。
5.根據(jù)權(quán)利要求4的方法,其中設(shè)定代碼位代表-1的數(shù)值,而清零代碼位代表+1的數(shù)值。
6.根據(jù)權(quán)利要求1的方法,其中信號(hào)數(shù)值包括16位。
7.根據(jù)權(quán)利要求6的方法,其中信號(hào)數(shù)值包括8實(shí)數(shù)位和8虛數(shù)位。
8.一種在數(shù)字信號(hào)處理器中計(jì)算數(shù)據(jù)集的方法,該方法包括下述步驟作為對(duì)一條或多條至少規(guī)定信號(hào)數(shù)值和一組代碼的指令的響應(yīng)對(duì)于那組代碼中的每個(gè)代碼,將信號(hào)數(shù)值乘以那組代碼中一個(gè)代碼;將相乘的結(jié)果相加;以及產(chǎn)生從相加的結(jié)果得到的數(shù)據(jù)集。
9.根據(jù)權(quán)利要求8的方法,其中相加包括將相乘的結(jié)果與乘以先前一組代碼的結(jié)果相加。
10.根據(jù)權(quán)利要求8的方法,其中那組代碼有能被4除盡的擴(kuò)頻因子。
11.根據(jù)權(quán)利要求8的方法,其中那組代碼中的每個(gè)代碼都是包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。
12.根據(jù)權(quán)利要求11的方法,其中設(shè)定代碼位代表-1的數(shù)值,而清零代碼位代表+1的數(shù)值。
13.根據(jù)權(quán)利要求8的方法,其中信號(hào)數(shù)值包括16位。
14.根據(jù)權(quán)利要求13的方法,其中信號(hào)數(shù)值包括8實(shí)數(shù)位和8虛數(shù)位。
15.一種數(shù)字信號(hào)處理器,其中包括用來(lái)儲(chǔ)存用于數(shù)字信號(hào)計(jì)算的指令和操作數(shù)的存儲(chǔ)器;用來(lái)產(chǎn)生指令地址的用來(lái)從所述的存儲(chǔ)器中取出選定一些的所述的指令的程序定序器;以及包括用于暫時(shí)儲(chǔ)存操作數(shù)和結(jié)果的寄存器堆和用來(lái)執(zhí)行規(guī)定數(shù)據(jù)信號(hào)和代碼的解碼指令的執(zhí)行模塊的計(jì)算模塊,所述的執(zhí)行模塊包括用來(lái)將數(shù)據(jù)信號(hào)的各個(gè)部分乘以代碼并且將結(jié)果累加的復(fù)數(shù)乘法和累加引擎。
16.根據(jù)權(quán)利要求15的數(shù)字信號(hào)處理器,其中作為對(duì)執(zhí)行解碼指令的響應(yīng),數(shù)字信號(hào)處理器完成一組關(guān)于數(shù)據(jù)信號(hào)的各個(gè)部分和代碼的各個(gè)部分的復(fù)數(shù)乘法運(yùn)算;以及將復(fù)數(shù)乘法運(yùn)算的結(jié)果相加。
17.根據(jù)權(quán)利要求15的方法,其中代碼有能被4除盡的擴(kuò)頻因子。
18.根據(jù)權(quán)利要求15的方法,其中代碼被分為若干代碼片段,每個(gè)代碼片段已包括一個(gè)包括1實(shí)數(shù)位和1虛數(shù)位的2位復(fù)數(shù)代碼。
19.根據(jù)權(quán)利要求18的方法,其中設(shè)定代碼位代表-1的數(shù)值,而清零代碼位代表+1的數(shù)值。
20.根據(jù)權(quán)利要求15的方法,其中數(shù)據(jù)信號(hào)包括16位。
21.根據(jù)權(quán)利要求20的方法,其中數(shù)據(jù)信號(hào)包括8實(shí)數(shù)位和8虛數(shù)位。
22.一種在數(shù)字信號(hào)處理器中計(jì)算輸出數(shù)據(jù)的方法,該方法包括下述步驟作為對(duì)一條或多條至少規(guī)定一組復(fù)數(shù)的第一操作數(shù)(第一操作數(shù)中的每一個(gè)包括8實(shí)數(shù)位和8虛數(shù)位)和一組復(fù)數(shù)的第二操作數(shù)(第二個(gè)操作數(shù)中的每一個(gè)包括1實(shí)數(shù)位和1虛數(shù)位)的指令的響應(yīng)對(duì)于第二操作數(shù)中的每一個(gè)完成第一操作數(shù)之一和第二操作數(shù)之一的復(fù)數(shù)乘法運(yùn)算;將在那組第二操作數(shù)范圍內(nèi)相乘的結(jié)果相加;以及產(chǎn)生一組從相加產(chǎn)生的數(shù)據(jù)作為輸出。
23.根據(jù)權(quán)利要求22的方法,其中在第二操作數(shù)之一中的設(shè)定位代表-1的數(shù)值,而在第二操作數(shù)之一中的清零位代表+1的數(shù)值。
24.根據(jù)權(quán)利要求22的方法,其中那組復(fù)數(shù)的第二操作數(shù)包括復(fù)頻代碼。
25.根據(jù)權(quán)利要求22的方法,其中那組復(fù)數(shù)的第一操作數(shù)包括引入的數(shù)據(jù)信號(hào)。
26.根據(jù)權(quán)利要求25的方法,其中引入的數(shù)據(jù)信號(hào)是聲音傳輸信號(hào)。
27.一種在數(shù)字信號(hào)處理器中處理信號(hào)數(shù)值的方法,該方法包括如下步驟作為對(duì)指令規(guī)定的復(fù)數(shù)信號(hào)數(shù)值和兩位復(fù)數(shù)代碼片段的響應(yīng),完成信號(hào)數(shù)值乘以代碼片段的復(fù)數(shù)乘法運(yùn)算提供經(jīng)過(guò)的處理的數(shù)據(jù)數(shù)值。
28.一種在數(shù)字信號(hào)處理器中用來(lái)處理信號(hào)數(shù)值的方法,該方法包括下述步驟(a)作為對(duì)指令規(guī)定的一組復(fù)數(shù)信號(hào)數(shù)值和對(duì)應(yīng)的一組復(fù)數(shù)代碼片段的響應(yīng),完成每個(gè)信號(hào)數(shù)值乘以對(duì)應(yīng)的代碼片段的復(fù)數(shù)乘法運(yùn)算提供一組中間數(shù)值;以及(b)完成中間數(shù)值的復(fù)數(shù)加法運(yùn)算提供結(jié)果處理的信號(hào)數(shù)值。
29.根據(jù)權(quán)利要求28的方法,進(jìn)一步包括對(duì)許多組復(fù)數(shù)信號(hào)數(shù)值重復(fù)步驟(a)和(b)的步驟,以便提供一連串經(jīng)過(guò)處理的信號(hào)數(shù)值。
30.根據(jù)權(quán)利要求28的方法,其中每個(gè)復(fù)數(shù)代碼片段都是兩位復(fù)數(shù)代碼。
全文摘要
數(shù)字信號(hào)處理器在無(wú)線電話系統(tǒng)中完成復(fù)頻解碼(despreaddecoding)。正交代碼被用來(lái)把數(shù)據(jù)信號(hào)組合成一個(gè)被傳輸?shù)恼w編碼信號(hào)。正交代碼被用來(lái)從被傳輸?shù)恼w編碼信號(hào)中取回個(gè)別的數(shù)據(jù)信號(hào)。復(fù)頻指令(despread instructions)被包括在數(shù)字信號(hào)處理器功能性之中。
文檔編號(hào)H04B1/707GK1561581SQ02816442
公開(kāi)日2005年1月5日 申請(qǐng)日期2002年8月6日 優(yōu)先權(quán)日2001年8月6日
發(fā)明者拉塞克·瑞法特, 澤維·格林菲爾德, 約瑟·弗雷德曼 申請(qǐng)人:模擬裝置公司