Signal

Signal

「訊號」就是「數列」。就是一串數字。

數學家稱做數列(離散)、函數(連續)。

訊號學家稱做數位訊號(離散)、類比訊號(連續)。

訊號只是一個比較親民的詞彙。訊號也可以想成數列的加強版,引入了時間概念,而且無限延伸。

Signal Reconstruction

Signal Reconstruction

訊號重建。找到原本波形。找到內插函數。

一、訊號通常很長。如果採用多項式內插,那麼內插函數必須是非常高次的多項式,才能穿過所有訊號。然而,非常高次的多項式,劇烈震盪,無法平順的穿過訊號,稱做「Runge's Phenomenon」。

二、訊號通常取自真實世界、源自物理現象。例如聲音訊號,是由不同頻率的波,疊加而成的。詳見「傅立葉轉換」。

由於上述兩點,因而衍生了其他內插演算法。

Signal Resampling

訊號重新取樣。改變疏密程度,重新設計訊號。

變密稱做upsampling、變疏稱做downsampling。也有人把變密稱做interpolation、變疏稱做decimation。

訊號重新取樣=訊號重建+函數求值。

演算法(Triangle Interpolation)(Linear Interpolation)

三角波,等價於線性內插。不切實際,但是算得快。

演算法(Sinc Interpolation)

方波函數,實施逆向傅立葉轉換,頻域轉時域(反過來也行),就是sinc函數。如果頻域只有特定幾個頻率有方波(理想中是無限薄的脈衝,但是實際上是有點厚的方波),那麼時域採用sinc函數,最理想不過了。算得極慢。

演算法(Lanczos Interpolation)

http://en.wikipedia.org/wiki/Lanczos_resampling

加強版。自由調整胖瘦。砍掉綿延的小波,只留主要的部分。

演算法(Mitchell-Netravali Filter)

http://de.wikipedia.org/wiki/Mitchell-Netravali-Filter

加強版。改用三次多項式函數模擬之。算得快。

Signal Estimation

Signal Estimation

訊號估計。找到訊號規律。找到迴歸函數。

迴歸函數是遞迴函數、週期函數等等具有規律的函數。

誤差設定成「均方誤差Mean Squared Error」:平方誤差,再除以數列長度;平方誤差的平均值。如此一來,長度不同的數列,得以互相比較誤差大小。

Signal Prediction

訊號預測。訊號有某種規律,請預測接下來的訊號。

訊號預測=訊號估計+函數求值。

演算法(Linear Prediction)(Linear Predictive Coding)

Linear Regression是用線性函數符合資料,Linear Prediction是用線性遞迴函數符合資料。演算法請參考「Filter」。時間複雜度O(N²),在頻域計算可加速為O(NlogN)。

求得線性遞迴函數之後,欲預測下一個新訊號,直接代入最後K個舊訊號即可。時間複雜度O(K),K是線性遞迴函數的項數。

求得線性遞迴函數之後,欲預測第M個新訊號,共有四種演算法,請參考「Linear Recurrence」。時間複雜度O(K²logM),在頻域計算可加速為O(KlogKlogM)。

Signal Representation

Signal Representation

訊號重新表示。訊號套用函數,實施變換。

演算法(Principal Compoment Analysis)

請參考「Principal Component Analysis」。

又稱做Karhunen-Loève Transform、Hotelling Transform。

Signal Separation

Signal Separation

訊號分離。許多道訊號疊合在一起,請分離出原始訊號。

演算法(Independent Component Analysis)

請參考「Independent Component Analysis」。

演算法(Discrete Fourier Transform)

請參考「Fourier Transform」。

Noise

Noise(Random Signal)

隨機訊號,通常稱作「雜訊」或「噪訊」。

由於沒人研究隨機數列,大家只好援引浮動數列,以描述雜訊。

例如「White Gaussian Noise」:高斯隨機雜訊,每個隨機變數的平均數(浮動中心)和變異數(浮動範圍)均相同。因為剛好是白雜訊,所以名稱裡面有白。

Noise的頻譜

http://en.wikipedia.org/wiki/Colors_of_noise

