【機械故障】使用fir濾波器實現數據擬合

使用fir濾波器實現數據擬合

提示:學習筆記


使用fir濾波器實現數據擬合

  • 使用fir濾波器實現數據擬合
  • 一、問題建模
  • 二、 構建矩陣方程(關鍵步驟)
  • 三、最小二乘解
  • 四、重要注意事項
    • 4.1 濾波器長度 M
    • 4.2 數據的預處理
    • 4.3 延遲問題
    • 4.4 性能評估


一、問題建模

我們定義:

  • 期望信號(目標信號):d[n] = 第2列的第n個數據點

  • 輸入信號:x[n] = 第3列的第n個數據點

  • FIR濾波器:其系數為 h[0], h[1], …, h[M-1],其中 M 是濾波器的長度(階數+1)。

  • 濾波后的輸出信號:y[n] = 估計的第2列數據
    y[n] = h[0]*x[n] + h[1]*x[n-1] + … + h[M-1]*x[n-M+1]

  • 我們的目標是讓輸出 y[n] 盡可能接近期望信號 d[n]。誤差信號 e[n] 定義為:
    e[n] = d[n] - y[n]

最小二乘法的核心思想是:找到一組濾波器系數 h[k],使得所有數據點上誤差平方和(Sum of Squared Errors, SSE) 最小。

SSE = Σ (e[n])2 = Σ (d[n] - y[n])2

二、 構建矩陣方程(關鍵步驟)

為了利用所有可用的數據點(假設有 N 個),我們將問題轉化為矩陣形式。

首先定義一些向量和矩陣:

  • 濾波器系數向量: h = [h[0], h[1], …, h[M-1]]? (一個 Mx1 的列向量)

  • 期望信號向量: d = [d[M-1], d[M], …, d[N-1]]? (一個 (N-M+1)x1 的列向量)
    注意:由于濾波需要用到前M-1個輸入點,所以輸出y[n]從n=M-1時刻開始才有有效值。因此d也從對應的點開始取。

  • 輸入信號矩陣(卷積矩陣/Toeplitz矩陣) X:
    這是一個非常關鍵的矩陣,其結構如下:

X = [[x[M-1],   x[M-2],   ...,   x[0]      ],[x[M],     x[M-1],   ...,   x[1]      ],[x[M+1],   x[M],     ...,   x[2]      ],...,[x[N-1],   x[N-2],   ...,   x[N-M]    ]
]

這個矩陣是一個 (N-M+1) x M 的矩陣。它的每一行是輸入信號 x[n] 的一段,用于與濾波器系數 h 進行卷積計算得到某一個輸出點 y[n]。

現在,濾波輸出向量 y 可以寫為:
y = X * h

誤差向量 e 為:
e = d - y = d - X * h

我們的目標函數(誤差平方和)的矩陣形式為:
SSE = e?e = (d - Xh)? (d - Xh)

三、最小二乘解

為了最小化 SSE,我們對其關于向量 h 求導,并令導數等于零向量。

經過推導(詳細過程可參考任何線性代數或優化教材),可以得到著名的正規方程(Normal Equation):

(X?X) h = X? d

其中:

  • X?X 是一個 M x M 的方陣(自相關矩陣)。

  • X? d 是一個 M x 1 的列向量(互相關向量)。
    這個方程的解即為最優濾波器系數:
    h_opt = (X?X)?1 X? d

在數值計算中,我們通常使用更穩定高效的算法來求解這個方程,而不是直接求逆,例如使用Cholesky分解(因為 X?X 是正定對稱矩陣)或奇異值分解(SVD)。Python的numpy.linalg.lstsq函數就封裝了這些方法。

四、重要注意事項

4.1 濾波器長度 M

這是一個關鍵的超參數。

  • M 太小,濾波器模型太簡單,無法捕捉真實的系統特性,導致欠擬合。

  • M 太大,濾波器會開始擬合數據中的噪聲,導致過擬合,雖然在訓練數據上表現好,但泛化能力會變差。

  • 需要通過實驗來調整,可以選擇使得均方誤差(MSE)進入平臺且不會顯著回升的 M 值。

4.2 數據的預處理

如果兩列數據的幅度或量綱差異很大,最好先進行標準化(減去均值、除以標準差)或歸一化(縮放到[0,1]或[-1,1]區間),這有助于數值計算的穩定性。

4.3 延遲問題

FIR濾波器會引入 (M-1)/2 個采樣點的延遲。在上面的圖中,你會發現濾波后的信號與真實信號在時間上可能沒有完全對齊。對于要求嚴格對齊的應用,需要對輸出信號進行相應的延遲補償。

