本文將介紹一些應用在W-CDMA FDD/TDD系統的編碼技術,主要的重心還是在W-CDMA FDD上面。W-CDMA系統具有三種主要的編碼型態:同步碼(synchronization codes)、頻道碼(channelisation codes)及擾亂碼(scrambling codes)。不同型態的碼具有不同的屬性及功能,即使是相同型態的碼在上傳(uplink;UL)和下傳(downlink;DL)方向所扮演的角色也未必相同。(表一)摘要整理W-CDMA系統所使用到的編碼技術及其功能,詳細的編碼技術及其應用將在底下的章節中逐一介紹。
應用在W-CDMA的展頻碼(Spreading Codes in W-CDMA)
為了實現分碼多工進接(Code Division Multiple Access;CDMA),展頻技術一定要和正交編碼技術相結合。例如在一個DS-CDMA的系統中,每一個用戶將採用不同的展頻碼來擴展其發射訊號之頻譜,並保證每個用戶之間的展頻碼都存在著一個嚴格的正交性(orthogonality),以保證展頻碼間的互相關函數遠低於其自相關函數的峰值。
最常見的展頻碼不外乎是m序列(m-sequence)、金氏碼(Gold Codes)、Walsh Codes和OVSF Codes等。Walsh Codes是使用在cdma2000系統中,而OVSF碼則是使用在W-CDMA的系統。
![]()
|
Walsh-Hadamard碼(Walsh-Hadamard Codes)
Walsh函數可以利用Hadamard矩陣來產生。假設,則Hadamard矩陣可以利用(公式一)的遞迴(recursion)來產生。直覺上也可以利用(圖一)所示的方式來產生Hadamard矩陣。
![]()
|
Walsh碼即是Hadamard矩陣的第j個陣列。
![]()
|
如(公式二)所示,Walsh碼具有良好的互相關性,因此可以使用來做為不同頻道間的區別;但前提是必須具有良好的時間同步。若時間位移超過一個碼片的時間,Walsh碼的正交性便被破壞殆盡。
![]()
|
Walsh碼可以利用(圖二)所示的電路來產生,其中的j為碼數(code number)的二元表示式(例如code number為6的二元表示式為0110)。
![]()
|
Walsh碼是使用在IS-95和cdma2000系統中做為展頻碼和頻道碼;在W-CDMA中,(圖二)所示的產生電路可以用於產生副同步碼(Secondary Synchronization Code;SSC)。
OVSF碼的產生(Generation of OVSF Codes)
WCDMA系統在下傳方向利用一組正交碼來做頻道的識別(頻道碼),這組正交碼除了提供下傳頻道的識別外同時也被用來對資料做展頻(展頻碼)。頻道碼的功能為在一個連結(connection)上作實體頻道的區分,在WCDMA裡面所用到的頻道碼為正交可變展頻因數碼(Orthogonal Variable Spreading Factor;OVSF)。OVSF碼除了作實體頻道(physical channels)的區分之外也提供了原始基頻訊號的展頻。
OVSF碼的長度被定義為展頻因數(spreading factor;SF),展頻因數的值會等於用來展頻一個符碼的碼片數(chip numbers)。OVSF碼的特色就是在不同的展頻因數下仍然可以保持正交性,但前提是必須妥善的規劃OVS碼的指派,唯有這樣正交性方能被維持。因此在W-CDMA網路裡面OVSF的碼系(code tree)是由無線網路控制器(Radio Network Controller;RNC)來管理。
在整個OVSF碼系的架構裡面定義一個參數,頻道碼可以利用此一參數來代表。其中:
SF:展頻因數
ch:頻道碼
k:頻道碼的排序(code number);
在OVSF碼系圖中的第一組碼只有一個且其值為1,第二組碼的展頻因數等於2且是由第一組碼所衍生出來的。OVSF碼的產生可以利用(圖三)來說明。從圖三中可以發現且。利用上面的結果可以推導出OVSF碼的產生式如下:
![]()
|
另外,也可以利用(公式四)以遞回的方式來產生OVSF矩陣。
![]()
|
W-CDMA系統允許頻道具有不同的速率,因此採用可變展頻因數的OVSF碼來做展頻;當頻道的資料傳輸速率越高時所使用的展頻碼其展頻因數就越小,反之資料率越低則展頻因數越高。目前W-CDMA系統所能允許最小的展頻因數為4,而最大的展頻因數在下傳方向為512,上傳方向則為256。
比較公式一和公式四可以發現實際上Hadamard矩陣和OVSF矩陣的惟一差別在於列向量的排序,也就是使用在cdma2000系統的Walsh碼和使用在W-CDMA的OVSF碼事實上是系出同源。利用一個交換矩陣(permutation matrix)的概念可以從Hadamard矩陣轉換至OVSF矩陣;(公式五)即為Hadamard至OVSF矩陣的轉換公式,(公式六)則為交換矩陣。
![]()
|
OVSF碼的產生電路可以利用圖二所示Walsh碼產生器並結合公式六來建構;在電路上,公式六可以利用位元反轉器來產生。(圖四)所示的電路為OVSF碼的產生器,從圖中可以指出二元的碼數表示j在進入Walsh碼產生器之前會先經過一個位元反向器(bit reverse cicuit),利用這個位元反向器來實現公式五。
![]()
|
OVSF碼的正交性(Orthogonality of OVSF Codes)
OVSF碼具有良好的正交性因此被使用作為頻道的識別。OVSF碼的正交性有其限制,在相同展頻因數下的所有OVSF碼皆具有良好的正交性,介於不同SF下的碼未必會具有正交性。因此在下傳方向OVSF碼的管理會變得非常重要,若正交性被破壞則使用者便無法正確的解出頻道的內容。另外OVSF碼的正交性只存在於時間同步的條件下,若時間不同步則整個正交性便被破壞。
可以藉由比較兩個具有相同展頻因數的OVSF碼在每個位元的匹配(match)和不匹配(mismatch)的數目來說明OVSF碼的正交性。所謂的匹配是指兩個位元是相同的,而不匹配則是兩個位元是不同的。完美的正交成立的條件是若且惟若兩個序列間匹配的數目等於不匹配的數目,(圖五)可以說明OVSF碼的正交性。
![]()
|
利用(圖六)到(圖八)來解釋OVSF在W-CDMA展頻和解展頻的應用。在這些圖中假設所有的數值為{+1,-1}、展頻因數為8、只利用一種碼來做展頻。
![]()
|
只要接收端所使用的OVSF碼和發射端的碼相同且時間同步下,就能正確的將原始的基頻訊號回復,圖六即代表著正常狀況下一個DS-CDMA系統的展頻及解展頻。若接收端所使用的OVSF碼和發射端不同,經過解相關器(de-correlator)運算之後會產生一個近似雜訊的輸出,(圖七)即代表這種情形。
![]()
|
(圖八)說明了即使接收機所使用的OVSF碼和發射機相同,但在時間不同步的狀況下所得到的輸出仍然是雜訊狀(noise-like)的波形。由於OVSF碼在時間位移的情況下具有很強的相關性,因此發射機和接收機必須維持良好的同步且誤差必須小於一個碼片(chip)的時間。
![]()
|
從圖六到圖八可以發現一個DS-CDMA系統的運作有賴於正交碼的使用及精確的時間同步。
OVSF碼的管理(OVSF Codes Management)
在下傳時S展頻因數的範圍是從4到512,而上傳時則是從4到256。最終的碼片率(chip rate)是固定在3.84Mcps,因此越高的資料速率代表著越低的SF()。因為SF的值會隨著資料率而改變,高資料率(lower SF)的頻道碼會佔用較大的OVSF碼空間(code space)。如(圖九)所示,在上傳時若使用的頻道碼為(highest data rate transmission),則所有從所衍生出來較高SF值的頻道碼都會被佔用。此時若有另一個頻道所使用的頻道碼是位在這個頻道碼的所衍生的枝幹(branch)之下,則這兩個頻道之間的正交性便無法維持。
![]()
|
上傳擾亂碼(UL Scrambling Codes)
W-CDMA上傳方向的擾亂碼共有兩種不同的類型:長碼(long code)和短碼(short code),這兩組碼都可以利用(公式七)的一般式來代表。
|
上傳擾亂碼被設計成在IQ向量軌跡圖上具有適當的相位旋轉,來減少零穿越(zero-crossings)發生的機率。利用這種方式可以降低手機的PAPR值(peak to average power ratio),提供更有效率的功率放大器的實現。
上傳長擾亂碼(UL Long Scrambling Codes)
上傳長擾亂碼的長度為38400碼片是Gold codes的一種;它可以利用兩個25級的Fibonacci LFSR產生器來產生。(圖十)顯示長擾亂碼的產生器。
![]()
|
從圖十中可以發現上傳長擾亂碼是由兩個Fibonacci LFSR(X和Y)所產生,每一個LFSR會產生一個週期為的二元m-sequence。X和Y的本質多項式(primitive polynomial)如下:
|
初始狀態的多項式為:
![]()
|
輸出的序列會被映射成(0-->1, 1-->-1)
|
是將序列在時間上位移的量
|
在I軸的序列會等於,Q軸的序列會等於。
|
因此,上傳長擾亂碼的一般式可以表示成(公式十三)。
|
上傳短擾亂碼(UL Short Scrambling Codes)
上傳短擾亂碼的長度為256片碼是屬於為Kasami序列的一種,它可以利用三個n級LFSR產生器來產生。上傳短擾亂碼的產生多項式如下:
![]()
|
初始狀態的多項式為(公式十五)
![]()
|
(圖十一)為短碼產生器的硬體實現。
![]()
|
在硬體實現上,X LFSR是一個具有四個值([0 1 2 3])的LFSR。因此,圖中的⊕代表著modulo-4的運算。至於乘法運算也可以利用modulo-4的運算來實現,有關利用modulo-4的運算來代替乘2(multiplication by 2)和乘3(multiplication by 3)的電路可以參考(公式十六)和(圖十三)所示。
![]()
|
圖十一所示的電路的輸出序列為:
|
利用(表二)將輸出序列映射成I軸的序列和Q軸的序列。
![]()
|
因此,上傳短擾亂碼可以利用(公式十八)來表示。
|
其中
下傳擾亂碼(DL Scrambling Codes)
下傳擾亂碼的屬性(Properties of DL Scrambling Codes)
下傳擾亂碼的長度為38400碼片是屬於Gold code的一種,它是利用兩個n級()的Fibonacci LFSR所組成。(圖十三)所示為下傳擾亂碼產生器。
![]()
|
下傳擾亂碼產生器的產生多項式如下:
|
初始狀態多項式為:
一
|
其中
k:第k個擾亂碼
序列則是將在時間上位移的量()
|
將和映射成和;I軸的序列會等於,Q軸的序列會等於。利用圖十三所產生的Gold coded可以用(公式二十三)來表示。
|
下傳的擾亂碼共有262143()個,但並不是所有的碼都會被使用。在下傳方向上只使用其中的8192個碼,這8192個碼又被分成512組,而每一組是由一個主擾亂碼(primary scrambling code;PSC)及15個副擾亂碼所組成。512個主擾亂碼又被分成64個群組(code group),每一群組含有8個擾亂碼;利用這種群組可以簡化手機在做細胞搜尋時的搜尋視窗(search window)並簡化所需的計算量。
電信業者可以利用這512組擾亂碼來做編碼的規劃(code planning),一般咸認512組碼是足夠造成非常大的幾何距離來避免因為碼的重用而產生干擾。在下傳方向除了同步頻道(Sync channel)之外所有的實體頻道都是利用PSC或SSC碼來擾亂。
下傳擾亂碼的硬體實現(Hardware Implementation of DL Scrambling Codes)
在手機中要產生一特定的下傳擾亂碼,只需將搭配此碼的初始狀態向量載入X LFSR,這個初始狀態向量是由十八個X LFSR的初始值所組成的,而Y LFSR的初始值是由十八個1所組成而且是固定不變的。載入初始值後在利用一個3.84MHz的時脈(clock)來觸發Fibonacci LFSR產生器,在第38400個clock之後將這個產生器重新載入相同的初始值使其重置(reset)。利用上面的程序即可產生一個位元率為3.84Mbps且週期為10ms的下傳擾亂碼。
在Node B要產生下傳擾亂碼的程序和手機是相同的,唯一的差別在於Node B只須儲存一組X LFSR的初始狀態向量,而手機必須儲存所有可能的初始狀態向量。
依照圖十四的架構要產生所有下傳擾亂碼需要使用到()個位元的ROM來儲存所有的初始狀態向量;若要以平行的方式同時產生八個主擾亂碼會用到八個產生器。利用這種架構來產生下傳擾亂碼會顯得太複雜而且沒有效率。為了降低對手機記憶體的佔用,一種新的產生器的架構便被提出。利用這種架構,手機只需要儲存512組主擾亂碼的初始狀態向量,至於副擾亂碼則可以利用移位和加法來產生,因此可以將記憶體深度降低至512×18位元。(圖十四)顯示如何利用移位和加法的屬性來產生副擾亂碼。
![]()
|
假設要在第p 個主擾亂碼中產生第s 個副擾亂碼,其程序如下:
- (1)將第p個主擾亂碼的初始狀態向量從記憶體中讀取並載入X LFSR中,利用3.84MHz的時脈來觸發Finonacci LFSR產生器以產生第p個主擾亂碼。
- (2)用來產生15個副擾亂碼的抽頭選擇器的多項式(tap selector polynomial;)儲存在15×n的LUT(Look-up Table)中,利用查表法的方式將第s副擾亂碼的抽頭選擇器多項式從LUT中讀出。
- (3)移位和加法的運算相當於圖十六中的XOR遮幕(mask),將第和利用XOR遮幕來進行移位和加法的運算,之後在利用modulo-2的加法來產生副擾亂碼。
- 由於手機在做細胞搜尋時需要同時產生八個主擾亂碼,為了降低硬體的複雜度,另一種更先進的架構也被提出,如(圖十五),利用此種架構可以同時產生多個主擾亂碼和相對應的副擾亂碼。
![]()
|
在圖十五中,可以同時產生兩組主擾亂碼和兩組對應的副擾亂碼。茲將圖十五產生器的操作原理詳述如下:
- ●產生第p個主擾亂碼:利用9位元選擇電路從512組中選出第p個初始狀態向量,並將其載入X LFSR中以產生第p個主擾亂碼。
- ●產生第p+1或第p-1個主擾亂碼:利用1位元的選擇電路(a)來選擇所要產生的主擾亂碼為p+1或p-1;若a的值為0則會產生第s-1主擾亂碼,若a的值為1則會產生第s+1主擾亂碼。
- ●產生第s個副擾亂碼:利用4.16所示的架構和4位元的選擇電路來產生副擾亂碼。
- ●產生第個副擾亂碼:當a的值固定之後,利用類似於圖16所示的方來產生第個副擾亂碼。
同步碼(Synchronization Codes)
手機利用一個很重要的頻道稱為同步頻道(Synchronization Channel;SCH)來完成和基地台間的同步程序。SCH頻道是由兩個副頻道(sub-channel)所組成:主同步頻道(Primary SCH;P-SCH)及副同步頻道(Secondary SCH;S-SCH)。P-SCH頻道是用來攜帶主同步碼,S-SCH頻道則是攜帶副同步碼。PSC碼和SSC碼各有其不同的角色扮演,最主要的目的就在於透過這兩個碼來讓手機可以和基地台達成時間的同步。
PSC和SSC碼
PSC碼只有一個且其長度固定為256個碼片,而SSC碼總共有16個,每一個的長度也是固定在256個碼片。PSC碼配置在每一個時槽的前256chips,而SSC碼則是利用固定的排序將不同的SSC碼依序配置在每一個時槽的前256 chips,PSC和SSC碼只存在於一個時槽的前1/10的時間上(66.7)。
手機利用ROM-table內建的PSC碼去搜尋是否有WCDMA的基地台存在,由於PSC碼的長度僅為256個碼片,因此對手機的基頻晶片而言要找出是否有PSC碼的存在是一件相當簡單的任務。若手機能鎖住PSC碼,則代表著手機已經能夠知道每一個時槽的邊界時間(完成以時槽為單位的時間同步)。同理,若手機能夠連續的鎖住15個SSC碼,則代表著手機已經能夠知道每一個訊框(frame)的邊界時間(完成以訊框為單位的時間同步)。只要手機能夠解出一個訊框裡面所有的SSC碼(共有15個),則手機可以利用此一特定的SSC碼排序來得出主擾亂碼所相對應的群組(code group),利用這種方式可以大幅簡化手機對基地台主擾亂碼的搜尋程序。
PSC和SSC碼的產生(Generation of PSC & SSC Codes)
PSC碼的產生
PSC碼()是利用一個被稱為一般化階層式的Golay序列(generalized hierarchical Golay sequence)所建構而成,具有良好的自相關性。
PSC碼()是由兩個序列和利用(公式二十三)所建構而成。
|
是一個長度為16的Golay互補序列,它是由一個延遲矩陣(delay matrix)和一個權值矩陣(weight matrix)所構成。是一個一般化的階層序列,它的建構方程式為(公式二十四)。
|
在公式二十四中,和是相同的序列,它們是由一個延遲矩陣和一個權值矩陣所構成。
(圖十六)顯示PSC碼的ACF(auto-correlation function),可以發現PSC碼具有良好的ACF特色。PSC碼只有一組且其長度固定為256個碼片,因此手機DSP內的搜尋器(searcher)可以在很快的時間內鎖住PSC碼而完成以時槽為基礎的時間同步。
![]()
|
SSC碼的產生
16個SSC碼為一複數值的陣列且實部和虛部的值相等,SSC碼是利用一個如下所定義的一個z sequence和Hadamard矩陣()的列向量相乘所產生。
16個SSC碼的產生方程式如下:
![]()
|
k代表第k個SSC碼
因下傳主擾亂碼的碼空間非常大(共有512組)且其長度(38400chips)遠大於同步碼,若手機在沒有經過適當的導引之下直接去搜尋這麼龐大的碼空間將會是一件很耗時且耗費硬體資源的任務。因此有必要利用這16個長度僅為256碼片的SSC碼來協助降低主擾亂碼的搜尋視窗。
將16個SSC碼排列組合成64組序列,每一個序列是由15個SSC碼所組成,而這15個SSC碼存在於一個訊框的每一個時槽的前256碼片。基地台的S-SCH頻道持續的廣播其相對應的序列,手機利用解出一個訊框內的所有SSC碼而得到一個SSC碼的排序,利用內建在ROM-table內的SSC與下傳擾亂碼群組對照表可以找出此一S-SCH頻道所代表的主擾亂碼群組。而一個群組只含有8個主擾亂碼,利用副同步碼的輔助可以簡化細胞搜尋的程序。
例如,若一個訊框內解到的所有SSC碼的順序如下:
利用查表法及可得到相對應的群組為Group 1,此時手機只需利用已知的8個屬於Group 1的主要擾亂碼來搜尋所有可能的CPICH頻道內的主要擾亂碼。(圖十七)說明如何利用PSC及SSC碼來得知細胞的主要擾亂碼。利用圖十七搭配(表三)即可得知主要擾亂碼是屬於第一個群組(code group)。
![]()
|
![]()
|
同步碼的屬性(Properties of Synchronization Codes)
在W-CDMA網路內的所有基地台共用相同的主同步碼,在某些情形下有可能會造成來自不同基地台的主同步碼產生重疊的現象。這種情形特別容易在交遞的時候產生,主要因為在交遞時手機和各個參與交遞的基地台的直線距離大致相等所造成。當考量到多重路徑時,主同步碼產生重疊的機率會大幅的增加。(圖十八)顯示在交遞區間造成PSC碼的重疊。
![]()
|
為了評估PSC碼產生重疊的機率,假設只存在單一路徑的情形(在真實網路環境中是不存在的)下共有三個基地台參與交遞,PSC碼產生重疊的低率為3/2560,這個機率在真實環境中會大幅的上升。從圖十八中可以看出來自較弱的路徑的PSC碼很容易被來自較強路徑的PSC碼的旁瓣(sidelobe)給蓋掉(mask)。PSC碼的旁瓣是因在對PSC碼進行自相關運算所產生的。
在理想的情況下,我們希望PSC碼不具有旁瓣產生,但在真實世界中並不存在這樣的一組碼;為了將旁瓣的效應降到最低,3GPP所選定的PSC碼最大自相關旁瓣值(Maximum Autocorrelation Side-lobes;MAS)為-12.04 dB。
因為P-SCH頻道和S-SCH頻道是以平行的方式同時傳送,?了確保可靠的時槽同步及降低同步頻道間的干擾,PSC和SSC碼應當具有良好的互相關性。理論上,PSC和SSC碼具有良好的互相關性,但實際上介於這兩個碼之間的互相關值並不是很理想。在某些情況下PSC和SSC碼之間的互相關值可以高達PSC碼自相關值峰值的43%,(圖十九)顯示PSC碼和16個SSC碼的最大互相關值的分佈。
![]()
|
不同的SSC碼因互相關運算所產生的旁辦值在某些情形下也會變得很高(可以達到144),這意味著在最壞的狀況下不同SSC碼所產生的互相關旁辦值只會小於SSC自相關的主峰值(256)約5 dB。在實際網路環境中,特別是位於交遞狀態下的手機接收器,有可能因為不同SSC碼的高旁辦值而干擾到第二階段的同步程序(SSC碼的取得)。(圖二十)顯示不同SSC碼互相關運算所產生的最大旁辦值的分佈。
![]()
|
SCH頻道的硬體實現(Synchronization Channel Hardware Implementation)
SCH頻道是由P-SCH及S-SCH頻道所構成,因此及碼會分別在I軸及Q軸上結合在一起,所謂的結合是指兩組序列做XOR的邏輯運算。(圖二十一)為同步頻道硬體架構示意圖。
![]()
|
碼只有一種所以只要利用一個長度為256個碼片的Gold code產生器就可以產生碼。對每個基地台而言S-SCH頻道的每個時槽所配置的碼的形狀是固定的,因此可以利用一固定的形狀產生器(pattern generator)來依序切換16個內建的碼序列。在進入I/Q調變器之前在I軸及Q軸分別利用一個開關來達到柵欄式的傳輸(gated transmission),而此一開關是利用每個時槽的起始時間來觸發而在經過256個碼片之後(66.7)將開關打開。
介紹過編碼技術之後,下期本專欄將以WCDMA頻道為重點,深入探討其架構,敬請期待。
<參考資料:
[1] 3GPP TSG-RAN WG1-554/99, Generalized Hierarchical Golay Sequence for PSC with low complexity correlation using pruned efficient Golay correlators.
[2] Daniele Lo lacono, Ettore Messina et al., Code Generation for Wideband CDMA, ST Journal of System Research - VOL.1 - NUMBER 1.
[3] RFCD 202, Introduction to W-CDMA, RF & Microwave e-Academy Program, Agilent Technology.
[4] UMTS In 3x3 Hours Part 1 Access Technology & Air Interface, Artech House Publishers.
[5] HSDPA: Technology, Trends and Test Requirements, Rohde & Schwarz application note. >
|
|
|||||||||
|
|
|||||||||

































