Periodic Signal🚧

Periodic Signal

「週期訊號」。每隔固定時間就會重複的訊號。

數學家稱作週期數列(離散)、週期函數(連續)。

Period

「週期」。開始重複的時間。

多串週期訊號疊加,仍是一串週期訊號,週期是最小公倍數。

一串週期訊號分隔為多串週期訊號,此處不討論。

Maximum / Minimum / Peak / Foot

「最大值」「最小值」「峰」「谷」。全域極值、局部極值。

Sinusoidal Signal

「弦型訊號」。訊號呈現正弦函數、餘弦函數、歐拉公式。

弦型訊號是週期訊號的重要特例。請見本站文件「Wave」。

Frequency

「頻率」。週期的倒數。一單位時間的訊號重複次數。

週期訊號,倒數沒有任何意義。弦型訊號,倒數才有意義。

倒數源自弦波。週期的倒數恰好是弦波一單位時間的振動次數。

Amplitude

「振幅」。數值軸,訊號高低範圍的一半。

週期訊號,一半沒有任何意義。弦型訊號,一半才有意義。

一半源自弦波。高低範圍的一半恰好是弦波數學式子之倍率。

Spectrum(Frequency Spectrum)

「頻譜」。一串週期訊號分隔為多串週期訊號,求得各串週期訊號的振幅與頻率。

主流做法是傅立葉轉換:一串週期訊號分隔為多串弦型訊號。

頻譜習慣畫成函數圖形:橫軸是頻率,縱軸是振幅。

週期訊號的主角是週期與峰谷。弦型訊號的主角是頻率與振幅。因為大家經常使用傅立葉轉換將週期波分解成複弦波,所以週期訊號的敘事主角變成頻率與振幅。

