signal
signal(time series)
「訊號」就是一串數字。
數學家稱作數列(離散)、函數(連續)。
訊號學家稱作數位訊號(離散)、類比訊號(連續)。
常見的signal
合成波:正弦波、方波、三角波、脈衝波。
脈衝函數:Dirac函數、高斯函數、sinc函數。
成長速率:步進函數、sigmoid函數、logistic函數。
市場波動:Gaussian process、Wiener process。
雜訊:AGWN。
signal的性質
脈衝:忽然劇烈變化、迅速還原。
週期:特定片段重複無限多次。通常稱作波。
穩態:最終收斂於特定常數。
signal的指標
平均數、變異數、偏度、峰度、ANOVA、能量、訊噪比、頻率、週期、過零率、……。
知名工具tsfresh。
signal quantization
signal sampling
訊號取樣。時間軸離散化。保留重點,刪除細節。
signal quantization
訊號量化。數值軸離散化。保留重點,刪除細節。
簡易的量化是四捨五入、無條件捨去、無條件進入。進階的量化是區分數量級。經典的量化是以圖表相較並沒有明顯差異。
演算法(vector quantization)(cluster analysis)
先分群,以群集中心作為量化結果。
再分類,以分界線決定量化結果。
演算法(location-allocation analysis)
加強版。直線距離改成了其他指標。
演算法(product quantization)
分段、各自量化、合併。
signal resampling
signal reconstruction
訊號重建。找到原本曲線。找到內插函數。
一、訊號通常很長。如果採用多項式內插,那麼內插函數必須是非常高次的多項式,才能穿過所有訊號。然而,非常高次的多項式,劇烈震盪,無法平順的穿過訊號,稱作「Runge's phenomenon」。
二、訊號通常取自真實世界、源自物理現象。例如聲音訊號,是由不同頻率的波,疊加而成的。詳見「傅立葉轉換」。
由於上述兩點,因而衍生了其他內插演算法。
signal resampling
訊號重新取樣。改變疏密程度,重新設計訊號。
變密稱作upsampling、變疏稱作downsampling。也有人把變密稱作interpolation、變疏稱作decimation。
訊號重新取樣=訊號重建+函數求值。
演算法(triangle interpolation)(linear interpolation)
三角波。等價於一次內插。不切實際,但是算得快。
演算法(sinc interpolation)
sinc函數。用於已經過濾頻率區段的訊號。
矩形函數,實施逆向傅立葉轉換,頻域轉時域(反過來也行),就是sinc函數。如果頻域只有特定幾個頻率擁有強度(理論上是無限薄的脈衝函數,實際上是有點厚的矩形函數),那麼時域就是特定幾個時間出現sinc函數。算得極慢。
演算法(Lanczos interpolation)
加強版。自由調整胖瘦。砍掉綿延的小波,只留主要的部分。
演算法(Mitchell–Netravali filter)
加強版。改用三次多項式函數模擬之。算得快。
演算法(spline interpolation)
兩個相鄰函數點,取左右鄰近函數點們做內插,只取兩個相鄰函數點之間那一段函數曲線。所有相鄰函數點,如法炮製。每一段函數曲線,一段一段接起來。
藉由左右鄰近函數點數,可以控制平滑程度。主要用於微分方程式之數值模擬。
signal prediction🚧
signal estimation(time series fitting)
訊號估計。找到理想曲線。找到規律。找到迴歸函數。
迴歸函數是遞迴函數、週期函數等等具有規律的函數。
signal prediction(time series forecasting)
訊號預測。訊號有某種規律,請預測接下來的訊號。
訊號預測=訊號估計+函數求值。
演算法(linear prediction)(linear predictive coding)
請見本站文件「filter」。
linear regression:用一次函數符合資料。linear prediction:用線性遞迴函數符合資料。
誤差設定成「均方誤差mean squared error」:平方誤差,再除以數列長度;平方誤差的平均數。如此一來,長度不同的數列,得以互相比較誤差大小。
首先求得均方誤差最小的線性遞迴函數。時間複雜度O(N²),在頻域計算可加速為O(NlogN)。
求得線性遞迴函數之後,欲預測下一個新訊號,直接代入最後K個舊訊號即可。時間複雜度O(K),K是線性遞迴函數的項數。
求得線性遞迴函數之後,欲預測第M個新訊號,共有四種演算法。時間複雜度O(K²logM),在頻域計算可加速為O(KlogKlogM)。
演算法(ARIMA)
加強版。遞迴關係式增加項次。
演算法(ARCH)
加強版。推廣成非線性,引入統計學。
演算法(Prophet)
演算法(Kalman filter)(linear quadratic estimation)
觀察值與預測值的一次內插。
推定預測值源自線性遞迴公式。
演算法(recurrent neural network)
signal smoothing🚧
signal denoising
訊號降噪。降低雜訊大小。
signal denoising = signal estimation。一體兩面。
例如大家習慣使用Kalman filter抑制運動軌跡雜訊。位置、速度、加速度,有限差分,強行展開,即是線性遞迴公式。經典範例是登月大空梭,藉由Kalman filter讓太空梭從地球飛到月球。
signal smoothing
訊號平滑化。降低鄰近數字差異大小。
signal smoothing可以抑制雜訊。如果雜訊的平均數是零,那麼平滑化可以完全消除雜訊,代價是訊號本身也變成平均數了。
維基百科整理了一份演算法名稱列表:
演算法(moving average)
移動平均。鄰近函數點的加權平均數,作為該函數點。
演算法(local regression)(moving regression)
局部迴歸。鄰近函數點進行迴歸。根據迴歸函數,重新計算該函數點。
另外,當迴歸函數是連續函數,則可以計算該函數點的任意次微分。
演算法(Savitzky–Golay filter)
Why and How Savitzky–Golay Filters Should Be Replaced https://pubs.acs.org/doi/10.1021/acsmeasuresciau.1c00054
演算法(LOESS: locally estimated scatterplot smoothing)
處理outlier。原版即是Savitzky–Golay filter。
做兩次。第一次用k-nearest neighbor,第二次用移動平均。
https://www.mathworks.com/help/curvefit/smooth.html https://www.ime.unicamp.br/~dias/loess.pdf https://en.wikipedia.org/wiki/Local_regression
演算法(exponential smoothing)
觀察值與預測值的一次內插。
強行展開,各項係數呈指數成長,因而得名。
強行展開可以視作移動平均,但是每回合權重都不一樣。
exponential smoothing yn = (1-a) yn-1 + a xn double exponential smoothing triple exponential smoothing
signal separation🚧
signal overlapping(signal composition)
訊號疊加。數據軸加法。大量訊號疊合在一起。
signal separation(signal decomposition)
訊號分隔。數據軸分割。大量訊號疊合在一起,分隔每道訊號。
trend中線, seasional週期, cyclic峰谷, noise雜訊 yₙ = tₙ + sₙ + cₙ + nₙ
https://www.abs.gov.au/websitedbs/d3310114.nsf/4a256353001af3ed4b2562bb00121564/5fc845406def2c3dca256ce100188f8e https://cran.r-project.org/web/packages/deseats/readme/README.html
演算法(Henderson moving average)
Spencer https://robjhyndman.com/papers/movingaverage.pdf https://mathworld.wolfram.com/Spencers15-PointMovingAverage.html
演算法(Whittaker–Henderson filter)
regularization,追加平滑程度。
min { sum wₙ (yₙ - tₙ)² + λ sum (dⁿ/dxⁿ tₙ)² } t n n
演算法(Hodrick–Prescott filter)
平滑程度改成二階差分。擁有公式解。
N N-1 min { sum (yₙ - tₙ)² + λ sum ((tₙ₊₁ - tₙ) - (tₙ - tₙ₋₁))² } t n=1 n=2
公式解矩陣
https://en.wikipedia.org/wiki/Hodrick–Prescott_filter https://en.wikipedia.org/wiki/Smoothing_spline Why you should never use the Hodrick–Prescott filter https://www.nber.org/system/files/working_papers/w23429/w23429.pdf An Exploration of Trend-Cycle Decomposition Methodologies in Simulated Data https://papers.ssrn.com/abstract=3539317
演算法(smoothing spline)
迴歸函數換成spline。
N N-1 min { sum (yₙ - fₙ)² + λ sum (d²/dx² fₙ)² } f n=1 n=2 where f is spline
signal segmentation🚧
signal concatenation
訊號銜接。時間軸銜接。大量訊號銜接在一起。
主要問題在於曲線不連續。在於相位。淡入淡出也無法解決。
signal segmentation
訊號分段。時間軸分割。大量訊號銜接在一起,分割每段訊號。
signal representation🚧
signal transformation
訊號變換。訊號套用函數,改變訊號造型。
signal representation
訊號表示。訊號套用函數,換個視角呈現訊號。
演算法(Karhunen–Loève transform)(Hotelling transform)
即是principal component analysis。
演算法(sparse coding)
signal classification🚧
signal detection
訊號偵測。判斷訊號是資訊或是雜訊。
signal classification
訊號分類。判斷訊號是哪種常見訊號。
演算法(hidden Markov model)
演算法(catch22: canonical time-series characteristic)
https://www.sktime.net/en/v0.20.0/examples/02_classification.html
signal recovery🚧
signal completion
訊號補全。訊號部分佚失,推敲原本訊號。
signal recovery
訊號還原。訊號部分錯誤,推敲原本訊號。