日記
生活
日期 | 概述 |
---|---|
02/14(一) | 通訊原理的機率公理、隨機變數、隨機程序 |
02/15(二) | 通訊原理的自相關、自共變異函數的物理意義 |
02/16(三) | VLSI電路設計初認識、日文動詞與形容詞的複習 |
02/17(四) | 機器學習初認識 |
02/18(五) | PMIC初認識、決定選課與讀書方向 |
02/19(六) | 熟悉Jupyter Notebook與Colab環境 |
02/20(日) | DL的neural network名詞定義 |
02/21(一) | 數位通訊的機率複習 |
02/22(二) | 訊號系統第一堂課 |
02/23(三) | VLSI的CMOS電路實現 |
02/24(四) | 跟巴友DC閒聊 |
02/25(五) | 工數一的解的分類與幾何意義 |
02/26(六) | 工數一的找積分因子方法 - grouping method與公式法 |
02/27(日) | 工數一的一階一次的ODE解題 - 分離變數法、一階線性ODE、特殊解法 |
02/28(一) | 工數一的一階高次ODE解法 - 因式分解與Clairaut's equation |
03/01(二) | 整理儀容雜事 |
03/02(三) | VLSI的oxide厚度選擇與tradeoff |
03/03(四) | 電子一的電子與電洞的mobility |
03/04(五) | VLSI的layout的技巧 - transistor folding, Euler path |
03/05(六) | 電子一的I−V曲線與Early effect的推導 |
03/06(日) | VLSI的\(\alpha\)-power law model |
03/07(一) | 數位通訊的隨機程序中n階統計量與stationary的定義 |
03/08(二) | 去圖書館彩色掃描書籍 |
03/09(三) | 跟平常一樣盡力掩蓋心中的落寞與孤獨 |
03/10(四) | 工數一的normal ODE解的性質 |
03/11(五) | 工數一的n階常係數線性ODE的齊次解求法 |
03/12(六) | VLSI作業的熟悉HSPICE語法 |
03/13(日) | 工數一的待定係數法、Lagrange參數變異法求特解 |
03/14(一) | 數位通訊的Wiener–Khinchin theorem;機率的動差生成函數、特徵函數、中央極限定理 |
03/15(二) | 訊號與系統的convolution就是在每一區間對兩向量做內積判斷兩向量的相似度 |
03/16(三) | 工數二的Fourier cosine / sine Integral |
03/17(四) | 工數二的利用傅立葉轉換堆與性質解ODE |
03/18(五) | 工數二的Shannon sampling theorem(取樣定理) |
03/19(六) | VLSI作業的transmission gate的HSPICE模擬驗證 |
03/20(日) | 數位通訊的WSS經過LTI系統後響應作業 |
03/21(一) | 工數二的完成傅立葉轉換的作業與考古習題 |
03/22(二) | 工數二一段傅立葉積分與轉換 |
03/23(三) | VLSI作業的D-latch、D-flip flop、multiplexer的layout |
03/24(四) | VLSI作業的AOI22、一對tristate inverter的layout |
03/25(五) | VLSI作業的AOI31與\(Y = \overline{(AB + C) \cdot D}\)的layout、VLSI作業的3 to 8的decoder的HSPICE模擬驗證 |
03/26(六) | 去清大新思工作坊熟悉ARC EM9D的開發流程 |
03/27(日) | 訊號系統的在時域上計算convolution |
2022上一段總結 | 工數一的一階ODE、二階ODE求解;數位通訊的機率與隨機程序複習、WSS經過LTI系統後的響應;工數二的Fourier Integral;VLSI作業的3 to 8 decoder |
目前選課狀況為下禮拜要加選數位通訊、搶軍訓、抽通識志願的籤,與想辦法加簽軍訓,在不衝堂的前提下,最多可以加選到3堂軍訓,這樣今年暑假當兵可以多抵6天的兵役。
第一堂的數位通訊先介紹導論 - 現代通訊都是數位通訊,這是因為數位通訊比起類比通訊的還原度還更高(robustness)、數位通訊可以對訊息進行加密、低成本的DSP晶片。數位通訊的架構方塊圖如下,會考名詞定義,重點是source encoder會盡可能進行資料壓縮,拿掉不必要的資訊,而channel encoder會有規則性加上資訊,偵測或更正傳送過去的位元錯誤,增加接收訊號的reliability。
再來是複習機率,這邊我也另外看了交大陳伯寧類比通訊OCW(補充教材),另外可與上學期所學做對照,參見2021下三段日記 12/28(二)。
機率有三大公理(Kolmogorov axioms),分別是
公理是理所當然的,不須證明的,舉例來說非歐氏幾何的公理是兩條平行線不相交,這是不需要證明的公理,可以想成這是這個空間的"遊戲規則"、"體系",要玩遊戲就必須遵守這個世界觀的規則。就工程上而言,我們只會討論符合實際生活情況的公理,而不會探討純數的公理。藉由做很多次的隨機試驗,可以得到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 |
參見2021下三段日記 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*} \] 參照知乎,定義取共軛的原因,是因為訊號是複數的話,表示能量直接相乘會造成相位相加錯亂\(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)\) | 目前的訊號對一開始測量訊號的影響會隨著時間增加而減少。 |
實在是太多數學了,看到後面有點反胃,明天想改讀訊號與系統,改天再重看一次影片,加深不熟的觀念,包括以下是今天所學得知識點,但沒有打在日記內容。
大學部的IC設計有3門課,先備知識為邏輯設計、計算機組織、電子學一二三、基礎程式與熟悉Linux環境。
課名 | 開課時間 | 內容 | 修習狀態 |
---|---|---|---|
intro to VLSI | 二下邱瀝毅、蔡建泓 | 前半數位、後半類比,提取後面2門的基礎內容。 | 已修習。前半做影像彩色轉換灰階與做簡單的CNN提取影像輪廓;後半由於疫情只有畫到NAND gate就結束了。 |
VLSI system | 三上李昆忠 | 數位 | 未修習。由於李昆忠教授要退休,從去年開始(110-1)沒有開課。 |
VLSI circuit | 三下張順志 | 類比 | 目前正在修習。 |
參照今天上課內容與PTT,數位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學習,由於以前高二上考過日檢N3了,想選日文課當作刷分通識課與複習以前高中學的日文。我一開始是直接選成大日文最高的日文(六),想看看在教的內容,內容沒有想像中的難,為N4/N5的基礎語法,不過在得知二外轉通識的學分沒有上限的規定,加上中午需要參加meeting,所以我想改選日文(四),這樣我可以從日文(四)修到日文(六),總計3堂課6學分,因此扣除日文能有的6學分,我還剩6.5學分的通識課。
不過畢竟日文是我5年前學的,很多東西都忘記了,所以整個下午跟著老師與自己額外複習重點基礎語法。
關於三下的專題,以下幾點觀察,實在讓我很徬徨。
綜合以上幾點,我覺得這個lab的大學專題生的風氣自由,適合有明確目標,進lab就能直接跟碩班接計畫的人,不適合我這種什麼都不懂、程度差的人。我很希望能有個題目或方向,不需要手把手教學,但能叫我要做什麼,舉例來說這禮拜指派我要做個二階OP放大器、做振盪器電路之類的那種有目標的感覺,就是平常修實作課的那種感覺。
之後問了其他有明確目標加上與IC有關的實驗室專題生,但好像都滿了,這實在讓我很徬徨。我有個想法,既然考研的書審成績幾乎都看系排趴數,那我乾脆不要做專題了,修一些大學部或是碩班的實作課,還比較有目標,也有實質性成品和修課分數的證明,像是二下修的超大型積體電路和三上修的單晶片一樣。
我實在很徬徨,系上又沒有認識的學長,在網路上問了別校做DL的大四學長,他給我的回應是
專題的東西會比較有挑戰性,通常是比較新的東西,甚至可能可以發paper的那種;實作課就是按步就班的去把助教做過的東西再做一次。
通常都要做一個專題會比較好,不然申請碩班的時候會有劣勢。
不過我加的這個lab三下專題應該是參加比賽,而有個lab三下專題是直接修碩班的實作課,讓我搞不清楚所謂專題的定義。像是有個lab是做混訊的,他們三下專題就是修一堂課"數位電源控制電路與系統實作專題",我想說我就一起修,而四上就修資工系的C#/unity實作課,四下修個寫web的實作課,五上準備考研,這會是最好的選擇嗎?我不知道,明天再看看那堂"數位電源控制電路與系統實作專題"如何,再決定吧。
如2021新思科技ARC盃AIoT設計應用競賽需要使用TensorFlow,TensorFlow是一個機器學習框架,所以我目前學習目標為Python的基本語法與機器學習入門。找到台大李宏毅2021年DL課程 - 首網頁、B站搬運、逐字稿、2019年筆記。
機器學習就是讓機器具備找一個函式的能力,但這個函式非常複雜,不是用手可以寫出來的方程式,因此需要憑藉著機器的力量,把這個函式自動找出來,這件事情便是機器學習。而隨著要找的函式不同,機器學習有不同的類別
機器學習找這個函式分為3個過程。
- argument(arg) 實參
foo(2)
- parameter 形參
void foo(int i){//ToDo}
一種optimization的方法叫做gradient descent,方法為
gradient descent會有local minima的問題,但這是這不是真實遇到的問題,而gradient descent致命的缺點也不在此。
早上上"數位電源控制電路與系統實作專題",這是蔡建泓教授開給要進入他們lab的先修課,主要技術都是掌握在外國大廠,在台灣做最好的公司是立錡(已被聯發科併購,成為所屬子公司)。電源管理IC(PMIC)可以想做是一個controller,控制電路上電路電力分配的元件,因此需要先了解你所要"控制的對象",不然就不知道"控制的對象"有哪些問題需要解決,因此需要修習電力組的課,像是三上的電力電子學,而關於控制理論為三上的必修課自動控制(在成大叫控制工程)。
這堂課PMIC實作與系統組的關係比較為 - PMIC需要了解系統組(電力組)的供電電路元件,才能知道要如何控制,而系統組不需要了解個別元件的原理,只需要會買顆PMIC,看他datasheet中的SPEC、一些使用要求,會用即可,這在我三上時修習單晶片有深刻的理解,參見2021下一段日記,傳統元件常見的傳輸協定脫離不了UART/I2C/SPI,基本上了解這些傳輸協定和會看個別元件的datasheet,而不需要了解內部元件原理,這就算是做系統的人所探討的範疇吧。
課程前半部是教授授課講升壓降壓電路(buck–boost converter)、Flyback、功率因數修正電路(PFC)。自己事後查了一下,升壓降壓電路是上學期修單晶片有看到科普影片,利用電感器儲存磁場的特性實現升降壓,flyback是升壓降壓電路拓撲結構下,在升壓降壓電路加上變壓器(電感),獲得更大電壓轉換的彈性,這是在升壓降壓電路低的duty cycle無法實現的。
課程後半部是實作課,MATLAB / Simulink模擬與FPGA實現,要描述數位電路的行為,像是各個function block的布線,因此需要具備Verilog程式基礎,就是二下的超大型積體電路。
下午的量子物理,前半是陳光胤(中興物理),後半是高國興,由於是第一堂課所以講了比較概念性的東西,一切都是從20世紀無法用牛頓力學解釋、未解的"黑體輻射"問題開始。
年分 | 事情 |
---|---|
1900 年 | 卜朗克發現卜朗克常數 |
1905 年 | 愛因斯坦發表光量子說、特殊相對論、布朗運動 |
1911 年 | 拉塞福散射實驗 |
1913 年 | 波耳原子模型 |
1914 年 | 密立根實驗證實光電效應 |
1925 年 | 海森堡的矩陣力學 |
1924 年 | 德布羅意的物質波 |
1926 年 | 薛丁格的波動力學 |
1927 年 | 海森堡的測不準原理 |
1948 年 | 費曼的路徑積分表述 |
這些內容其實就是高中選修物理最後幾章與選修化學原子軌域(包立原理等)的課程,當初在準備大學指考時,也是讀到這邊很想深入學習,覺得量子物理很有趣。(雖然最後指考物理只有剛好考到剛好頂標75而已,上不了平均分數80分的成大電機)
選課方面是這兩課都棄選 - 棄選PMIC是因為我想說還是留在原本lab參加比賽,加上我沒有修習電力組的課;棄選量子物理是因為我沒有要走相關的組別,雖然高中的我對量子物理曾經有興趣,但那終究只是科普性的理解而已,要討論到具體建立數學的方程式、"定量"分析 - 工程數學、線性代數等數學工具,我不覺得我有弄的很熟。
總結來說,就2022上寒假日記選課計畫做修正為
學科 | 學分 | 類別 |
---|---|---|
工程數學(二) | 3 | 必修 |
訊號與系統 | 3 | 選修 |
數位通訊 | 3 | 選修 |
VLSI電路設計 | 3 | 選修 |
通訊實驗 | 1 | 6選3實驗 |
專題(一) | 2 | 選修 |
學科 | 學分 | 類別 |
---|---|---|
日文(六) | 2 | 二外(3/4後需要申請轉通識) |
光電科技 | 2 | 通識 |
第3階段志願加簽通識盡可能選。
三個0學分的軍訓,抵今年暑假6天當兵。
從上大學以來,我看到有太多太多人說成績和校名系名的重要性,參照2020年台綜大A10轉學考心得與一年後的回顧,這也是為什麼當初我拚了死命要離開中興電機,因為所謂"四大電資是入科技業的基本門檻",花了一年半的時間第一次考試 - 學測落榜、第二次考試 - 指考落榜、第三次考試 - 轉學考,最後運氣好,擦邊球備取到四大電資的底。
轉進來成大電機之後,很喜歡修一些硬課、實作課、把課表填得滿滿,如果能力很好、成績不錯就算了,重點是沒有能力,成績都是中間偏下,因此我開始降低學分數、選擇loading輕的課,從二上25學分、二下21學分、三上18.5學分,真的不要為了想要準時畢業,成績而沒顧不好,這樣真的是本末倒置,寧可延畢多一年,只要能顧好成績所有犧牲都是值得的。
而第二點是修計算機和IC實作的課或是做相關的專題,不代表能進這兩個組,當然如果在"能維持成績"的前提下,還是可以修習這方面的硬課,還是老話一句成績才是關鍵,像是我專題加的是做計算機架構的實驗室,我很確定我的系排是上不跟計算機(資工)或IC相關的任何組別的(需要系排30%以內)。引用今天看到郭泰豪博班的學長D卡發文。
雖然這樣說很殘酷,但是這就是當下的現實情況。既使你"超大…"或是"VLSI電路設計"修了100分,只要你推甄或考試上不了相關研究所也沒有機會再繼續深造。因此,竊以為專注於把成績提高是最重要的。
反正還是回歸到當初每日打日記的本質 - 平常心面對,把自己作為學生該做的本分做好就好了,了解學校教的基礎科目、讀熟教授的上課講義、每周作業好好寫、多練習原文書的習題、能要得到考古題就盡量要來練習,這些東西每樣能達成就不錯了,而對這學期來說,基礎中基礎科目就是工程數學(二)與訊號與系統。
雖然昨天比較早回宿舍,但半夜還是睡不太著,把這幾天考慮的一些點跟lab的學長說,具體的回應整理如下
看起來我規劃生涯發展的基本方向應該是沒問題,三下準備比賽、四上做專題,而三下、四上、四下成績維持在一定水平,五上全力考研,這應該是我能想到以目前成績與修課loading來評估,最好的solution了。
以前我是用wsl終端機跑python,但每次光是載套件就花不少時間,因此今天改用Jupyter Notebook格式(本質上是JSON檔案,副檔名為.ipynb
),有兩個常見的基於web的IDE,一是Jupyter Notebook(快捷鍵)、二是Google Colab(快捷鍵),後來選擇後者,因為可以用免費的GPU加速,又可以結合Google Drive服務。
很喜歡Jupyter Notebook格式一點是因為 - 一個cell的markdown與latex解釋與下一個cell可以直接跑程式測試,測試結果又直接跑在程式的下面,如此以來,在接觸到別人的code就能快速理解各段程式的意思。
Colab執行shell script的指令跟平常用unix-like的指令相同,使用驚嘆號!
會開啟一個shell,執行完後並終止(kill),因此涉及working directory移動的cd
須改用%
,可與之前2021下暑假日記 8/15寫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,matplotlib比起MATLAB畫圖更加有彈性,可以直接改軸、圖例等的位置,又不需要像MATLAB光是開個程式就花了老半天,加上matplotlib的interface本來就是仿造MATLAB,兩者API相似,讓我有點心動,之後我畫圖都改用matplotlib好了。
之後進度是要寫出第一次regression的作業,kaggle上的deadline是下周三(02/23(三))晚上,不知道我這段時間有沒有辦法熟悉python這些套件和解題思路。
昨晚騎腳踏車要回宿舍的時候就覺得很冷,尤其是雙手需要握住腳踏車的握把,會露在冷空氣之中,早上就去買了手套保暖,今天應該是入冬以來最冷的一天,氣溫攝氏9度、濕度95%。
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。
而再推廣至取多個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-反向传播與李宏毅 DL課程,當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需要把下一層的偏微分求出,需要不斷做recursive call;反之做backward pass是一個求值的過程,節省stack的空間,因此從最後一層hidden layer往前算是比較有效率的。
早上又冷又濕,還下個小雨,前一天又只睡4個小時,要起來上早八的數位通訊,內容為隨機變數、CDF、PDF、joint distribution、statistical average、correlation、各種probability distribution,簡單來說就是random process之前的所有機率內容,這段時間我要繼續複習機率了,還有很多東西是之前漏掉的。
下午軍訓課是國軍弟兄來招募人才,正好是我補眠的好時間,下課後繼續回宿舍補眠,晚上處理了一些雜事,課程上這學期是環繞通訊相關的數學,修了必修工數二、訊號與系統、數位通訊、6選3實驗的通訊實驗,這幾科感覺就要花費我大量時間研讀了,另一件事情是我專題分組的問題,原本想找我有個程式很強的朋友,不過他寒假早就分好組了,所以現在我找不到組員,而且就算找到後,又不確定對方的程度和投入度為何,老實說我想自己一個人一組,但比賽就是規定2到4人一組。
通識課線上授課,這是一個很好的授課方式,因為我可以做自己的事,等到聽到要小考或是點名再切螢幕即可,我研究了下學期宿舍的抽籤公告,而我如果延畢的話大四生大五不能抽宿舍,但可以排補宿,基本上我現在住的勝一一定都排的到,因為沒有人想住勝一,宿舍太破舊了。訊號與系統探討時在連續與離散時間下,訊號作圖,可以發現當頻率越大,訊號震盪的幅度越大,不過我也不是很懂,等到作業出來會寫才是關鍵。
晚上讀數位通訊的機率,基本推導需要不斷複習,參見2021下三段日記 12/29(六),可與之前所學內容比較。
\[ \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可以彼此反向成立。
今天拿到Synopsys ARC EM9D的開發版,看了環境設置教學,有點麻煩,感覺要花不少時間研究,由於這不是主流開發版,沒有像之前Arduino和ESP32有強大的開源社群可以查詢,頂多只有官方doc可以看而已。
對矽摻雜3A族為P型半導體;對矽摻雜5A族為N型半導體,對一PN介面電子會從P區(電子)擴散N區(電洞),一直到電子擴散受力與電子受力達到力平衡,對一MOSFET需要設計是兩個逆偏的PN junction,body端接最低電位,因此在靜止時不會有電流流通,而以NMOS為例,當施加正向電位時,gate端累積正電荷,會吸引p substrate中帶負極的電荷向上移動,形成通道,使電流形成迴路導通,詳細要去複習電子一內容。
這堂VLSI電路課幾乎都把MOS當成電子控制開關,假設給\(\rm AOI22\)電路
當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個步驟,為一系列的減法與加法工程。
光罩可定義電晶體與布線的位置,可以將各層光罩畫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,來產生歐姆接觸,降低勢壘高度與寬度。
早上日文課上一些基本語句,不過我沒課本,只能看老師講到哪一例句,跟著看到哪一例句,之後下一堂課看能不能厚臉皮跟別人要課本,拍到我iPad上存圖檔作電子筆記,不然要特地花400元買一本對我幫助不大的書,實在花不下去。
下午軍訓課,教官在放烏克蘭與俄羅斯的歷史淵源,烏東、克里米亞主流民意是親俄派,而烏西政權易手多次,較複雜,但在俄羅斯的威脅下,希望尋求北約西方國家的軍事支持,主流民意是親歐派。
還真沒想到今天俄羅斯會入侵烏克蘭,在現代好幾次軍事危機都是以"恫嚇"為目標,畢竟這種大規模軍事行動,對於經濟與民生來說是一大重傷,但這次俄羅斯好像什麼都沒有顧忌選擇打,看到有人分析是普丁想重建蘇聯夢,希望能在自己有生之年有重大的歷史定位。
歐美各國要對俄羅斯進行經濟制裁,我是覺得也沒有人敢真的動手,歐洲都極度仰賴俄羅斯提供石油、天然氣等能源,美國也仰賴俄羅斯金屬鈀、氖,烏克蘭的農業也佔世界糧食的一大比例。今年國際市場通膨已經夠嚴重了,制裁下去,國際原物料上漲,聯準會升息抗通膨,反倒又牽制經濟復甦的力道。現在看起來我媽買房子真的是明確的選擇,畢竟房子本來就不是拿來住的,是拿來投資抗通膨的,這波打起來,經濟制裁真的下去,物價又要再漲一次了,買房子才能保值抗通膨。
最近都在跟一個巴友聊天,他很喜歡一個女生,一開始看他們的聊天紀錄,我覺得他好像有機會,不過之後觀察這個小團體之間的一些互動關係之後,覺得他只是單方面暈船而已。我想也是,會跑來找一個完全在不同交友圈的人問,感覺就不是那種夯哥會做的事情。
我覺得無論是女生還是男生喜歡的是 - 那種在團體聚會中炒熱氣氛,個性是很開放的,跟誰都聊得起來,既然在團體聚會讓大家印象深刻,女生甚至是男生就會想要尋求後續的單獨私聊;反之,如果在聚會就不怎麼主動,後續找特定女生猛烈私聊,只會讓女生覺得這個人很噁心。
以我觀察這個小團體大概判斷出有兩個會炒熱氣氛的核心人物,這類人就是具有男、女生也會喜歡的人格特質。
像我,就覺得自己很不適合參加那種聚會,在國中、高中到大一嘗試想融入那種大型聚會,想變得"合群"一點,做了很多嘗試與改進,但後來漸漸發現自己個性就不是那種夯哥,對於很多事情,我用太過於理性、近乎冷淡的態度去面對,講難聽一點就是沒有同理心,很多想法過於自我、執著,又追求完美,這些人格特質顯然對人際相處是不討喜的,所以平常我會嘗試包裝這些個性,避免給不認識的人帶給不好的印象,但這又讓我顯得很不自在。
第一周在複習跟通訊相關的機率與機器學習初認識,第二周的禮拜一到四老實說沒什麼進度,這陣子也積欠工數一些進度,因此打算重啟我工數複習計畫,從工數一複習到現在工數二的第一次段考範圍,今天加上228連假的四天時間,希望能複習到Laplace的章節。補充上課內容可看喻超凡書籍勘誤表與翻轉教室。
舉例來說,下列方程式為2階3次ODE。 \[ (\frac{d^2y}{dx^2})^3 + (\frac{dy}{dx})^4 + y^5 = x \]
ODE的解分為3個
解的幾何意義為通解是一個曲線族(曲線的無窮集合),特解為曲線族的某一條曲線,異解為通解形成曲線族的包絡線(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\)
當藉由判斷式\(\frac{\partial M}{\partial y} = \frac{\partial N}{\partial x}\)判斷為非正合一階ODE時,若存在一函數\(I(x, y)\)乘上後,會變成正合一階ODE,稱此函數為積分因子(integrating factor),需要注意的是積分因子不唯一,求解積分因子有2個方法,如下
grouping method
公式法
一非正合一階 \(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就是在補足基礎的數學能力。
一階一次的ODE解題的方式只有一種 - 化成正合ODE,但不同於前面grouping method與公式法,這裡積分因子找法是固定、有一定脈絡可以遵循的,所以我們才會給他一些新名字,分為三大類 - 分離變數法、一階線性ODE、特殊解法。
一階線性ODE
標準式為
\[
\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*}
\]
變形的一階線性ODE
Bernoulli's equation
標準式為
\[
\frac{dy}{dx} + P(x)y(x) = Q(x)y^n(x), \; n \in \mathbb{R}
\]
\((\frac{dv}{dy})\frac{dy}{dx} + P(x)v(y) = Q(x)\)型
上式為後者\(v(y)\)經微分後是前者\(\frac{dv}{dy}\),例如\(\sin y \frac{dy}{dx} + P(x) \cdot \cos y = Q(x)\)。
綜合前三天(02/25(五) - 02/27(日)的內容,一階一次ODE的解題流程如下
一階高次ODE解法的解法就是將ODE降次成一階一次ODE,再由前面的觀念求解,而降次就是做因式分解以及特殊形式ODE - Clairaut's equation。
一階ODE的應用有求解正交曲線,解題有3步驟。
一階ODE解的性質
常見的不連續點有分母為0、對數函數中真數為0的點。
在微積分中,函數\(f(x)\)在\(c\)點連續,需要滿足以下三個條件
- \(f(c)\)存在。
- \(\lim_{x \to c}f(x)\)存在。
- 極限值等於函數值,即\(\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.
今天訊號與系統授課內容為2022上寒假日記 01/28(五) - 01/30(日)內容,再加上離散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*} \] 很直觀的物理意義為
晚上做了很多儀容的雜事,每隔一個月我都會這樣,送洗衣服、剪頭髮、剪指甲、刮鬍子,讓自己不要這麼邋遢,不然每次一不注意鬍子就長得跟山頂洞人一樣。
第二周VLSI是講製程,因為在layout時,有很多元件可以選,我們需要了解這些元件的特性與功能,相關知識點很雜,加上我沒有修過製程相關的課程(半導體物理),也不是聽很懂,感覺要等到下禮拜第一次作業出來才能親身體會,不然現在聽課都只是紙上談兵而已。
latch-up問題
在實際的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
為了使MOS開關速度加快,會把oxide做薄,使\(V_t\)降低,但這又會導致gate端會有leak current或是如果垂直電壓太大,MOS會被擊穿,因此會可以對critical path用低\(V_t\),對I/O端用高\(V_t\),但這樣的代價是要做多層光罩,因為是不同的摻雜。
到現在第三周,還是不確定自己不修web、OS,而改修VLSI是不是一個正確的選擇,不過可以知道的是現在選課也改不了了,而且"成績好壞"比起"選哪些課是不是符合自己興趣"還重要,這學期我就好好聽課、把作業寫好就好。
繼去年五月停電,今天全台大停電,我是不知道宿舍網路有沒有斷網,不過我的路由器一旦沒電,是鐵定沒網路可用的,短暫的停電對我影響不大,不過停網影響可大了,看課程公告、看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
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(三)中山電磁學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*}
\]
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(二),當溫度升到更高溫時,晶格會震盪,因此晶格有效面積增加,會造成電子容易撞到晶格,mobolity下降,因此得出結論是電子、電洞的mobility : 低溫 > 高溫。
早上通訊第一次實驗實作AM調變TX端的電路,有兩個部分 - Colpitts oscillator、mixer電路,下午順便完成結報。
Colpitts oscillator
藉由一個電容與電感所形成的LC電路,電能與磁能互相轉換就可以形成震盪電路,頻率為\(\omega_0 = \frac{1}{\sqrt{LC}}\),但由於真實世界中元件有內電阻、導線有電阻會產生能量損失,因此實際RLC電路所形成正弦波的震幅會隨時間decay,解決方法是把LC電路接到\(\beta\)回授網路,藉由不斷外加的能量與回授機制藉此形成穩定的震盪器,電路結構上分為Colpitts oscillator(拆兩電容)與Harley oscillator(拆兩電感)。
假如電路操作的頻率夠低,可以忽略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電路
分為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的一些技巧與準則。
VLSI的layout上製程限制的rule
參照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訊號,讓不同功能的電路之間不會互相影響。
推導\(I-V\)曲線
首先考慮NMOS的triode區,條件有兩個。
定義係數如下
製程互導參數 (process transconductance parameter) |
MOSFET 互導參數 (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)
當\(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*}
\]
也與source和drain的電壓有關,趨勢來看,當gate與source和drain的電壓差值越大,intrinsic capacitance也越大。
晚上寫訊號與系統作業,需要注意的是參照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)} \]
原本想說先讀下下禮拜進度的VLSI、先寫deadline是禮拜二的訊號與系統作業,應該不會花太多時間,但沒想到幾分鐘的影片、幾題作業就花掉我大量的時間完成與理解,一直拖到半夜1點開始寫數位通訊作業,一直寫到隔天早上5點,準備早八的通訊每周小考。
這種從作業出的每周小考一定要把握好,今天第一次小考內容是CDF、PDF性質的變化題,之後數位通訊成績將會固定公布在數位通訊 Grades,上課內容是random process,這算是我第三遍讀了,第一遍是三上通訊原理,第二遍是三下開學初,參照02/14(一),但還是有些觀念需要釐清。
Order Statistics(n階統計量)
Introduction to Order Statistics為隨機變數的統計量,但現在是講隨機程序,對隨機程序來說,Order Statistics定義為
stationary
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。
早上上完數位通訊後,回宿舍倒頭就睡,下午一二節軍訓課睡掉,一直睡到三四節通識課的最後半小時才起來,急忙跑去生科大樓上通識,還好助教人蠻好的,讓我紙本加上逼卡點名簽到、完成小考,這樣就沒有任何被扣分的部分,小考內容為高一生物,雖然看起來沒有很難,但有些基本觀念我都忘了,還是需要複習。
上午去圖書館影印室電子掃描剛買來的二手日文教科書,彩色掃描B4尺寸共計42頁,之後再用Acrobat的OCR功能將掃描圖像的PDF檔轉換"可搜尋的日文文字",方便之後iPad作筆記,該書二手價加運費290,看之後能不能用同樣的價格甚至更高的賣出。
下午上訊號與系統,知識點如下
上午VLSI課,有解答到之前的一些疑問。
下午和我那些同學去吃麥當勞,他們都很強,學期平均在90分以上,系排落在30%以內,有想推台清的類比IC或是台交的數位IC,我似乎跟他們是不同世界的人,融不太進去這個群體,反正我就當聽個課程心得,順便向他們請教一些基本的課業問題。
這禮拜是第4周日文課,這禮拜我終於有課本比較知道老師在講什麼,之後還需要補前幾堂課的進度和練習習題,內容為大家說日語L20的會話、練習C、單字與L21的練習A。
延續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\)判別失敗,無法知道線性獨立或是相依。
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來說並不是解,因為帶入不滿足ODE。
延續03/04(五)通訊實驗AM調變TX端的電路,這次要做RX端的電路,共有以下5個部分,注意參照03/05(六),\(C_D\)是decoupling電容,並聯於電源供應與附載(load),功能過濾AC雜訊以穩定DC電壓。
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等組成的驅動放大電路輸出夠大的擺幅來驅動喇叭。 |
常係數齊次解從想法可從一階常係數\(y'(x) + ay(x) = 0\)得解為\(y(x) = ce^{-\alpha x}\),因此高階常係數齊次解ODE推測應該為其解或是線性組合,也可觀察出一個獨特的特性 - \(e^x\)微分後還是自己。令\(y = e^m\)帶入原方程式並令\(e^{mx} \neq 0\),求解得特性(輔助)方程式。
倒車入庫 - 需要會由解反推特性方程式 \(m^2 + am + b = 0\)會有兩解\(\alpha, \beta\),故\(\begin{cases} \alpha + \beta = -a\\ \alpha\beta = b \end{cases}\)
以下是目前VLSI作業資訊
CIC教室的座位也不多,可想而知的是最後一個禮拜可能會一位難求,因此今天第一次來CIC教室,先做前置教學。
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 |
將畫好的電路圖新增cellview
,繪製自定義圖形,有點像把電路封裝成function block方便之後調用,最後選擇export -> CDL out
,將繪製的圖形電路輸出為描述電路的HSPICE語法(*.cir
檔案)。
需自行寫一個給定刺激源去測試電路功能的testbench(*.sp
檔案),testbench中匯入製程檔cic018.l
與描述電路檔*.cir
, HSPICE輸入則為testbench檔,進行模擬
hspice –i input.sp-o output.lis
輸出檔案 | 內容 |
---|---|
*.lis |
模擬結果的文字檔,若模擬失敗可查看此檔案進行debug |
*.ac0 (AC),*.sw0 (DC),*.tr0 (tran) |
模擬波型檔,可以使用WaveView這個軟體看波型結果 |
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 |
***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`是帶表結束一個子電路
開頭字母 | 代表元件 | 開頭字母 | 代表元件 |
---|---|---|---|
C | 電容 | Q | BJT |
D | 二極體 | R | 電阻 |
I | 獨立電源(電流源) | V | 獨立電源(電壓源) |
L | 電感 | X | 呼叫.SUBCKT 的子電路 |
M | MOSFET |
\(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(五)n階常係數線性ODE的齊次解線性相依的修正方式一樣。
\[ \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} \]
由於線性非齊次解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分布。
\[ \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*} \]
數位通訊上ergodic process、白雜訊、WSS經過LTI系統後的響應。ergodic process請複習2021下三段日記 01/02(日);白雜訊任意取兩個隨機變數不相關,因此\(R_W(\tau) = \frac{N_0}{2}\delta(\tau)\),其PSD不隨時間改變\(S_W(f) \triangleq \frac{N_0}{2}\),兩者互為傅立葉轉換堆。
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)\)。
特徵函數(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由來
可視為二項分配的\(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)
一階動差是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)
從平均數\(\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)\)相同。
在2022上寒假日記 02/07(一)為在時域上(連續)視覺化convolution的物理意義,而今天是探討離散下convolution的物理意義,也帶到內積大小判斷相似度的觀念。
因此可知歐氏空間與函數空間的內積為 \[ \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時,輸出才會有值。
早上VLSI上課內容一樣是回答線上非同步課程的內容,這部分我在03/06(日)已看完,今天上課內容重點是DIBL與GIDL的補充。
DIBL的成因如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(三)已經拿到開發板,但到現在環境都還沒架好,因為我重心還是放在課業,加上下禮拜要考工數二與下下禮拜要考訊號與系統與VLSI作業的deadline,最近我時間也不太夠。
今天開始看工數二教授的影片,這次一段內容為傅立葉轉換,今年寒假時上訊號與系統我已經推導一遍,不過還是有些細節還沒學。
參照2022上寒假日記 02/04(五),是從Fourier Series推導出complex Fourier Series,再繼續推導到Fourier Transform;而工數二則是從Fourier Series推導出Fourier Integral,再繼續推導到Fourier Transform。
由2022上寒假日記 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有"變通"的方法。
由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的定義 - 可將函數拆成有限個區間的子函數,各個子函數與其一次微分連續。
早上日文課接續03/10(四),語句大同小異,不過需要注意
下午軍訓課播防災影片,演講很精彩的,我看得很投入,大致總結以下幾點。
延續昨天工數二進度,如同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*} \]
參照2022上寒假日記 02/04(五)傅立葉轉換的property,推導過程都是做變數變換,再加上以下幾個性質
早上通訊實驗是熟悉射頻分析儀的使用,就照著助教和講義指示操作一遍,測量內容如下,需要注意在測量之前要做校正 - 分別接上Cal-kit的S(short)、L(load)、O(open)做校正。
假設一有限頻寬限制在\([-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(三)定義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) \]
這個禮拜一二在讀數位通訊、禮拜三四五在讀下禮拜要考的工數二的Fourier Transform,VLSI的進度只停留在03/12(六)的環境教學而已,今天完成VLSI作業第一題A小題用Virtuoso畫出NMOS、PMOS、transmission gate的電路圖,並用HSPICE驗證,透過波型觀測3者之間的優缺點。
下禮拜要整天去CIC教室做了,不然這個進度很危險,先把Virtuoso電路圖和HSPICE驗證跑完,之後最花時間的是layout,layout技巧是先畫好inverter、transmission gate的基本單元跑完驗證,之後再把這些子單元conbine起來,反正第一次作業也沒要求合成面積和功耗,先求有不求好。
早上把工數二傅立葉轉換的講義習題讀完一遍,之後晚上寫數位通訊作業,從晚上11點開始寫,一直寫到隔天5點,用到的觀念蠻多的(如下),也順便複習上禮拜工數二讀的內容。
前幾周都在複習基礎數學,這周開始進入數位通訊的內容,重點是設計接收端的matched filter與設定一個判斷0和1訊號的threshold,使判斷位元的錯誤率能降到最低。
今天考工數二,內容是傅立葉積分與轉換,有4大題。
第一題是講義上的證明題,當初花了不少時間反覆證明,也打在日記中;第二題是考古題;第三題我傅立葉級數積分區間寫錯;第四題由於積分式複雜不確定是否計算錯誤,最後兩題都是原文書後面的習題,可能是因為內容較簡單,只需要帶傅立葉積分公式即可,因此不在教授勾選的範圍,但我練習不夠,對於此類題型掌握度和積分技巧不夠熟練,二段時要以此為戒,練習更多原文書後面的題目。
訊號與系統下禮拜要交作業與考第一次段考,延續03/08(二)今天上課的知識點如下
上到第六周下來,老實說我不太喜歡這種授課方式,花了一兩周的時間講了一個小小的觀念,然後我還不一定聽得懂,可能是我寒假時看了交大OCW陳永平教授精彩數學推導與對於系統本質的詮釋教太好,而讓我有嚴重的落差吧。
不知道是不是我的程度太差的問題,之前機率和現在訊號與系統這兩個基礎科目,我上課都不是聽很懂,自然也不會對這幾個科目產生興趣,但在寒假和開學初比較有空的時候,看了2022上寒假日記 02/12(六)陳永平對於ODE的齊次解與特解的詮釋、02/14(一)陳伯寧對於隨機變數的詮釋,我內心其實是很澎湃而激動的,覺得數學實在很有趣,可以用數學去分析一個現實中的行為並深入去做計算,對我來說這都是過去從未想過、很"新奇"另一種思考問題的想法。
今天早上VLSI上課前助教在發白紙,我快嚇死了,會發白紙八成是要突擊小考,然後好死不死我這週沒看影片,因為我VLSI作業一的進度落後,所以想等之後寫完作業再補影片。
考前我死命看講義內容,死馬當活馬醫,教授卻對大家冷笑地說 : 就算你們看講義也是沒有用的,確實在是如此,考試內容是考影片中教授很突兀地講了哪兩個跟教學無關的字? 我左思右想 - 是"噢乾"嗎?應該不是,教授不可能講這麼粗魯的話;那會是"哈啾"嗎?教授會不會上講到一半打噴涕?
我十分慌張,不停左顧右盼,因為這堂課小考也考沒幾次,我要因為兩個字沒寫出來,而被扣分也太虧了吧,當教授一聲令下要收考卷,我還是緊握住寫上名字但卻是空白的紙,想要最後的掙扎,當下想出最合適的答案。就在十萬火急之刻,奇蹟發生了!坐在前面素不相識的同學偷偷給我看了他寫的答案 - "請進",原來是教授之前不知道錄影可以暫停,所以都一鏡到底,錄到一半時,謝明得教授剛好在敲門,所以錄到了請進兩個突兀的語句。
可能是這周教學內容較簡單,教授閒聊居多,講到一些科技業的暗黑面(現實面),當然也不知是不是真的,就當故事是在聽,以前面板產業是台灣和南韓的天下,在台灣是奇美與友達的公司競爭的天下,後來2008年金融海嘯,奇美電子虧損嚴重,鴻海收購奇美電子改名為群創,鴻海一批高層人馬要進去奇美電子改組,引起奇美電子一部分內部員工的不滿,這批奇美電子的員工就被中國高薪招聘,當時中國遲遲搞了十幾年的面板而沒有下落,而在短短幾年飛速成長,之後就是台灣光電"慘業"的黑暗期。
當然奇美電子這批人馬也沒有所謂對與錯的地方,所謂"技術人才"關心的是技術,既然在鴻海收購後無法一展才華,那跑去當時還是處女地的中國一展心中抱負,能發揮自己的專業,貢獻一己之力,或許沒有比這開心的事情了吧。
下午一點吃完飯後,就去CIC教室做VLSI作業一,一直做到晚上11點,中間的軍訓課使用同步線上課程偷懶流程,這招還蠻管用的。
延續昨天畫inverter的layout,今天跑完DRC和LVS驗證,另外也畫transmission gate的layout,但是沒跑LVS驗證,而剛好我又把NMOS和PMOS畫反,還好在之後及時發現,也沒卡住太久,總結今天的進度為
.18
製程(\(L = 0.18 \mu m\)),但兩者NMOS的寬度不一樣,transmission gate是\(W = 1 \mu m\),而inverter是\(W = 0.5 \mu m\)。早上日文課上第21課例文、會話、練習C,其中會話是兩個大叔在聊足球比賽,練習"と言います"句型,而老師也預告之後清明連假要考日文期中考,應該就是把課本上的動詞變化與語句轉換背熟吧。
VLSI作業延續昨天進度,一樣是下午1點報到,一直做到晚上11點工讀生趕人為止,今天進度為完成AOI22與一對tristate inverter的layout。有別於前兩天的較"離散型"的layout,這次畫之前先做好草稿,而基本架構從上數下來,依序是VDD、PMOS、NMOS、GND,並想辦法讓diffusion不會斷掉,gate和contact、metal1和metal1距離壓到最小,讓整體電路比較密集。
中間又花了3個小時處理專題的新思工作坊要去清大的交通問題,考慮了以下三個交通方案,網路查詢和打電話詢問後,最後選擇高鐵。
交通 | 評估 |
---|---|
台鐵 | 台鐵最早6點多發車,乘車需要3小時趕不上。 |
客運 | 客運沒有台南到新竹的直達車,都只有台北到新竹的路線,而且就算是在台中轉運,時間一樣來不及。 |
高鐵 | 台南到新竹只要一小時,有限量的大學生75折的優惠票。 |
並規劃時間表,但事後發現當初錯估公車搭乘的時間至少需要40分鐘。
早上是射頻與類比通訊實驗的最後一堂課,之後就換數位通訊了。這次實作是傳輸線的阻抗匹配,首先給定一負載,使用網路分析儀測量附載的阻抗值,將阻抗值做normalization(除以傳輸線的特徵阻抗)後,使用Smith Chart這個工具繪製,將阻抗值拉至Smith Chart的正中心,以達到阻抗匹配,使電磁波經過不同阻抗下的反射比率能降到最低,經過網路分析儀測量也可以知道匹配前和匹配後反射係數明顯降低,得到上述驗證。
今天是做VLSI作業的第三天,由於CIC教室人數眾多,我一上完通訊實驗課就馬上去CIC教室,早上11點報到,一直做到晚上11點工讀生趕人為止,今天進度如下
AOI31與\(Y = \overline{(AB + C) \cdot D}\)的HSPICE模擬驗證與layout,兩者電路大同小異,題目給定一boolean function,解題思路如下
另外有幾個layout基本的觀念需要釐清
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,但佈線上一直卡住,之後還需要時間思考一下。
禮拜三到五這三天都一直畫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/20(日)像是loss function、overfitting名詞定義,不然我可能聽不懂他後面AI的開發流程。
wget dowlowd_link //下載
gunzip fileName.gz //解壓
tar xvf fileName.tar //解包
vim ~/.bashrc //編輯home目錄下的bashrc檔
新增下載軟體的環境變數export PATH=$PATH:$~/folder_path/folder_name/bin:$
。
make
make flash
make會去抓makefile相應的內容,並調用前面下載的客製化GCC編譯器,make
在這裡定義是會產生.elf
可執行檔(參見GCC與編譯過程)與*map
記憶體配置檔(觀念可以類推2021下三段日記 12/19(日))。
make flash
會把.elf
與*map
合併成*img
。
*img
是文件壓縮格式類似於iso鏡像文件,主要是用於創建磁碟的鏡像文件。img
格式通常用來壓縮光碟上的內容,後綴名為.img
的文件其實也就是鏡像文件(image)。由於.iso
只能壓縮CD或DVD,因此才發展出了.img
,與.iso
相比.img
所支持壓縮的文件更多,.img
可向後兼容於.iso
,如果是拿來壓縮CD或DVD,則使用.img
和.iso
這兩種格式所壓縮出來的內容是一樣的。
output.img
位於SDK資料夾下的tools/image_gen_cstm/output
路徑,使用MobaXterm軟體將WSL的檔案FTP至win10。device manager
確認接口是否讀取到。tools/HMX_FT4222H_GUI/GUI_binary
下的win10可執行檔HMX_FT4222H_GUI.exe
。HMX_FT4222H_GUI.exe
介面選擇Flash download -> Read ID,成功的話ID為ef/60/15
。output.img
,選擇programming燒錄程式。colab
train好model,把最佳化的weight存入*.tflite
。xxd -i model.tflite > model.h
將原檔存到16進制的C array中。*.cpp
做為對照組。我最大問題是搞不懂colab和開發板兩者做的事情,我的理解是事前先決定好要用哪個model(若SDK沒提供,就需要自己用C手刻),然後開colab
train出最好的weight值,並輸出model.h
,最後把這些最佳化的參數餵給這個開發板上的model。
今天寫數位通訊和訊號與系統的作業,熟悉時域上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(一)。
數位通訊作業寫到凌晨5點,但還是沒寫完,先把各題參考解答看熟,明天的每周小考分數拿滿,之後還需要補齊作業內容。
這一學期我的選課方向就是專攻數學,修了之前二下太忙而退選的工程數學(二)與之前沒修的訊號與系統,這兩科算是電機系很基礎的學科,接下來點數位通訊與通訊實驗,這樣算是把大學部通訊相關的課程補完了。最後一科是修VLSI電路設計,會修這門而不修作業系統,很大一部分原因是這個老師教的還不錯,加上有扎實的實作練習。
最後禮拜六去清大新思工作坊,老實說我不太想專注在專題比賽了,有別於Arduino和Raspberry pi有強大的開源社群可以查詢,新思這塊板子生態系有夠封閉,我跟官方索要板子和SDK最基本的datasheet, pinout, API文檔,完全都沒有,這真的很過分。
總結一段來說蠻滿意的,學到蠻多令我感到新奇的知識,而時間規畫方面第六周有點問題,在趕VLSI作業進度,這部分要記取教訓,接下來這個六天清明連假,教室開放的話,要開始做VLSI作業了,不然那種趕作業和考試進度沒讀完的焦慮感實在太痛苦了。