System🚧
Filter
「濾波器」。函數,輸入訊號,輸出訊號。
電類科系的基礎課程內容,跟演算法無關,以下只做簡介。
filter / system
濾波器:函數,輸入輸出都是一道訊號。 系統:多變量函數,輸入輸出都是多道訊號。
finite impulse response / infinite impulse response
濾波器有兩種款式。 有限脈衝響應:沒迴圈=>輸入的加權總和=>輸入只取幾項=>有限 無限脈衝響應:有迴圈=>輸入與輸出的加權總和=>展開迴圈,變成取所有項=>無限
moving average model / autoregressive model
濾波器有三種款式。 移動平均數模型:輸入訊號的加權總和=輸出訊號 (all zero) 自迴歸模型:輸出訊號的加權總和=輸出訊號 (all pole) 兩種都用:輸入訊號的加權總和=輸出訊號的加權總和
z-transform / convolution theorem / zero / pole
z-transform:訊號=>多項式 convolution theorem:輸入訊號加權總和=>多項式乘法 convolution theorem:輸出訊號加權總和=>多項式除法 zero:分子多項式的根(多項式變成0)。 pole:分母多項式的根(多項式變成±∞)。 大家用示波器看zero pole,然後反向推理濾波器是什麼。
time domain / frequency domain
因為真實世界的訊號幾乎都是一堆波, 所以大家用傅立葉轉換,把訊號分解成波。 原本訊號稱作時域(座標軸是時間),傅立葉轉換之後稱作頻域(座標軸是頻率)。 值得一提的是,除了訊號可以這樣分解,濾波器也可以這樣分解。 濾波器弄成加權總和的形式,然後把權重當作訊號,拿去分解。 (因為z-transform和convolution theorem)
Fourier transform / Laplace transform
簡單來說,就是整數推廣成複數。 傅立葉轉換:振幅為1、頻率為定值、頻率呈整數倍數的波(整數)。 拉普拉斯轉換:沒有上述限制的波(複數)。 因為複數是通例,乍看比較厲害, 所以教科書很喜歡用拉普拉斯轉換,但是現實世界不存在啦。
frequency response / transfer function / gain / Bode plot
頻譜(spectrum)是各種頻率(frequency)的波(wave)的強度(magnitude)和相位(phase)。 一、濾波器的頻譜(權重做傅立葉轉換)。 二、輸出訊號頻譜除以輸入訊號頻譜(訊號做傅立葉轉換,再相除)。 兩者都可以得到各種頻率的波的強度變化倍率。 頻率響應:濾波器的頻譜。 傳遞函數:系統的頻譜。 增益:濾波器/系統,各種頻率的波的強度變化倍率。 波特圖:濾波器/系統的頻譜,畫成折線圖。
low-pass filter / high-pass filter
濾波器只保留低頻波、只保留高頻波。
band-pass filter / band-stop filter
濾波器只保留中頻波、只刪除中頻波。
Shelving filter / Butterworth filter
濾波器保留低頻波或高頻波;其餘的波,頻率相差越遠、保留越少。比較平滑柔順啦。 濾波器保留中頻波;其餘的波,頻率相差越遠、保留越少。比較平滑柔順啦。 Shelving filter其實有時域公式喔! http://www.cs.cf.ac.uk/Dave/CM0268/PDF/10_CM0268_Audio_FX.pdf
peak filter / notch filter
濾波器頻譜呈現一個尖峰、頻譜呈現一個尖谷。
difference filter / feedforward comb filter / feedback comb filter
延遲1刻 yn = xn + a xn-1 延遲d刻 yn = xn + a xn-d (頻譜的強度呈現連綿圓峰) 改成回饋 yn = xn + a yn-d (頻譜的強度呈現梳子)(連綿圓丘上下顛倒) 2nd-order其實就是延遲時刻有小數點,需要做線性內插。 https://thewolfsound.com/allpass-filter/
all-pass filter
濾波器頻譜,強度不變(常數1)、相位改變。 例如feedforward comb filter與feedback comb filter串聯。 https://ccrma.stanford.edu/~jos/pasp/Allpass_Two_Combs.html
moving average filter
k點平均 yn = (xn + xn-1 + ... + xn-k+1) / k (頻譜的強度呈現連綿縮小圓丘)
window function / spectral leakage
傅立葉轉換,只有整數倍頻率波。 如果訊號不是整數倍頻率波所組成,那就完蛋了。 非整數倍頻率波,將分散到各個整數倍頻率波,漏的到處都是。 訊號預先乘以窗函數,才做傅立葉轉換,稍微有點療效。 窗函數也可以想成是一種濾波器:連綿圓丘,消滅非整數倍頻率波。
System
「系統」。多變量函數,輸入多道訊號,輸出多道訊號。
已經發展成熟,累積大量懸案,最近二十年沒有太大變化。
stochastic process
訊號的數值,從固定的改成浮動的。甚至前後項有某種特殊性關係。
system identification / system realization / system estimation
給你輸入訊號、輸出訊號,請你找到系統。 換句話說,就是迴歸!
mean squared error / Kullback–Leibler divergence
兩道訊號的距離。 換句話說,就是誤差!迴歸的時候拿來用吧。
Control
「控制」。一個系統,兩道輸入訊號(原始訊號、控制訊號),一道輸出訊號。調整控制訊號,得到特別的輸出訊號。
Control應用十分廣泛,是世上最實用的演算法之一。
state transition state estimation optimal control optimal estimation
optimal control / dynamic optimization / motion planning
找到迴歸函數之後,就可以預測訊號啦。 常見的迴歸方式有Kalman Filter和Hidden Markov Model。 http://www.princeton.edu/~stengel/MAE546Seminars.html
Kalman filter
未知因:autoregression model (LTI filter) 已知業:LTI filter 已知果:一道訊號 請見本站文件「Filter」。 未知輸入(因)已知函數(業)已知輸出(果),求因。 精髓:果的誤差,通過反濾波器,用以修正因。
hidden Markov model (Bayes filter)
未知因:Markov chain 未知業:Hidden Markov Model 已知果:許多道訊號 請見本站文件「Hidden Markov Model」。 未知輸入(因)未知函數(業)已知輸出(果),求因。 精髓:已知果,梯度下降法(反向傳播法)找最大值,得到機率最大的業。 未知果,動態規劃找最佳路線,得到機率最大的因。
PD controller
τ = kp (θd - θc) + kv (θd' - θc') τ is the generated joint torque. θd and θc the desired and current joint angles. θd' and θc' the desired and current joint angular velocity. kp and kv are the controller gain.
PID controller
SMC controller
Model predictive control
Hamilton–Jacobi–Bellman Equation
動態規劃,找到最好的動作方式。
Sylvester Equation / Lyapunov Equation
矩陣方程式,常見的最佳化問題的解。
System Design
設計系統,達成控制。我目前只知道三種流派。
一、電子電路:風靡全世界。雖然台灣是地球上最大的電子零件生產基地,台灣也有專門設計電子電路的公司,但是我不太確定台灣是否有這方面的專家。關鍵字:IC設計、晶片設計。
二、生化反應:發展中。關鍵字:生物系統模擬、系統生物學。
三、深度學習:最近十年才剛萌芽,還稱不上控制。關鍵字:類神經網路、機器學習。
系統是函數網路。工程師設計函數網路,達成控制。
Electronic Circuit🚧
Chemical Kinetics🚧
Chemical Reaction Network
畫出變數關係圖,得到一階微分方程組,製作特殊的函數曲線,例如sigmoid和logistic、開關、震盪。
酵素動力學、藥物動力學。
Michaelis–Menten Equation 化學反應 Hill Equation 化學反應
CRN++ http://www.sohu.com/a/258018813_473283
dynamical system 嚴格來說不是時刻,而是對什麼變數微分,可以是時間/空間/兩者都有 是時間的叫動態系統 是空間的叫做碎形 兩者都有的例如波方程、量子力學 一階微分 = 取前一個時刻 二階微分 = 取前兩個時刻 recurrence = 取很多個時刻 markov process就是引入機率的動態系統 函數值是連續的 markov chain就是引入機率的動態系統 函數值是離散的 state是某個時刻的函數值 steady state是保持不動的函數值 linear function的不動點就是eigenvector linear functional(ode/pde)的不動點/循環就是eigenfunction/eigenmode
Lotka–Volterra Equations
Lotka–Volterra Equations是模擬兔子與狐狸的生態消長的微分方程組。
處處都循環,不會產生混沌。
Deep Learning🚧
Deep Learning
近年來許多政商人士提倡人工智慧,呼籲大眾學習如何運用深度學習。他們認為深度學習可以彌補電子電路的不足。大家可以待在家中設計神經網路,透過電腦與網路,輕鬆控制生活周遭的事物──不必事事都得委託聯發科設計電子電路、委託台積電製造電子電路。
然而深度學習目前仍是煉金術。大家憑感覺發明許多結構,但是無法利用數學來論證其功能。
模仿電子電路的transfer function,我們可以測量神經網路每個節點的輸出直方圖,粗略判斷節點的功能。
https://github.com/leemengtaiwan/deep-learning-resources
Metaheuristics也是類似的新流派。既有的最佳化演算法無法投入實用,大家重新發明基因演算法、蟻群演算法、粒子群演算法。
Machine Learning也是類似的新流派,既有的模式識別演算法無法投入實用,大家重新發明梯度下降技巧、神經網路結構。
陽春白雪變成下里巴人,引經據典變成信口開河。但是它實用。