
時域特征把一段波形壓縮成少量數(shù)字。均值描述基線RMS描述總體能量峰峰值描述幅度范圍峭度對尖銳沖擊更敏感。特征名稱熟悉并不代表它一定適合當前任務(wù)。有效特征應(yīng)在類別之間形成穩(wěn)定差異并在設(shè)備、溫度和時間變化下保持可重復(fù)。計算量、數(shù)值穩(wěn)定性和PC/MCU一致性也要進入選擇。特征的價值由區(qū)分度、穩(wěn)定性和計算成本共同決定公式本身不能證明它有用。完成本篇后你應(yīng)該能夠解釋均值、方差、RMS、峰峰值、偏度、峰度和相關(guān)系數(shù)描述的信號屬性。識別對毛刺、量程和窗口長度敏感的特征。一次遍歷提取多項特征并用合成窗口檢查每個特征的方向是否符合預(yù)期。時域特征直接在采樣值上計算不需要FFT。它們適合幅值、能量、沖擊和通道關(guān)系能夠區(qū)分類別的任務(wù)。一、位置、離散程度與能量均值反映窗口的平均水平適合觀察零偏或直流分量方差和標準差反映數(shù)據(jù)圍繞均值的離散程度RMS不先去均值能夠反映含直流分量的整體能量。是否去均值取決于任務(wù)。姿態(tài)識別需要利用重力方向時盲目中心化會刪除有效信息純振動分析可能更關(guān)心交流分量。均值 μ (1/N)Σx?RMS √[(1/N)Σx?2]方差 σ2 (1/N)Σ(x? ? μ)2圖1不同統(tǒng)計特征強調(diào)波形的不同屬性二、極值與高階特征對異常更敏感最大值、最小值和峰峰值能夠捕捉幅值范圍但容易被單個毛刺影響。偏度描述分布不對稱峭度反映尾部和尖峰程度適合沖擊類任務(wù)也對噪聲和樣本長度敏感。高階矩計算前要檢查數(shù)值范圍。定點實現(xiàn)需要避免累加溢出浮點實現(xiàn)也應(yīng)處理方差接近零的窗口。表1常見時域特征的含義與風(fēng)險特征主要含義注意事項均值基線或直流分量去均值會刪除該信息RMS總體能量受直流偏置影響峰峰值幅值范圍對毛刺敏感峭度尖峰與重尾短窗口和噪聲下波動大過零率符號變化頻率閾值和偏置會改變結(jié)果三、相關(guān)性與跨通道特征補充方向信息六軸IMU各通道并非獨立。軸間相關(guān)系數(shù)、合加速度和角速度模長能夠描述方向耦合與整體運動強度但也會增加計算和輸入維度。特征數(shù)量增加會擴大模型參數(shù)并提高過擬合風(fēng)險??梢杂孟嚓P(guān)矩陣、單特征分布和消融實驗刪除重復(fù)或不穩(wěn)定特征。四、板端實現(xiàn)要保證一次遍歷和可驗證均值、平方和、極值和過零次數(shù)可以在一次遍歷中累計減少內(nèi)存訪問。統(tǒng)計結(jié)果應(yīng)與Python參考實現(xiàn)使用相同分母、數(shù)據(jù)類型和邊界約定。對每個特征設(shè)置單元測試包含全零、常數(shù)、正弦、沖擊和極值輸入。這樣能夠在模型調(diào)試前排除特征實現(xiàn)錯誤。C一次遍歷計算均值、RMS和峰峰值void basic_features(const float *x, size_t n,float *mean, float *rms, float *ptp){double sum 0.0, sum_sq 0.0;float min_v x[0], max_v x[0];for (size_t i 0; i n; i) {sum x[i];sum_sq (double)x[i] * x[i];if (x[i] min_v) min_v x[i];if (x[i] max_v) max_v x[i];}*mean (float)(sum / n);*rms sqrtf((float)(sum_sq / n));*ptp max_v - min_v;}同一段數(shù)據(jù)可以從位置、能量和形狀三個層面描述均值描述基線位置標準差描述圍繞均值的波動RMS描述相對零點的能量。信號存在直流偏置時RMS同時包含偏置和變化若只關(guān)心交流振動可先去均值再計算標準差或交流RMS。峰值和峰峰值關(guān)注極端幅度對沖擊敏感也容易被單個毛刺影響。峰度用于描述分布尖銳程度沖擊信號常出現(xiàn)較高峰度但樣本少時估計不穩(wěn)定。每個特征都要和數(shù)據(jù)質(zhì)量規(guī)則一起使用。過零率描述符號變化頻繁程度粗略反映頻率與噪聲。若信號有較大零偏它可能幾乎不穿過零點??梢韵热ゾ祷蚴褂孟鄬植炕€的過零但訓(xùn)練與部署必須一致。RMS sqrt(sum(x2)/N)方差 sum((x-mean)2)/N峰峰值 max(x)-min(x)多通道任務(wù)還需要描述軸之間的關(guān)系兩軸相關(guān)系數(shù)接近1表示同向變化接近-1表示反向變化接近0表示線性關(guān)系弱。六軸IMU中的軸間關(guān)系可以表達旋轉(zhuǎn)方向和機械耦合。相關(guān)系數(shù)計算前要去均值并處理某一軸方差接近0的情況。模長 sqrt(x2y2z2) 對坐標旋轉(zhuǎn)更穩(wěn)定卻失去方向。固定安裝的故障診斷可能需要方向信息穿戴式任意姿態(tài)可能受益于模長??梢酝瑫r保留每軸特征與模長特征再通過消融實驗判斷貢獻。MCU實現(xiàn)應(yīng)復(fù)用一次遍歷中的累加量sum、sum_sq、min和max。累加位寬要根據(jù)最大輸入和窗口長度計算INT16平方后至少需要更寬類型。浮點實現(xiàn)簡單定點實現(xiàn)要明確縮放和溢出。常用時域特征與敏感因素特征主要描述容易受影響均值基線與零偏漂移、安裝方向RMS/方差能量與波動量程、窗口長度峰峰值/峰度沖擊與極端毛刺、樣本數(shù)相關(guān)系數(shù)通道協(xié)同低方差與時間錯位動手讓四類信號在時域特征上顯形腳本生成靜止偏置、平穩(wěn)正弦、強隨機噪聲和帶沖擊正弦四類窗口計算均值、RMS、標準差、峰峰值、過零率和峰度。目標是先根據(jù)物理含義預(yù)測方向再用數(shù)字驗證。實驗環(huán)境與輸入Python 3標準庫。保存為 time_features.py 并運行。隨機數(shù)種子固定輸出可重復(fù)。按順序完成實驗運行前先預(yù)測哪類均值最高、哪類峰峰值最大、哪類峰度最高。運行代碼并逐項核對預(yù)測。向所有信號增加0.5偏置觀察RMS、均值和過零率變化。刪除沖擊點驗證峰度和峰峰值為何明顯下降。可直接運行六個時域特征的完整實現(xiàn)import mathimport randomrandom.seed(15)N 200signals {bias: [0.6 random.gauss(0, 0.01) for _ in range(N)],sine: [0.4*math.sin(2*math.pi*8*n/200) for n in range(N)],noise: [random.gauss(0, 0.4) for _ in range(N)],impact: [0.3*math.sin(2*math.pi*8*n/200) (2.5 if n 90 else 0.0) for n in range(N)],}def extract(x):mean sum(x) / len(x)centered [v - mean for v in x]variance sum(v*v for v in centered) / len(x)rms math.sqrt(sum(v*v for v in x) / len(x))p2p max(x) - min(x)zcr sum((a 0) ! (b 0) for a, b in zip(x, x[1:]))/(len(x)-1)fourth sum(v**4 for v in centered) / len(x)kurtosis fourth / (variance*variance) if variance 1e-12 else 0.0return mean, rms, math.sqrt(variance), p2p, zcr, kurtosisprint(name mean rms std p2p zcr kurtosis)for name, values in signals.items():f extract(values)print(f{name:8s} .join(f{v:7.3f} for v in f))先讀懂代碼中的關(guān)鍵路徑均值與RMS使用原值標準差和峰度使用去均值值兩者回答不同問題。峰度分母是方差平方方差接近0時必須保護避免NaN進入模型。過零率按相鄰點符號變化計數(shù)加入直流偏置會明顯改變它。固定信號類型幫助先預(yù)測特征方向再用輸出檢查公式實現(xiàn)。你應(yīng)該觀察到什么bias信號均值接近0.6但標準差很小說明RMS大不一定代表強振動。impact信號的峰峰值與峰度明顯上升反映少量極端點。noise信號過零率通常高于低頻正弦但具體數(shù)字受隨機樣本影響。成功標準你能從任務(wù)的物理差異出發(fā)選擇特征而非機械收集所有統(tǒng)計量。每個特征在PC與MCU上使用相同定義、除數(shù)和邊界處理。板端實現(xiàn)檢查累加位寬、除零、NaN和異常輸入。失敗時從哪里查起時域特征異常值的來源現(xiàn)象可能原因處理RMS遠大于預(yù)期存在直流偏置或單位錯誤同時查看均值和物理范圍峰度非常不穩(wěn)定窗口太短或毛刺未處理擴大樣本并保留質(zhì)量標志相關(guān)系數(shù)出現(xiàn)NaN某軸方差接近0設(shè)置最小方差保護特征測試應(yīng)包含容易手算的常量、正弦和單脈沖輸入這比只拿真實復(fù)雜波形更容易發(fā)現(xiàn)實現(xiàn)錯誤。把實驗遷移到真實MCU項目一次遍歷可以累加sum、sum_sq、min、max和過零數(shù)減少內(nèi)存訪問。峰度需要更高階累加先確認任務(wù)是否真的受益。INT16平方和可能溢出32位。用窗口長度和最大碼推導(dǎo)上界選擇int64或縮放最后與Python黃金結(jié)果比較。特征量綱也要記錄。均值和RMS繼承輸入單位方差是單位平方相關(guān)系數(shù)無量綱。把不同量綱特征直接送入Dense前通常需要基于訓(xùn)練集的縮放并在MCU復(fù)現(xiàn)。特征定義改變后應(yīng)提升預(yù)處理版本即使模型shape不變舊權(quán)重也需要重新驗證。把結(jié)果再向前推進一步為INT16輸入、N1024計算sum_sq所需的最小安全累加位寬。構(gòu)造兩個相關(guān)系數(shù)接近1和-1的軸信號并驗證實現(xiàn)。挑選不超過8個特征形成最小基線記錄每個特征的物理含義。收束時域特征是帶有物理含義的數(shù)據(jù)壓縮。通過類別區(qū)分度、跨設(shè)備穩(wěn)定性和MCU成本驗證后再保留避免堆疊無效統(tǒng)計量。