---
# System prepended metadata

title: Final project of Introduction to Wireless and Mobile Networking

---

# Final project of Introduction to Wireless and Mobile Networking
### Topic: Power Saving Mechanism with Adjustable DRX Cycles
(不幸地)這篇paper沒有提供github，所以得從頭寫code QQ
#### 工作內容：
- 實作LTE DRX，調整參數觀察結果
    - **Power saving factor PS**: The percentage of time UE spends in sleeping, which is an indicator of the power saving performance the DRX mechanism achieves.
    - **Wake-up delay $D$**: The waiting time of a packet call delivery experiences before UE wakes up. Here we assume packet service time is larger than the interpacket arrival time, and UE enters the power saving mode only after the service of a whole packet call.
- 實作UMTS DRX並和LTE DRX結果比較(Optional)
(其實UMTS DRX就是少掉deep sleep的部分，所以可以寫在同一個code裡面)
#### Language:
- MATLAB(暫定)
- MATLAB是可以和github連動做版本控制的（如圖）
![](https://hackmd.io/_uploads/H1r8HMXD3.png)

#### 連結
- github: 
https://github.com/Timchen0111/adjust_DRX
- 共編投影片
https://docs.google.com/presentation/d/1bJlB_y0Fuuk-gbez9i2k9YvaJ8Vqx5jfsEJDvGUKGFw/edit?usp=sharing
- 結果圖
https://drive.google.com/drive/folders/1jcA7GDxn8IOVW6RFuwelDXchsFirsq6O?usp=sharing
- reference paper: 
[1] https://ieeexplore.ieee.org/abstract/document/4657144?casa_token=2rdXy8YnVdsAAAAA:mspOJc5MTDmZyUEBkqCFrsFBJiAl29-OMznrnJE1GnqesXsp_bQjSiFHEu0doCQ1-seV_IRNMQ
[2] https://ieeexplore.ieee.org/abstract/document/4358272 （第 3 頁有各個封包參數的說明）
[3] https://www.etsi.org/deliver/etsi_tr/101100_101199/101112/03.02.00_60/tr_101112v030200p.pdf （第 33 頁有 traffic model 的說明）
(使用台大VPN即可下載)

#### 參考資料
![](https://hackmd.io/_uploads/Syl2LGmD3.png)
- States
![](https://hackmd.io/_uploads/SkPcUumDn.png)
- Some parameters
![](https://hackmd.io/_uploads/H1Ip8z7P3.png)
![](https://hackmd.io/_uploads/H1t-DGmD2.png)
這些distribution都可以使用matlab生成

    - 雖然模擬程式是離散的，但還是可以將 $t_\mathrm{is}$、$t_\mathrm{ipc}$ 和 $t_\mathrm{ip}$ 用 **Exponential Distribution** 來生成。因為若隨機變數 $X\sim\mathrm{Exponential}(\lambda)$，則另一個隨機變數 $K=\lceil X\rceil\sim\mathrm{Geometric}(1-\mathrm{e}^{-\lambda})$，與 [3] P.33 ~ 34 的設定相符。

- 發送packet
![](https://hackmd.io/_uploads/rksAqrVDh.png)

#### 期限
- 6/16（五）完成各自程式的部分
- 6/18（日）完成投影片、模擬數據
- 6/19（一）下午 2 點：口頭報告
- 6/23（五）書面報告


#### 分工

power saving mode: 彭昱齊
generate packet: 李耀宇
active mode/整合: 陳廷威

#### 6/15 更新

simulation的最小時間單位應該取決於packet size和transmission rate。
packet size的平均大小是480bytes，而transmission rate根據論文 https://ieeexplore.ieee.org/abstract/document/4358272 提及，有以下幾種types：
![](https://hackmd.io/_uploads/HkC1w2Owh.png)
我們暫時選定最小時間0.001秒，transmission rate為32kbps，如此則平均每個packet需要120個單位時間傳輸。（此即論文提及的${t_x}$)（若需要可以再改，我隨便選的，主要是怕程式會跑太久）

因此，每單位時間從buffer的清資料的大小是32bytes。generator丟東西時，每個單位時間點丟32bytes進去，如果packet大小剩不到32bytes，該時間單位丟剩下的進去就好。

所以packet generator的回傳值應該要是一個value，決定在這個時間單位要丟進buffer的資料大小（最多32bytes)。如果睡覺時有東西積在buffer，醒來應該先傳這些東西。

而receiver和generator都只會跟buffer互動，generator丟東西進buffer（不管有沒有人收），如果沒有在睡覺，receiver會立刻把東西清掉。如果在睡覺則東西積在裡面，則receiver會在On-demand時發現buffer有東西，決定醒來，然後開始清buffer。

在傳送單一packet時，是不會間斷的。例如某個packet需要15單位時間傳輸，那就會連續15個時間單位都丟東西進buffer。

****計算delay****
為了計算delay，我們丟東西進buffer時需要紀錄丟進去的時間。所以buffer架構會是一個matrix：
![](https://hackmd.io/_uploads/S13HL6_D3.png)
如果沒有東西時則長這樣：
![](https://hackmd.io/_uploads/BJIfdauPh.png)
清除時從時間久的開始清。（這部分算active，我處理就好）

#### 6/16 更新
**Buffer** 的格式目前為：
![](https://hackmd.io/_uploads/Hyrn89Kv2.png)

#### 6/17 更新
**目前程式部分已完成，開始測試&畫圖**
(希望等下不要又跑出bugXD)




















