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,實施(逆向)傅立葉轉換。
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)|
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