4.4 性能評估

除了繪制圖形直觀比較,均方誤差(MSE) 是一個重要的定量指標。你還可以計算信噪比(SNR) 或相關系數(R2) 來評估濾波效果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/922301.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/922301.shtml
英文地址,請注明出處:http://en.pswp.cn/news/922301.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STC8H系列-高級PWM-兩相步進電機-細分驅動

兩相步進電機, STC8H系列 用高級PWM實現SPWM細分驅動 /************* 功能說明 ************** 用B組高級PWM細分驅動2相4線小型步進電機, 支持1、2、4、8、16、32、64細分, 比如1.8度的電機4細分到0.45度. 本程序用于演示SPWM多細分直接驅動2相4線小型步進電機…

內網環境下ubuntu 20.04搭建深度學習環境總結

2025年9月更新,隨著人工智能的發展,現在深度學習環境配置越來越簡單了,常用的pytorch、paddle(3.x)等深度學習庫安裝的時候自帶了cuda和cudnn的python包,不需要在操作系統層面自己安裝,配置環境…

深入 Linux 文件系統:從數據存儲到萬物皆文件

深入 Linux 文件系統:從數據存儲到萬物皆文件 Linux 文件系統是一個精妙而復雜的工程,它像一座圖書館,不僅存放著書籍(數據),還有一套高效的卡片索引系統(元數據)來管理它們。本文將…

C++, ffmpeg, libavcodec-RTSP拉流,opencv實時預覽

文章目錄RTSPStreamPlayer.cppRTSPStreamPlayer.hmain.cpp編譯運行在ffmpeg_rtsp原有的rtsp拉流項目基礎上加入了udp連接rtsp&#xff0c;日志模塊&#xff0c;opencv實施預覽等功能。RTSPStreamPlayer.cpp #include "RTSPStreamPlayer.h" #include <iostream>…

MySQL在Ubuntu 20.04 環境下的卸載與安裝

目錄 前言&#xff1a;學習引入 1、安裝注意事項 2、學習建議 3、MySQL 和 MariaDB 核心概念一&#xff1a;它們是什么&#xff1f; 核心概念二&#xff1a;它們如何工作&#xff1f;&#xff08;“倉庫”比喻&#xff09; 核心概念三&#xff1a;為什么它們如此流行&…

BizDevOps 是什么?如何建設企業 BizDevOps 體系

在數字經濟加速滲透的今天&#xff0c;企業數字化轉型已從 “技術升級” 轉向 “價值重構”&#xff0c;單純的 IT 研發或業務優化已難以適應市場快速變化。業務研發運營一體化&#xff08;BizDevOps&#xff09;作為打通 “業務 - 技術 - 運維” 協同壁壘的核心模式&#xff0…

Mac菜單欄綜合工具FancyTool更新啦

本次更新聚焦「輕量體驗」深度優化&#xff1a;不僅重構了 CPU 占用邏輯與系統喚醒機制&#xff0c;讓后臺運行更高效&#xff1b;更讓動畫交互全程保持絲滑流暢&#xff0c;資源消耗卻低到近乎無感 —— 哪怕它常駐菜單欄&#xff0c;你也幾乎察覺不到它的存在&#xff0c;既不…

ARM匯編 led

1.相關介紹本次用的開發板是IMX6ULLCPU&#xff1a;NXP i.MX 6ULL Cortex-A7單核處理器&#xff0c;主頻 528MHz&#xff08;工業級&#xff09; 或 800MHz&#xff08;商業級&#xff09;467, GBA封裝內存&#xff1a;512MB DDR3L RAM&#xff0c;支持高速數據存取。存儲&…

彈窗分頁保留其他頁面勾選的數據(vue)

如圖所示&#xff0c;這是個常見的多選todolist不過這里多了個要求&#xff0c;彈窗上下頁面切換的時候需要保留勾選結果這其實也不難&#xff0c;但是如果每次都手動寫一遍卻有點惱人&#xff0c;這次捋一下思路&#xff0c;并把核心代碼記錄一下&#xff0c;方便下次翻找核心…

分享:一種為藍牙、WIFI、U段音頻發射設備提供ARC回傳數字音頻橋接功能的方案

隨著智能電視、流媒體設備的普及&#xff0c;用戶對高質量音頻輸出的需求激增。為解決多設備協同、無線化傳輸及ARC高保真音頻傳輸的痛點&#xff0c;納祥科技推出HDMI ARC音頻轉換方案&#xff1a;HDMI ARC音頻轉光纖/同軸/I2S/左右聲道&#xff0c;橋接無線音頻發射設備&…

在WPF項目中使用阿里圖標庫iconfont

使用阿里圖標庫的步驟&#xff1a; 1。從阿里圖標庫官方網站上下載圖標。 2。把阿里圖標庫&#xff08;WPF中支持.ttf字體文件&#xff09;引入 3。在App.xaml中添加圖標的全局樣式。推薦在此處添加全局樣式&#xff0c;為了保證圖標可以在所有窗體中使用。 代碼如下&#x…

vue3項目啟動流程講解

Vue 3 項目啟動流程詳解Vue 3 項目的啟動流程相比 Vue 2 有了顯著變化&#xff0c;采用了新的應用實例創建方式和組合式 API。下面我將詳細講解 Vue 3 項目的啟動過程&#xff0c;并提供一個可視化演示。實現思路創建 Vue 3 應用實例配置根組件和必要的插件掛載應用到 DOM展示啟…

【C++】LLVM-mingw + VSCode:Windows 開發攻略

LLVM-mingw 是一個基于 LLVM 項目的開源工具鏈&#xff0c;用于在類 Unix 系統&#xff08;如 Linux 或 macOS&#xff09;上為 Windows 平臺交叉編譯應用程序&#xff0c;它結合了 LLVM 編譯器基礎設施&#xff08;包括 Clang C/C/Objective-C 編譯器和 LLD 鏈接器&#xff0c…

AI內容標識新規實施后,大廠AI用戶協議有何變化?(六)科大訊飛

科大訊飛也是國產老將&#xff0c;當年OpenAI橫空出世&#xff0c;國內唯有文心和星火能與之一戰&#xff0c;早期效果感覺甚至是優于文心的&#xff0c;只是后面再也沒有什么大動靜出來。訊飛也算大廠了&#xff0c;但跟百度阿里這些老牌互聯網門閥相比&#xff0c;還是不夠持…

Error: MiniProgramError{“errMsg“:“navigateTo:fail webview count limit exceed“}

這個錯誤 "navigateTo:fail webview count limit exceed" 是微信小程序中常見的頁面棧溢出問題&#xff0c;原因是微信小程序對頁面棧深度有默認限制&#xff08;通常為10層&#xff09;&#xff0c;當使用 navigateTo 連續跳轉頁面導致頁面棧超過限制時就會觸發。解…

少即是多:從 MPTCP 看優化干預的邊界

“對待端到端傳輸&#xff0c;信息不足就要少干預&#xff0c;越干預越糟糕”&#xff0c;這是我的信條&#xff0c;這次再來說說 MPTCP。 Linux 內核 MPTCP 最好的調度算法就是 default 算法&#xff0c;沒有之一&#xff0c;因為它以代價最小&#xff0c;最自然的方式做到了保…

“開源AI智能名片鏈動2+1模式S2B2C商城小程序”在直播公屏引流中的應用與效果

摘要&#xff1a;本文聚焦于直播公屏引流場景&#xff0c;探討“開源AI智能名片鏈動21模式S2B2C商城小程序”如何通過技術賦能與模式創新&#xff0c;重構直播電商的流量獲取與轉化路徑。研究結合案例分析與實證數據&#xff0c;揭示該方案在提升用戶互動、優化供應鏈管理、降低…

基于大數據挖掘的藥品不良反應知識整合與利用研究

標題:基于大數據挖掘的藥品不良反應知識整合與利用研究內容:1.摘要 隨著醫療數據的爆炸式增長&#xff0c;大數據挖掘技術在醫療領域的應用日益廣泛。本研究旨在利用大數據挖掘技術對藥品不良反應知識進行整合與利用&#xff0c;以提高藥品安全性監測和管理水平。通過收集多源異…

國產時序數據庫選型指南-從大數據視角看透的價值

摘要&#xff1a;大數據時代時序數據庫崛起&#xff0c;工業物聯網場景下每秒百萬級數據點寫入成為常態。Apache IoTDB憑借單節點1000萬點/秒的寫入性能、毫秒級查詢響應和20:1超高壓縮比脫穎而出&#xff0c;其樹形數據模型完美適配工業設備層級結構。相比傳統數據庫&#xff…

教你使用服務器如何搭建數據庫

數據庫是存儲和管理數據的核心組件&#xff0c;無論是網站、應用還是企業系統&#xff0c;都離不開數據庫的支持。本文將以 萊卡云服務器 為例&#xff0c;教你如何快速搭建常用數據庫服務。一、準備工作服務器環境推薦操作系統&#xff1a;Ubuntu 20.04 / Debian 11 / CentOS …