專利名稱:擾碼相位偏移中偽掩碼寄存器生成方法
技術(shù)領(lǐng)域:
本發(fā)明屬于移動(dòng)通訊領(lǐng)域,尤其涉及用于碼分多址、寬帶碼分多址系統(tǒng)中擾碼相位偏移的實(shí)現(xiàn)方法。
背景技術(shù):
在現(xiàn)代的移動(dòng)通信技術(shù)中,碼分多址以及寬帶碼分多址技術(shù)越來越受到廣泛的運(yùn)用,其中加擾技術(shù)是其實(shí)現(xiàn)的一個(gè)重要環(huán)節(jié)。擾碼是一組偽隨機(jī)碼(英文縮寫為PN碼),在系統(tǒng)實(shí)現(xiàn)中,常常需要對(duì)擾碼序列進(jìn)行相位偏移(即延遲移位),而在實(shí)現(xiàn)中又往往要求盡可能快的產(chǎn)生出相位偏移后的序列。在現(xiàn)有技術(shù)中,產(chǎn)生相位偏移后的PN碼序列主要采用“純移位法”,該方法由PN碼生成器中的移位寄存器偏移前的初始值直接移位獲得,這種方法實(shí)現(xiàn)簡(jiǎn)單,但是當(dāng)相位偏移較大時(shí),其耗費(fèi)的時(shí)間也是非常多的,從而很大的影響了系統(tǒng)的工作效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是現(xiàn)有技術(shù)存在的耗費(fèi)時(shí)間多、工作效率低的缺點(diǎn),以期提出一種節(jié)省相位偏移時(shí)間、提高系統(tǒng)效率的擾碼相位偏移中偽掩碼寄存器(MASK寄存器)生成方法。
本發(fā)明所述的擾碼相位偏移中偽掩碼寄存器生成方法中,“g(x)”代表生成多項(xiàng)式,“K”代表偏移的時(shí)鐘單元數(shù),“M”代表生成多項(xiàng)式g(x)的階次,“N”代表分段后每段長(zhǎng)度(N要滿足“小于等于M”),包括以下步驟a)求生成預(yù)分段的初始余式值,生成方法如下1)計(jì)算多項(xiàng)式aN-1XM+N-1+aN-2xM+N-2+...+a0XM除以g(x)的余式值,aN-1aN-2...a1a0從00...00到11...11共2N種狀態(tài);2)以aN-1aN-2...a1a0為地址,余式為值,共2N種狀態(tài)燒寫入ROM,生成一張位寬為M深度為2N的初始ROM表;b)把K和M送入比較器進(jìn)行比較,如果K小于M,則把值“1<<K”寫入MASK寄存器中,跳轉(zhuǎn)到j(luò))執(zhí)行;如K大于或等于M,生成需要查表的次數(shù),生成公式為[K-M+N]/N,把需要查表的次數(shù)存入臨時(shí)寄存器J,把計(jì)數(shù)器清零;c)生成初次查表的地址值,計(jì)算公式為[1<<((K-M)%N)],把初次查表地址值存入臨時(shí)寄存器Address0;d)從Address0寄存器中讀取地址值,從ROM表中查出Address0對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal0;e)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則進(jìn)行以下步驟,反之,則跳轉(zhuǎn)到i)執(zhí)行;f)把寄存器TempVal0值右移(M-N)位作為讀地址存入臨時(shí)寄存器Address,以Address值為地址從ROM表中查出對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal;g)把TempVal0的值左移N位后與M’b1進(jìn)行“與”操作,然后再和TempVal的值進(jìn)行M階的“異或”運(yùn)算,把“異或”運(yùn)算的結(jié)果存入寄存器TempVal0;h)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則跳轉(zhuǎn)到f)執(zhí)行,反之則進(jìn)行以下步驟;i)把TempVal0的值送入到MASK寄存器;
j)把PN碼生成器寄存器值和MASK寄存器值按位“相與”,然后把“相與”后的所有“位”值模二加在一起,輸出一位偏移后的PN碼值;k)循環(huán)移位一次PN碼生成寄存器值;l)重復(fù)執(zhí)行j)和k),生成完整的PN碼序列。
采用現(xiàn)有技術(shù)所述“純移位法”,當(dāng)延遲K次時(shí),需要消耗K個(gè)時(shí)鐘單元才能輸出移位后的PN碼序列值,而采用本發(fā)明所述方法,只需要進(jìn)行[K-M+N]/N次查表即可,可以節(jié)省約K-(K-M)/N-1個(gè)時(shí)鐘單元??梢钥闯?,相對(duì)于現(xiàn)有技術(shù)而言,本發(fā)明能夠極大節(jié)省擾碼相位偏移時(shí)間,提高系統(tǒng)的工作效率。
圖1是PN碼序列生成結(jié)構(gòu)示意圖。
圖2是本發(fā)明所述方法流程圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明所述方法作進(jìn)一步的說明。
圖1是PN碼序列生成結(jié)構(gòu)示意圖。101、102--表示模二加;103--表示相與操作;104--MASK寄存器,共有M位,初始狀態(tài)全為0;105--PN碼生成狀態(tài)寄存器,共有M位;106--未發(fā)生偏移的PN碼序列;107--偏移后的PN碼序列。
根據(jù)m序列的原理,PN碼序列循環(huán)延遲移位的輸出是某些生成狀態(tài)寄存器的模二加之和,確定由哪些狀態(tài)寄存器參與模二加的寄存器稱偽掩碼寄存器(簡(jiǎn)稱MASK寄存器,圖中部件104)。假設(shè)需要延遲移位數(shù)為i,PN碼生成多項(xiàng)式為g(x),則根據(jù)m序列的原理,ximod(g(x))的余式就是掩碼寄存器值,把PN碼生成器中寄存器(圖中部件105)值和MASK寄存器中的值按位相與,最后把相與后的所有“位”值模二加在一起,模二加的結(jié)果就是移位后的PN碼序列的某一位。此方法關(guān)鍵點(diǎn)就是怎么快速生成MASK值,本發(fā)明將采用“分段查表技術(shù)”來快速實(shí)現(xiàn)MASK寄存器值的生成。
下面將對(duì)利用“分段查表技術(shù)”生成MASK寄存器值的方法做詳細(xì)的說明(流程如圖2所示)。在本節(jié)描述中“g(x)”代表生成多項(xiàng)式,“K”代表偏移的時(shí)鐘單元數(shù),“M”代表生成多項(xiàng)式g(x)的階次,“N”代表分段后,每段長(zhǎng)度(N要滿足“小于等于M”)a)首先,求生成預(yù)分段的初始余式值,生成方法如下1)計(jì)算多項(xiàng)式aN-1XM+N-1+aN-2XM+N-2+...+a0XM除以g(x)的余式值,aN-1aN-2...a1a0從00...00到11...11共2N種狀態(tài);2)以aN-1aN-2...a1a0為地址,余式為值,共2N種狀態(tài)燒寫入ROM,生成一張位寬為M深度為2N的初始ROM表;b)把K和M送入比較器進(jìn)行比較,如果K小于M,則把值“1<<K”寫入MASK寄存器中,跳轉(zhuǎn)到j(luò))執(zhí)行;如K大于或等于M,生成需要查表的次數(shù),生成公式為[K-M+N]/N,把需要查表的次數(shù)存入臨時(shí)寄存器J,把計(jì)數(shù)器清零;c)生成初次查表的地址值,計(jì)算公式為[1<<((K-M)%N)],把初次查表地址值存入臨時(shí)寄存器Address0;d)從Address0寄存器中讀取地址值,從ROM表中查出Address0對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal0;e)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則進(jìn)行以下步驟,反之,則跳轉(zhuǎn)到i)執(zhí)行;f)把寄存器TempVal0值右移(M-N)位作為讀地址存入臨時(shí)寄存器Address,以Address值為地址從ROM表中查出對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal;g)把TempVal0的值左移N位后與M’b1進(jìn)行“與”操作,然后再和TempVal的值進(jìn)行M階的“異或”運(yùn)算,把“異或”運(yùn)算的結(jié)果存入寄存器TempVal0;h)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則跳轉(zhuǎn)到f)執(zhí)行,反之則進(jìn)行以下步驟;i)把TempVal0的值送入到MASK寄存器;j)把PN碼生成器寄存器值和MASK寄存器值按位“相與”,然后把“相與”后的所有“位”值模二加在一起,輸出一位偏移后的PN碼值;k)循環(huán)移位一次PN碼生成寄存器值;l)重復(fù)執(zhí)行j)和k),生成完整的PN碼序列。
下面進(jìn)一步結(jié)合具體實(shí)施例對(duì)本發(fā)明所述方法進(jìn)行說明。
假設(shè)K=25,g(x)=x8+x3+1,M=8,N=81)求生成預(yù)分段的初始余式值,生成方法如下計(jì)算多項(xiàng)式a7X15+a6X14+...+a0X8除以g(x)的余式值,a7a6...a1a0從00...00到11...11共256中狀態(tài);以a7a6...a1a0為地址,余式為值,制作制作一張位寬為8深度為256的初始ROM表;2)求需要查表的次數(shù),計(jì)算公式為[K-(M-1)+(N-1)]/N(本例=3);3)生成初次查表的地址值A(chǔ)ddress0,計(jì)算公式為[1<<((K-M)%N)](本例=2);4)從寄存器中讀取地址值A(chǔ)ddress0(本例=2),從ROM表中讀出Address0對(duì)應(yīng)的狀態(tài)值TempVal0(本例=18);5)把TempVal0的右移(M-N)(本例=0)位作為讀地址Address(本例=18),從ROM表中讀出Address(本例=18)對(duì)應(yīng)的狀態(tài)值TempVal(本例=130);6)把TempVal0(本例=18)的值左移8位后和M’b1(本例=8’b1)相與,然后和TempVal(本例=130)的值進(jìn)行8階的異或運(yùn)算,把異或運(yùn)算的結(jié)果存入寄存器TempVal0(本例=130);7)把TempVal0的右移(M-N)(本例=0)位作為讀地址Address(本例=130),從ROM表中讀出Address(本例=130)對(duì)應(yīng)的狀態(tài)值TempVal(本例=182);8)把TempVal0(本例=130)的值左移8位后和M’b1(本例=8’b1)相與,然后和TempVal(本例=182)的值進(jìn)行8階的異或運(yùn)算,把異或運(yùn)算的結(jié)果存入寄存器TempVal0(本例=182);9)把TempVal0送入MASK寄存器。
10)把PN碼生成器寄存器值和MASK寄存器值按位“相與”,然后把“相與”后的所有“位”值模二加在一起,輸出一位偏移后的PN碼值。
從具體實(shí)例可以看出,采用“純移位法”需要花費(fèi)25個(gè)時(shí)鐘周期,而采用本方法只需要查3次表,大約花費(fèi)3個(gè)時(shí)鐘周期,可以節(jié)省約7/8的時(shí)間。
權(quán)利要求
1.一種擾碼相位偏移中偽掩碼寄存器生成方法,其特征在于,“g(x)”代表生成多項(xiàng)式,“K”代表偏移的時(shí)鐘單元數(shù),“M”代表生成多項(xiàng)式g(x)的階次,“N”代表分段后每段長(zhǎng)度(N要滿足“小于等于M”),包括以下步驟a)求生成預(yù)分段的初始余式值;b)把K和M送入比較器進(jìn)行比較,如果K小于M,則把值“1<<K”寫入MASK寄存器中,跳轉(zhuǎn)到j(luò))執(zhí)行;如K大于或等于M,生成需要查表的次數(shù),把需要查表的次數(shù)存入臨時(shí)寄存器J,把計(jì)數(shù)器清零;c)生成初次查表的地址值,把初次查表地址值存入臨時(shí)寄存器Address0;d)從Address0寄存器中讀取地址值,從ROM表中查出Address0對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal0;e)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則繼續(xù),反之,則跳轉(zhuǎn)到i)執(zhí)行;f)把寄存器TempVal0值右移(M-N)位作為讀地址存入臨時(shí)寄存器Address,以Address值為地址從ROM表中查出對(duì)應(yīng)的數(shù)值存入臨時(shí)寄存器TempVal;g)把TempVal0的值左移N位后與M’b1進(jìn)行“與”操作,然后再和TempVal的值進(jìn)行M階的“異或”運(yùn)算,把“異或”運(yùn)算的結(jié)果存入寄存器TempVal0;h)計(jì)數(shù)器加1,判斷計(jì)數(shù)器的值是否小于J,如條件成立,則跳轉(zhuǎn)到f)執(zhí)行,反之則進(jìn)行以下步驟;i)把TempVal0的值送入到MASK寄存器;j)把PN碼生成器寄存器值和MASK寄存器值按位“相與”,然后把“相與”后的所有“位”值模二加在一起,輸出一位偏移后的PN碼值;k)循環(huán)移位一次PN碼生成寄存器值;l)重復(fù)執(zhí)行j)和k),生成完整的PN碼序列。
2.根據(jù)權(quán)利要求1所述的擾碼相位偏移中偽掩碼寄存器生成方法,其特征在于,在步驟a)中,所述生成方法如下1)計(jì)算多項(xiàng)式aN-1XM+N-1+aN-2XM+N-2+...+a0XM除以g(x)的余式值,aN-1aN-2...a1a0從00...00到11...11共2N種狀態(tài);2)以aN-1aN-2...a1a0為地址,余式為值,共2N種狀態(tài)燒寫入ROM,生成一張位寬為M深度為2N的初始ROM表。
3.根據(jù)權(quán)利要求1所述的擾碼相位偏移中偽掩碼寄存器生成方法,其特征在于,在步驟b)中,依照公式[K-M+N]/N生成需要查表次數(shù)。
4.根據(jù)權(quán)利要求1所述的擾碼相位偏移中偽掩碼寄存器生成方法,其特征在于,在步驟c)中,依照公式[1<<((K-M)%N)]生成初次查表的地址值。
全文摘要
本發(fā)明公開了一種通訊領(lǐng)域擾碼相位偏移中偽掩碼寄存器生成方法,首先求生成預(yù)分段的初始余式值,然后把偏移的時(shí)鐘單元數(shù)和生成多項(xiàng)式的階次送入比較器進(jìn)行比較,在相應(yīng)處理后,生成初次查表的地址值,再然后進(jìn)行判斷、跳轉(zhuǎn)等操作,將臨時(shí)寄存器的值送入到MASK寄存器;把PN碼生成器寄存器值和MASK寄存器值按位“相與”,然后把“相與”后的所有“位”值模二加在一起,輸出一位偏移后的PN碼值;每循環(huán)移位一次PN碼生成寄存器值就生成一位新的PN碼值;重復(fù)執(zhí)行上述相與和循環(huán)移位動(dòng)作,生成完整的PN碼序列。本發(fā)明克服了現(xiàn)有技術(shù)存在的耗費(fèi)時(shí)間多、工作效率低的缺點(diǎn),能夠節(jié)省相位偏移時(shí)間、提高系統(tǒng)效率。
文檔編號(hào)H04J13/02GK1783763SQ20041009615
公開日2006年6月7日 申請(qǐng)日期2004年11月30日 優(yōu)先權(quán)日2004年11月30日
發(fā)明者趙善紅 申請(qǐng)人:中興通訊股份有限公司