本節將介紹一無線群播播系統的傳輸率排程[14],其目的在最大化每個 time slot 可送出的封包量。考慮一無線網路,其頻道受到白高斯雜訊干擾。假 設有 M 個 User 在系統中,每個 user 頻道的接收訊號強度依 Rayleight Fading 分佈且呈現 IID,在每個 time slot 開始時 Users 會即時回傳自己的 SNR 值 (Signal-to-Noise-Ratio)給基地台。其 SNR 值的機率分佈為:
𝑝𝑠(𝑆) =1
𝑆exp (−𝑆
𝑆) … … … . . … … … … (2.1) 其中𝑆為 mean power,S 為 SNR 值。基地台得到每個 User 的 SNR 值後,再根 據 Shannon Capacity Formular 可轉換出每個 User 當下可以達到最好的傳輸率,
其式子如下:
User。因為系統頻道為可抹除通道,所以若使用者的最大傳輸率ri小於基地台最 後決定的傳輸率 R,則收不到任何封包,否則可收到 R 個封包。另外,若有兩 個傳輸率不相等,但皆可達到送出最多的封包量,則基地台將選擇兩者較小 者。其原因在於越小的傳輸率可達到越佳的 Broadcast Gain─即越多使用者可收 到訊息。舉例如表 2.1
[14],此方法稱為 Selection Probability (SP) Algorithm。其與傳統 RLC 的差別在 於 RLC 在挑選封包的機率是均勻隨機的;而 SP 會賦予每個封包一個權重,挑選 的機率大小就與權重成正比而非均勻隨機。至於此封包權重該如何計算將於 2.3.3 詳述。
2.3.1 Random Linear Code
隨機線性編碼為 Source 端不斷地將數個資料片段做線性組合後送出,而
2.3.2 Candidate Set
本節將介紹 SP 演算法需要參考的重要資訊[14],Candidate Set(CS)。其概 念在於傳統 RLC 沒有 Feedback Information,編碼端不會知道使用者頻道和接收 封包的狀況,即不會知道哪些使用者能接收或缺少了哪些封包。而本文考慮的 是一有 Feedback Information 的系統,在每個 time slot 中基地台透過排程歷史資 料可清楚地掌握 active user 已收到的封包,如此即有可能不必將所有封包皆列
入編碼的考慮,以免挑到不必要的封包,即所有 Active User 皆已收齊的封包。
而 CS 就是在每個 time slot 中,只存放 Active User 所缺少封包的集合。其中 User 的封包接收狀況記錄在 Indicator Matrix IM (i,j)中。IM( i , j ) = 1 表示Useri 已收到第 j 個封包,IM ( i, j ) = 0 表示還沒收到如圖(2.1)所示。而 CS 的定義如 下:
𝑗 ∈ 𝐶𝑆 𝑖𝑓𝑓 ∃𝑖 ∈ 𝑈𝑠𝑒𝑟 𝑠. 𝑡 𝐼𝑅,𝑟𝑖 = 1 𝑎𝑛𝑑 𝐼𝑀(𝑖, 𝑗) = 0 … … … . . (2.4) 其中 R 為系統該 slot 決定的傳輸率, 𝐼𝑅,𝑟𝑖=1 表示Useri為 Active User。即 CS 只 將該時間槽 Active User 需要的封包加入集合中。
舉例如表 2.2,表示在某時間槽各使用者的最大傳輸率及封包接收狀況,按 照前述之傳輸率排程基地台會以 2 為傳輸率做傳送,使得U3及U7在該時間槽或 為 nonactive users,計算 CS 元素時可將其資訊排除如表 2.3 所示。由此可發現 所有 active user 缺少的封包只有P1、P2、P3,所以 CS 中便只存放P1、P2、P3做 為編碼封包的依據如表 2.4,已避免取到不必要的封包P4。
表 2.2 八個 users 某時間槽的 IM 狀態及可接受的最大傳輸率
表 2.4 只考慮 Active User 的 CS
CS 𝑃1 𝑃2 𝑃3
2.3.3 Selection Probability
此節將說明[14]的 SP 是如何利用權重機率的方式挑選待編碼的封包。在上 節雖已確定 CS 中的封包都是 active user 需要的封包,但依照 active user 接收的 狀況還可對其區分出優先順序。在[14]中認為越多 active user 缺少的封包應該越 重要,應該早點被挑選到,因此會對於 CS 中的每個封包給予一個權重,使得 權重越高的封包被挑選到的機率較高。依此想法可得出計算權重的方式如下:
Weight(j) = N(AU) − Sum(j) … … … . (2.5) 其中N(AU)表示該時間槽的 Active User 總數;Sum(j)表示已收到Pj封包的
Active Users 總數;Weight(j)即為Pj封包的權重,可解釋為還有多少 Active Users 沒收到此封包。
有了封包的權重後即可以此權重算出每個封包被挑選的機率為何,式子如 下:
Selection Probability(j) = Weight(j)
total weight… … … (2.6)
表 2.5 CS 中各封包的權重及機率
第三章 結合傳輸率與編碼的排程
本章將介紹本文的主要貢獻,針對 SP 演算法的執行步驟提出三個問題,
並討論其解決的方案,分別為 Direct Selection、Re-Weighting 及 Last Set。在 Direct Selection 的部分,我們將討論機率選取所產生的兩個問題,並解釋直接
3.1 Direct Selection
在 SP[14]中認為越重要的封包,其權重與被挑選的機率應該越大,但即使
表 3.1 某時間槽 CS 中的狀態
碼也將造成 Delay,所以在此 Case1 下改成只選|CS|個封包即可。
3.1.1 Direct Selection
此外,我們在研究後期發現了一個 Direct selection 在挑選封包上的問題,
3.2 Re-Weighting
本節將重新檢視 SP 對封包權重的定義是否最佳,並提出一些修正,重新 定義較適當的封包權重。
SP 在封包權重的定義中,只考慮 Active User 的 IM 資訊,而忽略了 nonActive User 的 IM 資訊。但本文發現,在某些狀況中若能結合 nonActive User 的資訊去計算封包的權重,將可使得接下來的編碼更有效率。舉例來說,
表 3.4 某時間槽的 CS 狀態
CS 𝑃1 𝑃2 𝑃3 𝑃4
weight 2 2 2 2
CS 中多設置一列 reference,在相同權重的封包下計算 nonactive user 已收到的 個數,再依照此 reference 值做封包順序的微調。以表 3.4 的 CS 為例,四個封
Re-Weighting 的執行步驟如下:
表 3.7 某時間槽 users 缺少封包的數量及 channel 狀態 如此可制訂ㄧ個封包差 threshold。當Distance > threshold 時,代表Userfirst及 Userlast已超過封包差的門檻,則需考慮Userlast的最大傳輸率,以避免 Distance 繼續增加,甚至能減少。而 threshold 的值可透過實驗去制定,在不同的環境中 可能最佳的 threshold 值會不同,其將於第四章詳述。另外,Userlast可能不只ㄧ
個,我們將這些使用者統稱為 Last Set。而在 Last Set 中也不ㄧ定所有使用者的
表 3.9 五個 users 在系統送出編碼封包後的狀態
(8)若仍有 User 封包數未達 k 則重複(2)~(7),否則系統結束。
由執行步驟可看出三個差異,分別為傳輸率的排程方式、挑選封包的方式 及權重決定的方式。因此可得出六種不同的執行方案,分別為 Selection Probability(SP)、Selection Probability with Last Set(SP_LS)、Direct
Selection(DS)、Direct Selection with Last Set(DS_LS)、Direct Selection with Reweight(DS_RW)及 Direct Selection with Last Set and Reweight(DS_LS_RW)。將 在下一章節介紹此六種方案的執行效能。
第四章 模擬參數及結果
4.1 參數設定
本章說明模擬環境的參數設定,包含一個 segment 的封包數、Group size、
mean SNR 和編碼 Degree 等等,再比較六個方案 SP、SP_LS、DS、DS_LS、
DS_RW 及 DS_LS_RW 的系統停止時間。表 4.1 簡單描述了六個方案其傳輸率
本文考慮的系統希望有較即時的反應能力,因此一個 segment 區塊中的封 包數我們假設以 11 個為主,並在 4.5 節比較32個封包數的情況,觀察封包 數量在此系統中是否存在差異。另外在使用者 Channel 的品質方面,分別以 mean SNR -3dB、3dB、6dB 及 9dB 去做觀察比較。在編碼 degree 方面,由於使 用越長的 degree 做編碼,使用者一定能越快解碼,但這會增加編碼及解碼的複 雜度,同時也較無法突顯我們在編碼排程上的效果。實際在 men SNR 6dB 的環 境中,以 degree 1~11 的 SP 方案做模擬如圖 4.1,可看出在 degree 4 之後的系統 Stopping Time(ST)皆相當地穩定,且改進的幅度有限。因此在本文中的編碼長 度皆以 degree 2 為主。
圖 4.1 SP 在不同 degree 的系統結束時間
4.2 Threshold of LS
在比較六個方案的系統結束時間之前,首先必須決定 SP_LS、DS_LS 及
DS_LS_RW 的 Threshold。在 LS 的步驟中,需要設定一個 Threshold 的門檻,
以決定該時間槽是否需執行補救Ulast的動作。此節將透過實驗模擬,觀察在不
同 mean SNR 及不同的 Group size 下,LS 的 Threshold 該如何決定。
4.2.1 Small Group Size
由於要觀察系統的即時行為,每個 Stream Segment 應由較少的封包數所組 成。在此前提下,本文希望能以實驗的方式在 1~11 中找出ㄧ個最佳的 threshold 值,在此稱為Tbest,用來當作 LS 方案補救Ulast的門檻。我們先以 SP_LS 的方
案做模擬實驗,在封包數 11 個、degree 2、mean SNR 6 dB 的參數設定下,觀 察是否存在一固定值Tbest,可使得系統在各 group size 中的 ST 總是最少。其中
每次實驗皆做 100000 次,其結果如圖 4.2-4.4。
(a) Group size 2 (b) Group size 3
(c) Group size 4 (d) Group size 5
(e) Group size 6 (f) Group size 7
圖 4.2 Mean ST vs threshold for SP_LS with 2-7 users under 6dB mean SNR
(g) Group size 8 (h) Group size 9
(i) Group size 10 (j) Group size 11
(k) Group size 12 (l) Group size 13
圖 4.3 Mean ST vs threshold for SP_LS with 8-13 users under 6dB mean SNR
(m) Group size 14 (n) Group size 15
(o) Group size 16
圖 4.4 mean ST vs threshold for SP_LS with 14-16 users under 6dB mean SNR 由上面的模擬結果可知,Tbest會隨著 group size 的變化而變動,而在 group size 為 16 之前,Tbest會隨著使用者的數目增加而增加。特別注意的是,從 group size 4 開始,Tbest的值與 threshold=10 所需要的系統時間幾乎相同,而 threshold = t 的意思為,當Ufirst及Ulast的封包數差距大於 t 時,才執行補救的動 作,且已收完所有封包的 Users 不在Ufirst定義中。所以設定 threshold = 10 所隱 含的意義為可以不用根據Ulast的進度做補救的動作。
(a) Group size 2 (b) Group size 3
(c) Group size 4 (d) Group size 5
接著我們想知道直接依照權重挑選封包的 DS_LS 及 DS_LS_RW 在同樣的 環境參數設定下,即 11 segment packets、degree 2 及 mean SNR 6dB 的狀況下,
其結果是否會與使用機率去挑選的 SP_LS。圖 4.5-4.6 為 DS_LS 的模擬結果,
圖 4.7-4.8 為 DS_LS_RW 的模擬結果。
圖 4.5 Mean ST vs threshold for DS_LS with 2-5 users under 6dB mean SNR
(e) Group size 6 (f) Group size 7
(g) Group size 8 (h) Group size 9
(i) Group size 13 (j) Group size 16
圖 4.6 Mean ST vs threshold for DS_LS with 6-16 users under 6dB mean SNR
(k) Group size 2 (l) Group size 3
(m) Group size 4 (n) Group size 5
(o) Group size 9 (p) Group size 13
圖 4.7 Mean ST vs threshold for DS_LS_RW with 2-13 users under 6dB mean SNR
(q) Group size 16
圖 4.8 Mean ST vs threshold for DS_LS_RW with 16 users under 6dB mean SNR
由上面模擬結果可發現 DS_LS 和 DS_LS_RW 的模擬結果與 SP_LS 的結果 相似,在 group size 4 之前一樣需將 threshold 設定小一點,才會幫助縮短系統 的 ST,而其Tbest的值一樣會隨 group size 的增加而增加,且在 group size 為 7~16 之間就可不用執行補救的動作。因此,由以上兩個實驗結果可知,Tbest的
值會隨著 group size 的變動而改變,無法以一固定值作為所有 group size 的最佳 門檻。
4.2.2 Large Group Size
此節我們將在相同的參數設定下,即 11 stream segment、degree 2、mean
(a) Group size 16
(d) Group size 28 (c) Group size 24
(b) Group size 20
SNR 6 dB,去觀察 SP_LS、DS_LS、DS_LS_RW 在較大 group size 的環境中,
Tbest是否也無法找到一固定值使得系統的 ST 總是最小。而若Tbest仍然會隨著
group size 而改變,其改變的方式是否會與 4.2.1 在 small group size 中相同。首 先看到的是 SP_LS 的模擬結果如圖 4.9~4.11。在此將 group size 由 16 增加到 512,且每個實驗一樣做 100000 次。
圖 4.9 Mean ST vs threshold for SP_LS with 16-28 users under 6dB mean SNR
(e) Group size 32
(j) Group size 56 (i) Group size 52
(h) Group size 44 (g) Group size 40
(f) Group size 36
圖 4.10 Mean ST vs threshold for SP_LS with 32-56 users under 6dB mean SNR
(k) Group size 60
(o) Group size 512
(n) Group size 256 (m) Group size 128
(l) Group size 64
圖 4.11 Mean ST vs threshold for SP_LS with 60-512 users under 6dB mean SNR
由模擬結果可發現,在 Group size 為 24 之前,其Tbest的趨勢皆與 4.2.1 在
small group size 下的結果相同在 10 附近,即 group size 越大越不需要救。但在 group size 持續增加到 28 之後,其圖形開始有了變化,Tbest的值漸漸地往前移 動,一直到 group size 為 128 之後,Tbest的值已落到了 1 或 2 的位置,且其模
擬結果的曲線相當平穩。這個結果隱含的意思為,在 group size 非常龐大的時 候,可依據進度較慢的使用者做傳輸率的排程,並在Ufirst及Ulast封包差為 1 或
擬結果的曲線相當平穩。這個結果隱含的意思為,在 group size 非常龐大的時 候,可依據進度較慢的使用者做傳輸率的排程,並在Ufirst及Ulast封包差為 1 或