發表文章

目前顯示的是 3月, 2019的文章

LTE筆記: 3D beam-forming in 3GPP

圖片
[2D vs. 3D beamforming] 5G NR 中的 beamforming 的技術主要利用天線陣列, 以及控制每一個天線陣列的相位, 來達成波束指向, 因此, 當天線排成一列時, 方向在一個平面上切換, 為 2D beamforming, 當天線排成一個長方形時, 方向可以在一個錐狀空間切換, 為 3D beamforming, 我們可以將各式排放方式以下圖表示: 來自:  http://www.sharetechnote.com/html/5G/5G_MassiveMIMO_FD_MIMO.html 圖片引用的文章中, 有 beamforming 的技術細節, 有興趣的讀者可以閱讀, 以下內容, 主要摘要自:  http://4g5gworld.com/blog/3gpp-stands-fd-mimo-3-d-beam-forming 在 3GPP R13 的規範中, 將 beam forming 的技術推廣至 3D, 此技術可以支援 Active Antenna System (AAS) 技術, 在此技術中, 討論一個 2D 的天線陣列, 擁有 8 個以上的 TXRUs (transceiver units), 每一個 TXRU 擁有獨立的震幅 (amplitude ) 和相位 (phase) 控制, 來自:  http://4g5gworld.com/blog/3gpp-stands-fd-mimo-3-d-beam-forming 而在最近 3GPP 會議 (3GPP TSG RAN #65) 中, 就討論要如何驗證其效能, 該研究分成兩個階段: 在第一階段: 將探討不同數量 TXRU 的影響 (8, 16, 32, 64), 並探討同構與異構在不同情境下的效能, 與可行性研究. 每一個 TXRU 的大小, 間距, 頻率以及極化設定, 並決定如何為其建立虛擬化的模型 在 R12 MIMO 的架構下模擬其效能, 設定為: 8x1 的天線陣列 (水平擺放於基地台頂端), 並分別模擬 Macro (3D-UMa) 和 Urban Micro (3D-UMi) 兩種不同設定 在第二階段: 在Macro (3D-UMa) 和 Urban Micro (3D-UMi) 兩種不同

[REST] 利用 postman 建立測試環境

圖片
此 db.json 文件中, 定義了三種不同的 JSON 資源: posts, comments, profile, 並定義每一種資源的內容, 以 posts 為例, 就是: id, title, author, 要去存取此 JSON 資源最簡單的方式, 就是透過 URL, 但也有一些方便的工具, 例如: postman, 可以讓我們快速開發, 以下為操作範例, 首先, 我們先測試 POST (開立一個新的 JSON 項目), 首先, 我們要先輸入 JSON Server 的位址與對應的 JSON 資源 (http://localhost:3000/posts) 接著, 到 Body 的部分填入數值, 選擇 x-www-form-urlencoded 的格式, 按照定義, 我們在 posts 資源中, 有 title, author 兩個項目, 填入對應數值, 接著, 回到 Params 的項目, 輸入 id 也就是主要的查詢鍵 (key), 在這裡 id 的數值會自動是 posts 中最低數值加一, 在下方的視窗中, 我們就可以看到產生出來的 JSON 格式, 按下送出後, 也可以看到來自 JSON Server 的回應: 201 Created 從此回應也可以用來確認是否程式有問題. 所輸入的資料也就會保存在 db.json 這個文字檔中, 我們可以在 JSON Server 上透過 vim 打開 db.json, 可以看到多出來的一個條目: "posts": [ { "id": 1, "title": "json-server", "author": "typicode" }, { "id": 2, "title": "newline", "author": "jxk" }, { "title": "xxx", &q

[REST] JSON 格式和 RESTful API

圖片
在建立一個簡易的 JSON Server 之後, 我們可以來簡單的測試一下其功能, 在開始之前, 我們先介紹一下 JSON 以及 RESTful API 的一些基本概念, RESTful (REpresentational State Transfer) API 的名稱雖然有點難以解釋, 不過可以簡單的想像這是一個建立在 HTTP 協定上的一種通訊規格, 其特色就是透過 URL (網址, IP 和 port 的組合) 對資源進行操作, 而所謂操作對應到 HTTP 協定中的: GET, POST, PUT, DELETE, GET 為查詢 JSON 資源, 只需要填入正確的 URL, 例如: http://localhost:3000/posts/1, 就是查詢 id 為 1 的 posts JSON 內容, POST 為發布一個新的 JSON 資源,  PUT 為更新一則 JSON 資源, 至於 DELETE 則是刪除某一則 JSON 資源, 這部分, 我們會在下一篇文章中利用 postman 來作操作範例, 在一般的網頁瀏覽中, HTTP 承載的內容格式為 HTML (以靜態網頁為例), 並透過瀏覽器將 HTML 的資源轉成圖文並茂的網頁內容, 但在 RESTful API 中, 承載的內容則為 JSON 或是 XML, 其共通之處在於透過 key-value 的形式儲存資料, 而其中, JSON 又因為其輕量簡便的特性, 而受到廣泛的使用. 在上一篇文章中, 我們以 json-server db.json 開啟一個 JSON Server, 其中 db.json 就隱含了 JSON 的格式, 我們可以將此文件打開, 內容如下: { "posts": [ { "id": 1, "title": "json-server", "author": "typicode" } ], "comments": [ { "id": 1, "body": &q

[REST] JSON Server on Ubuntu 16.04

圖片
沒想到也會有要寫 JSON 的一天... 由於按照網路上的教程都無法好好在 Ubuntu 16.04 環境上, 建立 JSON Server, 因此記錄一下自己安裝的步驟: 以下是參考過的資料: https://andy6804tw.github.io/2018/02/01/json-server-intro/ https://oomusou.io/json-server/intro/ https://medium.com/codingthesmartway-com-blog/create-a-rest-api-with-json-server-36da8680136d https://blog.csdn.net/csqingchen/article/details/48495353 https://stackoverflow.com/questions/47767370/package-npm-has-no-installation-candidate 在教程中, 只要一行指令就可以完成 JSON Server 的安裝: npm install -g json-server 然而實際操作之後, 在 16.04 上安裝會出現以下兩個問題: 第一, 存取權限的限制, 這個部分使用 sudo 就可以解決: sudo npm install -g json-server 第二, nodejs 的版本過舊 (4.2.6), 因此, 使用以下兩個指令: sudo npm install n - g sudo n stable 這兩個指令 (作為版本管理) 來升級 nodejs 的套件, 升級後, 就可以適用上述指令安裝 JSON Server. 完成後, 輸入 json-server db.json 就可以從 localhost:3000 看到 JSON server 的介面,  如下圖所示:  這樣就可以確定完成了 JSON Server 的安裝, 接下來, 我們會進一步去研究怎麼進行簡單的操作, 包含: PUSH, GET, POST 的常見的 RESTful API 操作