)
1. 從“黑盒”到“白盒”為什么我們需要對隨機信號建模在信號處理的世界里我們每天都要和各種信號打交道。有些信號是確定性的比如一個正弦波它的頻率、幅度、相位都是清清楚楚的我們可以用一個精確的數學公式來描述它。但更多時候尤其是在現實世界的工程應用中我們面對的是隨機信號。比如一段語音、一段腦電圖、一段股票價格波動或者是你手機接收到的無線信號。這些信號在任何一個具體時刻的取值我們無法用一個固定的公式來預測它充滿了不確定性像一個“黑盒”。那么面對這樣一個“黑盒”我們是不是就束手無策了當然不是。雖然我們無法預測其每一個具體的瞬時值但我們可以研究它的統計特性比如它的平均值、方差、以及不同時刻取值之間的關聯性也就是自相關函數。更進一步一個非常強大的思路是我們嘗試用一個相對簡單的、參數化的數學模型來“模仿”或“逼近”這個復雜的隨機信號。這個過程就是隨機信號的參數建模。參數建模法的核心思想是把一個復雜的隨機過程看作是由一個簡單的、確定性的系統我們的模型在受到一個簡單的、隨機的輸入通常是白噪聲激勵后產生的輸出。一旦我們找到了這個模型就等于把這個“黑盒”打開了一個口子。我們不再需要存儲或處理冗長的原始信號數據只需要記住模型的幾個關鍵參數就能在很大程度上“復現”或“理解”這個信號。這帶來的好處是巨大的數據壓縮、信號預測、特征提取、系統辨識、故障診斷……幾乎所有高級信號處理應用都建立在有效的參數模型之上。而在眾多參數模型中自回歸模型也就是我們常說的AR 模型無疑是應用最廣泛、理論最成熟、也最直觀的一種。它背后的邏輯非常符合人的直覺一個信號當前時刻的值很大程度上可以由它過去若干個時刻的值線性組合來預測再加上一點無法預測的隨機“新息”。這就像預測明天的天氣我們會參考今天、昨天甚至前幾天的天氣情況再考慮一些突發(fā)的、不可控的因素。AR模型正是將這種思想數學化了。接下來我們就深入這個“白盒”內部看看AR模型是如何構建、如何工作以及在實際中我們如何用它來“駕馭”隨機信號。2. AR模型的核心原理用過去預測現在理解了建模的必要性我們現在聚焦于AR模型本身。它的全稱是AutoRegressive Model中文譯為自回歸模型。這個名字本身就揭示了它的核心“Auto”指自身“Regressive”指回歸合起來就是用信號自身的歷史值來回歸預測當前值。2.1 數學定義與直觀理解一個p階的AR模型其數學表達式非常簡潔x[n] -Σ_{i1}^{p} a_i * x[n-i] w[n]讓我們來拆解這個公式里的每一個符號x[n]這是我們觀測到的隨機信號在時刻n的取值也就是我們想要建模的對象。p模型的階數。它決定了我們用過去多少個時刻的數據來預測現在。p的選擇至關重要太小了模型太粗糙太大了又會引入過擬合和計算復雜度。a_i(i1, 2, ..., p)這就是AR模型的參數也稱為自回歸系數。它們是整個建模過程要求解的核心。a_i前面的負號是習慣寫法有時也省略但含義不變。這些系數本質上是一組權重告訴我們過去的每一個值x[n-i]對當前值x[n]的“影響力”有多大。w[n]這是驅動整個模型的輸入通常被假設為一個均值為0、方差為σ2的白噪聲序列。你可以把它理解為我們模型無法解釋的、完全隨機的“創(chuàng)新”或“擾動”。正是這個w[n]為整個輸出信號x[n]注入了隨機性。這個公式的直觀理解非常強當前信號值 ≈ 過去p個信號值的加權和 一個隨機噪聲。模型的任務就是找到那一組最優(yōu)的權重{a_i}使得這個線性預測的誤差——也就是那個隨機噪聲w[n]——的功率盡可能小通常是方差最小。當這組權重找得好時w[n]就真的像一個白噪聲不包含任何可預測的結構信息所有可預測的部分都已經被a_i和過去的數據x[n-i]捕捉到了。2.2 模型背后的系統視角一個全極點濾波器如果我們把上述公式稍微變個形從系統輸入輸出的角度來看會得到更深刻的見解。將公式改寫為w[n] x[n] Σ_{i1}^{p} a_i * x[n-i]這可以看作白噪聲w[n]作為輸入通過一個線性時不變系統后得到了輸出信號x[n]。這個系統的傳遞函數H(z)是什么對等式兩邊進行Z變換假設初始條件為0W(z) X(z) * (1 a_1*z^{-1} a_2*z^{-2} ... a_p*z^{-p})因此系統的傳遞函數為H(z) X(z) / W(z) 1 / (1 a_1*z^{-1} a_2*z^{-2} ... a_p*z^{-p})這是一個典型的全極點濾波器。它的極點完全由AR模型的參數{a_i}決定。這個視角極其重要因為它將AR模型與信號的頻譜特性直接聯系了起來。為什么這一點很關鍵因為一個隨機信號的功率譜密度描述了信號功率在不同頻率上的分布。而對于上述系統當輸入是白噪聲其功率譜是平坦的時輸出信號x[n]的功率譜P_x(ω)就等于輸入白噪聲的功率譜σ2乘以系統頻率響應H(e^{jω})的模平方。即P_x(ω) σ2 / |1 Σ_{i1}^{p} a_i e^{-jωi}|2這意味著一旦我們通過建模估計出了AR參數{a_i}和噪聲方差σ2我們就直接得到了該隨機信號的一個功率譜估計。這種譜估計方法被稱為AR譜估計或最大熵譜估計。與傳統的基于傅里葉變換的周期圖法相比AR譜估計在數據記錄短、分辨率要求高的場合如雷達、聲納、生物醫(yī)學信號處理有著顯著優(yōu)勢因為它隱含著對數據范圍外的外推假設能提供更高的頻率分辨率。3. 如何為你的信號“量身定制”AR模型參數估計實戰(zhàn)理論很優(yōu)美但落到實操上我們面對一段具體的信號數據x[0], x[1], ..., x[N-1]如何找到那組最優(yōu)的AR參數{a_i}和噪聲方差σ2呢這就是AR模型參數估計要解決的問題。主要有三種經典方法它們基于不同的優(yōu)化準則但核心思想相通。3.1 尤爾-沃克方程法從自相關函數出發(fā)這是最經典、最直接的方法它建立在“使前向預測誤差功率最小”的準則上。推導過程涉及一些線性代數但其最終形式非常規(guī)整——尤爾-沃克方程[ r[0] r[1] ... r[p-1] ] [ a_1 ] [ -r[1] ] [ r[1] r[0] ... r[p-2] ] [ a_2 ] [ -r[2] ] [ ... ... ... ... ] * [ ... ] [ ... ] [ r[p-1] r[p-2] ... r[0] ] [ a_p ] [ -r[p] ]其中r[m] E{ x[n] * x[nm] }是信號的理論自相關函數。在實際中我們用樣本數據估計自相關函數例如\hat{r}[m] (1/N) * Σ_{n0}^{N-1-m} x[n] * x[nm], 對于 m 0并且r[-m] r[m]??梢钥吹椒匠探M的系數矩陣是一個托普利茨矩陣沿對角線元素相同并且是正定的。這使得我們可以用高效的萊文森-德賓遞推算法來求解該算法復雜度僅為O(p2)避免了直接求逆矩陣的O(p3)復雜度。求解步驟計算自相關根據觀測數據估計出自相關序列\(zhòng)hat{r}[0], \hat{r}[1], ..., \hat{r}[p]。萊文森-德賓遞推初始化a_1(1) -r[1]/r[0],σ_12 (1 - |a_1(1)|2) * r[0]對于 k2 到 p:κ_k - ( r[k] Σ_{i1}^{k-1} a_i(k-1) * r[k-i] ) / σ_{k-1}2a_k(k) κ_ka_i(k) a_i(k-1) κ_k * a_{k-i}(k-1), for i1,..., k-1σ_k2 (1 - |κ_k|2) * σ_{k-1}2最終得到的a_i(p)(i1..p) 就是AR(p)模型的參數σ_p2就是白噪聲方差估計。注意尤爾-沃克法在數據量較大時表現穩(wěn)健但它有一個隱含的假設在計算自相關時對觀測窗口外的數據做了補零假設。這可能導致在短數據情況下譜估計出現偏差。3.2 協方差法與修正協方差法更精確的數據匹配為了克服尤爾-沃克法在數據邊界處的假設問題協方差法直接基于原始數據最小化前向預測誤差的平方和。其正則方程中的矩陣元素計算如下c_{ij} (1/(N-p)) * Σ_{np}^{N-1} x[n-i] * x[n-j], 其中 i, j 0, 1, ..., p (這里定義a_01)。這個矩陣C不再是托普利茨矩陣但仍然是正定的。求解這個方程通常使用喬里斯基分解或奇異值分解等線性代數方法無法使用萊文森-德賓遞推。協方差法通常能給出比尤爾-沃克法更高的頻率分辨率。修正協方差法則同時最小化前向預測誤差和后向預測誤差的平方和進一步提升了數據的利用率和平穩(wěn)性特別適用于短數據序列其譜估計特性往往更優(yōu)。3.3 伯格法在保證模型穩(wěn)定的前提下遞推伯格方法非常巧妙它通過遞推的方式在每一步都同時滿足前向和后向預測誤差最小化并且強制保證最終得到的AR模型是穩(wěn)定的即其對應的系統極點都在單位圓內。這是伯格法最大的優(yōu)點。伯格遞推的核心是計算反射系數或稱偏相關系數κ_k。其步驟與萊文森-德賓類似但計算κ_k的公式不同它直接基于前向和后向預測誤差能量來計算。由于保證了穩(wěn)定性伯格法在實際中應用非常廣泛許多軟件工具如MATLAB的arburg函數默認采用的就是伯格算法。方法選擇經驗談追求穩(wěn)健和快速數據較長且信噪比較高時尤爾-沃克法萊文森-德賓遞推是首選。追求高分辨率數據較短時協方差法或修正協方差法通常能給出更尖銳的譜峰。保證模型穩(wěn)定當模型階數p較高或者你需要確保生成的合成信號不發(fā)散時伯格法是最安全的選擇。我在處理語音信號合成時就曾因為使用其他方法在高階時得到不穩(wěn)定模型導致合成語音爆炸幅度無限增大改用伯格法后問題迎刃而解。4. 模型階數p一個至關重要的超參數無論采用哪種估計方法你都必須事先指定一個階數p。p選得太小模型過于簡單無法捕捉信號中復雜的相關性這稱為“欠擬合”會導致譜估計平滑、細節(jié)丟失。p選得太大模型會開始擬合信號中的隨機噪聲成分這稱為“過擬合”會導致譜估計出現虛假的峰值模型參數方差增大。那么如何確定這個“恰到好處”的階數p呢沒有絕對正確的答案但有以下幾種實用的準則和方法4.1 信息論準則AIC與MDL這類準則在擬合優(yōu)度和模型復雜度之間進行折衷。它們會計算不同階數p下的一個準則函數值選擇使該函數值最小的p作為最佳階數。赤池信息量準則AIC(p) N * ln(σ_p2) 2p其中σ_p2是p階模型下的白噪聲方差估計。AIC傾向于選擇稍高階的模型。最小描述長度準則MDL(p) N * ln(σ_p2) p * ln(N)MDL的懲罰項比AIC更重因此傾向于選擇比AIC更低的階數在樣本量N較大時MDL準則具有一致性即當N趨于無窮時能選出真實階數。在實際操作中我會計算從1到一個預設最大階數比如N/3或N/2范圍內所有p對應的AIC和MDL值然后畫出曲線尋找明顯的拐點或最小值點。4.2 最終預測誤差準則FPE準則FPE(p) σ_p2 * (Np1)/(N-p-1)FPE準則的目標是最小化一步預測的均方誤差也是一個常用的參考。4.3 觀察預測誤差方差或反射系數的變化這是一個更直觀的方法隨著階數p增加白噪聲方差估計σ_p2通常會單調遞減。當p達到或超過真實階數后σ_p2的下降會變得非常緩慢出現一個“肘部”。同樣在伯格算法中反射系數|κ_k|的絕對值會隨著k增大而減小。當k超過真實階數后|κ_k|通常會趨近于0。你可以將|κ_k|首次低于某個閾值比如0.05時的k作為階數估計。我的實戰(zhàn)經驗不要迷信單一準則。最好的做法是多方法交叉驗證。例如同時觀察AIC、MDL的曲線并結合σ_p2下降的“肘部”位置。然后用選出的幾個候選p值分別進行AR譜估計觀察其功率譜圖。一個“好”的譜圖應該具有清晰的物理可解釋的譜峰而沒有太多雜亂無章的小毛刺。例如在分析一個包含50Hz和120Hz工頻干擾的腦電信號時如果AR譜在50Hz和120Hz處出現了尖銳且合理的峰值而在其他頻率很平坦那這個階數p可能就是合適的。如果譜圖上出現了很多密集的、無法解釋的小峰那很可能就是過擬合了。5. AR模型的力量從譜估計到預測與合成當我們成功估計出AR模型的參數{a_i}和σ2后這個模型就成為了我們理解和操作該隨機信號的有力工具。它的應用遠不止于“理解”更在于“創(chuàng)造”和“預測”。5.1 高分辨率功率譜估計如前所述將估計出的參數代入公式P_x(ω) σ2 / |1 Σ_{i1}^{p} a_i e^{-jωi}|2即可得到信號的AR譜估計。與傳統的周期圖法相比AR譜估計尤其適用于短數據記錄傳統方法分辨率受限于數據長度1/T而AR譜估計可以突破這個限制。銳峰頻譜對于由多個正弦波疊加而成的信號AR譜能呈現出非常尖銳的譜線便于頻率檢測。平滑背景上的譜峰能有效區(qū)分寬頻帶背景噪聲上的窄帶信號。在雷達目標速度估計、語音共振峰分析、腦電節(jié)律提取等領域AR譜估計是標準工具之一。5.2 線性預測與信號濾波AR模型本身就是一個線性預測器。給定過去p個樣本x[n-1], ..., x[n-p]我們對當前值的最優(yōu)線性預測在最小均方誤差意義下就是\hat{x}[n] -Σ_{i1}^{p} a_i * x[n-i]預測誤差e[n] x[n] - \hat{x}[n]理論上應該接近于白噪聲w[n]。這個性質被廣泛應用于語音編碼如線性預測編碼傳輸預測誤差殘差和模型參數而非原始語音樣本實現高效壓縮。信號去噪如果信號符合AR模型而噪聲是加性的可以通過預測和相減來增強信號。異常檢測在平穩(wěn)運行的系統如旋轉機械中其振動信號可以用AR模型描述。一旦模型建立實時計算預測誤差。當系統出現故障時信號特性改變預測誤差e[n]的功率會突然增大從而觸發(fā)報警。5.3 隨機信號合成這是AR模型一個非?!翱帷钡膽谩<热晃覀冋J為信號是由白噪聲w[n]通過一個傳遞函數為H(z)的系統產生的那么反過來我們也可以用計算機生成一段白噪聲序列然后讓它通過我們估計出的AR模型系統H(z)來合成一段與原始信號統計特性相似的新信號。具體步驟估計原始信號x[n]的AR(p)模型參數{a_i}和噪聲方差σ2。生成一個方差為σ2、均值為0的白噪聲序列w_synth[n]。用差分方程進行濾波x_synth[n] -Σ_{i1}^{p} a_i * x_synth[n-i] w_synth[n]。忽略前若干點的瞬態(tài)響應得到平穩(wěn)的合成信號x_synth[n]。合成的信號x_synth[n]與原始信號x[n]具有相同的自相關函數和功率譜密度二階統計特性相同。這在需要大量具有特定統計特性的仿真數據時非常有用例如通信系統仿真、金融風險蒙特卡洛模擬、以及音頻合成中的背景噪聲生成。一個我踩過的坑在合成信號時務必確保模型的穩(wěn)定性。不穩(wěn)定的AR模型其系統極點有在單位圓外的會導致合成信號幅度指數增長迅速溢出。這就是為什么在合成應用中我強烈推薦使用伯格法來估計參數因為它能保證穩(wěn)定性。如果用了其他方法在合成前一定要檢查系統極點即多項式1 a_1 z^{-1} ... a_p z^{-p} 0的根是否全部在單位圓內。6. 超越基礎AR模型的局限與擴展AR模型雖然強大但并非萬能鑰匙。理解它的局限性才能知道何時該用它何時該尋求其他工具。6.1 主要局限性對信號特性的假設AR模型最適合建模全極點譜的信號。也就是說它的功率譜密度可以通過全極點濾波器很好地匹配。對于在頻譜上有深谷即“零點”的信號AR模型需要很高的階數才能近似效率低下。對噪聲敏感估計過程特別是基于自相關的方法對觀測噪聲比較敏感。如果信號被加性白噪聲污染估計出的AR參數和譜峰會有所偏差。階數選擇的主觀性如前所述最佳階數p的選擇沒有黃金標準需要經驗和多種準則輔助判斷。6.2 模型家族的擴展為了克服AR模型的局限更一般的參數模型被提出滑動平均模型x[n] Σ_{i0}^{q} b_i * w[n-i] 其系統函數只有零點適合表征具有凹槽頻譜的信號。自回歸滑動平均模型x[n] -Σ_{i1}^{p} a_i * x[n-i] Σ_{i0}^{q} b_i * w[n-i] 這是AR模型和MA模型的結合系統函數既有極點也有零點理論上可以用更低的階數(p, q)擬合更廣泛的信號。但ARMA模型的參數估計比AR模型復雜得多。自回歸積分滑動平均模型在ARMA基礎上引入了差分運算專門用于處理非平穩(wěn)時間序列如具有趨勢或季節(jié)性的經濟數據。在實際工作中AR模型因其概念簡單、計算高效、算法成熟仍然是首選的“第一模型”。當AR模型效果不佳時我們才會考慮更復雜的ARMA等模型。通常一個實用的策略是先嘗試用AR模型如果發(fā)現需要的階數p異常高或者殘差檢驗顯示預測誤差還不是白噪聲再考慮引入MA部分。從我多年的工程實踐來看AR模型及其譜估計是每個信號處理工程師工具箱里的必備品。它的價值在于將看似不可捉摸的隨機信號轉化為幾個具有物理或數學意義的參數從而打開了分析、預測、合成信號的大門。掌握它不僅僅是學會幾個算法函數更是建立起一種“建?!钡乃季S方式——用簡單的數學結構去理解和駕馭復雜的世界這正是工程技術的魅力所在。當你下次再面對一段嘈雜的、看似無規(guī)律的信號時不妨試著用AR模型去“問詢”它你很可能會得到一幅清晰得多的頻率“肖像”。