內環功率控制算法
內環功控的目的在於快速調整UE傳送功率以適應時變的信道。HSUPAE-DCH的內環功控由E-AGCH和E-PUCH這對上下行信道完成,E-PUCH的功率將由E-AGCH上的TPC命令控制,反之E-PUCH上的TPC將控制E-AGCH的功率調整。基站通過測量UE上行瞬時E-DCH的質量,一般為SINR,與目標瞬時信號質量進行對比判決並傳送TPC命令。具體的判決結果有“UP”、“DOWN”、“DoNothing”三種,它們將控制UE功率的上升和下降,每種調整都有規定的步長值。對於多個用戶的小區,由於調度間隔不明確,則閉環功控發生的時間也有隨機性,用戶越多調度間隔越大,則內環功控的準確性越低。
內環功控主要有兩個步驟,一是功率控制命令TPC的判決,另外一個是命令的執行。首先,基站側通過測量UE的瞬時接收信號質量,與目標信號質量(一般為SINRTarget)做對比,如果發現達不到目標信號質量的要求,則將TPC命令判別為‘UP’,反之則為‘DOWN’。
ifSINR>SINRtarget
TPC=DOWN
elseifSINR<SINRtarget
TPC=UP
else
TPC=DonothingorUP&DOWN
其次,基站通過E-AGCH傳送此TPC命令,TPC命令單獨調製為一個符號(對於非調度用戶承載TPC命令的為E-HICH而非E-AGCH)。
外環功率控制算法
外環功控的實現可以在RNC中或基站中完成。如果RNC負責對UE進行外環功控,則需要UE上報其傳輸質量相關的指示,RNC通過指示信息判斷應該做何種調整,並且RNC和UE的通信只能通過高層信令信息傳遞。這種方法會帶來較大的延時和較大的信令交換。但是由於高層信令可以指示更大的功率調整幅度,所以每次調整的效果顯著。如果通過基站實現,則由於基站和UE之間只能進行空口的交流,所以外環功控的調整最終將轉化為TPC對UE功率的調整,即和內環功控融為一體。基站實現TPC命令每次只能帶來一定步長的調整,幅度較小,但是不需要經過高層信令延時,速度較快,且不需要額外的信令開銷。
外環功控的目的在於使UE的BLER達到系統要求。基站將評估UE當前一段時間的統計傳輸質量,一般為BLER值。如果達不到標準,則通過升高瞬時信號質量門限,迫使TPC命令抬升用戶功率。反之,當一段時間內的統計傳輸質量很好,則可以利用瞬時信號質量門限的降低,迫使TPC命令降低用戶功率。
外環功控的算法一般有兩種,即跳躍算法和滑窗算法。前者反應速度較快,一旦出現傳輸錯誤立即升高瞬時信號質量門限,如果傳輸正確則立即降低瞬時信號質量門限,但這個方法不能使BLER收斂至真正的目標值,只能維持振盪的狀態。而後者可以經過一段時間的適應過程使BLER完全收斂。
外環功控過程
外環功控算法目的在於調整UE的接收信號質量目標(SINRTarget),使UE達到系統要求的傳輸解碼質量(一般是將首傳BLER維持在一個門限值附近)。所以,此算法需要利用當前UE的BLER水平作為參數。當UE的首傳BLER不達標時,需要基站通過提高SINRTarget來提高UE的傳送功率、降低E-TFC,從而提高解碼正確率。外環功率控制算法有兩種:跳躍算法和滑窗算法。此外,首先需要說明的是,當UE由於功率受限或資源受限,不能傳輸數據而只能傳輸調度信息時(SI,23bit,跟隨數據打包在MAC-e的包頭中),此傳輸由於不能代表數據性能,因此不能算在外環功率算法中,即SI的傳輸對外環功控無效。其次,SINRTarget也不是可以無限上升和下降的,如果UE遇到深衰落、深陰影等惡劣的空中環境,則無論怎么樣調整外環參數,都不可能使BLER達標,所以SINRTarget也需要具有一定的有效範圍。
3.1跳躍算法
跳躍外環功控算法的過程比較簡單,可以概述為下面幾個步驟。
(1)SINRTarget跳躍升高
如果遇到首傳的傳輸錯誤,則SINRTarget會上升一個步長,在圖1中表示為第一個和最後一個有陰影斜線的點。需要注意的是,SINRTarget上升有一個條件,即出錯時的信號SINR必須和當前SINRTarget之間存在一定的範圍約束關係,如果超出此約束範圍,則說明當前的SINR出現異常,此次傳輸不能說明當前SINRTarget是不合適的。
圖1跳躍算法示意圖
InitialtransmissionNACK&&|SINRTarget–SINR|<ΔSINRThreshold
此外,如果重傳也出現錯誤,則同樣適用此原則。
(2)SINRTarget保持階段
在經歷一次出錯的傳輸導致SINRTarget上升後,需要為內環功控留有一定的時間來適應外環的變化,讓外環調整起到真正的作用,這就是保持過程。圖1中,此過程體現為MaskingTimer,在這個階段再次出現有陰影斜線代表的錯誤傳輸,但是SINRTarget不發生變化。需說明的是,重傳發生錯誤被視為系統無法忍受的事情,所以MaskingTimer可以不限制由於重傳錯誤而引發的SINRTarget上升。MaskingTimer的長度可以由OM配置。
(3)SINRTarget下降
沒有條件可以約束SINRTarget的下降,只要首次傳輸正確,則SINRTarget就可以下降一個步長。在圖中用灰底色填充的點表示首傳數據即正確傳輸。
在以上三個階段中,涉及的參數有上升跳躍步長和下降步長。其中上升步長是系統的參數,一般稱為ulSinrTotal,由OM配置。下降步長可以根據上升步長進行計算
其中,除了ulSinrTotal外,BLERTarget為系統想要保持的UEBLER門限,由系統設定。jumpcorr為控制上升、下降步長間相互關係的比例因子。
3.2 滑窗算法
如圖2所示,一個長度為WindowLength(TTI)的滑窗在時間軸上滑動,滑動間隔稱為OLPCCycle(TTI)。滑窗在時間上是連續的,在連續WindowLength個TTI中,UE將發生若干次調度,可以統計期間的首傳BLER,與目標BLER相比較,決定SINRTarget的變化(上升或下降)。這種統計每OLPCCycle個TTI將會進行一次。
圖2 滑窗算法示意圖
ifinitialBLERinslidingwindow>InitialBLERTarget
SINRTarget=SINRTarget+step;
elseifinitialBLERinslidingwindow<Threshold
SINRTarget=SINRTarget−step;
else
KeepSINRTarget
此算法的工作步驟如下。
(1)發起首個滑窗
因為滑窗算法需要在長度為WindowLength的若干個TTI內統計BLER性能,但是在第一個滑窗攢足之前,無法做此統計。所以在第一個滑窗沒有積攢完畢的初始階段,用跳躍算法進行外環粗調整。
在第一個滑窗形成之後,每間隔OLPCCycle個TTI,一個新的滑窗將再次形成。
(2)在最近的一個窗長之內統計UE的BLER信息
當UE接入HSUPA業務之後就開始滑窗的積攢,如果在滑窗之內沒有數據被調度,則不作外環調整。如果在滑窗之內有數據傳輸,則基站需要記錄此傳輸的屬性:傳輸次數、ACK/NACK。基於這些數據傳輸的信息,計算等效的統計首傳BLER。為了統計和計算表示,規定下列傳輸情況和計數器。
0_ack:首傳正確。
0_nack:首傳錯誤。
total_num:全部傳輸塊個數計數器(首傳和重傳不重複計入),初始為0。
r_num:首傳正確計數器,初始為0,如果0_ack發生則加1。
w_num:首傳錯誤計數器,初始為0,如果0_nack發生則加1。
基站統計窗長之內的以上計數器數值,進行SINRTarget的計算。
(3)計算SINRTarget調整的幅度。公式如下
(6-24)
其中,ulSinrTotal_S和為系統參數,代表變化的總體幅度。當w_num/total_num恰好等於BLERTarget時,SINRTarget的調整幅度為0dB。
經過以上3個步驟,滑窗算法在UE處於業務活動期時總是起作用。如果UE切換到了其他小區,則需要重新發起滑窗。
跳躍算法和滑窗算法是基站端常用的外環功控的算法,跳躍算法的好處是反應快、延時短,但只能進行比較臨時和粗略的調整。滑窗算法是建立在統計的基礎上的,準確性更高,但是需要經歷統計的過程,帶來一定的延時,並且對窗長和窗間隔參數有要求。如果用戶較少,則窗可以短些。如果用戶數比較多,調度間隔較大,則窗長要設計的相對長才能具有統計意義,而且越長的窗延時越嚴重,往往無法代表當前的信道狀況。