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