Sampling Theorem(Nyquist's Theorem)

「取樣定理」。一串弦型訊號,從連續變離散。如果想要藉由離散訊號得知連續訊號的頻率,那麼取樣頻率必須大於等於頻率兩倍。至於振幅,已經無法得知了。

取樣定理可以推廣為週期訊號。主流做法是傅立葉轉換:一串週期訊號分隔為多串弦型訊號。如果想要得知每串弦型訊號的頻率,取樣頻率必須大於等於最大頻率兩倍。

Peak Analysis🚧

Frame

「框」。擷取一段訊號,以此判斷極值。這段訊號長度必須涵蓋一個週期,才能判斷極值。

Peak Detection

找到波形的尖峰。

一、消除鋸齒:方法很多,諸如
 口、時域的平滑效果(k點平均數)(k點中位數)。
 口、頻域的刪除高頻(高頻形成鋸齒)。
 口、時域的Linear Prediction(迴歸函數)。
二、尋找極值:中央高、兩側低。
三、估計峰尖:極值前後,三點做拋物線內插,求出拋物線頂點。

Peak Continuation

找到頻譜的尖峰。

尖峰隨著時間連續變化。追蹤每個時刻的尖峰位置。

Periodicity Analysis🚧

Frame

「框」。擷取一段訊號,以此判斷週期。這段訊號長度必須涵蓋多個週期,才能判斷週期。

Periodicity Detection(Frequency Detection)

找到波形的週期。

數學、物理學、訊號學,總是預設我們可以得到特定時間點、特定瞬間的頻率。計算學無這款好空事志。計算學只能得到一段時間(一段訊號)的頻率,並且假裝它是特定瞬間的頻率。

peak detection:找到兩個波峰,位置相減得到波長,波長倒數得到頻率。僅適合純音。
zero-crossing rate:波形穿越零的次數。僅適合純音。
 ACF:位移、相乘、加總(內積)。各種位移量,找最大值。
AMDF:位移、相減再絕對值、加總(絕對值誤差)。各種位移量,找最小值。
 YIN:位移、相減再平方、加總(平方誤差)。各種位移量,除以累積和,找最小值。
複合:例如 ACF / (AMDF + 1.0),找最大值。

Frequency Tracking

找到頻譜的尖峰。

頻率隨著時間連續變化。追蹤每個時刻的頻率高低。

Spectral Analysis🚧

Spectral Analysis

找到頻譜。

Fourier Analysis

Fourier transform:波形分解成一群弦波,頻率為整數倍。

傅立葉轉換的計算結果,經常轉換成頻譜。除了廣為人知的頻譜之外,還有許多衍生產物,命名方式是翻轉字母順序,非常搞笑。

specmurt和cepstrum主要用於共鳴聲音,例如樂器聲、說話聲。共鳴產生諧音:強度頻譜上,強度規律地出現,其頻率呈倍數。頻率軸取log,讓出現間隔成為等距,叫做specmurt。強度規律地出現,宛如波,於是有人再度套用一次傅立葉轉換找到基頻(個人認為莫名其妙),叫做cepstrum。由於頻譜有一些重大缺點,又加上計算時間長,所以並不好用。

spectrum:頻譜。分為強度頻譜、相位頻譜。
specmurt:名稱不詳。頻譜的座標軸,頻率取log,符合人類聽覺感受。
cepstrum:倒頻譜。強度頻譜,強度值取log,實施(逆向)傅立葉轉換。

Wavelet Analysis

Wigner-Ville Distribution

Envelope Analysis🚧

Envelope Detection

找出波形的包絡線。

波形劇烈變動,處處尖峰;波形簡化為包絡線,容易辨認尖峰。

聲音訊號波形的包絡線(時域):
 回、正向傅立葉轉換,數列後半(共軛對稱部分)設為0,
   逆向傅立葉轉換,取絕對值,乘以2。
 回、Hilbert transform,取絕對值。
   效果同上。
                                   |  Assume g(t) x cos(wt)
1. fourier transform               |  G(f) ⋅ 0.5 ⋅ (delta(w) + delta(-w))
2. negative frequency: value -> 0  |  G(f) ⋅ 0.5 ⋅ delta(w)
3. inverse fourier transform       |  0.5 g(t) x e𝑖wt
4. abs                             |  0.5 |g(t)|
5. multiply 2                      |  |g(t)|
強度頻譜的包絡線(頻域):
 回、聲音訊號實施linear prediction,轉換到頻域。稱作LPC spectrum。
   linear prediction的項數,設定成尖峰數量的兩倍(共軛對稱)。pole即尖峰。
 回、強度頻譜套用lowpass filter。因其具有平滑效果。
   不合邏輯,比較少用。
 回、承上,改成取log,並且改成在頻域實施lowpass filter。
   此即cepstrum乘上0或1。
   不合邏輯,比較少用。

Hibert–Huang transform:找出波形的包絡線的中間線。

Power Analysis🚧

Energy Detection

找出波形的能量。

energy:能量。每個訊號的平方和。
power:功率。能量除以時間。每單位時間的能量。

Parseval's theorem:時域能量等於頻率能量。

週期訊號的能量,可以分隔為多串弦型訊號來計算。

 N           N
sum a(i)² = sum â(i)²
i=1         i=1
Spectrum Sensing: Enhanced Energy Detection Technique Based on Noise Measurement

Noise

Noise(Random Signal)

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

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

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

Noise的頻譜

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

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

Smooth Noise

Smooth Noise

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

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

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

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

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

Measure

Logarithmic Scale

人類對振幅、頻率、能量、……的感受程度不呈線性增長,而是大致呈對數增長。數量級越大越不靈敏。

修改比例尺,使得對數增長變成線性增長,稱作「對數尺度」。

細分三種方式:

一、振幅、頻率、能量、……的座標軸數值取exp。

二、振幅、頻率、能量、……的座標軸間距取exp再倒數。

三、振幅、頻率、能量、……的數值取log。

一與二沒有更動數值,只對圖表動手腳。三更動數值,可用於各種用途,像是編入數學公式、設計指數指標。本文以三為主。

人類慣用十進位,於是取log₁₀,得到位數(減一)。教科書慣用微積分,於是取logₑ,也就是自然對數ln,得到玄學。

順便介紹兩個常見指標。

數量級:取log₁₀。最後再取整數,簡潔呈現結果。

order of magnitude = floor(log₁₀(P))

分貝:給定數值、自訂基準數值,兩者的數量級差異。最後再乘以10,突顯第一位小數(十分位小數)。

                  ⎛ P  ⎞
decibel = 10 log₁₀⎜ —— ⎟ = 10 (log₁₀(P) - log₁₀(P₀))
 (dB)             ⎝ P₀ ⎠

數量級和分貝只是粗略指標,不能直接相加。一切計算必須使用原始數值。據說期末考都會考分貝加法,據說總有同學不會計算。

Dynamic Range

人類(或儀器)能夠感受的振幅、頻率、能量、功率、……範圍有限。上界數值、下界數值,稱作「動態範圍」。

也有人將上界數值、下界數值,分別換算成數量級,再求得兩個數量級的差異,當作「動態範圍」。

也有人將兩個數量級的差異,還原成原本數值,形成上界數值、下界數值的比值,當作「動態範圍」。

Signal Similarity Measure

兩串訊號的相似程度。有許多種指標。

MSE和ZNCC最常用,其它只是鋪陳。

MAE宛如絕對值誤差。MSE宛如平方誤差。為了讓相似程度不受取樣頻率影響,一律除以訊號長度N。

RMSE宛如直線距離。兩個向量改成了兩串訊號。

ZNCC宛如相關係數。兩個隨機變數(分布)改成了兩串訊號。

mean absolute error

       N 
      sum |a(i) - b(i)|
      i=1
MAE = —————————————————
              N

mean squared error

       N 
      sum (a(i) - b(i))²
      i=1
MSE = ——————————————————
              N

root mean squared error
                     ___________________
                    |  N
                    | sum (a(i) - b(i))²
RMSE = sqrt(MSE) =  | i=1
                    | ——————————————————
                   V          N

root mean squared logarithmic error
          _________________________________________
         |  N
         | sum (log₁₀(a(i) + 1) - log₁₀(b(i) + 1))²
RMSLE =  | i=1
         | ————————————————————————————————————————
        V                     N
cross correlation

      N                            N
CC = sum a(i) b(i)   or   CC(k) = sum a(i) b(i-k)
     i=1                          i=1

zero-mean normalized cross correlation

           cov(a,b)
ZNCC = ———————————————
       √ var(a) var(b)

where mean(a)  = sum a(i) / N
      var(a)   = sum (a(i) - mean(a))² / N
      cov(a,b) = sum ((a(i) - mean(a))(b(i) - mean(b))) / N

Signal Quality Measure

一串訊號的品質好壞程度。有許多種指標。

這些指標,大家習慣再換算成分貝。

PSD其實只是在頻譜計算功率。

signal-to-noise ratio 訊噪比

      Psignal
SNR = ———————
      Pnoise

peak signal-to-noise ratio 峰值訊噪比

       ⎛  N       ⎞²
       ⎜ max a(i) ⎟
       ⎝ i=1      ⎠
PSNR = —————————————
            MSE

power spectral density 功率譜密度

       N  â(i)²    N  a(i)²
PSD = sum ————— = sum —————     where â = fourier(a)
      i=1   N     i=1   N