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