數學家仿照光譜由紅到紫的特性,嘗試分類雜訊。

 white: 強度為常數
  grey: 強度符合人類聽覺曲線。(不那麼白)
   red: 強度正比於頻率倒數平方。  以頻率對數為座標軸,漸減6dB。
  pink: 強度正比於頻率倒數。    以頻率對數為座標軸,漸減3dB。(不那麼紅)
violet: 強度負正比於頻率倒數平方。 以頻率對數為座標軸,漸增6dB。
  blue: 強度負正比於頻率倒數。   以頻率對數為座標軸,漸增3dB。(不那麼紫)

Smooth Noise

http://lodev.org/cgtutor/randomnoise.html

http://www.iquilezles.org/www/articles/warp/warp.htm

計算學家運用「內插」,製造柔順的雜訊。網路上已有詳細教學文章,請讀者自行參考。

value noise:等距設置隨機數值,內插得到其餘數值。內插是為了製造綿延感。

perlin noise:等距設置遞迴碎形,內插得到其餘數值。有些規律、又不失隨機;好像有道理、又好像在鬼扯。非常奇葩。

fBm noise:疊加各種解析度(頻率)的雜訊。解析度是2的各種次方。雜訊可以是上述任意一種。隱含混沌與碎形的概念,更細膩、更自然。

wavelet noise:疊加各種頻率暨振幅的波。類似fBm noise。

Filter

Filter

「濾波器」。函數,輸入訊號,輸出訊號。

電類科系的基礎課程內容,跟演算法無關,以下只做簡介。

filter / system / circuit

濾波器:函數,輸入輸出都是一道訊號。
系統:多變量函數,輸入輸出都是多道訊號。
電路:函數網路。

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

濾波器只保留低頻波、只保留高頻波、只保留中頻波。

Butterworth filter

濾波器保留中頻波;其餘的波,頻率相差越遠、保留越少。比較平滑柔順啦。

window function / spectral leakage

傅立葉轉換,只有整數倍頻率波。
如果訊號不是整數倍頻率波所組成,那就完蛋了。
非整數倍頻率波,將分散到各個整數倍頻率波,漏的到處都是。
訊號預先乘以窗函數,才做傅立葉轉換,稍微有點療效。
窗函數也可以想成是一種濾波器:連綿圓丘,消滅非整數倍頻率波。

System

System

「系統」。多變量函數,輸入多道訊號,輸出多道訊號。

已經發展成熟,累積大量懸案,最近二十年沒有太大變化。

stochastic process

訊號的數值,從固定的改成浮動的。甚至前後項有某種特殊性關係。

system identification / system realization / system estimation

給你輸入訊號、輸出訊號,請你找到系統。
換句話說,就是迴歸!

mean squared error / Kullback-Leibler divergence

兩道訊號的距離。
換句話說,就是誤差!迴歸的時候拿來用吧。

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

未知因:Markov chain
未知業:Hidden Markov Model           
已知果:許多道訊號

請見本站文件「Hidden Markov Model」。
未知輸入(因)未知函數(業)已知輸出(果),求因。
精髓:已知果,梯度下降法(反向傳播法)找最大值,得到機率最大的業。
   未知果,動態規劃找最佳路線,得到機率最大的因。

Circuit(Under Construction!)

Circuit

RC circuit / Resistor-Capacitor circuit

low-pass filter
high-pass filter

RLC circuit / Resistor-Inductor-Capacitor circuit

sine wave

Oscillator

Controller

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

Synchronization

Phase-locked loop

Modulation

A2A: AM FM
D2A: ASK FSK PSK
A2D: PAM PWM PPM PCM
D2D: coding theory
http://www.hightech.tw/index.php/2012-06-06-14-12-38/25-comm-network
http://www.hightech.tw/index.php/2012-06-06-14-12-38/27-wireless-communication

Multiplexing

Multiplexing: SDM TDM FDM(OFDM) CDM
Multiple Access: TDMA FDMA CDMA

Fuzzy Logic

把布林數的AND和OR運算,變成函數的min和max運算。

Karnik-Mendel algorithm