# 2022上一段日記
###### tags: `日記` `生活`
###### 最後更新時間 : 2022/10/21
## 目錄
|日期|概述|
|:-:|:-|
|[02/14(一)](#0214(一))|通訊原理的機率公理、隨機變數、隨機程序|
|[02/15(二)](#0215(二))|通訊原理的自相關、自共變異函數的物理意義|
|[02/16(三)](#0216(三))|VLSI電路設計初認識、日文動詞與形容詞的複習|
|[02/17(四)](#0217(四))|機器學習初認識|
|[02/18(五)](#0218(五))|PMIC初認識、決定選課與讀書方向|
|[02/19(六)](#0219(六))|熟悉Jupyter Notebook與Colab環境|
|[02/20(日)](#0220(日))|DL的neural network名詞定義|
|[02/21(一)](#0221(一))|數位通訊的機率複習|
|[02/22(二)](#0222(二))|訊號系統第一堂課|
|[02/23(三)](#0223(三))|VLSI的CMOS電路實現|
|[02/24(四)](#0224(四))|跟巴友DC閒聊|
|[02/25(五)](#0225(五))|工數一的解的分類與幾何意義|
|[02/26(六)](#0226(六))|工數一的找積分因子方法 - grouping method與公式法|
|[02/27(日)](#0227(日))|工數一的一階一次的ODE解題 - 分離變數法、一階線性ODE、特殊解法|
|[02/28(一)](#0228(一))|工數一的一階高次ODE解法 - 因式分解與Clairaut's equation|
|[03/01(二)](#0301(二))|整理儀容雜事|
|[03/02(三)](#0302(三))|VLSI的oxide厚度選擇與tradeoff|
|[03/03(四)](#0303(四))|電子一的電子與電洞的mobility|
|[03/04(五)](#0304(五))|VLSI的layout的技巧 - transistor folding, Euler path|
|[03/05(六)](#0305(六))|電子一的I−V曲線與Early effect的推導|
|[03/06(日)](#0306(日))|VLSI的$\alpha$-power law model|
|[03/07(一)](#0307(一))|數位通訊的隨機程序中n階統計量與stationary的定義|
|[03/08(二)](#0308(二))|去圖書館彩色掃描書籍|
|[03/09(三)](#0309(三))|跟平常一樣盡力掩蓋心中的落寞與孤獨|
|[03/10(四)](#0310(四))|工數一的normal ODE解的性質|
|[03/11(五)](#0311(五))|工數一的n階常係數線性ODE的齊次解求法|
|[03/12(六)](#0312(六))|VLSI作業的熟悉HSPICE語法|
|[03/13(日)](#0313(日))|工數一的待定係數法、Lagrange參數變異法求特解|
|[03/14(一)](#0314(一))|數位通訊的Wiener–Khinchin theorem;機率的動差生成函數、特徵函數、中央極限定理|
|[03/15(二)](#0315(二))|訊號與系統的convolution就是在每一區間對兩向量做內積判斷兩向量的相似度|
|[03/16(三)](#0316(三))|工數二的Fourier cosine / sine Integral|
|[03/17(四)](#0317(四))|工數二的利用傅立葉轉換堆與性質解ODE|
|[03/18(五)](#0318(五))|工數二的Shannon sampling theorem(取樣定理)|
|[03/19(六)](#0319(六))|VLSI作業的transmission gate的HSPICE模擬驗證|
|[03/20(日)](#0320(日))|數位通訊的WSS經過LTI系統後響應作業|
|[03/21(一)](#0321(一))|工數二的完成傅立葉轉換的作業與考古習題|
|[03/22(二)](#0322(二))|工數二一段傅立葉積分與轉換|
|[03/23(三)](#0323(三))|VLSI作業的D-latch、D-flip flop、multiplexer的layout|
|[03/24(四)](#0324(四))|VLSI作業的AOI22、一對tristate inverter的layout|
|[03/25(五)](#0325(五))| VLSI作業的AOI31與$Y = \overline{(AB + C) \cdot D}$的layout、VLSI作業的3 to 8的decoder的HSPICE模擬驗證|
|[03/26(六)](#0326(六))|去清大新思工作坊熟悉ARC EM9D的開發流程|
|[03/27(日)](#0327(日))|訊號系統的在時域上計算convolution|
|[2022上一段總結](#2022上一段總結)|工數一的一階ODE、二階ODE求解;數位通訊的機率與隨機程序複習、WSS經過LTI系統後的響應;工數二的Fourier Integral;VLSI作業的3 to 8 decoder|
<br>
## 02/14(一)
### 進度
- 通訊原理的機率公理、隨機變數、隨機程序
### 心得
目前選課狀況為下禮拜要加選數位通訊、搶軍訓、抽通識志願的籤,與想辦法加簽軍訓,在不衝堂的前提下,最多可以加選到3堂軍訓,這樣今年暑假當兵可以多抵6天的兵役。
第一堂的數位通訊先介紹導論 - 現代通訊都是數位通訊,這是因為數位通訊比起類比通訊的還原度還更高(robustness)、數位通訊可以對訊息進行加密、低成本的DSP晶片。數位通訊的架構方塊圖如下,會考名詞定義,重點是source encoder會盡可能進行資料壓縮,拿掉不必要的資訊,而channel encoder會有規則性加上資訊,偵測或更正傳送過去的位元錯誤,增加接收訊號的reliability。<br>

再來是複習機率,這邊我也另外看了交大陳伯寧類比通訊OCW([補充教材](http://shannon.cm.nctu.edu.tw/)),另外可與上學期所學做對照,參見[2021下三段日記 12/28(二)](https://hackmd.io/@HsuChiChen/2021-log-4#12/28(二))。
---
機率有三大公理(Kolmogorov axioms),分別是
1. $0 \leq P(A) \leq 1$
2. $P(S) = 1$
3. $\text{For two mutual exclusive(disjoint) events }A \text{ and } B, P(A\cup B) = P(A) + P(B)$
公理是理所當然的,不須證明的,舉例來說非歐氏幾何的公理是兩條平行線不相交,這是不需要證明的公理,可以想成這是這個空間的"遊戲規則"、"體系",**要玩遊戲就必須遵守這個世界觀的規則**。就工程上而言,我們只會討論符合實際生活情況的公理,而不會探討純數的公理。藉由做很多次的隨機試驗,可以得到relative frequency $f_n(A) = \frac{N_n(A)}{n}$,當試驗次數越多,會趨於機率,記為$\lim_{n \to \infty} f_n(A) = P(A)$,可以去發現它與公理條件吻合,即機率三大公理符合實際生活情況。
**所有的性質都是藉由公理所衍伸出來的**,舉例來說證明$P(A^c) = 1 - P(A)$ - 由於$A^c,A$為mutual exclusive events,$P(A) + P(A^c) \overset{\text{axiom 3}}= P(A\cup A^c) = P(S) \overset{\text{axiom 2}}= 1$
兩個event在統計上的獨立定義為$P(A\cap B) = P(A)P(B)$,帶入條件機率$P(B|A) = \frac{P(A\cap B)}{P(A)}$,得$P(B|A) = P(B)$,或是AB互換得$P(A|B) = P(A)$,比較直觀去理解就是**我們不需要知道機率$P(A)$的這個資訊,就可以知道機率$P(B)$**,可以化做一直線$A$與$A^c$各存在一個等長的$B$,在有A與沒有A的前提下,所涵蓋的$P(B)$比例是一樣的。
---
為了表示一個機率的系統,我們定義一個隨機變數的函數關係,把樣本空間上的樣本點,用實數(real-valued)去表示,記為$X:S \to \mathfrak{R}$,舉例來說,"我看到一隻豬的機率是0.2"這件事情是無法排序與計算的,因此**需要透過隨機變數,將難以計算、抽象概念的元素映射(mapping)到實數空間**,此外我們可以用一個CDF完整描述一個隨機變數。
將random variable推廣到多維空間,就是random vector,兩個random variable記為
$$
\begin{align*}
F_{X,Y}(x,y) &= P(X \leq x \text{ and } Y \leq y)\\ &= P( \{s \in S:X(s) \leq x\} \cap \{s \in S:Y(s) \leq \leq y \})
\end{align*}
$$
上式的解釋為對於一sample space的空間$S$下的所有outcome(sample point)$s$是不可測量的(unmeasurable),因此需要有一組函數的映射關係(random variable),去把它映射到實數空間,使其變為可計算、可比大小的實數(對比複數空間,是不可比大小的),記為$X(s) \leq x$,此外在此式同一個sample space映射到二維的實數空間,記為$X:S \to \mathfrak{R}, Y:S \to \mathfrak{R}$,也就是$S_{X,Y} = \mathfrak{R} \times \mathfrak{R}$,最後要注意$F_{X,Y}(x,y)$中$F$大寫代表CDF,下標$X,Y$代表隨機變數的名稱,而括號內的小寫$x,y$代表在sample space的空間下的任意個outcome。
有限個random variable稱之為random vector,而無限個random variable就是random process,也就是說對random process $X$來說每一個sample space的outcome(sample point),都會對應到一個函數,這個函數稱為sample function(a realization of $X(t)$),記為$X(t,s_j)$,每個函數都是deterministic。
整理如下表
|函數對應關係|映射到的空間|
|---|---|
|random variable|real number|
|random vector|multi-dimensional real vector|
|random process|real-valued deterministic function|
<br>
## 02/15(二)
### 進度
- 通訊原理的自相關、自共變異函數的物理意義
- 通訊原理的引入stationarity的觀念原因
### 心得
參見[2021下三段日記 01/01(六)](https://hackmd.io/@HsuChiChen/2021-log-4#01/01(六)),可與之前所學內容比較。**引入於stationarity觀念的原因,在於我要確保不同時間點開始做實驗,獲得的結果都要相同**,當隨機程序是stationary,平均值才是定值(物理意義為DC值),因為不會隨著測量開始的時間改變,這才有測量的意義。
autocorrelation function是為了判斷一個訊號於其自身(auto)**在不同時間點下兩者的相關性** $R_x(t_1, t_2)$,定義為
$$
\begin{align*}
R_X(t_1, t_2) &\triangleq E[X(t_1)X^*(t_2)]\\
&= \int^\infty_{-\infty} \int^\infty_{-\infty} x_1x_2^*f_{X(t_1),X(t_2)}(x_1,x_2)dx_1dx_2
\end{align*}
$$
參照[知乎](https://www.zhihu.com/question/24687047),定義取共軛的原因,是因為訊號是複數的話,表示能量直接相乘會造成相位相加錯亂$X(t_1)X^*(t_2) = |X(t_1)||X(t_2)|e^{j(\angle X(t_1) - \angle X(t_2))}$,因此需要取共軛,使兩相位抵銷,而一般真實訊號都是實數,在此條件下可以簡化為直接相乘。
autocorrelation function的概念是**兩個不同時間點訊號相乘,代表是所有訊號的功率(訊號的value平方)**,而引入autocovariance function,先將訊號**去除DC部分**,再進行相乘比較。
$$
\begin{align*}
C_X(t_1,t_2) &\triangleq E[(X(t_1) -\overline{X(t_1)} ) \cdot (X(t_2) -\overline{X(t_2)} )^* ]\\
&= \overline{X(t_1) \cdot X(t_2)} - \overline{X(t_1)} \cdot \overline{X(t_2)}\\
&= R_X(t_1, t_2) - \mu_X(t_1)\mu_X^*(t_2)
\end{align*}
$$
**假設系統是stationary**,時間同減一定值也會相同,記為$R_X(t_1, t_2) = R_X(t_1 -t_2, 0) = R_X(t_1 - t_2) = R_X(\tau)$。
---
對於真實的世界,我們不太關心SSS,而是只關心1階動差(DC訊號)與2階中心動差(AC訊號)、2階動差(功率)與時間無關,就是WSS,其定義如下
$$
\text{A random process } X(t) \text{ is WSS if}\\
\begin{cases}
\mu_X(t) = \text{const.}\\
C_X(t_1, t_2) = C_X(t_1 - t_2) \quad\text{or}\quad R_X(t_1, t_2) = R_X(t_1 - t_2)
\end{cases}
$$
以下WSS的隨機變數下autocorrelation function的性質,需要會判動$R_X(\tau)$圖片是否正確。
|名稱|內容|解釋|
|---|---|---|
|mean square value|$R_X(0) = E[\text{abs}(X(t))^2]$|兩時間點間隔0,代表訊號自己對自己的能量影響會是最大的。|
|conjugate symmetry|$R_X(\tau) = R_X^*(-\tau)$|代表從10點10分看從10點20分訊號的影響,和從10點20分看從10點10分訊號的影響會是一樣的。|
|real part peaks at zero|$\Re\{R_X(\tau)\} \leq R_X(0)$|目前的訊號對一開始測量訊號的影響會隨著時間增加而減少。|
---
實在是太多數學了,看到後面有點反胃,明天想改讀訊號與系統,改天再重看一次影片,加深不熟的觀念,包括以下是今天所學得知識點,但沒有打在日記內容。
1. 隨機二元波訊號隨機的延遲對於自我干擾的影響量分布
2. 正交正弦訊號隨機的延遲對於自我干擾的影響量分布
3. ergodic(遍歷理論)的物理意義
<br>
## 02/16(三)
### 進度
- VLSI電路設計初認識
- 日文動詞與形容詞的複習
### 心得
大學部的IC設計有3門課,先備知識為邏輯設計、計算機組織、電子學一二三、基礎程式與熟悉Linux環境。
|課名|開課時間|內容|修習狀態|
|---|---|---|---|
|intro to VLSI| 二下邱瀝毅、蔡建泓 |前半數位、後半類比,提取後面2門的基礎內容。 |已修習。前半做影像彩色轉換灰階與做簡單的CNN提取影像輪廓;後半由於疫情只有畫到NAND gate就結束了。|
|VLSI system|三上李昆忠|數位|未修習。由於李昆忠教授要退休,從去年開始(110-1)沒有開課。|
|VLSI circuit|三下張順志|類比|目前正在修習。|
參照今天上課內容與[PTT](https://www.ptt.cc/bbs/Electronics/M.1165069232.A.0C8.html),**數位IC是cell based,根據SPEC要求,使用合適的standard cell library, 因此就不需要像類比IC,從重新從電晶體階層開始畫**,加上強大的電路仿真、合成等EDA tools幫助,可以從較上層的coding去實現電路。而類比IC是full custom,也就是standard cell library中的那些子電路,從頭到尾都自己設計,因此電晶體數量也不會像數位IC的那麼多,是真正追求極致的performance的人才會採用這個方法。
感覺很多事情都是這樣,都是**從底層的人做好,封裝成一個API,再給更上層的人使用,更上層的人做好,封裝成一個API,再給更上上層的人使用等,一直從計算機底層去往上實現到最終消費者的應用端**。寫C++時可以使用函式庫STL(standard Template Library)去call現成的容器,但如果想追求效能上的極致,需要根據需求,可以直接操作記憶體的heap區,手刻一些符合自己SPEC要求的客製化的容器,像是DS學的stack, linked list, queue, tree等。
---
參照[高一時的日文N3學習](https://hackmd.io/@HsuChiChen/japanese-learning),由於以前高二上考過日檢N3了,想選日文課當作刷分通識課與複習以前高中學的日文。我一開始是直接選成大日文最高的日文(六),想看看在教的內容,內容沒有想像中的難,為N4/N5的基礎語法,不過在得知二外轉通識的學分沒有上限的規定,加上中午需要參加meeting,所以**我想改選日文(四),這樣我可以從日文(四)修到日文(六),總計3堂課6學分**,因此扣除日文能有的6學分,我還剩6.5學分的通識課。
不過畢竟日文是我5年前學的,很多東西都忘記了,所以整個下午跟著老師與自己額外複習重點基礎語法。
- い形容詞 / な形容詞變形與時態變化



- 一類、二類、不規則動詞變化變形(時態變化與な形容詞類似)

<br>
## 02/17(四)
### 進度
- 關於大學專題的抉擇
- 機器學習初認識
### 心得
關於三下的專題,以下幾點觀察,實在讓我很徬徨。
- 幾個禮拜的meeting下來,我根本聽不懂學長報告的內容,覺得於我這種聽不懂的人很浪費時間。
- 那些碩班、博班學長感覺自己接的計畫都忙不過來了,無暇管大學專題生要幹嘛。
- 教授感覺給專題生很自由,就是你想幹嘛就幹嘛,比賽也是說可參加也可不參加,而又說比賽跟實驗室研究的方向完全不一樣,只是單純去參加學學東西而已。
- 計畫是三上修單晶片做個[防疫送餐車](https://www.youtube.com/watch?v=XrFcHdg5gzE),而這學期專題就是參加比賽,但我在看了[Synopsys ARC AIoT Design Contest 得獎作品](https://contest.synopsys.com.tw/2019ARC/PreviousWinner?ContestId=5)後,覺得要得獎有點難度,但是**參加比賽如果沒有得獎,那跟沒參加一樣,畢竟無法拿到客觀、實質性的評估**,那就對考研的書審成績沒有用了。
- 這個跟計算機架構相關的熱門組別,依照我目前趴數,推甄也上不了,只能去推那些冷門的組別,因此我也沒有留在這裡的必要性。
綜合以上幾點,我覺得這個lab的大學專題生的風氣自由,適合有明確目標,進lab就能直接跟碩班接計畫的人,不適合我這種什麼都不懂、程度差的人。**我很希望能有個題目或方向,不需要手把手教學,但能叫我要做什麼**,舉例來說這禮拜指派我要做個二階OP放大器、做振盪器電路之類的那種有目標的感覺,就是平常修實作課的那種感覺。
之後問了其他有明確目標加上與IC有關的實驗室專題生,但好像都滿了,這實在讓我很徬徨。我有個想法,**既然考研的書審成績幾乎都看系排趴數,那我乾脆不要做專題了,修一些大學部或是碩班的實作課,還比較有目標,也有實質性成品和修課分數的證明**,像是二下修的超大型積體電路和三上修的單晶片一樣。
我實在很徬徨,系上又沒有認識的學長,在網路上問了別校做DL的大四學長,他給我的回應是
> 專題的東西會比較有挑戰性,通常是比較新的東西,甚至可能可以發paper的那種;實作課就是按步就班的去把助教做過的東西再做一次。
> 通常都要做一個專題會比較好,不然申請碩班的時候會有劣勢。
不過我加的這個lab三下專題應該是參加比賽,而有個lab三下專題是直接修碩班的實作課,讓我搞不清楚所謂專題的定義。像是有個lab是做混訊的,他們三下專題就是修一堂課"數位電源控制電路與系統實作專題",我想說我就一起修,而四上就修資工系的C#/unity實作課,四下修個寫web的實作課,五上準備考研,這會是最好的選擇嗎?我不知道,明天再看看那堂"數位電源控制電路與系統實作專題"如何,再決定吧。
---
如2021新思科技ARC盃AIoT設計應用競賽需要使用TensorFlow,TensorFlow是一個機器學習框架,所以我目前學習目標為Python的基本語法與機器學習入門。找到台大李宏毅2021年DL課程 - [首網頁](https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php)、[B站搬運](https://www.bilibili.com/video/BV1Wv411h7kN)、[逐字稿](https://unclestrong.github.io/DeepLearning_LHY21_Notes/)、[2019年筆記](https://github.com/datawhalechina/leeml-notes)。
機器學習就是讓機器具備找一個函式的能力,但這個函式非常複雜,不是用手可以寫出來的方程式,因此需要憑藉著機器的力量,把這個函式自動找出來,這件事情便是機器學習。而隨著要找的函式不同,機器學習有不同的類別
- Regression是輸入與這個預測輸出相關的訊息、輸出是一個 scalar。
- Classification是從我們設定好的選項裡面,讓機器選擇一個當作輸出
- Structured Learning不只是要輸出一個數字、做選擇題,還要產生一個有結構的物件。
機器學習找這個函式分為3個過程。
1. Function with Unknown Parameters<br>
猜一個帶有未知參數的function,稱之為model,這個猜測往往就來自於對這個問題本質上的了解,也就是domain knowledge。
$$
\begin{align*}
\text{Model}\quad& y = \underbrace{b}_{\text{bias}} + \underbrace{w}_{\text{weight}}\cdot\underbrace{x_1}_{\text{feature}}\quad\text{based on domain knowledge}\\
&w \text{ and } b \text{ are unknown parameters}
\end{align*}
$$
2. Define Loss from Training Data<br>
定義一個function稱為做Loss,輸入為model裡面的參數,輸出代表把這組未知的參數設定某一個數值的時,這筆數值的好壞。
$$
\begin{align*}
\text{Loss}\quad& L(b, w) = \frac{1}{N}\sum_ne_n\\
& e = |y - \hat{y}| \quad\text{MAE(mean absolute error)}\\
& e = (y - \hat{y})^2 \quad\text{MSE(mean square error)}
\end{align*}
$$
根據調整不同的$b,w$計算Loss做等高線圖,為Error Surface,越偏紅色是Loss大、越偏藍色是Loss小。
3. Optimization<br>
找一個$w,b$可以Loss最小的極值,那這個可以讓loss最小的$w,b$記為$w^*,b^*$。
$$
w^*,b^* = \arg \min_{w, b}L
$$
> - argument(arg) 實參 `foo(2)`
> - parameter 形參 `void foo(int i){//ToDo}`
一種optimization的方法叫做gradient descent,方法為
1. 隨機選取一個初始的點 $w^0$
2. 對Loss做偏微分,也就是求切線斜率,決定哪哪一方向的Loss是最小的。
3. 絕對要往低的地方跨出一步的大小,取決於2個參數,一是斜率大就跨大步、二是自己設定一個參數為learning rate $\eta$,而這種在做機器學習,需要自己設定的東西,稱為hyperparameters。
4. 步驟二、三記為$w_1 \gets w^0 - \eta \frac{\partial L}{\partial w}|_{w = w^0}$,進行疊代(iteration)。
5. 任何iteration的loop都需要有termination condition,一是iteration的次數上限、二是算到微分項為0的結果,故卡住不再移動。
gradient descent會有local minima的問題,但這是這不是真實遇到的問題,而gradient descent致命的缺點也不在此。
<br>
## 02/18(五)
### 進度
- PMIC初認識
- 決定選課與讀書方向
### 心得
早上上"數位電源控制電路與系統實作專題",這是蔡建泓教授開給要進入他們lab的先修課,主要技術都是掌握在外國大廠,在台灣做最好的公司是立錡(已被聯發科併購,成為所屬子公司)。**電源管理IC(PMIC)可以想做是一個controller,控制電路上電路電力分配的元件,因此需要先了解你所要"控制的對象"**,不然就不知道"控制的對象"有哪些問題需要解決,因此需要修習電力組的課,像是三上的[電力電子學](http://class-qry.acad.ncku.edu.tw/syllabus/online_display.php?syear=0110&sem=1&co_no=E243300&class_code=),而關於控制理論為三上的必修課自動控制(在成大叫控制工程)。
這堂課PMIC實作與系統組的關係比較為 - PMIC需要了解系統組(電力組)的供電電路元件,才能知道要如何控制,而系統組不需要了解個別元件的原理,只需要會買顆PMIC,看他datasheet中的SPEC、一些使用要求,會用即可,這在我三上時修習單晶片有深刻的理解,參見[2021下一段日記](https://hackmd.io/@HsuChiChen/2021-log-2),傳統元件常見的傳輸協定脫離不了UART/I2C/SPI,基本上了解這些傳輸協定和會看個別元件的datasheet,而不需要了解內部元件原理,這就算是做系統的人所探討的範疇吧。
課程前半部是教授授課講升壓降壓電路(buck–boost converter)、Flyback、功率因數修正電路(PFC)。自己事後查了一下,升壓降壓電路是上學期修單晶片有看到[科普影片](https://www.youtube.com/watch?v=EhKEqi74yAQ),利用電感器儲存磁場的特性實現升降壓,[flyback](https://www.quora.com/What-is-the-difference-between-a-Flyback-converter-and-a-buck-boost-converter)是升壓降壓電路拓撲結構下,在升壓降壓電路加上變壓器(電感),獲得更大電壓轉換的彈性,這是在升壓降壓電路低的duty cycle無法實現的。
課程後半部是實作課,MATLAB / Simulink模擬與FPGA實現,要描述數位電路的行為,像是各個function block的布線,因此需要具備Verilog程式基礎,就是二下的超大型積體電路。
---
下午的量子物理,前半是陳光胤(中興物理),後半是高國興,由於是第一堂課所以講了比較概念性的東西,一切都是從20世紀無法用牛頓力學解釋、未解的"黑體輻射"問題開始。
|年分|事情|
|---|---|
|1900 年|卜朗克發現卜朗克常數|
|1905 年|愛因斯坦發表光量子說、特殊相對論、布朗運動|
|1911 年|拉塞福散射實驗|
|1913 年|波耳原子模型|
|1914 年|密立根實驗證實光電效應|
|1925 年|海森堡的矩陣力學|
|1924 年|德布羅意的物質波|
|1926 年|薛丁格的波動力學|
|1927 年|海森堡的測不準原理|
|1948 年|費曼的路徑積分表述|
這些內容其實就是高中選修物理最後幾章與選修化學原子軌域(包立原理等)的課程,當初在準備大學指考時,也是讀到這邊很想深入學習,覺得量子物理很有趣。(雖然最後指考物理只有剛好考到剛好頂標75而已,上不了平均分數80分的成大電機)
---
選課方面是這兩課都棄選 - 棄選PMIC是因為我想說還是留在原本lab參加比賽,加上我沒有修習電力組的課;棄選量子物理是因為我沒有要走相關的組別,雖然高中的我對量子物理曾經有興趣,但那終究只是科普性的理解而已,要討論到具體建立數學的方程式、"定量"分析 - 工程數學、線性代數等數學工具,我不覺得我有弄的很熟。
總結來說,就[2022上寒假日記](https://hackmd.io/@HsuChiChen/2022-log-1#01/20(四))選課計畫做修正為
|學科|學分|類別|
|:-:|:-:|:-:|
|工程數學(二)|3|必修|
|訊號與系統|3|選修|
|數位通訊|3|選修|
|VLSI電路設計|3|選修|
|通訊實驗|1|6選3實驗|
|專題(一)|2|選修|已選|
- 通識
|學科|學分|類別|
|:-:|:-:|:-:|
|日文(六)|2|二外(**3/4後需要申請轉通識**)|
|光電科技|2|通識|
> 第3階段志願加簽通識盡可能選。
> 三個0學分的軍訓,抵今年暑假6天當兵。
---
從上大學以來,我看到有太多太多人說成績和校名系名的重要性,參照[2020年台綜大A10轉學考心得與一年後的回顧](https://hackmd.io/@HsuChiChen/transfer-log),這也是為什麼**當初我拚了死命要離開中興電機,因為所謂"四大電資是入科技業的基本門檻"**,花了一年半的時間第一次考試 - 學測落榜、第二次考試 - 指考落榜、第三次考試 - 轉學考,最後運氣好,擦邊球備取到四大電資的底。
轉進來成大電機之後,很喜歡修一些硬課、實作課、把課表填得滿滿,如果能力很好、成績不錯就算了,重點是沒有能力,成績都是中間偏下,因此我開始降低學分數、選擇loading輕的課,從二上25學分、二下21學分、三上18.5學分,**真的不要為了想要準時畢業,成績而沒顧不好,這樣真的是本末倒置,寧可延畢多一年,只要能顧好成績所有犧牲都是值得的**。
而第二點是**修計算機和IC實作的課或是做相關的專題,不代表能進這兩個組**,當然如果在"能維持成績"的前提下,還是可以修習這方面的硬課,還是老話一句成績才是關鍵,像是我專題加的是做計算機架構的實驗室,我很確定我的系排是上不跟計算機(資工)或IC相關的任何組別的(需要系排30%以內)。引用今天看到[郭泰豪博班的學長D卡發文](https://www.dcard.tw/f/ncku/p/238151049)。
> 雖然這樣說很殘酷,但是這就是當下的現實情況。既使你"超大..."或是"VLSI電路設計"修了100分,只要你推甄或考試上不了相關研究所也沒有機會再繼續深造。因此,竊以為專注於把成績提高是最重要的。
反正還是回歸到當初每日打日記的本質 - **平常心面對,把自己作為學生該做的本分做好就好了**,了解學校教的基礎科目、讀熟教授的上課講義、每周作業好好寫、多練習原文書的習題、能要得到考古題就盡量要來練習,這些東西每樣能達成就不錯了,而對這學期來說,基礎中基礎科目就是工程數學(二)與訊號與系統。
<br>
## 02/19(六)
### 進度
- 熟悉Jupyter Notebook與Colab環境
### 心得
雖然昨天比較早回宿舍,但半夜還是睡不太著,把這幾天考慮的一些點跟lab的學長說,具體的回應整理如下
- 實驗室目前主線有DL加速器、SIMT GPU、RISCV CPU。
- 先輩知識為大二的計算機組織與碩班的計算機結構。
- 學弟確實說的沒錯,推甄主要還是看成績決定,老師專題的最低要求沒有很難達到,還是想要在專題中學到什麼比較重要。
- 從比賽(人工智慧的應用)的應用切入還不錯,因為不需要太多數學推導,學弟有修過單晶片,而且有做出一些成果,新思的比賽應該會蠻好上手的。
- 我們參加比賽的時候也是很多"技術性"的東西都不懂,像是TFlite、TinyML,但是就是因為參加比賽所以才有機會去鑽研這些內容。
看起來我規劃生涯發展的基本方向應該是沒問題,三下準備比賽、四上做專題,而三下、四上、四下成績維持在一定水平,五上全力考研,這應該是我能想到以目前成績與修課loading來評估,最好的solution了。
---
以前我是用wsl終端機跑python,但每次光是載套件就花不少時間,因此今天改用Jupyter Notebook格式(本質上是JSON檔案,副檔名為`.ipynb`),有兩個常見的基於web的IDE,一是Jupyter Notebook([快捷鍵](https://www.youtube.com/watch?v=FW2BF6jbHBk))、二是Google Colab([快捷鍵](https://amitness.com/2020/06/google-colaboratory-tips/)),後來選擇後者,因為可以用免費的GPU加速,又可以結合Google Drive服務。
很喜歡Jupyter Notebook格式一點是因為 - 一個cell的markdown與latex解釋與下一個cell可以直接跑程式測試,測試結果又直接跑在程式的下面,如此以來,在接觸到別人的code就能快速理解各段程式的意思。
Colab執行shell script的指令跟平常用unix-like的指令相同,使用驚嘆號`!`會開啟一個shell,執行完後並終止(kill),因此涉及working directory移動的`cd`須改用`%`,可與之前[2021下暑假日記 8/15](https://hackmd.io/@HsuChiChen/2021-log-1#815)寫makefile遇到的問題做參照,兩者觀念相同。
一般是使用`wget`下載檔案,但這邊下載Google Drive檔案使用`gdown`下載,每個Google Drive上檔案開啟分享後,都會有一組雜湊字串的ID。
```
!gdown --id '1vn0tsJlrp6H9Bsk9aL9STBUBd1AOSvBg' --output Minori.jpg
```
一開始需要選擇Runtime開啟GPU加速,並到左側選單點選Google Drive icon,會生成程式,掛載到Google Drive的檔案層級之中,可以線上儲存檔案。
最後是學Python的畫圖套件matplotlib,看[15分钟详解matplotlib.pyplot.plot](https://www.youtube.com/watch?v=Q-mw7dn5G2c),matplotlib比起MATLAB畫圖更加有彈性,可以直接改軸、圖例等的位置,又不需要像MATLAB光是開個程式就花了老半天,加上matplotlib的interface本來就是仿造MATLAB,兩者API相似,讓我有點心動,之後我畫圖都改用matplotlib好了。
之後進度是要寫出第一次regression的作業,kaggle上的deadline是下周三(02/23(三))晚上,不知道我這段時間有沒有辦法熟悉python這些套件和解題思路。
<br>
## 02/20(日)
### 進度
- DL的activation function中sigmoid與ReLU
- DL的neural network名詞定義
- DL的backpropagation計算技巧
### 心得
昨晚騎腳踏車要回宿舍的時候就覺得很冷,尤其是雙手需要握住腳踏車的握把,會露在冷空氣之中,早上就去買了手套保暖,今天應該是入冬以來最冷的一天,氣溫攝氏9度、濕度95%。
---
[02/17(四)](#02/17(四))的linear model輸入與輸出關係過於簡單,無法逼近實際的曲線,這種限制稱為model的bias,因此我們改用數個piecewise linear curves,它可以逼近任何連續的曲線,定義一個function叫hard sigmoid表示
$$
f(x) = \mathrm{clip}(\frac{x+1}{2}, 0, 1) = \max(0, \min(1, \frac{x+1}{2}))
$$
hard sigmoid又可用sigmoid去逼近
$$
\begin{align*}
&y = c\frac{1}{1 + e^{-(b + wx_1)}}
= c \cdot \mathrm{sigmoid}(b + wx_1)\\
&\lim_{x_1 \to - \infty}y = 0, \lim_{x_1 \to \infty}y = 1
\end{align*}
$$
藉由改變參數$w$影響斜率、參數$b$影響位移、參數$c$影響高度,產生不同的sigmoid function。<br>
而再推廣至取多個feature $x_i$。
$$
\begin{align*}
y &= b + \sum_i c_i\mathrm{sigmoid}(b_i + \sum_j w_{ij}x_j)\\
&= b + c^T \sigma(b' + Wx) \quad\text{matrix expression}
\end{align*}
$$
把這上述這些未知的參數通通拼成一個column vector,記為
$$
\theta =
\begin{bmatrix}
\theta_1\\
\theta_2\\
\theta_3\\
\vdots
\end{bmatrix}
$$
第二步定義Loss function,再來第三步做optimization,單變數做微分,找切線斜率,而多變數也是一樣,多變數的微分就是取gradient,固定其他變數,對個別方向做偏微分。
$$
\begin{align*}
&\theta^* = \arg \min_\theta L\\
&\text{Pick intial values}\; \theta^0\\
&g = \nabla L(\theta^0) =
\begin{bmatrix}
\frac{\partial L}{\partial \theta_1}|_{\theta = \theta^0}\\
\frac{\partial L}{\partial \theta_2}|_{\theta = \theta^0}\\
\frac{\partial L}{\partial \theta_3}|_{\theta = \theta^0}\\
\vdots
\end{bmatrix}\\
&\theta^1 \gets \theta^0 - \eta g
\end{align*}
$$
但實作gradient時會所有資料隨機拆成一個個的batch,假設batch夠大,會趨於所有資料,因此可以用batch作為整體代表,依序取第一個batch、第二個batch,每一次更新參數稱為一次update,而把所有的batch都遍歷一遍稱為epoch。至於batch大小稱為batch size,這是使用者自己需要設定的參數(hyperparameter)。
hard sigmoid也不一定要用sigmoid代表,也可以用2個rectified linear unit(ReLU)的加總。
$$
y = c\cdot\max(0, b + wx_1) + c'\cdot\max(0, b' + w'x_1)
$$
無論是sigmoid還是ReLU,這些function稱為activation function,定義了該節點在給輸入集合下的輸出。
這些節點稱為neuron(神經元),neuron的彼此之間的網路稱為neural network,輸入那排叫input layer、每一排neuron稱為hidden layer、輸出那排叫output layer,很多層的hidden Layer叫做deep,整套技術稱為deep learning,一層一層都會提取出富含資訊不冗餘的feature(降低維度),稱為feature extraction,但也是不疊越多層越好,當在訓練資料上有變好,但是在沒看過的資料上變差,稱為overfitting。
給定一個neural network的structure,像是fully connected feedforward network,稱為一個function set。
---
參照[机器学习系列9-反向传播](https://blog.csdn.net/weixin_44406200/article/details/104310991)與[李宏毅 DL課程](https://www.youtube.com/watch?v=ibJpTrp5mcE),當gradient descent用在neural network時,會有數百萬的參數 $\theta = w_1, w_2, \dots$需要計算,因此就有backpropagation這個比較有效率的算法,用到的核心觀念是chain rule。
定義一loss function,為output $y^n$與target $\hat{y}^n$的距離$l^n(\theta)$。
$$
\begin{align*}
& L(\theta) = \sum^N_{n=1}l^n(\theta) = \sum^N_{n=1}||y^n(\theta) - \hat{y}^n||\\
& \text{Solve } \frac{\partial L(\theta)}{\partial w} = \sum^N_{n=1}\frac{\partial l^n(\theta)}{\partial w}
\end{align*}
$$
根據chain rule將其拆為2項。
$$
\frac{\partial l}{\partial w} \overset{\text{chain rule}}{=} \underbrace{\frac{\partial z}{\partial w}}_{\text{forward pass}} \cdot \underbrace{\frac{\partial l}{\partial w}}_{\text{backward pass}}
$$

- forward pass為每個neuron的activation function的output,就是它所連接的weight的$\frac{\partial z}{\partial w}$
- backward pass為建一個與原來方向相反的neural network,它的三角形(三角形想成是一個op-amp的放大係數$\sigma'(z_1),\sigma'(z_2)$)neuron的output就是$\frac{\partial l}{\partial w}$。
如果做forward pass需要把下一層的偏微分求出,需要不斷做recursive call;反之做backward pass是一個求值的過程,節省stack的空間,因此從最後一層hidden layer往前算是比較有效率的。
<br>
## 02/21(一)
### 進度
- 數位通訊的複習機率
### 心得
早上又冷又濕,還下個小雨,前一天又只睡4個小時,要起來上早八的數位通訊,內容為隨機變數、CDF、PDF、joint distribution、statistical average、correlation、各種probability distribution,簡單來說就是random process之前的所有機率內容,這段時間我要繼續複習機率了,還有很多東西是之前漏掉的。
下午軍訓課是國軍弟兄來招募人才,正好是我補眠的好時間,下課後繼續回宿舍補眠,晚上處理了一些雜事,課程上這學期是環繞通訊相關的數學,修了必修工數二、訊號與系統、數位通訊、6選3實驗的通訊實驗,這幾科感覺就要花費我大量時間研讀了,另一件事情是我專題分組的問題,原本想找我有個程式很強的朋友,不過他寒假早就分好組了,所以現在我找不到組員,而且就算找到後,又不確定對方的程度和投入度為何,老實說我想自己一個人一組,但比賽就是規定2到4人一組。
<br>
## 02/22(二)
### 進度
- 訊號系統第一堂課
### 心得
通識課線上授課,這是一個很好的授課方式,因為我可以做自己的事,等到聽到要小考或是點名再切螢幕即可,我研究了下學期宿舍的抽籤公告,而我如果延畢的話大四生大五不能抽宿舍,但可以排補宿,基本上我現在住的勝一一定都排的到,因為沒有人想住勝一,宿舍太破舊了。訊號與系統探討時在連續與離散時間下,訊號作圖,可以發現當頻率越大,訊號震盪的幅度越大,不過我也不是很懂,等到作業出來會寫才是關鍵。
晚上讀數位通訊的機率,基本推導需要不斷複習,參見[2021下三段日記 12/29(六)](https://hackmd.io/@HsuChiChen/2021-log-4#12/29(六)),可與之前所學內容比較。
- 2個RV $X,Y$是independent定義為 $f_{XY}(x, y) = f_X(x) \cdot f_Y(y)$。
- 2個RV $X,Y$是uncorrelated定義為$\mathrm{Cov}(X,Y) = 0$。
$$
\begin{align*}
E[XY] &= \int^\infty_{-\infty} \int^\infty_{-\infty} xy f_{XY}(x, y)dydx\\
&= \int^\infty_{-\infty} \int^\infty_{-\infty} xy f_X(x)f_Y(y)dydx \quad \because \text{independent}\\
&= \int^\infty_{-\infty} xf_X(x) dx \int^\infty_{-\infty} yf_Y(y)dy\\
&= E[X]E[Y]\\
\therefore \mathrm{Cov}(X,Y) &= E[(X- \mu_X)(Y- \mu_Y)]\\
&= E[XY - \mu_X Y - X\mu_Y + \mu_X\mu_Y]\\
&= E[XY] - E[X]E[Y] \quad \because \mu_X = E[X] = \text{const. 可往外提出}\\
&\overset{\text{indep.}}{=} E[X]E[Y] - E[X]E[Y]\\
&= 0
\end{align*}
$$
**independent(嚴格)必是uncorrelated,反之不成立**,但對於聯合(joint)高斯RV來說,由於$f(X,Y) \overset{\mathrm{Cov}(X,Y)=0 }{=} \cdots = f(X)f(Y)$,可知independent跟uncorrelated可以彼此反向成立。
<br>
## 02/23(三)
### 進度
- VLSI的CMOS電路實現
- VLSI的IC製造粗略認識
### 心得
今天拿到Synopsys ARC EM9D的開發版,看了[環境設置教學](https://www.youtube.com/watch?v=G0JfGEmL0lY),有點麻煩,感覺要花不少時間研究,由於這不是主流開發版,沒有像之前Arduino和ESP32有強大的開源社群可以查詢,頂多只有官方doc可以看而已。
---
對矽摻雜3A族為P型半導體;對矽摻雜5A族為N型半導體,對一PN介面電子會從P區(電子)擴散N區(電洞),一直到電子擴散受力與電子受力達到力平衡,對一MOSFET需要設計是兩個逆偏的PN junction,body端接最低電位,因此在靜止時不會有電流流通,而以NMOS為例,當施加正向電位時,gate端累積正電荷,會吸引p substrate中帶負極的電荷向上移動,形成通道,使電流形成迴路導通,詳細要去複習電子一內容。
這堂VLSI電路課幾乎都把MOS當成電子控制開關,假設給$\rm AOI22$電路
- 第一個AND是2的輸入,第二個AND是2個輸入,因此記為 $Y = \overline{(A \cdot B) + (C \cdot D)}$。
- 從NMOS去思考,AND在電路上為串聯,因此A與B串聯、C與D串聯,而A,B與C,D並聯。
- 對上述電路取conduction complement,串聯與並聯互換。
- NMOS放pull-down network(靠近GND),PMOS放pull-up network(靠近VDD),完成後與基本邏輯閘比較起來,會發現較節省電晶體。
當NMOS的輸入(drain)端,控制(gate)端皆為$V_{DD}$時,輸出(source)端會從0開始增加,一直增加到$V_{DD}-V_{tn}$以上時,由於NMOS導通條件為$V_{GS} > V_{tn}$,因此NMOS會關掉,而維持在導通前的狀態$V_{DD}-V_{tn}$,所以我們會說NMOS是可以通過strong "0",但是會通過weak(degraded) "1",PMOS則相反,這就是NMOS會放在pull-down network,而PMOS會放在pull-up network的原因。
上述pass transistor這個問題,可以結合兩者NMOS與PMOS特性為transmission gate。
同一條bus只會有一個訊號,因此我們會用一個tristate,當$EN=0$時會產生高阻抗的訊號,不導通,避免同時有2個以上訊號共用到同一個bus,tristate可用transmission gate實現,但此時又會有個問題是nonrestoring,tristate要關閉時,會hold前一個state的狀態,而此時輸入剛好受到noise干擾,等到noise干擾消去後,輸出訊號會無法回復,解決方法是tristate inverter,讓輸入跟輸出不是相連的,輸出源為power supply,因此必定是strong "0" or "1"。
---
IC製造粗略分為8個步驟,為一系列的減法與加法工程。
1. 氧化,長oxide
2. 塗光阻液
3. 引入光罩去照光
4. 把照到光的地方洗掉
5. 用HF把oxide洗掉
6. 用piranha強酸洗掉光阻液
7. 用離子佈值跟擴散加入材質
8. 用HF把oxide洗掉
光罩可定義電晶體與布線的位置,可以將各層光罩畫layout圖表示,各層依序有
|各層光罩|功能|
|---|---|
|n-well|在整塊p substrate中透過擴散或是離子佈值打入n-well|
|polysilicon|利用薄膜技術加上一層很薄的oxide,再加上一層導電的polysilicon|
|n+ diffusion|打入n摻雜|
|p+ diffusion|打入p摻雜|
|contact|加上metal與接觸面的物質|
|metal|加導線|
需要注意的是在VDD與GND與substrate/well的介面是金屬與半導體,會形成Shottky diode,產生Schottky barrier的屏障,因此電子需要跨過很大的勢壘,這是我們不樂見的,因此需要在這兩者之中,加入重摻雜的contact/tap,來產生歐姆接觸,降低勢壘高度與寬度。
<br>
## 02/24(四)
### 進度
- 跟巴友DC閒聊
### 心得
早上日文課上一些基本語句,不過我沒課本,只能看老師講到哪一例句,跟著看到哪一例句,之後下一堂課看能不能厚臉皮跟別人要課本,拍到我iPad上存圖檔作電子筆記,不然要特地花400元買一本對我幫助不大的書,實在花不下去。
下午軍訓課,教官在放烏克蘭與俄羅斯的歷史淵源,烏東、克里米亞主流民意是親俄派,而烏西政權易手多次,較複雜,但在俄羅斯的威脅下,希望尋求北約西方國家的軍事支持,主流民意是親歐派。
還真沒想到今天俄羅斯會入侵烏克蘭,在現代好幾次軍事危機都是以"恫嚇"為目標,畢竟這種大規模軍事行動,對於經濟與民生來說是一大重傷,但這次俄羅斯好像什麼都沒有顧忌選擇打,看到有人分析是普丁想重建蘇聯夢,希望能在自己有生之年有重大的歷史定位。
歐美各國要對俄羅斯進行經濟制裁,我是覺得也沒有人敢真的動手,歐洲都極度仰賴俄羅斯提供石油、天然氣等能源,美國也仰賴俄羅斯金屬鈀、氖,烏克蘭的農業也佔世界糧食的一大比例。今年國際市場通膨已經夠嚴重了,制裁下去,國際原物料上漲,聯準會升息抗通膨,反倒又牽制經濟復甦的力道。現在看起來我媽買房子真的是明確的選擇,畢竟房子本來就不是拿來住的,是拿來投資抗通膨的,這波打起來,經濟制裁真的下去,物價又要再漲一次了,買房子才能保值抗通膨。
---
最近都在跟一個巴友聊天,他很喜歡一個女生,一開始看他們的聊天紀錄,我覺得他好像有機會,不過之後觀察這個小團體之間的一些互動關係之後,覺得他只是單方面暈船而已。我想也是,會跑來找一個完全在不同交友圈的人問,感覺就不是那種夯哥會做的事情。
我覺得無論是女生還是男生喜歡的是 - 那種**在團體聚會中炒熱氣氛,個性是很開放的,跟誰都聊得起來,既然在團體聚會讓大家印象深刻,女生甚至是男生就會想要尋求後續的單獨私聊**;反之,如果在聚會就不怎麼主動,後續找特定女生猛烈私聊,只會讓女生覺得這個人很噁心。
以我觀察這個小團體大概判斷出有兩個會炒熱氣氛的核心人物,這類人就是具有男、女生也會喜歡的人格特質。
像我,就覺得自己很不適合參加那種聚會,在國中、高中到大一嘗試想融入那種大型聚會,想變得"合群"一點,做了很多嘗試與改進,但後來漸漸發現自己個性就不是那種夯哥,對於很多事情,我用太過於理性、近乎冷淡的態度去面對,講難聽一點就是沒有同理心,很多想法過於自我、執著,又追求完美,這些人格特質顯然對人際相處是不討喜的,所以平常我會嘗試包裝這些個性,避免給不認識的人帶給不好的印象,但這又讓我顯得很不自在。
<br>
## 02/25(五)
### 進度
- 工數一的解的分類與幾何意義
- 工數一的正合ODE解題流程
### 心得
第一周在複習跟通訊相關的機率與機器學習初認識,第二周的禮拜一到四老實說沒什麼進度,這陣子也積欠工數一些進度,因此打算重啟我工數複習計畫,從工數一複習到現在工數二的第一次段考範圍,今天加上228連假的四天時間,希望能複習到Laplace的章節。補充上課內容可看[喻超凡書籍勘誤表與翻轉教室](https://www.superyu.idv.tw/)。
---
- 描述未知函數與其導數之間的關係稱為DE(微分方程),當未知數是單一自變數的函數稱為ODE,當未知數是多個自變數的函數稱為PDE。
- DE所含最高階導數稱為DE的階數(order)。
- 將DE化為有理整式後,所得最高階導數的次數稱為DE的次數(degree)。
舉例來說,下列方程式為2階3次ODE。
$$
(\frac{d^2y}{dx^2})^3 + (\frac{dy}{dx})^4 + y^5 = x
$$
ODE的解分為3個
- 通解(general solution),獨立常數的個數等於ODE的階數
- 特解(particular solution),由通解求得,不含任意常數
- 異解(sigular solution),無法由ODE的通解求得,發生在高次或是非線性ODE
解的幾何意義為通解是一個曲線族(曲線的無窮集合),特解為曲線族的某一條曲線,異解為通解形成曲線族的包絡線(envelope),包絡線是指一條曲線與某個曲線族中的每條線都有至少一點相切。
---
正合ODE(exact ODE)定義 : 給定ODE $M(x, y)dx + N(x, y)dy = 0$,若存在一函數$\phi(x, y)$,滿足$d\phi = M(x, y)dx + N(x,y)dy$,則稱此ODE為正合ODE,如下解題流程有3步
先將題目整理成此形式$M(x, y)dx + N(x, y)dy = 0$
1. 由判別式$\frac{\partial M}{\partial y} = \frac{\partial N}{\partial x}$判斷是否為正合ODE (若ODE $M(x, y)dx + N(x, y)dy = 0$為正合,若且唯若(iff) $\frac{\partial M}{\partial y} = \frac{\partial N}{\partial x}$)。
2. 對兩項個別做偏積分$\begin{cases}\phi(x, y) = \int^x M(x, y)dx + f(y)\\ \phi(x, y) = \int^y N(x, y)dx + f(x)\end{cases}$,取聯集得全微分的式子$d\phi(x, y) = 0$。
3. 積分得$\phi(x, y) = c$,將初始條件帶入ODE求解未知常數。
<br>
## 02/26(六)
### 進度
- 工數一的找積分因子方法 - grouping method與公式法
### 心得
當藉由判斷式$\frac{\partial M}{\partial y} = \frac{\partial N}{\partial x}$判斷為非正合一階ODE時,若存在一函數$I(x, y)$乘上後,會變成正合一階ODE,稱此函數為積分因子(integrating factor),需要注意的是積分因子不唯一,求解積分因子有2個方法,如下
1. **grouping method**<br>
1. 合併ODE中相同次或相同類型的項
2. 提出合併項公因式
3. 利用全微分公式與原ODE進行比較,即可求出積分因子,如下是常見全微分公式
- $dx \pm dy = d(x \pm y)$
- $xdx \pm ydy = \frac{1}{2}d(x^2 \pm y^2)$
- $ydx + xdy = d(xy)$
- $ydx - xdy = (xy)d(\ln\frac{x}{y}) = (x^2 + y^2)d(\tan^{-1}\frac{x}{y})$
- $mydx + nxdy = \frac{d(x^my^n)}{x^{m-1}y^{n-1}} \quad m,n \in \mathbb{R}$
2. **公式法**<br>
一非正合一階 $M(x, y)dx + N(x, y)dy = 0$
|檢驗條件|積分因子|
|---|---|
|$\frac{ \frac{\partial M}{\partial y} - \frac{\partial N}{\partial x} }{N} = f(x)$|$I(x) = \exp\{\int f(x)dx\}$|
|$\frac{ \frac{\partial M}{\partial y} - \frac{\partial N}{\partial x} }{-M} = f(y)$|$I(y) = \exp\{\int f(y)dy\}$|
|$\frac{ \frac{\partial M}{\partial y} - \frac{\partial N}{\partial x} }{N - M} = f(x + y)$|$I(x + y) = \exp\{\int f(x + y)d(x + y)\}$|
|$\frac{ \frac{\partial M}{\partial y} - \frac{\partial N}{\partial x} }{yN - xM} = f(xy)$|$I(xy) = \exp\{\int f(xy)d(xy)\}$|
grouping method計算速度快,但很吃全微分的感覺;公式法就是比較有具體的步驟,算出積分因子後,帶入原ODE,再依照正合ODE求解。
舉例來說以下例題可使用grouping method第5點和公式法一求解,積分因子為$\frac{1}{x^2}$。
$$
\text{solve } \frac{dy}{dx} = \frac{e^x\sin y}{y - 2e^x\cos y}\\
$$
---
最近開學第一、兩周,看到其他人分享清大和成大資工OJ(Online Judge)平台的網址,自己也跑去寫了一些高中生程式解題系統的題目,發覺自己根本沒有什麼程式解題的思維。去年暑假就在學C++ 的基本語法、編譯、memory layout、debugger了,越讀越發現自己的不足,到暑假的尾聲還是沒學完並熟悉C++ 的STL套件,至於**最重要的解題的思路到現在還沒培養,這部分也是一個坑要去補**。
但我現在又沒什麼時間可以去練程式,不過可以知道的是**最重要的兩個方向就是基礎數學和程式的能力需要掌握**,寒假讀訊號與系統、前陣子複習機率與現在讀ODE就是在補足基礎的數學能力。
<br>
## 02/27(日)
### 進度
- 工數一的分離變數法與可分離變數化的齊次方程式、座標平移解法
- 工數一的一階線性ODE與可線性化的Bernoulli's equation
- 工數一的特殊解法 - Riccati equation與合成函數解法
### 心得
**一階一次的ODE解題的方式只有一種 - 化成正合ODE**,但不同於前面grouping method與公式法,這裡積分因子找法是固定、有一定脈絡可以遵循的,所以我們才會給他一些新名字,分為三大類 - 分離變數法、一階線性ODE、特殊解法。
1. **分離變數法**
$$
\begin{align*}
&\frac{dy}{dx} = f_1(x)f_2(y)\\
& M_1(x)M_2(y)dx + N_1(x)N_2(y) = 0
\end{align*}
$$
把個別$x, y$項移到同一邊。再兩端做積分求解。
2. **齊次方程式(homogeneous equation)**<br>
雙變數函數$f(x, y)$滿足$f(\lambda x, \lambda y) = \lambda^kf(x, y)$,其中$\lambda$為任意值,稱$f(x, y)$為齊$k$次函數。
1. 將$f(x, y)$化成$f(\frac{x}{y})$或$f(\frac{y}{x})$。
2. **令$u = \frac{y}{x}$(或$u = \frac{x}{y}$),故$y = ux$則$dy = xdu + udx$**。
3. 帶回原ODE得$\frac{x}{y} = \frac{xdu + udx}{dx} = x\frac{du}{dx} + u = f(u)$。
4. 分離變數法求解。
3. $(a_1x + b_1y + c_1)dx + (a_2x + b_2y + c_2)dy = 0$型<br>
- $\frac{a_1}{b_2} \neq \frac{a_2}{b_2}$<br>
1. 也就是幾何上**兩條直線有交點**,則想辦法使截距$c_1, c_2 =0$,將其**座標軸平移**。
2. 去除截距後,**一階齊次方程式求解**。
- $\frac{a_1}{b_2} = \frac{a_2}{b_2}$<br>
1. 也就是幾何上**兩條直線無交點**,令$t = a_1x + b_1y$或是$t = a_2 + b_2y$。
2. 分離變數法求解。
4. $\frac{dy}{dx} = f(ax + by + c)$型<br>
1. 合成函數(函數的變數是另一個變數)解法,令$t = ax + by + c$。
2. 分離變數法求解。
5. $g(xy)ydx + h(xy)xdy = 0$型<br>
1. 合成函數解法,令$u = xy$。
2. 分離變數法求解。
---
1. **一階線性ODE**<br>
標準式為
$$
\begin{align*}
& \frac{dy}{dx} + P(x)y(x) = Q(x)\\
& Q(x) = 0 \Rightarrow \text{homogeneous ODE}\\
& Q(x) \neq 0 \Rightarrow \text{nonhomogeneous ODE}
\end{align*}
$$
1. 求積分因子$I(x) = \exp\{\int P(x)dx \}$
2. ODE通解為$I(x)y(x) = \int I(x)Q(x)dx + c$
2. **變形的一階線性ODE**
- $\{a(x)y - b(x)\}dx + c(x)dy = 0$,去整理。
- $c(y)dx + \{a(x)x - b(x)\}dy = 0$,令$x(y)$去整理求解。
- $\frac{dy}{dx} = \frac{c(y)}{a(y)x + b(y)}$,令$x(y)$去整理求解。
2. **Bernoulli's equation**<br>
標準式為
$$
\frac{dy}{dx} + P(x)y(x) = Q(x)y^n(x), \; n \in \mathbb{R}
$$
1. 兩端同乘$y^{-n}(x)$。
2. 令$u(x) = y^{1-n}(x)$。
3. 一階線性ODE求解。
3. $(\frac{dv}{dy})\frac{dy}{dx} + P(x)v(y) = Q(x)$型<br>
上式為後者$v(y)$經微分後是前者$\frac{dv}{dy}$,例如$\sin y \frac{dy}{dx} + P(x) \cdot \cos y = Q(x)$。
1. 令$u(x) = v(y)$,故$\frac{du}{dx} = \frac{dv(y)}{dx} = \frac{dv}{dy}\frac{dy}{dx}$去整理。
2. 一階線性ODE求解。
---
1. **Riccati equation**<br>
標準式
$$
\frac{dy}{dx} = p(x)y^2(x) + q(x)y(x) + r(x)
$$
解題想法 : 想辦法把$r(x)$消掉,消掉後就變成Bernoulli's equation,再由一階線性ODE求解。
1. 找一個特解(由通解求得,不含任意常數),可猜$y_p = x, y_p = \int r(x)dx$。
2. 令$y(x) = y_p(x) + \frac{1}{u(x)}$帶入,即可把$r(x)$消掉,又可解Bernoulli's equation。
3. 一階線性ODE求解。
2. **合成函數**<br>
$$
\frac{dy}{dx} = f \circ g(x,y) = f(g(x, y)), \quad\text{we call } f \text{ is function composition}
$$
合成函數解法,令$u = g(x, y)$。
---
綜合前三天([02/25(五)](#02/25(五)) - [02/27(日)](#02/27(日))的內容,一階一次ODE的解題流程如下


<br>
## 02/28(一)
### 進度
- 工數一的一階高次ODE解法 - 因式分解與Clairaut's equation
- 工數一的一階ODE解的存在與唯一性判斷
- 工數一的線性獨立與線性相依
### 心得
一階高次ODE解法的解法就是將ODE降次成一階一次ODE,再由前面的觀念求解,而降次就是做因式分解以及特殊形式ODE - Clairaut's equation。
1. **因式分解**<br>
1. 令$p = \frac{dy}{dx}$帶入ODE。
2. 做因式分解,個別解一階一次ODE。
3. 得通解為$\{ \phi_1(x, y) - c \} \{ \phi_2(x, y) - c \} \cdots \{ \phi_n(x, y) - c \} = 0$,需要注意只能寫一個未知常數$c$,因為原因一是通解未知常數的個數等於ODE的階數;原因二是因式分解一項成立,其他項則不會成立。
2. **Clairaut's equation**<br>
標準式
$$
y(x) = xp + f(p) \quad \text{where } p = \frac{dy}{dx}
$$
解題步驟 :
1. 兩端微分,整理得$\frac{dp}{dx}(x + \frac{df}{dp}) = 0$。
1. 解聯立$\begin{cases}y(x) = xp + f(p)\\ \frac{dp}{dx} = 0\end{cases}$,得第一個解為通解,其通解$y(x) = cx + f(c)$即為將未知常數帶入原ODE的$p = \frac{dy}{dx}$項。
1. 解聯立$\begin{cases}y(x) = xp + f(p)\\ x + \frac{df}{dp} = 0\end{cases}$,得第二個解為異解(無任何未知常數,沒有物理意義)。
---
- 一階ODE的應用有求解正交曲線,解題有3步驟。
1. 先將ODE化成隱函數的形式$F(x, y) = c$。
2. 由於曲線族$F(x, y) = c$的斜率為$m_1 = - \frac{F_x}{F_y}$,因此與其正交的曲線族為$\frac{dy}{dx} = - \frac{1}{m_1} = \frac{F_y}{F_x}$。
3. 解上式ODE得正交軌跡(orthogonal trajectories)$G(x, y) = k$。
- 一階ODE解的性質
1. Piscard存在定理<br>
設$\frac{dy}{dx} = f(x, y)$且IC $y(x_0) = y_0$,若$f(x, y)$在點$(x_0, y_0)$鄰域(neighborhood)中為連續,則ODE該鄰域中,至少存在一個解$y = y(x)$。
2. Piscard唯一定理<br>
設$\frac{dy}{dx} = f(x, y)$且IC $y(x_0) = y_0$,若$f(x, y), \frac{\partial f(x, y)}{\partial y}$在點$(x_0, y_0)$鄰域(neighborhood)中為連續,則ODE該鄰域中,解存在且唯一。
常見的不連續點有分母為0、對數函數中真數為0的點。
> 在微積分中,函數$f(x)$在$c$點連續,需要滿足以下三個條件
> 1. $f(c)$存在。
> 2. $\lim_{x \to c}f(x)$存在。
> 3. 極限值等於函數值,即$\lim_{x \to c}f(x) = f(c)$。
---
令$D = \frac{d}{dx}$為微分運算子,且$L(D)$為線性微分運算子,則$n$階線性ODE標準式可改寫
$$
\{a_n(x)\frac{d^n}{dx^n} + a_{n-1}(x)\frac{d^{n-1}}{dx^{n-1}} + \cdots + a_1(x)\frac{d}{dx} + a_0(x)\}y(x) = L(D)y = R(x)
$$
其中$R(x) = 0$為homogeneous ODE,$R(x) \neq 0$為nonhomogeneous ODE。
According to Wiki, a sequence of vectors $\mathbf{v} _1,\mathbf{v}_2,\dots ,\mathbf{v}_k$ from a vector space $V$ is said to be *linearly dependent*, if there exist scalars $a_{1},a_{2},\dots, a_k$, not all zero, such that
$$
a_1 \mathbf{v}_1 + a_2 \mathbf{v}_{2} + \cdots + a_k \mathbf{v}_k = \mathbf{0}, \quad\text{where } \mathbf{0} \text{ denotes the zero vector.}
$$
Otherwise, it's *linearly independent*.
- $n=0$時,空集合$\{\}$不符合線性相依的定義,因為集合不存在任何元素,故為線性獨立。
- $n=1$時,若集合$\{u_1(x)\}$線性獨立,若且唯若$u_1(x) \neq 0$,原因為$c_1u_1(x) = 0$,若$u_1(x) \neq 0$,則只有$c_1 = 0$的條件才會成立,故為線性獨立。
- $n \ge 2$時,若集合線性相依,則集合中某一函數$u_i(x)$可用該集合剩下的$(n-1)$函數的線性組合式表達,原因是從定義出發,並令$c_1 \neq 0$,$u_1(x) = -\frac{1}{c_1}[\underbrace{c_2u_2(x) + \dots c_nu_n(x)}_{\text{combination of } n-1 \text{ element}}]$。
<br>
## 03/01(二)
### 進度
- 整理儀容雜事
### 心得
今天訊號與系統授課內容為[2022上寒假日記 01/28(五) - 01/30(日)](https://hackmd.io/@HsuChiChen/2022-log-1#01/28(五))內容,再加上離散domain下的impulse與step function轉換,不過離散domain跟連續domain下是差不多物理意義,如下說明,比較不一樣的點是數位(離散domain)的減法器就是類比(連續domain)的微分器。
$$
\begin{align*}
u[n] &= \sum^n_{m = -\infty} \delta[m]\\
&= \sum^0_{k = \infty} \delta[n - k] \quad\because k = n - m\\
&= \sum^\infty_{k = 0} \delta[n - k]\\
u(t) &= \int^t_{-\infty} \delta(\tau)d\tau\\
&= \int^0_\infty\delta(t - \sigma)(-d\sigma) \quad\because \sigma = t - \tau\\
&= \int^\infty_0\delta(t - \sigma)d\sigma
\end{align*}
$$
很直觀的物理意義為
- 式一是從無窮大累加到$n$,當$n$加到$n \geq 0$時開始為正。
- 式二、三是限定取$k$從0到無限大的範圍,看在$n$的位置的脈衝函數$\delta[n - k]$有沒有包含在這段範圍內。
- 式四是從無窮大累加到$t$,$t$加到$t \geq 0$時開始為正。
- 式五、六是限定取$\sigma$從0到無限大的範圍,看在$t$的位置的脈衝函數$\delta(t - \sigma)$有沒有包含在這段範圍內。
---
晚上做了很多儀容的雜事,每隔一個月我都會這樣,送洗衣服、剪頭髮、剪指甲、刮鬍子,讓自己不要這麼邋遢,不然每次一不注意鬍子就長得跟山頂洞人一樣。
<br>
## 03/02(三)
### 進度
- VLSI的latch-up問題
- VLSI的oxide厚度選擇與tradeoff
### 心得
第二周VLSI是講製程,因為在layout時,有很多元件可以選,我們需要了解這些元件的特性與功能,相關知識點很雜,加上我沒有修過製程相關的課程(半導體物理),也不是聽很懂,感覺要等到下禮拜第一次作業出來才能親身體會,不然現在聽課都只是紙上談兵而已。
- **[latch-up問題](https://zhuanlan.zhihu.com/p/125519142)**<br>
<br>
在實際的CMOS中,P(PMOS的Source/Drain) - N(PMOS的N well) - P(P sub);N(PMOS的N well) - P(P sub) - N(NMOS的Source/Drain)會形成兩個BJT。當無外界干擾未引起觸發時,兩個BJT處於截止狀態,但當有外界電子干擾,其中一個BJT正偏,一端BJT中emitter電流會流入另一個BJT的base,而base端又會電流放大到emitter電流,產生正回授,最終導致元件燒壞。解決方法有Sub接觸孔和Well接觸孔應盡量靠近Source。以降低$R_{well}$和$R_{sub}$的阻值。
- **$V_t$下降與leak current的tradeoff**<br>
為了使MOS開關速度加快,會把oxide做薄,使$V_t$降低,但這又會導致gate端會有leak current或是如果垂直電壓太大,MOS會被擊穿,因此會可以對critical path用低$V_t$,對I/O端用高$V_t$,但這樣的代價是要做多層光罩,因為是不同的摻雜。
---
到現在第三周,還是不確定自己不修web、OS,而改修VLSI是不是一個正確的選擇,不過可以知道的是現在選課也改不了了,而且"成績好壞"比起"選哪些課是不是符合自己興趣"還重要,這學期我就好好聽課、把作業寫好就好。
<br>
## 03/03(四)
### 進度
- 全台大停電
- VLSI的layout流程與注意事項
- 電子一的電子與電洞的mobility
### 心得
繼去年五月停電,今天全台大停電,我是不知道宿舍網路有沒有斷網,不過我的路由器一旦沒電,是鐵定沒網路可用的,短暫的停電對我影響不大,不過停網影響可大了,看課程公告、看gmail、看line等一些日常例行公事,都沒辦法做,就一直等到下午4點多才恢復供電,才算是開始我一天的生活。
---
layout就是在決定那些mask(metal層、oxide層)的位置,藉由mask的位置就可絕對一個IC的電路布局。並沒有絕對的標準去決定是否符合正確的製程,因此就算是違反design rule,IC還是有可能成功運作,但整體IC的良率會大幅降低,因此才會在良率上做妥協,像是兩塊材質會有overlap,以增加IC對於製成不確定上的reliability。
design rules分為兩種 - 一是$\lambda$ rules,把製程限制的數值參數化,日後更改製程,只需做scaling;但由於前者scaling的效果成效不彰,所以一般還是用此方法,每換一個製程就重新layout,就是micron rules。
layout圖需經過以下EDA tool提供的模擬測試。
|verification|content|
|---|---|
|DRC, design rule check|layout圖是否符合製程上的限制|
|ERC, electrical rule check|電子上的問題,像是latch up, noise problems, electro migration(金屬線過小,電流密度過大,衝破導線)|
|LVS, layout versus schematic|layout是否與一開始畫的schematic功能吻合|
|LPE,PEX, layout parameter extraction|模擬寄生電容、電感帶來的效應|
---
**電子一mobility的review**<br>
mobility的定義為載子受到外界電場$E$作用時,在lattice中移動的容易度(漂移速度大小) ,因此電子與電洞mobility定義為
$$
\begin{align*}
v_{\rm p-drift} &= \mu_p E\\
v_{\rm n-drift} &= - \mu_n E
\end{align*}
$$
如[2021下二段日記 11/24(三)](https://hackmd.io/@HsuChiChen/2021-log-3#11/24(三))中山電磁學OCW第41部影片穩態電流推導,令一單位面積導線,載子濃度$n$、截面積$\vec{A}$則
$$
\begin{align*}
I &= \frac{dQ}{dt}\\
&= \frac{(\vec{A}\underbrace{\vec{v}dt}_{\text{length}})nq}{dt}\\
&= nq \vec{A} \cdot \vec{v}\\
&= \vec{J}\vec{A}\\
\vec{J} &= nq \vec{v}\\
&= nq \cdot (\mu E)\\
&= \vec{J_p} + \vec{J_n}\\
&= q(p\mu_p + n\mu_n)E & \text{where } \vec{J_n} = n(-q)(-\mu_nE)\\
&= \sigma E & \text{where conductivity }\sigma = q(p\mu_p + n\mu_n)E\\
&= \frac{E}{\rho} & \text{where resistivity }\rho = \frac{1}{q(p\mu_p + n\mu_n)E}
\end{align*}
$$
<br>
Conduction electrons (free-electrons)在conduction band移動,valence electrons (holes)在valence band,當施加外加電場時,holes無法像free-electrons自由移動;從另一個觀點看holes是電子從原子中內層的shell躍遷到更高能階的shell,因此比起自由電子會受到正電荷原子的吸引,因此得出結論是**mobility : 電子 > 電洞**。
由於載子產生飄移速度會產生晶格震動(lattice vibrations),因此lattice scattering, impurity scattering, and carrier-carrier scattering的摻雜都會導致載子mobility的下降,因此得出結論是**電子、電洞的mobility : intrinsic silicon > doping silicon** 。
雖然doping會導致載子mobility下降,但**同時自由電子或是電洞的數量會數個量級的增加**,由上面推導的公式$\sigma = \frac{1}{\rho} = q(p\mu_p + n\mu_n)E$可知,載子濃度一大增、載子mobility一小減下,doping會帶來conductivity的上升、resistivity的下降,(但doping又不改變矽晶體"對溫度不敏感"的優良特性)。
> 此外,mobolity與溫度關係參照[2021下二段日記 11/23(二)](https://hackmd.io/@HsuChiChen/2021-log-3#11/23(二)),當溫度升到更高溫時,晶格會震盪,因此晶格有效面積增加,會造成電子容易撞到晶格,mobolity下降,因此得出結論是**電子、電洞的mobility : 低溫 > 高溫**。
<br>
## 03/04(五)
### 進度
- 通訊實驗的AM調變TX端電路
- VLSI的layout的技巧 - transistor folding, Euler path
### 心得
早上通訊第一次實驗實作AM調變TX端的電路,有兩個部分 - Colpitts oscillator、mixer電路,下午順便完成結報。
- **Colpitts oscillator**<br>
藉由一個電容與電感所形成的LC電路,電能與磁能互相轉換就可以形成震盪電路,頻率為$\omega_0 = \frac{1}{\sqrt{LC}}$,但由於真實世界中元件有內電阻、導線有電阻會產生能量損失,因此實際RLC電路所形成正弦波的震幅會隨時間decay,解決方法是把LC電路接到$\beta$回授網路,藉由不斷外加的能量與回授機制藉此形成穩定的震盪器,電路結構上分為Colpitts oscillator(拆兩電容)與Harley oscillator(拆兩電感)。
<br><br>
假如電路操作的頻率夠低,可以忽略BJT寄生電容,因此振盪頻率會取決於並聯LC震盪電路(又稱tank circuit)的共振頻率$\omega_0$,Colpitts oscillator振盪頻率如下,並帶入元件實際數值做驗證。
$$
f = \frac{1}{2\pi \sqrt{LC}} = \frac{1}{2\pi\sqrt{L_1 \times \frac{C_1C_2}{C_1 + C_2}}} = \frac{1}{2\pi \sqrt{33 \cdot 10^{-6}\times \frac{(560 \cdot 10^{-12})^2}{2 \times 560 \cdot 10^{-12}}} } = \underbrace{1.66 \;\mathrm{MHz}}_{\text{theoretical value}} \sim \underbrace{1.52 \;\mathrm{MHz}}_{\text{experiment value}}
$$
- **mixer電路**<br>
分為nonlinearity跟multiplier,此次實驗是利用BJT電壓nonlinearity特性去實現。
$$
\begin{align*}
I_C &= I_Se^{\frac{V_{be}}{V_T}}\\
&= aV_{be} + bV_{be}^2 + \dots \qquad \because \text{Tayor Series}\\
&= a[A_m\cos(2\pi f_m)t - A_C \cos(2\pi f_c)t] + b[A_m\cos(2\pi f_m)t - A_C \cos(2\pi f_c)t]^2 + \dots\\
&= a[A_m\cos(2\pi f_m)t - A_C \cos(2\pi f_c)t] + b[A_m^2\cos^2(2\pi f_m)t) - 2A_m\cos(2\pi f_m)t \cdot A_C \cos(2\pi f_c)t + A_C^2\cos^2(2\pi f_m)t] + \dots\\
&\overset{\rm filter}= -2b \cdot A_m\cos(2\pi f_m)t \cdot A_C \cos(2\pi f_c)t\\
&= c\cdot \frac{1}{2}[\underbrace{\cos 2\pi(f_m + f_c)t}_{\text{output signal } Vo} + \cos 2\pi(f_m - f_c)t)]
\end{align*}
$$
filter為利用LC共振電路,選擇指定頻率為$f_m + f_c$做輸出,而$R_{m3}$決定的是BJT的bias,根據BJT的I-V曲線可知,需要調整$V_{be}$到主動區才符合$I_C = I_Se^{\frac{V_{be}}{V_T}}$公式的前提,才會有接下來一系列的數學推導。
---
下午是lab請學長實際操作LLVM,一如往常的迷惘,我也沒學過compiler,能聽懂部分只有學長新增指令與探討這個指令是否要增加的審慎判斷。
---
以下為VLSI關於layout的一些技巧與準則。
- **transistor folding**<br>
source/drain端與well或是substrate端會形成p-n junction,而形成寄生電容,隨著source/drain端的diffusion越大,所形成寄生電容就越大,解決方法是將MOS做折疊(fold),diffusion面積就可以一分為二,而中間的contact層兩邊也可以再利用,如此面積也會縮小。

- **stick diagram**<br>
參照[03/03(四)](#03/03(四)),由於mobility : 電子 > 電洞,因此PMOS的Width會設計的比較大,以抵銷跟NMOS的不對稱,但畫stick diagram不需要在意,stick diagram直譯木棍圖,就是一個方便表示的示意圖而已。
- **Euler path**<br>
畫layout時會避免一條diffusion中斷,造成電路面積增加,因此需要找出一種polysilicon gate的順序能讓diffusion不會中斷,這就是Euler path(一筆畫)問題,將PMOS化成edge、source/drain端的接線化為node,從輸出端出發找Euler path,也可將NMOS化成edge,兩者畫出來的圖形是對偶的(dual)。
- **gate matrix layout style**<br>
當輸入訊號需要給多個電晶體(gate)時,可以弄一整排diffusion,再讓polysilicon gate穿過,這樣比較節省layout面積。
- **最小化diffusion寄生電容**<br>
最小化輸出端的diffusion,另一方面GND的寄生電容也會增加,還可以幫助穩壓。

<br>
## 03/05(六)
### 進度
- VLSI的layout上製程限制的rule
- 電子一的I−V曲線與Early effect的推導
### 心得
**VLSI的layout上製程限制的rule** <br>
- **antenna rule**<br>
金屬導線需要透過電漿蝕刻,若是又連在MOS的gate,由於電漿帶大量正離子會擊穿MOS的gate端,因此解決方法
1. 連一個diode(diode-connected MOS)形成通道,使電子流出。
2. 連接更高layer的metal,使電子流出。
- **layer density rule**<br>
各層layer有限定指定材質的占比,避免時因各物質占比失衡,而無法磨平,因此有時候會在電源供應刻意加上dummy金屬層,這樣產生的寄生電容同時可以做為decouping capacitor,濾出AC和noise,幫助穩壓。
> 參照[What is the difference between Coupling, Decoupling, and Bypass Capacitors?](https://www.circuitbread.com/ee-faq/what-is-the-difference-between-coupling-decoupling-and-bypass-capacitors)。
> - decoupling電容並聯於電源供應與附載(load),功能為**過濾AC雜訊與抵抗瞬間的電壓變化**,以穩定DC電壓。
> - bypass電容顧名思義**把AC雜訊bypass to ground**,提供AC接地。
> - coupling電容串聯於訊號路徑,**阻隔DC訊號,只讓AC訊號通過**,像是我們都知道一個OP需要給予DC bias使其運作在其工作區,但當這個電路接到另一個電路,DC bias會去破壞其他電路,因此需要coupling電容阻隔DC訊號,**讓不同功能的電路之間不會互相影響**。
- **resolution enhancement tech**<br>
有變更mask的形狀的optical proximity correction(OPC)和改變光相位的phase shift mask(PSM),為了有更簡單的OPC,因此先進製程會polysilison gate會限制只能畫在單一方向。
- **metal slotting rules**<br>
較粗的金屬導線會開slot,目的是在力學中增加金屬堅硬程度、降低electro migration(電流有skin effect,邊緣增加,電流密度會較均勻)。
---
**推導$I-V$曲線**<br>
首先考慮NMOS的triode區,條件有兩個。
1. 形成n-channel的電子通道$v_{GS} > v_t$。
2. 有drain與source有壓差,電流才會從drain流到source,$0 < v_{DS} < v_{GS} - V_t$,移項得$v_{GS} - v_{DS} = v_{GD} > V_t$,代表drain和source兩端都有channel形成。
<br>
氧化層電容(oxide capacitance)$C_{ox}$為是平行板電容的gate端單位面積的電容值
$$
\begin{align*}
&\text{capacitance per unit area} = \frac{\text{permittivity of SiO}^2}{\text{oxide thickness}}\\
&\Rightarrow \; C_{ox} = \frac{\epsilon_{ox}}{t_{ox}} = \frac{3.9 \epsilon_o}{t_{ox}}\\
& \text{for the strip, capacitance is}\; C = C_{ox}Wdx\\
& \text{charge is}\; dq = CdV = C_{ox}Wdx(V_{GS} - V(x) - \underbrace{V_t}_{\text{半導體特性}})
\end{align*}
$$
由[03/03(四)](#03/03(四))電流密度推導公式出發
$$
\begin{align*}
\vec{J_n} &= \underbrace{nq}_{\text{concentration}} \cdot \mu_nE\\
&= \frac{dq}{WdxK}\mu_n(-\frac{dv}{dx})\\
i_D &= |J_n| KW dx \quad\text{current direction : }\gets\\
&= \frac{dq}{dx}\mu_n(\frac{dv}{dx})\\
&= C_{ox}W(v_{GS} - v(x) - V_t) \mu_n(\frac{dv}{dx})\\
\Rightarrow \int^L_0i_Ddx &= \mu_nC_{ox}W \int^{v_{DS}}_0 (v_{GS} - v(x) - V_t)dv\\
i_DL &= \mu_nC_{ox}W \left[(v_{GS} - V_t)v_{DS} - \frac{1}{2}v_{DS}^2\right]\\
\Rightarrow i_D &= \mu_nC_{ox}\frac{W}{L} \left[(v_{GS} - V_t)v_{DS} - \frac{1}{2}v_{DS}^2\right]
\end{align*}
$$
假設$v_{DS}$非常小,$(v_{GS}-V_t)v_{DS} \gg \frac{1}{2}v_{DS}^2$,則可將二次乘積項消除,因此可視MOSFET為一電阻,電阻值為$r_{DS} = \frac{1}{g_{DS}}$。
$$
i_D = \underbrace{\mu_nC_{ox}\frac{W}{L}(v_{GS} - v_t)}_{\text{conductance }g_{DS}} v_{DS}
$$
當$v_{DS}$不斷加大,靠近drain端的channel深度不斷減少,一直加到$v_{GS} - v_{DS} = v_{GD} = V_t$,此時drain端的channel被"捏到沒有"(等於0),稱為pinch off,進入飽和(saturation)區,臨界值$v_{DS, sat} = v_{GS} -V_t$帶入上式
$$
\begin{align*}
i_D &= \mu_nC_{ox}\frac{W}{L} \left[(v_{GS} - V_t)^2 - \frac{1}{2}(v_{GS} - V_t)^2\right]\\
&= \frac{1}{2}\mu_nC_{ox}\frac{W}{L}(v_{GS}-V_t)^2\\
\end{align*}
$$
繼續加大$v_{DS}$,pinch off的點會稍微往前移一點,但整體channel形狀幾乎沒有改變,而多加出來的電壓會橫向跨在drain端到channel,因此電流不變,$I_D$與$v_{DS}$無關,只由gate電壓值$v_{GS}$所決定。
定義係數如下
|製程互導參數<br>(process transconductance parameter)|MOSFET 互導參數<br>(MOSFET transconductance parameter)|
|---|---|
|$k_n' \equiv \mu_nC_{ox}$|$k_n \equiv \mu_nC_{ox}\frac{W}{L} = k_n'\frac{W}{L}$|
---
**推導channel length modulation(Early effect)**<br>
當$v_{GS} > V_t$與$v_{DS} > v_{DS, sat} = v_{GS} - V_t$pinch off並進入MOSFET的(sat)飽和區,加大$v_{DS}$,pinch off的點會稍微往前移一點,而多加出來的電壓會橫向跨在drain端到channel,由於此處電場特別大,因此決定電流速度的位置(瓶頸)只在channel的形狀,channel減少相當於電子走的距離變短。

$$
\begin{align*}
i_D &= \frac{1}{2}\mu C(\frac{W}{\underbrace{L - \Delta L}_{\text{effective}}})(v_{GS} - V_t)^2\\
&= \frac{1}{2}\mu C \frac{W}{L}(\frac{1}{1 - \frac{\Delta L}{L}})(v_{GS} - V_t)^2\\
&= \frac{1}{2}\mu C \frac{W}{L}(1 + \frac{\Delta L}{L})(v_{GS} - V_t)^2 \quad\because \frac{1}{1-x} = 1 + x + x^2 + o(x^2)\\
&= \frac{1}{2}\mu C \frac{W}{L}(1 + \lambda \cdot v_{DS})(v_{GS} - V_t)^2 \quad\because \Delta L \propto v_{DS}, \; \lambda \text{ : channel length modulation index}\\
&= \frac{1}{2}\mu C \frac{W}{L}(1 + \frac{v_{DS}}{V_A})(v_{GS} - V_t)^2 \quad\because \lambda = \frac{1}{V_A}, \; V_A \text{ : Early voltage}(= V_A'L)
\end{align*}
$$
當$v_{DS} = - V_A$時,$i_D = 0$,即為I-V曲線的截距,而斜率定義為
$$
\begin{align*}
\text{slope} &= \frac{\partial i_D}{v_{DS}} = \frac{1}{r_0}\\
\Rightarrow r_0 &= \frac{1}{\frac{\partial i_D}{v_{DS}}|_{v_{GS}}} = \frac{1}{\frac{1}{V_A}\cdot \frac{1}{2}\mu C \frac{W}{L}(v_{GS} - V_t)^2}\\
&= \frac{1}{\frac{I_D}{V_A}} = \frac{V_A}{I_D} \quad I_D \text{ : current without early effect}\\
\end{align*}
$$
<br>
## 03/06(日)
### 進度
- VLSI的C-V特性曲線與diffusion / gate capacitance的估算值
- VLSI的$\alpha$-power law model
- 訊號與系統的作業一
### 心得
- **C-V特性曲線**<br>
任何兩導體中隔著絕緣體都可以算是電容,因此MOS導體材質的各端點之間都會有電容,否則MOS導體之間沒有絕緣體就會短路,分為source與drain端到body端的電容(又稱diffusion capacitance、depletion capacitance)、gate到channel的電容$C_{g}$。
- **depletion capacitance**<br>
根據經驗法則,有打contact為$C_g$,沒打contact為$\frac{1}{2}C_g$。較detailed的model與doping level跟body effect產生的空乏區$V_{sb}$。
- **gate capacitance**<br>
分為與gate電壓相關的intrinsic capacitance和相對不受變動的overlap capacitances。intrinsic capacitance的簡化model如下。
1. 外加電壓$V_g < 0$ (accumulation mode),電容值即為oxide層電容$C_{gb} = C_0 = C_{ox}WL$。
2. 外加電壓$0 < V_g < V_t$ (depletion mode),此時空乏區加大,等效於平行電容板下板向下移,整體厚度增加,根據$C = \frac{\epsilon A}{d}$電容值下降,電容值$C_{gb} \leq C_0$。
2. 外加電壓$V_g > V_t$ (inversion mode),且$v_{DS}$還很小$v_{DS} < v_{GS} - V_t$,channel通道形成,channel和body有一層空乏區被隔絕,因此$C_{gb} = 0$,而oxide層電容$C_0$電容分半給drain端和source端。
2. 外加電壓$V_g > V_t$ (inversion mode),且$v_{DS}$加大至$v_{DS} > v_{GS} - V_t$,靠近drain端的channel pinch off,因此$C_{gd} = 0$,電容值全由$C_{gs}$決定,$C_{gs} = \frac{2}{3}C_0$。
也與source和drain的電壓有關,趨勢來看,當gate與source和drain的電壓差值越大,intrinsic capacitance也越大。
---
- **nonideal I-V effects**<br>
[03/05(六)](#03/05(六))使用的是first-order(Shockley) model,但當施gate端施加大電壓時,會偏離原本的model。
1. 加大垂直分向的電場 - 電子在channel移動時會往上偏移,直到撞擊oxide後反彈,因此有效mobility會比實際Shockley model還低,並隨著gate端電壓加大,有效mobility會降低,記為$\mu_{eff} = f(v_{GS}) < \mu$。
2. 加大水平分向的電場 - 由於不斷加大電場,電子速度加快,電子加速只是一瞬間,而主要時間在撞擊晶格後slow down,而產生速度飽和$v_{sat}$,這個臨界電場$E_c = \frac{2v_{sat}}{\mu_{eff}}$,因此臨界電壓$V_c =E_c \cdot L$。帶入到Shockley model做修正
$$
\begin{align*}
I_{ds} &= \mu_{eff} C_{ox} \frac{W}{L}\frac{(V_{gs} - V_t)^2}{2}\\
&= \frac{2V_{sat}}{V_c}L \cdot C_{ox} \frac{W}{L}\frac{(V_{GS} - V_t)^2}{2} \because \begin{cases}E_c = \frac{2v_{sat}}{\mu_{eff}}\\V_c =E_c \cdot L\end{cases}\\
&\approx C_{ox} W(V_{gs} - V_t)v_{sat} \because V_c \propto (V_{gs} - V_t)\\
&= k(V_{gs} - V_t)
\end{align*}
$$
3. 結論 - Shockley model遵守平方率,而帶入飽和電流公式則為一次線性關係,實際上是會介於兩者之間,近似於$\alpha$-power law model,定義velocity saturation index $\alpha$,$I_{ds} \propto (V_{gs} - V_t)^\alpha, \alpha \in (1, 2)$,由於mobility :電子 > 電洞,因此電子較快到達飽和速度$v_{sat}$,故$\alpha$較小,結論是在同電壓、電場下$\alpha$ : PMOS > NMOS。
- **DIBL**<br>
當drain端電壓上升,會幫gate端吸引到電子,因此會更容易形成channel,$V_t$會下降$V_t = V_{t0} - \eta V_{ds}, \; \eta : \text{DIBL coefficient}$,稱為drain-induced barrier lowering, DIBL效應,與channel length modulation類似,因此可以model為降低Early voltage $V_A$值。
- **subthreshold leakage**<br>
在cut-off區電流並非絕對等於0,而是有個與$V_{gs - V_t}$指數性正比的微小電流,當drain電壓加大,考慮DIBL effect,漏電流會加大;考慮body effect,漏電流會減少。
---
晚上寫訊號與系統作業,需要注意的是參照[Why must a function have to have even and odd parts](https://math.stackexchange.com/questions/460058/why-must-a-function-have-to-have-even-and-odd-parts),任意函數都可以表示為偶函數與奇函數的組合。
$$
f(x) = \underbrace{\frac{f(x) + f(-x)}{2}}_{\text{even fun.}\;E(x)\;:\; f(x) = f(-x)}+ \underbrace{\frac{f(x) - f(-x)}{2}}_{\text{odd fun.}\;O(x)\;:\; f(x) = -f(-x)}
$$
<br>
## 03/07(一)
### 進度
- 數位通訊的第一次小考
- 數位通訊的隨機程序中n階統計量與stationary的定義
### 心得
原本想說先讀下下禮拜進度的VLSI、先寫deadline是禮拜二的訊號與系統作業,應該不會花太多時間,但沒想到幾分鐘的影片、幾題作業就花掉我大量的時間完成與理解,一直拖到半夜1點開始寫數位通訊作業,一直寫到隔天早上5點,準備早八的通訊每周小考。
這種從作業出的每周小考一定要把握好,今天第一次小考內容是CDF、PDF性質的變化題,之後數位通訊成績將會固定公布在[數位通訊 Grades](http://teach.nknu.edu.tw/chen/courses/dc/Grades.htm),上課內容是random process,這算是我第三遍讀了,第一遍是三上通訊原理,第二遍是三下開學初,參照[02/14(一)](#02/14(一)),但還是有些觀念需要釐清。
- **Order Statistics(n階統計量)**<br>
[Introduction to Order Statistics](https://www.analyticsvidhya.com/blog/2021/05/introduction-to-order-statistics/)為隨機變數的統計量,但現在是講隨機程序,**對隨機程序來說**,Order Statistics定義為
- 一階統計量是取一特定時間點的隨機變數,而**隨機變數又可用CDF(or PDF)去完整描述**$F_X(x; t) = P[X(t) \leq x]$**(給一CDF我們對此隨機變數的所有統計量完全了解)**,統計量有一階動差的mean和二階中心動差的variance。
- 二階統計量是取兩時間點中的隨機變數,可用joint CDF(or PDF)還表示,記為$F_{X(t_1)X(t_2)} (x_1, x_2; t_1, t_2) = P[X(t_1) \leq x_1; X(t_2) \leq x_2]$,統計量有autocorrelation function(ACF)$R_X(t_1; t_2) = E[X(t_1)X^*(t_2)] = \int^\infty_{-\infty} \int^\infty_{-\infty} x_1x_2^*f_{X(t_1),X(t_2)}(x_1,x_2;t,t_2)dx_1dx_2$。
- **stationary**<br>
- first-order stationary為$F_{X(t_1 + \tau)}(x) = F_{X(t_1)}(x)$,代表**無論何時取一個隨機變數所形成之CDF皆相同**,因此n-th moments與n-th central moments皆不隨取的時間點改變,證明如下。
$$
\begin{align*}
E[X^n(t_1)] &= \int^\infty_{-\infty} x^nf_{X(t_1)}(x)dx\\
&= \int^\infty_{-\infty} x^nf_{X(t_1 + \tau)}(x)dx\\
&= E[X^n(t_1 + \tau)]\\
E[(X(t_1)-\overline{X(t_1)})^n] &= \int^\infty_{-\infty} (x - \overline{x(t_1)})^nf_{X(t_1)}(x)dx\\
&= \int^\infty_{-\infty} (x - E[X(t_1)])^nf_{X(t_1)}(x)dx\\
&= \int^\infty_{-\infty} (x - E[X(t_1 + \tau)])^n f_{X(t_1 + \tau)}(x)dx\\
&= E[(X(t_1 + \tau)-\overline{X(t_1 + \tau)})^n]
\end{align*}
$$
- second-order stationary為$F_{X(t_1)X(t_2)}(x_1, x_2) = F_{X(t_1 + \tau)X(t_2 + \tau)}(x)$,代表無論何時**取兩個相同時間差相同**的隨機變數所形成的joint CDF皆相同。
- strictly stationary process, SSS為$F_{X(t_1), X(t_2), \dots , X(t_n)}(x_1, x_2, \dots , x_n) = F_{X(t_1 + \tau), X(t_2 + \tau), X(t_n + \tau)}(x_1, x_2, \dots , x_n)$,代表無論何時**取$n$個相同時間差相同**的隨機變數所形成的joint CDF皆相同,舉例來說IID (independent and identically distributed) process就是SSS,白噪音就是IID,因此也是SSS。
$$
\begin{align*}
F_{X(t_1), X(t_2), \dots , X(t_n)}(x_1, x_2, \dots , x_n)
&= \prod^n_{i = 1}F_{X(t_i)}(x_i) &\because X(t_i)\text{ independent}\\
&= \prod^n_{i = 1}F_X(x) &\because \text{identical} \Rightarrow X(t_i)\text{ have same PDF(CDF)}
\end{align*}
$$
- wide-sense stationary, WSS條件有兩統計量mean、autocorrelation要符合
$$
\begin{cases}
\text{mean independent of time}\\
\Rightarrow \mu_X(t) = E[X(t)] = \mu_X = \text{cosnt.}\\
\text{autocorrelation function depends on time difference}\\
\Rightarrow R_X(t_1, t_2) = E[X(t_1)X^*(t_2)] = R_X(t_1 - t_2) \overset{\tau \triangleq t_1 - t_2}= R(\tau)
\end{cases}
$$
- 總結 : **給一CDF(or PDF)代表我們對此隨機變數的所有統計量都能完全了解,因此second-order stationary條件是兩隨機變數形成的joint CDF不隨取的時間點改變,而WSS的只提供隨機變數的部分描述**,為一階統計量的一階動差(moment)的mean與二階統計量的autocorrelation function兩個統計量的條件,因此可以知道SSS $\to$ second-order stationary $\to$ WSS,但是反向不成立 - WSS未必是second-order stationary。
---
早上上完數位通訊後,回宿舍倒頭就睡,下午一二節軍訓課睡掉,一直睡到三四節通識課的最後半小時才起來,急忙跑去生科大樓上通識,還好助教人蠻好的,讓我紙本加上逼卡點名簽到、完成小考,這樣就沒有任何被扣分的部分,小考內容為高一生物,雖然看起來沒有很難,但有些基本觀念我都忘了,還是需要複習。
<br>
## 03/08(二)
### 進度
- 去圖書館彩色掃描書籍
- 訊號與系統的time-invariance證明
### 心得
上午去圖書館影印室電子掃描剛買來的二手日文教科書,彩色掃描B4尺寸共計42頁,之後再用Acrobat的OCR功能將掃描圖像的PDF檔轉換"可搜尋的日文文字",方便之後iPad作筆記,該書二手價加運費290,看之後能不能用同樣的價格甚至更高的賣出。
下午上訊號與系統,知識點如下
- causal system判斷方法是先找出input與output並判斷關係,對於causal system,現在的input不會影響到過去的output。
- memoryless - output只會受到同一時間點、當下的input影響,因此也可推斷memoryless必為causal system。
- stable - 當input是bounded,output也會是bounded(BIBO)。
- time-invariance - 系統的行為並不因時間而改變,正名為input時間移$t_0$秒,output也跟著移$t_0$秒。
- linearity - 符合兩個條件$\begin{cases}\text{Homogeneity : } ax_1(t) \to ay_1(t)\\ \text{Additivity : } x_1(t) + x_2(t) \to y_1(t) + y_2(t)\end{cases}$。
- 對LTI系統,任意輸出為輸入與impulse response的convolution,離散時間下證明如下
$$
\begin{align*}
&\delta[n] \to h[n]\\
\Rightarrow & \delta[n - k] \to h[n - k] &\because \text{time-invariance}\\
\Rightarrow & x[n] = \sum^\infty_{k = - \infty}\underbrace{x[k]}_{\text{coefficients}}\cdot \underbrace{\delta[n - k]}_{\text{basic signals}} \to y[n] = \underbrace{\sum^\infty_{k = - \infty}x[k]h[n - k]}_{\text{convolution sum}} &\because \text{linearity}
\end{align*}
$$
<br>
## 03/09(三)
### 進度
- 跟平常一樣盡力掩蓋心中的落寞與孤獨
### 心得
上午VLSI課,有解答到之前的一些疑問。
- [03/05(六)](#03/05(六))antenna rule的diode-connected MOS是接反向的,因此一般情況下是OFF的,維持電路正常運作,而當電漿蝕刻,由於大電壓造成diode-connected MOS的PN jucntion會breakdown,如此電流就有流出路徑。
- layout沒有上下圖層之分,layout圖中polysilicon gate下的雖然有diffusion的圖層,但由於是self-aligned polysilicon gate process,晶圓會先長polysilicon gate,之後打diffusion時,會被polysilicon gate擋,因此polysilicon gate下是沒有diffusion的。
---
下午和我那些同學去吃麥當勞,他們都很強,學期平均在90分以上,系排落在30%以內,有想推台清的類比IC或是台交的數位IC,**我似乎跟他們是不同世界的人,融不太進去這個群體**,反正我就當聽個課程心得,順便向他們請教一些基本的課業問題。
<br>
## 03/10(四)
### 進度
- 工數一的Wronskian行列式判斷函數線性獨立、相依
- 工數一的normal ODE解的性質
### 心得
這禮拜是第4周日文課,這禮拜我終於有課本比較知道老師在講什麼,之後還需要補前幾堂課的進度和練習習題,內容為大家說日語L20的會話、練習C、單字與L21的練習A。
- けど 我個人常常聽到日本人講,除了逆接以外,主要的語感是委婉告訴對方自己的想法。
- AはBはV(普通形) / Aい / NAだ / Nだと思います 描述個人意見、推測或判斷。
---
延續[02/28(一)](#02/28(一)),當$n = 2$時,判斷元素線性獨立相依可以靠直覺,但當$n \geq 3$時,就需要靠"工具"來判斷,而**判斷函數集合線性獨立相依的"工具"就是Wronskian行列式**。
設$\{ u_1(x), u_2(x), \dots u_n(x)\}$在區間$[a, b]$中**每個元素是至少可以微分$n - 1$次**函數集合,Wronskian行列式定義為
$$
W(u_1(x), u_2(x), \dots u_n(x)) =
\begin{vmatrix}
u_1(x) & u_2(x) & \cdots & u_n(x)\\
u_1'(x) & u_2'(x) & \cdots & u_n'(x)\\
\vdots & \vdots & \ddots & \vdots\\
u_1^{(n-1)}(x) & u_2^{(n-1)}(x) & \cdots & u_n^{(n-1)}(x)
\end{vmatrix}
$$
**若在此區間$[a, b]$內存在至少一點,使得$W(u_1(x), u_2(x), \dots u_n(x))|_{x = x_0} \neq 0$,則此函數集合在此區間內線性獨立,逆命題不恆真**。
> $W = 0$判別失敗,無法知道線性獨立或是相依。
- **Wronskian行列式判斷式的證明(重要)**<br>
1. 將函數化作線性組合式,並逐項微分$(n - 1)$次。
2. 將步驟一$n$式整理為矩陣形式
$$
\begin{bmatrix}
u_1(x) & u_2(x) & \cdots & u_n(x)\\
u_1'(x) & u_2'(x) & \cdots & u_n'(x)\\
\vdots & \vdots & \ddots & \vdots\\
u_1^{(n-1)}(x) & u_2^{(n-1)}(x) & \cdots & u_n^{(n-1)}(x)
\end{bmatrix}
\begin{bmatrix}
c_1 \\ c_2 \\ \vdots\\ c_3
\end{bmatrix}
=
\begin{bmatrix}
0 \\ 0 \\ \vdots\\ 0
\end{bmatrix}
$$
3. 由Cramer's rule可知,若$c_1, c_2, \cdots ,c_n$有不全為0的解為線性相依,因此$W(u_1(x), u_2(x), \dots u_n(x)) = 0 , \forall x \in I$。
4. 根據邏輯若P則Q,推出非Q則非P,因此若$\exists x_0 \in I$使得$W(u_1(x), u_2(x), \dots u_n(x)) \neq 0$,則此函數線性獨立。
> Cramer's rule - 對齊次聯立方程式而言
> - $\det(A) \neq 0$ $\Leftrightarrow$ 只有$x_1 = x_2 = \cdots = x_n = 0$的解(trivial solution)
> - $\det(A) = 0$ $\Leftrightarrow$ 存在(=至少有一組)$x_1, x_2, \cdots ,x_n$不全為0的解(nontrivial solution)。
---
- **線性ODE中normal ODE解的性質**<br>
一線性ODE若具有正規性(normal),若且唯若ODE係數與$R(x)$連續且最高係數不為0。
1. 初始值問題,解存在且唯一;邊界條件問題,解可能不存在、也不唯一。
2. 齊次ODE,若初始值皆為0,則解為0。
3. 齊次ODE,特解的Wronskain行列式其值在區間恆為0或恆不為0。
4. 齊次ODE,特解所形成的集合為線性獨立,iff $W \neq 0, \;\forall x \in I$。
5. 齊次ODE,特解所形成的集合為線性相依。iff $W = 0, \;\forall x \in I$。
6. 齊次ODE,若有$n$個符合ODE的解為線性獨立,則通解為其解的線性組合。
7. 非齊次ODE,存在一符合非齊次ODE的特解$y_p(x)$,以及符合齊次ODE的$n$個線性獨立的解$\sum^n_{i = 1}c_iy_i(x)$,則此非齊次ODE的通解為齊次解 + 特解(從通解來,不含任何未知常數)。
$$
y(x) = \underbrace{\sum^n_{i = 1}c_iy_i(x)}_{y_h(x)} + y_p(x)
$$
齊次解又稱餘函數、暫態解,將輸入源$R(x)$移除後求解並帶入初始值計算,得與初始值$t_0$有關的函數;特解又稱穩態解,在時間趨於無窮大,齊次解趨於零$\lim_{t \to \infty} y_h(t_0) = 0$、系統穩定後,解只會剩下與輸入值有關的函數。
> 齊次解對於非齊次ODE來說並不是解,因為帶入不滿足ODE。
8. 非齊次ODE,若有相異的兩特解,兩特解相減為ODE的齊次解。
9. 非齊次ODE,$L(D)y = \alpha R_1(x) + \beta R_2(x)$,且$(y_p)_1$與$(y_p)_2$為個別$L(D)y =R_1(x), L(D)y =R_2(x)$的特解,則ODE的特解為$\alpha (y_p)_1 + \beta (y_p)_2$。
<br>
## 03/11(五)
### 進度
- 通訊實驗的AM調變RX端電路
- 工數一的n階常係數線性ODE的齊次解求法
### 心得
延續[03/04(五)](#03/04(五))通訊實驗AM調變TX端的電路,這次要做RX端的電路,共有以下5個部分,注意參照[03/05(六)](#03/05(六)),$C_D$是decoupling電容,並聯於電源供應與附載(load),功能過濾AC雜訊以穩定DC電壓。
<br>
|function block|功能|
|---|---|
|RF filter|使用LC並聯電路實現bandpass filter,由於低頻時$Z_L = j\omega L \sim 0$,電感短路;而高頻時$Z_C = \frac{1}{j\omega C} \sim 0$,電容短路;取阻抗極值$\frac{dZ(\omega)}{d\omega} = \frac{d(Z_L // Z_C)}{d\omega} = 0 \Rightarrow \omega = \frac{1}{\sqrt{LC}}$可知,當LC電阻在共振頻率時$\omega_0 = \frac{1}{\sqrt{LC}}$,阻抗無窮大,電流無法通過LC電路,以此達到頻率選擇的功能,而此頻率就是選出共振頻率的訊號。|
|RF Amplifier Stage|將訊號放大以利二極體進行檢波,調整可變電阻,改變BJT的DC bias,找到合適的放大工作區。|
|Envelope Detector|使用noncoherent解調AM訊號,電流為正時,二極體導通,輸出電壓隨輸入電壓變化,電流為負時,二極體不通,藉由上一階段電容充電之電流,做RC充放電,以維持住電流。|
|Audio Amplifier Stage|$C_{A1}$為coupling電容,阻隔DC訊號,只讓AC訊號通過,純交流成分即為音頻訊號並進行放大。|
|Audio Amplifier Driving Speaker|此級輸出不足以驅動阻抗$8\Omega$的喇叭,需要LM386等組成的驅動放大電路輸出夠大的擺幅來驅動喇叭。|
---
- **常係數線性ODE**<br>
$$
\{a_n(x)\frac{d^n}{dx^n} + a_{n-1}(x)\frac{d^{n-1}}{dx^{n-1}} + \cdots + a_1(x)\frac{d}{dx} + a_0(x)\}y(x) = L(D)y = R(x)
$$
其中$a_n, a_{n-1}, \cdots a_1, a_0$為常數,且$a_n \neq 0$,則稱為n階常係數線性ODE,通解是$y(x) = y_h(x) + y_p(x)$,因此先探討齊次解解法,主要觀念是**列出特性方程式,並做因式分解**。
常係數齊次解從想法可從一階常係數$y'(x) + ay(x) = 0$得解為$y(x) = ce^{-\alpha x}$,因此高階常係數齊次解ODE推測應該為其解或是線性組合,也可觀察出一個獨特的特性 - $e^x$微分後還是自己。令$y = e^m$帶入原方程式並令$e^{mx} \neq 0$,求解得特性(輔助)方程式。
- **二階常係數線性ODE的齊次解求法**<br>
1. $b^2 - 4ac > 0 \Rightarrow$ 兩相異實根$m_1,m_2$通解為$c_1 e^{m_1x} + c_2e^{m_2x}$
2. $b^2 - 4ac = 0 \Rightarrow$ 重根$m_0$通解為$c_1 e^{m_0x} + c_2xe^{m_0x}$
3. $b^2 - 4ac < 0 \Rightarrow$ 共軛複數根$m = \alpha \pm i \beta$通解為$e^{\alpha x}(c_1\cos\beta x + c_2\sin\beta x)$
> 倒車入庫 - 需要會由解反推特性方程式 $m^2 + am + b = 0$會有兩解$\alpha, \beta$,故$\begin{cases}
\alpha + \beta = -a\\
\alpha\beta = b
\end{cases}$
---
- **n階常係數線性ODE的齊次解求法**<br>
1. k個相異實根$m_1, m_2, \cdots, m_k$通解為$y(x) = c_1e^{m_1x} + c_2e^{m_2x} + \cdots + c_ke^{m_kx}$
2. k個實數重複根$m_0$通解為$y(x) = (c_1 + c_2x + c_3x^2 + \cdots + c_kx^{k-1})e^{m_0x}$
3. 若干個相異共軛複數根$m_{1,2} = \alpha \pm i \beta, m_{3, 4} = p \pm i q$通解為$y(x) = e^{\alpha x}(c_1\cos\beta x + c_2\sin\beta x) + e^{p x}(c_3\cos qx + c_4\sin qx) + \cdots$
4. k個複數重複根$m = \alpha \pm i \beta$通解為
$$
\begin{align*}
y(x) &= e^{\alpha x}(c_1\cos\beta x + c_2\sin\beta x) + x e^{\alpha x}(c_3\cos\beta x + c_4\sin\beta x) + \cdots \\
&= e^{\alpha x}\{(a_1 + a_2x + a_3x^2 + \cdots + a_kx^{k-1})\cos\beta x + (b_1 + b_2x + b_3x^2 + \cdots + b_kx^{k-1})\sin\beta x\} + \cdots
\end{align*}
$$
<br>
## 03/12(六)
### 進度
- VLSI作業的熟悉軟體操作
- VLSI作業的HSPICE語法
### 心得
以下是目前VLSI作業資訊
- 一定要到CIC教室做,沒有開放其他位置的IP訪問。
- CIC教室開放時間與系上電腦教室A/B開放時間一致,有工讀生看管,週日和國定假日都不開放。
- 由於TSRI工程師做系統與軟體更新,目前無法使用DRC、LVS、PEX。
- 作業一截止日 : 兩個禮拜後(3/30)。
CIC教室的座位也不多,可想而知的是最後一個禮拜可能會一位難求,因此今天第一次來CIC教室,先做前置教學。
1. 使用Cadence Virtuoso這個軟體繪製電路圖,檔案層級為`library -> CELL(inverter, adder) -> view(schematic, symbol)`,需熟練快捷鍵。
|function|shortcut|function|shortcut|
|---|---|---|---|
|check and save|shift + x|property|q|
|save|shift + s|insert instance|i|
|copy|c|wire|w|
|delete|delete|wire name|l|
|undo|u|pin|p|
2. 將畫好的電路圖新增`cellview`,繪製自定義圖形,有點像把電路封裝成function block方便之後調用,最後選擇`export -> CDL out`,將繪製的圖形電路輸出為描述電路的HSPICE語法(`*.cir`檔案)。
3. 需自行寫一個給定刺激源去測試電路功能的testbench(`*.sp`檔案),testbench中匯入製程檔`cic018.l`與描述電路檔`*.cir`, HSPICE輸入則為testbench檔,進行模擬
```
hspice –i input.sp-o output.lis
```
|輸出檔案|內容|
|---|---|
|`*.lis`|模擬結果的文字檔,若模擬失敗可查看此檔案進行debug|
|`*.ac0`(AC),`*.sw0`(DC),`*.tr0`(tran)|模擬波型檔,可以使用WaveView這個軟體看波型結果|
4. 使用Laker這個軟體繪製layout,檔案層級為`library -> cell`,需熟練快捷鍵。
|function|shortcut|function|shortcut|
|---|---|---|---|
|tag ruler|k|delete selected object|delete|
|clear ruler|shift + k|align selected object|a|
|create rectangle|r|zoom all|f|
|measure distance|d|zoom in|ctrl + z|
|show object attribute|q|zoom out|shift + z|
|stretch selected object|s|select all object|ctrl + a|
|copy selected object|c|undo|u|
|move selected object|m|redo|shift + u|
5. 待完成。
- HSPICE語法需看[HSPICE 入門教學](https://hackmd.io/@azoo/hspice_tutorial)、[HSPICE 介紹](http://scholar.fju.edu.tw/課程大綱/upload/013031/content/962/D-5013-02530-.pdf),注意 : 對HSPICE編譯器來說**不區分大小寫**。
```
***inverter*** $ *與$皆代表註解
**** 設定參數、include電路檔與製程檔
.INC 'inv.netlist' $ 匯入電路描述檔
.GLOBAL gnd $ 宣告全域腳位
+ vdd $ 加號為連接上一行使用
.protect $ 在.protect與.unprotect之間夾住的檔案,不會顯示在輸出的`.lis`檔案內
.lib 'cic018.l'TT $ 指定製程檔路徑,TT代表Typical P Typical N,,也就是PMOS與NMOS皆在常溫下操作。
.unprotect
**** 根據呼叫的檔案宣告子電路
xinv Vin Vout VDD GND inv $ 需參照電路描述檔的子電路陳述`.subckt inv Vin Vout VDD GND`,對齊腳位
**** 1.輸入訊號的電壓源設定,有DC / Pulse / sin(Sinusoidal) / PWL(片斷線性電源)
v1 vdd 0v DC 1.8v $ v是電壓,1是電壓名稱,接下來依序是正電壓、負電壓、電壓描述
v2 gnd 0v DC 0v $ 同上
v3 Vin 0 pulse(0v 1.8v 0.1n 0.1n 0.1n 0.5n 1.2n) $ 同上,pulse參數給定v1 v2 td tr tf pw per
**** 2.模擬的設定,AC分析(小訊號分析,分析電路在頻域上的表現)、DC分析(穩態
分析、I-V特性曲線)、暫態分析(大訊號分析,分析電路在時域上的表現)
.op $ 用以計算電路各點的工作點。除了DC分析外,執行其他分析也可加入此陳述。
.options post $ 代表將模擬結果的圖檔轉成Binary檔,以便後續WaveView軟體讀取
$ tran: 暫態分析,屬於大訊號分析,分析電路在時域上的表現,最貼近真實的電路運作狀況。
.tran 0.05n 25n $ tran [resolution](最小的精細刻度) [run_time](模擬總時間要跑多久) [uic]/[]
.temp 25 $ 設定工作溫度為25℃
**** 3.量測的設定
$ 使用.meas做語法量測,以便後續使用Matlab等軟體進行分析
$ 使用.print將參數印出在模擬結果波形檔中,以便使用Waveview分析
.end $ 結束陳述的指令,需要區分是`.ends`是帶表結束一個子電路
```
- HSPICE常用元件名稱對照表
|開頭字母|代表元件|開頭字母|代表元件|
|---|---|---|---|
|C|電容|Q|BJT|
|D|二極體|R|電阻|
|I|獨立電源(電流源)|V|獨立電源(電壓源)|
|L|電感|X|呼叫`.SUBCKT`的子電路|
|M|MOSFET|||
<br>
## 03/13(日)
### 進度
- 工數一的待定係數法求特解
- 工數一的Lagrange參數變異法求特解
- 數位通訊的WSS判斷作業
### 心得
- **待定係數法(undetermined coefficients)求特解**<br>
設$n$階常係數線性ODE為
$$
a_n(x)\frac{d^ny}{dx^n} + a_{n-1}(x)\frac{d^{n-1}y}{dx^{n-1}} + \cdots + a_1(x)\frac{dy}{dx} + a_0(x)y(x) = R(x)
$$
若$R(x)$**對微分具有封閉性(closure property)**,為$k(\text{const.}),\; e^{ax},\; \cos bx,\; \sin bx,\; x^n (n \in \mathbb{N})$的線性組合,則特解如下表
|$R(x)$|假設的$y_p(x)$|
|---|---|
|$k$|$A$|
|$e^{ax}$|$Ae^{ax}$|
|$\cos bx$或$\sin bx$|$A\cos bx + B\sin bx$|
|多項式$x^n$|$A_nx^n + A_{n - 1}x^{n - 1} + \cdots A_1x + A_0$|
當假設的$y_p(x)$與齊次解$y_h(x)$有重複項,即與齊次解產生線性相依時,必須乘以$x^m$來修正至線性獨立,其中$m$為從$1$開始的最小正整數,這部分想法與[03/11(五)](#03/11(五))n階常係數線性ODE的齊次解線性相依的修正方式一樣。
- **Lagrange參數變異法(Variation of parameters)求特解**<br>
適用於任意階線性ODE,就考試而言,二階常考、三階少出現。
設二階線性ODE
$$
a_2(x)y''(x) + a_1(x)y'(x) + a_0(x)y(x) = R(x)
$$
1. 已知ODE的齊次解為$y_h(x) = c_1 y_1(x) + c_2 y_2(x)$,其中$W(y_1, y_2) \neq 0$。
2. 將**齊次解的參數變換為函數**(參數變異法名稱由來),令$y_p(x) = \phi_1(x)y_1(x) + \phi_2(x)y_2(x)$,其中
$$
\begin{cases}
\phi_1'(x) = - \frac{ y_2(x) \frac{R(x)}{a_2(x)} }{ W(y_1, y_2) }\\
\phi_2'(x) = \frac{ y_1(x) \frac{R(x)}{a_2(x)} }{ W(y_1, y_2) }
\end{cases}
\Rightarrow
\begin{cases}
\phi_1(x) = \int \phi_1'(x) dx\\
\phi_2(x) = \int \phi_2'(x) dx
\end{cases}
$$
- **Lagrange參數變異法二階證明求特解(很重要)**<br>
假設二階線性ODE $y''(x) + p(x)y'(x) + q(x)y(x) = f(x)$,有2個線性獨立的齊次解為$y_1(x), y_2(x)$。
由於線性非齊次解ODE的特解與齊次解為線性獨立,故兩兩相除$\frac{y_p(x)}{y_1(x)}, \frac{y_p(x)}{y_2(x)}$,應為$x$的函數而非常數,因此令特解為
$$
y_p(x) = \phi_1(x)y_1(x) + \phi_2(x)y_2(x) \tag{1}
$$
對上式微分
$$
y_p'(x) = \phi_1'(x)y_1(x) + \phi_2'(x)y_2(x) + \phi_1(x)y_1'(x) + \phi_2(x)y_2'(x) \tag{2}
$$
理論上$\sum^n_{k = 1}\phi_k'(x)y_k(x) = f(x)$,但因為最後ODE的解與$f(x)$無關,故方便起見令$f(x) = 0$,因此令
$$
\phi_1'(x)y_1(x) + \phi_2'(x)y_2(x) = 0 \tag{3}
$$
帶入(2)式得
$$
y_p'(x) = \phi_1(x)y_1'(x) + \phi_2(x)y_2'(x) \tag{4}
$$
再做一次微分
$$
y_p''(x) = \phi_1'(x)y_1'(x) + \phi_2'(x)y_2'(x) + \phi_1(x)y_1''(x) + \phi_2(x)y_2''(x) \tag{5}
$$
將(1)式的$y_p(x)$、(4)式的$y_p'(x)$、(5)式的$y_p''(x)$帶入原ODE $y''(x) + p(x)y'(x) + q(x)y(x) = f(x)$中
$$
\phi_1'y_1' + \phi_2'y_2' + \phi_1y_1'' + \phi_2y_2'' + p(x)\cdot [ \phi_1y_1' + \phi_2y_2' ] + q\cdot [ \phi_1y_1 + \phi_2y_2 ] = f(x) \tag{6}
$$
整理可得
$$
\phi_1'y_1' + \phi_2'y_2' + \phi_1 \underbrace{\{y_1'' + p(x)y_1'(x) + q(x)y_1(x) \}}_{= 0} + \phi_2 \underbrace{\{y_2'' + p(x)y_2'(x) + q(x)y_2(x) \}}_{= 0} = f(x) \tag{7}
$$
綜合(3)式與(7)式
$$
\begin{cases}
\phi_1'(x)y_1(x) + \phi_2'(x)y_2(x) = 0\\
\phi_1'(x)y_1(x) + \phi_2'(x)y_2(x) = f(x)
\end{cases}
$$
由Cramer's rule可知
$$
\begin{align*}
\phi_1'(x) &= \frac{
\begin{vmatrix}
0 & y_2(x)\\
f(x) & y_2'(x)
\end{vmatrix}
}{
\begin{vmatrix}
y_1(x) & y_2(x)\\
y_1'(x) & y_2'(x)
\end{vmatrix}
}
= -\frac{y_2(x)f(x)}{W(y_1, y_2)}
&\Rightarrow \phi_1(x) = \int \phi_1'(x)dx\\
\phi_2'(x) &= \frac{
\begin{vmatrix}
y_1(x) & 0\\
y_1'(x) & f(x)
\end{vmatrix}
}{
\begin{vmatrix}
y_1(x) & y_2(x)\\
y_1'(x) & y_2'(x)
\end{vmatrix}
}
= \frac{y_1(x)f(x)}{W(y_1, y_2)}
&\Rightarrow \phi_2(x) = \int \phi_2'(x)dx
\end{align*}
$$
---
晚上9點到凌晨2點寫數位通訊5題作業,也複習了很多基本的機率的定義與定理,需要注意每一行列式為什麼可以化簡的原因,像是常數項可提出期望值、期望值內有隨機變數,需要帶期望值的定義$E[X] = \int^a_bxf_X(x)dx$,取隨機變數的上下限範圍並積分函數乘上此PDF分布。
- 隨機變數$X$為uniform distribution(均勻分布),則表示為$X \sim U(a, b)$。
$$
\begin{align*}
E\{X\} &= \int^a_bxf_X(x)dx\\
&= \int^a_bx\frac{1}{b - a}dx\\
\sigma^2_X &= E\{(X - \mu_X)^2 \}\\
&= E\{X^2\} - \mu_X^2\\
&= \int^a_bx^2f_X(x)dx - \mu_X^2\\
&= \int^a_bx^2\frac{1}{b - a}dx - \mu_X^2\\
\end{align*}
$$
- [03/07(一)](#03/07(一))wide-sense stationary, WSS的定義。
- [2021下三段日記12/29(三)](https://hackmd.io/@HsuChiChen/2021-log-4#12/29(三)),隨機變數$X$為gaussian distribution(高斯分布)或稱normal distribution(均勻分布),則表示為$X \sim N(m, \sigma^2)$。高斯分布的PDF(要背熟) $f_X(x) = \frac{1}{\sqrt{2\pi \sigma^2}}e^{ \frac{ -(x-m)^2 }{ 2\sigma^2 } }$與高斯分布做線性轉換仍然是高斯分布$X \sim N(m, \sigma^2) \xrightarrow{Y=aX+b} Y \sim N(am+b, a^2\sigma^2)$。
- [2021下三段日記12/29(三)](https://hackmd.io/@HsuChiChen/2021-log-4#12/29(三))當兩隨機變數$X,Y$獨立則$E[X \cdot Y] = E[X] \cdot E[Y]$,以及期望值的性質$E[aX + b] = aE[X] +b$與$E[X] + E[Y]$。
- 積化和差(要背熟)
$$
\begin{align*}
\sin A \cos B &= \frac{1}{2}[\sin(A + B) + \sin(A - B)]\\
\cos A \cos B &= \frac{1}{2}[\cos(A + B) + \cos(A - B)]\\
\sin A \sin B &= \frac{1}{2}[\cos(A - B) - \cos(A + B)]
\end{align*}
$$
<br>
## 03/14(一)
### 進度
- 數位通訊的Wiener–Khinchin theorem
- 數位通訊的WSS經過LTI系統後的響應
- 機率的動差生成函數與特徵函數
- 機率的Poisson distribution由來
- 機率的中央極限定理
### 心得
數位通訊上ergodic process、白雜訊、WSS經過LTI系統後的響應。ergodic process請複習[2021下三段日記 01/02(日)](https://hackmd.io/@HsuChiChen/2021-log-4#0102日);白雜訊任意取兩個隨機變數不相關,因此$R_W(\tau) = \frac{N_0}{2}\delta(\tau)$,其PSD不隨時間改變$S_W(f) \triangleq \frac{N_0}{2}$,兩者互為傅立葉轉換堆。
- **Wiener–Khinchin theorem(在WSS下,PSD跟ACF互為FT pair)**<br>
一隨機程序的PSD定義為
$$
S_X(f) = \frac{\lim_{T \to \infty} \mathbb{E}[| \mathscr{F}\{x_T(f)\} |^2]}{2T} \quad\text{where}\; x_T(t) = \begin{cases}x(t), &-T < t < T\\0, & \text{elsewhere}\end{cases}
$$
上式可理解為能量等於功率除以時間,由於具有隨機性,所以要取期望值。**在隨機程序是WSS的前提下,經過一系列推導**(講義3-22頁,需要做積分上下限線性轉換),可知power spectral density與autocorrelation function互為傅立葉轉換堆。
$$
\begin{cases}
S_X(f) &= \mathscr{F}\{R_X(\tau)\} &= \int^\infty_{-\infty}R_X(\tau)e^{-j2\pi f\tau}d\tau\\
R_X(\tau) &= \mathscr{F}^{-1}\{S_X(f)\} &= \int^\infty_{-\infty}S_X(f)e^{j2\pi f\tau}df
\end{cases}
$$
PSD有3點重要性質
1. $S_X(f) \geq 0 \;\;\forall f$
2. $E\{X^2(t)\} = E\{X(t)X(t)\} = R_X(0) = \int^\infty_{-\infty}S_X(f)e^{j2\pi f\cdot 0}d\tau = \int^\infty_{-\infty}S_X(f)df$,代表訊號總功率(二階動差)即為積分所有PSD範圍。
3. 若隨機程序$X(t)$為實數,則PSD是偶函數$S_X(f) = S_X(-f)$,與[02/15(二)](#02/15(二))WSS的隨機變數下autocorrelation function的性質一樣。
- **WSS經過LTI系統後的響應**<br>
證明用到[2022上寒假日記 02/06(日)](https://hackmd.io/@HsuChiChen/2022-log-1#02/06(日))中"在LTI系統中,輸出為輸入與impulse response的convolution"觀念$Y(t) = \int^\infty_{-\infty}h(\beta)X(t - \beta)d\beta$,結論為
|name|input|output|
|---|---|---|
|mean|$\mu_X$|$\mu_Y = \mu_XH(0)$|
|autocorrelation function|$R_Y(\tau)$|$R_Y(\tau) = R_X(\tau) * h(\tau) * h(-\tau)$|
|Is RP WSS?|$X(t)$是WSS|由一、二判斷輸出之隨機程序$Y(t)$也是WSS|
|power spectral density|$S_X(f) = \mathscr{F}\{R_X(\tau)\}$|$S_Y(f) = \mathscr{F}\{R_Y(\tau)\} = \mathrm{abs}[H(f)]^2 \cdot S_X(f)$|
輸出與輸入做比較,其cross-correlation function為$R_{YX}(\tau) = h(\tau) * R_X(\tau),\; R_{XY}(\tau) = h(-\tau) * R_X(\tau)$。
---
- **[動差生成函數(moment generating function, mgf)](https://www.youtube.com/watch?v=NjXlMwXpuEE)**<br>
根據動差定義$E[X] = \int^\infty_{-\infty} x^n f_X(x)dx$,每次要計算動差就勢必要計算PDF的動差,此時我們需要一個能直接"產生"動能的函數,方便計算。
$$
\begin{align*}
M_X(s) &= E(e^{sX}) = \int^\infty_{-\infty} e^{sx} f_X(x)dx & X \text{ is continuous}\\
M_X(s) &= E(e^{sX}) = \sum^n_{i = 1} e^{sx_i} p(x_i) & X \text{ is discrete}\\
M_X(s) &= E(e^{sX})\\
&= E\left( 1 + sX + \frac{s^2X^2}{2!} + \frac{s^3X^3}{3!} + \cdots \right)\\
&= 1 + sE(X) + \frac{1}{2!}s^2E[X^2] + \frac{1}{3!}s^3E[X^3] + \cdots\\
&\therefore \frac{d^nM(s)}{ds^n}\Bigg|_{s = 0} = m_n
\end{align*}
$$
因此計算動差的步驟可以簡化如下
1. 計算動差生成函數$M_X(s) = E[e^{sX}]$。
2. 求$n$階動差即對動差生成函數對$s$微分$n$次$\frac{d^nM(s)}{ds^n}$。
3. 帶入$s = 0$求解。
特徵函數(characteristic function, CF)原理也與動差生成函數類似。
$$
\begin{align*}
\Phi(\omega) &= \phi(j\omega) = E[e^{j\omega X}] = \int^\infty_{-\infty}e^{j\omega}f(x)dx\\
m_n &= (-j)^n\frac{d^n\Phi}{d\omega^n}\Bigg|_{\omega = 0}
\end{align*}
$$
由以上mgf $M_X(s)$與CF $\Phi(\omega)$定義可看,mgf就是pdf做Laplace Transform,而CF就是CF做Fourier Transform(公式差負號是等效的)。
$$
f_X(x) = \mathscr{L}^{-1}[M_X(s)] = \mathscr{F}^{-1}[\Phi(\omega)]
$$
**[Poisson distribution由來](https://www.youtube.com/watch?v=Cd1r98qABl8)**<br>
可視為二項分配的$n \to \infty, p \to 0$(在極短的時間內機率趨近0)極端案例,即為Poisson distribution $X \sim Po(\lambda)$的期望值$E[X] = np \triangleq \lambda$,則$\mathrm{Var}(X) = npq \sim np \cdot 1 = \lambda$。
$$
\begin{align*}
&\text{Binomial distribution (n independent Bernoulli trials)}\\
P(x) &= P(X = x)\\
&= C^n_xp^x(1 - p)^{n - x}\\
&= \frac{n!}{x!(n -x)!}p^xq^{n- x}\\
&= \frac{n(n -1)\cdots(n - x +1)}{x!} p^xq^{n- x}\\
&\because np \triangleq \lambda \Rightarrow p = \frac{\lambda}{n}, q = 1 - \frac{\lambda}{n}\\
&= \frac{n(n -1)\cdots(n - x +1)}{x!} \frac{\lambda^x}{n^x}(1 - \frac{\lambda}{n})^{n- x}\\
&= \frac{1}{x!} \frac{\lambda^x}{1}(1 - \frac{\lambda}{n})^{n- x}\quad\because n \to \infty\\
&= \frac{\lambda^x}{x!}(1 -\frac{\lambda}{n})^n(1 -\frac{\lambda}{n})^{-x}\\
&= \frac{\lambda^x}{x!}e^{-\lambda} \quad\because e^x = \lim_{n \to \infty} (1 + \frac{x}{n})^n
\end{align*}
$$
求Poisson distribution的變異數可用動差生成函數的觀念。
$$
\begin{align*}
M_X(s) &= \sum^\infty_{x = 0} e^{sx} \frac{\lambda^x}{x!}e^{-\lambda}\\
&= e^{-\lambda}\sum^\infty_{x = 0}\frac{(e^s\lambda)^x}{x!}\\
&= e^{-\lambda}e^{e^t\lambda} \quad\because e^x = \sum^\infty_{n = 0}\frac{x^n}{n!}\\
&= e^{\lambda(e^s - 1)}\\
\mathrm{Var}(X) &= (\text{2-nd moment}) - (\text{1-st moment})^2\\
&= \frac{d^2 M_X(s)}{ds^2}\Bigg|_{s = 0} - \Bigg(\frac{d M_X(s)}{ds}\bigg|_{s = 0}\Bigg)^2
\end{align*}
$$
- **偏態量(skewness)與峰態量(kurtosis)**<br>
一階動差是DC訊號、二階動差是DC功率,而三階中心動差經過標準化為偏態(skewness)係數,評估資料分布左偏$\gamma_1 < 0$、右偏$\gamma_1 > 0$或是對稱$\gamma_1 = 0$,四階中心動差經過標準化為峰態係數(kurtosis),評估資料瘦高$\gamma_2 > 3$、矮胖$\gamma_2 < 3$(高斯分布$\gamma_2 = 3$)。
$$
\begin{align*}
&\text{normalization of random variable}
\begin{cases}
E[X^*] &= E[\frac{X- \mu}{\sigma}] &= \frac{1}{\sigma}E[X] - \frac{\mu}{\sigma } &= \frac{\mu}{\sigma } - \frac{\mu}{\sigma } &= 0\\
\mathrm{Var}(X^*) &= \mathrm{Var}(\frac{X- \mu}{\sigma}) &= \frac{1}{\sigma^2}\mathrm{Var}(X) &= \frac{\sigma^2}{\sigma^2} &= 1
\end{cases}\\
&\text{coefficient of skewness}\;\gamma_1 = \frac{\text{3-rd central moment}}{\sigma^3} = E\left[(\frac{X - \mu}{\sigma})^3\right]\\
&\text{coefficient of kurtosis}\;\;\;\gamma_2 = \frac{\text{4-th central moment}}{\sigma^3} = E\left[(\frac{X - \mu}{\sigma})^4\right]
\end{align*}
$$
- **[中央極限定理(Central Limit Theorem, CLT)](https://www.youtube.com/watch?v=6SHqfp02bs0)**<br>
從平均數$\mu$、標準差$\sigma$的母體中,隨機取出$n$個獨立樣本$X_1, X_2, X_3, \cdots X_n$是獨立的隨機變數(未必是IID),當樣本數很大(實務上大於$n \geq 30$),樣本平均為常態分佈。
$$
\lim_{n \to \infty}\frac{X_1 + X_2 + X_2 + \cdots + X_n}{n} \sim N(\mu, \frac{\sigma^2}{n})
$$
證明方式是假設各個隨機變數IID,先標準化,取動差生成函數,取ln,做羅畢達法則,得動差生成函數與標準化後的高斯分布$X \sim N(0,1)$相同。
<br>
## 03/15(二)
### 進度
- 訊號與系統的convolution就是在每一區間對兩向量做內積判斷兩向量的相似度
### 心得
在[2022上寒假日記 02/07(一)](https://hackmd.io/@HsuChiChen/2022-log-1#02/07(一))為在時域上(連續)視覺化convolution的物理意義,而今天是探討離散下convolution的物理意義,也帶到內積大小判斷相似度的觀念。
- **內積空間定義**<br>
在 F上的向量空間 V 中,其內積為一對應特定常數的函數,註記為<x, y>,其中,x 與 y 為 V 內一對向量。對 V 內所有向量 x、y、z 與 F 內的純量 c 而言,內積函數必須滿足下列四項公理:
1. additive axiom $<x + z, y> = <x, y> + <z, y>$
2. homogeneity axiom $<cx, y> = c<x, y>$
3. symmetry axiom $\overline{<x, y>} = <y, x>$
3. positive axiom $<x, x> \geq 0,\; <x, x> = 0 \text{ if }x=0$
因此可知歐氏空間與函數空間的內積為
$$
\begin{align*}
<x, y> &= \sum^n_{i = 1}x_iy_i &\text{for } V = \mathbb{R}^n\\
<f, g> &= \int^a_b f(x)\overline{g(x)}dx &\text{for } V = P_n
\end{align*}
$$
---
兩向量$x ,y$做內積即是比較兩者的相似度,若內積等於0,為兩向量是正交(orthogonality),表示兩向量沒有相似性,而當兩向量相同時,內積最大,而離散空間下convolution的定義為
$$
x[n] * h[n] = \sum^\infty_{k = -\infty}x[k]h[n - k]
$$
其中輸入訊號$x[k]$與impulse response$h[n - k]$可視為函數空間下的兩個向量,以$k$為變數,縱軸從負無窮大向右滑動至無窮大,對每個區間內$k = \cdots,-2, -1, 0, 1, 2, \cdots$,兩向量不斷做內積去比較兩者之間的相似程度,可以觀察最後繪製出的輸出結果,峰值處代表輸入訊號與impulse response最相近。由以上convolution這種filter特性,我們可以設計出一個CNN的feature extraction,當要從圖片A萃取特徵B,就是將圖片A與我們設定好的特徵B做convolution,只有在掃描到圖片A有特徵B時,輸出才會有值。
<br>
## 03/16(三)
### 進度
- VLSI的DIBL與GIDL影響
- 工數二的Fourier cosine / sine Integral
- 工數二的Fourier Transform推導
### 心得
早上VLSI上課內容一樣是回答線上非同步課程的內容,這部分我在[03/06(日)](#03/06(日))已看完,今天上課內容重點是DIBL與GIDL的補充。
<br>
DIBL的成因如[03/06(日)](#03/06(日)),由上圖可知,在$V_{ds}$較大($V_{ds} = 1$的曲線)時,DIBL效果會較顯著,另一方面$V_{gs}$下降,也會使得$V_{ds}$的影響加大。而另一條$V_{ds} = 0.1$的曲線,當$V_g < V_d$時,drain跟gate之間overlap的區域會產生垂直電場,空乏區的共價鍵打斷,產生漏電流,這就是GIDL的成因。
中午meeting結束後,我們專題生最近也分好組,要報3/26(六)新思工作坊了,但沒想到因為報名人數額滿,報名時間提前結束,不過教授很大咖跟新思關係好像很好,所以我們還是可以塞進活動。而專題進度,雖然我[02/23(三)](#02/23(三))已經拿到開發板,但到現在環境都還沒架好,因為我重心還是放在課業,加上下禮拜要考工數二與下下禮拜要考訊號與系統與VLSI作業的deadline,最近我時間也不太夠。
今天開始看工數二教授的影片,這次一段內容為傅立葉轉換,今年寒假時上訊號與系統我已經推導一遍,不過還是有些細節還沒學。
---
參照[2022上寒假日記 02/04(五)](https://hackmd.io/@HsuChiChen/2022-log-1#0204(五)),是從Fourier Series推導出complex Fourier Series,再繼續推導到Fourier Transform;而工數二則是從Fourier Series推導出Fourier Integral,再繼續推導到Fourier Transform。
由[2022上寒假日記 02/01(二)](https://hackmd.io/@HsuChiChen/2022-log-1#02/01(二))推導出一週期為$2L$的週期函數可展開Fourier Series為
$$
\begin{align*}
f(x) &= a_0 + \sum^\infty_{n = 1}a_n\cos(\frac{n\pi x}{L}) + \sum^\infty_{n = 1}b_n\sin(\frac{n\pi x}{L}) \quad\forall x \in [-L, L]\\
\text{where } a_0 &= \frac{1}{2L}\int^L_{-L}f(t)dt\\
a_n &= \frac{1}{L} \int^L_{-L} f(t)\cos(\frac{n\pi t}{L}) dt\\
b_n &= \frac{1}{L} \int^L_{-L} f(t)\sin(\frac{n\pi t}{L}) dt
\end{align*}
$$
當把週期延伸到無窮大,即$L \to \infty$,令$\omega_n = \frac{n\pi}{L}$,則$\Delta \omega = \omega_{n + 1} - \omega_n = \frac{\pi}{L}$帶入Fourier Series得
$$
\begin{align*}
f(x) &= \left[ \frac{1}{2L}\int^L_{-L}f(t)dt \right] + \sum^\infty_{n = 1}\left[ \frac{1}{L} \int^L_{-L} f(t)\cos(\frac{n\pi t}{L}) dt \right]\cos(\frac{n\pi x}{L})\\
&\quad\; + \sum^\infty_{n = 1}\left[ \frac{1}{L} \int^L_{-L} f(t)\sin(\frac{n\pi t}{L}) dt \right]\sin(\frac{n\pi x}{L})\\
&= \frac{1}{2}\frac{\Delta \omega}{\pi}\left( \int^L_{-L}f(t)dt \right) + \frac{\Delta \omega}{\pi}\sum^\infty_{n = 1}\left[ \left( \int^L_{-L} f(t)\cos(\omega_nt) dt \right) \cos(\omega_nx) \right.\\
&\left.\quad\; + \left( \int^L_{-L} f(t)\sin(\omega_nt) dt \right) \sin(\omega_nx)\right]\\
&\because f \text{ is absolutely integrable}\Rightarrow \int^{\infty}_{-\infty}|f(x)|dx \text{ coverges and } L \to \infty \Rightarrow \Delta\omega \to 0\\
&\therefore \frac{1}{2\pi}\left( \int^L_{-L}f(t)dt \right) \Delta \omega = \text{constant} \cdot 0 = 0\\
&\text{resemble a Riemann sum}\\
&= \frac{1}{\pi}\int^\infty_0\left[ \left( \int^\infty_{-\infty} f(t)\cos(\omega t) dt \right) \cos(\omega x) \ + \left( \int^\infty_{-\infty} f(t)\sin(\omega t) dt \right) \sin(\omega x)\right]d\omega\\
&= \int^\infty_0[A_\omega \cos(\omega x) + B_\omega \sin(\omega x)]d\omega\\
&\text{where } A_\omega = \frac{1}{\pi}\int^\infty_{-\infty} f(t)\cos(\omega t) dt\\
&\qquad\;\;\; B_\omega = \frac{1}{\pi}\int^\infty_{-\infty} f(t)\sin(\omega t) dt\\
\end{align*}
$$
在工程上函數$f(x)$有時候只定義在區間$[0, \infty)$內,因此若要將$f(x)$展開成Fourier Integral,如同Fourier Series有"變通"的方法。
- 將$f(x)$擴充為偶函數,根據奇偶函數性質,Fourier Integral的係數可簡化為$A_\omega = 2 \cdot \frac{1}{\pi} \int^\infty_0\underbrace{f_e(t)}_{\text{even fun}} \cdot \underbrace{\cos(\omega t)}_{\text{even fun}}dt$,上式即為Fourier cosine Integral。
- 將$f(x)$擴充奇函數,根據奇偶函數性質,Fourier Integral的係數可簡化為$B_\omega = 2 \cdot \frac{1}{\pi} \int^\infty_0\underbrace{f_o(t)}_{\text{odd fun}} \cdot \underbrace{\sin(\omega t)}_{\text{odd fun}}dt$,上式即為Fourier sine Integral。
---
由Fourier Integral出發,可推導出Fourier complex Integral,即可定義Fourier Transform公式。
$$
\begin{align*}
\frac{1}{2}(f(x^-) + f(x^+)) &= \int^\infty_0[A_\omega \cos(\omega x) + B_\omega \sin(\omega x)]d\omega\\
&= \frac{1}{\pi}\int^\infty_0\left[ \left( \int^\infty_{-\infty} f(t)\cos(\omega t) dt \right) \cos(\omega x) \ + \left( \int^\infty_{-\infty} f(t)\sin(\omega t) dt \right) \sin(\omega x)\right]d\omega\\
&= \frac{1}{\pi}\int^\infty_0\int^\infty_{-\infty}f(t)[\cos(\omega t)\cos(\omega x) + \sin(\omega t)\sin(\omega x)]dtd\omega\\
&= \frac{1}{\pi}\int^\infty_0\int^\infty_{-\infty}f(t)\cos(\omega(t-x))dtd\omega\\
&= \frac{1}{\pi}\int^\infty_0\int^\infty_{-\infty}f(t)\frac{1}{2}(e^{i\omega(t-x)} + e^{-i\omega(t-x)})dtd\omega \qquad\because \text{Euler formula}\\
&= \frac{1}{2\pi}\int^\infty_0\int^\infty_{-\infty}f(t)e^{i\omega(t-x)}dtd\omega + \frac{1}{2\pi}\int^\infty_0\int^\infty_{-\infty}f(t)e^{-i\omega(t-x)}dtd\omega\\
&= \frac{1}{2\pi}\int^0_{-\infty}\int^\infty_{-\infty}f(t)e^{-i\omega(t-x)}dtd\omega + \frac{1}{2\pi}\int^\infty_0\int^\infty_{-\infty}f(t)e^{-i\omega(t-x)}dtd\omega\\
&= \frac{1}{2\pi}\int^\infty_{-\infty}\int^\infty_{-\infty}f(t)e^{-i\omega(t-x)}dtd\omega\\
&= \frac{1}{2\pi}\int^\infty_{-\infty} \left[ \int^\infty_{-\infty}f(t)e^{-i\omega t}dt \right] e^{i\omega x} d\omega\\
&= \frac{1}{2\pi}\int^\infty_{-\infty} F(\omega) e^{i\omega x} d\omega
\end{align*}
$$
因此定義出Fourier Transform與inverse Fourier Transform。
$$
\begin{align*}
\mathscr{F}\{f(t)\} &= \int^\infty_{-\infty}f(t)e^{-j\omega t}dt = F(\omega)\\
\mathscr{F}^{-1}\{F(\omega)\} &= f(t) = \frac{1}{2\pi}\int^\infty_{-\infty}F(\omega)e^{j\omega t} d\omega
\end{align*}
$$
將$\omega = 2 \pi f \Rightarrow d\omega = 2\pi df$帶入上式改寫為
$$
\begin{align*}
\mathscr{F}\{f(t)\} &= \int^\infty_{-\infty}f(t)e^{-j2\pi ft}dt\\
\mathscr{F}^{-1}\{F(f)\} &= \int^\infty_{-\infty}F(f)e^{j2\pi ft} df
\end{align*}
$$
此時係數$\frac{1}{2\pi}$已消失,上式代表時間與頻率之間的轉換,因此原式中前面乘上$\frac{1}{2\pi}$代表是頻率轉換為角頻率的scaling。
> 補充 : piecewise smooth的[定義]((https://www.quora.com/What-is-the-difference-between-piecewise-functions-that-are-smooth-and-continuous)) - 可將函數拆成有限個區間的子函數,各個子函數與其一次微分連續。
<br>
## 03/17(四)
### 進度
- 軍訓課看火災影片
- 工數二的利用傅立葉轉換解ODE
- 工數二的傅立葉轉換對稱、微分、積分的property
### 心得
早上日文課接續[03/10(四)](#03/10(四)),語句大同小異,不過需要注意
- AはBはV(普通形) / Aい / NAだ / Nだと言いました 間接引用(某人)說了,ました是過去式
- AはBはV(普通形) / Aい / NA / N だろう/ でしょう 推測、確認、感嘆語句,需要注意 NA / N不接だ,因為 でしょう和だ都有助動詞的語意。
下午軍訓課播[防災影片](https://www.youtube.com/watch?v=ly9-iBciFJQ),演講很精彩的,我看得很投入,大致總結以下幾點。
1. 火災不是急著逃生,一定要逃離建築物,而是要談**如何求生**。
2. 濃煙會以每秒3到5公尺往上升,人一定跑不過濃煙,所以一定要**往下逃生**,不存在往上逃的空間。
3. 看到濃煙逃不出去就**先關門**,把門縫塞滿,避免火燒進有大量助燃物質(空氣)的房間。
4. 不懂火,在不清楚起火的原因之下,**別急著滅火**,滅火器也非萬能。
5. **不要躲浴室**,因為浴室的通風系統是密閉的,塑膠門也不能防火。
6. 惹火上身先停、躺、滾,不要因為緊張而亂跑,只會增加空氣流動,助長身上的火勢而已。
---
延續昨天工數二進度,如同Laplace轉換,傅立葉轉換也可用來解ODE,由於使用條件限制,無法求得齊次解(暫態解)。
$$
\begin{align*}
H(t)e^{-at} &\rightleftharpoons \frac{1}{a + j\omega}\\
e^{-a|t|} &\rightleftharpoons \frac{2a}{a^2 + \omega^2}, a > 0\\
A\cdot\Pi(\frac{t}{\tau}) = \begin{cases}A, &|t| < \frac{\tau}{2}\\0, &|t|> \frac{\tau}{2} \end{cases} = A[H(t + \frac{\tau}{2}) - H(t - \frac{\tau}{2})] &\rightleftharpoons A\tau\mathrm{sinc}(f \tau) \quad\text{(rectangular pulse)}\\
A\cdot\Lambda(\frac{t}{\tau}) = \begin{cases}A(1-\frac{|t|}{\tau}), &|t|<\tau\\0, &|t|> \tau \end{cases} &\rightleftharpoons A\tau\mathrm{sinc}^2(f\tau) \quad\text{(triangular signal)}\\
\delta(t) &\rightleftharpoons 1 \quad\text{(delta function)}
\end{align*}
$$
- delta function
$$
\begin{align*}
\mathscr{F}\{\delta(t)\} &= \int^\infty_{-\infty}\delta(t) e^{-j\omega t}dt\\
&= \mathscr{F}\{\lim_{a \to 0}\frac{1}{2a}[H(t + a) - H(t - a)]\}\\
&= \lim_{a \to 0}\frac{1}{2a}\mathscr{F}\{[H(t + a) - H(t - a)]\}\\
&= \lim_{a \to 0}\frac{1}{2a}\cdot\int^a_{-a}1\cdot e^{-j\omega t}dt\\
&= \lim_{a \to 0}\frac{1}{2a}\cdot(\frac{1}{-j\omega}e^{-j\omega t})\Bigg|^{t = a}_{t = -a}\\
&= \lim_{a \to 0}\frac{1}{2a}\cdot \frac{1}{-j\omega}(e^{-j\omega a} - e^{j\omega a})\\
&= \lim_{a \to 0}\frac{1}{2a}\cdot \frac{2}{\omega}\frac{(e^{j\omega a} - e^{-j\omega a})}{2j}\\
&= \lim_{a \to 0}\frac{1}{2a}\cdot \frac{2}{\omega}\sin(a\omega)\\
&= \lim_{a \to 0}\frac{\sin(a\omega)}{a\omega}\\
&= \lim_{a \to 0}\frac{\omega\cos(a\omega)}{\omega} \quad\because \text{L'Hopital's rule}\\
&= \cos(0) = 1
\end{align*}
$$
參照[2022上寒假日記 02/04(五)](https://hackmd.io/@HsuChiChen/2022-log-1#0204(五))傅立葉轉換的property,推導過程都是做變數變換,再加上以下幾個性質
- **對稱性質**<br>
已知$\mathscr{F}\{f(t)\} = F(\omega)$,則$\mathscr{F}\{F(t)\} = 2\pi f(-\omega)$,代表在已知一傅立葉轉換的前提下,將轉換結果的$\omega$帶入$t$再做一次傅立葉轉換,等於$-\omega$取代原本轉換式子的$t$再乘上常數$2\pi$。
- **微分性質**<br>
假設$\lim_{t \to \pm\infty}f^{(k)}(t) = 0 \; \text{ for }k = 0, 1, \dots, n - 1$,代表不可能在無窮時間點觀測到訊號,則$\mathscr{F}\{f^{(n)}(t)\} = (i\omega)^nF(\omega)$,代表在時域上微分一次,頻域上會乘上$i\omega$。
- **乘$t$性質**<br>
$\mathscr{F}\{t^nf(t)\} = i^n\frac{d^n}{d\omega^n}F(\omega)$,代表時域上乘上$t$頻域上微分並乘上$i$。
- **積分性質**<br>
$\mathscr{F}\{\int^x_{-\infty}f(\tau)d\tau\} = \frac{1}{i\omega}F(\omega)$,令$g(t) = \int^x_{-\infty}f(\tau)d\tau$,再利用微積分基本定理一與上述之微分性質下去證明。
## 03/18(五)
### 進度
- 工數二的Shannon sampling theorem(取樣定理)
- 工數二的Fourier cosine / sine Transform
### 心得
早上通訊實驗是熟悉射頻分析儀的使用,就照著助教和講義指示操作一遍,測量內容如下,需要注意在測量之前要做校正 - 分別接上Cal-kit的S(short)、L(load)、O(open)做校正。
- 量測天線的Return Loss,return loss越大損耗越小。
- 藉由測量反射係數,推算出cable長度。
- 測量帶通濾波器的bandwidth
- 測量帶通濾波器的S參數。
---
假設一有限頻寬限制在$[-L, L]$的週期性訊號,其傅立葉級數與反傅立葉轉換為
$$
\begin{align*}
& \begin{cases}
f(t) &= \sum^\infty_{n = -\infty}c_ke^{jn\omega_0t} \qquad\text{where}\; c_k = \frac{1}{T}\int_Tf(t)e^{-jn\omega_0t}dt\\
f(t) &= \frac{1}{2\pi}\int^\infty_{-\infty}F(\omega)e^{j\omega t}d\omega
\end{cases}\\
&\because \omega_0 = \frac{2\pi}{T} = \frac{2\pi}{2L} = \frac{\pi}{L} \text{ and }t \text{ is dummy variable}\\
&\Rightarrow
\begin{cases}
F(\omega) &= \sum^\infty_{n = -\infty}c_ke^{jn\frac{\pi}{L}\omega} \qquad\text{where}\; c_k = \frac{1}{2L}\int^L_{-L}F(\omega)e^{-jn\frac{\pi}{L}\omega}d\omega\\
f(t) &= \frac{1}{2\pi}\int^L_{-L}F(\omega)e^{j\omega t}d\omega
\end{cases}\\
\end{align*}
$$
比較$c_k$與反傅立葉轉換
$$
\begin{align*}
c_k &= \frac{1}{2L}\int^L_{-L}F(\omega)e^{-jn\frac{\pi}{L}\omega}d\omega\\
&= \frac{\pi}{L}\frac{1}{2\pi} \int^L_{-L}F(\omega)e^{j\omega (-\frac{n\pi}{L})}d\omega\\
&= \frac{\pi}{L}f(\frac{-n\pi}{L}) \tag{1}\\
F(\omega) &= \sum^\infty_{n = -\infty}c_ke^{jn\frac{\pi}{L}\omega}\\
&= \sum^\infty_{n = -\infty}\frac{\pi}{L}f(\frac{-n\pi}{L})e^{jn\frac{\pi}{L}\omega} &\because \text{from eq.(1)}\\
&= \frac{\pi}{L}\sum^\infty_{n = -\infty}f(\frac{n\pi}{L})e^{-jn\frac{\pi}{L}\omega} &\because \text{replace }n \text{ with } -n \tag{2}\\
f(t) &= \frac{1}{2\pi}\int^\infty_{-\infty}F(\omega)e^{j\omega t}d\omega\\
&= \frac{1}{2\pi}\int^\infty_{-\infty}\left[ \frac{\pi}{L}\sum^\infty_{n = -\infty}f(\frac{n\pi}{L})e^{-jn\frac{\pi}{L}\omega} \right] e^{j\omega t}d\omega &\because\text{from eq.(2)}\\
&= \frac{1}{2\pi}\cdot\frac{\pi}{L}\sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\int^\infty_{-\infty}e^{j\omega(t - n\frac{\pi }{L})}d\omega\\
&= \frac{1}{2L}\sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\frac{1}{j(t - n\frac{\pi }{L})}e^{j\omega(t - n\frac{\pi }{L})}\Bigg|^{\omega = L}_{\omega = -L}\\
&= \frac{1}{2L}\sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\frac{1}{j(t - n\frac{\pi }{L})}\left[ e^{j(Lt - n\pi)} - e^{-j(Lt - n\pi)} \right]\\
&= \sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\frac{1}{Lt - n\pi}\frac{1}{2j}\left[ e^{j(Lt - n\pi)} - e^{-j(Lt - n\pi)} \right]\\
&= \sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\frac{1}{Lt - n\pi}\sin(Lt - n\pi)\\
&= \sum^\infty_{n = -\infty}f(\frac{n\pi}{L})\frac{\sin(Lt - n\pi)}{Lt - n\pi}\\
\therefore \underbrace{f(t)}_{\text{analog signal}} &= \sum^\infty_{n = -\infty}\underbrace{f(\frac{n\pi}{L})}_{\text{sample at } t = \frac{n\pi}{L}} \cdot \underbrace{\frac{\sin(Lt - n\pi)}{Lt - n\pi}}_{\text{digital to analog convertor}}\\
\end{align*}
$$
也就是說假設訊號是band-limited $\mathscr{F}\{f(t)\} = F(\omega) = 0 \;\forall |\omega| \leq L$,我們每隔時間$\frac{\pi}{L}$的間隔取此訊號,也就是說sample point就是$\frac{n\pi}{L} \;\forall n = \mathbb{N}$,將其以數位的方式存在電腦裡,而今天我們要重建此訊號就需要乘上$\frac{\sin(Lt - n\pi)}{Lt - n\pi}$,還原成類比訊號。
---
[03/16(三)](#03/16(三))定義Fourier cosine Integral
$$
f(x) = \int^\infty_0 A_\omega\cos(\omega t)d\omega \quad\text{where } A_\omega = \frac{2}{\pi} \int^\infty_0f(x) \cdot \cos(\omega x)dx
$$
因此觀察上式可定義出Fourier cosine transform為
$$
\begin{align*}
\mathscr{F_c}\{f(t)\} &= \int^\infty_0 f(t)\cos(\omega t)dt\\
\mathscr{F_c}^{-1}\{F_c(\omega)\} &= \frac{2}{\pi}\int^\infty_0 F_c(\omega) \cos(\omega t)d\omega
\end{align*}
$$
Fourier cosine Integral與Fourier cosine transform兩者指的是**同一個式子**,同理也可定義出Fourier sine transform,並推導Fourier cosine / sine Transform**這個定義下的有價值的property**,像是使用分部積分(by parts)推導出來的operational rules,可以用於解決特定問題。
$$
\mathscr{F_c}\{f''(t)\} = -\omega^2 F_c(\omega) - f'(0)
$$
<br>
## 03/19(六)
### 進度
- VLSI作業的transmission gate的HSPICE模擬驗證
### 心得
這個禮拜一二在讀數位通訊、禮拜三四五在讀下禮拜要考的工數二的Fourier Transform,VLSI的進度只停留在[03/12(六)](#03/12(六))的環境教學而已,今天完成VLSI作業第一題A小題用Virtuoso畫出NMOS、PMOS、transmission gate的電路圖,並用HSPICE驗證,透過波型觀測3者之間的優缺點。
下禮拜要整天去CIC教室做了,不然這個進度很危險,先把Virtuoso電路圖和HSPICE驗證跑完,之後最花時間的是layout,layout技巧是先畫好inverter、transmission gate的基本單元跑完驗證,之後再把這些子單元conbine起來,反正第一次作業也沒要求合成面積和功耗,先求有不求好。
<br>
## 03/20(日)
### 進度
- 數位通訊的WSS經過LTI系統後響應作業
### 心得
早上把工數二傅立葉轉換的講義習題讀完一遍,之後晚上寫數位通訊作業,從晚上11點開始寫,一直寫到隔天5點,用到的觀念蠻多的(如下),也順便複習上禮拜工數二讀的內容。
- 上禮拜上課[03/14(一)](#03/14(一))WSS經過LTI系統後的響應中的公式證明與應用。
- 在WSS的前提下,autocorrelation function透過傅立葉轉換成power spectral density,需要用到[03/17(四)](#03/17(四))傅立葉轉換的對稱、微分、time-shifting、frequency-shifting等性質以及三角波與方波的傅立葉轉換。
<br>
## 03/21(一)
### 進度
- 工數二的完成傅立葉轉換的作業與考古習題
### 心得
前幾周都在複習基礎數學,這周開始進入數位通訊的內容,重點是設計接收端的matched filter與設定一個判斷0和1訊號的threshold,使判斷位元的錯誤率能降到最低。
<br>
## 03/22(二)
### 進度
- 工數二一段傅立葉積分與轉換
- 訊號與系統的系統的stablility與causality判斷條件
- VLSI的畫inverter的layout
### 心得
今天考工數二,內容是傅立葉積分與轉換,有4大題。
1. [03/18(五)](#03/18(五))sampling theorem的證明題。
2. [03/17(四)](#03/17(四))常見傅立葉轉換堆的證明,與利用傅立葉轉換堆與傅立葉轉換的property解二階ODE。
3. [03/16(三)](#03/16(三))將一區間定義函數的函數用傅立葉積分表示,假設有$k$個區間分別在$[a_k,b_k]$的定義函數,計算Fourier integral coefficients$A_\omega = \sum^n_{k=1}\frac{1}{\pi}\int^{a_k}_{b_k}f_k(t)\cos(\omega t)dt$與$B_\omega = \sum^n_{k=1}\frac{1}{\pi}\int^{a_k}_{b_k}f_k(t)\sin(\omega t)dt$,因此該函數用傅立葉積分表示為$f(x) = \int^\infty_0[A_\omega\cos(\omega t)dt + B_\omega\sin(\omega x)]d\omega$,並寫出積分的收斂值。
4. [03/16(三)](#03/16(三))將一定義在$[0, \infty]$的函數$f(x) = e^{-x}\cos(x)$用Fourier cosine Integral與Fourier sine Integral表示,需要注意的是0點位置的收斂值,cosine Integral後展開之函數是連續的,因此級數和即為函數值;sine Integral展開之函數是不連續的,因此級數和即為左極限和右極限的平均$\frac{1}{2}[f(x^+) + f(x^-)]$。
第一題是講義上的證明題,當初花了不少時間反覆證明,也打在日記中;第二題是考古題;第三題我傅立葉級數積分區間寫錯;第四題由於積分式複雜不確定是否計算錯誤,最後兩題都是原文書後面的習題,可能是因為內容較簡單,只需要帶傅立葉積分公式即可,因此不在教授勾選的範圍,但我練習不夠,對於此類題型掌握度和積分技巧不夠熟練,二段時要以此為戒,練習更多原文書後面的題目。
---
訊號與系統下禮拜要交作業與考第一次段考,延續[03/08(二)](#03/08(二))今天上課的知識點如下
- convolution具有結合率(associative)$(A + B) + C =A + (A + B)$與交換率(commutative)$A \times B = B \times A$。
- invertible(可逆性) - 代表一訊號經過系統與反系統後輸出還是原本的值,舉例來說,由於$h(t) * h_1(t) = \delta(t - t_0) * \delta(t + t_0) = \mathscr{F}^{-1}\{e^{-j\omega t_0} \cdot e^{+j\omega t_0}\} = \mathscr{F}^{-1}\{1\} = \delta(t)$,訊號延遲的inverse為訊號領先。
- stablility - 當輸入是bounded,輸出也會是bounded(BIBO),因此假設$|x(t)| < B$則
$$
\begin{align*}
|y[n]| &= |\int^\infty_{- \infty}h(\tau)x(t - \tau)d\tau|\\
&\leq \int^\infty_{- \infty}|h(\tau)||x(t - \tau)|d\tau &\because\text{Cauchy–Schwarz inequality}\\
&\leq B\int^\infty_{- \infty}|h(\tau)|d\tau < \infty &\because\text{given that input is bounded}\\
&\Rightarrow \int^\infty_{-\infty}|h(\tau)|d\tau < \infty
\end{align*}
$$
- memoryless - 系統輸出只會受到同一時間點、當下的輸入影響,利用$\delta[n]$只在$n =0$時才有值為1,其餘為0,可表示為$h[n] = f(\delta[n])$。
- causality - 系統輸出只與現在與過去輸入有關,因此在$t < 0$時,不會有impulse response $h(t) = 0$。
上到第六周下來,老實說我不太喜歡這種授課方式,花了一兩周的時間講了一個小小的觀念,然後我還不一定聽得懂,可能是我寒假時看了交大OCW陳永平教授精彩數學推導與對於系統本質的詮釋教太好,而讓我有嚴重的落差吧。
不知道是不是我的程度太差的問題,之前機率和現在訊號與系統這兩個基礎科目,我上課都不是聽很懂,自然也不會對這幾個科目產生興趣,但在寒假和開學初比較有空的時候,看了[2022上寒假日記 02/12(六)](https://hackmd.io/@HsuChiChen/2022-log-1#02/12(六))陳永平對於ODE的齊次解與特解的詮釋、[02/14(一)](#02/14(一))陳伯寧對於隨機變數的詮釋,我內心其實是很澎湃而激動的,覺得數學實在很有趣,可以用數學去分析一個現實中的行為並深入去做計算,對我來說這都是過去從未想過、很"新奇"另一種思考問題的想法。
<br>
## 03/23(三)
### 進度
- VLSI作業的改使用Virtuoso的symbol功能
- VLSI作業的D-latch與D-flip flop的layout
- VLSI作業的multiplexer的layout
### 心得
今天**早上VLSI上課前助教在發白紙,我快嚇死了**,會發白紙八成是要突擊小考,然後好死不死我這週沒看影片,因為我VLSI作業一的進度落後,所以想等之後寫完作業再補影片。
考前我死命看講義內容,死馬當活馬醫,教授卻對大家冷笑地說 : 就算你們看講義也是沒有用的,確實在是如此,考試內容是考影片中教授很突兀地講了哪兩個跟教學無關的字? 我左思右想 - 是"噢乾"嗎?應該不是,教授不可能講這麼粗魯的話;那會是"哈啾"嗎?教授會不會上講到一半打噴涕?
我十分慌張,不停左顧右盼,因為這堂課小考也考沒幾次,我要因為兩個字沒寫出來,而被扣分也太虧了吧,當教授一聲令下要收考卷,我還是緊握住寫上名字但卻是空白的紙,想要最後的掙扎,當下想出最合適的答案。就在十萬火急之刻,奇蹟發生了!坐在前面素不相識的同學偷偷給我看了他寫的答案 - "請進",原來是教授之前不知道錄影可以暫停,所以都一鏡到底,錄到一半時,謝明得教授剛好在敲門,所以錄到了請進兩個突兀的語句。
可能是這周教學內容較簡單,教授閒聊居多,講到一些科技業的暗黑面(現實面),當然也不知是不是真的,就當故事是在聽,以前面板產業是台灣和南韓的天下,在台灣是奇美與友達的公司競爭的天下,後來2008年金融海嘯,奇美電子虧損嚴重,鴻海收購奇美電子改名為群創,鴻海一批高層人馬要進去奇美電子改組,引起奇美電子一部分內部員工的不滿,這批奇美電子的員工就被中國高薪招聘,當時中國遲遲搞了十幾年的面板而沒有下落,而在短短幾年飛速成長,之後就是台灣光電"慘業"的黑暗期。
當然奇美電子這批人馬**也沒有所謂對與錯的地方**,所謂"技術人才"關心的是技術,既然在鴻海收購後無法一展才華,那跑去當時還是處女地的中國一展心中抱負,**能發揮自己的專業,貢獻一己之力**,或許沒有比這開心的事情了吧。
---
下午一點吃完飯後,就去CIC教室做VLSI作業一,一直做到晚上11點,中間的軍訓課使用[同步線上課程偷懶流程](https://hackmd.io/@HsuChiChen/virtual-camera),這招還蠻管用的。
延續昨天畫inverter的layout,今天跑完DRC和LVS驗證,另外也畫transmission gate的layout,但是沒跑LVS驗證,而剛好我又把NMOS和PMOS畫反,還好在之後及時發現,也沒卡住太久,總結今天的進度為
- Virtuoso**畫好transmission gate與inverter的symbol**,方便之後call元件,需要注意雖然都是`.18`製程($L = 0.18 \mu m$),但兩者NMOS的寬度不一樣,transmission gate是$W = 1 \mu m$,而inverter是$W = 0.5 \mu m$。
- 完成**D-latch與兩個D-latch組合而成的D-flip flop電路**的HSPICE模擬與layout。
- 完成inverter與transmission gate基本元件的layout。
- 關於**D-latch的layout**部分,我的想法是把一組NMOS和PMOS共用一個CLK訊號,因此只需要一個gate打下來,而inverter就共用diffusion,兩個invertor串聯,事後看到講義上有一樣是D-latch的layout圖,之後有時間再想看看,可能還是講義上的layout比較好、合成面積比較小。
- 關於**D-flip flop的layout**部分,是匯入兩個D-latch電路並串聯,前面的D-latch需要改transmission gate的全部gate訊號反向,其餘架構大同小異。
- 完成**multiplexer、inverting multiplexer(AOI22、一對tristate inverter電路)** 的HSPICE模擬與multiplexer的layout,電路用到的觀念需要複習[02/23(三)](#02/23(三))的nonrestoring問題。
- 關於**multiplexer的layout部分**,一樣NMOS放下面,PMOS放上面,nwell與diffusion才可能連續。
<br>
## 03/24(四)
### 進度
- VLSI作業的AOI22的layout
- VLSI作業的一對tristate inverter的layout
- 規劃去清大新思工作坊交通
### 心得
早上日文課上第21課例文、會話、練習C,其中會話是兩個大叔在聊足球比賽,練習"と言います"句型,而老師也預告之後清明連假要考日文期中考,應該就是把課本上的動詞變化與語句轉換背熟吧。
---
VLSI作業延續昨天進度,一樣是下午1點報到,一直做到晚上11點工讀生趕人為止,今天進度為完成AOI22與一對tristate inverter的layout。有別於前兩天的較"離散型"的layout,這次**畫之前先做好草稿**,而基本架構從上數下來,依序是VDD、PMOS、NMOS、GND,並**想辦法讓diffusion不會斷掉**,gate和contact、metal1和metal1距離壓到最小,讓整體電路比較密集。
中間又花了3個小時處理專題的新思工作坊要去清大的交通問題,考慮了以下三個交通方案,網路查詢和打電話詢問後,最後選擇高鐵。
|交通|評估|
|---|---|
|台鐵|台鐵最早6點多發車,乘車需要3小時趕不上。|
|客運|客運沒有台南到新竹的直達車,都只有台北到新竹的路線,而且就算是在台中轉運,時間一樣來不及。|
|高鐵|台南到新竹只要一小時,有限量的大學生75折的優惠票。|
並規劃時間表,但事後發現當初**錯估公車搭乘的時間至少需要40分鐘**。
- 06:30 - 06:53 台鐵區間3705台南站到沙崙站
- 07:13 - 08:23 高鐵班次606台南站到新竹站(訂單編碼03372739)
- 08:45 - ??:?? 國光182路高鐵新竹站到清大
- 09:30 - 05:30 新思ARC工作坊
- 06:20 - ??:?? 國光182路清大到高鐵新竹站
- 06:47 - 08:11 高鐵班次675新竹站到台南站(訂單編碼03385717)
- 08:28 - 08:54 台鐵區間3772沙崙站到台南站
<br>
## 03/25(五)
### 進度
- VLSI作業的AOI31與$Y = \overline{(AB + C) \cdot D}$的layout
- VLSI作業的3 to 8的decoder的HSPICE模擬驗證
### 心得
早上是射頻與類比通訊實驗的最後一堂課,之後就換數位通訊了。這次實作是傳輸線的阻抗匹配,首先給定一負載,使用網路分析儀測量附載的阻抗值,將阻抗值做normalization(除以傳輸線的特徵阻抗)後,使用Smith Chart這個工具繪製,將阻抗值拉至Smith Chart的正中心,以達到阻抗匹配,使電磁波經過不同阻抗下的反射比率能降到最低,經過網路分析儀測量也可以知道匹配前和匹配後反射係數明顯降低,得到上述驗證。
---
今天是做VLSI作業的第三天,由於CIC教室人數眾多,我一上完通訊實驗課就馬上去CIC教室,早上11點報到,一直做到晚上11點工讀生趕人為止,今天進度如下
AOI31與$Y = \overline{(AB + C) \cdot D}$的HSPICE模擬驗證與layout,兩者電路大同小異,題目給定一boolean function,解題思路如下
1. 參照[02/23(三)](#02/23(三)),從NMOS去思考,AND在電路上為串聯,OR在電路上為並聯。
2. 對上述電路取conduction complement,串聯與並聯互換,即為PMOS電路。
3. 參照[03/04(五)](#03/04(五)),畫layout時要避免一條diffusion中斷,需要找Euler path,將PMOS化成edge、source/drain端的接線化為node,從輸出端出發找Euler path。
4. 做好草稿決定佈線後,打開laker繪製。
另外有幾個layout基本的觀念需要釐清
- 雖然VDD(或GND)分開多個而不短路,打多個名字,DRC和LVS會過,但是還是建議連在一起。拉一大條body打VDD跟一大條body打GND,需要接VDD跟GND的導線就接上去。
- NIMP或PIMP會包住diffusion,NIMP的功能是決定diffusion是N摻雜,而PIMP的功能是決定diffusion是P摻雜。
VLSI最後一題最麻煩,是有enable線的3 to 8的decoder,首先我把3 to 8的decoder拆成2個2 to 4的decoder,再實踐2 to 4的decoder內部,有3條輸入訊號與4個3-input NOR gate。需要注意的是以前邏輯設計都是講正向邏輯閘,但實際上電路都是畫反向邏輯閘,每個AND或OR gate都需要利用De Morgan's laws設法轉為NAND或NOR gate。
我Virtuoso創了不少子電路有2 - input NOR gate、3-input NOR gate、inverter(之前畫過)、2 to 4的decoder,每個都匯出為電路描述的`*cir`並跑過HSPICE確認無誤,之後再合併起來並通過HSPICE驗證。進入第二步layout環節,我繪製出一3-input的NOR gate,跑完DRC和LVS驗證,接下來是畫2 to 4的decoder,但佈線上一直卡住,之後還需要時間思考一下。
<br>
## 03/26(六)
### 進度
- 去清大新思工作坊
- 熟悉ARC EM9D的開發流程
### 心得
禮拜三到五這三天都一直畫layout,deadline是壓在禮拜二,所以我很擔心畫不完,昨天一樣畫到晚上11點,但decoder的佈線一直卡住,有些煩躁。
今天規劃是專題要去清大參加新思的工作坊,事前規定要裝開放板的環境,但這幾天我都在趕layout作業,根本沒時間裝環境,所以拖到今天早上五點半起來先下載安裝包,要下載不少東西時間要一直拖,之後來個極限操作,6點30分的台鐵區間車,我6點25分離開宿舍,6點29分搭上火車,也幸虧能趕得上,要是晚一點搭到下一班區間車,之後高鐵班次就趕不上,之後我繼續在高鐵弄環境,但是電腦續航太差,撐個1個半小時就關機了。
到會場時,與其說我對這裡環境很熟悉,倒不如說我沒辦法忘記,這是我一年半前考台聯大轉學考的同一間教室,雖然現在椅子和桌子換新了,但狹長的座位還是一樣。
一開場主持人講場面話,我就繼續弄環境,但不知道為什麼我電腦裝虛擬機就是有問題,安裝`*iso`鏡像檔後,照理說拔除鏡像檔重新啟動就進入ubuntu介面,但虛擬機就是卡在黑屏,我之前也是被虛擬機搞,那時候安裝是成功的,但就是卡頓到無法日常使用。最後直接放棄虛擬機,改用WSL,在熟悉整套開發邏輯後,感覺根本不需要向他教學載那麼多東西,下載流程如下,可以用自己習慣的軟體去跑。
他的hands-on practice其實也沒想像中的難,就是**環境架好能編譯它範例程式,成功跑完整套開發流程即可**,畢竟只有短短幾個小時,每個人程度又不一樣,像是我還沒學python套件和要怎麼 train model的解題思路,看不懂他的程式,就照著跑就好了,這部分還需要自己之後學習,**比起達到他的最低要求,我覺得重點是有免費的助教可以詢問**,有人能問問題真的是一件很幸福的事情,另一件事情是好險我開學初有惡補一些基本ML的常識,參照[02/19(六)](#02/19(六))、[02/20(日)](#02/20(日))像是loss function、overfitting名詞定義,不然我可能聽不懂他後面AI的開發流程。
---
#### 環境架設
1. 在WSL下,安裝新思提供給自己ARC開發板[客製化的GCC編譯器](https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2020.09-release)。
```
wget dowlowd_link //下載
gunzip fileName.gz //解壓
tar xvf fileName.tar //解包
vim ~/.bashrc //編輯home目錄下的bashrc檔
```
新增下載軟體的環境變數`export PATH=$PATH:$~/folder_path/folder_name/bin:$`。
2. 在WSL下,下載[SDK](https://bluepacket.duckdns.org/owncloud/index.php/s/D3dpFbTNRgzqFcv),並解壓、解包。
#### 韌體開發流程
1. 在WSL下,每次在SDK資料夾下寫好程式後,下兩個指令
```
make
make flash
```
make會去抓makefile相應的內容,並調用前面下載的客製化GCC編譯器,`make`在這裡定義是會產生`.elf`可執行檔(參見[GCC與編譯過程](https://hackmd.io/@HsuChiChen/gcc-compile))與`*map`記憶體配置檔(觀念可以類推[2021下三段日記 12/19(日)](https://hackmd.io/@HsuChiChen/2021-log-4#12/19(日)))。
`make flash`會把`.elf`與`*map`合併成`*img`。
> `*img`是文件壓縮格式類似於iso鏡像文件,主要是用於**創建磁碟的鏡像文件**。`img`格式通常用來壓縮光碟上的內容,後綴名為`.img`的文件其實也就是鏡像文件(image)。由於`.iso`只能壓縮CD或DVD,因此才發展出了`.img`,**與`.iso`相比`.img`所支持壓縮的文件更多**,`.img`可向後兼容於`.iso`,如果是拿來壓縮CD或DVD,則使用`.img`和`.iso`這兩種格式所壓縮出來的內容是一樣的。
2. 生成的`output.img`位於SDK資料夾下的`tools/image_gen_cstm/output`路徑,使用MobaXterm軟體將WSL的檔案FTP至win10。
3. 開發板接上電腦,可於`device manager`確認接口是否讀取到。
4. 打開SDK資料夾下`tools/HMX_FT4222H_GUI/GUI_binary`下的win10可執行檔`HMX_FT4222H_GUI.exe`。
5. 短路開發板的J20和J11進入燒錄模式。
6. `HMX_FT4222H_GUI.exe`介面選擇Flash download -> Read ID,成功的話ID為`ef/60/15`。
7. 接下來選擇Browse,前面生成的生成的鏡像文件`output.img`,選擇programming燒錄程式。
8. 燒錄後開路開發板的J20,程式就會運行。
#### 加上TensorFlow Model的開發流程
1. 打開`colab`train好model,把最佳化的weight存入`*.tflite`。
2. 下指令`xxd -i model.tflite > model.h`將原檔存到16進制的C array中。
3. 另一個的testing set,生成在`*.cpp`做為對照組。
4. 接續韌體開發流程
我最大問題是搞不懂colab和開發板兩者做的事情,我的理解是事前先決定好要用哪個model(若SDK沒提供,就需要自己用C手刻),然後開`colab`train出最好的weight值,並輸出`model.h`,最後把這些最佳化的參數餵給這個開發板上的model。
<br>
## 03/27(日)
### 進度
- 訊號與系統的作業二
- 訊號系統的在時域上計算convolution
### 心得
今天寫數位通訊和訊號與系統的作業,熟悉時域上convolution的計算,光是寫一題就花了我不少時間,題型一是
$$
\begin{align*}
y[n] &= x[n] * h[n]\\
\text{where } x[n] &= 3^n u[-n - 1] + (\frac{1}{3})^n u[n]\\
h[n] &= (\frac{1}{4})^n u[n + 3]
\end{align*}
$$
解題思路是
$$
\begin{align*}
y[n] &= x[n] * h[n]\\
&= \sum^\infty_{k = - \infty}x[k]h[n -k]\\
&= \sum^{-1}_{k = -\infty}(\frac{1}{3})^{-k}(\frac{1}{4})^{n - k}u[(n + 3) - k] + \sum^\infty_{k = 0}(\frac{1}{3})^k(\frac{1}{4})^{n - k}u[(n + 3) - k]\\
&= \sum^\infty_{k = -1}(\frac{1}{3})^k(\frac{1}{4})^{n + k}u[(n + 3) + k] + \sum^\infty_{k = 0}(\frac{1}{3})^k(\frac{1}{4})^{n - k}u[(n + 3) - k]\\
& k \text{ replace with } k+1\\
&= \sum^\infty_{k = -1}(\frac{1}{3})^k(\frac{1}{4})^{n + k}u[(n + 3) + k] + \sum^\infty_{k = 0}(\frac{1}{3})^k(\frac{1}{4})^{n - k}u[(n + 3) - k]\\
&= \frac{1}{12}\sum^\infty_{k = 0}(\frac{1}{3})^k(\frac{1}{4})^{n + k}\underbrace{u[(n + 3) + k]}_{n + 3 + k \geq 0 \text{ 才有值}} + \sum^\infty_{k = 0}(\frac{1}{3})^k(\frac{1}{4})^{n - k}\underbrace{u[(n + 3) - k]}_{n + 3 - k \geq 0 \text{ 才有值}}\\
&= \frac{1}{12}\sum^\infty_{k = \max\{0, -n-k\}} (\frac{1}{12})^k(\frac{1}{4})^n + \sum^{n +3}_{k = 0}(\frac{4}{3})^k(\frac{1}{4})^n
\end{align*}
$$
接下來分段討論,帶等比級數和$S_n = \frac{a(1 - r^n)}{1 - r}, r \neq 1$公式計算。
題型二參照[2022上寒假日記 02/07(一)](https://hackmd.io/@HsuChiChen/2022-log-1#02/07(一))。
<br>
數位通訊作業寫到凌晨5點,但還是沒寫完,先把各題參考解答看熟,明天的每周小考分數拿滿,之後還需要補齊作業內容。
<br>
## 2022上一段總結
### 進度
- 工數一的一階ODE求解(可分離變數化、可線性化)
- 工數一的二階ODE的齊次解(比因式分解)與特解(待定係數法、Lagrange參數變異法)解法
- 數位通訊的機率與隨機程序複習
- 數位通訊的WSS經過LTI系統後的響應
- 工數二的Fourier Integral
- VLSI作業的3 to 8 decoder的HSPICE驗證與layout
### 心得
這一學期我的選課方向就是**專攻數學**,修了之前二下太忙而退選的工程數學(二)與之前沒修的訊號與系統,這兩科算是電機系很基礎的學科,接下來點數位通訊與通訊實驗,這樣算是把大學部通訊相關的課程補完了。最後一科是修VLSI電路設計,會修這門而不修作業系統,很大一部分原因是這個老師教的還不錯,加上有扎實的實作練習。
---
- 第一周比較有空看開放式課程,也規劃了一些選課與學習的方向。
- 交大陳伯寧通訊原理的機率複習,其中[02/14(一)](#02/14(一))陳伯寧對於公理與random variable的詮釋十分精采。
- 台大李宏毅的機器學習,看完第一周課與熟悉Colab介面,雖然想繼續學下去,但我實在沒時間。
- 第二周感到有些寂寞加了一些巴友的DC聊天,這期間VLSI講了transmission gate的觀念;二二八連假開始重啟工數一複習,這是為了之後考研做準備,讀完一階ODE。
- 第三周全力讀VLSI,也藉此機會複習電子一的觀念,像是[03/05(六)](#03/05(六))完整I−V曲線與Early effect的詳細推導過程。
- 第四周繼續推工數一複習進度,二階ODE的齊次解(比因式分解能力)與特解(待定係數法、Lagrange參數變異法)解法。
- 第五周前半讀數位通訊的WSS經過LTI系統後的響應、機率的動差生成函數與特徵函數,後半全力準備工數二的Fourier Transform內容,雖然今年寒假時訊號與系統已經讀過了,但還讀不完整,像是推導Fourier Integral, Fourier cosine/sine Integral, Shannon sampling theorem的過程。
- 第六周考完工數二一段,接下來禮拜三到禮拜五就是焦慮與爆肝的開始 - 當時我VLSI作業進度幾乎是0,又沒跑過完成整套工作流程,**非常緊張擔心會做不完,那三天也都沒吃晚餐,每天10小時以上盯著電腦畫layout**,好險之後還是順利趕完作業。
最後禮拜六去清大新思工作坊,**老實說我不太想專注在專題比賽了**,有別於Arduino和Raspberry pi有強大的開源社群可以查詢,**新思這塊板子生態系有夠封閉**,我跟官方索要板子和SDK最基本的datasheet, pinout, API文檔,完全都沒有,這真的很過分。
總結一段來說蠻滿意的,學到蠻多令我感到新奇的知識,而時間規畫方面第六周有點問題,在趕VLSI作業進度,這部分要記取教訓,接下來這個六天清明連假,教室開放的話,要開始做VLSI作業了,不然**那種趕作業和考試進度沒讀完的焦慮感**實在太痛苦了。