<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>Raymond Su</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://yc518suray.github.io/</id>
  <link href="https://yc518suray.github.io/" rel="alternate"/>
  <link href="https://yc518suray.github.io/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, Raymond Su</rights>
  <subtitle>Raymond Su的個人網站</subtitle>
  <title>R.S. Random Space</title>
  <updated>2026-07-16T14:38:41.751Z</updated>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="Foo Birds 雙週刊" scheme="https://yc518suray.github.io/categories/Foo-Birds-%E9%9B%99%E9%80%B1%E5%88%8A/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="政治" scheme="https://yc518suray.github.io/tags/%E6%94%BF%E6%B2%BB/"/>
    <category term="動漫" scheme="https://yc518suray.github.io/tags/%E5%8B%95%E6%BC%AB/"/>
    <category term="音樂" scheme="https://yc518suray.github.io/tags/%E9%9F%B3%E6%A8%82/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><style>    summary {        cursor: pointer;        padding: 5px;    }    details {        border: 2px solid;        border-radius: 5px;        border-color: rgba(70, 211, 242, 0.05);        padding: 5px;        background-color: rgba(70, 211, 242, 0.1);    }</style><img src="https://drive.google.com/thumbnail?id=1Wn41Uuo_EBleDxWeLuAbHYfyKCI6MIhw&sz=s1024" width="480"><br><p>&emsp;&emsp;有很多東西想寫，但是內容太零碎、主題分散且篇幅各有不同，所以就想到可以藉「週刊」的形式呈現。但是每週發刊的頻率太高，我覺得自己沒有這個能耐，所以改成雙週刊。</p><span id="more"></span><h2 id="From-the-editor"><a href="#From-the-editor" class="headerlink" title="From the editor"></a>From the editor</h2><p>&emsp;&emsp;來談一談為什麼刊名要叫做「Fortnightly of the Foo Birds」。雙週刊的英文是 bi-weekly (兩週一次)，但是這個字也有「一週兩次」的意思，為了避免歧義，只好選擇 fortnightly 這個字；fortnight 意指十四個夜晚，也就是兩週的意思。</p><br><p>&emsp;&emsp;那麼要拿什麼搭配 fortnightly 呢？我想到英文經常使用<strong>開頭押韻</strong> (alliteration) 的方式來形成韻律，所以要以 F 開頭的字來送作堆。一首爵士標準曲的名字便浮現心頭。<br><br></p>      <link rel="stylesheet" href="/css/little_music.css">      <script src="/js/little_music.js"></script>      <div class="little-music-player"       data-vid="UN8HHmSXjkI"        data-start="30"        data-end="50"        data-player-id="yt-player-38484">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/UN8HHmSXjkI/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Flight of the Foo Birds</div>        <div class="track-artist">Count Basie, Neal Hefti</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-38484" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <br><p>&emsp;&emsp;<strong>Flight of the Foo Birds</strong> 是貝西伯爵 (Count Basie) 大樂隊 (big band) 著名的一首曲子，很典型的大樂隊風格，我是從 <a href="https://www.youtube.com/watch?v=mhuUimAaolE">The Real Group 的 Count Basie Medley</a> 認識這首爵士曲目(題外話，Count Basie Medley 真好聽，是人間瑰寶啊)。<a href="https://www.sandybrownjazz.co.uk/TracksUnwrapped/FlightOfTheFooBirds.html">這篇文章</a>探討了曲名的由來，有各種說法，目前仍不清楚哪個才是對的。<strong>Foo birds</strong> 則有一個<a href="https://digitalcommons.butler.edu/cgi/viewcontent.cgi?article=3552&context=manuscripts">較為詼諧的小故事</a>，大概是在玩「If the shoe fits, wear it.」和「If the foo shits, wear it.」這兩句的諧音吧。蠻莫名其妙的，不過兩句話在說的其實是同一件事：面對事實，我們也只能認栽。</p><br><p>&emsp;&emsp;另外，<strong>Foo</strong> 也是寫 code 的人很熟悉的 placeholder，變數和函式不知道要如何命名？那就叫 <strong>foo</strong> 吧。<a href="https://easy-intro-world1.blogspot.com/2011/07/foo.html">這篇文章</a>分享 foo bar 的起源，原來 foo 這個字在 1930 年代的美國曾經紅極一時，什麼都要 foo。<a href="https://www.ietf.org/rfc/rfc3092.txt">RFC 3092</a> 應該是前述文章的資料來源，整理得這麼詳細，結果還是眾說紛紜。</p><br><p>&emsp;&emsp;<strong>Fortnightly of the Foo Birds</strong> 名稱大概就是這樣來的，好像也沒什麼特別。考量到我的可替代性、像候鳥一樣四處漂泊(X)亂飄(O)的習性，也許我就是隻 foo bird 吧。Foo Birds 雙週刊主要刊載一些短得無法成篇的文章，或是長篇大論的幹話，亦可能是研究或生活紀錄，我希望它讀起來有意思，至少不要讓人望而生畏。</p><p align="right">the Foo Bird, Raymond Su</p><h2 id="目錄"><a href="#目錄" class="headerlink" title="目錄"></a>目錄</h2><ul><li><a href="#News-in-Comm">News in Comm</a><ul><li>本期內容：IC 設計營收排名、Amazon Leo 低軌衛星</li></ul></li><li><a href="#%E8%AA%AA%E6%95%85%E4%BA%8B%E6%99%82%E9%96%93">說故事時間</a><ul><li>本期內容：部隊故事其一</li></ul></li><li><a href="#Hobbyists-Time">Hobbyists Time</a><ul><li>本期內容：個人 AI 助理 Tohru 初登場</li></ul></li><li><a href="#%E9%9F%B3%E6%A8%82%E7%8E%8B%E5%9C%8B%E5%B7%A1%E7%A6%AE">音樂王國巡禮</a><ul><li>本期內容：Jobim 與他的憂鬱熱帶情調</li></ul></li><li><a href="#%E4%BB%A3%E8%99%9F-e04%EF%BC%9A%E5%85%B6%E4%BB%96%E8%A9%95%E8%AB%96">代號 e04：其他評論</a><ul><li>本期內容：「來自深淵」與深淵邊緣的我們</li></ul></li><li><a href="#Epilogue">Epilogue</a></li></ul><h2 id="News-in-Comm"><a href="#News-in-Comm" class="headerlink" title="News in Comm"></a>News in Comm</h2><details>    <summary>🍽 專欄簡介</summary>    <b>News in Comm</b> 整理通訊工程相關的新聞資訊、趨勢分析以及專題報導，或是通訊研究生在 IEEE 出版物的發現──沒什麼新聞好寫的話我就會這麼做。總之就是和通訊工程相關的資訊彙整。</details><h3 id="Fabless-IC-design-house-營收，NVIDIA-拔頭籌"><a href="#Fabless-IC-design-house-營收，NVIDIA-拔頭籌" class="headerlink" title="Fabless IC design house 營收，NVIDIA 拔頭籌"></a>Fabless IC design house 營收，NVIDIA 拔頭籌</h3><p>&emsp;&emsp;<a href="https://finance.technews.tw/2026/04/01/global-top-10-ic-design-revenue-grow-44-2025-ai-computing-power-demand/"><strong>新聞來源：TechNews，2026&#x2F;04&#x2F;01</strong></a>。都已經過兩個多月了還算是新聞嗎？往好處想還沒過一季嘛！(按：七月才發表文章，所以已經過一季了😅)根據報導，運行 AI 服務的雲端基礎設施帶動 ASIC 需求(如伺服器主板控制器 BMC)，因此不僅是設計 GPU 的 NVIDIA，連帶其他 IC 設計公司都獲益，甚至相輔相成，像是 NVIDIA 就投資<a href="https://www.bnext.com.tw/article/91144/marvell-asic-high-speed-io-transformation">專精於高速 I&#x2F;O 和 Serdes 的 Marvell</a>，合作提升 interconnect 效能。</p><br><p>&emsp;&emsp;下表是 2025 年營收前十大的無廠 IC design house，只計入 IC design 方面的業務。十家公司裡有三家臺灣公司，足見臺灣在 IC 設計方面佔有一席之地。</p><br><table style="width:450px; margin: 0 auto;">  <tr>    <th style="width:30%;">公司</th>    <th style="width:40%;">產品</th>    <th style="width:30%;">2025 年營收佔比</th>  </tr>  <tr><td>NVIDIA</td><td>GPU</td><td>57%</td></tr>  <tr><td>Broadcom</td><td>modem，Switch，ASIC</td><td>11%</td></tr>  <tr><td>Qualcomm</td><td>AP，modem，SoC</td><td>11%</td></tr>  <tr><td>AMD</td><td>CPU，GPU，FPGA</td><td>10%</td></tr>  <tr><td>MediaTek</td><td>AP，modem，SoC</td><td>5%</td></tr>  <tr><td>Marvell</td><td>DSP，Serdes，Switch</td><td>2%</td></tr>  <tr><td>Realtek</td><td>SoC，WiFi，Switch</td><td>1%</td></tr>  <tr><td>OmniVision</td><td>CMOS，LCOS，ASIC</td><td>1%</td></tr>  <tr><td>Novatek</td><td>SoC，display</td><td>1%</td></tr>  <tr><td>MPS</td><td>PMIC，power modules</td><td>1%</td></tr></table><center><font color="cyan">表A，IC design house 2025 營收 top 10。資料來源：</font><a href="https://www.trendforce.com/presscenter/news/20260401-12996.html"><font color="cyan">TrendForce</font></a></center><br><p>&emsp;&emsp;聯發科可以排第五名還蠻厲害的。聯發科也是目前手機晶片出貨量第一的公司(見圖A)，究竟 M 的晶片都用在哪裡？主要是 Tecno (傳音，在非洲市佔率僅次於蘋果和三星)、realme (屬於 OPPO)、OPPO、小米、Motorola (目前為聯想子公司)、<a href="https://en.wikipedia.org/wiki/Lava_International">Lava</a> (印度最大手機品牌)、vivo、Samsung 等品牌的中階 (mid-range) 手機，和高通的客戶有所重疊，但是 ASUS、Sony 可能就比較少用 M 的晶片；ASUS 也只有 <a href="https://rog.asus.com/tw/phones/rog-phone-6d-model/">ROG Phone 6D</a> 這款電競手機曾用過天璣 9000+。</p><br><img src="https://admin.counterpointresearch.com/statics/images/admin/dbe6de00-632b-11f1-82ca-cfc92d0d394a.png" width="500"><center><font color="cyan">圖A，2024 ~ 2026 手機晶片市佔率。資料來源：</font><a href="https://counterpointresearch.com/en/insights/global-smartphone-apsoc-market-share-quarterly"><font color="cyan">Counterpoint</font></a></center><br><p>&emsp;&emsp;圖A可以看到其他手機晶片廠商，如 Apple、UNISOC (紫光展銳)、Samsung、HiSilicon (海思，華為子公司)，Apple 僅憑自家手機就可以名列第三，實在厲害。Samsung 大概是因為業務眾多，沒有著重在自家晶片，而是仰賴高通的 Snapdragon。</p><br><p>&emsp;&emsp;至於瑞昱和聯詠這兩家公司經營的市場又不一樣，前者是網通設備，後者是顯示器 driver，之後有機會再來介紹。</p><h3 id="低軌衛星各國競賽現況"><a href="#低軌衛星各國競賽現況" class="headerlink" title="低軌衛星各國競賽現況"></a>低軌衛星各國競賽現況</h3><p>&emsp;&emsp;最近 SpaceX 上市，低軌衛星的議題再度炒熱，所以我們來看看低軌衛星最近的發展如何。<br><br><br>&emsp;&emsp;<a href="https://technews.tw/2026/06/09/amazon-leos-satellite-homework-is-late/"><strong>新聞來源：TechNews，2026&#x2F;06&#x2F;09</strong></a>。FCC 原先規定 Amazon Leo 發射的低軌衛星數量 (milestone requirement)，在今年七月底須達到計畫的 3236 顆的一半，但是在 Amazon 的請求下，FCC 延長期限到 2028 年；在那之前沒有達成 milestone 要求，核可的數量便僅限於已部署的衛星。參考 <a href="https://www.theregister.com/networks/2026/06/08/amazon-leos-satellite-homework-is-late-but-fcc-wont-flunk-it-just-yet/5252287">The Register</a> 新聞，也可以參考 <a href="https://satnews.com/2026/03/27/the-fcc-must-choose-enforce-the-rules-or-preserve-leo-competition/">satnews.com 的這篇新聞</a>，有更深度的分析。</p><br><p>&emsp;&emsp;我們來閱讀相關的文件。<a href="https://docs.fcc.gov/public/attachments/FCC-20-102A1.pdf"><font color="tomato">FCC 20-102</font></a> 這份文件授權 Amazon Leo 在特定頻帶 (Ka band) 部署 NGSO (非地球同步軌道衛星)以提供固定衛星服務 (FSS) 和移動衛星服務 (MSS)，以及附帶的條件；文件也提及同業 (SES、Telesat 等)的否決請願，並且表示該授權有助於公共利益。我們可以觀察到美國政府的決策是在眾多利益團體的互動中成形，至少形式上是如此。</p><br><p>&emsp;&emsp;<a href="https://docs.fcc.gov/public/attachments/DA-26-553A1.pdf"><font color="tomato">DA 26-553</font></a> 則是前述新聞提到的行政命令，本質上就是學生交不出作業、請求老師延長繳交期限的情形。FCC 放寬條件，目的是促使 Amazon Leo 盡快加入市場，促進競爭，這可以從文件中頻繁出現的「public interest」一詞得到驗證；此舉也是為了維持美國在衛星通訊方面的領先地位，畢竟歐盟、中國乃至於印度都在加速規劃相關事業。</p><br><p>&emsp;&emsp;對臺灣的讀者來說，Amazon Leo 和遠傳電信的合作或許是更大的新聞。今年五月，<a href="https://www.fetnet.net/content/cbu/tw/lifecircle/tech/2026/05/amazon.html">遠傳電信與 Amazon Leo 簽署協議</a>，成為其在臺授權經銷商。用戶需要使用 Leo Ultra 作為終端(圖B)，才能與衛星通訊。不過都會區的用戶大概不會考慮衛星通訊方案，主要是地面基礎設施不足的偏遠地區、山區與海上，會有較高的需求。此外，衛星直連手機也是可能的應用情境，像是聯發科與 Starlink 合作開發 <a href="https://tw.stock.yahoo.com/news/%E8%81%AF%E7%99%BC%E7%A7%91%E6%94%9C%E6%89%8Bspacex%E5%AF%A6%E7%8F%BE%E8%A1%9B%E6%98%9F%E7%9B%B4%E9%80%A3%E6%89%8B%E6%A9%9F-%E5%A4%A7%E6%90%B6%E8%A1%9B%E6%98%9F%E9%80%9A%E8%A8%8A%E5%95%86%E6%A9%9F-075543427.html">direct-to-device 的緊急通報功能</a>，雖然運作在 S band 且不是寬頻應用，但是其與手機整合的概念，對於偶爾才有戶外活動的用戶來說或許更有吸引力。</p><br><img src="https://bucket-image.inkmaginecms.com/version/desktop/9dde7c0f-a597-445c-80dd-9a93db8a4006/image/2025/11/e145a8db-ecf9-4b3a-bb00-6b159118d624.png" width="400"><center><font color="cyan">圖B，Amazon Leo Ultra 衛星通訊終端。資料來源：</font><a href="https://www.inside.com.tw/article/40123-amazon-leo-ultra"><font color="cyan">INSIDE</font></a></center><br><p>&emsp;&emsp;<a href="https://technews.tw/2026/06/16/spacex-dominates-leo-market-china-itu-filing-244000-satellites-spectrum-hoarding-controversy/"><strong>新聞來源：TechNews，2026&#x2F;06&#x2F;16</strong></a>。中國向 ITU 申報計畫部署 24.4 萬顆低軌衛星，實際上目前只有部署一千多顆，有搶佔頻譜之嫌，英文稱作 spectrum squatting (有佔著茅坑不拉屎的意味)或 spectrum warehousing。不過這篇報導裡提到 ITU 的 NGSO milestone regulation 和 <a href="https://www.itu.int/hub/2020/01/itu-members-agree-to-new-milestones-for-non-geostationary-satellite-deployment/">ITU 官方說明的</a>不太一樣，似乎並沒有報導所稱那麼寬鬆。</p><br><p>&emsp;&emsp;最後介紹一下低軌衛星使用的頻率區段。下表是一般常見的頻帶劃分，分為雷達頻帶(依據 IEEE 521-2002 標準)與無線電頻帶兩種分類方式。前述 Amazon LEO 就是使用 Ku 和 Ka 的頻帶(未來可能包含 V band)，對應到行動通訊就是 FR3 和 FR2。為什麼跳過 K band 呢？因為<a href="https://zh.wikipedia.org/wiki/K%E6%B3%A2%E6%AE%B5_(%E7%B4%85%E5%A4%96%E7%B7%9A)">大氣中的水氣會吸收 K band 的訊號</a>，衰減較為嚴重。</p><br><table style="width:550px; margin: 0 auto;">  <tr>    <th style="width:40%;">IEEE Radar Band</th>    <th style="width:32%;">ITU Freq Band</th>    <th style="width:28%;">應用</th>  </tr>  <tr>    <td colspan="2"><b>HF</b>, 3 ~ 30 MHz</td>    <td>短波(業餘無線電)</td>  </tr>  <tr>    <td colspan="2"><b>VHF</b>, 30 ~ 300 MHz</td>    <td>FM，業餘無線電</td>  </tr>  <tr>    <td><b>UHF</b>, 300 ~ 1000 MHz</td>    <td rowspan="3"><b>UHF</b>, 300 ~ 3000 MHz</td>    <td rowspan="2">行動通訊，DTV-B，ISM，GPS(GNSS)</td>  </tr>  <tr><td><b>L band</b>, 1 ~ 2 GHz</td></tr>  <tr><td><b>S band</b>, 2 ~ 4 GHz</td><td>行動通訊，WiFi，ISM，SatCom</td></tr>  <tr>    <td><b>C band</b>, 4 ~ 8 GHz</td>    <td rowspan="4"><b>SHF</b>, 3 ~ 30 GHz</td>    <td>WiFi，氣象雷達，SatCom</td>  </tr>  <tr><td><b>X band</b>, 8 ~ 12 GHz</td><td rowspan="2">雷達，太空任務，<br>衛星電視，SatCom</td></tr>  <tr><td><font color="tomato"><b>Ku band</b>, 12 ~ 18 GHz</font></td></tr>  <tr><td><b>K band</b>, 18 ~ 27 GHz</td><td>防撞雷達，測速，SatCom</td></tr>  <tr>    <td><font color="tomato"><b>Ka band</b>, 27 ~ 40 GHz</font></td>    <td rowspan="4"><b>EHF</b>, 30 ~ 300 GHz</td>    <td>測速，太空任務，SatCom，5G 毫米波</td>  </tr>  <tr><td><b>V band</b>, 40 ~ 75 GHz</td><td>WiGig，SatCom，5G 毫米波</td></tr>  <tr><td><b>W band</b>, 75 ~ 110 GHz</td><td><a href="https://en.wikipedia.org/wiki/Active_Denial_System">ADS</a>(武器)，<br>毫米波雷達</td></tr>  <tr><td><b>mm band</b>, 110 ~ 300 GHz</td><td>高精確度成像</td></tr></table><center><font color="cyan">表B，無線電頻帶的區間劃分。資料來源：</font><a href="https://www.radioing.com/eengineer/bands.html"><font color="cyan">RADIOING.com</font></a></center><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p><h2 id="說故事時間"><a href="#說故事時間" class="headerlink" title="說故事時間"></a>說故事時間</h2><details>    <summary>🍽 專欄簡介</summary>    <b>說故事時間</b>，來說個故事...在 GAI 快速演進的當下，人類仍然是說故事的高手。遠古的時代，是故事鼓勵人們團結彼此、走向未知；科技發達的現在，我們對故事的需求有增無減，因為唯有透過故事，這個世界才能夠為我們所理解。</details><br><p>&emsp;&emsp;這個故事發生在一年半前，四個月軍事訓練役期間。</p><br><p>&emsp;&emsp;下部隊的單位位於軍營圍繞的小鎮，小鎮以富有異國特色的美食聞名，雖然在部隊整整兩個月期間，我只吃過一兩次。營區的大門寬敞，站哨的阿兵哥看起來格外親切──因為那就是我所屬單位的同梯與學長們，我們連剛好輪值守大門。</p><br><p>&emsp;&emsp;在大門的日子，班長對我們沒有什麼要求，只要長官巡視的時候手腳勤快一點，掃掃地、清清槍，協助大門車輛與人員進出放行的勤務(檢查行李、對照外散宿名單)，平時也沒有什麼操練。體能檢測、跑步還是有的，不過可以視為體育課，和新訓期間的強度完全不同。除了站副哨以外，日子算是輕鬆愜意，滑滑手機、聊聊天，加上排定的大門勤務，時間很快就過了。</p><br><p>&emsp;&emsp;在颳著刺骨寒風的十二月天，「押車」是大家求之不得的勤務。軍營大門除了官兵出入，時常也會有民間廠商進出，烘洗衣物、補充販賣機、印表機維修、送收瓦斯桶、回收廚餘桶等等，凡是軍營有需求卻無法自給自足者皆是。廠商的車輛進入軍營，大門必定派一名士兵隨行，通常是直接坐上副座，副座不能坐的話，只得騎腳踏車尾隨。對我們這些軍事訓練役的來說，「押車」可以暫時離開冷颼颼的大門，順道去販賣機買點飲料、隨著廠商在營區裡晃來晃去，何樂不為；並且押車時沒有班長盯著，更是放鬆不少。</p><br><p>&emsp;&emsp;那天我坐在大門的「接待處」長桌前，看著駛進大門的小貨車，在哨長的指揮下暫時停下。輪到我去押車，進到副座，小貨車便往營區深處駛去。駕駛A的年紀大概三十出頭而已，車內的擺設也呈現比較年輕的氛圍，不過我不太在乎這些，只要車內暖和的空氣與滑手機的輕鬆時光便足矣。A開著車繞著營區最外圈的道路行駛，路上不時與我搭話。那雙深邃而憂鬱的眼眸和這輛車搭配得很好，彷彿他駕駛的是一艘夜釣小卷的小船，而船長與小船在險惡的大海上經歷的一切，都透過眼底的深沉傳達出來。</p><br><p>&emsp;&emsp;車子在營部連側門停下，「你想喝什麼可以買啊，我去看一下咖啡機。」A說著便走向門口的自動咖啡機，隨後將機器的背板拆開，似乎在維修著什麼。沒什麼要喝，但我還是下了車，站在旁邊看著他檢查裝填材料的管線。畢竟押車的目的是為了防止軍營被滲透、窺探，要是廠商偷偷在自動販賣機安裝竊聽裝置，那就不得了了，所以再怎麼說我也應該下車，就算是做樣子也不能少──這是我在軍隊學到的幾件事之一。</p><br><p>&emsp;&emsp;門外下著小雨，遠處傳來<span class="hint--info hint--rounded hint--top" data-hint="中型戰術輪車，即軍卡" ontouchstart>中戰</span>的隆隆聲響，營舍安靜而空蕩。在軍隊裡，獨處的機會不多，通常會有任務在身；這個片刻，我感到有些不真實，好像整座軍營都是搭建的布景，身上穿的迷彩外套也是戲服，否則便無從解釋為何自己身在此處──就像是身處於<span class="hint--info hint--rounded hint--top" data-hint="閾限空間，liminal space" ontouchstart>過渡空間</span>一樣。A把自動咖啡機背板裝回，問我要不要喝咖啡？我說不用，跟著他回到車上。A說自己來過好幾次了，這一帶軍營的自動販賣機和飲料機都是他負責的，看他熟門熟路的依序前往各個單位的飲料機，比我還要清楚路線，實在沒有理由不相信。</p><br><p>&emsp;&emsp;「你和我弟弟很像，戴眼鏡然後都喜歡看動漫。」A說，沒有要發動車子的意思，「是吧。」我不知道該回覆什麼，便繼續滑手機，翻看臉書上的二格漫畫。我想我應該和他的弟弟有著類似的風格，內向、熱衷於二次元世界的形象。「我架了相機即時錄影，這樣我不在家的時候也能照看他。你看，這是我弟弟。」他說著把手機螢幕轉向我這邊，像是在分享自己的寶物一般。螢幕上是 IP 攝影機的即時錄影畫面，客廳裡皮膚白皙的男孩背對著鏡頭，一動也不動，不曉得在幹什麼。「喔，他一定又在打電動了。他也很喜歡打電動。」那男孩不是個小男孩，而是個大男孩，也許是國中生或高中生的年紀，甚至已經不是學生──不過這樣猜想也沒有意義，單憑一個畫面，又能知道些什麼？</p><br><p>&emsp;&emsp;我沒有勇氣問A，他的弟弟年紀多大？只反駁道我們並不相像。A轉動方向盤，微笑著說：「是嗎？可是我覺得你們很像。」到底是哪裡很像？返回大門的路上，我有些不安的思忖著。我和A繼續閒聊，一樣若無其事的滑手機，但是疑問始終沒有消解，隨著車外風景逐漸從營舍轉變為寬廣的草皮與機車停車場，這份疑問鑽進內心更深處；下車的那一刻，押車的任務結束，我將離開這二十幾分鐘經驗到的過渡空間，回歸大門的行列。哨所和濃厚的菸味正等待著我。</p><br><p>&emsp;&emsp;我很快就把這件事拋諸腦後，不把它當作一件特別值得注意的事；當然，在意識的深層，這段故事悄悄潛伏著。我現在仍然記得，A那張看似年輕、卻歷盡滄桑的臉，也記得他手機裡的影像曾經使我不解。那疑問在心裡打磨了一年多，我漸漸明白A看著滑手機的自己，眼神或許是充滿憐憫；這樣看來，A說的沒錯，我和他弟弟很像，非常像。</p><br><p>&emsp;&emsp;有人說當兵的這段時間可以更加認識自己，只是我沒想過會是以這樣的形式。(完)</p><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p><h2 id="Hobbyists-Time"><a href="#Hobbyists-Time" class="headerlink" title="Hobbyists Time"></a>Hobbyists Time</h2><details>    <summary>🍽 專欄簡介</summary>    <b>Hobbyist's Time</b> 分享我的各種興趣，或是分享別人的興趣。</details><br><p>&emsp;&emsp;原本的專欄內容是「<strong>RTL-SDR 接收長波對時訊號</strong>」，但是我發現接收長波訊號可不簡單，首先是島嶼南部距離日本九州的電波塔較遠，因此可能要接收中國河南商丘的電波訊號(是的，臺灣沒有自己的長波授時訊號)，但是中國的授時訊號格式並非公開，網路上一些比較零散的資料也有待整理。再者，接收天線也要設計、製作，短時間內無法有成果。</p><br><p>&emsp;&emsp;因此，本期的內容分享我最近建立的「個人 AI 助理」雛形。為什麼要做這件事呢？其實只是想到可以這麼做，然後就開始嘗試了，實驗室的個人電腦 CPU 和記憶體資源充足，雖然 GPU 資源不足(使用 Intel 的內顯，不過<a href="https://technews.tw/2025/12/31/cpu-nvidia-igpu/">內顯的效能似乎也在逐步增長</a>)，供小型 LLM 模型推論應該是沒有問題的。</p><h3 id="Ollama-及小型-LLM-模型"><a href="#Ollama-及小型-LLM-模型" class="headerlink" title="Ollama 及小型 LLM 模型"></a>Ollama 及小型 LLM 模型</h3><p>&emsp;&emsp;既然是「個人」的 AI 助理，當然希望重要的資料不要上傳到雲端，於是有必要在本地端 (local) 跑 LLM 模型。我採用 <a href="">Ollama</a> 作為模型服務的 server，目前下載了 <strong>llama3.1</strong> 和 <strong>Gemma4</strong> 兩個 LLM 模型；llama3.1 語言能力沒有 Gemma4 來得好，但是 Gemma4 也經常語出驚人──總而言之，兩個是半斤八兩。不過感覺還是不錯，終於可以不用擔心對話會外洩，也不用顧忌 token 數量的限制。</p><h3 id="Live2D-助理桌面形象"><a href="#Live2D-助理桌面形象" class="headerlink" title="Live2D 助理桌面形象"></a>Live2D 助理桌面形象</h3><p>&emsp;&emsp;藉由 Google Gemini 的協助，使用 Python 的 <code>pywebview</code> 套件建立一個視窗程式，內容則是以 HTML5 網頁呈現。基本上大部分的程式碼都是 Gemini 寫的，我也沒什麼好說；網頁視覺呈現使用 <a href="https://pixijs.com/">Pixi.js</a> 並載入一些 Live2D 的 js 腳本，<code>pywebview</code> 的 <code>window</code> 物件提供 <code>debug</code> 參數，可以透過開發人員工具(就是 F12 那個介面)來除錯。</p><br><p>&emsp;&emsp;視窗裡放的是 Live2D 動態角色。一開始的角色形象是 Live2D 提供的範例模型「桃瀨日和(桃瀬 ひより)」，這也是著名 AI VTuber <a href="https://zh.moegirl.org.cn/Neuro-sama">Neuro-sama</a> 一開始的形象(免費的嘛誰不愛)。後來我想，反正時間很多，何不自己畫一個 Live2D 角色？於是安裝 <a href="https://krita.org/zh-tw/">Krita</a> 和 <a href="https://www.live2d.com/en/">LIve2D Cubism editor</a> 開始動筆，結果兩天就完成最基本的組成了。如圖C所示，完全參考自動畫「小林家的龍女僕」主角トール (Tohru)，反正是個人使用，<span class="hint--info hint--rounded hint--top" data-hint="參考著作權法第 91 條第三項" ontouchstart>不構成著作權侵害</span>。</p><br><img src="https://drive.google.com/thumbnail?id=1QoVgQ_xkGfjJlFsY2NeoCBGSarVhVaSu&sz=s1024" width="300"><center><font color="cyan">圖C，用 Krita 繪製的 Tohru 立繪，參考自官方角色形象。</font></center><br><p>&emsp;&emsp;雖然沒有畫出 Tohru 可愛的神韻，不過該有的特徵都有，我也滿意了。製作成 Live2D 動畫才是棘手的部分，畢竟我也是 Live2D Cubism 新手。照著官方教學影片，總算是讓 Tohru 動起來，尾巴的部分我很滿意，游標的視線追蹤嘛…怎麼看怎麼怪，也不要求了。</p><br><img src="https://i.urusai.cc/1Redl.gif" width="300"><center><font color="cyan">圖D，用 Live2D Cubism editor 製作的 Tohru 動態立繪。<br>視線追蹤只有在游標進入(透明)視窗內才會啟用，這點有待改進。<br>圖床：</font><a href="https://urusai.cc/"><font color="cyan">URUSAI</font></a></center><br><p>&emsp;&emsp;以上就是這期 Hobbyist’s Time 分享的個人興趣。目前規劃這個個人 AI 助理必須有能力<strong>真正</strong>協助我工作上的事務，不是只是玩玩而已。之後這些規畫能不能實現呢？請拭目以待吧。</p><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p><h2 id="音樂王國巡禮"><a href="#音樂王國巡禮" class="headerlink" title="音樂王國巡禮"></a>音樂王國巡禮</h2><details>    <summary>🍽 專欄簡介</summary>    <b>音樂王國巡禮</b>，很少有什麼東西，可以跨越幾個世紀，依然帶給人們感受，文學是其一，音樂也是其一。分享我聽到的帶有生命力的音樂，以及這些音樂背後的故事。</details><br><p>&emsp;&emsp;今天介紹一個我很喜歡的音樂類型：巴薩諾瓦 (Bossa Nova)。沒有錯，就是那種電梯間、咖啡廳裡經常聽到的音樂──俗不可耐？那可能是因為你沒有聽過未經商業化、充滿情緒與生命力的 Bossa Nova！</p><h3 id="Jobim-與他的憂鬱熱帶情調"><a href="#Jobim-與他的憂鬱熱帶情調" class="headerlink" title="Jobim 與他的憂鬱熱帶情調"></a>Jobim 與他的憂鬱熱帶情調</h3><p>&emsp;&emsp;講到巴西這個國家，你會想到什麼？是森巴嘉年華，足球，還是亞馬遜雨林？地理上，臺灣的對蹠點是南半球的巴拉圭，而巴西就在這個熱帶草原國家的北方，因此對於臺灣人來說，巴西無疑是個遙遠的國度。不過，我們每天都在聽的 Bossa Nova，就是來自這片熱帶土地。Bossa Nova 怎麼出現，又怎麼來到我們身邊的？</p><br><p>&emsp;&emsp;巴西是一個多民族國家，包含來自歐洲、非洲與美洲(原住民)的族裔，以及相互融合形成的族群(佔人口半數[2])；十九世紀以前是葡萄牙的殖民地，第二次世界大戰以後，巴西成為世界上人口最多的民主國家之一，維持其民主體制直到 1960 年代的威權統治。這個不受戰爭紛擾、經濟逐漸成長的國家，開始在既有的音樂基礎上，發展具有「現代性」的旋律。</p><br><p>&emsp;&emsp;前述的音樂基礎就是<strong>森巴</strong>。森巴主要受到非洲的舞蹈文化影響，節奏明快活潑，辨識度非常高。這讓我想到小時候(也沒有多小啦，大概十年前)和家人玩 Xbox 360 的 <strong>Kinect Sports</strong>，它的開頭音樂就是森巴風格：</p>  <div class="little-music-player"       data-vid="Lk49l5LFVrg"        data-start="1"        data-end="13"        data-player-id="yt-player-91618">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/Lk49l5LFVrg/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Kinect Sports - Sports Selection</div>        <div class="track-artist">Robin Beanland, Rare Ltd.</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-91618" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;吹奏管樂的讀者們，或是動畫「吹響吧！上低音號」的粉絲，也許會對真島俊夫編曲的曲目「寶島」感到熟悉：</p>  <div class="little-music-player"       data-vid="PKuPbccsfrs"        data-start="1"        data-end="31"        data-player-id="yt-player-83807">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/PKuPbccsfrs/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">宝島 (Takarajima)</div>        <div class="track-artist">響け！ユーフォニアム2</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-83807" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;這兩首曲子的開頭都使用到 <strong>Agogo</strong> (一種與 cowbell 相似的打擊樂器)和<strong>沙鈴</strong>，兩者和著強而有力的鼓聲組成律動的節奏；<strong>哨子</strong>和<strong>三角鐵</strong>一個張揚一個低調，為舞曲增添層次。聽到這些元素，八九不離十是森巴舞曲的風格！不過這兩個例子，有點像是流行音樂形塑的森巴印象；實際上巴西人在聽的森巴，可能是這樣的：</p>  <div class="little-music-player"       data-vid="o1VpC16twDY"        data-start="41"        data-end="79"        data-player-id="yt-player-22917">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/o1VpC16twDY/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Vou Festejar</div>        <div class="track-artist">Beth Carvalho</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-22917" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;這首曲子沒有 Agogo 和哨子，取而代之的是<strong>綿密而輕快的手鼓和吉他</strong>，比起前面兩首的森巴「刻板印象」，更加輕鬆、平易近人，彷彿可以在社區舉辦的小型慶典聽到。此外，這首歌以<strong>調性多變的旋律</strong>貫穿其中，風味十足。</p><br><p>&emsp;&emsp;1950 年代，經濟發展的巴西開始形成現代都市，住在都市的人有了新的音樂需求，爵士樂音從唱片機傳出，也傳到新一代音樂人的耳裡。在里約熱內盧 (Rio de Janeiro)，作曲家 <strong>Antônio Carlos Jobim</strong> 融合古典音樂、美國的 Cool Jazz 以及森巴音樂，為這股新浪潮 (new wave) 的聲音奠定基礎；那就是 Bossa Nova。我們來聽聽看，由 Ary Barroso 作曲的 Aquarela do Brasil，原本是一首森巴風格、管弦樂伴奏的歌曲，Jobim 如何將它改造：</p>  <div class="little-music-player"       data-vid="Uu4XEsUrAwY"        data-start="30"        data-end="70"        data-player-id="yt-player-7301">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/Uu4XEsUrAwY/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Aquarela do Brasil</div>        <div class="track-artist">Ary Barroso, Antonio Carlos Jobim</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-7301" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;沒有管弦樂團那般盛大、高調，人聲和伴奏都由 keyboard 較為溫潤的音色取代；森巴的節奏則以沉著的定音鼓、貝斯(低音大提琴)、沙鈴(或類似的樂器)及三角鐵層層堆疊而成，和前面提到的 Vou Festejar 歌曲裡層次同樣豐富的節奏樂器相比，Jobim 將層次壓得更密實，好像把蓬鬆的海綿蛋糕壓縮成一塊鳳梨酥一般。</p><br><p>&emsp;&emsp;海綿蛋糕可以大口大口的吃，但是鳳梨酥要小口小口的品嘗，也許搭配一杯咖啡或茶，在明亮而靜謐的室內品味…我覺得 Bossa Nova 有點像是這樣呢，將屬於室外活動的森巴帶到室內，相應的帶來音樂上情緒的轉變，由奔放變為內斂；陽光依舊熱烈，只不過不是直接照射在皮膚上，感到觸覺方面的熱辣，而是在心裡迸發，感受平靜外表下的躁動。</p><br><p>&emsp;&emsp;1959 年，Jobim 與吉他演奏家 <strong>João Gilberto</strong> 合作推出 Chega de Saudade，被認為是第一首 Bossa Nova 歌曲。手鼓、沙鈴和貝斯的基本元素之外，旋律由輕快的吉他伴隨 Gilberto 有些隨興又慵懶的歌聲組成，像是躲在遮陽傘下看著海灘的浪花，在舒適中感受散發無限熱情的陽光。長笛溫柔而活潑的樂音也成為新音樂的元素，甚至是日後 Bossa Nova 的鮮明標誌之一。</p>  <div class="little-music-player"       data-vid="Y0a0QuLEC8A"        data-start="7"        data-end="56"        data-player-id="yt-player-73494">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/Y0a0QuLEC8A/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Chega de Saudade</div>        <div class="track-artist">Vinícius De Moraes, Antônio Carlos Jobim</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-73494" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <h3 id="伊帕內瑪的姑娘"><a href="#伊帕內瑪的姑娘" class="headerlink" title="伊帕內瑪的姑娘"></a>伊帕內瑪的姑娘</h3>  <div class="little-music-player"       data-vid="v5DZ5clg-bg"        data-start="22"        data-end="57"        data-player-id="yt-player-88626">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/v5DZ5clg-bg/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">The Girl From Ipanema</div>        <div class="track-artist">João Gilberto, Antonio Carlos Jobim</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-88626" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;Bossa Nova 在巴西國內開始風行之際，也悄悄吸引了美國爵士樂手的注意。由 Jobim 作曲、Vinícius de Moraes 作詞，薩克斯風手 Stan Getz 和 João Gilberto 及 Astrud Gilberto (João 當時的妻子) 共同演奏的 Garota de Ipanema (此為葡萄牙文，英譯為 <strong>The Girl From Ipanema</strong>) 開啟 Bossa Nova 在美國、乃至於全世界的流行風潮，據說這首歌的翻唱&#x2F;錄音次數之多，僅次於 Beatles 的 Yesterday。也有一說，這首歌是最常出現在電梯間的輕音樂，我自己就有某次搭電梯聽到的經驗。</p><br><p>&emsp;&emsp;和 Chega de Saudade 不一樣的是，The Girl From Ipanema 幾乎捨去了森巴繁複的節奏，只留下微弱的鼓聲打拍子，由貝斯和吉他撥動的音符推動歌曲前進；薩克斯風和鋼琴的 solo 部分也是一大創新，基本上是爵士樂的做法。整體而言更加安靜的樂器，反而凸顯了歌手的聲音──Astrud Gilberto 自然而不做作的歌聲，絕對是這段錄音使世界如此著迷的關鍵之一。</p><br><p>&emsp;&emsp;這首歌在唱些什麼呢？我們只看英文版本的歌詞：曬得黝黑、高挑可愛的年輕女孩，所到之處皆驚艷眾人，唯有歌者悲傷的注視著她，因為對方是如此耀眼，而自己是個遜咖，追求的難度實在太高！其實這是個常見的主題，Radiohead 的 Creep 不也是在講同一件事嗎？但是和 Creep 自暴自棄的情境不同，The Girl From Ipanema 始終將視線放在女孩身上，她是歌者無限渴望、卻永遠無法接近的美好──就是 Saudade！</p><br><p>&emsp;&emsp;<strong>Saudade</strong> 是葡萄牙語，描述一種<a href="https://zh.wikipedia.org/zh-tw/Saudade">特殊的情緒或感受</a>，內心深處有著強烈的情緒，卻無法採取任何行動來達成目的，The Girl From Ipanema 的敘事就是一個例子。難怪，這首歌的旋律總是帶著一絲憂鬱，夾雜在對美好的歌頌之中。</p><h3 id="如流水，如對話：Aguas-de-Marco"><a href="#如流水，如對話：Aguas-de-Marco" class="headerlink" title="如流水，如對話：Águas de Março"></a>如流水，如對話：Águas de Março</h3><p>&emsp;&emsp;隨著現代化伴隨的貧富差距擴大與政治上的緊縮，代表都市中產階級、幾乎不關心社會議題的 Bossa Nova 受到批判。作為回應，巴西大眾音樂 (Música Popular Brasileira，MPB) 及熱帶主義 (Tropicália) 出現，承繼 Bossa Nova 的融合特性，面向更寬廣的搖滾、民俗音樂汲取元素，也包含更多元的群眾聲音。在這波蓬勃發展的藝術運動中，Jobim 借力使力，繼續發展 Bossa Nova 的其他表現形式，比如說與歌手 Elis Regina 合作的歌曲，<strong>Águas De Março</strong>，發表於 1974 年的專輯 Elis &amp; Tom。</p>  <div class="little-music-player"       data-vid="BnB1G63XvCQ"        data-start="132"        data-end="174"        data-player-id="yt-player-13429">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/BnB1G63XvCQ/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Águas De Março</div>        <div class="track-artist">Elis Regina, Antonio Carlos Jobim</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-13429" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;Elis 是 MPB 重要的歌手，歌曲經常反映著對社會問題的回應與理想，可以說是一代人物吧。我很喜歡她和 Jobim 合唱的這首 Águas De Março (三月春水)，這裡只截取一小段試聽，非常推薦聽整首曲子！經典的 Bossa Nova 旋律作為背景，鋼琴加入兩人時而重疊、時而互相呼應的歌聲，彷彿第三個人的歌聲一般，配合得極好。歌詞是葡萄牙語，列舉了許多事物，如作家 Eco 所說的「無窮無盡的名單」，如此的條列便象徵著某種無止盡的情緒，如春水一般綿長。</p><br><p>&emsp;&emsp;歌詞和旋律之外，Elis 和 Jobim 的對唱也饒富趣味。和歌詞一樣，兩人的句子綿長，Elis 的句子就要唱完，Jobim 便接續句子的流動；Jobim 的句子即將結束之際，Elis 自然的接下去，如行雲流水，也像對話一般自然。在歌曲的最後，Elis 不知道為什麼好像要笑場，卻反而讓整段錄音更加率真。我個人覺得這是目前為止，我聽過最好的對唱，不服來辯。(按：陳昇和彭佳慧的「<a href="https://www.youtube.com/watch?v=GpPizVZVBiE">喝完這杯咖啡就走開</a>」也不錯啦。)</p><br><p>&emsp;&emsp;其實在 MPB 的音樂裡也可以發現 Bossa Nova 的特色，像是 Chico Buarque 的 Feijoada Completa，以貝斯和兩隻吉他的旋律構成律動。不過這首歌的森巴色彩更是鮮明，apito 的哨音為歌曲增添嘉年華的熱鬧氣氛。</p>  <div class="little-music-player"       data-vid="srtemm9v5Z8"        data-start="58"        data-end="83"        data-player-id="yt-player-16649">    <div class="player-thumbnail">      <img src="https://img.youtube.com/vi/srtemm9v5Z8/hqdefault.jpg">    </div>    <div class="player-controls">      <div class="track-info">        <div class="track-title">Feijoada Completa</div>        <div class="track-artist">Chico Buarque</div>      </div>  <div class="progress-container"><button class="control-btn play-btn">▶</button>        <span class="current-time">0:00</span>        <div class="progress-bar-bg">          <div class="progress-bar-fill"></div>        </div>        <span class="total-time">0:00</span>      </div></div>    <div id="yt-player-16649" style="position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none;"></div>  </div>  <p>&emsp;&emsp;這位歌手有一張專輯封面如下，不知道大家是不是覺得有點眼熟？就是那個「成癮前 vs 成癮後」梗圖的那張臉啊！好吧，這算是我找資料過程中一點意料之外的發現，跟 Bossa Nova 沒什麼關係。</p><br><img src="https://m.media-amazon.com/images/I/51T6k88gUeL.jpg" width="300"><center><font color="cyan">圖E，Chico Buarque 的某張專輯封面。<br>圖片來源：amazon.com，</font><a href="https://www.amazon.com/-/zh_TW/dp/B000WMFPAG"><font color="cyan">連結</font></a></center><br><p>&emsp;&emsp;Jobim 還有很多非常好聽、充滿熱帶風采的作品，推薦單曲 <strong>Wave</strong>、單曲 <strong>Two Kites</strong>、1970 年的專輯 <strong>Stone Flower</strong> 給各位。網路上介紹得比較深入的，有<a href="https://www.chipinkaiyajazz.com/">啟彬與凱雅的爵士樂</a>，值得參考。期許自己之後介紹更多的巴西音樂。</p><details>    <summary>參考資料</summary>    [1] Wikipedia, "巴薩諾瓦", zh.wikipedia.org.<br>Available: <a href="https://zh.wikipedia.org/zh-tw/%E5%B7%B4%E8%96%A9%E8%AB%BE%E7%93%A6">https://zh.wikipedia.org/zh-tw/%E5%B7%B4%E8%96%A9%E8%AB%BE%E7%93<br>%A6</a><br><br>    [2] Wikipedia, "Race and ethnicity in Brazil," en.wikipedia.org.<br>Available: <a href="https://en.wikipedia.org/wiki/Race_and_ethnicity_in_Brazil">https://en.wikipedia.org/wiki/Race_and_ethnicity_in_Brazil</a><br><br>    [3] Dakota A Pippins, "BOSSA NOVA: 1955", The Jazz History Tree (website).<br>Available: <a href="https://www.jazzhistorytree.com/bossa-nova/">https://www.jazzhistorytree.com/bossa-nova/</a><br><br>    [4] James N. Green, Thomas E. Skidmore, <i>Brazil: Five Centuries of Change</i>, BROWN UNIVERSITY LIBRARY. Available: <a href="https://library.brown.edu/create/fivecenturiesofchange/">https://library.brown.edu/create/fivecenturiesofchange/</a><br><br>    [5] Jason Daley, "Bossa Nova Became a Turning Point in Brazilian Culture. João Gilberto Helped Launch It," Smithsonian Magazine. July 8, 2019.<br>Available: <a href="https://www.smithsonianmag.com/smart-news/remembering-bossa-nova-pioneer-joao-gilberto-180972578/">https://www.smithsonianmag.com/smart-news/remembering-bossa-nova-pioneer-joao-gilberto-180972578/</a><br><br>    [6] 謝啟彬, 張凱雅, "南美新浪潮席捲而來 - 談 Bossa Nova 樂風的形成(講堂講義大綱)", chipinkaiyajazz.com.<br>Available: <a href="https://www.chipinkaiyajazz.com/2016/03/bossa-nova.html">https://www.chipinkaiyajazz.com/2016/03/bossa-nova.html</a><br><br>    [7] 爵式生活誌, "Elis Regina - 日昇絢爛・日暮孤寂", kkbox.com. Nov. 14, 2017.<br>Available: <a href="https://www.kkbox.com/tw/en/column/features-0-2309-1.html">https://www.kkbox.com/tw/en/column/features-0-2309-1.html</a></details><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p><h2 id="代號-e04：其他評論"><a href="#代號-e04：其他評論" class="headerlink" title="代號 e04：其他評論"></a>代號 e04：其他評論</h2><details>    <summary>🍽 專欄簡介</summary>    <b>代號 e04</b> 即幹話，人人都能講幹話，但不是每個人都會把幹話放在個人網站上，或是發表在刊物上。<b>其他評論</b>關注那些<b>社會評論</b>不關注的議題，如美食、旅行、動漫、文學、環境、生活風格等等。</details><br><p>&emsp;&emsp;最近看完「來自深淵」動畫，真的是…<strong>斯巴拉希</strong>！網路上有很多評論，特別是針對彭多爾多 (Bondrewd aka <strong>黎明卿</strong>)的可怕行徑有大量的討論…我喜歡的一種看法是，他就是一個爭議性的人物，觀眾無須絞盡腦汁、試圖把他安放在某個道德上明確的位置──彷彿<span class="hint--info hint--rounded hint--top" data-hint="實際上這個角色之所以設計得這麼成功，難道不是因為我們在彭多爾多身上找到某些認同？" ontouchstart>彭多爾多就是我們的化身</span>，而我們必須弄清楚該如何自處──他可以作為一個永恆的刺激來源，促使我們反思人性，這就是他的功能。(總感覺好像把彭多爾多變成了彈藥包啊~)</p><br><p>&emsp;&emsp;所以我不談彭多爾多，我談第二季<strong>烈日的黃金鄉</strong>裡，絕界的慘劇終末(<a href="https://kaiwritesblog.com/%E6%88%90%E3%82%8A%E6%9E%9C%E3%81%A6%E3%82%8B-%E6%88%90%E3%82%8C%E6%9E%9C%E3%81%A6/">成れ果て</a>)之村，伊魯謬伊。<strong>補充一下，我只有看動畫，而且看得沒有很仔細，以下言論可能有幻覺的成分</strong>。當然也會有劇透的成分。</p><br><p>&emsp;&emsp;慘劇終末之村的出現，是回應島上的原住民少女伊魯謬伊的願望。化成神樹的伊魯謬伊，中空的軀幹像是子宮一樣，讓步入其中的探險隊成員得以續命──以「慘劇終末」的形式繼續存活。因此，從伊魯謬伊的各種思緒孕育出來的公主法普塔(ファプタ)，應該算是「慘劇終末」們的手足。法普塔的首要任務就是破壞村落 aka 母親伊魯謬伊的「子宮」，為什麼呢？或許法普塔是從那些痛苦、不安而躁動的意念之中誕生，所以一心想著斬斷母親受苦的根源？這讓我聯想到希臘神話裡，宙斯把父親克羅諾斯的肚子切開，以釋放他被吞噬的兄弟姐妹們。顯然，在這兩個故事裡，若是子宮&#x2F;肚子沒有被剖開、封閉的狀態沒有被打斷，故事就無法進行下去。</p><br><p>&emsp;&emsp;<strong>這不是廢話嗎</strong>？是廢話沒有錯。但是意義上，孕育著生命的子宮，只是生命的起點，而不是永恆的歸宿。瓦茲強視村落為黃金鄉，那裡確實也成為探險隊最後落腳的地方，但是如此延續的生命，究竟算是什麼？</p><br><p>&emsp;&emsp;我很喜歡的一部蠟筆小新電影版「<a href="https://ani.gamer.com.tw/animeVideo.php?sn=780">蠟筆小新：時空大冒險</a>」，電影裡小新一行人被困在一部未完成的西部電影，頭頂上那顆<strong>停止不動的太陽</strong>正是電影「<strong>未完成</strong>」的直接意象；當太陽開始轉動，主角們才順著集結力量、打敗反派的情節，結束了那部電影。「烈日」的黃金鄉又何嘗不是如此？我認為伊魯謬伊是人類對「永恆」的複雜心理的具象化，我們一方面憧憬永恆的生命，一方面又恐懼永恆所帶來的體驗，因為那將是超越認知的、我們難以想像的體驗。可是死亡不也是這麼一回事嗎？</p><br><p>&emsp;&emsp;這或許能解釋，為什麼村裡的慘劇終末們，最後能夠相對平靜的面對死亡：在伊魯謬伊村裡延續的生命，難道不是一種死亡的形式？脫離人類身分、踏入永恆的領域，在我們這些深淵之外的人眼裡，與死亡是等價的。其實，莉可等人的「絕界行」也是死亡的代稱，一旦抵達了就永遠無法回來…這樣一想，彭多爾多人性的那一面，就是與死亡&#x2F;大自然對抗到底的精神吧。(不對，說好不提他的。)</p><br><p>&emsp;&emsp;我也很欣賞伊魯謬伊村子裡，所有事物都有明確價值的這件事。為什麼要如此嚴格遵守「<strong>等價交換</strong>」的原則呢？我想，恐怕是因為伊魯謬伊作為一個封閉的系統，在沒有物質或能量進入的情況下，必須嚴格遵守物質與能量的守恆，才會有這樣的現象吧？像這樣描寫奇幻世界生態的細節，我足佮意。</p><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p><h2 id="Epilogue"><a href="#Epilogue" class="headerlink" title="Epilogue"></a>Epilogue</h2><p>&emsp;&emsp;以上就是 <strong>Fortnightly of the Foo Birds</strong> 創刊號的內容。專欄「代號 e04：社會評論」原本規劃要在創刊號刊出，但是力不從心(整理資料就要花很多時間了)，敬請期待下一期的刊登。</p><br><p>&emsp;&emsp;為什麼不在 FB、IG、X (twitter) 或是 Threads 發表文章？首先，在這些平台寫文章，呈現方式受限，就好像用宣紙來製作雜誌，很多特殊的紙面效果(燙金、浮雕、特殊的觸感等等)都不能用；再來，平台的內容審查多少會限制創作內容，這個大家都很清楚；最後，這些平台在臺灣被視為公共空間──看看新聞媒體如何引用政治人物的 FB 或 IG 言論就知道──因此言論可能造成他人傷害，甚至需要負法律責任。豎仔如我，還是不要在這些平台大放厥詞的好。</p><br><p>&emsp;&emsp;不過，也許真正的理由是，我想要在一個只屬於自己的世界揮灑。這對於社會溝通無所助益──雖然我認為 FB 和 Threads 的幫助也不大──但是至少有一個發表的出口。在還沒成為有能力的人之前，暫且好好利用這個出口，我是這麼想的。</p><p><a href="#%E7%9B%AE%E9%8C%84"><p align="right">☝回到目錄</p></a></p>]]>
    </content>
    <id>https://yc518suray.github.io/Foo-Birds-%E9%9B%99%E9%80%B1%E5%88%8A/fortnightly-issue1/</id>
    <link href="https://yc518suray.github.io/Foo-Birds-%E9%9B%99%E9%80%B1%E5%88%8A/fortnightly-issue1/"/>
    <published>2026-06-13T04:42:38.000Z</published>
    <summary>
      <![CDATA[<style>
    summary {
        cursor: pointer;
        padding: 5px;
    }
    details {
        border: 2px solid;
        border-radius: 5px;
        border-color: rgba(70, 211, 242, 0.05);
        padding: 5px;
        background-color: rgba(70, 211, 242, 0.1);
    }
</style>

<img src="https://drive.google.com/thumbnail?id=1Wn41Uuo_EBleDxWeLuAbHYfyKCI6MIhw&sz=s1024" width="480">
<br>

<p>&emsp;&emsp;有很多東西想寫，但是內容太零碎、主題分散且篇幅各有不同，所以就想到可以藉「週刊」的形式呈現。但是每週發刊的頻率太高，我覺得自己沒有這個能耐，所以改成雙週刊。</p>]]>
    </summary>
    <title>Foo Birds 雙週刊-No. 1 創刊號</title>
    <updated>2026-07-16T14:38:41.751Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="演算法" scheme="https://yc518suray.github.io/tags/%E6%BC%94%E7%AE%97%E6%B3%95/"/>
    <category term="OTFS" scheme="https://yc518suray.github.io/tags/OTFS/"/>
    <category term="網站設計" scheme="https://yc518suray.github.io/tags/%E7%B6%B2%E7%AB%99%E8%A8%AD%E8%A8%88/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;本文展示 OTFS 系統細胞間干擾 (inter-cell interference，ICI) 的情形，以及減緩 ICI 的方法。因為我不會寫 javascript，頁面上的互動式圖表都是由 Gemini 編寫、我再修改，使用到 p5.js library。</p><span id="more"></span><br><p>&emsp;&emsp;關於 OTFS 系統的細胞間干擾問題，可以參考我之前寫的<a href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-multicell-otfs/">這篇文章</a>，回顧過去 OFDM 系統是如何處理 ICI，OTFS 系統如何沿用 OFDM 系統的方法、面臨的挑戰等等。</p><h2 id="ICIC-for-OTFS-systems"><a href="#ICIC-for-OTFS-systems" class="headerlink" title="ICIC for OTFS systems"></a>ICIC for OTFS systems</h2><p>&emsp;&emsp;ICIC (ICI coordination) 在 4G 行動通訊系統就已經使用，後來又推出加強版的 eICIC。作為 3GPP 規格，eICIC 在過去也有不少研究：<a href="https://ieeexplore.ieee.org/document/6475212">Deb 這篇 2014 年的論文</a>提出一個基於 ABS (almost blank subframe)，有效配對 BS 與 UE 的最佳化演算法；<a href="https://ieeexplore.ieee.org/document/6585734">Vasudevan 這篇 2013 年的論文</a>則是從網路動態(e.g. 來來去去的使用者、資料流量)討論動態調整 ABS 的作法。傳統 ICIC 的部分，也有<a href="https://ieeexplore.ieee.org/document/8447574">Saleh 的這篇 2018 年會議論文</a>，討論實務上可以怎麼設計 frequency pattern set。</p><br><p>&emsp;&emsp;這一節就來看看 ICIC 如何配置頻帶。下面這張圖表呈現一個經典的 seven-cell model，每個細胞中央各有一個基地台，使用共同的 CCU 資源以及各自分配到的 CEU 資源 (fraction frequency reuse scheme，FFR，在 OTFS 系統的資源便是 delay-Doppler 空間的 resource block)，功率分別是 35 dB 和 40 dB。根據 Frii’s free space equation，</p><p>$$<br>P_r(d) &#x3D; \frac{P_t G_t G_r \lambda^2}{(4\pi d)^2}<br>$$</p><p>&emsp;&emsp;接收訊號的功率 $P_r(d)$ 會與距離 $d$ 的平方成反比。雖然不同的環境應選用合適的 path loss exponent，這裡還是假設 path loss exponent &#x3D; 2。這裡的作法是七個細胞分別擁有各自的 CEU RB，實務上一個 cluster 可能會在不同細胞分配相同的 CEU RB (soft frequency reuse，SFR)。</p><div style="text-align: center; margin: 20px 0;">    <div id="otfs-canvas-container" style="display: inline-block; border-radius: 8px; background: #000; padding: 15px;"></div></div><script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script><script>(function() {    let cells = [];     let uePosition;     let ueSize = 18;     let dragging = false;     let cellRadius = 60;     let ccuThresholdRatio = 0.5;     let delayResources = [];     let currentServCell = 0;    let isUEInCcu = true;    let canvasW = 600;    let canvasH = 400;    let leftPlotW = canvasW * 0.55;    let rightPlotW = canvasW * 0.4;    let margin = 40;    // 使用 p5 的 instance mode，避免跟 Hexo 網站其他可能的 JS 衝突    const s = (p) => {        p.setup = function() {            let cnv = p.createCanvas(canvasW, canvasH);            cnv.parent('otfs-canvas-container');            cells.push(p.createVector(leftPlotW / 2, canvasH / 2));             let angleOffset = p.PI / 6;             let distance = p.sqrt(3) * cellRadius;             for (let i = 0; i < 6; i++) {                let angle = angleOffset + (i * p.PI) / 3;                let x = leftPlotW / 2 + distance * p.cos(angle);                let y = canvasH / 2 + distance * p.sin(angle);                cells.push(p.createVector(x, y));            }            uePosition = cells[0].copy();            updateResourceAllocation();        };        p.draw = function() {            p.background('black');            drawCellPlot();            drawResourcePlot();            updateUEInteraction();        };        function drawCellPlot() {            p.push();            for (let i = 0; i < cells.length; i++) {                p.stroke(210);                p.strokeWeight(1);                if (i === currentServCell && !isUEInCcu) {                    p.fill('rgba(230, 126, 34, 0.75)');                }                else {                    p.fill(80);                }                drawHexagon(cells[i].x, cells[i].y, cellRadius);                                p.stroke(230);                p.strokeWeight(1);                p.drawingContext.setLineDash([4, 4]);                if (i === currentServCell && isUEInCcu) {                    p.fill('rgba(52, 152, 219, 0.75)');                }                else {                    p.fill(80);                }                drawHexagon(cells[i].x, cells[i].y, cellRadius * ccuThresholdRatio);                p.drawingContext.setLineDash([]);             }            for (let i = 0; i < cells.length; i++) {                p.noStroke();                p.fill("white");                p.textAlign(p.CENTER, p.CENTER);                p.textSize(13);                p.text("Cell " + i, cells[i].x, cells[i].y - 8);            }            p.stroke(255, 60, 60);            p.strokeWeight(dragging ? 3 : 1.5);            p.fill(dragging ? 'rgba(255,69,69,0.6)' : 'rgba(255,69,69,0.85)');            p.ellipse(uePosition.x, uePosition.y, ueSize);            p.pop();        }        function drawHexagon(x, y, r) {            p.beginShape();            for (let angle = 0; angle < p.TWO_PI - p.PI / 6; angle += p.PI / 3) {                let vx = x + p.cos(angle) * r;                let vy = y + p.sin(angle) * r;                p.vertex(vx, vy);            }            p.endShape(p.CLOSE);        }        function drawResourcePlot() {            p.push();            p.translate(leftPlotW + margin/2, margin);            let plotWidth = rightPlotW - margin;            let plotHeight = canvasH - margin * 2.5;            p.stroke(180);            p.strokeWeight(1.5);            p.line(0, plotHeight, plotWidth, plotHeight);             p.line(0, 0, 0, plotHeight);             p.noStroke();            p.fill("white");            p.textAlign(p.RIGHT, p.CENTER);            p.textSize(12);            p.text("Power", -8, plotHeight / 2);            p.text("40 dB", -8, 0);            p.text("-10 dB", -8, plotHeight);            p.textAlign(p.CENTER, p.TOP);            p.textSize(13);            p.fill("white");            p.text("Resource Block (delay)", plotWidth / 2, plotHeight + 35);            let barWidth = plotWidth / delayResources.length * 0.7;            let barSpacing = plotWidth / delayResources.length * 0.3;            let barX = barSpacing / 2;            for (let i = 0; i < delayResources.length; i++) {                let power = delayResources[i];                let barHeight = p.map(power, -10, 40, 0, plotHeight, true);                                if (i === 0 && isUEInCcu) {                    p.fill('rgba(52, 152, 219, 0.85)');                 }else if (i === currentServCell + 1 && !isUEInCcu) {                    p.fill('rgba(230, 126, 34, 0.85)')                }else {                    p.fill(80);                 }                                p.rect(barX, plotHeight - barHeight, barWidth, barHeight, 3);                p.fill("white");                p.textSize(10);                p.textAlign(p.CENTER, p.TOP);                let labelText = (i === 0) ? "CCU" : `CEU\nC${i-1}`;                p.text(labelText, barX + barWidth / 2, plotHeight + 8);                                if(power > -10) {                    p.fill("white");                    p.textSize(10);                    p.textAlign(p.CENTER, p.BOTTOM);                    p.text(power.toFixed(2), barX + barWidth / 2, plotHeight - barHeight - 3);                }                barX += barWidth + barSpacing;            }            p.pop();        }        function updateResourceAllocation() {            let powers = new Array(8).fill(0);             let distances = cells.map(center => p.dist(uePosition.x, uePosition.y, center.x, center.y));            let minDistance = Infinity;            let maxDistance = 5 * Math.log(cellRadius);            let servCellIndex = 0;            for(let i = 0; i < distances.length; i++) {                if (distances[i] < minDistance) {                    minDistance = distances[i];                    servCellIndex = i;                }            }            currentServCell = servCellIndex;            if (minDistance < cellRadius * ccuThresholdRatio) {                isUEInCcu = true;            } else {                isUEInCcu = false;            }            if (minDistance <= cellRadius) {                powers[0] = 35 - 10 * Math.log10(minDistance ** 2 + 1);                for (let i = 0; i < cells.length; i++) {                    powers[i + 1] = 40 - 10 * Math.log10(distances[i] ** 2 + 1);                }                delayResources = powers;            }        }        function updateUEInteraction() {            if (dragging) {                uePosition.x = p.constrain(p.mouseX, ueSize, leftPlotW - ueSize);                uePosition.y = p.constrain(p.mouseY, ueSize, canvasH - ueSize);                updateResourceAllocation();            }        }        p.mousePressed = function() {            let d = p.dist(p.mouseX, p.mouseY, uePosition.x, uePosition.y);            if (d < ueSize) {                dragging = true;            }        };        p.mouseReleased = function() {            dragging = false;        };    };    new p5(s);})();</script><h2 id="CoMP-for-OTFS-systems"><a href="#CoMP-for-OTFS-systems" class="headerlink" title="CoMP for OTFS systems"></a>CoMP for OTFS systems</h2><p>&emsp;&emsp;CoMP 也是 4G 系統就開始提出的技術。由於網路上有關 CoMP CB 的理論介紹並不多，以下內容參考自 2010 年發表的[1]這篇論文。</p><br><p>&emsp;&emsp;Coordinated beamforming (CB) 指的是鄰近細胞的基地台共同協調形成最佳的波束成形向量 (beamforming vector)。這篇論文考慮多細胞、多用戶的情景，每個細胞的基地台有多支天線，彼此共享通道資訊、但<span class="hint--info hint--rounded hint--top" data-hint="可以減少對 backhaul 傳輸速率與延遲的要求" ontouchstart>不共享傳輸的資料</span>，和一般常見的 MIMO transmit beamforming 不太一樣；每個用戶終端 (UE) 只有一支天線，接收來自所處細胞的基地台 downlink 訊號。</p><br><p>&emsp;&emsp;假設 $N$ 個細胞，每個細胞有 $K$ 個 UE，每個細胞有一個基地台，每個基地台有 $N_t$ 支天線。令 $x_{i, j}$ 表示細胞(基地台) $i$ 傳送給 UE $j$ 的訊號，$\bf{w_{i, j}}$ 為 $N_t$ by 1 的波束成型向量，$\bf{h_{l, i, j}}$ 表示細胞 $l$ 和 細胞 $i$ 的 UE $j$ 之間的通道。則細胞 $i$ 的 UE $j$ 接收到的訊號為</p><p>$$<br>y_{i, j} &#x3D; {\bf h_{i, i, j}}^H {\bf w_{i, j}} x_{i, j} + \textcolor{cyan}{ {\bf h_{i, i, j}}^H \sum_{l \neq j}{ {\bf w_{i, l}} x_{i, l} } } + \textcolor{tomato}{ \sum_{m \neq i}{ {\bf h_{m, i, j}}^H \sum_{n}{ {\bf w_{m, n}} x_{m, n} } } } + z_{i, j}<br>$$</p><p>&emsp;&emsp;可以拆成目標訊號、<font color="cyan">細胞內干擾</font>和<font color="tomato">細胞間干擾</font>共三項，$z_{i, j}$ 為 complex AWGN。據此可以算出細胞 $i$ 的 UE $j$ 接收訊號的 SINR $\Gamma_{i, j}$。這裡，我們定義<font color="tomato">目標函數</font>為每支天線的傳輸功率上限，<font color="tomato">限制條件</font>為各個 UE 接收訊號的 SINR，得到以下最佳化問題：</p><p>$$<br>\begin{align}<br>\text{minimize}\ \ &amp;\tau\\[10pt]<br>\text{subject to}\ \ &amp;\Gamma_{i, j} \geq \gamma_{i, j},\ \ \forall i, j\\[10pt]<br>&amp;\left[\sum_{j}{ {\bf w_{i, j}} {\bf w_{i, j}}^H }\right]_{m, m} \leq \tau,\ \ \forall i, m<br>\end{align}<br>$$</p><p>&emsp;&emsp;其中 $m &#x3D; 1, \cdots, N_t$。作者利用 uplink-downlink duality 的性質，推導出迭代計算最佳波束成型向量 $\bf{w_{i, j}}$ 的演算法。</p><br><p>&emsp;&emsp;下面的互動式圖表展示上述 CB 的效果，以 $N &#x3D; 3$、$K &#x3D; 1$、$N_t &#x3D; 1$ 的系統為例；在這個例子中，只需要一次計算就可以達到最佳解，無須迭代。事實上，$N_t &#x3D; 1$ 的情況與其說是 CB，更像是分散式功率控制的作法，畢竟只有一支天線。移動圖表中的 UE A，可以發現因為通道的改變，波束成型向量會調整到最佳值，確保各用戶的 SINR 達到一定值的同時(這裡 $\gamma_{i, j} &#x3D; 1.0$)，最小化各天線的傳輸功率上限。這邊為了呈現時變通道下，波束成型動態更新的效果，以弦波來模擬通道增益的波動。</p><br><p>&emsp;&emsp;由於迭代計算最佳 $\bf{w_{i, j}}$ 需要時間，我們不免疑問在 UE 快速移動的情況下，如 OTFS 系統，CB 是否仍然可行。考慮到 OTFS 系統與傳統 OFDM 系統有著相異的通道特徵，CB 計算量或許可以減少，也許可行。</p><div style="text-align: center; margin: 40px 0 20px;">    <div id="comp-canvas-container" style="display: inline-block; border-radius: 8px; background: #000; padding: 15px;"></div></div><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/14.8.1/math.min.js"></script><script>(function() {    // --- BS 與 UE 參數 --- //    let bss = [];    let ueA, ueB, ueC;    let ueSize = 18;    let dragA = false;    let bsRadius = 120;        // --- 畫布參數 --- //    let canvasW = 600;    let canvasH = 500;    let topPlotH = canvasH * 0.65;      // 上半部圖表高度    let bottomPlotH = canvasH * 0.35;   // 下半部圖表高度        // --- 演算法參數 --- //    let Niter = 200;                    // inner loop 迭代次數    let iterCount = 0;                  // inner loop 迭代計數    let calculate = true;               // 是否繼續迭代計算    let iterInterval = 50;              // 迭代間隔時間 (in ms)    let lastTime = 0;                   // 紀錄迭代間隔時間    let Theta = math.zeros(3, 1);       // 計算過程用到的矩陣    let lambda = [1.0, 1.0, 1.0];       // 計算過程用到的變數        // --- 通訊系統參數 --- //    let noise_power = 0.0001;           // 雜訊功率    let gamma = 1.0;                    // 最低 SINR 要求    let channel = math.zeros(3, 3);     // 通道矩陣 (path loss)    let fading = math.zeros(3, 3);      // 通道矩陣 (fading)    let fading_phase = math.zeros(3, 3);    let bfvec = { w1: math.complex(1, 0), w2: math.complex(1, 0), w3: math.complex(1, 0) };    let stats = { sinrA: 0.0, pwr1: 1.0, sinrB: 0.0, pwr2: 1.0, sinrC: 0.0, pwr3: 1.0 };    // ========== main function ========== //    const CoMPSketch = (p) => {        p.setup = function() {            let cnv = p.createCanvas(canvasW, canvasH);            cnv.parent('comp-canvas-container');            // --- 初始化 BS 位置 --- //            bss.push(p.createVector(canvasW * 0.25, topPlotH * 0.35));            bss.push(p.createVector(canvasW * 0.62, topPlotH * 0.35));            bss.push(p.createVector(canvasW * 0.5, topPlotH * 0.8));            // --- 初始化 UE 位置 --- //            ueA = p.createVector(canvasW * 0.36, topPlotH * 0.08);            ueB = p.createVector(canvasW * 0.6, topPlotH * 0.6);            ueC = p.createVector(canvasW * 0.33, topPlotH * 0.85);                     // --- 初始化通道參數 --- //            channel = math.map(channel, (x) => math.complex(x));            fading_phase = math.map(fading_phase, () => {                return Math.random() * 2 * p.PI;            })            fading = math.map(fading_phase, (val) => {                return 1 + 0.025 * math.cos(val);            });            updateChannel(true);                        p.colorMode(p.HSB, 360, 100, 100, 1); // 使用 HSB 方便用色調表示相位        };        p.draw = function() {            p.background("black");                        // --- 計算波束成型向量 --- //            if (p.millis() - lastTime >= iterInterval) {                calculateBeamforming();                // --- 達到指定迭代次數，不再計算 --- //                if (iterCount === Niter) {                    calculate = false;                }            }            // --- 繪製上半部圖表 (BS、UE 與波束) --- //            drawMap();                        // --- 繪製下半部圖表 (長條圖) --- //            drawStats();                        // --- 更新 UE A 位置 --- //            if (dragA) {                calculate = false;                let d = p.dist(p.mouseX, p.mouseY, bss[0].x, bss[0].y);                if (d > bsRadius) {                    let angle = p.atan2(p.mouseY - bss[0].y, p.mouseX - bss[0].x);                    ueA.x = bss[0].x + bsRadius * p.cos(angle);                    ueA.y = bss[0].y + bsRadius * p.sin(angle);                }                else {                    ueA.x = p.mouseX;                    ueA.y = p.mouseY;                }            }        };        // --- 波束成型機制 --- //        function calculateBeamforming() {            // --- 檢查是否繼續迭代演算法 --- //            if (calculate) {                // --- 更新通道 --- //                updateChannel(false);                                // --- 初始化 lambda 和 Theta --- //                if (iterCount === 0) {                    Theta = math.zeros(Theta.size());                }                // --- 計算 Theta 矩陣 --- //                let Lambda = math.diag(lambda);                Theta = math.diag(math.multiply(math.ctranspose(channel), Lambda, channel));                Theta = math.add(1, Theta);                                // --- 根據 Theta 矩陣，計算 lambda --- //                let Channel = math.diag(math.matrix(math.diag(channel)));                let invTheta = math.inv(math.diag(math.matrix(Theta)));                let temp = math.multiply(math.ctranspose(Channel), invTheta, Channel);                lambda = math.dotDivide(gamma / (1 + gamma), math.re(math.diag(temp)));                // --- 計算 uplink beamforming vector --- //                let coef_mtx  = math.dotDivide(math.multiply(1 / noise_power, math.diag(channel)), Theta);                let coef_array = coef_mtx.valueOf();                let c1 = math.complex(coef_array[0]);                let c2 = math.complex(coef_array[1]);                let c3 = math.complex(coef_array[2]);                                bfvec.w1.re = c1.re;                bfvec.w1.im = c1.im;                bfvec.w2.re = c2.re;                bfvec.w2.im = c2.im;                bfvec.w3.re = c3.re;                bfvec.w3.im = c3.im;;                // --- 計算 delta --- //                let F = math.zeros(3, 3);                calculateColumn(F, bfvec.w1, 0);                calculateColumn(F, bfvec.w2, 1);                calculateColumn(F, bfvec.w3, 2);                let delta_matrix = math.multiply(noise_power, math.inv(F), math.ones(3, 1));                let delta = math.squeeze(delta_matrix).valueOf();                if (delta[0] < 0 || delta[1] < 0 || delta[2] < 0) {                    console.error("🚀 演算法失效警告：計算出負功率！");                    console.error("原因：目前的目標 SINR (gamma) 在這個通道環境下是「無解」的。");                    console.error("解法：請調低目標 SINR，或確保通道矩陣的主對角線數值遠大於非對角線。");                }                // --- 計算 downlink beamforming vector --- //                let scale = math.sqrt(delta[0]);                bfvec.w1.re = bfvec.w1.re * scale;                bfvec.w1.im = bfvec.w1.im * scale;                scale = math.sqrt(delta[1]);                bfvec.w2.re = bfvec.w2.re * scale;                bfvec.w2.im = bfvec.w2.im * scale;                scale = math.sqrt(delta[2]);                bfvec.w3.re = bfvec.w3.re * scale;                bfvec.w3.im = bfvec.w3.im * scale;                // --- 更新 SINR 和天線功率 --- //                stats.sinrA = calculateSINR(bfvec.w1, 0);                stats.sinrB = calculateSINR(bfvec.w2, 1);                stats.sinrC = calculateSINR(bfvec.w3, 2);                stats.pwr1 = bfvec.w1.re ** 2 + bfvec.w1.im ** 2;                stats.pwr2 = bfvec.w2.re ** 2 + bfvec.w2.im ** 2;                stats.pwr3 = bfvec.w3.re ** 2 + bfvec.w3.im ** 2;                // --- 更新迭代資訊 --- //                iterCount = iterCount + 1;                lastTime = p.millis();                fading_phase = math.map(fading_phase, (val) => {                    return val + 0.03 * p.PI;                })                fading = math.map(fading_phase, (val) => {                    return 1 + 0.025 * math.cos(val);                });            }        }        function calculateColumn(F, w, idx) {            let w_complex = math.complex(w.re, w.im);            for (let i = 0; i < 3; i++) {                let h = channel.get([i, idx]);                let x = math.abs(math.multiply(math.conj(w_complex), h));                if (i === idx) {                    F.set([i, idx], (1 / gamma) * x ** 2);                }                else {                    F.set([i, idx], (-1) * x ** 2);                }            }        }        function calculateSINR(w, idx) {            // --- 固定目的地的通道 --- //            let h1 = channel.get([idx, 0]);            let h2 = channel.get([idx, 1]);            let h3 = channel.get([idx, 2]);            // --- 固定來源和目的地的功率成分 --- //            let x1 = math.abs(math.multiply(math.conj(bfvec.w1), h1)) ** 2;            let x2 = math.abs(math.multiply(math.conj(bfvec.w2), h2)) ** 2;            let x3 = math.abs(math.multiply(math.conj(bfvec.w3), h3)) ** 2;            // --- 區分功率成分 --- //            let num = (w === bfvec.w1)? x1: (w === bfvec.w2)? x2: x3;            let den = x1 + x2 + x3 - num + noise_power;            return num / den;        }        // --- 更新通道參數 --- //        function updateChannel(firstTime) {            if (firstTime) {                // --- to UE B --- //                calculateChannel(channel, 1, 0, ueB, bss[0]);                calculateChannel(channel, 1, 1, ueB, bss[1]);                calculateChannel(channel, 1, 2, ueB, bss[2]);                                // --- to UE C --- //                calculateChannel(channel, 2, 0, ueC, bss[0]);                calculateChannel(channel, 2, 1, ueC, bss[1]);                calculateChannel(channel, 2, 2, ueC, bss[2]);            }            // --- to UE A --- //            calculateChannel(channel, 0, 0, ueA, bss[0]);            calculateChannel(channel, 0, 1, ueA, bss[1]);            calculateChannel(channel, 0, 2, ueA, bss[2]);        }        function calculateChannel(ch, idx1, idx2, ue, bs) {            let c = math.complex(0, 0);            let d = p.dist(ue.x, ue.y, bs.x, bs.y);                        // --- path loss --- //            c.re = (ue.x - bs.x) / (d ** 2.05);            c.im = (ue.y - bs.y) / (d ** 2.05);                     // --- fading --- //            let fade = fading.get([idx1, idx2]);            c = math.multiply(c, fade);            // --- main diagonal --- //            if (idx1 === idx2) {                c = math.multiply(c, 1.075);            }            ch.set([idx1, idx2], c);        }        // --- 繪製上半部圖表 --- //        function drawMap() {            p.push();                        // --- 繪製細胞範圍 --- //            for (let i = 0; i < bss.length; i++) {                p.stroke("white");                p.strokeWeight(2);                p.drawingContext.setLineDash([5, 5]);                p.fill('rgba(90, 100, 92, 0.5)');                p.ellipse(bss[i].x, bss[i].y, bsRadius * 2);            }            p.drawingContext.setLineDash([]); // 結束虛線狀態                        // --- 繪製波束 --- //            // --- from BS 1 --- //            let phase1 = p.atan2(bfvec.w1.re, bfvec.w1.im);            drawBeam(bss[0], ueA, phase1, stats.pwr1, false);            drawBeam(bss[0], ueB, phase1, stats.pwr1, true);            drawBeam(bss[0], ueC, phase1, stats.pwr1, true);            // --- from BS 2 --- //            let phase2 = p.atan2(bfvec.w2.re, bfvec.w2.im);            drawBeam(bss[1], ueA, phase2, stats.pwr2, true);            drawBeam(bss[1], ueB, phase2, stats.pwr2, false);            drawBeam(bss[1], ueC, phase2, stats.pwr2, true);                        // --- from BS 3 --- //            let phase3 = p.atan2(bfvec.w3.re, bfvec.w3.im);            drawBeam(bss[2], ueA, phase3, stats.pwr3, true);            drawBeam(bss[2], ueB, phase3, stats.pwr3, true);            drawBeam(bss[2], ueC, phase3, stats.pwr3, false);                        // --- 繪製 BS --- //            for (let i = 0; i < bss.length; i++) {                p.stroke("cyan");                p.strokeWeight(2);                p.fill("blue");                p.triangle(bss[i].x, bss[i].y - 12, bss[i].x - 10,                           bss[i].y + 8, bss[i].x + 10, bss[i].y + 8);                p.noStroke();                p.fill("white");                p.textSize(14);                p.textAlign(p.CENTER, p.TOP);                p.text("BS " + (i+1), bss[i].x, bss[i].y + 12);            }            // --- 繪製 UE --- //            drawUE(ueA, "UE A (移動)");            drawUE(ueB, "UE B (固定)");            drawUE(ueC, "UE C (固定)");            p.pop();        }        function drawUE(ue, text) {            p.stroke("orange");            if (ue === ueA) {                p.strokeWeight(dragA ? 3 : 1.5);            }            else {                p.strokeWeight(1.5);            }            p.fill(0, 75, 90);            p.ellipse(ue.x, ue.y, ueSize);            p.noStroke();            p.fill("white");            p.textSize(14);            p.text(text, ue.x, ue.y - 20);        }        function drawBeam(from, to, phase, intensity, interference) {            p.push();            p.translate(from.x, from.y);            let rotate_angle = p.atan2(to.y - from.y, to.x - from.x);            p.rotate(rotate_angle);                        let d = p.dist(from.x, from.y, to.x, to.y);                        // --- 透明度隨強度變動 --- //            p.noStroke();            let hue = phase * 180.0 / p.PI + 180.0;            let alphaVal = p.map(intensity, 3.5, 15.0, 0.3, 1.0, true);            alphaVal = (interference)? 0.3 * alphaVal: alphaVal;            p.fill(hue, 80, 100, alphaVal);            // --- 使用貝茲曲線畫出波束形狀 --- //            p.beginShape();            p.vertex(0, 0);            p.bezierVertex(d * 0.3, -d * 0.22, d * 0.8, -d * 0.12, d, 0);            p.bezierVertex(d * 0.8, d * 0.12, d * 0.3, d * 0.22, 0, 0);            p.endShape(p.CLOSE);            p.pop();        }        // --- 繪製下半部圖表 --- //        function drawStats() {            p.push();            let chartY = topPlotH + 30;            let chartH = bottomPlotH - 90;            let barW = 30;                        // --- 軸線 --- //            p.stroke(0, 0, 60);            p.strokeWeight(1.5);            p.line(60, chartY + chartH, canvasW - 60, chartY + chartH);            // --- UE A 長條圖組 --- //            let startXA = canvasW * 0.2;            drawBarSet(startXA, chartY, chartH, barW, stats.sinrA, stats.pwr1,                       "BS1\nant. pwr", "BS1 & UE A");                        // --- UE B 長條圖組 --- //            let startXB = canvasW * 0.45;            drawBarSet(startXB, chartY, chartH, barW, stats.sinrB, stats.pwr2,                       "BS2\nant. pwr", "BS2 & UE B");                        // --- UE C 長條圖組 --- //            let startXC = canvasW * 0.7;            drawBarSet(startXC, chartY, chartH, barW, stats.sinrC, stats.pwr3,                       "BS3\nant. pwr", "BS3 & UE C");                    // --- 迭代計數碼表 --- //            p.noStroke();            p.fill("white");            p.textSize(16);            p.textAlign(p.CENTER);            p.text(`time: ${iterCount}`, startXC + 140, chartY + 16);                        p.pop();        }        function drawBarSet(startX, chartY, chartH, barW, v1, v2, text1, text2) {            drawBar(startX, chartY, chartH, barW, v1, 210, "SINR");            drawBar(startX + barW + 10, chartY, chartH, barW, v2, 0, text1);                        p.noStroke();            p.fill("yellow");            p.textSize(15);            p.textAlign(p.CENTER);            p.text(text2, startX + 35, chartY + chartH + 40);        }        function drawBar(x, y, maxH, w, value, hueVal, label) {            let h = (label === "SINR")? p.map(value, 0, 5.0, 0, maxH, true):                                        p.map(value, 0, 25.0, 0, maxH, true);            p.noStroke();            p.fill(hueVal, hueVal === 0 ? 80 : 75, 85, 0.9);            p.rect(x, y + maxH - h, w, h, 4);                        // --- 數值 --- //            p.fill("white");            p.textSize(14);            p.textAlign(p.CENTER, p.BOTTOM);            p.text(value.toFixed(2), x + w/2, y + maxH - h - 3);                        // --- 標籤 --- //            p.fill("white");            p.textAlign(p.CENTER, p.TOP);            p.textSize(12);            p.text(label, x + w/2, y + maxH + 6);        }        p.mousePressed = function() {            // --- 確認游標是否點到 UE A --- //            let d = p.dist(p.mouseX, p.mouseY, ueA.x, ueA.y);            if (d < ueSize) {                dragA = true;                                // --- 取消先前的迭代計算 --- //                calculate = false;                iterCount = 0;            }        };        p.mouseReleased = function() {            dragA = false;            if (!calculate && iterCount === 0) {                calculate = true;            }        };    };    new p5(CoMPSketch);})();</script><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;<a href="https://p5js.org/">p5.js</a> 真的是相當強大的網頁繪圖工具呢！雖然本文的 code 還是要歸功於 Gemini Pro。事實上，Gemini Pro 已經提供在對話裡直接呈現互動式圖表的功能；可以稍微理解網頁前端工程師所面臨的困境。</p><br><p>&emsp;&emsp;本文視覺化呈現 OFDM 系統已有使用的 ICIC 和 CoMP CB 技術，這些技術也可以用於 OTFS 系統，只不過資源的劃分要從時頻空間改為 delay-Doppler 空間。日常生活中，車聯網可能是 OTFS 系統最關注的應用之一，考量到臺灣都會區車輛和基地台密度極高，這些抗干擾技術應該有不少發揮空間。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] H. Dahrouj and W. Yu, “Coordinated beamforming for the multicell multi-antenna wireless system,” in <em>IEEE Transactions on Wireless Communications</em>, vol. 9, no. 5, pp. 1748-1759, May 2010, doi: 10.1109&#x2F;TWC.2010.05.090936.</p><p>[2] D. Lee et al., “Coordinated multipoint transmission and reception in LTE-advanced: deployment scenarios and operational challenges,” in <em>IEEE Communications Magazine</em>, vol. 50, no. 2, pp. 148-155, February 2012, doi: 10.1109&#x2F;MCOM.2012.6146494.</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OTFS-inter-cell-interference/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OTFS-inter-cell-interference/"/>
    <published>2026-05-27T02:38:18.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;本文展示 OTFS 系統細胞間干擾 (inter-cell interference，ICI) 的情形，以及減緩 ICI 的方法。因為我不會寫 javascript，頁面上的互動式圖表都是由 Gemini 編寫、我再修改，使用到 p5.js library。</p>]]>
    </summary>
    <title>OTFS ICI 視覺化展示</title>
    <updated>2026-06-08T12:06:34.241Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="OTFS" scheme="https://yc518suray.github.io/tags/OTFS/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;今天分享的是一篇 IEEE 車載科技雜誌 (Vehicular Technology Magazine) 的文章，講述 multicell OTFS 系統的細胞間干擾 (inter-cell interference，ICI) 及應對之道。</p><br><img src="https://drive.google.com/thumbnail?id=1e_T2q2w0TS986xjrMRXxgF3-QquZpchc&sz=s1024" width="400"><center><font color="cyan">傍晚的大學城一景，融合現實與魔幻(?)</font></center><span id="more"></span><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>Z. Zhang, Y. Wu, X. Lei, L. Lei and Z. Wei, “Toward 6G Multicell Orthogonal Time Frequency Space Systems: Interference Coordination and Cooperative Communications,” in <em>IEEE Vehicular Technology Magazine</em>, vol. 19, no. 1, pp. 55-64, March 2024, doi: 10.1109&#x2F;MVT.2023.3345609.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;&emsp;高速移動(e.g. 時速 100 公里)的應用情境是 6G 行動通訊的主要關注之一，如車聯網、無人機等等，在這些情境下 OFDM 的通道估測變得困難，OTFS 因此受到矚目。在 OTFS 多細胞行動通訊中，位於細胞邊緣的使用者 (cell-edge users，簡稱 CEU) 受到的干擾嚴重、SINR 較低，對於 ubiquitous communications 而言是必須正視的問題。為了對抗 ICI，5G 系統採用以下三種方法：</p><ul><li>ICI coordination (ICIC)</li><li>Coordinated multipoint (CoMP)</li><li>Integrated access and backhaul (IAB)</li></ul><p>&emsp;&emsp;前兩者在 4G 引進，IAB 則是 5G 引進。下面分別簡單介紹。</p><h3 id="ICIC"><a href="#ICIC" class="headerlink" title="ICIC"></a>ICIC</h3><p>&emsp;&emsp;參考介紹通訊協定的知名部落格<a href="https://note-on-clouds.blogspot.com/"> Castle on a Cloud </a>的文章[1]。ICIC 最早在 3GPP Release 8 就提出，為了解決細胞間干擾的問題：UE 位於兩相鄰細胞之間的邊界，其中一個細胞的訊號會形成干擾，或是 UE 位於一個 pico cell 的服務範圍，此時 macro cell 的訊號就會形成干擾。</p><br><p>&emsp;&emsp;ICIC 使基地台 (eNB，for evolved Node B) 透過 X2 介面來協調服務基地台使用哪一個通道(e.g. 頻帶)來傳送訊號。加強版的 eICIC 增加了 ABS (Almost Blank Frame) 的功能，small cell 可以在 macro cell 傳送 ABS 的時候，收發訊號給 UE。更詳細的內容可以參考[2]。</p><h3 id="CoMP"><a href="#CoMP" class="headerlink" title="CoMP"></a>CoMP</h3><p>&emsp;&emsp;參考通訊協定大神<a href="https://www.sharetechnote.com/index.html"> ShareTechnote </a>的筆記[3][4]。CoMP 自 4G 引進，沿用至 5G NR，最初的目的是增加細胞邊緣的吞吐量 (throughput)。CoMP 的使用情境為數個 macro cells 之間，或是單一 macro cell 和數個 RRH (Remote <a href="https://www.youtube.com/watch?v=u5CVsCnxyXg&pp=ygUKcmFkaW8gaGVhZA==">Radio Head</a>) 之間的協調，可以是同質網路或是異質網路(不同機器種類、功率等級)。CoMP 的功能如下(以下行為例)：</p><ul><li><p><strong>CS</strong> (coordinated scheduling)<br>一個 UE 的資料只會由一個傳送站點 (TP，transmission point) 發送，TP 和 UE 的配對、傳送的時槽分配等等，由中央的基地台決定 (CSI known)。</p></li><li><p><strong>CB</strong> (coordinated beamforming)<br>每個 TP 的傳送波束由中央的基地台最佳化，以便增加各個 UE 的 SINR。</p></li><li><p><strong>JT</strong> (joint transmission)<br>每個 TP 傳送相同資料給單一 UE，透過波束成型來最大化 SINR。</p></li><li><p><strong>TPS</strong> (transmission point selection)<br>每個時槽選定一個 TP 傳送資料給指定 UE，和 CS 有點像，但是 CS 是以 cluster 為單位分配。</p></li></ul><p>&emsp;&emsp;因 5G NR 對低延遲、毫米波覆蓋率的要求，CoMP 成為更關鍵的技術。只不過 CoMP 也是有缺點，它需要高速低延遲的 backhaul 線路來調度各個 TP，波束成型、排程的計算量也很大，並且對於訊號同步的要求很高(波束成型的基礎)。</p><h3 id="IAB"><a href="#IAB" class="headerlink" title="IAB"></a>IAB</h3><p>&emsp;&emsp;參考 Castle on a Cloud 和 ERICSSON 的文章[5][6]。由於毫米波的覆蓋範圍較小，5G 需要密集的部署基站，因此也需要相對密集的 backhaul 線路。IAB 以毫米波作為無線 backhaul 的途徑，可以是附加的功能 (IAB-MT) 或是和接取網路共用天線和硬體，如圖A。IAB 以提高訊號強度的方式來增加 SINR，和另外兩種方法的核心概念不同。</p><br><img src="https://www.ericsson.com/cdn-cgi/image/format=auto,fit=scale-down,width=1200/49d0ee/assets/global/qbank/2020/06/12/etr-2020-07-figure01-119301d41d8cd98f00b204e9800998ecf8427e.png" width="500"><center><font color="cyan">圖A，IAB 的基本概念。圖片來源：ericsson.com，</font><a href="https://www.ericsson.com/en/reports-and-papers/ericsson-technology-review/articles/introducing-integrated-access-and-backhaul"><font color="cyan">連結</font></a></center><h3 id="Downlink-OTFS-ICI"><a href="#Downlink-OTFS-ICI" class="headerlink" title="Downlink OTFS ICI"></a>Downlink OTFS ICI</h3><p>&emsp;&emsp;回到 OTFS 系統的 ICI，其實和 OFDM 系統受到的干擾來源是相同的，但是訊號受影響的形態則不太一樣；關鍵在於 OTFS 是在 DD domain 規劃無線電資源。舉例來說，假設有某個 jamming 訊號出現在某頻帶內，對於 OFDM 系統而言，受干擾的是與 jamming 訊號頻譜重疊的子載波；但是對於 OTFS 系統而言，卻是整個 DD domain 都會被蓋到。</p><h4 id="ICIC-for-multicell-OTFS"><a href="#ICIC-for-multicell-OTFS" class="headerlink" title="ICIC for multicell OTFS"></a>ICIC for multicell OTFS</h4><p>&emsp;&emsp;ICIC 有兩種作法，FFR (fraction frequency reuse) 或 SFR (soft frequency reuse)。<strong>FFR</strong> 將頻帶分為細胞中央使用的頻帶，以及細胞邊緣 CEUs 使用的頻帶，每個 CEU 實際佔用的頻帶則是依據 reuse factor 再劃分的子頻帶，因此 CEU 彼此之間就不會互相干擾。</p><br><p>&emsp;&emsp;FFR 頻帶使用效率不佳，因為細胞中央的使用者分配到的頻帶減少。<strong>SFR</strong> 放寬限制，讓細胞中央的用戶也可以使用其他細胞 CEU 分配到的頻帶，只是必須降低功率。</p><br><p>&emsp;&emsp;上述是 OFDM 系統的作法，OTFS 系統大同小異，就是把頻率資源換成 delay-Doppler 資源。圖B呈現一個 seven-cell 的系統，<span class="hint--info hint--rounded hint--top" data-hint="根據論文，這是為了增加 Doppler 的點數，有助於通道估測" ontouchstart>沿著 delay 軸劃分資源</span>。</p><br><img src="https://drive.google.com/thumbnail?id=1u858AfZv-JEH5Dajj6Fy-T0KBf0kQTy4&sz=s1024" width="450"><center><font color="cyan">圖B，OTFS 系統的 ICIC示意圖。圖片來源：論文 Figure 4。</font></center><h4 id="CoMP-for-multicell-OTFS"><a href="#CoMP-for-multicell-OTFS" class="headerlink" title="CoMP for multicell OTFS"></a>CoMP for multicell OTFS</h4><p>&emsp;&emsp;在 UE 快速移動的情境下，不管是波束成型 (CB) 還是基地台排程 (CS) 都面臨挑戰。不過基本上作法和 OFDM 系統是一樣的。</p><h4 id="IAB-for-multicell-OTFS"><a href="#IAB-for-multicell-OTFS" class="headerlink" title="IAB for multicell OTFS"></a>IAB for multicell OTFS</h4><p>&emsp;&emsp;OTFS 系統中的 IAB node 可以分為移動式節點或固定式節點，前者和基地台之間有相對移動，後者則是和用戶有相對移動。大致上和 OFDM 系統是一樣的。</p><h4 id="效能比較"><a href="#效能比較" class="headerlink" title="效能比較"></a>效能比較</h4><p>&emsp;&emsp;論文模擬 seven-cell 的 OTFS 系統，通道假設為 3GPP EVA model 及 perfect CSI，採用 ICIC 和 CoMP。模擬結果顯示 <strong>CoMP CB</strong> 的效果優於其他方法，<strong>random beamforming</strong> 次之。(關於 random beamforming 之後會寫一篇文章給大家講解。)</p><br><p>&emsp;&emsp;至於 IAB-based 的 multicell OTFS 系統，IAB node 和基地台的距離會影響 BER，通道的路徑衰減也是重要因素。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;本文介紹的技術都是在前幾世代行動通訊就被提出、甚至納入 3GPP spec，但是 4G 和 5G 採用的波型皆為 OFDM，這些技術未必能直接套用到新的波型，如 OTFS。這篇論文討論 OTFS 系統的細胞間干擾，指出其與 OFDM 系統的細胞間干擾相異之處，並且以模擬檢驗現有方法的效果。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] 柯俊先, “LTE筆記: Inter-cell Interference Coordination (ICIC) 以及其延伸 (eICIC, FeICIC)”, note-on-clouds.blogspot.com. Available: <a href="https://note-on-clouds.blogspot.com/2020/05/lte-inter-cell-interference.html">https://note-on-clouds.blogspot.com/2020/05/lte-inter-cell-interference.html</a></p><p>[2] ShareTechnote, “ICIC(Inter-Cell Interference Coordination)”, sharetechnote.com. Available: <a href="https://www.sharetechnote.com/html/Handbook_LTE_ICIC.html">https://www.sharetechnote.com/html/Handbook_LTE_ICIC.html</a></p><p>[3] ShareTechnote, “CoMP (Coordinate MultiPoint)”, sharetechnote.com.<br>Available: <a href="https://www.sharetechnote.com/html/5G/5G_CoMP.html">https://www.sharetechnote.com/html/5G/5G_CoMP.html</a></p><p>[4] ShareTechnote, “CoMP”, sharetechnote.com.<br>Available: <a href="https://www.sharetechnote.com/html/LTE_Advanced_CoMP.html">https://www.sharetechnote.com/html/LTE_Advanced_CoMP.html</a></p><p>[5] 柯俊先, “LTE筆記: 3GPP Integrated Access and Backhaul”, note-on-clouds.blogspot.com. Available: <a href="https://note-on-clouds.blogspot.com/2024/01/lte-3gpp-iab.html">https://note-on-clouds.blogspot.com/2024/01/lte-3gpp-iab.html</a></p><p>[6] Henrik Ronkainen, Jonas Edstam, Anders Ericsson, Christer Östberg, “Integrated access and backhaul – a new type of wireless backhaul in 5G”, Ericsson Technology Review. Available: <a href="https://www.ericsson.com/en/reports-and-papers/ericsson-technology-review/articles/introducing-integrated-access-and-backhaul">https://www.ericsson.com/en/reports-and-papers/ericsson-technology-review/articles/introducing-integrated-access-and-backhaul</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-multicell-otfs/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-multicell-otfs/"/>
    <published>2026-05-13T09:56:54.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;今天分享的是一篇 IEEE 車載科技雜誌 (Vehicular Technology Magazine) 的文章，講述 multicell OTFS 系統的細胞間干擾 (inter-cell interference，ICI) 及應對之道。</p>
<br>
<img src="https://drive.google.com/thumbnail?id=1e_T2q2w0TS986xjrMRXxgF3-QquZpchc&sz=s1024" width="400"><center><font color="cyan">傍晚的大學城一景，融合現實與魔幻(?)</font></center>]]>
    </summary>
    <title>論文閱讀：Multicell OTFS 系統</title>
    <updated>2026-05-19T16:28:14.207Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="OFDM" scheme="https://yc518suray.github.io/tags/OFDM/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="MATLAB" scheme="https://yc518suray.github.io/tags/MATLAB/"/>
    <category term="OTFS" scheme="https://yc518suray.github.io/tags/OTFS/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;好久沒有更新文章了。其實就在寫這篇的當下，還有十幾份草稿未完成，看來我的拖延症還在發威。這篇文章來介紹一個視覺化星座圖的方法，也可以用來理解通道對傳送符號的影響。</p><span id="more"></span><br><p>&emsp;&emsp;這個視覺化的概念是這樣的：把星座圖上各個星座點(複數)分為兩個組成成分：振幅 (magnitude) 和相位 (phase)，將<font color="yellow">振幅</font>對應到 HSV 色彩表示法中的<font color="yellow">飽和度 S</font> (saturation，又稱作彩度)，<font color="yellow">相位</font>對應到 HSV 當中的<font color="yellow">色相 H</font> (hue)，想法還蠻直覺的，振幅越小代表能量越小，應該以較淺的顏色表示，反之亦然。</p><br><p>&emsp;&emsp;詢問 Gemini 才知道，在複變分析也有相似的視覺化工具，稱作 <a href="https://complex-analysis.com/content/domain_coloring.html">Domain Coloring</a>，用來呈現複數函數各點的振幅與相位。不過好像還沒有人應用在星座圖的視覺化。(可能是因為視覺化這個東西沒什麼用吧，演算法跑一跑就解決的事。)</p><h2 id="程式碼"><a href="#程式碼" class="headerlink" title="程式碼"></a>程式碼</h2><p>&emsp;&emsp;程式以 MATLAB 編寫，可以從 <a href="https://github.com/yc518suray/Colored-Constellation.git">Github</a> 下載使用。最重要的部分為函式 <code>mat2rgb</code>：</p><figure class="highlight matlab"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">rgb</span> = <span class="title">mat2rgb</span><span class="params">(X)</span></span></span><br><span class="line">    <span class="comment">% convert matrix X to rgb matrix</span></span><br><span class="line"></span><br><span class="line">    <span class="keyword">persistent</span> MAX_SATURATION;</span><br><span class="line">    <span class="keyword">if</span> <span class="built_in">isempty</span>(MAX_SATURATION)</span><br><span class="line">        MAX_SATURATION = <span class="number">0</span>;</span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line">    </span><br><span class="line">    h = (<span class="built_in">angle</span>(X) + <span class="built_in">pi</span>) / (<span class="number">2</span> * <span class="built_in">pi</span>); <span class="comment">% hue (color)</span></span><br><span class="line">    s = <span class="built_in">abs</span>(X);</span><br><span class="line">    <span class="keyword">if</span> MAX_SATURATION == <span class="number">0</span></span><br><span class="line">        MAX_SATURATION = <span class="built_in">max</span>(s(:));</span><br><span class="line">    <span class="keyword">end</span></span><br><span class="line">    s = s / MAX_SATURATION; <span class="comment">% saturation (grayness)</span></span><br><span class="line">    v = <span class="built_in">ones</span>(<span class="built_in">size</span>(X)); <span class="comment">% value (brightness)</span></span><br><span class="line">    </span><br><span class="line">    rgb = <span class="built_in">hsv2rgb</span>(<span class="built_in">cat</span>(<span class="number">3</span>, h, s, v));</span><br><span class="line"><span class="keyword">end</span></span><br></pre></td></tr></table></figure><p>&emsp;&emsp;其中 persistent 變數 <code>MAX_SATURATION</code> 可以確保單次執行產生的每一張圖，振幅對應到的彩度都是相同的。</p><h2 id="Demo"><a href="#Demo" class="headerlink" title="Demo"></a>Demo</h2><p>&emsp;&emsp;來展示一下視覺化的效果。下面是 64-QAM 的星座圖上色版本。</p><br><img src="https://drive.google.com/thumbnail?id=1wU3rK8bKEJvOgk3hqOOKyqdgllposVSE&sz=s1024" width="400"><center><font color="cyan">視覺化 64-QAM 星座圖。</font></center><br><p>&emsp;&emsp;基於這個色彩對應，下面三張圖是某個 32 X 32 的調變符號矩陣在 DD domain、DT domain 以及 TF domain 的樣子(符號在 DD domain 調變)。可以觀察到能量被不均勻的散佈在時頻空間的情況。</p><br><img src="https://drive.google.com/thumbnail?id=1SvlyRGEHHsGR0OY1-vkdCnPRaAPkh9k2&sz=s1024" width="400"><center><font color="cyan">視覺化 DD domain 矩陣，橫軸為 Doppler。</font></center><br><img src="https://drive.google.com/thumbnail?id=1H6c9PZBM4fQMtYAPip41xv_DzX2ESvL4&sz=s1024" width="400"><center><font color="cyan">視覺化 DT domain 矩陣，橫軸為時間。</font></center><br><img src="https://drive.google.com/thumbnail?id=1UF7-InYm21pXQEMbXmccHQnkJBbPlt-n&sz=s1024" width="400"><center><font color="cyan">視覺化 TF domain 矩陣，橫軸為時間。</font></center><br><p>&emsp;&emsp;接著來看看<span class="hint--info hint--rounded hint--top" data-hint="就是同時有 delay 和 Doppler 特性的通道" ontouchstart>雙選擇性通道</span> (doubly-selective channel) 下，DD domain 調變符號受到的影響。假設我們在矩陣的中央放置 16 X 16 的資料，只有三種顏色 aka 三種相異符號；其餘位置則是 zero padding。</p><br><img src="https://drive.google.com/thumbnail?id=1EICDz1sFqX7ESNdqEpJ9CaLTwpNukiep&sz=s1024" width="400"><center><font color="cyan">傳送端的調變符號，橫軸為 Doppler。</font></center><br><p>&emsp;&emsp;訊號經過一個四條路徑的通道，並且假設整數 Doppler：</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="attr">h</span> = [<span class="number">1</span>, <span class="number">0.28</span> - <span class="number">0.15</span>j, -<span class="number">0.35</span> + <span class="number">0.32</span>j, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0.15</span> + <span class="number">0.18</span>j]<span class="comment">;</span></span><br><span class="line"><span class="attr">nu</span> = [<span class="number">0</span>, <span class="number">6</span>, -<span class="number">4</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">2</span>]<span class="comment">;</span></span><br></pre></td></tr></table></figure><p>&emsp;&emsp;結果如下圖，除了原本的符號區塊外，跑出來三個在 DD domain 位移的 replica，而且這些 replica 的色彩有所改變，就是受到 complex channel gain 的影響。</p><br><img src="https://drive.google.com/thumbnail?id=18x3cxHAsSkZ_z_JhggT0xt-L9fbKx2rx&sz=s1024" width="400"><center><font color="cyan">接收端的調變符號，橫軸為 Doppler。</font></center><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;本文寫作當下，RTL-SDR、Meshtastic、OFDM 系列文、Transformer 和 iTransformer 介紹文等等，都還擱置在草稿資料夾中。過去，我好幾次嘗試建立一個自律的規範，全部都以失敗告終(沒有一個持續到今)；每天都過得很悠哉，不顧自己完全有可能被 AI 取代的現實。話說回來，研究所畢業那年會不會戴鋼盔、繫 S 腰前往作戰位置，還很難說咧，也許被 AI 取代的未來不會存在。</p><br><p>&emsp;&emsp;回到正題。和 Gemini 討論，這個視覺化方法也可以搭配影像處理演算法或深度學習方法，來分析圖裡的資訊。不過轉換成影像的計算量可能就很大了，也許並不實用。</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/constellation-visualization/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/constellation-visualization/"/>
    <published>2026-05-07T08:20:17.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;好久沒有更新文章了。其實就在寫這篇的當下，還有十幾份草稿未完成，看來我的拖延症還在發威。這篇文章來介紹一個視覺化星座圖的方法，也可以用來理解通道對傳送符號的影響。</p>]]>
    </summary>
    <title>視覺化星座圖與通道效應</title>
    <updated>2026-05-07T15:18:30.587Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="電腦科學" scheme="https://yc518suray.github.io/categories/%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8/"/>
    <category term="數學" scheme="https://yc518suray.github.io/tags/%E6%95%B8%E5%AD%B8/"/>
    <category term="線性代數" scheme="https://yc518suray.github.io/tags/%E7%B7%9A%E6%80%A7%E4%BB%A3%E6%95%B8/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;最近 Google 提出了 TurboQuant 的技術，優化 LLM 的記憶體使用效率，記憶體市場又經歷了一場驚濤駭浪。如今隻手遮天的數位霸權 Google，最初是從搜尋引擎起家的，本文介紹奠基這個數位帝國的重要技術──PageRank 演算法。</p><span id="more"></span><br><p>&emsp;&emsp;雖然說是介紹，網路上肯定有更精闢、更清晰易懂的介紹，所以寫這篇文章的主要目的，還是幫助自己釐清想法。</p><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>Page, L., Brin, S., Motwani, R., and Winograd, T., “The PageRank Citation Ranking: Bring Order to the Web”, Technical Report, Standford InfoLab, Stanford, 1999.</p><h2 id="Introduction"><a href="#Introduction" class="headerlink" title="Introduction"></a>Introduction</h2><p>&emsp;&emsp;近三十年前的網站已經有各種內容、版面配置以及檔案格式，如何分析形態多樣的網站，最佳化網頁搜尋的結果？這篇 paper 提出，應該根據網頁彼此連結的結構，建立一套演算法，那就是 PageRank。</p><br><p>&emsp;&emsp;在過去(相對於這篇 paper 撰寫當下)的研究主要探討學術文獻的 citation 網路，但是網頁不管在質(是否經過審查、內容的品質)還是量(網頁的生成比論文要簡單多了)都和學術文獻網路不一樣，網頁之間的關係也比學術論文之間的關係還要複雜許多。現在我們或許很難想像，但是三十年前網際網路初登場不久，許多粗製濫造的網頁充斥在搜尋引擎結果，PageRank 用意就在解決這些問題。</p><br><p>&emsp;&emsp;PageRank 計算網頁的排名 (ranking) 來度量網頁的相對重要性 (relative importance)。名詞解釋：</p><ul><li>Forward link：某網頁到其他網頁的連結。</li><li>Backlink：其他網頁到某網頁的連結。</li></ul><h2 id="PageRank"><a href="#PageRank" class="headerlink" title="PageRank"></a>PageRank</h2><p>&emsp;&emsp;如果一個網頁的 backlink 排名的總和很高，該網頁的排名就會很高。以「受人歡迎的程度」為例，如果你的朋友很多，但都是一些討人厭的傢伙，那麼你受人歡迎的程度不會太高；如果你只有一個朋友，但是那個朋友是個人氣王，那麼你大概也會受人歡迎。</p><br><p>&emsp;&emsp;假設 $u$ 是一個網頁，$F_u$ 為其 forward link 的集合，$B_u$ 為其 backlink 的集合，並且 $N_u &#x3D; \lvert F_u\rvert$。簡化版本的 PageRank 可以表示為</p><p>$$<br>R(u) &#x3D; c \sum_{v \in B_u}{\frac{R(v)}{N_v}}<br>$$</p><p>&emsp;&emsp;其中 $c$ 是一個 normalization constant。一樣以「受人歡迎的程度」為例，假設「受人歡迎的程度」以「歡笑」作為度量單位(怪獸電力公司 neta)，我的朋友某A有一百個「歡笑」，但是他有二十個朋友，所以對於每個朋友的受歡迎程度，某A只能貢獻五個「歡笑」，大概是這樣的概念。定義方陣 $A$ 為網頁矩陣：</p><p>$$<br>A_{u, v} &#x3D;<br>\begin{cases}<br>\begin{align}<br>\frac{1}{N_u},\ \ &amp;\text{one link from v to u}\\[10pt]<br>0,\ \ &amp;\text{no link from v to u}<br>\end{align}<br>\end{cases}<br>$$</p><p>&emsp;&emsp;如果以 $\overrightarrow{R}$ 表示所有網頁的 rank，則</p><p>$$<br>\overrightarrow{R} &#x3D; c A\overrightarrow{R}<br>$$</p><p>&emsp;&emsp;即，$\overrightarrow{R}$ 是 $A$ 的一個特徵向量，$c$ 為對應的特徵值。到目前為止一切正常，但是若存在只有輸入、沒有輸出的封閉迴路，稱之為 <strong>rank sink</strong>，幾個網頁互相吹捧彼此，steady state solution 就不存在($A$ 可以視為一個 transition matrix，參考 Markov chain 的概念)。</p><br><p>&emsp;&emsp;為了對付 rank sink，作者引進 <strong>rank source</strong> $\overrightarrow{E}$ 的概念。</p><p>$$<br>R’(u) &#x3D; c \left(\sum_{v \in B_u}{\frac{R’(v)}{N_v}}\right) + c E(u)<br>$$</p><p>&emsp;&emsp;當中 $c$ 為最大化，且 $\lVert R’\rVert_{l_1} &#x3D; 1$ (各元素和為 1)。$\overrightarrow{E}$ 可以看作是對目前狀態 (state vector) 的擾動，避免 ranking 的循環困在封閉迴路中。以矩陣表示：</p><p>$$<br>\overrightarrow{R’} &#x3D; c\left(A + \overrightarrow{E} \cdot {\overrightarrow{1}}^{T}\right)\overrightarrow{R’}<br>$$</p><p>&emsp;&emsp;這就是更新版本的 PageRank 了。<font color="yellow">求 PageRank 就等於是求特徵向量</font>，作者提供一個演算法，也就是 power method[1]：</p><blockquote><p>PageRank 計算演算法，參數 $\overrightarrow{E}$，$\epsilon$</p><p>$\overrightarrow{R}_0 \longleftarrow \overrightarrow{R}_{\text{init}}$<br>While $\delta &gt; \epsilon$<br>$<br>\begin{align}<br>&amp;\quad \overrightarrow{R}_{i + 1} \longleftarrow A \overrightarrow{R}_i\quad&amp;&amp;\text{(計算經過轉移矩陣後的 state vector)}\\[5pt]<br>&amp;\quad d \longleftarrow \lVert \overrightarrow{R}_i\rVert_{l_1} - \lVert \overrightarrow{R}_{i + 1}\rVert_{l_1}\quad&amp;&amp;\text{(這裡似乎是假設 }\lVert\overrightarrow{R}_i\rVert_{l_1}\text{ 大於等於 1)}\\[5pt]<br>&amp;\quad \overrightarrow{R}_{i + 1} \longleftarrow \overrightarrow{R}_{i + 1} + d \overrightarrow{E}\quad&amp;&amp;\text{(加上 rank source 的項，d 會影響收斂速度)}\\[5pt]<br>&amp;\quad \delta \longleftarrow \lVert \overrightarrow{R}_{i + 1} - \overrightarrow{R}_i\rVert_{l_1}\quad&amp;&amp;\text{(計算誤差，用來判斷是否停止迭代)}<br>\end{align}<br>$</p></blockquote><p>&emsp;&emsp;這個演算法的收斂速度為何？實驗顯示，近三億個連結的資料庫，大約要 52 次迭代才會收斂到容許誤差內，迭代次數大約和連結數的對數成正比，即時間複雜度為 $O(\log{N})$。</p><br><p>&emsp;&emsp;Paper 後半段敘述實驗的方法與結果，反映了當時 (1996) 的網際網路風貌，如排名最高的網頁是 Netscape 下載頁面，CERN 首頁及 Yahoo! 也名列前十，殊不知 Google 很快就要加入戰局，改變整個網路生態。</p><h2 id="讀後感想"><a href="#讀後感想" class="headerlink" title="讀後感想"></a>讀後感想</h2><p>&emsp;&emsp;嚴格來說這篇 paper 不是論文，而是 technical report。它的風格簡潔、架構簡單，短短十七頁的內容為未來的數位帝國立下基礎。即使自己無法構思這般具影響力的發明，欣賞、分析它的巧妙設計，也可以帶來樂趣。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Wikipedia, “PageRank”, en.wikipedia.org. Available: <a href="https://en.wikipedia.org/wiki/PageRank">https://en.wikipedia.org/wiki/PageRank</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8/paper-page-rank/</id>
    <link href="https://yc518suray.github.io/%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8/paper-page-rank/"/>
    <published>2026-03-31T02:02:02.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;最近 Google 提出了 TurboQuant 的技術，優化 LLM 的記憶體使用效率，記憶體市場又經歷了一場驚濤駭浪。如今隻手遮天的數位霸權 Google，最初是從搜尋引擎起家的，本文介紹奠基這個數位帝國的重要技術──PageRank 演算法。</p>]]>
    </summary>
    <title>論文閱讀：PageRank 演算法</title>
    <updated>2026-04-01T01:58:53.966Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="數學問題" scheme="https://yc518suray.github.io/categories/%E6%95%B8%E5%AD%B8%E5%95%8F%E9%A1%8C/"/>
    <category term="數學" scheme="https://yc518suray.github.io/tags/%E6%95%B8%E5%AD%B8/"/>
    <category term="機率" scheme="https://yc518suray.github.io/tags/%E6%A9%9F%E7%8E%87/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;幾天前在 <a href="https://www.facebook.com/UniMathTw/">UniMath</a> 粉絲專頁看到這個問題：</p><blockquote><p>瑪莉有兩個小孩，其中一個是男孩，且在星期二出生。請問另外一個孩子是女生的機率是多少？</p></blockquote><p>&emsp;&emsp;看起來就是一個典型的條件機率的問題。不過就像其他機率問題一樣，這個問題的答案也有些反直覺(還是說我太笨了)；我覺得蠻有意思的，故在這篇文章中展開對這個問題的討論。</p><span id="more"></span><br><p>&emsp;&emsp;在回答問題前，我們先敘述基本的假設：<strong>生男生女的機率相同，為 1&#x2F;2；出生在一星期中任一天的機率相同，皆為 1&#x2F;7</strong>。換句話說，假設出生性別和出生於星期幾是 uniform 的機率分布。我們不考慮雙胞胎的情形，也就是說，兩個小孩是有出生順序的。並且兩個小孩的出生是獨立事件：第一個孩子的性別和出生日獨立於第二個孩子的性別和出生日。</p><h2 id="第一個問題"><a href="#第一個問題" class="headerlink" title="第一個問題"></a>第一個問題</h2><p>&emsp;&emsp;我們忽略「星期二出生」這個資訊，把問題改寫為：</p><blockquote><p>瑪莉有兩個小孩，其中一個是男孩。請問另外一個孩子是女生的機率是多少？</p></blockquote><p>&emsp;&emsp;條件「其中一個是男孩」包含以下的事件：<strong>兩個皆男孩</strong>，<strong>先男後女</strong>，以及<strong>先女後男</strong>，每個事件的發生機率都是 1&#x2F;4。根據條件機率的計算方法，得到另外一個孩子是女生的機率為 <font color="yellow">2&#x2F;3</font>。這符合直覺，因為一男一女有兩種排列，但是兩個都男孩的只有一種排列；生一男一女的機率本來就比較高(數學而言)。</p><br><p>&emsp;&emsp;順便提一下我原本不經思考的答案是 1&#x2F;2，大概是以為兩個孩子的出生性別是互相獨立，所以是 1&#x2F;2。但是仔細想想，「其中一個是男孩」的資訊並沒有告訴我們男孩是先生還是後生，所以關注的事件不是某個孩子的出生性別，而是「出生性別的組合」──「兩男」或是「一男一女」。</p><h2 id="第二個問題"><a href="#第二個問題" class="headerlink" title="第二個問題"></a>第二個問題</h2><p>&emsp;&emsp;接著，我們回答原本的問題：</p><blockquote><p>瑪莉有兩個小孩，其中一個是男孩，且在星期二出生。請問另外一個孩子是女生的機率是多少？</p></blockquote><p>&emsp;&emsp;這個問題比較 tricky 一點，因為加上了「星期二出生」的資訊。第一個直覺可能是：「星期二出生」這個資訊，怎麼會對出生性別的機率有影響？如果問題改成：</p><blockquote><p>兩個小孩當中，第一個是男孩，且在星期二出生。請問另外一個孩子是女生的機率是多少？</p></blockquote><p>&emsp;&emsp;答案就是 1&#x2F;2，出生在星期幾是不影響的。偏偏原問題不能這樣想；在原問題裡，我們不知道男孩是先生還是後生，所以和第一個問題一樣，關注的不是某個孩子的出生性別，而是「出生性別與出生時間的組合」。「一男一女」的組合，機率是 1&#x2F;4 * 1&#x2F;7 * 2 &#x3D; 1 &#x2F; 14；「兩男」的組合，機率是 1&#x2F;4 * (1&#x2F;7 * 2 - 1&#x2F;49) &#x3D; 13&#x2F;196。根據條件機率計算方法，另一個孩子是女生的機率為 <font color="yellow">14&#x2F;27</font>。</p><h2 id="討論"><a href="#討論" class="headerlink" title="討論"></a>討論</h2><p>&emsp;&emsp;為什麼第一個問題和第二個問題的答案<strong>不一樣</strong>？簡單的回答，就是兩個問題對事件的描述不同：第一個問題描述的是「出生性別組合」，第二個問題描述的是「出生性別與出生時間的組合」。</p><br><p>&emsp;&emsp;這樣我們就滿意了嗎？當然沒有。直覺的想，那個男孩必然是在一星期當中的某天出生的，「出生在星期二」可以換成星期一、星期三…任一天，答案都是一樣的。那麼，<strong>為什麼只是指定男孩在哪一天出生，另一個孩子也是男生的機率就增加了？</strong></p><br><p>&emsp;&emsp;UniMath 畫了一張圖呈現條件的變化造成的機率變化，一目瞭然；從另一個角度，我們以文字敘述來呈現。在第一個問題裡，我們只有性別的資訊，性別組合中的「<span class="hint--info hint--rounded hint--top" data-hint="因差異而可以形成排列的最小單位" ontouchstart>單一個體</span>」的屬性欄位如下：</p><p>$$<br>\begin{align}<br>&amp;\text{小孩 A 號：  }\lbrace \text{性別}\rbrace\\[10pt]<br>&amp;\text{小孩 B 號：  }\lbrace \text{性別}\rbrace<br>\end{align}<br>$$</p><p>&emsp;&emsp;A 號、B 號用來表示他們是不同的個體。A 號&#x2F;B 號是男生或女生的機率皆為 1&#x2F;2。現在，「兩個皆男孩」的排列有兩個：「A 男 B 男」和「B 男 A 男」，但是這兩種排列其實是同一種，因為A 號、B 號的資訊會被抹去。(我們只在乎性別組合。)「兩個皆男孩」的排列數為 1 * 2 * <font color="yellow">1&#x2F;2</font> &#x3D; 1。(黃色表示身分資訊的抹除。)</p><br><p>&emsp;&emsp;在第二個問題裡，加上出生時間的資訊，單一個體的屬性欄位變為：</p><p>$$<br>\begin{align}<br>&amp;\text{小孩 A 號：  }\lbrace \text{性別, 星期幾}\rbrace\\[10pt]<br>&amp;\text{小孩 B 號：  }\lbrace \text{性別, 星期幾}\rbrace<br>\end{align}<br>$$</p><p>&emsp;&emsp;條件「其中一個是星期二出生的男孩」下，「兩個皆男孩」有多少排列數？算一下，總共有 (7 * 2 - 1) * 2 * <font color="yellow">1&#x2F;2</font> &#x3D; 13 個排列。增加了出生時間的資訊後，排列數增加了，同時每個排列的機率也降低了。</p><br><p>&emsp;&emsp;「其中一個是星期二出生的男孩」的條件，實際上<strong>增加</strong>了「兩個皆男孩」<strong>相對</strong>於「一男一女」的排列數。定義 $Q_i$ 為第 $i$ 個問題中「兩個皆男孩」排列數與「一男一女」排列數的比值，則</p><p>$$<br>\begin{align}<br>Q_1 &amp;&#x3D; \frac{1 * 2 - 1}{1 * 2} &#x3D; \frac{1}{2}\\[10pt]<br>Q_2 &amp;&#x3D; \frac{7 * 2 - 1}{7 * 2} &#x3D; \frac{13}{14}<br>\end{align}<br>$$</p><p>&emsp;&emsp;如果再加上出生時間點的條件(增加屬性)，「其中一個是星期二早上六點出生的男孩」，作為第三個問題，那麼</p><p>$$<br>Q_3 &#x3D; \frac{24 * 7 * 2 - 1}{24 * 7 * 2} &#x3D; \frac{335}{336}<br>$$</p><p>&emsp;&emsp;可以發現 $Q_i$ 逐漸趨近於 1。為什麼？隨著獲得的資訊(屬性)愈多，被明確定義的可能性也就愈多；被明確定義的可能性愈多，條件的約束愈微不足道，條件機率趨於無條件限制的機率。試想一個<font color="yellow">無限多可能性</font>的情況：假設嬰兒出生的當下會被隨機賦予 1 ~ N 之間的某個整數作為其「幸運數字」，則條件「<font color="yellow">其中一個是幸運數字為 3 的男孩</font>」下，另一個孩子是女生的機率為</p><p>$$<br>\begin{align}<br>&amp;P\left[\text{一男一女}\right] &#x3D; \frac{\frac{1}{4}\times\frac{2}{N}}{\frac{1}{4}\times\frac{2}{N} + \frac{1}{4}\times\frac{2N - 1}{N^2}}\\[10pt]<br>\lim_{N \rightarrow \infty}&amp;{P\left[\text{一男一女}\right]} &#x3D; \frac{1}{2}<br>\end{align}<br>$$</p><p>&emsp;&emsp;相同條件下，若生男孩的機率為 1&#x2F;3，生女孩的機率為 2&#x2F;3，則</p><p>$$<br>\begin{align}<br>&amp;P\left[\text{一男一女}\right] &#x3D; \frac{\frac{2}{9}\times\frac{2}{N}}{\frac{2}{9}\times\frac{2}{N} + \frac{1}{9}\times\frac{2N - 1}{N^2}}\\[10pt]<br>\lim_{N \rightarrow \infty}&amp;{P\left[\text{一男一女}\right]} &#x3D; \frac{2}{3}<br>\end{align}<br>$$</p><p>&emsp;&emsp;結果是一致的：由於描述條件的同時引進了無數的可能性，條件本身不再具有約束力，或者應該說，對於「出生性別」的機率失去約束力。兩個孩子中，其中一個是幸運數字為 3 的男孩，另外一個可以是男孩或是女孩，不論是哪一個，都有無數個可能性；指定「幸運數字」的條件，使得「出生性別」屬性對於排列數的影響化為零。既然男孩或女孩的排列數都一樣，最終的機率就取決於與條件無關的先驗機率。</p><br><p>&emsp;&emsp;同樣的邏輯，在有限可能性的情況也適用，新增的資訊(屬性)使得男孩的排列數趨近於女孩的排列數，條件機率也會趨近於先驗機率。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;從一個簡單的問題，寫就洋洋灑灑一篇文章，真佩服我說幹話的能力。本文探究條件機率在不同條件下的樣貌，並嘗試為違反直覺的條件機率，建立一套直覺。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>&emsp;&emsp;和 Google Gemini 3 討論，不過沒有什麼特別的成果。</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E6%95%B8%E5%AD%B8%E5%95%8F%E9%A1%8C/conditional-probability-1/</id>
    <link href="https://yc518suray.github.io/%E6%95%B8%E5%AD%B8%E5%95%8F%E9%A1%8C/conditional-probability-1/"/>
    <published>2026-03-29T16:35:32.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;幾天前在 <a href="https://www.facebook.com/UniMathTw/">UniMath</a> 粉絲專頁看到這個問題：</p>
<blockquote>
<p>瑪莉有兩個小孩，其中一個是男孩，且在星期二出生。請問另外一個孩子是女生的機率是多少？</p>
</blockquote>
<p>&emsp;&emsp;看起來就是一個典型的條件機率的問題。不過就像其他機率問題一樣，這個問題的答案也有些反直覺(還是說我太笨了)；我覺得蠻有意思的，故在這篇文章中展開對這個問題的討論。</p>]]>
    </summary>
    <title>一個條件機率的問題</title>
    <updated>2026-03-30T14:39:58.215Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="DSP" scheme="https://yc518suray.github.io/tags/DSP/"/>
    <category term="數學" scheme="https://yc518suray.github.io/tags/%E6%95%B8%E5%AD%B8/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;MUSIC 是一個用於頻率估計以及無線電波方向估計(如 DOA，direction of arrival) 的演算法，全名為 multiple signal classification。MUSIC 在 1980 年代被提出，一開始用於感測器陣列，如雷達、麥克風陣列等。</p><br><img src="https://media1.tenor.com/m/sHQOEDdNomMAAAAC/monkey-music.gif" width="350"><center><font color="cyan">猴子聽音樂。圖片來源：tenor.com，</font><a href="https://tenor.com/zh-TW/view/monkey-music-gif-12714803110783853155"><font color="cyan">連結</font></a></center><span id="more"></span><br><p>&emsp;&emsp;因為實驗室學長的研究有用到，就來認識一下這個演算法。也順便模擬一下，視覺化呈現 MUSIC。</p><h2 id="MUSIC"><a href="#MUSIC" class="headerlink" title="MUSIC"></a>MUSIC</h2><p>&emsp;&emsp;假設我們知道訊號向量 $\bf x$ 由 $p$ 個 complex exponentials 組成，我們要怎麼估計這 $p$ 個頻率？我們建立一個線性模型：</p><p>$$<br>{\bf x} &#x3D; A {\bf s} + {\bf n}<br>$$</p><p>&emsp;&emsp;其中 $A &#x3D; [{\bf a_0}, \cdots, {\bf a_{p - 1}}]$，${\bf a_i} &#x3D; [1, e^{j\omega_i}, e^{j2\omega_i}, \cdots, e^{j(N - 1)\omega_i}]^T$，$\bf s$ 為 complex amplitude。演算法的一個前提為 $p &lt; N$。$\bf x$ 的自相關矩陣為</p><p>$$<br>R_x &#x3D; A R_s A^H + \sigma^2 I<br>$$</p><p>&emsp;&emsp;$R_x &#x3D; R_x^H$，且是正定矩陣。對 $R_x$ 做特徵值分解 (EVD)，可以得到</p><p>$$<br>\begin{align}<br>R_x &#x3D; V \Sigma V^H,\ \ &amp;V &#x3D; [{\bf v_0}, \cdots, {\bf v_{p - 1}}, {\bf v_p}, \cdots, {\bf v_{N - 1}}]\\[10pt]<br>&amp;\Sigma &#x3D;<br>\begin{bmatrix}<br>\lambda_0 &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu {\Huge 0} &amp; \mskip -10mu\\[-5pt]<br> &amp; \mskip -10mu \ddots &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu\\[-5pt]<br> &amp; \mskip -10mu &amp; \mskip -10mu \lambda_{p - 1} &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu\\[-5pt]<br> &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu \sigma^2 &amp; \mskip -10mu &amp; \mskip -10mu\\[-5pt]<br> &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu \ddots &amp; \mskip -10mu\\[-5pt]<br> &amp; \mskip -10mu {\Huge 0} &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu &amp; \mskip -10mu \sigma^2<br>\end{bmatrix}_{N\times N}<br>\end{align}<br>$$</p><p>&emsp;&emsp;(特徵值從大到小排列。)前 $p$ 個特徵向量生成 $\cal U_s$，後 $N - p$ 個特徵向量則是和 $\cal U_s$ 正交的雜訊空間 $\cal U_n$。這其實就是主成分分析的概念，前 $p$ 個特徵向量即為功率較大的訊號成分，後 $N - p$ 個特徵向量則是雜訊成分。</p><br><p>&emsp;&emsp;令 $U_{\text{noise}} &#x3D; \left[{\bf v_p}, \cdots, {\bf v_{N - 1}}\right]$，即 $\text{col}(U_{\text{noise}}) &#x3D; {\cal U_n}$。定義 $d({\bf e})$ 為向量 $\bf e$ 在雜訊空間 $\cal U_n$ 的投影量大小，</p><p>$$<br>d({\bf e}) &#x3D; \lVert U_{\text{noise}}^H {\bf e}\rVert^2 &#x3D; \sum_{i &#x3D; p}^{N - 1}{\lvert {\bf v_i}^H {\bf e}\rvert^2}<br>$$</p><p>&emsp;&emsp;如果 ${\bf e} \in {\cal U_s}$，則 $d({\bf e}) &#x3D; 0$。因此 $d({\bf e})$ 小，表示 $\bf e$ 的訊號成分功率較大、雜訊成分功率較小。反過來說，$1&#x2F;d({\bf e})$ 愈大，$\bf e$ 的訊號成分功率愈大。要判斷兩個向量 $\bf e_1$ 和 $\bf e_2$ 哪一個更接近於訊號、哪一個更接近於雜訊，只要比較兩者的 $1&#x2F;d({\bf e})$ 即可。還記得我們一開始想要知道的是<strong>訊號的頻率成分</strong>嗎？令 ${\bf e} &#x3D; \left[1, e^{j\omega}, e^{j2\omega}, \cdots, e^{j(N - 1)\omega}\right]^T$，比較頻率軸上任兩點的 $1&#x2F;d({\bf e})$ 大小，不就可以判斷哪一個頻率更接近於訊號？於是我們定義 MUSIC 的 pseudo-spectrum 為</p><p>$$<br>\hat{P}_{\text{MU}}(e^{j\omega}) &#x3D; \frac{1}{\lVert U_{\text{noise}}^H {\bf e}\rVert^2}<br>$$</p><p>&emsp;&emsp;形成連續的頻譜。根據一開始的假設，訊號由 $p$ 個 complex exponential 組成，只要找到頻譜上數值較高的 $p$ 個點，對應到的 $\omega$ 應該就是組成訊號的 $p$ 個頻率。這就是 MUSIC 演算法。</p><h2 id="模擬"><a href="#模擬" class="headerlink" title="模擬"></a>模擬</h2><p>&emsp;&emsp;網路上有人寫了<a href="https://dataandsignal.com/software/libmusic">開源的 MUSIC 函式庫</a>，不過我還是自己寫一遍試試看，畢竟演算法本身相當簡單。圖A為模擬結果，矩陣 $A$ 是由三個頻率的 complex exponential 乘上窗函數 (window function) 組成。窗函數是用來模擬訊號的其他(功率較小的)頻率成分。</p><br><img src="https://drive.google.com/thumbnail?id=1k8sGs5XV0cMzmW20dyR30gmiUvZdyr24&sz=s1024" width="400"><center><font color="cyan">圖A，MUSIC 演算法。</font></center><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;MUSIC 演算法概念算是簡單，但是總覺得線性模型的假設和真實情況不太一樣，不過既然已經有許多應用，應該是有實用價值的。</p><h2 id="附錄"><a href="#附錄" class="headerlink" title="附錄"></a>附錄</h2><p>&emsp;&emsp;附錄介紹<strong>主成分分析</strong> (principal component analysis，PCA)，複習一下線性代數。假設我們有一個 covariance matrix $R_{xy}$，對它做奇異值分解 (SVD) (這邊都假設 mean 為 zero vector)：</p><p>$$<br>{R_{xy}}_{M\times N} &#x3D; E\left[{\bf x}{\bf y}^H\right] &#x3D; U_{M\times K} \Sigma_{K\times K} V^H_{K\times N}<br>$$</p><p>&emsp;&emsp;$\Sigma$ 為一對角矩陣，$U$ 的 column vectors 為一 $K$ 維向量空間的一組<span class="hint--info hint--rounded hint--top" data-hint="orthonormal" ontouchstart>單位正交</span>基底；$V$ 也是如此。要怎麼解讀這個形式呢？</p><br><p>&emsp;&emsp;假設我想要知道 ${\bf s} &#x3D; A{\bf x}$ 和 ${\bf t} &#x3D; B{\bf y}$ 的相關性，可以計算它們的 covariance matrix，</p><p>$$<br>R_{st} &#x3D; E\left[{\bf s}{\bf t}^H\right] &#x3D; E\left[A{\bf x}{\bf y}^H B^H\right] &#x3D; AR_{xy}B^H<br>$$</p><p>&emsp;&emsp;所以只要知道兩向量的線性變換(矩陣 $A$ 和 $B$)，就可以得知變換後兩向量的 covariance matrix。假設對 ${\bf x}$ 作線性變換，以矩陣表示為 ${\bf x’} &#x3D; U^H {\bf x}$，對 ${\bf y}$ 作線性變換表示為 ${\bf y’} &#x3D; V^H {\bf y}$，則變換後兩向量的 covariance matrix 為</p><p>$$<br>R_{x’y’} &#x3D; U^H R_{xy} V &#x3D; U^H U \Sigma V^H V &#x3D; \Sigma<br>$$</p><p>&emsp;&emsp;也就是說將 $\bf x$ 投影在 $\text{col}(U) &#x3D; \text{span}\lbrace{\bf u_0}, \cdots, {\bf u_{K - 1}}\rbrace$，得到座標向量 ${\bf x’} &#x3D; \left[x_0’, x_1’, \cdots, x_{K - 1}’\right]$；將 $\bf y$ 投影在 $\text{col}(V) &#x3D; \text{span}\lbrace{\bf v_0}, \cdots, {\bf v_{K - 1}}\rbrace$，得到座標向量 ${\bf y’} &#x3D; \left[y_0’, y_1’, \cdots, y_{K - 1}’\right]$。這兩個座標向量的相關性可以用 $\Sigma$ 來表示，$y_0’$ 只和 $x_0’$ 有關，$y_1’$ 只和 $x_1’$ 有關，以此類推。</p><br><p>&emsp;&emsp;原本 $\bf x$ 和 $\bf y$ 的關係很複雜，$R_{xy}$ 是 full matrix，$y_0$ 和 $x_0 \cdots x_{M - 1}$ 都相關；以座標向量來表示 $\bf x$ 和 $\bf y$ (基底則是一組 latent vector，即<strong>主成分</strong>)，只需要 $K$ 個共變異數就可以描述兩向量的關係，而且這些關係還是一對一的($x_0$ 愈大，$y_0$ 愈大或愈小)，趨近單變數的函數關係。這就是<strong>降維</strong> (dimension reduction) 的概念。推薦觀看李宏毅老師的機器學習教學影片[2]，講解非常精彩。</p><br><p>&emsp;&emsp;剛才討論的是 $\bf x$ 和 $\bf y$ 的相關性，那麼如果是 $\bf x$ 和自己的相關性呢？因為 $R_x$ 是半正定矩陣，可以作特徵值分解，$R_x &#x3D; V \Sigma V^H$。將 $\bf x$ 以 $\lbrace {\bf v_0}, \cdots, {\bf v_{K - 1}}\rbrace$ 為基底表示為座標向量 $\bf x’$，各個座標之間是不相關的。</p><p>$$<br>R_{x’} &#x3D; V^H R_x V &#x3D; \Sigma<br>$$</p><p>&emsp;&emsp;這有什麼好處？原本我們需要 $M\times M$ 個共變異數來描述資料的組成，以主成分作為基底向量的話，只需要 $K$ 個共變異數和 $K$ 個 latent vector 就可以完整描述該資料，大幅減少所需的儲存空間，同時也將資料變化的程度 (variance) 集中在主成分上：最大的特徵值和對應的主成分，意味著資料在這個主成分的變異量最大；最小的特徵值和對應的主成分，意味著資料在這個主成分的變異量小，既然每一筆資料在該成分的變化不大，資訊量較少，就是比較不重要的成分，可以丟棄。(比如說人臉辨識，假如資料裡每張臉的鼻子都長得差不多，那鼻子這個特徵對於辨識不同人臉就沒有幫助。)</p><br><p>&emsp;&emsp;上述的 $R_x$ 和 $R_{xy}$ 都是理論值，實際的情況是我們只有好幾筆資料 $X &#x3D; \left[{\bf x_0}, {\bf x_1}, \cdots, {\bf x_{n - 1}}\right]$，而不知道 $R_x$。這時候就會用 sample covariance matrix $\hat{R_x}$ 來近似 $R_x$ (資料已經先減去 sample mean)，</p><p>$$<br>\hat{R_x} &#x3D; \frac{1}{n - 1} X X^H<br>$$</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Wikipedia, MUSIC (algorithm), en.wikipedia.org.<br>Available: <a href="https://en.wikipedia.org/wiki/MUSIC_(algorithm)">https://en.wikipedia.org/wiki/MUSIC_(algorithm)</a></p><p>[2] Hung-yi Lee (Youtube), “ML Lecture 13: Unsupervised Learning - Linear Methods”, youtube.com. Available: <a href="https://www.youtube.com/watch?v=iwh5o_M4BNU">https://www.youtube.com/watch?v=iwh5o_M4BNU</a></p><p>[3] Alex (HackMD 筆記), “直觀看待SVD及PCA之關係”, hackmd.io.<br>Available: <a href="https://hackmd.io/@alexmav04/rJG6P7EWO">https:&#x2F;&#x2F;hackmd.io&#x2F;@alexmav04&#x2F;rJG6P7EWO</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/music-algorithm-intro/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/music-algorithm-intro/"/>
    <published>2026-03-27T08:29:22.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;MUSIC 是一個用於頻率估計以及無線電波方向估計(如 DOA，direction of arrival) 的演算法，全名為 multiple signal classification。MUSIC 在 1980 年代被提出，一開始用於感測器陣列，如雷達、麥克風陣列等。</p>
<br>
<img src="https://media1.tenor.com/m/sHQOEDdNomMAAAAC/monkey-music.gif" width="350">
<center><font color="cyan">猴子聽音樂。圖片來源：tenor.com，</font><a href="https://tenor.com/zh-TW/view/monkey-music-gif-12714803110783853155"><font color="cyan">連結</font></a></center>]]>
    </summary>
    <title>MUSIC 演算法簡介</title>
    <updated>2026-04-07T13:06:43.176Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="DSP" scheme="https://yc518suray.github.io/tags/DSP/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><style>    .highlight {        overflow-y: auto !important;        max-height: 400px !important;    }</style><p>&emsp;&emsp;在<a href="">介紹 RTL-SDR 的文章</a>中，提到 RTL-SDR 是將 RF 訊號 down-convert 到中頻 (IF，intermediate frequency)，再對中頻的訊號取樣。我有一個疑惑：對中頻訊號的取樣和對基頻訊號的取樣不一樣，並不限於一般的 Nyquist sampling theorem，那應該滿足什麼條件？這篇文章就來講解對中頻訊號取樣的原理。</p><span id="more"></span><h2 id="原理"><a href="#原理" class="headerlink" title="原理"></a>原理</h2><p>&emsp;&emsp;在 Ziemer 和 Tranter 的教科書 <em>Principles of Communications</em> 中提到，對帶通訊號取樣，要避免 aliasing 須滿足以下條件(作者稱為 uniform sampling theorem for bandpass spectra)：</p><br><blockquote><p>如果訊號的 RF 頻寬為 $W$ 且頻率上限為 $f_u$，則取樣率可以為 $2f_u &#x2F; m$，其中 $m &#x3D; \lfloor f_u &#x2F; W\rfloor$。更高的取樣率也不保證 aliasing-free，除非高於 $2f_u$。</p></blockquote><br><p>&emsp;&emsp;這稱為 undersampling 或是 sub-sampling。假設經過取樣後，並無 aliasing 的情況，且帶通訊號成分在 $f_c - W&#x2F;2 &#x3D; f_u - W$ 到 $f_c + W&#x2F;2 &#x3D; f_u$ 之間。還記得取樣後的頻譜，等於原本頻譜以 $f_s$ 為週期的複製貼上 (shifted replica)，所以只要知道 $0$ ~ $f_s &#x2F; 2$ 之間的頻譜情形，就可以得知是否產生 aliasing。</p><br><p>&emsp;&emsp;現在，假設最靠近 DC 的 replica 位於 $f &gt; 0$ 的區間 $\left[-m f_s + f_u - W, -m f_s + f_u\right]$，即是向左位移 $mf_s$ 的 replica。為了必免在 DC 發生 aliasing，</p><p>$$<br>\begin{align}<br>-m f_s + f_u - W &amp;\geq 0\\[10pt]<br>f_s &amp;\leq \frac{f_u - W}{m}<br>\end{align}<br>$$</p><p>&emsp;&emsp;也為了避免在 $f &#x3D; f_s&#x2F;2$ 附近造成 aliasing，</p><p>$$<br>\begin{align}<br>-m f_s + f_u &amp;\leq f_s &#x2F; 2\\[10pt]<br>f_s &amp;\geq \frac{2f_u}{2m + 1}<br>\end{align}<br>$$</p><p>&emsp;&emsp;且 $W \leq f_s &#x2F; 2$。滿足這兩個不等式的 $f_s$ 就是合格的取樣率。注意到如果滿足不等式的 $f_s$ 存在，則</p><p>$$<br>\frac{f_u - W}{m} \geq \frac{2f_u}{2m + 1}<br>$$</p><p>&emsp;&emsp;整理得到</p><p>$$<br>\begin{align}<br>W \leq \frac{f_u}{2m + 1} &amp;\Longrightarrow 2m + 1 \leq \frac{f_u}{W}\\[10pt]<br>&amp;\Longrightarrow 2m + 1 \leq \lfloor \frac{f_u}{W}\rfloor<br>\end{align}<br>$$</p><p>&emsp;&emsp;令 $n &#x3D; \lfloor \frac{f_u}{W}\rfloor$，可以得到取樣率的<strong>最低</strong>合格範圍：</p><p>$$<br>\begin{align}<br>\frac{2f_u}{n} \leq f_s \leq \frac{2(f_u - W)}{n - 1}<br>\end{align}<br>$$</p><p>&emsp;&emsp;實際上，上式不一定要取最大的 $2m + 1$，因此可以取 $\left[1, n\right]$ 之間的任意奇數，得到的區間都是合格的取樣率範圍。</p><br><p>&emsp;&emsp;上面討論的是沒有發生 <span class="hint--info hint--rounded hint--top" data-hint="DC 附近的正頻率和負頻率的成分互換" ontouchstart>spectrum inversion</span> 的情況，不過 spectrum inversion 的思路也是類似的。IF sampling 得到的訊號，其頻率成分實際上已經轉換到相對低頻，因此可以用 DDC 再將訊號轉換到基頻，結束 down-conversion 的旅程。回顧 RTL-SDR 的例子，取樣率為 2.56 M sa&#x2F;s，最大 RF 頻寬為 $W$ &#x3D; 1.28 MHz，但是以最高頻率 $f_u &#x3D; f_c + W &#x2F; 2 &#x3D; 3.57 + 0.64 &#x3D; 4.21$ MHz 來說，這個取樣率太低，因此要嘛調整取樣率，要嘛限制訊號頻寬。</p><h2 id="模擬"><a href="#模擬" class="headerlink" title="模擬"></a>模擬</h2><p>&emsp;&emsp;我們以 MATLAB 模擬來驗證上述的說法。假設目標訊號為 1000 Hz 的弦波乘上寬度為 10 ms 的方波，對應到頻域就是主瓣寬度為 200 Hz 的 sinc 函數。在這個例子中，$f_u$ &#x3D; 1100 Hz，$W$ &#x3D; 200 Hz，$n &#x3D; \lfloor f_u &#x2F; W\rfloor$ &#x3D; 5，對應到的取樣率範圍為 440 ~ 450 Hz。我們取 442.5 Hz 作為取樣率。(不要問我為什麼取這個數字，問就是產出來的圖比較好看。)</p><br><p>&emsp;&emsp;模擬的程式碼如下，模擬結果如圖A所示。圖A上半部為取樣前的頻譜，下半部為取樣後頻譜，可以看到取樣後的頻譜基本上是沒有 aliasing 的(忽略 sinc 的旁瓣)。程式中對取樣訊號作 <code>upsample</code> 是為了呈現取樣後頻譜以 $f_s$ 為週期重複的特性。</p><figure class="highlight matlab"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">% This program simulates sub-sampling.</span></span><br><span class="line"><span class="comment">%</span></span><br><span class="line"><span class="comment">% Author: Raymond Su, raymondsu0110@gmail.com</span></span><br><span class="line"></span><br><span class="line">clear</span><br><span class="line"></span><br><span class="line"><span class="comment">% ===== settings ===== %</span></span><br><span class="line">dt = <span class="number">1e-6</span>; <span class="comment">% time resolution of this simulation, freq span = 500 kHz</span></span><br><span class="line">fs = <span class="number">442.5</span>; <span class="comment">% sampling frequency, in Hz</span></span><br><span class="line">f0 = <span class="number">1000</span>; <span class="comment">% intermediate frequency, in Hz</span></span><br><span class="line">T = <span class="number">10000</span>; <span class="comment">% width of square pulse, in us</span></span><br><span class="line">Ns = <span class="built_in">round</span>(<span class="number">1</span> / fs / dt); <span class="comment">% sampling period normalized with &quot;simulation&quot; sampling period</span></span><br><span class="line"></span><br><span class="line"><span class="comment">% ===== sig generation ===== %</span></span><br><span class="line">pulse_duration = <span class="number">0</span>: dt: dt * T - dt; <span class="comment">% duration of the square pulse</span></span><br><span class="line"></span><br><span class="line">pulse = <span class="built_in">cos</span>(<span class="number">2</span> * <span class="built_in">pi</span> * f0 * pulse_duration);</span><br><span class="line">x = [<span class="built_in">zeros</span>(<span class="number">1</span>, <span class="number">2</span> * <span class="built_in">length</span>(pulse)), pulse, <span class="built_in">zeros</span>(<span class="number">1</span>, <span class="number">2</span> * <span class="built_in">length</span>(pulse))];</span><br><span class="line">Nsample1 = <span class="built_in">length</span>(x);</span><br><span class="line"></span><br><span class="line">y = x(<span class="number">1</span>: Ns: <span class="keyword">end</span>);</span><br><span class="line">y = upsample(y, Ns);</span><br><span class="line">Nsample2 = <span class="built_in">length</span>(y);</span><br><span class="line"></span><br><span class="line"><span class="comment">% ===== presentation ===== %</span></span><br><span class="line">X = fftshift(fft(x)) * dt; <span class="comment">% dt = 1 / simulation_sampling_frequency</span></span><br><span class="line">f1 = <span class="number">-0.5</span> / dt: <span class="number">1</span> / dt / Nsample1: <span class="number">0.5</span> / dt - <span class="number">1</span> / Nsample1;</span><br><span class="line">Y = fftshift(fft(y)) * Ns * dt;</span><br><span class="line">f2 = <span class="number">-0.5</span> / dt: <span class="number">1</span> / dt / Nsample2: <span class="number">0.5</span> / dt - <span class="number">1</span> / Nsample2;</span><br><span class="line"></span><br><span class="line"><span class="built_in">figure</span>();</span><br><span class="line">subplot(<span class="number">2</span>, <span class="number">1</span>, <span class="number">1</span>);</span><br><span class="line"><span class="built_in">plot</span>(f1, <span class="built_in">abs</span>(X), <span class="string">&quot;b-&quot;</span>, <span class="string">&quot;LineWidth&quot;</span>, <span class="number">2</span>);</span><br><span class="line">xlim([<span class="number">-2000</span> <span class="number">2000</span>]); ylim([<span class="number">0</span> <span class="number">0.007</span>]);</span><br><span class="line">xlabel(<span class="string">&quot;frequency (Hz)&quot;</span>); ylabel(<span class="string">&quot;spectrum (abs)&quot;</span>);</span><br><span class="line">title(<span class="string">&quot;original signal spectrum&quot;</span>);</span><br><span class="line"></span><br><span class="line">subplot(<span class="number">2</span>, <span class="number">1</span>, <span class="number">2</span>);</span><br><span class="line"><span class="built_in">plot</span>(f2, <span class="built_in">abs</span>(Y), <span class="string">&quot;r-&quot;</span>, <span class="string">&quot;LineWidth&quot;</span>, <span class="number">2</span>);</span><br><span class="line">xlim([<span class="number">-2000</span> <span class="number">2000</span>]); ylim([<span class="number">0</span> <span class="number">0.007</span>]);</span><br><span class="line">xlabel(<span class="string">&quot;frequency (Hz)&quot;</span>); ylabel(<span class="string">&quot;spectrum (abs)&quot;</span>);</span><br><span class="line">title(<span class="string">&quot;sub-sampled spectrum, f_s = 440 Hz&quot;</span>);</span><br><span class="line"></span><br><span class="line">clear</span><br></pre></td></tr></table></figure><img src="https://drive.google.com/thumbnail?id=1OYPuCB-EDJqpCJxl3gftXTi-Ontw6E1R&sz=s1024" width="450"><center><font color="cyan">圖A，sub-sampling 的模擬結果。</font></center><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;一般教科書提及取樣定理，都是指對基頻訊號的取樣，對帶通訊號取樣的理論則是草草帶過。本文對帶通訊號的取樣原理提出解釋，並且以 MATLAB 模擬證實該理論。實際應用上，由於 ADC 時脈的增加，在一些硬體上高達幾十 G sa&#x2F;s，因此也有不少系統是採用 RF 直接取樣，一個 ADC 就有 mixer + sampler 的功能，這時候本文的解說就可以派上用場。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Wikipedia, “Undersampling”. Available: <a href="https://en.wikipedia.org/wiki/Undersampling">https://en.wikipedia.org/wiki/Undersampling</a></p><p>[2] electronics.stackexchange.com (forum), “ADC Input Frequency Bandwidth and Sampling Frequency”. Available: <a href="https://electronics.stackexchange.com/questions/601248/adc-input-frequency-bandwidth-and-sampling-frequency">https://electronics.stackexchange.com/questions/601248/adc-input-frequency-bandwidth-and-sampling-frequency</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/IF-sampling-principle/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/IF-sampling-principle/"/>
    <published>2026-03-26T01:26:18.000Z</published>
    <summary>
      <![CDATA[<style>
    .highlight {
        overflow-y: auto !important;
        max-height: 400px !important;
    }
</style>

<p>&emsp;&emsp;在<a href="">介紹 RTL-SDR 的文章</a>中，提到 RTL-SDR 是將 RF 訊號 down-convert 到中頻 (IF，intermediate frequency)，再對中頻的訊號取樣。我有一個疑惑：對中頻訊號的取樣和對基頻訊號的取樣不一樣，並不限於一般的 Nyquist sampling theorem，那應該滿足什麼條件？這篇文章就來講解對中頻訊號取樣的原理。</p>]]>
    </summary>
    <title>IF Sampling 原理</title>
    <updated>2026-03-26T10:32:09.039Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="電路設計" scheme="https://yc518suray.github.io/tags/%E9%9B%BB%E8%B7%AF%E8%A8%AD%E8%A8%88/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;記得大二的電子實驗，我經常是最後一個離開實驗室的人，因為各種問題弄半天、最後還是助教勉為其難的降低實驗成果的標準(不然是要助教在實驗室過夜嗎)，我才通過這門必修課。從此，我和離散元件的電路結下不解之緣。</p><br><img src="https://drive.google.com/thumbnail?id=1MFJAju6wdp21lz7S77iQ2Og2E3vhAczG&sz=s1024" width="400"><center><font color="cyan">大四的時候做的 MLS sequence marquee，雖然能跑但是接線凌亂不堪。</font></center><br><span id="more"></span><p>&emsp;&emsp;明明手不是很巧、電路的概念不扎實，還是很喜歡欣賞各種電路設計，特別是業餘愛好者的作品。像是 CMoy 音訊放大器電路，小小的一片洞洞板就可以實作出如此精美的電路，而且其中還有許多學問，像是電阻的挑選、電源線路的設計，以及最重要的放大器 IC 的選擇；總覺得讓我讚嘆不已的或許不是電路本身，而是設計者傾注其中的巧思與熱情。</p><br><p>&emsp;&emsp;這篇文章要介紹的便是 SDR 離散元件電路中一個極為天才的設計──Tayloe mixer，它可以用於零中頻 (zero IF) 的無線電收發機，正好適合作為 SDR 的 up&#x2F;down converter。關於電路元件的介紹會盡可能省略，因為我不熟，數學的部分則會多一些。</p><h2 id="文章資訊"><a href="#文章資訊" class="headerlink" title="文章資訊"></a>文章資訊</h2><p>Dan Tayloe, “Ultra Low Noise, High Performance, Zero IF Quadrature Product Detector and Preamplifier”. Available: <a href="https://www.norcalqrp.org/files/Tayloe_mixer_x3a.pdf">https://www.norcalqrp.org/files/Tayloe_mixer_x3a.pdf</a></p><h2 id="Tyloe-Mixer-的原理"><a href="#Tyloe-Mixer-的原理" class="headerlink" title="Tyloe Mixer 的原理"></a>Tyloe Mixer 的原理</h2><p>&emsp;&emsp;首先來看看 Tayloe Quadrature Product Detector，電路圖如圖A。電路的運作如下：假設目標頻率為 $f_0$，則多工器切換的頻率為 $4f_0$，每一路輸出只會看到 1&#x2F;4 週期的訊號。</p><br><img src="https://drive.google.com/thumbnail?id=1uIlzYA8UXP9H_VbqdriZYsDYXDTpeVNV&sz=s1024" width="350"><center><font color="cyan">圖A，Tayloe 文章的 Figure 1。</font></center><br><p>&emsp;&emsp;作者說明這個電路其實不能算是 mixer，應該算是一個切換積分器 (switching integrator)，看看這個 RC 電路應該就明白(也可以想成低通濾波器)。第一個電容的跨壓為相位 $0^{\circ}$ 的取樣值，第二個電容跨壓為相位 $90^{\circ}$ 的取樣值，以此類推。</p><br><p>&emsp;&emsp;我們用數學來驗證它確實是一個 down converter。首先 RC 電路的輸出可以表示為(假設電容初始跨壓為 0)</p><p>$$<br>\begin{align}<br>V_c(t) &amp;&#x3D; e^{-\frac{t}{RC}} \int_{0}^{t}{e^{\frac{t’}{RC}} \frac{V_{in}(t’)}{RC}\ dt’}\\[10pt]<br>&amp;\approx \frac{1}{RC} \int_{0}^{t}{V_{in}(t’)\ dt’}<br>\end{align}<br>$$</p><p>&emsp;&emsp;(假設 $RC \gg 1 &#x2F; f_0$) 確定是一個積分器。接著，假設輸入訊號(由 in-phase 和 quadrature 成分組成)可以表示為 $x(t) &#x3D; x_I(t)\cos{(2\pi f_0 t + \theta)} - x_Q(t)\sin{(2\pi f_0 t + \theta)}$，計算第一顆電容在 1&#x2F;4 週期後的輸出 ($a &#x3D; RC$)：</p><p>$$<br>\begin{align}<br>r_1 &amp;&#x3D; \frac{1}{a} \int_{t_0}^{t_0 + 1 &#x2F; 4f_0}{x(t)\ dt}\\[10pt]<br>&amp;&#x3D; \frac{1}{a} \int_{t_0}^{t_0 + 1 &#x2F; 4f_0}{x_I(t)\cos{(2\pi f_0 t + \theta)} - x_Q(t)\sin{(2\pi f_0 t + \theta)}\ dt}\\[10pt]<br>&amp;\approx \frac{1}{a}\left(x_I(t_0)\int_{t_0}^{t_0 + 1 &#x2F; 4f_0}{\cos{(2\pi f_0 t + \theta)}\ dt} - x_Q(t_0)\int_{t_0}^{t_0 + 1 &#x2F; 4f_0}{\sin{(2\pi f_0 t + \theta)}\ dt}\right)\\[10pt]<br>&amp;&#x3D; \frac{1}{a 2\pi f_0}\left(x_I(t_0)(\cos{\beta} - \sin{\beta}) - x_Q(t_0)(\cos{\beta} + \sin{\beta})\right)<br>\end{align}<br>$$</p><p>&emsp;&emsp;其中</p><p>$$<br>\beta &#x3D; 2\pi f_0 t_0 + \theta<br>$$</p><p>&emsp;&emsp;其他電容的輸出則是</p><p>$$<br>\begin{align}<br>r_2 &amp;&#x3D; \frac{1}{a 2\pi f_0}\left(x_I(t_0)(-\sin{\beta} - \cos{\beta}) - x_Q(t_0)(\cos{\beta} - \sin{\beta})\right)\\[10pt]<br>r_3 &amp;&#x3D; \frac{1}{a 2\pi f_0}\left(x_I(t_0)(-\cos{\beta} + \sin{\beta}) - x_Q(t_0)(-\sin{\beta} - \cos{\beta})\right)\\[10pt]<br>r_4 &amp;&#x3D; \frac{1}{a 2\pi f_0}\left(x_I(t_0)(\sin{\beta} + \cos{\beta}) - x_Q(t_0)(-\cos{\beta} + \sin{\beta})\right)<br>\end{align}<br>$$</p><p>&emsp;&emsp;各個切換積分器的輸出送到差分放大器，見圖B。經過簡單的加減，</p><p>$$<br>\begin{align}<br>I&amp;:\ \ A(r_1 - r_3) &#x3D; 2A r_1\\[10pt]<br>Q&amp;:\ \ A(r_2 - r_4) &#x3D; 2A r_2<br>\end{align}<br>$$</p><p>&emsp;&emsp;得到 6 dB 的增益(和 Gemini 討論，差分放大器也可以消除共模雜訊或 DC漂移)。到這一步我們已經可以得到 in-phase 和 quadrature 的訊號成分，因為(令 $k &#x3D; \sqrt{2}A &#x2F; a\pi f_0$)：</p><p>$$<br>\begin{align}<br>I&amp;:\ \ 2A r_1 &#x3D; k \cdot {\cal Re}\lbrace (x_I(t_0) + jx_Q(t_0)) e^{j(\pi&#x2F;4 + \beta)}\rbrace\\[10pt]<br>Q&amp;:\ \ 2A r_2 &#x3D; k \cdot {\cal Im}\lbrace (x_I(t_0) + jx_Q(t_0)) e^{j(\pi&#x2F;4 + \beta)}\rbrace<br>\end{align}<br>$$</p><p>&emsp;&emsp;即為 down-converted、旋轉後的 baseband complex sample，可以由 SDR 軟體處理。作者提到，這個 down converter 的 conversion loss 低於一般 mixer 的作法(甚至還有 6 dB 的增益)，相當吸引人。</p><br><img src="https://drive.google.com/thumbnail?id=1N1r_PdGCvacaysTugC0d5df1l3c0u-55&sz=s1024" width="350"><center><font color="cyan">圖B，Tayloe 文章的 Figure 3。</font></center><br><p>&emsp;&emsp;作者也提出 up converter 的設計，見圖C。其實就是反過來的設計、甚至更簡單，連 RC 電路都不用了，不過輸出端要一個 BPF。</p><br><img src="https://drive.google.com/thumbnail?id=17URsHy_DXf4Z1BEciXPLwTRAY25MOnIv&sz=s1024" width="350"><center><font color="cyan">圖C，Tayloe 文章裡的 Figure 5。</font></center><br><p>&emsp;&emsp;驗證其為 up converter：假設 in-phase 的 sample 為 $x_I$，quadrature 的 sample 為 $x_Q$，則 BPF 的輸出波形為</p><p>$$<br>x_r(t) &#x3D; {\cal Re}\lbrace (x_I - jx_Q) e^{j(2\pi f_0 t - \pi &#x2F; 4)}\rbrace<br>$$</p><br><img src="https://drive.google.com/thumbnail?id=1-GpPGIefhHeNQ2B_6Lb_a35m-MOHKiF5&sz=s1024" width="350"><center><font color="cyan">圖D，經過 BPF 消除諧波的輸出波形。</font></center><br><p>&emsp;&emsp;最後補充其他內容。作者提到 RC 電路的電阻和電容值的選擇會影響系統頻寬 (LPF 的 roll-off frequency)，也會影響振盪電路的 Q 值。作者還提到，反轉切換的順序可以得到 LSB&#x2F;USB 的訊號(畢竟兩者的差異在於相位)，這個反轉可以用控制的 bit 的反轉來實現。</p><br><img src="https://drive.google.com/thumbnail?id=1SbOPBxJ0cqUZ2RB26XUMS6703qpBvSnk&sz=s1024" width="450"><center><font color="cyan">圖E，Tayloe mixer 應用於 SDR 電路。圖片來源：[1] Fig 14。</font></center><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Gerald Youngblood (AC5OG), “A Software-Defined Radio for the Masses, Part 1”, QEX, Jul&#x2F;Aug, 2002. Available: <a href="https://www.arrl.org/files/file/Technology/tis/info/pdf/020708qex013.pdf">https://www.arrl.org/files/file/Technology/tis/info/pdf/020708qex013.pdf</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/tayloe-mixer-intro/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/tayloe-mixer-intro/"/>
    <published>2026-03-19T14:38:43.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;記得大二的電子實驗，我經常是最後一個離開實驗室的人，因為各種問題弄半天、最後還是助教勉為其難的降低實驗成果的標準(不然是要助教在實驗室過夜嗎)，我才通過這門必修課。從此，我和離散元件的電路結下不解之緣。</p>
<br>
<img src="https://drive.google.com/thumbnail?id=1MFJAju6wdp21lz7S77iQ2Og2E3vhAczG&sz=s1024" width="400">
<center><font color="cyan">大四的時候做的 MLS sequence marquee，雖然能跑但是接線凌亂不堪。</font></center>
<br>]]>
    </summary>
    <title>Tayloe Mixer 介紹</title>
    <updated>2026-03-26T10:35:33.278Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="Modeling" scheme="https://yc518suray.github.io/tags/Modeling/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;在 <em>Delay-Doppler Communications: Principles and Applications</em> 裡有這麼一句話：<br><br></p><blockquote><p>… by aptly designing the frame duration, the delay-Doppler representation of a typical wireless channel can be made to be roughly time-invariant for the duration of the signal frame.</p></blockquote><br><p>&emsp;&emsp;這句話讓我感覺有些矛盾：delay-Doppler 就是用來描述時變通道，怎麼還可以說是 time-invariant？不解決這個問題，就無法繼續往前進，至少沒辦法說服自己。</p><span id="more"></span><br><p>&emsp;&emsp;本文首先描述問題，接著嘗試回答。有關時變通道的 modeling 及數學描述，可以參考<a href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-time-variant-channel/">這篇文章</a>，內容豐富但是並沒有回答到本文提出的問題。</p><h2 id="問題"><a href="#問題" class="headerlink" title="問題"></a>問題</h2><p>&emsp;&emsp;<strong>書中描述的「在短時間內，通道的 DD domain 表示可以視為 time-invariant」，應該怎麼解讀？</strong> 書中舉了高速公路車載通訊的例子，由於基地台和車輛的收發機有相對移動，通道響應必須加上 Doppler shift 的描述；經其他車輛反射、散射形成的多路徑 (multi-path) 也一樣，必須考量 Doppler。以圖A的情況為例，接收機看見的通道為三條路徑，分別有著不同的 delay $\tau$ 和 Doppler $\nu$。</p><br><img src="https://drive.google.com/thumbnail?id=1ONT3wTYrC7AW2WpXUrVDPrZYivMqQzpI&sz=s1024" width="450"><center><font color="cyan">圖A，高速公路上的簡單例子。</font></center><br><p>&emsp;&emsp;時間為 $t_1$ 的當下，delay-Doppler 的分布如圖A左半部；然而，時間為 $t_2$ 的當下，由於我們(接收機)逐漸駛離車輛2，車輛2形成的路徑其 Doppler shift 變為負值。通道在不同時間點的 DD domain response 不同，此即 time variance。所以 <strong>time-invariance 的說法似乎有些矛盾</strong>，事實上任一時間點的 delay-Doppler response $U(\tau, \nu)$ 都會不一樣，從高速公路的簡單例子就可以理解。</p><h2 id="討論"><a href="#討論" class="headerlink" title="討論"></a>討論</h2><p>&emsp;&emsp;為了回答這個問題，我們要先釐清 delay-Doppler response $U(\tau, \nu)$ 和 delay-time response $h(t, \tau)$ 之間的關係。常見的關係式為</p><p>$$<br>U(\tau, \nu) &#x3D; \int{h(t, \tau) e^{-j2\pi\nu t}\ dt}<br>$$</p><p>&emsp;&emsp;注意上面的式子並沒有標示積分範圍。暫且假設積分範圍是整個時間線 (aka $-\infty$ 到 $\infty$)，來看圖B的例子。給定 delay $\tau_0$，$h(t, \tau_0)$ 的振幅(實數)如圖B所示，是一個弦波，意即，delay 為 $\tau_0$ 的這個路徑其振幅以 $1&#x2F;T_0$ 的頻率波動，隨時間 $t$ 變化。</p><br><img src="https://drive.google.com/thumbnail?id=1k4Qg8WYC-xHwUlsw0BT2h3uH0wLyygrb&sz=s1024" width="400"><center><font color="cyan">圖B，$h(t, \tau_0)$ 的波動。</font></center><br><p>&emsp;&emsp;接著看圖C的例子，給定 delay $\tau_0$，$h(t, \tau_0)$ 的振幅為一有限長度的波動，只在 $0 \leq t \leq 3T_0$ 期間有值。對變數 $t$ 作 Fourier transform 得到</p><p>$$<br>\begin{align}<br>U(\tau_0, \nu) &amp;&#x3D; F\lbrace h(t, \tau_0)\rbrace\\[10pt]<br>&amp;&#x3D; \int_{0}^{3T_0}{\cos{(2\pi t&#x2F;T_0)} e^{-j2\pi\nu t}\ dt}\\[10pt]<br>&amp;&#x3D; -\frac{3T_0}{2} e^{-j3\pi T_0\nu} \left( \text{sinc}{3T_0(\nu - \frac{1}{T_0})} + \text{sinc}{3T_0(\nu + \frac{1}{T_0})}\right)<br>\end{align}<br>$$</p><br><img src="https://drive.google.com/thumbnail?id=1hwY8yC_qO-w-ocGHrkHSh6mVUqGhMN4-&sz=s1024" width="300"><center><font color="cyan">圖C，$h(t, \tau_0)$ 為有限長度。</font></center><br><p>&emsp;&emsp;我們一樣可以計算 $U(\tau, \nu)$，並且以 $U(\tau, \nu)$ 來描述通道在任何時間的特性。但是這些是特例：一般而言，通道響應不會是有限長度的，甚至(不使用 generalized functions 的概念)不存在 Fourier transform。在整個時間線上的通道響應，一般而言是隨機過程。</p><br><img src="https://drive.google.com/thumbnail?id=1TNfaRCFqtN5Lwv-D9U7HelcNAg-fpQy0&sz=s1024" width="400"><center><font color="cyan">圖D，整個時間線 ($-\infty < t < \infty$) 上的通道響應。</font></center><br><p>&emsp;&emsp;更關鍵的是：即使 $h(t, \tau)$ 確實是有限長度、有限能量的(其 Fourier transform 存在)，以整個時間線為積分範圍，會失去時變的資訊。這裡我們要區分兩個「時變」：</p><ol><li><p><strong>$h(t, \tau)$ 是時變的</strong>：就像圖B、圖C甚至圖D描繪的一樣，並非 static channel gain。</p></li><li><p><strong>環境是時變的</strong>：如圖A所示，任一時間點的 delay-Doppler 分布都不一樣，如果我們對一段長時間的通道響應 $h(t, \tau)$ 作 Fourier transform，得到的是對這段時間內的通道響應作「綜合描述」，好像整段時間的通道響應可以由轉換得到的 $U(\tau, \nu)$ 表示，<strong>其實不行</strong>──舉例來說，前半段時間快速變化、後半段時間幾乎不變，對整段時間的通道響應作 Fourier transform，只會得到一個「平均」的 delay-Doppler 描述。</p></li></ol><p>&emsp;&emsp;所以以整個時間線作為積分範圍是有問題的；實際上也做不到。因此，將整個時間線切為許多時間區間，對每個區間內的 $h(t, \tau)$ 作 Fourier transform 是比較合適的，也就是 Short Time Fourier Transform (<strong>STFT</strong>)。關於 STFT，之後會再寫一篇文章來討論(怎麼變成老高的語氣)。</p><br><img src="https://drive.google.com/thumbnail?id=1pzYVXuo1QlwidEZIIiUSRhXZxBASgsGq&sz=s1024" width="400"><center><font color="cyan">圖E，STFT 的概念。</font></center><br><p>&emsp;&emsp;不過，STFT 有個缺點：<strong>時間解析度和頻率解析度成反比</strong>，時間區間拉得愈長，時間解析度愈低、愈無法呈現瞬時資訊，不過因為點數增加了，DFT 的頻率解析度也會增加；反之亦然。</p><br><p>&emsp;&emsp;STFT 的限制之外，選取的時間長度也要講究；如前所述，時間長度愈長，轉換得到的 $U(\tau, \nu)$ 愈無法呈現瞬時的通道特徵。如果時間區間選擇恰當，$U(\tau, \nu)$ 可以充分代表該區間內的通道，表示環境在這段區間內變化不大，可以視為 time-invariant。這就回答了本文的問題。</p><h2 id="結論"><a href="#結論" class="headerlink" title="結論"></a>結論</h2><p>&emsp;&emsp;本文提出兩個「時變」的概念：第一個指通道增益隨時間變化，第二個指環境(如高速公路上的車流)隨時間變化。第二個時變的概念可以解釋，為什麼我們要選擇合適的訊框區間，如此計算得到的 $U(\tau, \nu)$ 才是有意義的。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Yi Hong, Tharaj Thaj, and Emanuele Viterbo, <em>Delay-Doppler Communications: Principles and Applications</em>, Academic Press, Elsevier.</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/delay-doppler-question-1/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/delay-doppler-question-1/"/>
    <published>2026-03-19T01:20:59.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;在 <em>Delay-Doppler Communications: Principles and Applications</em> 裡有這麼一句話：<br><br></p>
<blockquote>
<p>… by aptly designing the frame duration, the delay-Doppler representation of a typical wireless channel can be made to be roughly time-invariant for the duration of the signal frame.</p>
</blockquote>
<br>

<p>&emsp;&emsp;這句話讓我感覺有些矛盾：delay-Doppler 就是用來描述時變通道，怎麼還可以說是 time-invariant？不解決這個問題，就無法繼續往前進，至少沒辦法說服自己。</p>]]>
    </summary>
    <title>Delay-Doppler 的 time-invariant 特性</title>
    <updated>2026-03-19T08:39:01.688Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="Mesh" scheme="https://yc518suray.github.io/tags/Mesh/"/>
    <category term="LoRa" scheme="https://yc518suray.github.io/tags/LoRa/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;和撰寫 RTL-SDR 的介紹文章一樣，寫這篇文章也是為了讓自己更熟悉 Meshtastic 設備、操作方式以及運作原理。畢竟買 Meshtastic 也好幾個月了，卻因為天線的緣故一直沒有積極嘗試連上 mesh 網路。</p><br><img src="https://drive.google.com/thumbnail?id=18GhngBMAQUzrmj-m18HYt16OrCxPPeqc&sz=s1024" width="400"><span id="more"></span><br><p>&emsp;&emsp;這篇文章的架構和介紹 RTL-SDR 的那篇一樣。實驗的部分我要求不多，只要能連上臺灣的 Meshtastic 網路就好。</p><h2 id="What"><a href="#What" class="headerlink" title="What?"></a>What?</h2><p>&emsp;&emsp;Meshtastic 是一個「基於 LoRa 技術的開源專案」，期望建立一個「使用低功耗、低成本裝置」的「長距離無線網狀網路」[1]。更重要的是，它是<span class="hint--info hint--rounded hint--top" data-hint="可以參考 Wifi mesh 的概念" ontouchstart>去中心化的網路</span>，受到攻擊而解體的可能性較低，韌性十足。[1]是 Meshtastic Taiwan 的入門手冊，從基礎觀念講到實際應用，非常值得一讀。</p><br><p>&emsp;&emsp;Meshtastic 常見的應用如下[1]：</p><ul><li><strong>戶外運動</strong>：山區不一定收得到基地台訊號，Meshtastic 可以做為替代&#x2F;備援通訊方式；搭配 GPS 功能，可以得知同伴或其他山友的位置。</li><li><strong>緊急救援</strong>：作為基礎設施(e.g. 基地台)失去作用時的備援通訊方式。</li><li><strong>社區連結</strong>：都會區的基地台佈建密度高，行動數據網路就夠用；在地廣人稀的地區，如花蓮(被打)，社區之間、或是社區內便可以透過 Meshtastic 聯繫彼此。</li><li><strong>物聯網裝置</strong>：畢竟 LoRa 本來就是用於 IoT，不過目前好像較少 IoT 方面的應用。</li></ul><p>&emsp;&emsp;目前也有人做出<a href="https://hackmd.io/@fL8pq60EQsG3RplVzWfGWA/S1m_x-AOA/%2FT5om5V4RRraOkGSmGW43yA">地震通報功能</a>，讓登山者判斷行程&#x2F;路線是否需要變更。</p><h2 id="How"><a href="#How" class="headerlink" title="How?"></a>How?</h2><p>&emsp;&emsp;網路上有許多資源可以參考(如[1])，所以我補充一些網路上較少討論的資訊，特別是從實體層的角度來看(硬體的部分如天線、RF 電路等，我沒有涉獵就略過不談)。</p><h3 id="LoRa-CMSS"><a href="#LoRa-CMSS" class="headerlink" title="LoRa &amp; CMSS"></a>LoRa &amp; CMSS</h3><p>&emsp;&emsp;LoRa 為 Long Range 的縮寫，為低功耗廣域網路 (Low-Power Wide Area Network，LPWAN) 的實體層實現之一[2]。和蜂巢式網路、LTE-M 相比，LoRa 有著低功耗、低成本的優勢，非常適合用於在大範圍的區域內佈建 IoT 網路；LoRa 的缺點是資料傳輸率較低，這也<span class="hint--info hint--rounded hint--top" data-hint="e.g. Meshtastic 不能傳輸圖片" ontouchstart>限制了它的應用</span>。</p><br><p>&emsp;&emsp;LoRa 使用 Chirp Modulation Spread Spectrum (<strong>CMSS</strong>) 作為調變方式。CMSS 不是什麼新東西，在第二次世界大戰時就已經有人提出，主要用於軍事用途 (DSSS 和 FHSS 好像也是一樣的背景)。這邊參考 Stephan Hengstler 一篇 2002 年的 IEEE 會議論文[3]，來呈現 CMSS 的特性。作者設計一組 chirp spreading 訊號：</p><p>$$<br>c_i(t) &#x3D;<br>\begin{cases}<br>\begin{align}<br>&amp;\sqrt{\frac{2E_s}{T_s}} \cos{\left(2\pi f_c t + \pi\alpha_{a, i}t^2 + \pi\theta_i\right)}&amp;&amp;,\ 0 \leq t &lt; \frac{T_s}{2}\\[10pt]<br>&amp;\sqrt{\frac{2E_s}{T_s}} \cos{\left(2\pi f_c t + 2\pi\alpha_{a, i}\frac{T_s}{2}\left(t - \frac{Ts}{4}\right) + \pi\alpha_{b, i}\left(t - \frac{T_s}{2}\right)^2 + \pi\theta_i\right)}&amp;&amp;,\ \frac{T_s}{2} \leq t \leq T_s<br>\end{align}<br>\end{cases}<br>$$</p><p>&emsp;&emsp;其中 $\alpha_{a, i}$ 和 $\alpha_{b, i}$ 是用戶 $i$ 的 chirp rate 參數，單位為 Hs&#x2F;s。每一個用戶的展頻訊號 $c_i(t)$ 頻寬都相同，因此只要選定 $\alpha_{a, i}$，$\alpha_{b, i}$ 也會決定：</p><p>$$<br>W &#x3D; \left(\alpha_{a, i} + \alpha_{b, i}\right)\frac{T_s}{2},\ \forall i<br>$$</p><p>&emsp;&emsp;圖A-1為某展頻訊號的波型，圖A-2為其功率頻譜，載波頻率為 1500 Hz，頻寬為 500 Hz。Time-bandwidth product 愈大，功率密度頻譜的形狀愈接近方波，但是時域波型會變得過於密集，所以兩張圖採用不同的 time-bandwidth product，以呈現合適的結果。</p><br><img src="https://drive.google.com/thumbnail?id=1djAvKF2xoA_nVzo8084YIYHnswNtfieI&sz=s1024" width="350"><center><font color="cyan">圖A-1，展頻訊號在一個符號期間的波型，$T_s W = 5$。</font></center><br><img src="https://drive.google.com/thumbnail?id=1pj3L0Qm0vU4sFlcGIQS3IdpWhz5_K1sF&sz=s1024" width="350"><center><font color="cyan">圖A-2，展頻訊號的功率頻譜密度，$T_s W = 100$。</font></center><br><p>&emsp;&emsp;作者假設傳送 BPSK 符號，接收端為 coherent correlator，進而推導出 AWGN 通道下的錯誤率，當中 ${\bf b} &#x3D; \left[b_1, \cdots, b_M\right]^T$，$B &#x3D; \lbrace-1, 1\rbrace$，$\rho_{ij}$ 為 $c_i(t)$ 和 $c_j(t)$ 的 correlation：</p><p>$$<br>P_e &#x3D; \frac{1}{M}\sum_{i &#x3D; 1}^{M}{\sum_{ {\bf b} \in B^{M - 1} }{\frac{1}{2^{M - 1}} Q\left(\sqrt{\frac{2E_s}{N_0}} \left(1 - \sum_{j &#x3D; 1,\ j \neq i}^{M}{b_j\rho_{ij}}\right)\right)}}<br>$$</p><p>&emsp;&emsp;如果這些展頻訊號彼此為正交，則 $P_e$ 就化簡為一般常見的 BPSK 錯誤率；使用正交碼(如 Hadamard code)的 DSSS 即為一例。很可惜，這裡的 CMSS 做不到。作者設計 $\Delta\overline{\alpha}_{i, i + 1} &#x3D; (\alpha_{a, i} - \alpha_{a, i + 1})T_s^2 &#x3D; \Delta\overline{\alpha}$ 為常數──相當於 equal chirp rate spacing──使得錯誤率可以最小化(至少就所設計的系統而言)。圖B為模擬的錯誤率，調變的符號為 BPSK，假設 M &#x3D; 4 個用戶，$\eta &#x3D; T_s W &#x2F; M$。</p><br><img src="https://drive.google.com/thumbnail?id=1_XUzME7VMjMg76fgZKeWE6PCR_SRRd_W&sz=s1024" width="400"><center><font color="cyan">圖B，CMSS 錯誤率，參數按照論文之設定；<br>$M = 4,\ \eta = 8$ 的錯誤率和論文的比較不一致，可能是參數數值精確度的問題。<br>(Gemini 幫我想的理由😜)</font></center><br><p>&emsp;&emsp;不過，這篇論文提出的展頻系統畢竟不是 LoRa，兩者雖然都是 chirp 展頻系統，但是本質上還是不一樣：這篇論文的 CMSS 把展頻訊號當成類似正交碼的 chip signal，符號仍為 BPSK 或是 QAM；而 LoRa 是直接將展頻訊號代表符號，為 constant envelope。</p><br><p>&emsp;&emsp;LoRaWAN 的介紹可以參考[2]，這份文件也介紹 LoRa 的一些基本概念，推薦閱讀。其實網路上有很多介紹 LoRa 波型的論文，我介紹的這篇比較像是 CSS 的一個早期設計(殘念)，之後有時間再來介紹真正討論 LoRa 的 paper。</p><h3 id="Heltec-V3"><a href="#Heltec-V3" class="headerlink" title="Heltec V3"></a>Heltec V3</h3><p>&emsp;&emsp;Meshtastic 既然是開源專案，從硬體、韌體到軟體的實現方式就有許多公開在網路上。我使用的硬體是 Heltec 的 V3，處理器為 ESP32-S3FN8 (Espressif)，LoRa 晶片為 SX1262 (Semtech)，韌體和軟體都是直接用別人寫好的。</p><br><p>&emsp;&emsp;來看看 SX1262 的 datasheet。頻率合成器的目標範圍為 150 MHz ~ 960 MHz，幾乎是整個 sub-GHz 的頻帶。中頻在 167 kHz 到 250 kHz 之間，經過 ADC 後才轉換 (DDC) 到基頻做後續的訊號處理，和一般的 SDR 架構相仿；這似乎是目前收發機設計的主流？</p><br><img src="https://drive.google.com/thumbnail?id=1ChVxbr8fc57GwLijwDI_WklFmcYjJ-tf&sz=s1024" width="400"><center><font color="cyan">圖C，SX1262 電路方塊圖。圖片來源：Semtech，SX1262 datasheet[4]。</font></center><br><p>&emsp;&emsp;如圖C所示，SX1262 有 LoRa 和 FSK 兩種調變方式。韌體提供的 LoRa 調變參數包括<strong>調變頻寬</strong> <code>BW_L</code>、<strong>spreading factor</strong> <code>SF</code>、<strong>編碼率</strong> <code>CR</code>、<strong>低資料傳輸率最佳化</strong> <code>LDRO</code>。</p><br><p>&emsp;&emsp;<code>BW_L</code> 表示 RF 頻寬 (DSB)，參數值對應到的頻寬如表A所示。每個 symbol 由 <code>SF</code> 個 bits 組成，故每個 symbol 乘上 $2^{\text{SF}}$ 個 chips。如 SF &#x3D; 6，則每個 symbol 乘上 $2^6 &#x3D; 64$ chips。每個 symbol 以 sweeping 初始的頻率表示，如 SF &#x3D; 6 的 symbol 起始頻率為 $f_c + 2\Delta f$，表示該 symbol 為 000010 [5]。SF 和 symbol rate 的關係如下：</p><p>$$<br>R_s &#x3D; \frac{\text{BW}}{2^{\text{SF}}}<br>$$</p><p>&emsp;&emsp;固定頻寬的情況下，SF 愈大，symbol 被延展得愈長，symbol energy 也就愈大，不過代價是更長的傳輸時間 (time-on-air)。編碼率則是從 1&#x2F;2 到 4&#x2F;5 都有。</p><br><table style="width:650px; margin: 0 auto;">  <tr>    <th style="width:14%;">BW_L</th>    <th style="width:8.6%;">0</th>    <th style="width:8.6%;">1</th>    <th style="width:8.6%;">2</th>    <th style="width:8.6%;">3</th>    <th style="width:8.6%;">4</th>    <th style="width:8.6%;">5</th>    <th style="width:8.6%;">6</th>    <th style="width:8.6%;">7</th>    <th style="width:8.6%;">8</th>    <th style="width:8.6%;">9</th>  </tr>  <tr>    <td>訊號頻寬 (kHz)</td>    <td>7.81</td>    <td>10.42</td>    <td>15.63</td>    <td>20.83</td>    <td>31.25</td>    <td>41.67</td>    <td>62.5</td>    <td>125</td>    <td>250</td>    <td>500</td>  </tr></table><center><font color="cyan">表A，BW_L 對應到的頻寬。資料來源：Semtech，SX1262 datasheet[4]。</font></center><br><p>&emsp;&emsp;LoRa 訊號封包的格式可以參考圖D，preamble 用於同步，長度從 10 ~ 65535 個 symbols；header 用於 explicit mode，提供 payload 的長度、編碼率、CRC有無等資訊。在 implicit mode 則預設接收端知道這些資訊，就不提供 header。</p><br><img src="https://drive.google.com/thumbnail?id=1UlG493hNp9uXretj2VZkoYmTZgcOeFjE&sz=s1024" width="550"><center><font color="cyan">圖D，LoRa 封包格式。圖片來源：Semtech，SX1262 datasheet[4]。</font></center><h2 id="實驗：連接上網路"><a href="#實驗：連接上網路" class="headerlink" title="實驗：連接上網路"></a>實驗：連接上網路</h2><p>&emsp;&emsp;第一次測試結果如圖E，確認可以連結到 Meshtastic 網路。不過或許是天線的原因(還在使用 Heltec V3 原廠附的天線)，傳送訊號的品質不好。</p><br><img src="https://drive.google.com/thumbnail?id=1zbikBc1r8fDWK6fcsZBUKZnH-R86hTED&sz=s1024" width="450"><center><font color="cyan">圖E，左：在 SignalTest 頻道測試，有被中繼節點接收到但是沒有收到機器人回應。<br>右：第一次發現到附近的節點，數量不少。</font></center><br><p>&emsp;&emsp;後來在蝦皮買了 TX915 天線，租屋處頂樓測試的結果…發現了更多節點，但是還是沒有收到 @ab 機器人回應。也許是設定有些問題，或是機器人回應了但是我沒有收到，之後再試試看。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;其實也沒有什麼要說的，<a href="https://www.facebook.com/groups/meshtastictw/">Meshtastic Taiwan</a> 的臉書社團有很多大佬，我有時候看著看著，都覺得我這個通訊工程的研究生到底算哪根蔥？所以我決定抱著好玩的心態來認識 Meshtastic，有些人認真的玩，有些人隨便玩。只是玩玩，這樣就可以降低接觸的門檻，希望大家都來玩玩看。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] BASHCAT, HackMD 筆記, “Meshtastic Taiwan 快速入門指南”, hackmd.io. Available: <a href="https://hackmd.io/@fL8pq60EQsG3RplVzWfGWA/S1m_x-AOA/%2FUAmGpkIzQy-Fc5xKmcyBtQ">https:&#x2F;&#x2F;hackmd.io&#x2F;@fL8pq60EQsG3RplVzWfGWA&#x2F;S1m_x-AOA&#x2F;%2FUAmGpkIzQy-Fc5xKmcyBtQ</a></p><p>[2] Semtech (document), “LoRa® and LoRaWAN®”, semtech.com, Mar. 2024. Available: <a href="https://www.semtech.com/uploads/technology/LoRa/lora-and-lorawan.pdf">https://www.semtech.com/uploads/technology/LoRa/lora-and-lorawan.pdf</a></p><p>[3] S. Hengstler, D. P. Kasilingam and A. H. Costa, “A novel chirp modulation spread spectrum technique for multiple access,” <em>IEEE Seventh International Symposium on Spread Spectrum Techniques and Applications</em>, Prague, Czech Republic, 2002, pp. 73-77 vol.1, doi: 10.1109&#x2F;ISSSTA.2002.1049289.</p><p>[4] Semtech (datasheet), “SX1261&#x2F;2: Long Range, Low Power, sub-GHz RF Transceiver”. Available: <a href="https://cdn.sparkfun.com/assets/6/b/5/1/4/SX1262_datasheet.pdf">https://cdn.sparkfun.com/assets/6/b/5/1/4/SX1262_datasheet.pdf</a></p><p>[5] GW Instek (Youtube), “C-1200 LoRa Tester: (4) LoRa Test Overview”, youtube.com. Available: <a href="https://www.youtube.com/watch?v=vEZ2xDCCvsU">https://www.youtube.com/watch?v=vEZ2xDCCvsU</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/meshtastic-intro/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/meshtastic-intro/"/>
    <published>2026-03-18T00:51:58.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;和撰寫 RTL-SDR 的介紹文章一樣，寫這篇文章也是為了讓自己更熟悉 Meshtastic 設備、操作方式以及運作原理。畢竟買 Meshtastic 也好幾個月了，卻因為天線的緣故一直沒有積極嘗試連上 mesh 網路。</p>
<br>
<img src="https://drive.google.com/thumbnail?id=18GhngBMAQUzrmj-m18HYt16OrCxPPeqc&sz=s1024" width="400">]]>
    </summary>
    <title>Meshtastic 我來了！</title>
    <updated>2026-06-29T01:19:31.428Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="Modeling" scheme="https://yc518suray.github.io/tags/Modeling/"/>
    <category term="OTFS" scheme="https://yc518suray.github.io/tags/OTFS/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;OTFS 是一種新興的通訊技術，也是 NTN 應用的候選波型。這篇會議論文發表於 2017 年，到現在也有一段時間，因為這和我的研究主題密切相關，有必要閱讀。相較於之前讀的論文，這篇算是比較近期的，所以會比較概念性的轉述論文內容。</p><br><img src="https://drive.google.com/thumbnail?id=1DVTG2OLNaG7Gug7krCykt6xr-uDhTPyl&sz=s1024" width="350"><center><font color="cyan">臺南運河，圖文不符。</font></center><span id="more"></span><br><p>&emsp;&emsp;(按：功力不夠，還是只能筆記式的紀錄。不過我也有附上論文資訊，這篇文章大部分內容都是來自該論文。)</p><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>R. Hadani et al., “Orthogonal Time Frequency Space Modulation,” <em>2017 IEEE Wireless Communications and Networking Conference (WCNC)</em>, San Francisco, CA, USA, 2017, pp. 1-6.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;&emsp;5G 的車載通訊和高速(如高鐵)通訊，其通道變化快速，4G 常用的 OFDM 調變優勢不再。OTFS 將符號調變在一個 2D 的正交基底上，每一個符號經歷的通道增益近似於常數，有效對抗快速變化的通道特性。OTFS 還可以透過 massive-MIMO，線性增長系統的容量 (capacity)。</p><br><p>&emsp;&emsp;過去的研究大多是在時頻域 (time-frequency domain) 進行調變。也有一些研究聚焦在波型的設計，如 pulse-shaped OFDM，但仍然是在時域的設計。這些都和 OTFS 在 delay-Doppler domain (DD) 的設計不一樣。</p><h3 id="通道模型"><a href="#通道模型" class="headerlink" title="通道模型"></a>通道模型</h3><p>&emsp;&emsp;DD domain 的通道可以 $h(\tau, \nu)$ 表示，</p><p>$$<br>r(t) &#x3D; \iint{s(t - \tau) h(\tau, \nu) e^{j2\pi\nu(t - \tau)}\ d\nu\ d\tau}<br>$$</p><p>&emsp;&emsp;詳細討論可以參考<a href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-time-variant-channel/">這篇文章</a>，上面的 $h(\tau, \nu)$ 就是那篇文章裡的 $V(\nu, \tau)$。這個 $h(\tau, \nu)$ 是稀疏 (sparse) 的，因此用來描述通道的參數數量相對較少。$s(t)$ 到 $r(t)$ 的轉換是一種 Heisenberg transform，不過這個太數學了，暫且不講。</p><h3 id="OTFS-原理"><a href="#OTFS-原理" class="headerlink" title="OTFS 原理"></a>OTFS 原理</h3><p>&emsp;&emsp;OTFS 調變的流程如下 (Tx)：</p><ul><li>$\text{DD symbols}\ \ x[n, m]\ \longrightarrow\ \text{TF symbols}\ \ X[n, m]$ (OTFS transform)</li><li>$\text{TF symbols}\ \ X[n, m]\ \longrightarrow\ \text{time-domain}\ \ s(t)$ (Heisenberg transform)</li></ul><p>&emsp;&emsp;Rx 解調變的流程就倒過來 (Heisenberg transform 的 inverse 為 Wigner transform)。OFDM 可以看作是在第二步驟將訊息調變到 TF symbols，而 OTFS 則是在第一步驟就調變其訊息。<br><br></p><h4 id="Tx-的訊號"><a href="#Tx-的訊號" class="headerlink" title="Tx 的訊號"></a>Tx 的訊號</h4><p>&emsp;&emsp;首先定義：</p><ol><li><p>$\Lambda$ 為 TF domain 的格點(時間間隔 $T$，頻率間隔 $\Delta f$)，</p></li><li><p>一個 packet burst 時間長度為 $NT$，頻寬為 $M\Delta f$。</p></li><li><p>X[n, m] 為一個 packet burst 乘載的符號，共 $N\times M$ 個。</p></li><li><p>傳送波型 $g_{\text{tx}}(t)$ 及對應的接收波型 $g_{\text{rx}}(t)$ 為 bi-orthogonal，即</p></li></ol><p>$$<br>\int{g^{*}_{\text{tx}}(t) g_{\text{rx}}(t - nT) e^{j2\pi m\Delta f(t - nT)}\ dt} &#x3D; \delta(n) \delta(m)<br>$$</p><br><p>&emsp;&emsp;$g_{\text{tx}}(t)$ 的一個例子是寬度為 $T$ 的方波，並且 $T$ 為 $1&#x2F;\Delta f$ 的整數倍。有了上述這些定義，就可以寫出 Heisenberg transform 的數學形式：</p><p>$$<br>s(t) &#x3D; \sum_{m}{\sum_{n}{X[n, m] g_{\text{tx}}(t - nT) e^{j2\pi m\Delta f(t - nT)}}}\tag{1}<br>$$</p><p>&emsp;&emsp;如果我們把 $n$ 去掉，式 (1) 就簡化為 OFDM。仔細觀察式 (1)，會發現式 (1) 可以改寫為</p><p>$$<br>s(t) &#x3D; \iint{h_2(\tau, \nu) g_{\text{tx}}(t - \tau) e^{j2\pi\nu(t - \tau)}\ d\nu d\tau}<br>$$</p><p>&emsp;&emsp;這個形式稱為 operator，$s(t) &#x3D; \Pi_{h_2}(g_{\text{tx}}(t))$，其中</p><p>$$<br>h_2(\tau, \nu) &#x3D; \sum_{m}{\sum_{n}{X[n, m] \delta(\tau - nT) \delta(\nu - m\Delta f)}}<br>$$</p><p>&emsp;&emsp;經過通道 $h(\tau, \nu)$，接收到的訊號可以表示為 $r(t) &#x3D; \Pi_{f}(g_{\text{tx}}(t))$，$f &#x3D; h(\tau, \nu) \ast_{\sigma} h_2(\tau, \nu)$ (twisted convolution)，和一般的 convolution 有些相似，不過沒有交換律，</p><p>$$<br>h(\tau, \nu) \ast_{\sigma} h_2(\tau, \nu) &#x3D; \iint{h(\tau’, \nu’) h_2(\tau - \tau’, \nu - \nu’) e^{j2\pi\nu’(\tau - \tau’)}\ d\tau’d\nu’}<br>$$</p><p>&emsp;&emsp;(請自行推導一遍 $f(\tau, \nu)$)。這裡我們不考慮雜訊 (AWGN)，因為重點是在訊號模型的呈現。<br><br></p><h4 id="Rx-的訊號"><a href="#Rx-的訊號" class="headerlink" title="Rx 的訊號"></a>Rx 的訊號</h4><p>&emsp;&emsp;接收端收到 $r(t)$ 後，通過匹配濾波器後再取樣，得到 $Y[n, m]$。這裡的匹配濾波器輸出稱為 cross-ambiguity function，</p><p>$$<br>\begin{align}<br>A_{g_{\text{rx}}, r}(\tau, \nu)\ &amp;\overset{\Delta}{&#x3D;}\ \int{g_r^{*}(t - \tau) r(t) e^{-j2\pi\nu(t - \tau)}\ dt}\\[10pt]<br>&amp;&#x3D; f(\tau, \nu) \ast_{\sigma} A_{g_{\text{rx}}, g_{\text{tx}}}(\tau, \nu)<br>\end{align}<br>$$</p><p>&emsp;&emsp;理想通道 $h(\tau, \nu) &#x3D; \delta(\tau) \delta(\nu)$ 的情況下，$Y[n, m] &#x3D; X[n, m]$ (不考慮雜訊)。非理想通道、滿足 $h(\tau, \nu)$ 有 bounded finite support、$A_{g_{\text{rx}}, g_{\text{tx}}}$ 在 $(nT, m\Delta f)$ 附近為零的話 (aka 兩波型為正交)，則</p><p>$$<br>Y[n, m] &#x3D; H[n, m] X[n, m]<br>$$</p><p>&emsp;&emsp;這個結果和 OFDM 非常相似，只不過 $H[n, m]$ 由 $h(\tau, \nu)$ 在 DD domain 的積分組成，仍需要複雜的等化器設計。因此接下來介紹 OTFS 調變的關鍵方法，可以將通道轉變為更簡單的形式。</p><br><img src="https://drive.google.com/thumbnail?id=1WJHvb37rxh-jPLNj0onV_70b2YOBwpUi&sz=s1024" width="550"><center><font color="cyan">OTFS 調變流程。</font></center><h4 id="調變方法"><a href="#調變方法" class="headerlink" title="調變方法"></a>調變方法</h4><p>&emsp;&emsp;我們要先介紹 Symplectic Finite Fourier Transform (<strong>SFFT</strong>)，它可以視為是 2D 的 DFT，</p><p>$$<br>\begin{align}<br>&amp;x_p[k, r] &#x3D; \sum_{n &#x3D; 0}^{N - 1}{\sum_{m &#x3D; -M&#x2F;2}^{M&#x2F;2 - 1}{X_p[n, m] e^{-j2\pi(\frac{nk}{N} - \frac{mr}{M})}}}\\[10pt]<br>&amp;X_p[n, m] &#x3D; \frac{1}{MN} \sum_{r &#x3D; 0}^{M - 1}{\sum_{k &#x3D; 0}^{N - 1}{x_p[k, r] e^{j2\pi(\frac{nk}{N} - \frac{mr}{M})}}}<br>\end{align}<br>$$</p><p>&emsp;&emsp;下標 $p$ 表示 periodic，概念和 DFT 一樣，如果我們只關注 $[0, N - 1] \times [0, M - 1]$ 的範圍，那麼 SFFT 和 ISFFT 可以完整表示 $X[n, m]$。2D convolution 對應到轉換後的點乘，這點也和 DFT 一樣。</p><br><p>&emsp;&emsp;將訊息符號(如 QAM)作 ISFFT 後，乘上一個 window，成為 TF domain 的符號。</p><p>$$<br>X[n, m] &#x3D; W_{\text{tx}}[n, m]\ \text{ISFFT}\lbrace x[k, r]\rbrace<br>$$</p><p>&emsp;&emsp;這個操作稱作 OTFS transform。TF domain 的符號透過 Heisenberg transform 變成時域訊號，經過通道來到 Rx 解調，再透過 Wigner transform 變回 TF domain 符號；最後一步就是 SFFT，</p><p>$$<br>y[k, r] &#x3D; \text{SFFT}\lbrace W_{\text{rx}}[n, m] Y[n, m]\rbrace<br>$$</p><p>&emsp;&emsp;那麼我們最關心的通道呢？根據作者的推導，最後得到的 $y[k, r]$ 會是傳輸的訊息符號 $x[k, r]$ 和 windowed response $h_w$ 的卷積，</p><p>$$<br>\begin{align}<br>y[k, r] &amp;&#x3D; \frac{1}{MN} \sum_{m &#x3D; 0}^{M - 1}{\sum_{n &#x3D; 0}^{N - 1}{x[n, m] h_w(\frac{k - n}{NT}, \frac{r - m}{M\Delta f})}}\\[10pt]<br>&amp;\approx x[k, r] h_w(0, 0)<br>\end{align}<br>$$</p><p>&emsp;&emsp;假如沒有 ISI 的話。在這個情況下，整個 $N\times M$ 的格點都可以使用，因為通道被簡化為一個常數，這就是論文一再強調的，「extract the full channel diversity」，使用到所有頻率和時間區間。如果 $(n, m)$ 對應 time-frequency 格點的 index，那麼 $(r, k)$ 就是對應 delay-Doppler 格點的 index，故 OTFS 的訊息是調變在 DD domain 的符號。</p><h3 id="模擬結果"><a href="#模擬結果" class="headerlink" title="模擬結果"></a>模擬結果</h3><p>&emsp;&emsp;未完成。</p><h3 id="結論"><a href="#結論" class="headerlink" title="結論"></a>結論</h3><p>&emsp;&emsp;在多種星座圖大小和 Doppler 頻率的情況下，OTFS 的 block error rate 都較 OFDM 來得低，特別是高 Doppler 的環境下，OTFS 更勝一籌。</p><h2 id="讀後想法"><a href="#讀後想法" class="headerlink" title="讀後想法"></a>讀後想法</h2><p>&emsp;&emsp;這篇會議論文只有六頁，卻能把概念說明清楚，沒有冗餘贅字，寫作風格和 Alamouti code 那篇相似，節奏明快、只講重點。這種風格應該適用於會議報告、演講，之前聽的幾場專題演講的風格也是這樣，比較能吸引受眾的注意力。</p><br><p>&emsp;&emsp;至於論文的主題，OTFS，沒有意外的話就是我的研究主題了。學習 OTFS、瀏覽相關文獻的過程也會認識到以往針對 OFDM 設計的演算法，算是一兼兩顧，摸蛤仔兼洗褲。不過，還是希望之後有時間可以看一些不同領域的論文。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>&emsp;&emsp;無。</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-OTFS-modulation/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-OTFS-modulation/"/>
    <published>2026-03-07T09:18:57.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;OTFS 是一種新興的通訊技術，也是 NTN 應用的候選波型。這篇會議論文發表於 2017 年，到現在也有一段時間，因為這和我的研究主題密切相關，有必要閱讀。相較於之前讀的論文，這篇算是比較近期的，所以會比較概念性的轉述論文內容。</p>
<br>
<img src="https://drive.google.com/thumbnail?id=1DVTG2OLNaG7Gug7krCykt6xr-uDhTPyl&sz=s1024" width="350">
<center><font color="cyan">臺南運河，圖文不符。</font></center>]]>
    </summary>
    <title>論文閱讀：OTFS Modulation</title>
    <updated>2026-03-14T07:49:43.733Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="Modeling" scheme="https://yc518suray.github.io/tags/Modeling/"/>
    <category term="數學" scheme="https://yc518suray.github.io/tags/%E6%95%B8%E5%AD%B8/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;這篇 1963 年的經典論文在通道模型的領域有近兩千次引用，直到最近 (2026) 的期刊論文也都有引用，足見其影響之深遠。</p><span id="more"></span><br><img src="https://drive.google.com/thumbnail?id=1da1SodVseCX-ruHn1-Yz0ewwarkq03Pz&sz=s1024" width="300"><center><font color="cyan">清冽的藍天底下，長崎的 NHK 發射站。</font></center><br><p>&emsp;&emsp;這篇文章旨在把 Bello 的概念說明清楚。時間允許的話，我也會進行模擬 (MATLAB) 來輔助說明這些概念。</p><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>P. Bello, “Characterization of Randomly Time-Variant Linear Channels,” in <em>IEEE Transactions on Communications Systems</em>, vol. 11, no. 4, pp. 360-393, December 1963.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;從標題可得知，這篇論文主要聚焦在隨機線性時變通道的各種面向：time-frequency duality、correlation functions 等，並討論三種通道模型：</p><ul><li>Wide-sense stationary (WSS)</li><li>Uncorrelated scattering (US)</li><li>Wide-sense stationary uncorrelated scattering (WSSUS)</li></ul><p>&emsp;&emsp;看來第三個似乎是集大成者。除了模型的建立，論文也討論該模型的統計性質──因為本質上通道響應帶有隨機性，可以視為隨機過程。</p><br><p>&emsp;&emsp;前提：本論文使用到 complex envelope、low-pass equivalent 的概念。</p><h3 id="System-Functions"><a href="#System-Functions" class="headerlink" title="System Functions"></a>System Functions</h3><p>&emsp;&emsp;首先探討 duality 的概念。如果我們把輸入與輸出訊號(這裡應該是假設 energy signal)寫作時間或頻率的函數 ($X(f) &#x3D; F{x(t)}$)，我們可以得到兩組、互為對偶的運算子 (operator)：</p><p>$$<br>\begin{align}<br>&amp;y(t) &#x3D; O_{tt}[x(t)],\ \ Y(f) &#x3D; O_{ff}[X(f)]\\[10pt]<br>&amp;y(t) &#x3D; O_{tf}[X(f)],\ \ Y(f) &#x3D; O_{ft}[x(t)]<br>\end{align}<br>$$</p><p>&emsp;&emsp;若將這些運算視為輸入訊號與系統基底函數 (system kernel function) 的卷積，則可以寫作：</p><p>$$<br>\begin{align}<br>y(t) &amp;&#x3D; \int{x(t’) K_1(t, t’)\ dt’}\\[10pt]<br>Y(f) &amp;&#x3D; \int{X(f’) K_2(f, f’)\ df’}\\[10pt]<br>y(t) &amp;&#x3D; \int{X(f) K_3(t, f)\ df}\\[10pt]<br>Y(f) &amp;&#x3D; \int{x(t) K_4(f, t)\ dt}<br>\end{align}<br>$$</p><p>&emsp;&emsp;$K_1(t, t’)$ 和 $K_2(f, f’)$ 是一對 double Fourier transform pair，同樣的 $K_3(t, f)$ 和 $K_4(f, t)$ 也是一對；$K_1$ 和 $K_3$ 為 single Fourier transform pair，$K_2$ 和 $K_4$ 也是。另外，$K_1(t, t’)$ 可以看作是對於時間 $t’$ 的一個 impulse input，系統在時間 $t$ 的響應，依此類推。(可以這麼記憶：第一個變數是輸出，第二個變數是輸入。)<br><br></p><h4 id="Delay-和-Doppler"><a href="#Delay-和-Doppler" class="headerlink" title="Delay 和 Doppler"></a>Delay 和 Doppler</h4><p>&emsp;&emsp;接著應用上述的概念。假設一個線性時變通道 $h(t, \tau)$，它的輸入-輸出模型可以寫作</p><p>$$<br>y(t) &#x3D; \int{x(t - \tau) h(t, \tau)\ d\tau}<br>$$</p><p>&emsp;&emsp;$h(t, \tau)$ 其實就是 $K_1(t, t - \tau)$，稱作 <font color="yellow">input delay-spread function</font>，物理意義為「對於發生在 $t - \tau$ 的 impulse，系統在 $t$ 的響應」。同樣的線性時變通道也可以寫作</p><p>$$<br>y(t) &#x3D; \int{x(t - \tau) g(t - \tau, \tau)\ d\tau}<br>$$</p><p>&emsp;&emsp;$g(t, \tau)$ 稱作 <font color="yellow">output delay-spread function</font>，其物理意義為「對於發生在 $t$ 的 impulse，系統在 $t + \tau$ 的響應」，$g(t, \tau) &#x3D; h(t + \tau, \tau)$。對於 causal systems，$h(t, \tau) &#x3D; g(t, \tau) &#x3D; 0\ \ \text{for }\tau &lt; 0$</p><br><p>&emsp;&emsp;同樣的，在頻域也有類似的表示：</p><p>$$<br>Y(f) &#x3D; \int{X(f - \nu) G(f, \nu)\ d\nu}<br>$$</p><p>&emsp;&emsp;$G(f, \nu)$ 就稱作 <font color="yellow">input Doppler-spread function</font>，對應到 system function $G(f, \nu) &#x3D; K_2(f, f - \nu)$。$H(f, \nu) &#x3D; G(f + \nu, \nu)$ 則是 <font color="yellow">outut Doppler-spread function</font>。不難看出 $(h, g)$ 和 $(G, H)$ 之間的對偶關係。</p><br><img src="https://drive.google.com/thumbnail?id=1v4GM55j0C0m9mBU57rFyJnpTWPArPXb6&sz=s1024" width="400"><center><font color="cyan">圖A，$h(t, \tau)$ 的演示。</font></center><br><p>&emsp;&emsp;上述的概念也可以類比到 $K_3(t, f)$ 和 $K_4(f, t)$。首先是 <font color="yellow">time-variant transfer function</font> (作者給的名稱) $T(f, t)$。假設輸入為一 complex exponential，則輸出為</p><p>$$<br>\begin{align}<br>\int{e^{j2\pi f(t - \tau)} h(t, \tau)\ d\tau} &amp;&#x3D; e^{j2\pi ft} \int{h(t, \tau) e^{-j2\pi f\tau}\ d\tau}\\[10pt]<br>&amp;&#x3D; e^{j2\pi ft}\ T(f, t)<br>\end{align}<br>$$</p><p>&emsp;&emsp;即 $T(f, t)$ 是對應到 eigenfunction $e^{j2\pi ft}$ 的 eigenvalue，故</p><p>$$<br>\begin{align}<br>y(t) &amp;&#x3D; H\lbrace x(t)\rbrace\\[10pt]<br>&amp;&#x3D; H\lbrace \int{X(f) e^{j2\pi ft}\ df}\rbrace\\[10pt]<br>&amp;&#x3D; \int{X(f) H\lbrace e^{j2\pi ft}\rbrace\ df}\\[10pt]<br>&amp;&#x3D; \int{X(f) T(f, t) e^{j2\pi ft}\ df}<br>\end{align}<br>$$</p><p>&emsp;&emsp;事實上，$T(f, t)$ 和 $H(f, \nu)$ 是 Fourier transform pair：<font color="Tomato">$T(f, t) &#x3D; F^{-1}\lbrace H(f, \nu)\rbrace$</font> (請自行推導一遍)。並且，根據前面對於 system kernel 的描述，$K_3(t, f) &#x3D; T(f, t) e^{j2\pi ft}$。至於 <font color="yellow">frequency-dependent modulation function</font> $M(t, f)$，和剛才的做法一樣，假設輸入為一 impulse $\delta(t - \tau)$，其頻域表示為 $e^{-j2\pi f\tau}$。則系統輸出為</p><p>$$<br>\begin{align}<br>\int{e^{-j2\pi\tau(f - \nu)} G(f, \nu)\ d\nu} &amp;&#x3D; e^{-j2\pi f\tau} \int{G(f, \nu) e^{2\pi\tau\nu}\ d\nu}\\[10pt]<br>&amp;&#x3D; e^{-j2\pi f\tau} M(\tau, f)<br>\end{align}<br>$$</p><p>&emsp;&emsp;因此(省略推導過程)</p><p>$$<br>Y(f) &#x3D; \int{x(t) M(t, f) e^{-j2\pi ft}\ dt}<br>$$</p><p>&emsp;&emsp;從上面這個式子應該可以理解「frequency-dependent modulation」名稱的由來。Fourier transform pair 的關係：<font color="Tomato">$M(t, f) &#x3D; F\lbrace g(t, \tau)\rbrace$</font> (請自行推導一遍)，並且 $K_4(f, t) &#x3D; M(t, f) e^{-j2\pi ft}$。</p><br><img src="https://drive.google.com/thumbnail?id=1v4GM55j0C0m9mBU57rFyJnpTWPArPXb6&sz=s1024" width="400"><center><font color="cyan">圖B，視覺化呈現 $T(f, t)$。</font></center><h4 id="Delay-Doppler-和-Doppler-Delay"><a href="#Delay-Doppler-和-Doppler-Delay" class="headerlink" title="Delay-Doppler 和 Doppler-Delay"></a>Delay-Doppler 和 Doppler-Delay</h4><p>&emsp;&emsp;前面的數學模型只能呈現 delay 或是 Doppler 的輸入-輸出關係，而不能同時描述兩者。這邊描述的模型則綜合兩者。首先，定義 input delay-spread function $h(t, \tau)$ 的頻域表示為 $U(\tau, \nu)$，$U(\tau, \nu) &#x3D; F\lbrace h(t, \tau)\rbrace$。推導得到</p><p>$$<br>y(t) &#x3D; \int{\int{ {\color{yellow} x(t - \tau)}\ {\color{Tomato} e^{j2\pi\nu t} }\ U(\tau, \nu)\ d\nu}\ d\tau}<br>$$</p><p>&emsp;&emsp;注意<font color="yellow">黃色</font>的部分是 delay spread 的成分，<font color="Tomato">橘紅色</font>的部分是 Doppler spread 的成分，而 $U(\tau, \nu)$ 是特定 delay spread 和特定 Doppler spread 對應的 gain，稱作 <font color="yellow">delay-Doppler-spread function</font>。那麼若是從輸入訊號的頻域表示來看呢？定義 $V(\nu, \tau) &#x3D; F^{-1}\lbrace G(f, \nu)\rbrace$，則可以得到</p><p>$$<br>Y(f) &#x3D; \int{\int{ {\color{Tomato} X(f - \nu)}\ {\color{yellow} e^{-j2\pi f\tau}}\ V(\nu, \tau)\ d\tau}\ d\nu}<br>$$</p><p>&emsp;&emsp;我們把 $V(\nu, \tau)$ 稱作 <font color="yellow">Doppler-delay-spread function</font>。事實上兩者只有相位的差異，</p><p>$$<br>U(\tau, \nu) &#x3D; e^{-j2\pi\nu\tau}\ V(\nu, \tau)<br>$$</p><p>&emsp;&emsp;而這個相位差也很好理解，因為兩者分別是 input delay-spread function 和 output delay-spread function 以變數 $t$ 作 Fourier transform 得到，其實是在表示一樣的東西。</p><br><p>&emsp;&emsp;圖C整理各種函數之間的關係，總共有八個函數，不過關係還算清楚。</p><br><img src="https://drive.google.com/thumbnail?id=1aruc8t1kMbc5RrIa1Mrk5sW2DWMZixiD&sz=s1024" width="500"><center><font color="cyan">圖C，各種函數的關係。</font></center><h3 id="Correlation-Functions"><a href="#Correlation-Functions" class="headerlink" title="Correlation Functions"></a>Correlation Functions</h3><p>&emsp;&emsp;由於線性時變通道的變化帶有隨機性，我們用 correlation functions 來描述通道隨機的特徵。這邊假設 system functions 的 ensemble average 為零。以一個獨立變數的隨機過程為例，其自相關函數會有兩個獨立變數，表示兩個時間的相關性；這篇論文裡的 system functions 有兩個獨立變數，因此其自相關函數會有四個獨立變數，以 input delay-spread function 為例：</p><p>$$<br>E[h^{*}(t, \tau) h(s, \eta)] &#x3D; R_h(t, s; \tau, \eta)<br>$$</p><p>&emsp;&emsp;並且，圖C呈現的關係也適用於自相關函數，比如：</p><p>$$<br>R_T(f, \nu; t, s) &#x3D; \int{\int{R_h(t, s; \tau, \eta)\ e^{j2\pi(\tau f - \eta\nu)}\ d\tau}\ d\eta}<br>$$</p><p>&emsp;&emsp;就是 double (inverse) Fourier transform 的關係。並且</p><p>$$<br>R_U(\tau, \eta; \nu, \mu) &#x3D; e^{j2\pi(\nu\tau - \eta\mu)}\ R_V(\nu, \mu; \tau, \eta)<br>$$</p><p>&emsp;&emsp;(請自行推導一遍，這邊論文好像有寫錯。)其他關係式都可以從圖C的關係來推導。假設輸入訊號也可以用隨機過程來 model，可以得到(請自行推導一遍，頻域也有相似的表示式)：</p><p>$$<br>R_y(t, s) &#x3D; \int{\int{R_x(t - \tau, s - r) R_h(t, s; \tau, t)\ d\tau}\ dr}<br>$$</p><h4 id="WSS-模型"><a href="#WSS-模型" class="headerlink" title="WSS 模型"></a>WSS 模型</h4><p>&emsp;&emsp;根據以上自相關函數的數學表示，首先探討 WSS 模型，aka 自相關函數和當下時間點無關、只和時間差有關；這表示 $h$、$g$、$T$、$M$ 等函數的自相關函數符合這個特性，並且導致 Doppler domain 出現 singularity function ($\delta(\nu)$)，如：</p><p>$$<br>\begin{align}<br>R_U(\tau, \eta; \nu, \mu) &amp;&#x3D; \int{\int{R_h(t, s; \tau, \eta)\ e^{j2\pi(\nu t - \mu s)}\ dt}\ ds}\\[10pt]<br>&amp;&#x3D; \int{e^{j2\pi s(\nu - \mu)}\ ds} \int{R_h(r; \tau, \eta)\ e^{j2\pi\nu r}\ dr}\\[10pt]<br>&amp;&#x3D; \delta(\nu - \mu) P_U(\tau, \eta; \nu)<br>\end{align}<br>$$</p><p>&emsp;&emsp;其中 $r &#x3D; t - s$。它的物理意義是什麼呢？我們從以下兩個式子來看：</p><p>$$<br>\begin{align}<br>R_U(\tau, \eta; \nu, \mu) &amp;&#x3D; \delta(\nu - \mu) P_U(\tau, \eta; \nu)\tag{1}\\[10pt]<br>R_G(f, l; \nu, \mu) &amp;&#x3D; \delta(\nu - \mu) P_G(f, l; \nu)\tag{2}<br>\end{align}<br>$$</p><p>&emsp;&emsp;式 (1) 表示 delay-Doppler-spread function 在相異 Doppler shift 的兩點為<strong>不相關</strong>，也就是說不管 delay 為何，不同的頻率偏移量 $\nu$ 對輸出訊號 $y(t)$ 的貢獻是不相關的；式 (2) 表示系統轉移函數在相異 Doppler shift 的兩點為<strong>不相關</strong>，對於任意頻率 $f$ 而言，不同的頻率偏移量 $\nu$ 的貢獻是不相關的。如果系統函數是 Gaussian 的話，不相關意味著互相獨立，便於分析。</p><br><p>&emsp;&emsp;再仔細思考式 (1) 的物理意義，會發現給定 $\tau$ 和 $\eta$，$P_U$ 可以視為 $\nu$ 軸上的分布。由於 $U$ 是 delay-Doppler domain 的 complex amplitude，$P_U$ 可以視為功率(密度)──$h(t, \tau)$ 和 $h(t, \eta)$ 在 $\nu$ 軸上的 cross power spectral density。$h(t, \tau)$ 為「延遲 $\tau$ 的響應」，$h(t, \eta)$ 為「延遲 $\eta$ 的響應」，這兩個響應如果只有在時間距離很近的時候才明顯相關，表示通道變化快速、短時間內就變得六親不認，對應到 cross power 平均散布在 Doppler shift 上；如果這兩個響應在任何時間距離都高度相關，表示通道幾乎沒有變化(就延遲 $\tau$ 和 $\eta$ 的部分而言)，cross power 集中在 $\nu &#x3D; 0$ 處。</p><h4 id="US-模型"><a href="#US-模型" class="headerlink" title="US 模型"></a>US 模型</h4><p>&emsp;&emsp;US 表示 uncorrelated scattering，可以視為 WSS 的對偶：頻域的自相關函數和當下頻率無關，只和頻率差有關，對應到 delay domain 出現 singularity function。</p><p>$$<br>\begin{align}<br>&amp;R_h(t, s; \tau, \eta) &#x3D; \delta(\tau - \eta) P_h(t, s; \tau)\tag{3}\\[10pt]<br>&amp;R_U(\tau, \eta; \nu, \mu) &#x3D; \delta(\tau - \eta) P_U(\nu, \mu; \tau)\tag{4}<br>\end{align}<br>$$</p><p>&emsp;&emsp;式 (3) 表示對於任意時間點 $t$ 而言，不同 delay 的 gain 是不相關的(每一個 delay 可以視為一個 scatterer，故得名)；而式 (4) 則表示不論 Doppler shift 為何，不同的 delay $\tau$ 對輸出訊號 $y(t)$ 的貢獻是不相關的。在 WSS 模型中，通道在 Doppler domain 的特性為 non-stationary white；而在 US 模型中，通道在 delay domain 的特性為 non-stationary white。</p><br><p>&emsp;&emsp;Non-stationary white 是什麼意思？以 US 模型為例，$h(t, \tau)$ 的自相關函數在給定時間 $t$、$s$ 後，只有在 delay 相等時才相關(否則為零)，此為 white；但是相關的程度仍是 delay variable $\tau$ 的函數，此為 non-stationary。這使得 Fourier transform 積分的變數只剩下 $\tau$，對應到的頻域變數就是頻率差 $\Delta f$，在頻域呈現 WSS 的特性。</p><h4 id="WSSUS-模型"><a href="#WSSUS-模型" class="headerlink" title="WSSUS 模型"></a>WSSUS 模型</h4><p>&emsp;&emsp;WSSUS 模型兼有 WSS 和 US 的特性，如</p><p>$$<br>\begin{align}<br>&amp;R_h(t, t + \Delta t; \tau, \eta) &#x3D; \delta(\tau - \eta) P_h(\Delta t, \tau)\\[10pt]<br>&amp;R_G(f, f + \Delta f; \nu, \mu) &#x3D; \delta(\nu - \mu) P_G(\Delta f, \nu)<br>\end{align}<br>$$</p><p>&emsp;&emsp;Delay-Doppler-spread function 的自相關函數則是</p><p>$$<br>R_U(\tau, \eta; \nu, \mu) &#x3D; \delta(\tau - \eta) \delta(\nu - \mu) P_U(\tau, \nu)<br>$$</p><p>&emsp;&emsp;$U(\tau, \nu)$ 在 delay variable 及 Doppler variable 都是 non-stationary white，意味著不同 delay 的貢獻是不相關的，不同 Doppler shift 的貢獻也是不相關的，$U(\tau, \nu)$ 可以被切成一塊一塊的 delay-Doppler 單元，每一個單元對應到特定的 delay 和 Doppler shift。一個例子是 $N$ 個不相關的 Rayleigh fading channel，每個路徑分別有不同的延遲 $\tau_i$，其模型為</p><p>$$<br>\begin{align}<br>&amp;y(t) &#x3D; \sum_{i &#x3D; 1}^{N}{h_i(t) x(t - \tau_i)}\\[10pt]<br>&amp;h_i(t) &#x3D; \int_{-\infty}^{\infty}{U_i(\nu) e^{j2\pi\nu t}\ d\nu}<br>\end{align}<br>$$</p><p>&emsp;&emsp;$h_i(t)$ 是時變的 Rayleigh fading gain，根據 Clarke’s model，其功率密度頻譜為經典的 Doppler spectrum；每個路徑的 $h_i(t)$ 是不相關的，且由於 $h_i(t)$ 為 WSS，功率頻譜密度只有一個變數 $\nu$。</p><p>$$<br>\begin{align}<br>R_h(t, s) &amp;&#x3D; E\left[\int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{U_i^{*}(\nu) e^{-j2\pi\nu t} U_i(\mu) e^{j2\pi\mu s}\ d\nu}\ d\mu}\right]\\[10pt]<br>&amp;&#x3D; \int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{R_{U_i}(\nu, \mu) e^{j2\pi(\mu s - \nu t)}\ d\nu}\ d\mu}\\[10pt]<br>&amp;&#x3D; \int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{\delta(\nu - \mu) P_{U_i}(\nu) e^{j2\pi(\mu s - \nu t)}\ d\nu}\ d\mu}\\[10pt]<br>&amp;&#x3D; \int_{-\infty}^{\infty}{P_{U_i}(\nu) e^{j2\pi\nu(s - t)}\ d\nu}\\[10pt]<br>(\text{令 }\Delta t &#x3D; s - t)\ \ &amp;&#x3D; \int_{-\infty}^{\infty}{P_{U_i}(\nu) e^{j2\pi\nu \Delta t}\ d\nu}<br>\end{align}<br>$$</p><br><p>&emsp;&emsp;回到 WSSUS 模型，time-frequency domain 的系統轉移函數 $T(f, t)$，在時間以及頻率方面都是 WSS 的，呼應 delay 和 Doppler shift 方面的性質。</p><p>$$<br>R_T(f, f + \Delta f; t, t + \Delta t) &#x3D; R_T(\Delta f, \Delta t)<br>$$</p><p>&emsp;&emsp;最後，透過前述的關係式和 Fourier transform，可以得到下面這些簡潔許多的形式：</p><p>$$<br>\begin{alignat}{2}<br>&amp;P_U(\tau, \nu) &#x3D; P_V(\nu, \tau) \equiv S(\tau, \nu)\ &amp;&amp;{\text{(Scattering Function)}}\tag{5}\\[10pt]<br>&amp;P_G(\Delta f, \nu) &#x3D; P_H(\Delta f, \nu) \equiv P(\Delta f, \nu)\ &amp;&amp;{\text{(Doppler Cross-Power Spectral Density)}}\tag{6}\\[10pt]<br>&amp;P_h(\Delta t, \tau) &#x3D; P_g(\Delta t, \tau) \equiv Q(\Delta t, \tau)\ &amp;&amp;{\text{(Delay Cross-Power Spectral Density)}}\tag{7}\\[10pt]<br>&amp;R_M(\Delta t, \Delta f) &#x3D; R_T(\Delta f, \Delta t) \equiv R(\Delta f, \Delta t)\ &amp;&amp;{\text{(Time-Frequency Correlation Function)}}\tag{8}<br>\end{alignat}<br>$$</p><p>&emsp;&emsp;式 (5) 表示 delay-Doppler domain 的功率分布，式 (6) 表示在特定的頻率差之下，Doppler variable 的功率分布。式 (7) 表示在不同的時間差之下，delay variable 的功率分布，當 $\Delta t &#x3D; 0$，則簡化為 power delay profile。式 (8) 代表在 WSSUS 模型下，$M(t, f)$ 和 $T(f, t)$ 在兩變數的相關性是一致的。</p><h4 id="無線電波通道的性質描述"><a href="#無線電波通道的性質描述" class="headerlink" title="無線電波通道的性質描述"></a>無線電波通道的性質描述</h4><p>&emsp;&emsp;這一節討論 Quasi-WSSUS (QWSSUS) 模型：在短時間區間、有限頻寬內，通道可以視為 WSSUS。假設輸入訊號滿足以下條件：</p><p>$$<br>\begin{align}<br>W &amp;\ll B_C\\[10pt]<br>T + \Delta &amp;\ll T_C<br>\end{align}<br>$$</p><p>&emsp;&emsp;當中 $\Delta$ (應該)是<span class="hint--info hint--rounded hint--top" data-hint="論文原文是寫 multipath spread" ontouchstart>系統的 rms 延遲</span>，$T_c$ 和 $B_c$ 是 coherence time 和 coherence bandwidth。論文接著論述為什麼這樣的條件可以將通道視為 QWSSUS。從輸出訊號的自相關函數看起：</p><p>$$<br>E[y^{*}(t) y(s)] &#x3D; \iint{X^{*}(f) X(l) R_T(f, l; t, s) e^{-j2\pi(ft - ls)}\ df}\ dl\\[10pt]<br>$$</p><p>&emsp;&emsp;經過變數變換得到</p><p>$$<br>E[y^{*}(t - \frac{\Delta t}{2}) y(t + \frac{\Delta t}{2})] &#x3D; \iint{X^{*}(f - \frac{\Delta f}{2}) X(f + \frac{\Delta f}{2}) R_{f, t}(\Delta t, \Delta f) e^{j2\pi(f\Delta t + \Delta f t)}\ df}\ d\Delta f<br>$$</p><p>&emsp;&emsp;其中 $R_{f, t}(\Delta t, \Delta f) &#x3D; R_T(f - \frac{\Delta f}{2}, f + \frac{\Delta f}{2}; t - \frac{\Delta t}{2}, t + \frac{\Delta t}{2})$。根據上述條件，$R_{t, f}$ 在有效積分範圍內(幾乎)不受 $f$ 和 $t$ 的變動而影響、獨立於 $f$ 和 $t$，故</p><p>$$<br>R(\Delta t, \Delta f) &#x3D; R_{0, 0}(\Delta t, \Delta f)<br>$$</p><p>&emsp;&emsp;也就是說從輸入訊號的符號長度和頻寬來看，通道可視為 WSSUS。</p><h3 id="標準通道模型"><a href="#標準通道模型" class="headerlink" title="標準通道模型"></a>標準通道模型</h3><p>&emsp;&emsp;這裡的「標準」原文是 canonical，指的是基於有限自由度 (DoF) 而建立的、簡化過的模型，可以分為兩類：<strong>Sampling models</strong> 適用於 time-limited 或 band-limited 的訊號或通道，而 <strong>power series models</strong> 則要求系統函數可以展開為 power series。</p><h2 id="讀後想法"><a href="#讀後想法" class="headerlink" title="讀後想法"></a>讀後想法</h2><p>&emsp;&emsp;這篇論文的用語沒有我想像的過時，說明得也很清楚。不過，由於是第一次碰到這些概念，還無法深刻了解一些數學式的意義，接下來要慢慢熟悉這些概念。後半段以 sampling 和 power series 建立實用模型的段落沒有看，之後有需要再回來讀。</p><h2 id="附錄"><a href="#附錄" class="headerlink" title="附錄"></a>附錄</h2><p>&emsp;&emsp;[1]也討論了時變通道的 system function 和 correlation function，並且整理如下圖。</p><br><img src="https://drive.google.com/thumbnail?id=1G7_dANvvHc-EXuvOfxjMBvVyaMt8QxRY&sz=s1024" width="500"><center><font color="cyan">圖，把所有關係都說清楚的一張圖。圖片來源：[1] Figure 6.9，p. 117。</font></center><br><p>&emsp;&emsp;讀過這篇論文後，應該對這張圖的架構比較有想法(其實 Molisch 這本教科書裡也講得蠻詳細)。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] A. F. Molisch, <em>Wireless Communications</em>, second edition, John Wiley &amp; Sons Ltd, 2001.</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-time-variant-channel/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-time-variant-channel/"/>
    <published>2026-03-06T17:09:01.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;這篇 1963 年的經典論文在通道模型的領域有近兩千次引用，直到最近 (2026) 的期刊論文也都有引用，足見其影響之深遠。</p>]]>
    </summary>
    <title>論文閱讀：Randomly Linear Time-Variant Channel</title>
    <updated>2026-03-12T13:46:25.688Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="OFDM" scheme="https://yc518suray.github.io/tags/OFDM/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;這篇2002年的論文探討兩種用來估測通道的 OFDM pilot 設計，雖然是二十幾年前的想法，還是可以提供一些 insights。這篇論文用到 LS 和 MMSE 等估測的概念，所以這篇文章會補充一些推導的過程。</p><span id="more"></span><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>S. Coleri, M. Ergen, A. Puri and A. Bahai, “Channel estimation techniques based on pilot arrangement in OFDM systems,” in <em>IEEE Transactions on Broadcasting</em>, vol. 48, no. 3, pp. 223-229, Sept. 2002.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;&emsp;論文假設通道形如</p><p>$$<br>h[n; \lambda] &#x3D; \sum_{i &#x3D; 0}^{r - 1}{h_i\ e^{j\frac{2\pi}{N} f_{D_i}T n}\ \delta[\lambda - \tau_i]},\ \ 0 \leq n \leq N - 1<br>$$</p><p>&emsp;&emsp;其中 $r$ 為路徑數，$h_i$ 為 complex gain，$f_{D_i}$ 為第 $i$ 條路徑的 Doppler shift，$\lambda$ 為 delay index，$\tau_i$ 為第 $i$ 條路徑的 delay，$T$ 為取樣週期。<font color="yellow">假設</font>沒有 ISI，則接收到的訊號去除 CP 經 DFT 轉換得到</p><p>$$<br>Y[k] &#x3D; X[k] H[k] + I[k] + W[k],\ \ k &#x3D; 0, 1, \cdots, N - 1<br>$$</p><p>&emsp;&emsp;其中</p><p>$$<br>H[k] &#x3D; \sum_{i &#x3D; 0}^{r - 1}{h_i\ e^{j\pi f_{D_i} T}\ \text{sinc}(f_{D_i} T)\ e^{-j\frac{2\pi \tau_i}{N} k}}<br>$$</p><p>&emsp;&emsp;而 $I(k)$ 為 ICI 的項(在這篇論文裡沒有談論如何消除這項 ICI)，</p><p>$$<br>I[k] &#x3D; \sum_{i &#x3D; 0}^{r - 1}{\sum_{m &#x3D; 0, m \neq k}^{N - 1}{\frac{h_i X[m]}{N}\ \frac{1 - e^{j2\pi (f_{D_i} T - k + m)}}{1 - e^{j\frac{2\pi}{N} (f_{D_i} T - k + m)}}\ e^{-j\frac{2\pi \tau_i}{N} m}}}<br>$$</p><p>&emsp;&emsp;$W[k]$ 則是 AWGN 的頻域表示 (DFT)。重申一次這是假設無 ISI 的情況。</p><br><p>&emsp;&emsp;此外，和論文不同，這篇文章裡 DFT 的定義為</p><p>$$<br>X[k] &#x3D; \sum_{n &#x3D; 0}^{N - 1}{x[n] W_N^{kn}},\ \ 0 \leq k \leq N - 1<br>$$</p><h3 id="Block-type-arrangement"><a href="#Block-type-arrangement" class="headerlink" title="Block-type arrangement"></a>Block-type arrangement</h3><img src="https://drive.google.com/thumbnail?id=1v3M6irPZ1LVQKUDR9jNz5wPK20PiSmVr&sz=w1024" width="500"><center><font color="cyan">圖A，block-type pilot arrangement，改自論文的 Fig. 2。</font></center><br><p>&emsp;&emsp;根據論文，接收到的訊號以矩陣表示為</p><p>$$<br>Y &#x3D; X F h + W<br>$$</p><p>&emsp;&emsp;其中 $X$ 是對角線元素為 $X[k]$ 的對角矩陣，$F$ 為 DFT 矩陣，$h$ 為時域的通道脈衝響應。但是<font color="Tomato">我覺得這個式子有點問題</font>，因為若 $h$ 是 column vector，則不能表示 Doppler shift 的特徵，只能表示 static channel response。</p><br><p>我認為正確的表示為</p><p>$$<br>Y &#x3D; B X + W<br>$$</p><p>&emsp;&emsp;其中 $X &#x3D; [X[0], X[1], \cdots, X[N - 1]]^T$ (column vector)，並且</p><p>$$<br>[B]_{k, m} &#x3D;<br>\begin{cases}<br>\begin{align}<br>I_{k, m} &amp;&#x3D; \sum_{i &#x3D; 0}^{r - 1}{\frac{h_i}{N} \frac{1 - e^{j2\pi(f_{D_i}T + m - k)}}{1 - e^{j\frac{2\pi}{N}(f_{D_i}T + m - k)}} e^{-j\frac{2\pi}{N} m \tau_i}}&amp;,\ \ m \neq k\\[10pt]<br>H_k &amp;&#x3D; H[k]&amp;,\ \ m &#x3D; k<br>\end{align}<br>\end{cases}<br>$$</p><p>&emsp;&emsp;也就是說，$N \times N$ 矩陣 $B$ 形如</p><p>$$<br>B &#x3D;<br>\begin{bmatrix}<br>H_0 &amp; I_{0, 1} &amp; I_{0, 2} &amp; \cdots &amp; I_{0, N - 1}\\[10pt]<br>I_{1, 0} &amp; H_1 &amp; I_{1, 2} &amp; \cdots &amp; I_{1, N - 1}\\[10pt]<br>I_{2, 0} &amp; I_{2, 1} &amp; H_2 &amp; \cdots &amp; I_{2, N - 1}\\[10pt]<br>\vdots &amp; \vdots &amp; \vdots &amp; \ddots &amp; \vdots\\[10pt]<br>I_{N - 1, 0} &amp; I_{N - 1, 1} &amp; I_{N - 1, 2} &amp; \cdots &amp; H_{N - 1}<br>\end{bmatrix}<br>$$</p><p>&emsp;&emsp;其實只是把上一節的式子寫成矩陣形式。一般來說，$B$ 並不是 Hermitian matrix。只不過這樣改寫後，似乎沒辦法用 LS 方法估計；論文的寫法，$Y &#x3D; X F h + W$，應該是從估計的角度看待訊號模型，也就是說 <font color="Tomato">ICI 的項被歸類為誤差或雜訊</font>。</p><br><p>&emsp;&emsp;根據論文，LS 估計量為</p><p>$$<br>H_{LS} &#x3D; X^{-1} Y<br>$$</p><p>&emsp;&emsp;(這裡的 $X$ 是一開始定義的對角矩陣。)在 slow fading 的情況下，可以在一個 block 裡使用 decision feedback equalizer：前一個 symbol 估計的 $H[k]$ 拿來還原、偵測符號後，用判斷出的符號來更新 $H[k]$。可想而知，fast fading 的情況下 comb-type pilot 的表現會比較好。</p><h3 id="Comb-type-arrangement"><a href="#Comb-type-arrangement" class="headerlink" title="Comb-type arrangement"></a>Comb-type arrangement</h3><img src="https://drive.google.com/thumbnail?id=1KAcQE8_afrXgFs-wB-gNF2NKUyA2UC10&sz=w1024" width="500"><center><font color="cyan">圖B，comb-type pilot arrangement，改自論文的 Fig. 2。</font></center><br><p>&emsp;&emsp;在 $N_c$ 個子載波裡均勻挑 $N_p$ 個作為 pilot，$X_p[m] &#x3D; X[mL]$，$L &#x3D; N_c &#x2F; N_p$，剩餘的則承載資料。其 LS 估計為 $H_p[m] &#x3D; Y_p[m] &#x2F; X_p[m],\ \ m &#x3D; 0, 1, \cdots, N_p - 1$。若考量 ICI 的影響，可以考慮使用複雜度較高的 MMSE，或是簡化的 linear MMSE。</p><br><p>&emsp;&emsp;由於 comb-type pilot arrangement 只有估計特定幾個 sub-channel，完整的 $H_e[k]$ 需要透過內插 (interpolation) 得到。方法有：</p><ul><li>Linear interpolation</li><li>Second-order interpolation</li><li>Zero-padding (time domain)</li><li>Spline cubic interpolation (MATLAB <code>spline</code>)</li><li>low-pass interpolation (MATLAB <code>interp</code>)</li></ul><p>&emsp;&emsp;Second order 的做法如下(可以從拉格朗日插值多項式推得)：</p><p>$$<br>\begin{align}<br>H_e[k] &amp;&#x3D; H_e[mL + l]\\[10pt]<br>&amp;&#x3D; c_1 H_p[m - 1] + c_0 H_p[m] + c_{-1} H_p[m + 1]<br>\end{align}<br>$$</p><p>&emsp;&emsp;其中</p><p>$$<br>\begin{align}<br>c_1 &amp;&#x3D; \frac{\alpha(\alpha - 1)}{2}\\[10pt]<br>c_0 &amp;&#x3D; -(\alpha - 1)(\alpha + 1),\ \ \alpha &#x3D; \frac{l}{L}\text{   (論文這邊寫錯)}\\[10pt]<br>c_{-1} &amp;&#x3D; \frac{\alpha(\alpha + 1)}{2}<br>\end{align}<br>$$</p><p>&emsp;&emsp;$L &#x3D; N_c &#x2F; N_p$。圖C簡單呈現這幾種方法的效果。</p><br><img src="https://drive.google.com/thumbnail?id=1BODaJijL4O4Gsxst8RIMg_W_HOCvHT9O&sz=w1024" width="400"><center><font color="cyan">圖C，不同內插方法的效果。</font></center><h3 id="模擬結果"><a href="#模擬結果" class="headerlink" title="模擬結果"></a>模擬結果</h3><p>&emsp;&emsp;參照論文 Table I (見下表A)的參數，模擬結果如圖D和圖E所示。調變方式為 BPSK (圖D)和 16QAM (圖E)，block 長度為 26 OFDM symbols (論文是採用 30 OFDM symbols)，通道估計方法為 LS 估計；通道採用 Rayleigh fading，Doppler 頻率為 70 Hz (這裡是指 Jake’s model 得到的 time-varying channel gain，而不是前述的通道描述)，通道的 static impulse response 如下所示：</p><p>$$<br>\begin{align}<br>h[n] &amp;&#x3D; \alpha[n] + 0.3162\alpha[n - 2] + 0.1995\alpha[n - 17]\\[10pt]<br>&amp;+ 0.1296\alpha[n - 36] + 0.1\alpha[n - 75] + 0.1\alpha[n - 137]<br>\end{align}<br>$$</p><br><img src="https://drive.google.com/thumbnail?id=1v4GM55j0C0m9mBU57rFyJnpTWPArPXb6&sz=w1024" width="450"><center><font color="cyan">圖D，block-type 以及 comb-type 的錯誤率表現，BPSK。</font></center><br><img src="https://drive.google.com/thumbnail?id=1v4GM55j0C0m9mBU57rFyJnpTWPArPXb6&sz=w1024" width="450"><center><font color="cyan">圖E，block-type 以及 comb-type 的錯誤率表現，16QAM。</font></center><br><p>&emsp;&emsp;從表A提供的參數，可以推算 coherence time $T_c \approx 1 &#x2F; f_m &#x3D; 1 &#x2F; 70 &#x3D; 14.3 \text{ms}$，而 OFDM symbol duration $T_{sym} &#x3D; 1024 &#x2F; 44100 \approx 23.2 \text{ms}$，可以視為 <font color="Tomato">fast fading</font> 的環境；time dispersion 的部分，由於 CP 的長度大於最大延遲 ($\tau_{max} &#x3D; 137$ samples)，ISI 的影響不大。</p><br><table style="width:300px; margin: 0 auto;">  <tr>    <th style="width:50%;">參數</th>    <th>參數值</th>   </tr>  <tr>    <td>FFT Size</td>    <td>1024</td>  </tr>  <tr>    <td>實際使用子載波數</td>    <td>128</td>  </tr>  <tr>    <td>Pilot Ratio</td>    <td>1 / 8</td>  </tr>  <tr>    <td>CP 長度</td>    <td>256</td>  </tr>  <tr>    <td>取樣率</td>    <td>44.1 kHz</td>  </tr>  <tr>    <td>系統頻寬</td>    <td>17.5 kHz<br>(包含 guard band)</td>  </tr>  <tr>    <td>調變方式</td>    <td>BPSK，16QAM</td>  </tr></table><center><font color="cyan">表A，MATLAB 模擬的 OFDM 系統參數，改自論文 TABLE. I。</font></center><br><p>&emsp;&emsp;由圖D和圖E可知，comb-type arrangement 的效果比 block-type arrangement 好，而 comb-type arrangement 當中，又以 low-pass interpolation 的效果最好。論文還比較不同 Doppler shift 下的錯誤率表現，也是類似的結果。</p><h3 id="結論"><a href="#結論" class="headerlink" title="結論"></a>結論</h3><p>&emsp;&emsp;這篇論文回顧兩種使用 pilot 訊號的通道估計方法。模擬結果顯示，comb-type pilot 加上 low-pass interpolation 的效果最好(特別是 fast fading 的通道)。此外，low Doppler frequency 的情況下可以使用 decision feedback。</p><h2 id="讀後想法"><a href="#讀後想法" class="headerlink" title="讀後想法"></a>讀後想法</h2><p>&emsp;&emsp;在繪製不同內插方法的效果時，一開始是用複數點作為示範，但是複數可以視為二維的資料，要呈現複數點內插效果的話，其實應該要在三維空間繪製曲線，才能確實呈現。後來改用實數點作為示範，就比較直覺，因為是一維的資料。</p><br><p>&emsp;&emsp;這篇論文比較像是一篇文獻回顧，整理一些已經提出的做法，以模擬結果做比較。方法比較簡單，不過從中可以知道，通道的特性對通訊系統設計來說至關重要。</p><h2 id="附錄"><a href="#附錄" class="headerlink" title="附錄"></a>附錄</h2><p>&emsp;&emsp;[1] 這篇1997年的會議論文提出前面描述的通道的頻域表示，但是沒有提供推導過程。我就在這裡推導一下。首先，接收到的訊號(不考慮 AWGN 的話)在一個 OFDM symbol useful part 期間為</p><p>$$<br>y[n] &#x3D; \sum_{i &#x3D; 0}^{r - 1}{h_i\ e^{j\frac{2\pi}{N} f_{D_i}T n}\ x[\left(n - \tau_i\right)_N]},\ \ 0 \leq n \leq N - 1<br>$$</p><p>&emsp;&emsp;(注意在這個系統有使用 CP。)其中</p><p>$$<br>x[\left(n - \tau_i\right)_N] &#x3D; \frac{1}{N} \sum_{l &#x3D; 0}^{N - 1}{X[l] e^{j\frac{2\pi}{N} (n - \tau_i) l}}<br>$$</p><p>&emsp;&emsp;所以接收到訊號 $y[n]$ 的頻域表示，$Y[k]$，可以寫為</p><p>$$<br>\begin{align}<br>Y[k] &amp;&#x3D; \sum_{n &#x3D; 0}^{N - 1}{\sum_{i &#x3D; 0}^{r - 1}{h_i\ e^{j\frac{2\pi}{N} f_{D_i}T n}\ x[\left(n - \tau_i\right)_N]\ e^{-j\frac{2\pi}{N}k n}}}\\[10pt]<br>&amp;&#x3D; \sum_{n &#x3D; 0}^{N - 1}{\sum_{i &#x3D; 0}^{r - 1}{\sum_{l &#x3D; 0}^{N - 1}{\frac{h_i}{N}\ e^{j\frac{2\pi}{N} f_{D_i}T n}\ X[l] e^{j\frac{2\pi}{N} (n - \tau_i) l}\ e^{-j\frac{2\pi}{N}k n}}}}\\[10pt]<br>&amp;&#x3D; \sum_{i &#x3D; 0}^{r - 1}{\sum_{l &#x3D; 0}^{N - 1}{\frac{h_i}{N} X[l] e^{-j\frac{2\pi}{N} \tau_i l} \sum_{n &#x3D; 0}^{N - 1}{e^{j\frac{2\pi}{N} (f_{D_i}T + l - k) n}}}}\\[10pt]<br>&amp;&#x3D; \sum_{i &#x3D; 0}^{r - 1}{\sum_{l &#x3D; 0}^{N - 1}{\frac{h_i}{N} X[l] e^{-j\frac{2\pi}{N} \tau_i l} \frac{1 - e^{j2\pi(f_{D_i}T + l - k)}}{1 - e^{j\frac{2\pi}{N}(f_{D_i}T + l - k)}}}}<br>\end{align}<br>$$</p><p>&emsp;&emsp;ICI 的項，$I(k)$，大概是如此形式。至於 $H(k)$ 的形式，應該是因為 $f_{D_i}T$ 的值很小 ($f_{D_i}$ 和 Tx-Rx 相對移動的速率有關，而 $T$ 通常很小)，所以有以下的近似：</p><p>$$<br>\begin{align}<br>\frac{1 - e^{j2\pi f_{D_i}T}}{1 - e^{j\frac{2\pi}{N}f_{D_i}T}} &amp;\approx \frac{1 - e^{j2\pi f_{D_i}T}}{1 - (1 + j\frac{2\pi}{N}f_{D_i}T)}\\[10pt]<br>&amp;&#x3D; \frac{1 - e^{j2\pi f_{D_i}T}}{-j\frac{2\pi}{N}f_{D_i}T}\\[10pt]<br>&amp;&#x3D; e^{j\pi f_{D_i}T} \frac{\sin(\pi f_{D_i}T)}{\pi f_{D_i}T &#x2F; N}<br>\end{align}<br>$$</p><p>&emsp;&emsp;這樣就和論文的式子一致了。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Yuping Zhao and Aiping Huang, “A novel channel estimation method for OFDM mobile communication systems based on pilot signals and transform-domain processing,” <em>1997 IEEE 47th Vehicular Technology Conference. Technology in Motion</em>, Phoenix, AZ, USA, 1997, pp. 2089-2093 vol.3.</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-channel-est-ofdm/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-channel-est-ofdm/"/>
    <published>2026-02-19T09:52:33.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;這篇2002年的論文探討兩種用來估測通道的 OFDM pilot 設計，雖然是二十幾年前的想法，還是可以提供一些 insights。這篇論文用到 LS 和 MMSE 等估測的概念，所以這篇文章會補充一些推導的過程。</p>]]>
    </summary>
    <title>論文閱讀：Channel Estimation with Pilot Arrangement</title>
    <updated>2026-03-19T07:14:51.061Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;這篇是 Alamouti code 的原始論文，於1998年出版。Alamouti code 是一種 space-time block code (STBC)，在 MIMO-OFDM 等多天線系統廣泛應用。</p><span id="more"></span><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>Siavash M. Alamouti, “A Simple Transmit Diversity Technique for Wireless Communications”, <em>IEEE Journal On Select Areas in Communications</em>, Vol. 16, No. 8, Oct. 1998.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;&emsp;在本篇論文，作者提出一種新的 diversity 方法，並且將它與傳統的 MRRC 比較。因此論文首先介紹 MRRC，再闡明提出的新方法，並比較兩種方法的錯誤率表現。</p><h3 id="背景介紹"><a href="#背景介紹" class="headerlink" title="背景介紹"></a>背景介紹</h3><p>&emsp;&emsp;下世代通訊要求在多變的環境也能順利通訊，提高資料傳輸速率與通訊品質的同時，成本也必須維持住。因此，基地台的複雜度應該比行動裝置的複雜度更高。</p><br><p>&emsp;&emsp;面對多路徑衰減，不考慮增加傳輸功率或是頻寬的話，diversity 是一個選項。Time diversity 在 slow fading 的情況效果不佳，frequency diversity 在 flat fading 的情況效果不好；<span class="hint--info hint--rounded hint--top" data-hint="或稱 space diversity" ontouchstart>antenna diversity</span> 適用的範圍較廣，但是要應用在基地台而不是行動裝置，才符合經濟效益。其中一個例子是 <a href="">space-time trellis coding</a>，但是它的複雜度較高。</p><br><p>&emsp;&emsp;這篇論文提出的方法在 Tx 有兩支天線，Rx 有一支天線，其 diversity order 與經典的 MRRC (Tx 一支天線，Rx 兩支天線)相同，複雜度低。這個方法可以有效對抗多路徑衰減，增加通訊系統的效能。</p><h3 id="MRRC-scheme"><a href="#MRRC-scheme" class="headerlink" title="MRRC scheme"></a>MRRC scheme</h3><p>Maximal-Ratio Receive Combining (MRRC) 的基頻架構圖如圖A所示。</p><br><img src="https://drive.google.com/thumbnail?id=120KH6Q7AfZpPmwEiJnVWgGY-rxDCdoHC&sz=w1024" width="500"><center><font color="cyan">圖A，two-branch MRRC 架構圖，改自論文 Fig. 1。</font></center><br><p>&emsp;&emsp;MRRC 的作法為 ${\bf \tilde{s_0}} &#x3D; {\bf h_0^* r_0} + {\bf h_1^* r_1} &#x3D; (\alpha_0^2 + \alpha_1^2){\bf s_0} + {\bf h_0^* n_0} + {\bf h_1^* n_1}$，和<a href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-linear-diversity-brennan/">之前論文</a>看到的不太一樣，所以在附錄推導一次。Combining 的結果送去 ML detector，decision rule 為</p><p>$$<br>(\alpha_0^2 + \alpha_1^2 - 1)\lvert {\bf s_i}\rvert^2 + \lvert {\bf \tilde{s_0} - s_i}\rvert^2 \leq (\alpha_0^2 + \alpha_1^2 - 1)\lvert {\bf s_k}\rvert^2 + \lvert {\bf \tilde{s_0} - s_k}\rvert^2<br>$$</p><p>&emsp;&emsp;則判斷為 $\bf s_i$。訊號為 PSK 的話，上式可以簡化為</p><p>$$<br>\lvert{\bf \tilde{s_0} - s_i}\rvert^2 \leq \lvert{\bf \tilde{s_0} - s_k}\rvert^2<br>$$</p><h3 id="Alamouti-的新方法"><a href="#Alamouti-的新方法" class="headerlink" title="Alamouti 的新方法"></a>Alamouti 的新方法</h3><h4 id="Case-1-2-Tx-1-Rx"><a href="#Case-1-2-Tx-1-Rx" class="headerlink" title="Case 1, 2 Tx 1 Rx"></a>Case 1, 2 Tx 1 Rx</h4><p>&emsp;&emsp;作者提出的新方法，架構圖如圖B所示。這個架構可以分為三個部分：</p><ul><li>Encoding &amp; transmit sequence</li><li>Combing scheme</li><li>ML detection，這部分和 MRRC 是一樣的</li></ul><br><img src="https://drive.google.com/thumbnail?id=14wTHp7B9zHcZNs35FnL7yBhGYmNWNd_p&sz=w1024" width="500"><center><font color="cyan">圖B，two-branch Alamouti's technique 架構圖，改自論文 Fig. 2。</font></center><br><p>&emsp;&emsp;從圖B可知，transmit sequence 是一種 space-time coding，因為符號被安排在不同天線(空間)與不同區間(時間)。實際上也可以用 space-frequency coding。假設 Tx 0 傳送到 Rx 的 channel gain 為 ${\bf h_0} &#x3D; \alpha_0 e^{j\theta_0}$，Tx 1 傳送到 Rx 的 channel gain 為 ${\bf h_1} &#x3D; \alpha_1 e^{j\theta_1}$ (假設連續兩 symbol 期間通道不變)，則 Rx 收到的連續兩個 symbol 為</p><p>$$<br>\begin{align}<br>{\bf r_0} &amp;&#x3D; {\bf h_0 s_0} + {\bf h_1 s_1} + {\bf n_0}\\[10pt]<br>{\bf r_1} &amp;&#x3D; -{\bf h_0 s_1^{*}} + {\bf h_1 s_0^{*}} + {\bf n_1}<br>\end{align}<br>$$</p><p>&emsp;&emsp;Combiner 的輸出為</p><p>$$<br>\begin{align}<br>{\bf \tilde{s_0}} &amp;&#x3D; {\bf h_0^{*} r_0} + {\bf h_1 r_1^{*}} &#x3D; (\alpha_0^2 + \alpha_1^2){\bf s_0} + {\bf h_0^{*} n_0} + {\bf h_1 n_1^{*}}\\[10pt]<br>{\bf \tilde{s_1}} &amp;&#x3D; {\bf h_1^{*} r_0} - {\bf h_0 r_1^{*}} &#x3D; (\alpha_0^2 + \alpha_1^2){\bf s_1} - {\bf h_0 n_1^{*}} + {\bf h_1^{*} n_0}<br>\end{align}<br>$$</p><p>&emsp;&emsp;注意 combiner 的輸出和 MRRC combiner 輸出是一樣的，除了雜訊成分的相位，因此理論上效能也會和 MRRC 一樣。</p><h4 id="Case-2-2-Tx-M-Rx"><a href="#Case-2-2-Tx-M-Rx" class="headerlink" title="Case 2, 2 Tx M Rx"></a>Case 2, 2 Tx M Rx</h4><p>&emsp;&emsp;論文裡給出 M &#x3D; 2 的例子。令 Tx 0 到 Rx 0 的 channel gain 為 $\bf h_0$，Tx 0 到 Rx 1 為 $\bf h_2$，Tx 1 到 Rx 0 為 $\bf h_1$，Tx 1 到 Rx 1 為 $\bf h_3$。Rx 0 和 Rx 1 第一組收到的 symbol 為 $({\bf r_0, r_2})$，第二組收到 $({\bf r_1, r_3})$。收到的 symbol 可以表示為</p><p>$$<br>\begin{align}<br>{\bf r_0} &amp;&#x3D; {\bf h_0 s_0} + {\bf h_1 s_1} + {\bf n_0}\\[10pt]<br>{\bf r_1} &amp;&#x3D; -{\bf h_0 s_1^{*}} + {\bf h_1 s_0^{*}} + {\bf n_1}\\[10pt]<br>{\bf r_2} &amp;&#x3D; {\bf h_2 s_0} + {\bf h_3 s_1} + {\bf n_2}\\[10pt]<br>{\bf r_3} &amp;&#x3D; -{\bf h_2 s_1^{*}} + {\bf h_3 s_0^{*}} + {\bf n_3}<br>\end{align}<br>$$</p><p>&emsp;&emsp;而 combiner 的輸出為 (ML detector 的輸入)</p><p>$$<br>\begin{align}<br>{\bf \tilde{s_0}} &amp;&#x3D; {\color{yellow} {\bf h_0^{*} r_0} + {\bf h_1 r_1^{*}} } + {\color{magenta} {\bf h_2^{*} r_2} + {\bf h_3 r_3^{*}} }\\[10pt]<br>{\bf \tilde{s_1}} &amp;&#x3D; {\color{yellow} {\bf h_1^{*} r_0} - {\bf h_0 r_1^{*}} } + {\color{magenta} {\bf h_3^{*} r_2} - {\bf h_2 r_3^{*}} }<br>\end{align}<br>$$</p><p>&emsp;&emsp;經過整理可以得知它的 diversity order 和 4-branch MRRC scheme 是一樣的。仔細觀察，可以發現 combiner 的輸出其實是兩支天線各自 combiner 輸出的和(式子裡以顏色區分)。</p><h3 id="錯誤率模擬"><a href="#錯誤率模擬" class="headerlink" title="錯誤率模擬"></a>錯誤率模擬</h3><p>&emsp;&emsp;錯誤率如下圖C，調變方式為 coherent BPSK，通道為 uncorrelared Rayleigh fading，並且假設通道對於接收端為已知 (perfect knowledge)。由於發射端多了一個天線，但是總發射功率不變，因此每一支發射天線的功率減半。從圖C也看得出來，Alamouti code 和 MRRC 有著 3 dB 的差距，就是由於天線平均功率的減少。(不過實際上每個符號的傳送能量應該不變？)</p><br><img src="https://drive.google.com/thumbnail?id=1BJEvHTtsirg6_14oPbha9womw_55AbuN&sz=w1024" width="400"><center><font color="cyan">圖C，MRRC 和 Alamouti code 的錯誤率比較。</font></center><h3 id="實作上的考量"><a href="#實作上的考量" class="headerlink" title="實作上的考量"></a>實作上的考量</h3><p>&emsp;&emsp;前面提過單支天線傳輸功率減半，這其實有好處：可以用更輕巧便宜的功率放大器。關於天線的設置，主要的要求就是天線之間互不相關 (correlation 小於0.7)，跟天線之間的距離相關，發射與接收天線的設置基本上會是一樣的。</p><br><p>&emsp;&emsp;訊號處理的部分，這篇論文假設通道對於接收端是已知的，可能是透過 <strong>pilot symbol</strong> 來估計。通道變化太快的話 (e.g. fast fading)，估計就會失準，所以 pilot symbol 的出現頻率至少要等於對通道的取樣率。此外，因為主要是發射端的天線數量增加，為了估計不同通道，pilot symbols 的數量也會增加。(相較之下，若是接收端天線數量增加、發射端維持一支天線，只需要一個 pilot symbol 就可以估計全部通道。)</p><br><p>&emsp;&emsp;最後討論 <strong>soft failure</strong>。當接收端有好幾個天線，其中一個不能 work，接收端仍可以 decode 傳送的符號，只是效能降低，這就是 soft failure 的意思。那麼 Alamouti code 其實也是有這項特性的，以 two-branch 為例子，當一個發射端天線不能 work，系統就退化為 single-channel，還是可以運作。</p><h3 id="結論"><a href="#結論" class="headerlink" title="結論"></a>結論</h3><p>&emsp;&emsp;這篇論文提出的方法不僅可以提供和 MRRC 一樣的 diversity order，且讓基地台而不是行動裝置來負擔硬體的複雜度(i.e. 天線數)。這個方法不需要 Rx 回傳 CSI 給 Tx，且運算複雜度和 MRRC 相仿。</p><h2 id="讀後想法"><a href="#讀後想法" class="headerlink" title="讀後想法"></a>讀後想法</h2><p>&emsp;&emsp;這篇論文相當簡潔有力，論述清楚，而且實用價值相當高，因為行動裝置(如手機)的硬體複雜度降低，有助於當時行動通訊和數據傳輸的發展。論文提出的方法，其數學描述也很簡單，應用於 massive MIMO 的話應該可以用矩陣描述，所以還是要好好複習線性代數。</p><h2 id="附錄"><a href="#附錄" class="headerlink" title="附錄"></a>附錄</h2><p>&emsp;&emsp;MRRC 的係數 $a$，$b$ 推導如下。假設 combiner 輸出為 ${\bf \tilde{s_0}} &#x3D; a r_0 + b r_1$，則</p><p>$$<br>\begin{align}<br>{\bf \tilde{s_0}} &amp;&#x3D; a(h_0 s_0 + n_0) + b(h_1 s_0 + n_1)\\[10pt]<br>&amp;&#x3D; (a h_0 + b h_1)s_0 + a n_0 + b n_1<br>\end{align}<br>$$</p><p>&emsp;&emsp;平均的 SNR 為</p><p>$$<br>\frac{\text{E}[\lvert(a h_0 + b h_1)s_0\rvert^2]}{\text{E}[\lvert a n_0 + b n_1\rvert^2]} &#x3D; \frac{\lvert a h_0 + b h_1\rvert^2}{\lvert a\rvert^2 + \lvert b\rvert^2} \frac{\text{E}[\lvert s_0\rvert^2]}{\text{E}[\lvert n_0\rvert^2]}<br>$$</p><p>&emsp;&emsp;由柯西不等式 $\lvert a h_0 + b h_1\rvert^2 \leq (\lvert a\rvert^2 + \lvert b\rvert^2) (\lvert h_0\rvert^2 + \lvert h_1\rvert^2)$，可知等號成立時的平均 SNR 會達到最大值，即</p><p>$$<br>[a\ \ b] &#x3D; k [h_0^{*}\ \ h_1^{*}]<br>$$</p><p>&emsp;&emsp;其中 $k$ 為大於零的實數常數。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>&emsp;&emsp;無。</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-diversity-alamouti/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-diversity-alamouti/"/>
    <published>2026-02-10T08:24:31.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;這篇是 Alamouti code 的原始論文，於1998年出版。Alamouti code 是一種 space-time block code (STBC)，在 MIMO-OFDM 等多天線系統廣泛應用。</p>]]>
    </summary>
    <title>論文閱讀：Alamouti code</title>
    <updated>2026-02-13T13:38:30.655Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><p>&emsp;&emsp;這是一篇1959年的論文，作者任職於 MIT 的林肯實驗室，該單位與美國國防部合作進行許多研究計畫。原來六十多年前 diversity 的想法就已經有人探討了；不過話說回來，OFDM 也是幾十年前就提出的概念，這些技術得以實現，硬體的演進扮演關鍵角色。</p><span id="more"></span><br><p>&emsp;&emsp;這篇論文說明三種當時已提出的 diversity 技法，可以用於雷達和導航系統，對軍方來說具有實用性。</p><h2 id="論文資訊"><a href="#論文資訊" class="headerlink" title="論文資訊"></a>論文資訊</h2><p>D. G. Brennan, “Linear Diversity Combining Techniques”, <em>PROCEEDINGS OF THE IRE</em>, 1959, June.</p><h2 id="論文內容"><a href="#論文內容" class="headerlink" title="論文內容"></a>論文內容</h2><p>&emsp;&emsp;Diversity 技巧是用來對付 fading 的。以下便來介紹三種現有(1959)的 diversity 技法，並且<span class="hint--info hint--rounded hint--top" data-hint="那時候以類比通訊為主，不過作者也提到可以轉化為數位通訊的BER" ontouchstart>以 SNR 作為評估標準</span>。</p><h3 id="基礎假設"><a href="#基礎假設" class="headerlink" title="基礎假設"></a>基礎假設</h3><p>&emsp;&emsp;這篇論文使用 local rms statistic，定義如下：</p><p>$$<br>x(t) &#x3D; [\frac{1}{T}\int_{t - T}^{t}{[e(\tau)]^2 d\tau}]^{1&#x2F;2} &#x3D; \sqrt{\langle e^2\rangle}<br>$$</p><p>&emsp;&emsp;(這不是常見的 ensemble average。) $T$ 在幾微秒到幾毫秒之間，”local” 指的就是在這樣短的時間區間內。Diversity combining techniques 可以分為兩類：<strong>predetection</strong> 或 <strong>postdetection</strong>。假設有 $N$ 個 diversity channels，$f_j(t)$ 為接收到的訊號(包含雜訊與干擾)，我們<span class="hint--info hint--rounded hint--top" data-hint="實際上就是 independent channel 的條件" ontouchstart>假設以下條件</span>：</p><p>&emsp;&emsp;(A) 雜訊為 additive 且獨立於傳輸訊號，$f_j(t) &#x3D; s_j(t) + n_j(t)$。</p><p>&emsp;&emsp;(B) $s_j(t)$ 為 <strong>locally coherent</strong>，即 $s_j(t) &#x3D; x_j m(t)$，其中 $x_j$ 為實數，$\overline{s_j^2} &#x3D; x_j^2 \overline{m^2} &#x3D; x_j^2$。</p><p>&emsp;&emsp;(C) $\overline{n_i n_j} &#x3D; \overline{n_i}\ \overline{n_j}\ \ \text{if}\ i \neq j$ (locally)，$\overline{n_i} &#x3D; 0$。</p><p>&emsp;&emsp;(D) $x_j$ 在觀察區間 $T_1$ 內，不同 channel 之間為互相獨立，$T_1$ 在幾分鐘到幾小時之間。</p><p>&emsp;&emsp;這裡假設 $x_j$ 為 Rayleigh 分布(就 $T_1$ 尺度的觀察而言)。基本上，經過 combination 的訊號形如</p><p>$$<br>f(t) &#x3D; a_1 f_1(t) + \cdots + a_N f_N(t) &#x3D; \sum_{j &#x3D; 1}^{N}{a_j f_j(t)}<br>$$</p><h3 id="Selection-Diversity"><a href="#Selection-Diversity" class="headerlink" title="Selection Diversity"></a>Selection Diversity</h3><p>&emsp;&emsp;假設 local noise power 為常數，$\overline{n_j^2} &#x3D; 1$，$E[x_j^2] &#x3D; 1$，則 power ratio $P_j &#x3D; x_j^2 &#x2F; \overline{n_j^2}$ 的 pdf 為 $g(p_j) &#x3D; e^{-p_j}$。Selection combining 的作法是找到 local power ratio 最大的 channel，$P &#x3D; \text{max } P_j$，$k &#x3D; \text{arg }\max_j\  P_j$，並切換到該 channel，即</p><font color="yellow">$$a_j =\begin{cases}\begin{align}\end{align}1,\ \ &\text{for } j = k\\\\[10pt]0,\ \ &\text{for } j \neq k\end{cases}$$</font><p>&emsp;&emsp;因此，$P$ 的 cdf 為 $\text{Prob}[P \leq p] &#x3D; (1 - e^{-p})^N$，mean 為 $E[P] &#x3D; \sum_{k &#x3D; 1}^{N}{\frac{1}{k}}$。</p><h3 id="Maximal-Ratio-Diversity"><a href="#Maximal-Ratio-Diversity" class="headerlink" title="Maximal-Ratio Diversity"></a>Maximal-Ratio Diversity</h3><img src="https://drive.google.com/thumbnail?id=1_hsaSYUQr7CcfV2wLDwoNhbsidSMxXbv&sz=w1024" width="400"><center><font color="cyan">圖A，一個 N = 2 的 postdetection combining 例子，改自論文 Fig. 4。</font></center><br><p>&emsp;&emsp;由柯西不等式可得</p><p>$$<br>\begin{align}<br>(\sum_{j &#x3D; 1}^{N}{a_j x_j})^2 &amp;\leq (\sum_{j &#x3D; 1}^{N}{a_j^2 \overline{n_j^2}})\ (\sum_{j &#x3D; 1}^{N}{\frac{x_j^2}{\overline{n_j^2}}})\\[10pt]<br>&amp;&#x3D; (\sum_{j &#x3D; 1}^{N}{a_j^2 \overline{n_j^2}})\ (\sum_{j &#x3D; 1}^{N}{P_j})<br>\end{align}<br>$$</p><p>&emsp;&emsp;把訊號和雜訊的部分分別整理為</p><p>$$<br>s(t) &#x3D; \sum_{j &#x3D; 1}^{N}{a_j s_j(t)},\ \ n(t) &#x3D; \sum_{j &#x3D; 1}^{N}{a_j n_j(t)}<br>$$</p><p>&emsp;&emsp;得到 $f(t) &#x3D; s(t) + n(t)$，$f(t)$ 的 local power ratio 為 $P &#x3D; \frac{\overline{s^2}}{\overline{n^2}}$。經過一番推導，可以得到 $P \leq \sum_{j &#x3D; 1}^{N}{P_j}$，也就是說 power ratio 的最大值為 $\sum_{j &#x3D; 1}^{N}{P_j}$，發生於 <font color="yellow">$a_j &#x3D; x_j &#x2F; \overline{n_j^2}$</font> (from 柯西不等式)。</p><br><p>&emsp;&emsp;假如 $E[P_j] &#x3D; 1$，則 $E[P] &#x3D; N$，和 selection combining 比較，maximal-ratio combining 更能善用 diversity 的優勢。$P$ 的分布為 Gamma distribution。</p><h3 id="Equal-Gain-Diversity"><a href="#Equal-Gain-Diversity" class="headerlink" title="Equal-Gain Diversity"></a>Equal-Gain Diversity</h3><img src="https://drive.google.com/thumbnail?id=1QudRGPFu0ektISLmDk1wp14j9itz8wz1&sz=w1024" width="400"><center><font color="cyan">圖B，一個 N = 2 的例子，改自論文 Fig. 6。<br>有關 AGC 的簡介，請見附錄。</font></center><br><p>&emsp;&emsp;Equal-gain combining 的作法就是 <font color="yellow">$a_j &#x3D; 1$</font>。根據條件 (B)，$\overline{s^2} &#x3D; (\sum_{j &#x3D; 1}^{N}{x_j})^2$，$\overline{n^2} &#x3D; \sum_{j &#x3D; 1}^{N}{\overline{n_j^2}} &#x3D; \sum_{j &#x3D; 1}^{N}{1} &#x3D; N$，local power ratio 為</p><p>$$<br>P &#x3D; \frac{(\sum_{j &#x3D; 1}^{N}{x_j})^2}{N}<br>$$</p><p>&emsp;&emsp;至於 mean local power ratio，注意</p><p>$$<br>P &#x3D; \frac{1}{N} (\sum_{j &#x3D; 1}^{N}{x_j^2} + \sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{x_i x_j}})<br>$$</p><p>&emsp;&emsp;故</p><p>$$<br>\begin{align}<br>E[P] &amp;&#x3D; \frac{1}{N} (\sum_{j &#x3D; 1}^{N}{E[x_j^2]} + \sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{E[x_i] E[x_j]}})\\[10pt]<br>&amp;&#x3D; 1 + \frac{1}{N} \sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{r^2}}\\[10pt]<br>&amp;&#x3D; 1 + (N - 1) r^2<br>\end{align}<br>$$</p><p>&emsp;&emsp;因為 $x_j$ 互相獨立，且 $E[x_j^2] &#x3D; 1$，$E[x_j] &#x3D; r$。Equal-gain combining 和 max-ratio combining 都是 N 的線性函數，但斜率不同。</p><h3 id="效能比較"><a href="#效能比較" class="headerlink" title="效能比較"></a>效能比較</h3><p>&emsp;&emsp;首先比較 mean local power ratio，以 single channel (沒有使用 diversity)的 mean power ratio為基準(圖C)。</p><br><img src="https://drive.google.com/thumbnail?id=1rCstSq7VpTU9ZxFaP18KgtMpEuHugSLY&sz=w1024" width="400"><center><font color="cyan">圖C，不同 combining 技法的 average SNR，改自論文 Fig. 8。</font></center><br><p>&emsp;&emsp;接著比較 $N &#x3D; 2$ 的情況下，local power 的分布，見圖D。圖D的橫軸為「power level 大於對應 level 值的機率」，縱軸為「相對於 single-channel <span class="hint--info hint--rounded hint--top" data-hint="cdf 值為0.5對應到的 power level" ontouchstart>power median</span> 的 power level」(dB 尺度)，其實就是呈現 local power 的機率分布，把累積分布圖的橫軸和縱軸對調、尺度調整就可以得到。(這裡我混用 SNR 和 power，因為兩者的值一樣。)</p><br><img src="https://drive.google.com/thumbnail?id=14rhl9vdlDwZvKLV6a1IlcxGj8jsjWkSP&sz=w1024" width="350"><center><font color="cyan">圖D，不同 combining 技法的 local power 分布，改自論文 Fig. 9。</font></center><br><p>&emsp;&emsp;論文也給出 $N &#x3D; 3, 4, 6, 8$ 的比較，隨著 $N$ 愈大，selection combining 的表現落後 max-ratio 和 equal-gain 愈多。</p><h3 id="其他情況的討論"><a href="#其他情況的討論" class="headerlink" title="其他情況的討論"></a>其他情況的討論</h3><p>&emsp;&emsp;論文後半部討論不同條件下的 combining techniques，並提出對應的修正。這些條件如下：</p><ul><li>當 $x_j$ 並非 Rayleigh 分布</li><li>當不同 channel gain 並非不相關(因此也不是互相獨立)</li><li>當 $\overline{n_j^2}$ 不再固定為常數</li><li>當 $\overline{n_i n_j} &#x3D; 0$ 的假設不再成立</li><li>pre-detection 和 post-detection 的討論</li><li>長期觀察下的系統變異 (variability)</li><li>當 $s_j(t)$ 為 locally coherent 的假設不再成立</li><li>一些其他討論</li></ul><p>&emsp;&emsp;這裡只呈現 correlated fading，以及 pre-detection 和 post-detection 的討論。其他部分請參考論文。</p><br><p>&emsp;&emsp;首先是 <strong>correlated fading</strong>。論文呈現 $N &#x3D; 2$，selection diversity 方法的 local power 分布情況(呈現方式如圖D)，當相關係數 $\rho$ 愈趨近於1，分布函數就愈往低功率的方向移動(i.e. 指定發生機率，對應到的 power level 愈小)。至於 mean local power，maximal-ratio 的方法<font color="yellow">不受到 correlated fading 的影響</font> ($P &#x3D; \sum_{j &#x3D; 1}^{N}{P_j}$)；equal-gain 方法則會隨著相關係數愈趨近於1，其效果愈趨近於 maximal-ratio scheme。還記得 equal-gain scheme 的 mean local power (correlated fading 的情況)：</p><p>$$<br>\begin{align}<br>E[P] &amp;&#x3D; 1 + \frac{1}{N}\sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{E[x_i x_j]}}\\[10pt]<br>&amp;&#x3D; 1 + \frac{1}{N}\sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{\left(\sigma_x^2 \rho_{ij} + E[x_i] E[x_j]\right)}}\\[10pt]<br>&amp;&#x3D; 1 + \frac{1}{N}\sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{\left((1 - E[x_i]^2) \rho_{ij} + E[x_i] E[x_j]\right)}}\\[10pt]<br>&amp;&#x3D; 1 + \frac{1}{N}\sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{\left(\rho_{ij} (1 - r^2) + r^2\right)}}<br>\end{align}<br>$$</p><p>當 $\rho_{ij} \rightarrow 1$，</p><p>$$<br>\begin{align}<br>\lim_{\rho_{ij} \rightarrow 1}E[P] &amp;&#x3D; 1 + \frac{1}{N}\sum_{j &#x3D; 1}^{N}{\sum_{i \neq j}{\left(1 - r^2 + r^2\right)}}\\[10pt]<br>&amp;&#x3D; 1 + (N - 1) &#x3D; N<br>\end{align}<br>$$</p><p>&emsp;&emsp;而 selection diversity 方法則是相反，相關係數愈趨近於1，mean local power 愈小。這個論文沒有仔細說明，不過可以直覺的想：任兩個通道高度相關的話，不管選擇哪一個通道差別都不大，因此會趨近於單通道的表現，i.e. 失去 diversity 的優勢。</p><br><p>&emsp;&emsp;接著來討論 <strong>pre-detection 和 post-detection 的差異</strong>。Pre-detection 需要加上調整相位的電路，才能保證滿足前述的條件 (B)。對於 FM 系統，由於 threshold effect 導致 detector 輸出的變動，不適合使用 post-detection (特別是 equal-gain combiner)。這是比較實務上的考量。</p><h3 id="結論"><a href="#結論" class="headerlink" title="結論"></a>結論</h3><p>&emsp;&emsp;並沒有所謂「最佳的 diversity 系統」，應該要根據不同的條件來選用不同的 combining 技巧。不過考慮到複雜度和效能，equal-gain combining 應該會成為主流。(按：1959年的結論。)</p><h2 id="讀後想法"><a href="#讀後想法" class="headerlink" title="讀後想法"></a>讀後想法</h2><p>&emsp;&emsp;這篇論文的年代久遠，是類比通訊的時代，所以幾乎沒有對數位通訊的討論。不過基本的概念還是可以套用在數位通訊，比如說把 local rms value 改為 discrete statistic、SNR 轉換為 BER，應該可以從數位通訊的角度來檢視 diversity combining techniques。</p><h2 id="附錄"><a href="#附錄" class="headerlink" title="附錄"></a>附錄</h2><p>&emsp;&emsp;AGC (<strong>A</strong>utomatic <strong>G</strong>ain <strong>C</strong>ontrol) 是一種 closed-loop feedback 電路，常見於收音機的接收機電路(例如接收 AM 訊號)。AGC 在訊號強度小時增加增益、訊號強度大時減少增益，確保接收機輸出到喇叭的音量動態範圍是合適的。</p><br><img src="https://www.allaboutcircuits.com/uploads/articles/TB_AGC_blockdiagram.JPG" width="300"><center><font color="cyan">圖E，AGC 的類比電路實現，在 DSP 則有 AGC 的演算法實現。<br>圖片來源：allaboutcircuits.com，[2]。</font></center><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] wikipedia, “自動增益控制”. Available: <a href="https://zh.wikipedia.org/zh-tw/%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A%E6%8E%A7%E5%88%B6">https://zh.wikipedia.org/zh-tw/%E8%87%AA%E5%8A%A8%E5%A2%9E%E7%9B%8A%E6%8E%A7%E5%88%B6</a></p><p>[2] Robert Keim, “Understanding Automatic Gain Control”, allaboutcircuits.com. Accessed in Feb. 2016. Available: <a href="https://www.allaboutcircuits.com/technical-articles/understanding-automatic-gain-control/">https://www.allaboutcircuits.com/technical-articles/understanding-automatic-gain-control/</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-linear-diversity-brennan/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/paper-linear-diversity-brennan/"/>
    <published>2026-02-09T02:34:36.000Z</published>
    <summary>
      <![CDATA[<p>&emsp;&emsp;這是一篇1959年的論文，作者任職於 MIT 的林肯實驗室，該單位與美國國防部合作進行許多研究計畫。原來六十多年前 diversity 的想法就已經有人探討了；不過話說回來，OFDM 也是幾十年前就提出的概念，這些技術得以實現，硬體的演進扮演關鍵角色。</p>]]>
    </summary>
    <title>論文閱讀：Linear Diversity Combining Techniques</title>
    <updated>2026-03-02T04:04:49.251Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="讀後隨想" scheme="https://yc518suray.github.io/categories/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/"/>
    <category term="電影" scheme="https://yc518suray.github.io/tags/%E9%9B%BB%E5%BD%B1/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>&emsp;&emsp;回到家以後，在 Netflix 一口氣看了這兩部電影，非常的撼動人心，所以寫了這篇文章來分享。之後除了文學作品外，電影、音樂、其他形式的作品感想，應該都會以「讀後隨想」的標題來分享。(懶得再成立其他分類了，而且既然是文本，用「讀」的也沒錯吧？)</p><span id="more"></span><br><p>&emsp;&emsp;這兩部電影的性質差異相當大，不過卻圍繞著一個大主題；「<font color="yellow"><strong>真實 (reality)</strong></font>」。怎麼說？繼續看下去吧。</p><h2 id="「春風化雨」-Dead-Poets-Society"><a href="#「春風化雨」-Dead-Poets-Society" class="headerlink" title="「春風化雨」 (Dead Poets Society)"></a>「春風化雨」 (Dead Poets Society)</h2><img src="https://m.media-amazon.com/images/M/MV5BMDYwNGVlY2ItMWYxMS00YjZiLWE5MTAtYWM5NWQ2ZWJjY2Q3XkEyXkFqcGc@._V1_FMjpg_UX1000_.jpg" width="300"><center><font color="cyan">電影海報。圖片來源：IMDb，</font><a href="https://www.imdb.com/title/tt0097165/"><font color="cyan">連結</font></a></center><h3 id="電影資訊"><a href="#電影資訊" class="headerlink" title="電影資訊"></a>電影資訊</h3><ul><li>電影名稱：「春風化雨」，或譯「死亡詩社」 (Dead Poets Society)</li><li>導演：Peter Wier (也執導 The Truman Show)</li><li>編劇：Tom Schulman</li><li>製作：Touchstone Pictures，Silver Screen Partners IV</li><li>上映年份：1989</li></ul><h3 id="隨想：如何觸碰真實"><a href="#隨想：如何觸碰真實" class="headerlink" title="隨想：如何觸碰真實"></a>隨想：如何觸碰真實</h3><p>&emsp;&emsp;在寄宿學校開學的第一天，Neil 和老朋友碰頭、認識了新朋友 Todd。這群男孩知道怎麼應付繁重的學業、回應學校和父母的期待，將來不是醫生、律師，就是銀行家、政治家，未來的道路儼然已經為他們鋪好。直到第一堂英文課，新來的老師、也是寄宿學校校友的 Keeting 帶給他們不一樣的體驗：他們來到校史文物櫃前，凝視著照片裡古早以前的校友，那些和他們一般年紀、稚嫩又不可一世的男孩。Keeting 在男孩們背後，故意用虛幻縹緲的聲調低語：</p><br><blockquote><p><em>Car - pe di - em</em></p></blockquote><br><p>&emsp;&emsp;「<strong>Carpe diem</strong>」是拉丁文，意思是「把握當下」。視覺加上聽覺的引導，讓他們彷彿身歷其境，感受到時間將會、也必然會在自己身上無情的流逝；Keeting 很會嘛！他對他們說，詩不是拿來評分、測量的，詩是用來感受、抒發、探索、喊叫！在這些男孩眼裡，詩完全是新的東西，和那些一直以來習於應付的科目不一樣，而且充滿力量：詩從日常語言逃逸、與規矩對抗，這不正是寄宿學校沉悶生活的最佳對手？</p><br><p>&emsp;&emsp;於是，一群學生便仿效 Keeting N 年前在這間學校的事蹟，由 Neil 起頭，一群人趁夜溜去森林裡的山洞裡，宣示死亡詩社 (dead poet society，當年由 Keeting 建立)的復活。老實說，電影看到這裡，我就覺得樣板的氣息太重：<strong>寄宿學校</strong> + <strong>年輕有熱情的老師</strong> + <strong>受到老師啟發的學生</strong>，那麼接下來肯定就是演一些反抗體制、和學校與父母對抗的故事吧？大抵是如此，但是電影的主題卻圍繞著「真實」打轉，偏離了樣板的道路。</p><br><p>&emsp;&emsp;在秘密集會的山洞裡，不僅是讀詩、作詩，大家跳舞、放歌、發想各種點子；在山洞外，也紛紛行動以實踐那句話：「<strong>Carpe diem</strong>」！大膽積極的追求愛人、無所畏懼的挑戰頑固體制、充滿熱情的探尋志向，死亡詩社的各位把握當下，讓虛度許多時光的我看著，為他們喝采的同時也為自己感到悲哀。(所以我盡量不看校園題材的作品XD)</p><br><p>&emsp;&emsp;我們的主角 Neil 發現自己著迷於演戲，準備參與劇團的公演，但是他的父親卻突然出現在宿舍房間，嚴厲的警告 Neil ，要他專心於學業，不准再碰演戲的事。身為台灣人，這是我們相當熟悉的語境，Neil 的家庭狀況也是我們所熟悉的：父母好不容易爬上中產階級的社會地位，花大把錢把子女送去私校就讀，就是為了一圓階級翻身的美夢。Neil 很清楚，父母的期望、自己的志願皆然，所以他快要崩潰了，跑去向 Keeting 求助。Keeting 建議他向父親坦白，而且只有這個辦法；然而，Neil 選擇瞞著父親，同時也瞞著 Keeting、假裝已經沒事了，在大家面前展現自己最擅長的──表演。</p><br><p>&emsp;&emsp;當 Neil 看見父親出現在觀眾席後方，仍舊壓抑著各種情緒，順利的把戲演完，博得滿堂彩。我們跟著 Neil 回到家裡，看著他彷彿下定決心，戴上樹枝頭冠，儀式性的取出父親抽屜裡藏著的手槍；<strong>如果不能在餘後的人生全心投入演戲，還不如直到死前的最後一刻都奮力演出</strong>！Neil 的死是戲劇性的，不管對他自己、父母還是電影劇情而言，都是如此。</p><br><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/2c/St._Andrew%27s_School_Delaware_Front_Lawn.jpg/2560px-St._Andrew%27s_School_Delaware_Front_Lawn.jpg" width="450"><center><font color="cyan">電影取景自St. Andrew's School，Middletown DE。<br>圖片來源：Clemens Robinson，Wikimedia Commons，</font><a href="https://commons.wikimedia.org/wiki/File:St._Andrew%27s_School_Delaware_Front_Lawn.jpg"><font color="cyan">連結</font></a></center><br><p>&emsp;&emsp;得知 Neil 死訊的 Todd 和朋友們在大雪紛飛的草地上吶喊，Keeting 則是坐在 Neil 的位子上，發現那本自己 N 年前製作的書冊，摀著臉痛哭起來。Keeting 並沒有特別向學生們提及自己與死亡詩社的往事(蠢事)，想必也是充滿著魯莽、荒唐卻真實無比的。「真實」帶來的動力極大，但是本該寬廣的世界卻蓋上一座鐵籠；觸動到「真實」的男孩們就像是理想氣體模型裡的氣體分子，彼此碰撞、向四面八方前進，卻不知道鐵籠是多麼缺乏韌性，以至於衝撞上去，可能失去生命。Neil 直到生命的最後，都無法向父親坦白自己的內心，覺得父親是不可能被說服的，同時也認知到自己的理想──他的「真實」，是不可能妥協、當作不存在的。Neil 只能繼續前進，即使前方就是一切的終結。</p><br><p>&emsp;&emsp;<b>這是少年的無知、短視嗎？還是大人的蠻橫、失職？</b>如果大人願意傾聽，少年也許願意訴說，鐵籠可以鑽出一個洞，讓這些真實的生命──充滿動力的生命──持續感受真實。片尾，Keeting 受到校方究責、就要離開曾經鼓舞這群男孩的那間教室，Todd 再也按捺不住情緒：他站到課桌上，一如 Keeting 讓他們在課堂上體驗到的、也像是站在船桅眺望遠方的水手，呼喊著：</p><br><blockquote><p>O Captain! My Captain!</p></blockquote><br><p>&emsp;&emsp;語氣之激動、情感之充沛，宛如舞台劇。觀影過程中，我一直以為「captain」只是男孩們給 Keeting 的一個綽號，後來查資料才知道，這是出自美國詩人 Whitman 追悼美國總統林肯的詩作 [1]，是對逝去的舵手最後的送行。我們看見男孩們、有些甚至不是死亡詩社的成員，一個接著一個站上課桌，用詩句呼喚著即將離去的 Keeting。我想，這樣的送別禮是最適合他的吧！</p><br><p>&emsp;&emsp;在我讀國小的時候，也有像 Keeting 這樣的一位老師，她讓我們這些即將升上國中、開始步入學業地獄的小學生，體驗生命中各式各樣的「真實」；我們歌唱、玩球、讀詩，認識到自己的其他面向。我希望自己有時候也能像個水手一般，眺望那些曾經帶領我攀上船桅的船長。</p><h2 id="「美國殺人魔」-American-Psycho"><a href="#「美國殺人魔」-American-Psycho" class="headerlink" title="「美國殺人魔」 (American Psycho)"></a>「美國殺人魔」 (American Psycho)</h2><img src="https://media1.tenor.com/m/5lLcKZgmIhgAAAAC/american-psycho-patrick-bateman.gif" width="300"><center><font color="cyan">經典 meme「Sigma face」出自這部電影。圖片來源：tenor.com，</font><a href="https://tenor.com/zh-TW/view/american-psycho-patrick-bateman-american-psycho-gif-7212093"><font color="cyan">連結</font></a></center><h3 id="電影資訊-1"><a href="#電影資訊-1" class="headerlink" title="電影資訊"></a>電影資訊</h3><ul><li>電影名稱：「美國殺人魔」 (American Psycho)</li><li>導演：Mary Harron</li><li>編劇：Bret Easton Ellis (原著)，Mary Harron，Guinevere Turner</li><li>製作：Edward R. Pressman Productions，Muse Productions</li><li>上映年份：2000</li></ul><h3 id="隨想：不存在的真實"><a href="#隨想：不存在的真實" class="headerlink" title="隨想：不存在的真實"></a>隨想：不存在的真實</h3><p>&emsp;&emsp;紐約金融業新貴 Patrick Bateman 講究穿著、注重外表，即使在家裡，Bateman 也勤於鍛鍊身體、保養皮膚，旁人看來無懈可擊；Bateman 和他的同事聚在一起時總是膚淺的談論著風流八卦，間或夾雜一些與社會議題相關的話題──雖然相關性僅止於提及相關的詞語；他的社交很簡單，就是和幾個同事去夜店嗑藥，和同一圈子的許多人一樣；他的樂趣──殺人，殘虐，肢解，還有作為暖身的變態性狂歡──則是他生活的真正重心。</p><br><p>&emsp;&emsp;他的嗜好顯然不正常，這一點，Bateman 自己也非常清楚。整部電影以 Bateman 的視角觀看，觀眾看見他在巷弄裡殺害其鄙視的流浪漢，看見 Bateman 因為名片的造型遜於某同事，惱羞成怒，而設計把同事騙到家裡砍頭；看見 Bateman 在 3P 性狂歡的過程中，始終注視著鏡中刻意表現得桀敖不馴的自己，彷彿一切的重點就在於自我的展現、以及對他人施加的暴力；看見他赤裸著身體追殺妓女，看見殺紅眼的亡命之徒在警方探照燈的搜索之下，躲在辦公室裡打電話、顫抖著向律師坦承一切。看到這裡，我心想 Bateman 的演出就此告一段落了吧，他將不再需要偽裝，因為殺人的跡證確鑿，Bateman 終於要面對自己犯下的罪行，接受應有的懲罰，或者照他的話來說，<strong>淨化 (catharsis)</strong>。</p><br><p>&emsp;&emsp;沒想到，隔天 Bateman 假裝若無其事的來到休息室和同事小聚，發現根本沒有人注意到他的瘋狂殺戮。他趕緊向律師確認兩人的談話內容，卻被無情打臉；律師神情嚴肅的回答，自己幾天前才和那位聲稱被殺掉的同事吃過飯。電影在這裡來到<strong>高潮</strong>，畫面從 Bateman 錯愕的表情切換到辦公室裡，助理小姐一臉驚懼的翻閱著 Bateman 的筆記本：虐殺的圖畫佔滿頁面，忠實反映 Bateman 心裡最狂妄的想法。究竟 Bateman 是真的殺了人，還是我們(觀眾)所看見的，不過是 Bateman 逼近真實的強烈幻想？</p><br><p>&emsp;&emsp;網路上有不少討論[2]，我個人認為兩種解讀都可以，因為 Bateman 有沒有殺人<font color="yellow"><strong>並不重要</strong></font>。Bateman 的獨白貫穿整部電影，不論是作為旁白，還是虐殺前的高談闊論；甚至可以說，<strong>Bateman 在電影裡的多數對話都是獨白</strong>，因為多數人的回應不是虛假、徒具形式，就是誤解 Bateman 的意思、把他的坦白當作混話，根本不是有意義的對話。透過這些獨白，可以看得出來 Bateman 迫切希望有人能認知到他的異常心理；Bateman 深知自己的人格異常，因此他竭盡心力偽裝得像個正常人──在片頭提及的，一個「<strong>Patrick Bateman 的概念</strong>」──同時盼望有人能認識到「真實」的自己，即使這意味著所有變態罪行的揭發。</p><br><p>&emsp;&emsp;當我們看見 Bateman 輕易的被誤認為其他人(由於人與人之間的疏離與漠視)、異常的行徑被視為一種「個人風格」，就不難理解 Bateman 為何無法得償所願。<strong>對這個世界而言，「殺人魔 Bateman」的真實是不存在的；若偽裝就是這個世界的真實，又有什麼必要去指認出偽裝底下的可怕存在？</strong></p><br><img src="https://media1.tenor.com/m/lrL-9iRr058AAAAd/patrick-bateman-walk.gif" width="450"><center><font color="cyan">Bateman 一邊聽音樂一邊走向辦公室，對周遭漠不關心，也是經典的 meme 出處。<br>圖片來源：tenor.com，</font><a href="https://tenor.com/zh-TW/view/patrick-bateman-walk-gif-10859021984670143391"><font color="cyan">連結</font></a></center><br><p>&emsp;&emsp;於是，在電影結尾，Bateman 環顧休息室，冷靜吐露最後的獨白(附上我翻譯的中文)：<br><br></p><blockquote><p>There are no more barriers to cross. All I have in common with the uncontrollable and the insane, the vicious and the evil, all the mayhem I have caused and my utter indifference toward it I have now surpassed.</p><p>我再也沒有任何心理障礙了。所有失控和瘋狂、惡意與邪惡、我所造成的傷害與對此毫不在意的態度，我已經都超越了。</p><p>My pain is constant and sharp, and I do not hope for a better world for anyone. In fact, I want my pain to be inflicted on others. I want no one to escape. <strong>But even after admitting this, there is no catharsis; my punishment continues to elude me, and I gain no deeper knowledge of myself.</strong></p><p>我的痛苦持續且強烈。我不希望任何人過上好日子；事實上，我想要其他人承受和我一樣的痛苦，且無人得以倖免。<strong>但是即使坦承這些事，我也沒有得到淨化；懲罰依舊跳過我，我對自己也沒有更深入的認識</strong></p><p>No new knowledge can be extracted from my telling. <strong>This confession has meant nothing.</strong></p><p>我說得再多也無法知道得更多。<strong>這般告解已經沒有任何意義。</strong></p></blockquote><br><p>&emsp;&emsp;Bateman 原本期望透過告解，那個黑暗而喪心病狂的自我能夠得到承認──被他人承認，也是確認了自己存在的事實──因此和世界、和他人產生真實的連結。然而，最終不論是淨化還是懲罰都沒有出現，休息室裡大夥喝著咖啡、漫無目的的瞎聊，殺人的真相無足輕重、沒有意義，因為它根本<strong>不存在</strong>。如果把整部電影視作 Bateman 的告解，那麼最後一幕 Bateman 凝視著的或許就是螢幕前的觀眾，至於這個告解有沒有意義？至少，對於觀眾而言，我想是有的。</p><br><p>&emsp;&emsp;有些人說這部電影(或原著小說)批判的是資本主義，也有些人說它批判的是流於表面的人際互動，都蠻有道裡。我認為這部電影提出了一個問題，即使在電影上映二十幾年後的今天都依然深刻：<strong>我們能向別人透露出多少「自己的真實」？</strong></p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;都什麼節骨眼了，還有心情看電影嗎？休息是為了走更長遠的路嘛~況且，為了往前進，必須活絡自己的腦筋、策勵自己思考，看電影也是一種方法。不論怎麼說，Netflix 月費都繳了，不看可惜。</p><br><p>&emsp;&emsp;當然，也要反思自己是不是輸入得太多、輸出得太少，或者反過來也是有可能的。電影終究只是觸碰「真實」的其中一個途徑，而不是唯一一個。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] Wikipedia, “哦，船長，我的船長！”. Available: <a href="https://zh.wikipedia.org/zh-tw/%E5%93%A6%EF%BC%8C%E8%88%B9%E9%95%BF%EF%BC%8C%E6%88%91%E7%9A%84%E8%88%B9%E9%95%BF%EF%BC%81">https://zh.wikipedia.org/zh-tw/%E5%93%A6%EF%BC%8C%E8%88%B9%E9%95%BF%EF%BC%8C%E6%88%91%E7%9A%84%E8%88%B9%E9%95%BF%EF%BC%81</a></p><p>[2] r&#x2F;movies subreddit討論串，”American Psycho ‘I need to return some video tapes’”. Available: <a href="https://www.reddit.com/r/movies/comments/586j9r/american_psycho_i_need_to_return_some_video_tapes/?captcha=1">https://www.reddit.com/r/movies/comments/586j9r/american_psycho_i_need_to_return_some_video_tapes&#x2F;?captcha&#x3D;1</a></p>]]>
    </content>
    <id>https://yc518suray.github.io/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/dead-poets-society/</id>
    <link href="https://yc518suray.github.io/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/dead-poets-society/"/>
    <published>2026-01-21T14:15:52.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>&emsp;&emsp;回到家以後，在 Netflix 一口氣看了這兩部電影，非常的撼動人心，所以寫了這篇文章來分享。之後除了文學作品外，電影、音樂、其他形式的作品感想，應該都會以「讀後隨想」的標題來分享。(懶得再成立其他分類了，而且既然是文本，用「讀」的也沒錯吧？)</p>]]>
    </summary>
    <title>讀後隨想：「春風化雨」和「美國殺人魔」</title>
    <updated>2026-02-07T04:26:39.280Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="讀後隨想" scheme="https://yc518suray.github.io/categories/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/"/>
    <category term="閱讀" scheme="https://yc518suray.github.io/tags/%E9%96%B1%E8%AE%80/"/>
    <category term="文學" scheme="https://yc518suray.github.io/tags/%E6%96%87%E5%AD%B8/"/>
    <category term="哲學" scheme="https://yc518suray.github.io/tags/%E5%93%B2%E5%AD%B8/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>&emsp;&emsp;大學的時候與這本書的第一次邂逅，便註定了這次重讀的機緣。為什麼？因為那時候，太多的概念第一次接觸、太多的衝擊撲面而來，而缺少時間來沉澱、思索。現在，趁著放假比較空閒，再度拾起這本經典來讀。(這是這個假期「認識與行動」當中「認識」的部分，「行動」部分的讀物則是卡謬的「反抗者」，這次一定要把它搞定！)</p><br><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/The_Kiss_-_Gustav_Klimt_-_Google_Cultural_Institute.jpg/960px-The_Kiss_-_Gustav_Klimt_-_Google_Cultural_Institute.jpg" width="350"><center><font color="cyan">克林姆的畫作「吻」。</font></center><br><p>&emsp;&emsp;同時，我也打算把 <em>Story of The Eye</em> 、<em>The Dead Man</em> 等讀完，因為這類題材透過小說或是其他個人經驗，更能夠充分理解。和之前的幾篇讀後隨想不同，這篇文章會依照這本譯作的編排，把連續幾個章節的感想與討論結合在一起。</p><span id="more"></span><h2 id="書籍資訊"><a href="#書籍資訊" class="headerlink" title="書籍資訊"></a>書籍資訊</h2><ul><li>書名：情色論 (L’erotisme)</li><li>作者：喬治‧巴塔耶，或譯巴代伊 (Georges Bataille)</li><li>譯者：賴守正</li><li>出版：聯經出版，初版，2012&#x2F;05，<a href="https://store.linkingbooks.com.tw/product/1571132">網路連結</a></li></ul><h2 id="隨想"><a href="#隨想" class="headerlink" title="隨想"></a>隨想</h2><p>&emsp;&emsp;以下就將「情色論」書中各章節的讀後想法依序展開，本書分為兩部，第一部題為「禁忌與踰越」，是較系統性的討論，第二部「情色的個案研究」顧名思義，則是從個案來探討。</p><h3 id="前言-第一章"><a href="#前言-第一章" class="headerlink" title="前言 ~ 第一章"></a>前言 ~ 第一章</h3><p>&emsp;&emsp;在<font color="red">前言</font>，巴塔耶寫道：<br><br></p><blockquote><p>情色是對生命的肯定，至死方休。</p></blockquote><br><p>&emsp;&emsp;巴塔耶是在近七十年前(1957)說出這句話，但是在當代的臺灣，即使自詡為進步思想的人都未必能領會他的意思。巴塔耶在「情色論」的前言首先解釋，為什麼情色有討論的必要。<br><br></p><blockquote><p>人們在討論生命的存在時，似乎常常與其激情衝動脫鉤。<br>我則持相反的觀點；我認為在呈現人生時，永遠不應將這些衝動排除在外。</p></blockquote><br><p>&emsp;&emsp;生命有著<strong>連貫</strong>與<strong>不連貫</strong>的兩種狀態。大多時候，它是不連貫的：每個人都是獨立的個體，即使我們與他人有著或深或淺的關係，但是每個人的想法與體驗──就算是藉由溝通或同理，可以讓他人稍微碰觸到──仍是專屬於自己的。在某些瞬間，生命則是連貫的：當兩個生命結合，誕生出新的生命的瞬間，兩個個體的界線消去，兩者之結合(e.g. 精子與卵子)形成連貫。<br><br></p><blockquote><p>我們都是不連貫的生命、在無法理解的人生歷險中孤獨死亡的個體，但我們懷戀失去的連貫。</p></blockquote><br><p>&emsp;&emsp;巴塔耶說明，從連貫到不連貫、或是從不連貫到連貫，這些過程皆為<strong>暴力</strong>的展現，<span class="hint--info hint--rounded hint--top" data-hint="我認為這表示暴力也是生命的基本組成" ontouchstart>暴力是情色的基本組成</span>。從不連貫的個體融合為連貫，這就是情色的本質。乍看之下，這和情色一點關係也沒有，我認為可以用<strong>萬有引力對具有質量的物體的作用，來類比「不連貫變為連貫」對生命的作用</strong>：<span class="hint--info hint--rounded hint--top" data-hint="或說驅力，驅動生命的一切表現" ontouchstart>它是基於生命的動力</span>，而其中一種展現方式便是情色。<br><br></p><blockquote><p>情色總是意味著既成模式的瓦解。什麼模式？我再重申一次：我們這些個別、不連貫秩序所組成的、有規則的社會生活模式。</p></blockquote><br><p>&emsp;&emsp;巴塔耶提及三種情色：<strong>肉體情色、心的情色、神聖情色</strong>，以「實現的媒介」區分。<strong>肉體情色</strong>的媒介為<span class="hint--info hint--rounded hint--top" data-hint="一般常見的「色情」即屬於此類" ontouchstart>性愛、或者藉由身體達成的暴力</span>；<strong>心的情色</strong>媒介為心靈，更正確來說是<span class="hint--info hint--rounded hint--top" data-hint="一般常見的「愛情」即屬於此類" ontouchstart>對兩人關係的強烈想像</span>。<br><br></p><blockquote><p>在情人眼中，這世界上似乎只有與所愛──透過肉體與靈魂難以言詮的親密結合──方能超越人類的極限，達到兩人的完全融合、促使兩個不連貫個體的連貫。<br>…<br>對追求者而言──雖然可能只有對他個人而言，不過這又何妨──其所愛就等於存在的真相。幸運的話，透過所愛，世界不再複雜，追求者得以參透存在底層、體會生命的單純。</p></blockquote><br><p>&emsp;&emsp;巴塔耶揭示，愛情裡的追求，即前述結合的狀態，本質上是一種<strong>神聖情色</strong>。神聖情色來自死亡對我們造成的心理衝擊。死亡結束了不連貫的生命，死後的狀態可以說是連貫的。巴塔耶用「獻祭」為例來闡明「神聖」：<br><br></p><blockquote><p>在暴力死亡中，不連貫的生命遭致斷裂；倖存下來的、現場焦慮的觀眾在緊接著的寂靜中所經驗的，是受害者所被託付的存在<strong>接續</strong>。</p></blockquote><br><p>&emsp;&emsp;即使結束生命，死者依然存在於現場目睹的觀眾心裡；對於其他還活著的人而言，死者成為連貫的存在，這種感受就是神聖情色。對於連貫狀態的不斷逼近，就是情色。巴塔耶在前言闡述，生命、暴力、色情、愛情、神聖與死亡都能以情色作為認識、分析的途徑。我想這就是為什麼，在重視人性的當代，有關情色的討論不應該缺席。</p><br><p>&emsp;&emsp;<font color="red">第一章</font>說明「內在經驗」(l’exp&eacute;rience int&eacute;rieure)的概念。為什麼要理解「內在經驗」的概念呢？因為這是情色的起源。和人類不一樣，動物無法意識到自己的性，對動物而言性行為是由本能驅使、自然的行動，因此在動物身上觀察不到情色。<br><br></p><blockquote><p>人類的情色與動物的性不同之處就在於它質疑了自己的內在生命。<strong>情色就是人類意識中，質疑自己生命的部分。</strong></p></blockquote><br><p>&emsp;&emsp;演化過程中，人類逐漸轉變，開始工作、意識到死亡與性、形成禁忌，標記著認知的發展。與情色密切相關的認知，即是內在經驗，一種「不屬於任何宗教的宗教經驗」。巴塔耶在這一章解釋其方法論，因為有關內在經驗的討論，就有點像是精神分析的作法，兼有主觀與客觀的面向。巴塔耶以對禁忌的探究為例(因為禁忌正是後面章節的重要觀念)：<br><br></p><blockquote><p>如果我們不知不覺的向禁忌低頭，它們就成了我們只能從外面認識的事物。但如果我們不懷著恐懼的態度遵守禁忌，禁忌將喪失與其對立、賦予其深刻意義的慾望。</p><p>…唯有內在經驗可以提供為禁忌辯護的全貌。</p></blockquote><br><p>&emsp;&emsp;巴塔耶解釋，禁忌將人與禁忌對象切割開來，藉此人的意識得以在科學、客觀的世界活動，但是意識卻不可避免的探索到禁忌，因此我們的一切探究，特別是對於人的本質的探究，一定會來到禁忌之地。因此在下一章，便開始討論<strong>禁忌</strong>。</p><h3 id="第二章-第四章"><a href="#第二章-第四章" class="headerlink" title="第二章 ~ 第四章"></a>第二章 ~ 第四章</h3><p>&emsp;&emsp;<font color="red">第二章</font>「關於死亡的禁忌」。由於人類社會的形成，「工作」變得不可或缺，為了避免暴力與衝動侵犯理性的世界，我們有了禁忌。<br><br></p><blockquote><p>…少了禁忌，人類社會也不會成為其實質上的<strong>工作世界</strong>。</p></blockquote><br><p>&emsp;&emsp;人類最初的兩大禁忌便是性與死亡──兩者暴力的本質顯而易見。巴塔耶以尼安德塔人為例，說明投入工作的早期人類開始排斥暴力(<strong>死亡</strong>)。根據巴塔耶，早期人類對死亡的思維與理性思維相悖，(人類)屍體的腐敗景象本身就過於衝擊、無法以理性視之，構築其上的幻想促使生者對屍體敬而遠之，直到死者化作白骨、從「人」變成「物」。此外，暴力也引出殺人的慾望，這就跟你站在懸崖邊緣、感到恐懼的同時內心升起想要跳下去的一股衝動，<span class="hint--info hint--rounded hint--top" data-hint="人類認知的運作方式非常有意思我想有必要從神經系統的結構來討論" ontouchstart>是一樣的道理</span>。於是殺人也成為禁忌。</p><br><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Millais_-_Ophelia.jpg/960px-Millais_-_Ophelia.jpg" width="400"><center><font color="cyan">英國畫家Millais的畫作「歐菲莉亞」，描繪溺死的情景。</font></center><br><p>&emsp;&emsp;<font color="red">第三章</font>則提及<strong>性的禁忌</strong>，由於性的本質(性衝動、暴力)，為了避免理性、工作世界受到性衝動的干擾，因此產生了<span class="hint--info hint--rounded hint--top" data-hint="在巴塔耶之前，似乎都是針對特定性禁忌(如亂倫)的討論而沒有將性作為一個整體來討論" ontouchstart>性的禁忌</span>。按照這樣的邏輯，性──一如死亡──將永遠是禁忌的核心，除非人類的認知結構出現劇烈的改變。有關性與死亡的關係在<font color="red">第四章</font>討論。乍看之下，性標誌著新生命的出現，怎麼會和死亡有關係？</p><br><p>&emsp;&emsp;巴塔耶再度(自以為是的)提起腐爛的屍體過渡到白骨的意義：相較於腐壞的可怕面貌，白骨「雖然依舊令人不安，但已不具腐敗屍體過度強烈的致病力」，因此死亡其禁忌的主要來源是<strong>腐爛</strong>，或者更確切的說，是「<strong>自然</strong>」。人類對「自然」的認知與思考，一直使我著迷；因為這些思考，人與自然不再是一體，且從此與動物分離。<br><br></p><blockquote><p>…腐爛總結了我們出身、終將回歸的世界，而羞愧與恐懼又同時與我們的出生與死亡糾結在一起。</p></blockquote><br><p>&emsp;&emsp;從腐爛的形象講到糞便，巴塔耶把這些<span class="hint--info hint--rounded hint--top" data-hint="根據他的說法，許多是經由教導而學習感到噁心" ontouchstart>引發噁心</span>的事物(也包含性)視為一個整體，也就是「自然」。在他看來，複雜的生命(如人類)其生長與衰亡的過程是巨大的「揮霍」(或稱「耗費」)，而人類在認知到自身<span class="hint--info hint--rounded hint--top" data-hint="這是人類生命的本質" ontouchstart>無可避免的揮霍</span>時，也認知到最極致的揮霍便是死亡──對一切累積的毀滅。所以人類實踐其生命時，既然有揮霍的傾向，便暗藏著<span class="hint--info hint--rounded hint--top" data-hint="這個死亡傾向適用於所有生物嗎？" ontouchstart>死亡的傾向</span>。但是死亡和個體生命的持續，兩者互相排斥，面對這樣的矛盾，人類的態度是發展出禁忌，和那些<span class="hint--info hint--rounded hint--top" data-hint="也可以詮釋為暴力" ontouchstart>過度耗費的</span>(性與死亡)保持距離。<br><br></p><blockquote><p>如果我們將基本禁忌視為人類向自然(被視為是生命力的浪費與毀滅的狂歡)所唱的反調，我們就無法再區分死亡與性。</p></blockquote><br><p>&emsp;&emsp;動物對於生命的耗費總是逆來順受，但人意識到這樣的處境，他必須有所應對，人性應運而生，禁忌與理性亦然。「<strong>人類向自然說『不』</strong>」，這是巴塔耶給最後一小節的小標題，簡單來說就是這麼一回事吧。</p><h3 id="第五章-第七章"><a href="#第五章-第七章" class="headerlink" title="第五章 ~ 第七章"></a>第五章 ~ 第七章</h3><p>&emsp;&emsp;來到<font color="red">第五章</font>，終於開始談論「<strong>踰越</strong>」(transgression)。「禁忌」和「踰越」是相輔相成的，沒有禁忌，就沒有踰越。由於禁忌並非由理性構成，用理性來描述禁忌是行不通的。<br><br></p><blockquote><p>「禁忌是為了被違反而存在」這項主張應該讓我們了解，殺人的禁忌雖然世界各地都有，但此禁忌並不反對戰爭。</p><p>我們所謂的社會生活整體即是由有組織的踰越與禁忌所構成。<br>踰越發生的頻率與規律並不會影響到禁忌不可觸犯的穩定性。</p></blockquote><br><p>&emsp;&emsp;巴塔耶援引Caillois著作中的例子，說明國王駕崩，引發踰越，因為至高無上的國王的死亡本身就是對(宣稱)至高無上的踰越。踰越的行為串接兩個不同的世界。<br><br></p><blockquote><p>踰越超越了<strong>世俗</strong>的世界、但未加以消滅，反倒成就其完整性。<br>人類社會並非只是個工作的世界。它是由<strong>世俗</strong>世界與<strong>神聖</strong>世界這兩個互補的形式同時或接續組成。</p></blockquote><br><p>&emsp;&emsp;這兩個世界的形成，如同前面章節所述，是為了回應工作的需要。<font color="red">第六章</font>檢視更多踰越的例子：<strong>狩獵</strong>與<strong>戰爭</strong>。狩獵是對動物的殺害，戰爭則是對人類的殺害，在人類的不同發展階段皆是禁忌(到現在應該也是)。從這裡便可以看出禁忌和踰越的關係。<br><br></p><blockquote><p>禁忌並不代表人們完全不去做，而是賦予此行為踰越的色彩。<br>…<br>禁忌無法壓抑生命所必須的活動，卻可以賦予它們宗教踰越的意義。</p></blockquote><br><p>&emsp;&emsp;巴塔耶以Lascaux洞窟壁畫為例，認為這些壁畫描繪狩獵的景象，其目的在於贖罪(宗教意義)。至於戰爭，同樣可以用踰越的概念來理解；古代的戰爭都遵循某些規則、儀式，就是踰越行為(踰越了殺人禁忌)的刻意表現。他補充，即使現代的戰爭以政治目的為號召，戰爭本身的踰越色彩依然存在。不過在第六章的最後，巴塔耶倒是稍微埋怨了一下現代戰爭失去踰越的成分。試想，若無法以踰越來詮釋戰爭的發生與暴行，我們要如何面對其帶來的毀滅與傷亡？</p><br><p>&emsp;&emsp;順著殺人禁忌的邏輯，<font color="red">第七章</font>探討「<strong>獻祭</strong>」。在第四章談及人類對自然的強烈感受，因此不難理解<span class="hint--info hint--rounded hint--top" data-hint="動物不受禁忌的限制，這也是其神聖之處" ontouchstart>早期人類視動物為「神聖」</span>。巴塔耶採用一個可愛的原始人類的視角：「動物竟然毫不理會禁忌，那肯定是超越禁忌的存在！」而以動物作為犧牲，就相當於見證老和尚圓寂昇天，使其更加神聖。據此，參與獻祭便是踰越行為。<br><br></p><blockquote><p>人類社會靠著否定獸性或自然而成型；之後，此一人類又自我否定，但在否定自我的同時卻沒回歸到最先所否定的獸性或自然。</p></blockquote><br><p>&emsp;&emsp;我個人的看法是，人永遠無法回歸自然，永遠被自然放逐。早期人類的感想應該也是如此，舊約聖經裡<span class="hint--info hint--rounded hint--top" data-hint="兩人對於裸體感到羞恥、獲得了智識不就是工作世界、理性世界之建立嗎？" ontouchstart>亞當與夏娃、伊甸園的故事就是一例證</span>，我想其他神話傳說應該也有類似的主題。巴塔耶在這一章最後提到獻祭與文學的關係：兩者都是人對於生命躁動的慾望所發展的替代行為──獻祭表現對獸性的渴望，文學表現對極端經驗的渴望。</p><br><img src="https://upload.wikimedia.org/wikipedia/commons/1/1e/Lascaux_painting.jpg" width="400"><center><font color="cyan">Lascaux洞窟的壁畫，巴塔耶從中獲得許多靈感。</font></center><h3 id="第八章-第十章"><a href="#第八章-第十章" class="headerlink" title="第八章 ~ 第十章"></a>第八章 ~ 第十章</h3><p>&emsp;&emsp;<font color="red">第八章</font>帶領我們從「獻祭」回到情色的主題，因為經過前面章節的鋪陳，讀者已經對情色的基本結構有所了解(e.g. 禁忌與踰越)。<br><br></p><blockquote><p>如果這世界上的確存在著某種普遍而模糊的禁忌，因時、地不同而對性自由採取不同形式限制的話，那麼<strong>肉體</strong>就代表著此一具威脅性自由的回歸。</p></blockquote><br><p>&emsp;&emsp;故討論的核心是<strong>肉體情色</strong>，在<font color="red">第九章</font>描述得更清楚；在這一章，巴塔耶將視野聚焦在「性」本身。他先是從生物學的角度，說明「繁殖是非個體生命的成長」，可以說是物種整體生命的成長吧？繁殖的過程中，達到<span class="hint--info hint--rounded hint--top" data-hint="譯者翻譯為「滿盈」我覺得不太好理解，就用自己的話" ontouchstart>極致狀態</span>的細胞&#x2F;兩人透過分裂&#x2F;結合，使不連貫的個體迎向連貫：對於細胞，是指母細胞的消亡；對於性愛中的兩人，則是精子與卵子的結合。這裡，巴塔耶承認自己對微生物的「內在經驗」所知不多，但仍然相信它的存在。<br><br></p><blockquote><p>…但微生物跟複雜生物一樣內部具有經驗：從存在<strong>本身</strong>(l’existence en soi)過渡到<strong>為自己</strong>存在(l’existence pour soi)並非複雜生物或人類所獨具的本能。<br>…<br>從定義上，此一我無法擁有、也無法臆測的內在經驗基本上意味著<strong>自我的感覺</strong>(sentiment de soi)。</p></blockquote><br><p>&emsp;&emsp;老實說，我覺得這部分有點牽強。單細胞生物要如何感受？或者，把感應的機制也視為感受？雖然對微生物內在經驗(如果有的話)的想像，不妨礙我們對人類內在經驗的思考就是了。生命成長到極致，便導致繁殖與接續的死亡。對人類而言，性雖然不會導致直接的死亡，但其帶來的暴力──突破個體邊界的暴力──其實與死亡相去不遠。<br><br></p><blockquote><p>…性愛時，關於<strong>他人</strong>的感覺會超越<strong>自我</strong>的感覺，並引進與原初不連貫相反的可能連貫。<br>…<br>一人的暴力與他人的暴力相遇：雙方均有一股<strong>超越自我</strong>(超越個別不連貫)的內在衝動。</p></blockquote><br><p>&emsp;&emsp;因此對人類而言，性帶來的連貫是感受的，而非<span class="hint--info hint--rounded hint--top" data-hint="這確實是客觀的「連貫」，但此客觀事實不是情色的核心基礎，需轉化為認知才具有情色意義" ontouchstart>精子與卵子的結合</span>。故，性是認識死亡的一個途徑，兩者本質上都是暴力的展現；情色則是對「拒斥暴力的態度」的踰越，源自生命的躁動。巴塔耶做個小結：<br><br></p><blockquote><p>人類性行為本質上是種踰越，但並非是回復到禁忌之前的最初自由。<br>踰越是工作所造成的人性表現，踰越本身也是有組織的。<br>…<br>踰越的特質就是犯罪的特質。</p></blockquote><br><p>&emsp;&emsp;<font color="red">第十章</font>探討性當中「踰越」的一些例子。婚姻、古代的初夜權都可以看出端倪。節慶、集體性狂歡踰越的本質更明顯。作為對<span class="hint--info hint--rounded hint--top" data-hint="集體性狂歡是由於祈求土地豐饒的信念類似像豐年祭這樣的概念" ontouchstart>早期人類學理論</span>的回應，巴塔耶加強說明集體性狂歡的核心意義。<br><br></p><blockquote><p>從某一層意義說來，神聖世界只是個尚未完全被化約為工作所建立的秩序──亦即世俗秩序──的自然世界。…在另外一層意義上，它<strong>超越</strong>了先前由工作與禁忌所構成的世界。<br>在這層意義上，神聖世界是對世俗世界的否定，不過它也是由所否定的世界所決定。</p></blockquote><br><p>&emsp;&emsp;而踰越的行為在世俗世界的意義，被認知為「具有效用的行動」──所謂「使作物豐收的神祕力量」。沒有這麼做的話，踰越的過程無法在事後被理解，將危害世俗世界的穩定與連續。</p><h3 id="第十一章-第十三章"><a href="#第十一章-第十三章" class="headerlink" title="第十一章 ~ 第十三章"></a>第十一章 ~ 第十三章</h3><p>&emsp;&emsp;<font color="red">第十一章</font>直搗神聖的大本營──「<span class="hint--info hint--rounded hint--top" data-hint="以巴塔耶的個人經驗而言，是指天主教" ontouchstart>基督宗教</span>」。巴塔耶指出，基督宗教旨在將人從<strong>不連貫</strong>的世界帶到<strong>連貫</strong>、彼此相愛的天主的國度，呼應著人的追求。然而基督宗教避開了暴力的途徑(踰越)，選擇另一個途徑──對不連貫生命永生的追求。<br><br></p><blockquote><p>它將原始宗教中神聖的、神奇的觀念簡化成天主、造物者這個不連貫的人。…它讓天上與地獄住滿許多跟天主一樣，注定是永恆不連貫的單獨個體。<br>…這群隨機被創造出的眾生與個別造物者，在天主與選民彼此相愛中否認其孤獨，或只有在受詛咒的仇恨中才承認此一孤獨。</p></blockquote><br><p>&emsp;&emsp;我覺得這有點像是世俗世界的延伸，其緣由可能要追溯自<span class="hint--info hint--rounded hint--top" data-hint="會不會是羅馬人融合希臘人信仰的影響？或是「來世」觀念的影響？" ontouchstart>耶穌那個時代的社會背景</span>。不論如何，基督宗教重新建構它的「神聖世界」，將罪惡、淫穢自它的「神聖」排除，視為褻瀆。<br><br></p><blockquote><p>褻瀆的原則是以世俗方法對待神聖。</p></blockquote><br><p>&emsp;&emsp;我對宗教的一些概念不清楚，所以有些段落讀不懂。我覺得這邊的要義是，在基督宗教的規範下，踰越雖然仍然存在，但是對情色的踰越所達到的，卻不被認定為神聖，這使得人們對情色的觀感變得<span class="hint--info hint--rounded hint--top" data-hint="究竟是世俗還是神聖？還是淫穢自成一個世界？" ontouchstart>曖昧不明</span>。這些褻瀆的內容，據巴塔耶所說，成為中世紀的sabbats；其內容屬於世俗世界(?)，卻因為<span class="hint--info hint--rounded hint--top" data-hint="相較於有組織、有特定形式的踰越，罪惡對所有可能開放，可說是全然的混亂" ontouchstart>罪惡之無所節制而放蕩不已</span>。這裡可能需要讀過波特萊爾後，才能有更多的認識，不過，或多或少可以理解在罪惡裡追尋的便是<strong>失落的神聖</strong>。</p><br><img src="https://drive.google.com/thumbnail?id=1eoR1LQB0QgNG5WgSrwBNsDTfHJeTd2cc&sz=w1024" width="400"><center><font color="cyan">押見修造的漫畫「惡之華」的內容竟然與巴塔耶的陳述<br>高度吻合：在罪惡與毀滅裡找到自己的救贖。</font></center><br><p>&emsp;&emsp;繼續探討罪惡，<font color="red">第十二章</font>專注於性的罪惡。巴塔耶首先解釋「慾望對象」的呈現是情色的基礎。接著，他談論賣淫的起源(雖然沒有提供證據)：首先賣淫對立於「<span class="hint--info hint--rounded hint--top" data-hint="求偶的行為，踰越的一種形式" ontouchstart>欲迎還拒</span>」的態度，兩者構成情色的兩個途徑。原本，賣淫是<span class="hint--info hint--rounded hint--top" data-hint="巴塔耶假設在早期的人類社會，由男性追求女性" ontouchstart>女人</span>跳脫工作(e.g. 農事與生育)<span class="hint--info hint--rounded hint--top" data-hint="提供給男性的同時，也提供給女性(自己)" ontouchstart>提供情色</span>的媒介，然而，一旦擺脫婚姻束縛、成為開放式性關係，便<span class="hint--info hint--rounded hint--top" data-hint="如同婚姻內的性一般，成為工作世界的一部分" ontouchstart>失去情色的意義</span>。因此，賣淫走進宗教的領域。<br><br></p><blockquote><p>…古代神女則有所保留，她並非眾人輕蔑的對象，跟其他女人也無大不同。她想必不再如先前那麼害臊，但她仍保有初次接觸的原則。<br>…<br>在神聖賣淫中，羞恥成了儀式且意味著踰越。</p></blockquote><br><p>&emsp;&emsp;藉由特殊的身分、強調踰越禁忌的展現(羞恥)，宗教裡的賣淫保留了情色。到目前為止的討論，賣淫仍帶有踰越色彩，但是巴塔耶批判現代的賣淫：對禁忌毫不在乎的低俗妓女。巴塔耶說明，這和先前提過的、基督宗教將情色踢出神聖一事有關；情色被視為<strong>沉淪</strong>，與<strong>道德</strong>對立，沉淪者即使知道禁忌的存在，也不受禁忌規範，因為他們已被排除在世界的秩序外。<br><br></p><blockquote><p>妓女的墮落是與其窮困環境的妥協。這項協議可能非出於自願；但是她們所使用的淫詞穢語卻是項有意識的反抗：淫詞穢語是對人性尊嚴的踐踏。<br>如果人類生活是良善的，接受墮落就是決定對良善、對人類生活的唾棄。</p></blockquote><br><p>&emsp;&emsp;這反而使服從道德的人們從中感受到神聖；是那個徹底否定的暴力，讓人得以類比情色的最初意義。<br><br></p><blockquote><p>當踰越不復可能時，褻瀆就取而代之。</p></blockquote><br><p>&emsp;&emsp;在最後一章(<font color="red">第十三章</font>)，談論的是那終極的慾望──連貫的存在。巴塔耶以「<strong>美貌</strong>」為例，描繪這股慾望的真面目：我們對美貌的追求，無非是為了毀滅、超越它，達到極致──感受最為強烈，最為接近連貫。不過，他也說：「沒有了妥協，情色將不復存在。」如果能夠這樣思考自己孤獨而不連貫的生命，也許可以說服自己繼續執拗的活在這世上。這就是對生命的肯定。</p><h3 id="第二部：情色的個案研究"><a href="#第二部：情色的個案研究" class="headerlink" title="第二部：情色的個案研究"></a>第二部：情色的個案研究</h3><p>&emsp;&emsp;這部分我就不寫了，因為再寫下去篇幅就太長了。不過，透過這些篇章反而更能夠深刻理解巴塔耶的想法，因為第一部分還是有點抽象；事實上，第二部分揭露的真相更為震撼。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;從情色裡可以發現人性的基礎，因為若沒有禁忌的存在、神聖世界與工作世界的區分，理性將不復存在。這麼說來，人類並不反對暴力──廣義上的──而是反對未被規劃的暴力。這個概念可以延展至其他的規範，如性相關的互動、格鬥競技、藝術、政治甚至語言；每種語言都有髒話的存在，就是一例。</p><br><p>&emsp;&emsp;過年的時候和弟弟討論了一下「神聖」的概念，他倒是提出蠻有意思的觀點。我們在談宗教的感受、神聖的感受：沒有宗教信仰卻買了平安符保平安，這樣心裡有沒有感受到神聖呢？我覺得沒有，有點「姑且相信」、投機的意味，但是弟弟認為每個人對神聖的感受並不相同，因此無法比較──某人的行為與表現在他人眼裡也許是世俗的，但是某人心中卻是懷著瀕臨極致的感想。我覺得蠻有道理。</p><br><p>&emsp;&emsp;巴塔耶的論述在早期、乃至於近代的人類社會或許仍有說服力，然而在個人主義成為基本共識的當代社會，宗教逐漸失去集體性，每個人都有自己的宗教、自己的神聖感受──分享、討論巴塔耶的思想，本身便充滿挑戰。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>&emsp;&emsp;無。</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/bataille-erotism/</id>
    <link href="https://yc518suray.github.io/%E8%AE%80%E5%BE%8C%E9%9A%A8%E6%83%B3/bataille-erotism/"/>
    <published>2026-01-21T08:37:25.000Z</published>
    <summary>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>&emsp;&emsp;大學的時候與這本書的第一次邂逅，便註定了這次重讀的機緣。為什麼？因為那時候，太多的概念第一次接觸、太多的衝擊撲面而來，而缺少時間來沉澱、思索。現在，趁著放假比較空閒，再度拾起這本經典來讀。(這是這個假期「認識與行動」當中「認識」的部分，「行動」部分的讀物則是卡謬的「反抗者」，這次一定要把它搞定！)</p>
<br>
<img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/40/The_Kiss_-_Gustav_Klimt_-_Google_Cultural_Institute.jpg/960px-The_Kiss_-_Gustav_Klimt_-_Google_Cultural_Institute.jpg" width="350">
<center><font color="cyan">克林姆的畫作「吻」。</font></center>
<br>

<p>&emsp;&emsp;同時，我也打算把 <em>Story of The Eye</em> 、<em>The Dead Man</em> 等讀完，因為這類題材透過小說或是其他個人經驗，更能夠充分理解。和之前的幾篇讀後隨想不同，這篇文章會依照這本譯作的編排，把連續幾個章節的感想與討論結合在一起。</p>]]>
    </summary>
    <title>讀後隨想：重讀巴塔耶「情色論」</title>
    <updated>2026-02-18T15:12:42.058Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="網頁前端" scheme="https://yc518suray.github.io/categories/%E7%B6%B2%E9%A0%81%E5%89%8D%E7%AB%AF/"/>
    <category term="無線通訊" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E8%A8%8A/"/>
    <category term="無線通道" scheme="https://yc518suray.github.io/tags/%E7%84%A1%E7%B7%9A%E9%80%9A%E9%81%93/"/>
    <category term="網站設計" scheme="https://yc518suray.github.io/tags/%E7%B6%B2%E7%AB%99%E8%A8%AD%E8%A8%88/"/>
    <category term="遊戲" scheme="https://yc518suray.github.io/tags/%E9%81%8A%E6%88%B2/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><style>    .table-pic {        height: 250px;        display: flex !important;        align-items: center !important;        justify-content: center !important;        padding: 0 !important;    }    .table-pic img {        vertical-align: middle !important;        display: block !important;        margin: 0 auto !important;    }</style><img src="https://drive.google.com/thumbnail?id=1EwHZqm2gdXwcv6GxT9OjL7GFM8q4tAIm&sz=s1024" width="400"><br><p>&emsp;&emsp;<strong>Comm Jam</strong> 是一個編程遊戲 (coding game)，在瀏覽器上遊玩。玩家必須寫程式來解決各個關卡的挑戰(大部分會是通訊實體層的問題，畢竟這是我的研究領域)，有點像是 online judge (事實上就是基於開源的 <strong>Judge0</strong> 來改造的)。</p><span id="more"></span><br><p>&emsp;&emsp;這個頁面介紹 <strong>Comm Jam</strong> 的整體構想，隨時會更新。要是能真的完成這個構想就好了 (2026&#x2F;1&#x2F;18)。</p><h2 id="遊戲架構"><a href="#遊戲架構" class="headerlink" title="遊戲架構"></a>遊戲架構</h2><p>&emsp;&emsp;如下表，目前的構想很簡單，之後可能還會增加特殊關卡、限時競賽或是小組賽的遊戲機制。</p><table style="width:600px; margin: 0 auto;">  <tr>    <th style="width:65%;">版面概念圖</th>    <th>說明</th>   </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=1k9WAtP7aPyaMuWsUnjWGfCaVaM1Be-Nu&sz=s1024" width="340">    </td>    <td><b>首頁</b>，可以選擇登入或是註冊帳號。註冊需要提供電子郵件，忘記密碼時才能發送信件來重設密碼。<br>captcha應該是可有可無。</td>  </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=1yCxsOmBB3cDs6pIruk6Peg-4ArTruY-5&sz=s1024" width="340">    </td>    <td><b>個人頁面</b>及<b>排行榜</b>，各佔一半畫面，大概就如圖所示。</td>  </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=1s3u5vRyMduKhWuNiEOQs9w18ph33oqg3&sz=s1024" width="340">    </td>    <td><b>轉場</b>，如圖所示，進度條下方會顯示一些和通訊有關的知識，或是關卡提示(但好像也沒什麼好提示的)。也可以顯示一些幹話之類。</td>  </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=11lETaPsAIq06fSN-oLy_eMOUKuAmOY1E&sz=s1024" width="340">    </td>    <td><b>遊戲畫面</b>，中間為程式碼編輯器，左右為描述任務情境的動畫/圖案，上方有關卡名稱、關卡內容與提示，可以點擊展開。最上方有一 Youtube 音樂列，顯示目前播放的音樂名稱。</td>  </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=1wjhJaqjXQiYNafYFabwZPOBzEiWv2S8e&sz=s1024" width="340">    </td>    <td><b>遊戲畫面</b>，關卡說明與提示視窗展開後。</td>  </tr>  <tr>    <td class="table-pic">    <img src="https://drive.google.com/thumbnail?id=179Ljv1p9q4rDsutnMT9fZutU66lI5Fjx&sz=s1024" width="340">    </td>    <td><b>結果頁面</b>，上方為程式結果，會即時顯示相關的圖表(如錯誤率、瞬時功率之類的)，以及資源使用情況(如記憶體、執行時間等等)；下方為個人遊戲結果，等於是個人目前分數的 summary。</td>  </tr></table><h2 id="遊戲玩法"><a href="#遊戲玩法" class="headerlink" title="遊戲玩法"></a>遊戲玩法</h2><p>&emsp;&emsp;玩家身為一位通訊系統工程師，被派遣到各個地方來設計通訊系統，每個地方的要求、資源與環境都不同，玩家要在這些條件的限制下，達成指定的任務；<strong>成功的話有獎勵，失敗的話也會有懲罰</strong>。具體來說，玩家會有三個分數指標；</p><ul><li><p><font color="yellow"><strong>生命</strong></font>：玩家一開始共有三顆命，每過五關可以增加一命，若某關失敗三次便會扣一命，上限為五顆命。一顆命都沒有的話，玩家會被停止遊戲兩個禮拜，之後補回三顆生命繼續遊戲。<strong>若程式碼造成系統危害、資源佔用，生命值直接歸零</strong>。</p></li><li><p><font color="yellow"><strong>技術能力</strong></font>：玩家每通過一關，技術能力值都會增加，上限為 1600；相反的，某一關失敗兩次便會開始扣技術能力值。達到特定技術能力，關卡就會解鎖；如果技術能力不夠，可以</p><ol><li>再次挑戰先前關卡，嘗試得到更高的關卡分數，可以增加技術能力值。</li><li>用生命換，一顆生命可以換 100 技術能力。</li><li>用溝通能力換，30 溝通能力可以換 100 技術能力。</li></ol>  <br></li><li><p><font color="yellow"><strong>溝通能力</strong></font>：玩家若某一關一次過，溝通能力值就會增加，無上限，也不會扣除。溝通能力對於遊戲沒有太大影響，但是可以解鎖特殊關卡(暫時還沒有想法)。</p></li></ul><br><p>&emsp;&emsp;每一關也會有<strong>關卡分數</strong>，根據以下表現來評分：</p><ul><li><p><font color="yellow"><strong>正確性</strong></font>：程式建造的通訊系統能夠正確運作。這部分包含正確訊號呈現、符合規定的錯誤率、符合規定的瞬時功率等等，因關卡而異。需要完全正確才能拿到這部分分數。</p></li><li><p><font color="yellow"><strong>時間</strong></font>：程式執行時間，也可以說是程式複雜度、計算複雜度。執行時間愈長，這部分的分數愈低。</p></li><li><p><font color="yellow"><strong>資源使用</strong></font>：如記憶體、CPU、硬碟I&#x2F;O等的資源使用，但是這部分實現比較困難，目前還沒有想法。</p></li><li><p><font color="yellow"><strong>行數</strong></font>：程式碼行數愈少，這部分分數愈高。行數計算會扣除空白行、註解行。</p></li></ul><br><p>&emsp;&emsp;任務內容對應到的領域包含但不限於：</p><ul><li>類比調變 (AM、DSB、SSB、FM 等)</li><li>基礎數位通訊 (BPSK、QPSK、16QAM 等)</li><li>OFDM 及相關技術 (Wifi、5G 等)</li><li>通道編碼 (錯誤更正碼、通訊序列等)</li><li>展頻通訊 (DSSS、FHSS 等)</li><li>等化器設計、通道估測</li><li>…</li></ul><h2 id="系統架構"><a href="#系統架構" class="headerlink" title="系統架構"></a>系統架構</h2><p>&emsp;&emsp;這一節介紹整個系統(程式)的架構，如下圖。目前只是把專案的環境大概建置好，所以這張圖只是非常初期的構想。</p><br><img src="https://drive.google.com/thumbnail?id=1pF4ZP7tFZfUdnBuPcjp5MpbOchcXMbj5&sz=s1024" width="450"><h2 id="美術"><a href="#美術" class="headerlink" title="美術"></a>美術</h2><p>&emsp;&emsp;由 Raymond Su 繪製草圖，<strong>Gemini</strong> 的 <strong>Nano Banana</strong> 修飾。草圖由紙和筆繪製，再經由漫畫轉檔程式處理、小畫家著色，最後送給 Nano Banana 調整。</p><h2 id="音樂"><a href="#音樂" class="headerlink" title="音樂"></a>音樂</h2><p>&emsp;&emsp;遊戲過程(即寫程式時)的音樂應該會使用 Youtube 上的音樂，並標示作者與作品名稱。首頁、個人頁面以及結果頁面的音樂，由 Raymond Su 製作，目標是做出和 Toby Fox 的作品一樣、和遊戲超級搭配的音樂。</p><h2 id="開發人員"><a href="#開發人員" class="headerlink" title="開發人員"></a>開發人員</h2><ul><li>Raymond Su：本網誌作者。</li></ul>]]>
    </content>
    <id>https://yc518suray.github.io/%E7%B6%B2%E9%A0%81%E5%89%8D%E7%AB%AF/comm-jam-project-concept/</id>
    <link href="https://yc518suray.github.io/%E7%B6%B2%E9%A0%81%E5%89%8D%E7%AB%AF/comm-jam-project-concept/"/>
    <published>2026-01-17T12:55:29.000Z</published>
    <summary>
      <![CDATA[<style>
    .table-pic {
        height: 250px;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
    }

    .table-pic img {
        vertical-align: middle !important;
        display: block !important;
        margin: 0 auto !important;
    }
</style>

<img src="https://drive.google.com/thumbnail?id=1EwHZqm2gdXwcv6GxT9OjL7GFM8q4tAIm&sz=s1024" width="400">
<br>

<p>&emsp;&emsp;<strong>Comm Jam</strong> 是一個編程遊戲 (coding game)，在瀏覽器上遊玩。玩家必須寫程式來解決各個關卡的挑戰(大部分會是通訊實體層的問題，畢竟這是我的研究領域)，有點像是 online judge (事實上就是基於開源的 <strong>Judge0</strong> 來改造的)。</p>]]>
    </summary>
    <title>Comm Jam 整體概念</title>
    <updated>2026-03-19T07:14:13.500Z</updated>
  </entry>
  <entry>
    <author>
      <name>Raymond Su</name>
    </author>
    <category term="通訊技術" scheme="https://yc518suray.github.io/categories/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/"/>
    <category term="OFDM" scheme="https://yc518suray.github.io/tags/OFDM/"/>
    <category term="DSP" scheme="https://yc518suray.github.io/tags/DSP/"/>
    <content>
      <![CDATA[<link rel="stylesheet" type="text&#x2F;css" href="https://cdn.jsdelivr.net/npm/hexo-tag-hint@0.3.1/dist/hexo-tag-hint.min.css"><h2 id="Content"><a href="#Content" class="headerlink" title="Content"></a>Content</h2><p>介紹 OFDM 系統不可或缺的 CP。其實我也不知道為什麼要特地把 CP 的介紹獨立為一篇文章，也許是因為 OFDM 系統非常依賴 CP 的緣故吧！並且 CP 的概念也用在其他調變方式，如 OTFS，所以深入理解 CP 絕對是有利無害的。</p><span id="more"></span><p>以下是OFDM筆記全系列的文章：</p><ul><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-1/" title="OFDM筆記-1: OFDM簡介">OFDM筆記-1: OFDM簡介</a></li><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-2/" title="OFDM筆記-2: 通道模型">OFDM筆記-2: 通道模型</a></li><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-3/" title="OFDM筆記-3: OFDM模擬-Python">OFDM筆記-3: OFDM模擬-Python</a></li><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-4/" title="OFDM筆記-4: OFDM模擬-C++">OFDM筆記-4: OFDM模擬-C++</a></li><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-5/" title="OFDM筆記-5: Cyclic Prefix">OFDM筆記-5: Cyclic Prefix</a></li><li><a href="/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-6/" title="OFDM筆記-6: 待解決的問題">OFDM筆記-6: 待解決的問題</a></li></ul><p>&emsp;&emsp;CP 作為 guard interval，將 linear convolution 轉變為 circular convolution、進而簡化 OFDM 接收端等化器設計的故事，大家已經耳熟能詳了。所以這篇文章會介紹 CP 的其他應用。</p><h2 id="同步"><a href="#同步" class="headerlink" title="同步"></a>同步</h2><p>&emsp;&emsp;OFDM 在頻率上 (carrier frequency offset，CFO) 以及時間上 (symbol timing offset，STO) 都需要同步，否則無法還原傳送的符號。這一節分享的是[1]這篇 1997 年的經典論文，同時處理 CFO 和 STO 的問題。在過去的文獻(相較於此論文)裡，Moose (1994) 假設 STO 為已知，在頻域計算 CFO 的 ML 估計，不過有一些 training symbol 長度的限制；Nogami (1995) 等人採用加入 null symbol 來估計 STO 的方法，但是這個方法在傳送 burst 的時候不管用。這篇論文改良 Classen (1994) 的做法，一種方法解決兩個問題。</p><br><p>&emsp;&emsp;讀完才發現這篇論文<strong>其實不是 CP 的應用</strong>，不過姑且還是和 CP 有關。論文首先說明如何解決 STO，接著描述如何解決 CFO，兩者都是基於一組 training sequence 的設計。</p><h3 id="STO"><a href="#STO" class="headerlink" title="STO"></a>STO</h3><p>&emsp;&emsp;在一個 frame 的開頭設計一個 training symbol，稱作 TS1。TS1 的 useful part 長度為 2L，前 L 個 sample 和後 L 個 sample 一模一樣。這要如何得到？回想一下，如果在時域作 upsampling 兩倍，對應到頻域就是頻譜相對原點收縮兩倍。根據對偶性，在頻域作 upsampling 兩倍，就會對應到時域重複的兩半。</p><br><img src="https://drive.google.com/thumbnail?id=1g767YYKRC-6PW4iHPNj-dTSRSTmhC47m&sz=s1024" width="360"><center><font color="cyan">圖A，在頻域 upsampling。</font></center><br><p>&emsp;&emsp;接收端收到基頻的 sample $r_i$ 後，計算長度為 2L 的 sliding window 裡，前半和後半的 correlation ($d$ 為 sliding window 裡第一個 sample 時間)，</p><p>$$<br>\begin{align}<br>&amp;P(d) &#x3D; \sum_{m &#x3D; 0}^{L - 1}{r_{d + m}^{*} r_{d + m + L}}\\[10pt]<br>&amp;P(d + 1) &#x3D; P(d) + r_{d + L}^{*} r_{d + 2L} - r_{d}^{*} r_{d + L}<br>\end{align}<br>$$</p><p>&emsp;&emsp;如果 start time 完全沒有誤差，或是在 CP 長度減去通道長度的範圍內(見圖B)，$\lvert P(d)\rvert$ 都會是最大值。定義 $R(d) &#x3D; \sum_{m &#x3D; 0}^{L - 1}{\lvert r_{d + m + L}\rvert^2}$ 作為正規化的常數，我們可以定義 <strong>timing metric</strong> $M(d)$ 來表示 STO 造成的影響，</p><p>$$<br>M(d) &#x3D; \frac{\lvert P(d)\rvert}{R(d)}<br>$$</p><p>&emsp;&emsp;圖C呈現 start time 與 timing metric 的關係，$N_{\text{fft}} &#x3D; 1024$，$N_{\text{CP}} &#x3D; 128$。注意到有一段平坦的區間，就是前述 CP 形成的範圍，start time 在這段區間內誤差為零(但會引入固定的相位差)。</p><br><img src="https://drive.google.com/thumbnail?id=10CHkwtyKjSP3MlSVulwnl9NkRdvIbJi3&sz=s1024" width="360"><center><font color="cyan">圖B，start time 的選取範圍。</font></center><br><img src="https://drive.google.com/thumbnail?id=149Pdv9WkRskd18u6Jl_c_R1jVCVKcmc2&sz=s1024" width="360"><center><font color="cyan">圖C，timing metric vs start time，取十次模擬的平均值。</font></center><br><p>&emsp;&emsp;假設接收到的 sample 可以分為訊號和雜訊的成分，$r_i &#x3D; s_i + n_i$，$E\left[\lvert s_i\rvert^2\right] &#x3D; 2\sigma_s^2$，$E\left[\lvert n_i\rvert^2\right] &#x3D; 2\sigma_n^2$。經過一番推敲，論文提出在 correct timing 的情況下，timing metric 為常態分布，期望值為</p><p>$$<br>E\left[M(d_{\text{opt}})\right] &#x3D; \frac{\sigma_s^2}{\sigma_s^2 + \sigma_n^2}<br>$$</p><p>&emsp;&emsp;意味著 SNR 愈大，$E\left[M(d_{\text{opt}})\right]$ 愈趨近於 1，很合理。論文也提出對 SNR 的一個估計器，</p><p>$$<br>\hat{\text{SNR}} &#x3D; \frac{M(d_{\text{opt}})}{1 - M(d_{\text{opt}})}<br>$$</p><p>&emsp;&emsp;這個估計器在低 SNR 時比較準確。因此，接收端可以從 timing metric 來估計 SNR，判斷<span class="hint--info hint--rounded hint--top" data-hint="SNR 過低，可能導致錯誤率過高" ontouchstart>是否解讀訊號</span>，或是將 SNR 的資訊回傳給發射端(雖然這好像和 start time 的選取比較沒關係)。</p><br><p>&emsp;&emsp;論文提供兩個尋找最佳 start time 的方法：找 timing metric 最大值的時間點，或是找最大值左右兩個 90% 最大值的點，再取兩點中心。後者的效果比較好，不過兩種方法都要求先找到峰值。</p><h3 id="CFO"><a href="#CFO" class="headerlink" title="CFO"></a>CFO</h3><p>&emsp;&emsp;假設 CFO 為 $\Delta f$，則 TS1 的前後半剛好相差一個固定的相位 $\phi &#x3D; \pi T\Delta f$，$T$ 是子載波間距的倒數。$\phi$ 可以由前面提到的 $P(d)$ 來估計(假設 STO 的問題已經解決)，</p><p>$$<br>\hat{\phi} &#x3D; \angle P(d)<br>$$</p><p>&emsp;&emsp;然而這裡有個問題：如果實際的頻率位移 $\lvert\Delta f\rvert &gt; \frac{1}{T}$，單從 $\hat{\phi}$ (定義在 $-\pi$ 到 $\pi$ 之間)是無法得知的。更一般的情形可以寫作</p><p>$$<br>\Delta f &#x3D; \frac{\hat{\phi}}{\pi T} + \frac{2k}{T}<br>$$</p><p>&emsp;&emsp;可以看成是整數部分和小數部分的表示。要估計 $\Delta f$，我們需要第二個 training symbol TS2。TS2 的每一個子載波皆載有 PN 序列 (TS1 則只有偶數編號的子載波載有 PN 序列)。首先先補償 $\hat{\phi} &#x2F; \pi T$ 的相位差，接下來的目標就是估計 $2k &#x2F; T$。</p><br><p>&emsp;&emsp;令 $X_{1, i}$ 和 $X_{2, i}$ 分別表示 TS1 和 TS2 各個子載波承載的符號，當然 $X_{1, i}$ 只有在 $i$ 為偶數的時候有值；$X_{2, i}$ 則是每個 $i$ 都有值。定義 $v_i$ 為 $X_{2, i} &#x2F; X_{1, i}$，$i$ 為偶數，也就是說它是 differential 的。現在來看看 $v_i$ 在頻率位移下的變化：頻率位移後，$v_i’ &#x3D; v_{(i + 2k)_N}$，經歷了 cyclic shift，所以 correlation 的概念一樣可以用於頻率位移的估計。定義頻率位移 metric 為</p><p>$$<br>B(k) &#x3D; \frac{\lvert\sum{ {X’_{1, (i + 2k)_N}}^{*}\ {v’_i}^{*}\ X’_{2, (i + 2k)_N}}\rvert^2}{2\left(\sum{\lvert X_{2, i}\rvert^2}\right)}<br>$$</p><p>&emsp;&emsp;而 $\hat{k} &#x3D; \arg{\max_{k}{B(k)}}$。看起來有點複雜，不過和 timing metric 的概念是一樣的，就有點像齒輪的嵌合，選擇合適的 $\hat{k}$ 就可以讓 $B(k)$ 分子的每一項相位為零。這部分好像比較像是 detection 而不是 estimation。</p><h2 id="通道估測"><a href="#通道估測" class="headerlink" title="通道估測"></a>通道估測</h2><p>&emsp;&emsp;CP 也可以用於通道估測。這一節分享[2]這篇 1999 年的論文，使用 CP 來作 blind channel estimation，也就是不使用 training symbol 的作法。論文首先強調 CP-OFDM 時域波型的 <strong>cyclostationarity</strong> 性質。令 $P &#x3D; N + N_{\text{cp}}$，並以 polyphase representation 來表示哪一個 block 的哪一個 sample，$x_p[n] &#x3D; x[n P + p]$。據此，OFDM 時域波型可以寫為</p><p>$$<br>x_p[n] &#x3D; \frac{1}{N} \sum_{m &#x3D; 0}^{N - 1}{s_m[n] e^{j\frac{2\pi}{N} m(p - N_{\text{cp}})}},\ \ 0 \leq p \leq P - 1<br>$$</p><p>&emsp;&emsp;而其自相關函數可以寫為(假設 $E\left[s_m[n] s^{*}_r[n]\right] &#x3D; \sigma_s^2 \delta[m - r]$)</p><p>$$<br>\begin{align}<br>c_{xx}[nP + p;\ \tau] &amp;&#x3D; E\left[x_{p + \tau}[n] x^{*}_p[n]\right] \sum_{\zeta &#x3D; 0}^{P - 1}{\delta[\zeta - (p + \tau)]}\\[10pt]<br>&amp;&#x3D; \frac{1}{N^2} \sum_{m &#x3D; 0}^{N - 1}{\sum_{r &#x3D; 0}^{N - 1}{E\left[s_m[n] s^{*}_r[n]\right] e^{j\frac{2\pi}{N} m(p + \tau - N_{\text{cp}})} e^{-j\frac{2\pi}{N} r(p - N_{\text{cp}})}}} \sum_{\zeta &#x3D; 0}^{P - 1}{\delta[\zeta - (p + \tau)]}\\[10pt]<br>&amp;&#x3D; \frac{\sigma_s^2}{N^2} \sum_{m &#x3D; 0}^{N - 1}{e^{j\frac{2\pi}{N} m\tau}} \sum_{\zeta &#x3D; 0}^{P - 1}{\delta[\zeta - (p + \tau)]}\\[10pt]<br>&amp;&#x3D; \frac{\sigma_s^2}{N} \left(\delta[\tau] + \delta[\tau - N]\sum_{\zeta &#x3D; 0}^{P - N - 1}{\delta[\zeta - p]} + \delta[\tau + N]\sum_{\zeta &#x3D; N}^{P - 1}{\delta[\zeta - p]}\right)<br>\end{align}<br>$$</p><p>&emsp;&emsp;$\sum{\delta[\zeta - (p + \tau)]}$ 是用來限制 $0 \leq p + \tau \leq P - 1$ (我還是第一次看到這種操作)。上面這個式子說明 $c_{xx}$ 是 $p$ 和 $\tau$ 的函數，但是<font color="yellow">注意它不是 $n$ 的函數</font>，表示每經過週期 $P$，$c_{xx}$ 就會開始重複，因此為 <strong>cyclostationary</strong>。</p><br><p>&emsp;&emsp;經過 LTI 系統，cyclostationarity 的性質不變，就不附上推導過程了 ($L$ 是通道長度)：</p><p>$$<br>c_{rr}[nP + p;\ \tau] &#x3D; \sum_{\zeta &#x3D; 0}^{L - 1}{\sum_{\substack{q &#x3D;\\ \tau - \zeta - (L - 1)}}^{\tau - \zeta}{h[\zeta] h^{*}[\zeta - \tau + q] c_{xx}[nP + p - \zeta;\ q]}} + \sigma_n^2 \delta[\tau]<br>$$</p><p>&emsp;&emsp;計算它的 DTFS expansion $C_{rr}[k;\ \tau]$，論文作者稱其為 cyclic correlation。基本上，時域的自相關函數對應到頻域的功率頻譜，不過 cyclic correlation 描述時間變數 $p$ 的週期性質，而不是時間差變數 $\tau$，所以不能解讀為功率頻譜；$C_{rr}[k;\ \tau]$ 可以理解為「變化週期為 $P &#x2F; k$ 的自相關模式」。說真的搞不太懂它的物理意義。</p><p>$$<br>C_{rr}[k;\ \tau] &#x3D; \frac{1}{P} \sum_{p &#x3D; 0}^{P - 1}{c_{rr}[nP + p;\ \tau] e^{-j\frac{2\pi}{P} kp}}<br>$$</p><br><img src="https://media1.tenor.com/m/4pZEyhWbxRsAAAAd/%E5%91%A8%E6%98%9F%E9%A6%B3-%E5%8A%9F%E5%A4%AB.gif" width="450"><center><font color="cyan">越讀腦袋越亂，而且論文裡有些式子沒寫好，要自己推敲一番。<br>圖片來源：tenor.com，</font><a href="https://tenor.com/zh-TW/view/周星馳-功夫-你搞得我好亂呐-gif-27169093"><font color="cyan">連結</font></a></center><br><p>&emsp;&emsp;最後，再對時間差變數 $\tau$ 作 z-transform，得到 $S_{rr}(k;\ z)$ (cyclic spectrum)。由於 $C_{rr}$ 可以寫成</p><p>$$<br>C_{rr}[k;\ \tau] &#x3D; \left(h[\tau] e^{-j\frac{2\pi}{P} k\tau}\right) \star h^{*}[-\tau] \star C_{xx}[k;\ \tau]<br>$$</p><p>&emsp;&emsp;故</p><p>$$<br>S_{rr}(k;\ z) &#x3D; H(e^{j\frac{2\pi}{P} k} z) H^{*}((z^{-1})^{*}) S_{xx}(k;\ z)<br>$$</p><p>&emsp;&emsp;$S_{xx}$ 為已知，$S_{rr}$ 則可以在接收端得到(估計)，$H(z)$ 則可以透過選取兩個合適的 $k_i$，再經過一番運算得到。圖D呈現 $L &#x3D; 7$，$N &#x3D; 64$，$N_{\text{cp}} &#x3D; 8$ 的情況下，$\lvert S_{rr}\rvert$ 的形狀。($z$ 由 $e^{j\omega}$ 代換。)</p><br><img src="https://drive.google.com/thumbnail?id=1strRKdOmpVH-bxs4u1XTdkeVlKcd4ENF&sz=s1024" width="400"><center><font color="cyan">圖D，$\lvert S_{rr}(k;\ e^{j\omega})\rvert$ 頻譜。</font></center><br><p>&emsp;&emsp;這篇論文我覺得讀來相當吃力，也許是耐不住性子慢慢推導吧，和 Google Gemini 討論才對它有些想法。簡單來說，因為加入了 CP，傳送訊號與接收訊號為 cyclostationary，等於是增加了不同 $k_i$ 所提供的條件(資訊)，方能解出 $H(z)$。Blind estimation 不使用 pilot symbol，因此最大化既有的頻譜使用效率；但是估計 $S_{rr}$ 需要時間，無法應用於高速變化的通道，演算法複雜度高，不如 pilot-aided 的方法簡單有效。不過，在不可能知道 pilot 資訊的情況下，如監偵軍事情報，可能還是需要 blind estimation (thoughts from Google Gemini)。</p><h2 id="其他"><a href="#其他" class="headerlink" title="其他"></a>其他</h2><p>&emsp;&emsp;這一節我們提出一個問題：<strong>OFDM 難道就非 CP 不可嗎？</strong> 在[3]這篇論文中提出用於 ZP-OFDM 系統的等化器設計，也比較了 CP 和 ZP 的優缺點。這篇論文以相當<font color="yellow">簡潔</font>的方式表示 CP-OFDM：假設傳送的第 $i$ 個 block 符號為 ${\bf s}(i)$，則接收到的 sample 可以寫作</p><p>$$<br>{\bf r}(i) &#x3D; {\rm H} {\rm F}_{\text{cp}} {\bf s}(i) + {\rm H}_{\text{IBI}} {\rm F}_{\text{cp}} {\bf s}(i - 1) + {\bf n}(i)<br>$$</p><p>&emsp;&emsp;當中 ${\rm F}_{\text{cp}}$ 是加上 CP 部分的 IDFT 矩陣，$\rm H$ 是代表通道的下三角矩陣，${\rm H}_{\text{IBI}}$ 是代表 inter-block interference 的上三角矩陣。ZP-OFDM 也是一樣的形式：</p><p>$$<br>\begin{align}<br>{\bf r}(i) &amp;&#x3D; {\rm H} {\rm F}_{\text{zp}} {\bf s}(i) + {\rm H}_{\text{IBI}} {\rm F}_{\text{zp}} {\bf s}(i - 1) + {\bf n}(i)\\[10pt]<br>\text{(ZP 作為 postfix)}\ &amp;&#x3D; {\rm H} {\rm F}_{\text{zp}} {\bf s}(i) + {\bf n}(i)\\[10pt]<br>&amp;&#x3D; {\rm H_0} {\rm F}_N^H {\bf s}(i) + {\bf n}(i)<br>\end{align}<br>$$</p><p>&emsp;&emsp;其中 $\rm H_0$ 由 $\rm H$ 的前 $N$ 個行向量組成，也是因為將 ZP 作為 postfix 而得以簡化。注意 $P\times N$ 矩陣 $\rm H_0$ 的行向量為線性獨立，因此可以計算它的 left inverse $\rm H_0^{\dagger}$ 還原時域訊號 (ZF equalizer)。相較於 CP-OFDM 在頻域執行 one-tap equalization，ZP-OFDM 在時域的 equalizer 不會有 deep-fading 的問題，因此可以還原每一個子載波的符號 (full diversity gain)；當然 CP-OFDM 的接收機複雜度就比 ZP-OFDM 簡單許多，正所謂 <strong>trade-off 不可避</strong>，好的 performance 一定伴隨著相當的代價。</p><br><p>&emsp;&emsp;論文提出兩種 ZP-OFDM 的等化器設計，<strong>ZP-OFDM-OLA</strong> 和 <strong>ZP-OFDM-FAST</strong>，後面的十頁大家就自己去讀。從圖表得到的結論是，ZP-OFDM-OLA 的效果和 CP-OFDM 差不多，ZP-OFDM-FAST 的錯誤率在未編碼的情況下比 CP-OFDM 多出 2 ~ 3 dB 的增益，有編碼的話差異就減少到 1 dB 以內；不過模擬預設的通道也可能是 performance 差異的重要原因。</p><h2 id="結語"><a href="#結語" class="headerlink" title="結語"></a>結語</h2><p>&emsp;&emsp;我一直覺得 CP 是很優美的設計，它的形式很簡單，功能卻非常強大。雖然本文舉出 CP-OFDM 的一些缺點，但是別忘了LTE-advanced、5G 和 Wifi 都是基於 CP-OFDM，顯然經過工程考量，CP 還是比較有優勢的。也許在 OTFS 系統，CP 也能大展身手。</p><h2 id="參考資料"><a href="#參考資料" class="headerlink" title="參考資料"></a>參考資料</h2><p>[1] T. M. Schmidl and D. C. Cox, “Robust frequency and timing synchronization for OFDM,” in <em>IEEE Transactions on Communications</em>, vol. 45, no. 12, pp. 1613-1621, Dec. 1997.</p><p>[2] R. W. Heath and G. B. Giannakis, “Exploiting input cyclostationarity for blind channel identification in OFDM systems,” in <em>IEEE Transactions on Signal Processing</em>, vol. 47, no. 3, pp. 848-856, March 1999.</p><p>[3] B. Muquet, Zhengdao Wang, G. B. Giannakis, M. de Courville and P. Duhamel, “Cyclic prefixing or zero padding for wireless multicarrier transmissions?,” in <em>IEEE Transactions on Communications</em>, vol. 50, no. 12, pp. 2136-2148, Dec. 2002.</p>]]>
    </content>
    <id>https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-5/</id>
    <link href="https://yc518suray.github.io/%E9%80%9A%E8%A8%8A%E6%8A%80%E8%A1%93/OFDM-intro-5/"/>
    <published>2025-12-19T00:45:39.000Z</published>
    <summary>
      <![CDATA[<h2 id="Content"><a href="#Content" class="headerlink" title="Content"></a>Content</h2><p>介紹 OFDM 系統不可或缺的 CP。其實我也不知道為什麼要特地把 CP 的介紹獨立為一篇文章，也許是因為 OFDM 系統非常依賴 CP 的緣故吧！並且 CP 的概念也用在其他調變方式，如 OTFS，所以深入理解 CP 絕對是有利無害的。</p>]]>
    </summary>
    <title>OFDM筆記-5: Cyclic Prefix</title>
    <updated>2026-04-10T11:08:00.504Z</updated>
  </entry>
</feed>
