處理:LOFAR譜線譜增強(qiáng)與特征提取實(shí)戰(zhàn))
把一段水聲輻射噪聲數(shù)據(jù)丟進(jìn)MATLAB畫出LOFAR譜圖的那一刻很多人會(huì)懵。圖上確實(shí)有亮暗條紋但背景噪聲像一層霧罩在上面亮線若隱若現(xiàn)根本看不出個(gè)所以然。問題不在于你不會(huì)用spectrogram而在于從“畫譜圖”到“拿它做識(shí)別”之間缺了一整條鏈路怎么把淹沒在寬帶噪聲里的線譜挖出來怎么把增強(qiáng)后的譜圖轉(zhuǎn)化成分類器能吃的特征向量以及這套流程在MATLAB里到底怎么落地。這篇文章就圍繞這條鏈路展開講清楚線譜增強(qiáng)和特征提取的完整方法流程。內(nèi)容偏工程實(shí)踐給出可以直接跑的例子代碼、參數(shù)選擇依據(jù)和實(shí)測中踩過的坑適合正在做水聲目標(biāo)識(shí)別、機(jī)械故障診斷或者其他涉及窄帶信號(hào)檢測的朋友參考。我會(huì)按數(shù)據(jù)處理的先后順序來寫LOFAR譜怎么看、參數(shù)怎么定、增強(qiáng)怎么做、特征怎么提、分類怎么接。1. LOFAR譜上看什么線譜是目標(biāo)輻射噪聲里的“指紋信息”1.1 LOFAR譜的物理含義時(shí)間-頻率-強(qiáng)度三維信息LOFAR是Low Frequency Analysis Recording的縮寫中文通常叫低頻譜分析。它的本質(zhì)就是短時(shí)傅里葉變換STFT得到的時(shí)間-頻率-強(qiáng)度三維表示橫軸是時(shí)間縱軸是頻率顏色代表該時(shí)刻該頻點(diǎn)上的功率譜密度強(qiáng)度。把三維信息壓成二維圖像就是我們常說的LOFAR譜圖。在水聲領(lǐng)域LOFAR譜圖幾乎是目標(biāo)識(shí)別的第一道門檻。原因很簡單水下目標(biāo)輻射噪聲里最有辨識(shí)度的成分就是線譜。所謂線譜指的是頻譜上那些能量集中在極窄頻帶內(nèi)的分量在LOFAR圖上顯示為一條穩(wěn)定的水平亮線。這些亮線不是隨機(jī)出現(xiàn)的它們來自目標(biāo)內(nèi)部機(jī)械運(yùn)轉(zhuǎn)的周期性激勵(lì)頻率位置和目標(biāo)的工作狀態(tài)嚴(yán)格掛鉤所以被稱為目標(biāo)的“聲學(xué)指紋”。1.2 線譜從哪里來輻射噪聲的窄帶分量線譜的產(chǎn)生機(jī)理大致有三大來源。第一類是機(jī)械設(shè)備運(yùn)轉(zhuǎn)產(chǎn)生的周期力比如柴油機(jī)的氣缸爆發(fā)頻率、主機(jī)的軸頻、齒輪嚙合頻率這些周期力通過殼體耦合到水中形成窄帶輻射噪聲。第二類是螺旋槳的空化噪聲調(diào)制螺旋槳葉片周期性切割流場會(huì)形成葉片頻及其諧波這類線譜通常帶有明顯的低頻調(diào)制特征。第三類是流噪聲和湍流脈動(dòng)引起的壓力波動(dòng)雖然這類線譜強(qiáng)度較弱但頻率位置同樣和設(shè)備狀態(tài)強(qiáng)相關(guān)。不同目標(biāo)的線譜結(jié)構(gòu)差異非常明顯。同一型別的船舶軸頻、葉頻和諧波分布相對穩(wěn)定不同型別的目標(biāo)線譜的數(shù)量、頻率間隔、強(qiáng)度分布都有各自的規(guī)律。這就是為什么在目標(biāo)識(shí)別任務(wù)中線譜特征的優(yōu)先級遠(yuǎn)高于寬帶連續(xù)譜特征。1.3 目標(biāo)識(shí)別為什么必須優(yōu)先抓線譜寬帶連續(xù)譜能量雖然大但它主要由航速、海況等環(huán)境因素決定目標(biāo)型別之間的差異相對模糊。線譜則完全不同它直接反映目標(biāo)內(nèi)部動(dòng)力裝置的型號(hào)和工況相當(dāng)于給目標(biāo)人物做了一個(gè)可量化的“聲紋建檔”。從信噪比角度看線譜在頻率軸上能量集中即使在寬帶噪聲高于線譜總能量的情況下只要譜分辨率足夠單個(gè)頻點(diǎn)上的線譜峰值仍然可能顯著高出噪聲基底。舉個(gè)例子一個(gè)寬帶連續(xù)譜總級為120dB的目標(biāo)其單根線譜的譜級可能只有80dB但如果把它壓縮到1Hz帶寬內(nèi)線譜的譜密度可能比同帶寬內(nèi)的連續(xù)譜高出15到20dB。這就是“頻率聚集增益”。識(shí)別系統(tǒng)真正要利用的正是這個(gè)聚集增益。2. 算LOFAR譜的工程細(xì)節(jié)STFT參數(shù)選擇與MATLAB實(shí)現(xiàn)2.1 頻率分辨率與時(shí)間分辨率的此消彼長LOFAR譜的生成看似簡單調(diào)一個(gè)spectrogram函數(shù)就出圖但參數(shù)選得對不對直接決定后面增強(qiáng)和特征提取能不能做下去。首先要面對的就是頻率分辨率和時(shí)間分辨率的權(quán)衡。頻率分辨率由窗長決定公式是Δf fs / N其中fs是采樣率N是窗長點(diǎn)數(shù)。窗越長頻率分辨率越高越能把相鄰的線譜分開但時(shí)間窗口拉長后譜圖的時(shí)變跟蹤能力下降目標(biāo)機(jī)動(dòng)時(shí)線譜會(huì)出現(xiàn)嚴(yán)重的頻率拖尾。時(shí)間分辨率則取決于窗移步長步長越小時(shí)間軸上的信息越密但計(jì)算量隨之增大同時(shí)相鄰幀之間的譜高度相關(guān)。實(shí)際工程中常見的選擇是窗長取2的整數(shù)次冪以便利用FFT加速重疊率取50%到75%之間。50%重疊是無信息損失的常用下限75%重疊則有利于后續(xù)的線譜軌跡跟蹤因?yàn)闀r(shí)間幀足夠密。若采樣率為8000Hz窗長取4096點(diǎn)頻率分辨率約為1.95Hz重疊率75%時(shí)幀移為1024點(diǎn)時(shí)間分辨率約為0.128秒。2.2 用spectrogram生成LOFAR譜的關(guān)鍵參數(shù)設(shè)置MATLAB里生成LOFAR譜圖核心是spectrogram函數(shù)。下面給出一段可直接使用的參考代碼fs 8000; % 采樣率單位Hz winLen 4096; % 窗長對應(yīng)頻率分辨率約1.95Hz overlapRatio 0.75; % 重疊率 nfft winLen; % FFT點(diǎn)數(shù)不小于窗長即可 win hamming(winLen); % 窗函數(shù)Hamming是時(shí)頻分析常用選擇 [x, fs] audioread(target_noise.wav); % 讀取水聲數(shù)據(jù)單通道 [S, f, t] spectrogram(x, win, round(winLen * overlapRatio), nfft, fs); % 轉(zhuǎn)換為功率譜密度單位dB S_db 10 * log10(abs(S) / nfft eps); % 繪制LOFAR譜圖 figure; imagesc(t, f, S_db); axis xy; xlabel(時(shí)間 (s)); ylabel(頻率 (Hz)); title(LOFAR譜圖); c colorbar; c.Label.String 功率譜密度 (dB); clim([prctile(S_db(:), 5), prctile(S_db(:), 95)]); % 按百分位截?cái)鄤?dòng)態(tài)范圍注意最后一行動(dòng)態(tài)范圍截?cái)鄬梢暬瘶O為關(guān)鍵。水聲信號(hào)的動(dòng)態(tài)范圍常常超過40dB如果不做截?cái)嗑W(wǎng)格色標(biāo)會(huì)讓強(qiáng)線譜旁邊的弱線譜完全淹沒在色帶里。按5%到95%的百分位截?cái)嗍亲詈唵蔚淖赃m應(yīng)動(dòng)態(tài)范圍壓縮方法。也可以嘗試用中位數(shù)加減若干個(gè)標(biāo)準(zhǔn)差來截?cái)嘈Ч愃啤?.3 頻譜細(xì)化與低頻端修正標(biāo)準(zhǔn)STFT得到的頻率刻度是均勻分布的但目標(biāo)線譜大多集中在低頻段均勻頻率刻度在低頻段的分辨率往往不夠用。如果發(fā)現(xiàn)兩根重要線譜的頻率間隔小于2倍頻率分辨率直接增大窗長又會(huì)拖慢時(shí)間響應(yīng)這時(shí)可以用線性調(diào)頻z變換CZT做頻譜細(xì)化。MATLAB內(nèi)置的czt函數(shù)可以指定任意起止頻率范圍做局部頻譜放大。比如對0到200Hz頻段做細(xì)化[fine_f, fine_S] czt_spectrum(x, fs, [0, 200], 1024);這里的原理是CZT在z平面上的單位圓上沿螺旋線采樣通過變換參數(shù)將頻譜采樣點(diǎn)集中到目標(biāo)頻段。我在實(shí)際項(xiàng)目里用它來確認(rèn)低頻線譜的精確頻率位置提取精度可以比標(biāo)準(zhǔn)STFT高出一個(gè)數(shù)量級。但CZT不適合替代完整的LOFAR譜計(jì)算只推薦作為線譜頻率精測的輔助工具。另一個(gè)低頻端的問題是頻譜泄漏。由于Hamming窗旁瓣抑制能力有限強(qiáng)線譜會(huì)在頻域產(chǎn)生旁瓣泄漏污染相鄰弱線譜的測量。這種情況可以改用Kaiser窗并調(diào)整β參數(shù)來控制旁瓣高度。Kaiser窗的旁瓣衰減隨β增加而改善但主瓣會(huì)變寬使用時(shí)要重新核算頻率分辨率是否滿足需求。3. 增強(qiáng)前先看懂噪聲線譜被淹沒的三種情況3.1 寬帶連續(xù)譜、強(qiáng)干擾線譜與多普勒漂移線譜增強(qiáng)不是簡單“把圖變亮”而是要有針對性地把目標(biāo)線譜從干擾中剝離出來。在實(shí)際數(shù)據(jù)里線譜被淹沒的情況主要有三種。第一種是寬帶連續(xù)譜的壓制。海洋環(huán)境噪聲、遠(yuǎn)處航船噪聲、流噪聲疊加在一起形成一條隨頻率緩慢變化的寬帶基底。線譜相當(dāng)于“山丘上的細(xì)針”如果針不夠高從視覺上根本辨別不出來。第二種是強(qiáng)干擾線譜。某些固定頻率的干擾比如50Hz工頻及其諧波、某型設(shè)備的高強(qiáng)度窄帶輻射在LOFAR圖中呈現(xiàn)出比目標(biāo)線譜更亮、更穩(wěn)定的條紋。如果不做區(qū)分特征提取程序會(huì)把干擾線譜當(dāng)作目標(biāo)線譜提出來后續(xù)分類器直接學(xué)習(xí)到錯(cuò)誤的特征。第三種是目標(biāo)機(jī)動(dòng)導(dǎo)致的線譜頻率漂移。勻速直線運(yùn)動(dòng)時(shí)線譜在LOFAR圖上基本是水平的目標(biāo)一旦變速或轉(zhuǎn)向多普勒效應(yīng)會(huì)讓線譜產(chǎn)生緩慢的傾斜甚至彎曲。如果窗口參數(shù)和跟蹤算法不支持這種漂移增強(qiáng)和特征提取都會(huì)失效。很多論文里的方法在仿真數(shù)據(jù)上表現(xiàn)得很好一到實(shí)測數(shù)據(jù)就崩盤原因就在這里。3.2 本底噪聲估計(jì)與分頻帶能量均衡在做增強(qiáng)之前建議先做一步預(yù)處理估計(jì)LOFAR譜圖的本底噪聲并做分頻帶能量均衡。本底噪聲估計(jì)最簡單的方法是對時(shí)間維度取中位數(shù)。因?yàn)榫€譜在時(shí)間軸上不是每一幀都連續(xù)存在的信號(hào)起伏、傳播信道變化都會(huì)造成線譜閃爍中位數(shù)相比均值更能抵抗異常幀的影響。用中位數(shù)估計(jì)出的本底譜B(f)然后在每個(gè)頻點(diǎn)上做減去本底的處理background median(S_db, 2); % 對時(shí)間維取中位數(shù)得到長度頻率點(diǎn)數(shù)的向量 S_sub S_db - background; % 逐點(diǎn)減去本底相當(dāng)于高通濾波這一步做完寬帶連續(xù)譜的大尺度起伏被壓平線譜的局部對比度會(huì)明顯增強(qiáng)。但要注意單純做減背景會(huì)在強(qiáng)線譜的位置留下“負(fù)值空洞”因?yàn)檫@些頻點(diǎn)上本底中位數(shù)也被線譜拉高了。所以減背景之后還需要配合后續(xù)的形態(tài)學(xué)處理來修復(fù)。分頻帶能量均衡是另一種思路把頻率軸分成若干個(gè)倍頻程或等對數(shù)間隔的頻帶在每個(gè)頻帶內(nèi)做歸一化讓所有頻帶的能量分布在同一尺度上。這樣做的好處是低頻段強(qiáng)線譜不會(huì)壓制高頻段弱線譜的顯示和檢測。對于分類識(shí)別來說均衡后的特征更穩(wěn)定因?yàn)樗魅趿藗鞑ゾ嚯x、海況等全局因素對特征幅度的擾動(dòng)。4. 線譜增強(qiáng)的實(shí)現(xiàn)路徑形態(tài)學(xué)濾波、雙邊濾波與組合策略4.1 形態(tài)學(xué)頂帽變換的原理和MATLAB實(shí)現(xiàn)在圖像處理領(lǐng)域形態(tài)學(xué)頂帽變換Top-Hat是經(jīng)典的背景抑制手段用在LOFAR譜圖上恰好對癥。頂帽變換的定義是原圖減去開運(yùn)算結(jié)果開運(yùn)算是先腐蝕后膨脹。對于LOFAR譜圖線譜是水平方向的窄亮結(jié)構(gòu)而背景是緩慢變化的大尺度結(jié)構(gòu)。用一個(gè)水平方向的線形結(jié)構(gòu)元素做開運(yùn)算可以估計(jì)出“背景山體”原圖減去背景山體后剩下的就是“山體上的細(xì)針”也就是線譜。MATLAB代碼實(shí)現(xiàn)如下se strel(line, len, 0); % 水平線形結(jié)構(gòu)元素長度len需要按譜圖尺寸設(shè)置 S_tophat imtophat(S_db, se);這里最關(guān)鍵的是結(jié)構(gòu)元素長度len的選擇。len太短開運(yùn)算估計(jì)出的背景會(huì)隨著線譜起伏導(dǎo)致線譜被削弱len太長背景估計(jì)過于平滑無法抑制大尺度的不均勻性。我的經(jīng)驗(yàn)是先按譜圖的頻率方向分辨率折算len取線譜典型寬度的3到5倍比較合適。比如頻率分辨率為2Hz典型線譜寬度為2到3個(gè)頻率點(diǎn)len取8到15個(gè)像素長度即可。頂帽變換對水平線譜的增強(qiáng)效果非常顯著。它的好處是只依賴局部形態(tài)特征不需要估計(jì)噪聲方差對非平穩(wěn)背景的適應(yīng)性強(qiáng)。但要注意如果線譜本身不是水平而是有斜率的目標(biāo)機(jī)動(dòng)時(shí)水平結(jié)構(gòu)元素會(huì)失效。這時(shí)可以準(zhǔn)備多個(gè)方向的結(jié)構(gòu)元素分別做頂帽后取最大值。4.2 雙邊濾波在譜圖上的保邊去噪效果頂帽變換處理完背景大尺度起伏被移除但譜圖上仍然殘留大量斑點(diǎn)狀隨機(jī)噪聲。這些噪聲在頻域上表現(xiàn)為孤立亮點(diǎn)如果不加處理后續(xù)峰值檢測會(huì)輸出大量假目標(biāo)。雙邊濾波Bilateral Filter可以較好解決這個(gè)問題。雙邊濾波的核心思想是濾波權(quán)值同時(shí)考慮空間鄰近度和灰度相似度。在均勻區(qū)域空間近的像素互相平均噪聲被消除在邊緣處灰度差異大的像素不參與平均邊緣被保持。對LOFAR譜圖來說線譜的窄帶能量在頻率方向的梯度很大雙邊濾波在平滑噪聲的同時(shí)能保持線譜的銳利邊緣。MATLAB自帶的imgaussfilt只做高斯平滑屬于低通濾波雖然能平滑噪聲但會(huì)把線譜邊緣一起磨糊。推薦使用imbilatfilt函數(shù)需要Image Processing ToolboxS_denoised imbilatfilt(S_tophat, degreeOfSmoothing);degreeOfSmoothing參數(shù)控制灰度相似度的容忍范圍。取值越小保留的邊緣細(xì)節(jié)越多但降噪能力下降取值越大越接近普通高斯濾波。我通常用0.05到0.2之間具體需要根據(jù)譜圖動(dòng)態(tài)范圍調(diào)整。一個(gè)實(shí)用技巧是先對S_tophat做百分位歸一化到[0,1]區(qū)間再統(tǒng)一用0.05附近的平滑度這樣參數(shù)在不同數(shù)據(jù)間更有可比性。4.3 增強(qiáng)效果怎么評估很多人做增強(qiáng)只看“圖變好看了”這是不夠的。工程上需要量化評估增強(qiáng)效果否則很難判斷算法改動(dòng)到底是變好了還是變壞了。兩個(gè)最直觀的定量指標(biāo)是線譜信噪比增益和虛警率。線譜信噪比增益定義為增強(qiáng)后的線譜峰值與局部噪聲基底之比除以增強(qiáng)前的比值。虛警率則通過設(shè)定一個(gè)固定閾值統(tǒng)計(jì)增強(qiáng)譜圖中的檢測點(diǎn)數(shù)中屬于真實(shí)線譜的比例。還有一個(gè)更實(shí)用的評估方式不單獨(dú)看增強(qiáng)結(jié)果而是把增強(qiáng)后的譜圖送進(jìn)分類器比較分類準(zhǔn)確率的變化。增強(qiáng)算法的最終目的是提升識(shí)別性能如果增強(qiáng)后分類器效果沒變甚至變差即使譜圖再“好看”也沒有實(shí)際價(jià)值。我一直建議把增強(qiáng)模塊和識(shí)別模塊放在一起做端到端測試這樣選出來的增強(qiáng)參數(shù)才是真正有用的參數(shù)。5. 特征提取的完整鏈路從二維譜圖到一維特征向量5.1 峰值檢測與譜線軌跡關(guān)聯(lián)增強(qiáng)了譜圖下一步就要從譜圖中找到線譜的位置并跟蹤它們的軌跡。峰值檢測不算難逐幀尋找局部最大值再對峰值頻率做聚類即可。真正麻煩的是軌跡關(guān)聯(lián)同一根線譜在不同幀之間會(huì)因目標(biāo)運(yùn)動(dòng)而緩慢移動(dòng)怎么把這些離散的峰值歸屬到同一條軌跡上。一個(gè)簡單且魯棒的關(guān)聯(lián)策略是最近鄰關(guān)聯(lián)對第t幀的每個(gè)峰值尋找第t1幀中頻率最接近且不超過最大允許偏移的峰值進(jìn)行配對如果沒有候選峰值則允許該軌跡在有限幀內(nèi)保持“記憶”。MATLAB里可以用卡爾曼濾波來做但對計(jì)算資源有限的場景最近鄰加滑窗記憶已經(jīng)可以覆蓋絕大多數(shù)情況。maxFreqOffset 3; % 最大允許頻率偏移單位Hz取決于目標(biāo)機(jī)動(dòng)強(qiáng)度和幀率 trackLifeTime 5; % 允許軌跡丟失的最大幀數(shù)軌跡關(guān)聯(lián)做完后每條軌跡對應(yīng)一個(gè)候選線譜。軌跡長度越長該線譜真實(shí)存在的概率越高因?yàn)殡S機(jī)噪聲不太可能持續(xù)出現(xiàn)在同一頻率附近很多幀。把軌跡長度作為置信度權(quán)重是一個(gè)成本極低的篩選手段。5.2 諧波族自動(dòng)提取與軸頻估計(jì)目標(biāo)線譜往往不是孤立的單根譜線而是以基頻和諧波的族群出現(xiàn)。軸頻基頻f0諧波在2f0、3f0、4f0……處出現(xiàn)。利用諧波關(guān)系做自動(dòng)提取能大幅提升特征穩(wěn)定性即使基頻被干擾遮蔽只要檢測到多個(gè)諧波也能反推出基頻位置。諧波族搜索可以用“基頻假設(shè)-投票”策略。假設(shè)基頻在[f0_min, f0_max]區(qū)間內(nèi)對每個(gè)候選基頻f0統(tǒng)計(jì)在f0整數(shù)倍附近是否存在檢測到的線譜并計(jì)算累加能量。累加能量最大的f0作為軸頻估計(jì)值。f0_candidates f0_min : 0.1 : f0_max; score zeros(size(f0_candidates)); for k 1 : numel(f0_candidates) harmonics (1 : maxHarmonic) * f0_candidates(k); score(k) sum(interp1(f_line, line_strength, harmonics, linear, 0)); end [~, idx] max(score); est_f0 f0_candidates(idx);這里line_strength是每條線譜軌跡的幅值序列f_line是對應(yīng)的頻率位置。interp1的作用是在諧波頻率不一定恰好落在檢測頻率上的時(shí)候完成插值取數(shù)。軸頻的估計(jì)精度直接影響后續(xù)特征向量質(zhì)量建議配合第2.3節(jié)的CZT細(xì)化為基頻頻率精測。5.3 組合特征向量的設(shè)計(jì)與歸一化線譜增強(qiáng)后的信息要變成分類器可用的特征向量一般從以下幾個(gè)維度組合特征第一個(gè)維度是譜結(jié)構(gòu)特征包括線譜總條數(shù)、最強(qiáng)線譜的頻率和幅值、線譜在頻域的分布范圍。這些特征反映目標(biāo)的總體輻射特征。第二個(gè)維度是諧波結(jié)構(gòu)特征包括軸頻估計(jì)值、諧波個(gè)數(shù)、各次諧波相對基頻的幅值比。軸頻特征對目標(biāo)型別辨識(shí)能力極強(qiáng)。第三個(gè)維度是線譜穩(wěn)定性特征即各線譜軌跡在時(shí)間維上的持續(xù)幀數(shù)、頻率抖動(dòng)方差。機(jī)動(dòng)目標(biāo)的線譜抖動(dòng)方差大穩(wěn)定工況目標(biāo)則小這個(gè)維度對工況分類有重要價(jià)值。特征向量構(gòu)造完之后必須做歸一化。不同特征的量綱差異很大軸頻可能是幾十到幾百赫茲線譜幅值比是0到1的小數(shù)不歸一化會(huì)讓SVM等分類器的主導(dǎo)維度完全被大數(shù)值特征占據(jù)。推薦的做法是每個(gè)特征維度做z-score標(biāo)準(zhǔn)化即減去均值除以標(biāo)準(zhǔn)差均值標(biāo)準(zhǔn)差從訓(xùn)練集統(tǒng)計(jì)得出測試集沿用訓(xùn)練集的統(tǒng)計(jì)參數(shù)避免信息泄漏。6. 分類識(shí)別的最后一程特征組合策略與分類器選型6.1 特征向量的維度、互補(bǔ)性與冗余控制特征不是越多越好。特征維度高了訓(xùn)練樣本需求量指數(shù)上升這在實(shí)測數(shù)據(jù)里往往無法滿足。一條重要的工程經(jīng)驗(yàn)是優(yōu)先保留物理意義明確、與目標(biāo)機(jī)理性直接相關(guān)的特征比如軸頻、諧波族結(jié)構(gòu)、最強(qiáng)線譜頻率至于統(tǒng)計(jì)紋理類特征如譜圖的灰度共生矩陣雖然包含了大量信息但在樣本量有限時(shí)容易過擬合。特征之間的互補(bǔ)性比數(shù)量重要。軸頻描述目標(biāo)的“機(jī)器身份”線譜穩(wěn)定性描述目標(biāo)的“工況狀態(tài)”線譜幅值分布描述目標(biāo)的“聲源強(qiáng)度”。三者分別刻畫不同側(cè)面組合起來才能做到同一目標(biāo)在不同工況下的魯棒識(shí)別。挑選特征組合時(shí)可以用簡單的線性相關(guān)性分析做初篩兩兩特征之間的相關(guān)系數(shù)超過0.9時(shí)只保留其中之一。這個(gè)方法雖然粗糙但能有效壓縮冗余維度。6.2 分類器對比與調(diào)優(yōu)特征向量是低維結(jié)構(gòu)化數(shù)據(jù)維度通常少于50這種情況下傳統(tǒng)的機(jī)器學(xué)習(xí)分類器通常比深度網(wǎng)絡(luò)更合適原因是小樣本下深度網(wǎng)絡(luò)很容易過擬合。我常用的基準(zhǔn)分類器是SVM配合RBF核。SVM在低維小樣本場景下訓(xùn)練快、泛化能力尚可并且有成熟的超參數(shù)調(diào)優(yōu)策略——GridSearch加交叉驗(yàn)證。隨機(jī)森林也是強(qiáng)有力的候選它對特征縮放不敏感、能輸出特征重要性便于反哺特征篩選。如果數(shù)據(jù)量足夠比如每個(gè)類別幾千個(gè)樣本也可以考慮梯度提升樹或淺層MLP。在最近的幾次對比實(shí)驗(yàn)中隨機(jī)森林在中等樣本量下的分類準(zhǔn)確率通常比SVM高2到5個(gè)百分點(diǎn)而且不需要仔細(xì)調(diào)核函數(shù)參數(shù)。但SVM在極低信噪比數(shù)據(jù)上往往更穩(wěn)因?yàn)镽BF核的決策邊界更光滑對噪聲特征的魯棒性更好。% 以fitcecoc為例使用SVM做多分類 template templateSVM(KernelFunction, rbf, KernelScale, auto, Standardize, true); model fitcecoc(feature_train, label_train, Learners, template, Coding, onevsone); label_pred predict(model, feature_test); accuracy mean(label_pred label_test);6.3 從數(shù)據(jù)流角度看整個(gè)識(shí)別系統(tǒng)的閉環(huán)把前面的步驟串起來一個(gè)完整的線譜增強(qiáng)與特征提取識(shí)別系統(tǒng)數(shù)據(jù)流向大致是原始時(shí)域信號(hào) → STFT生成LOFAR譜 → 本底估計(jì)與分頻帶均衡 → 形態(tài)學(xué)頂帽增強(qiáng) → 雙邊濾波平滑 → 峰值檢測與軌跡關(guān)聯(lián) → 諧波族提取與特征向量構(gòu)造 → 歸一化 → 分類器識(shí)別。在這個(gè)鏈路里增強(qiáng)模塊的輸出是特征提取的輸入特征提取的輸出又是分類器的輸入任何一環(huán)的參數(shù)擾動(dòng)都會(huì)向后傳遞。所以在優(yōu)化算法時(shí)不要讓每一部分單獨(dú)調(diào)到“最優(yōu)”再拼接而應(yīng)該用端到端的評估標(biāo)準(zhǔn)做整體調(diào)優(yōu)。否則很可能出現(xiàn)局部最優(yōu)加起來不是全局最優(yōu)的情況。7. 實(shí)測中的常見坑與調(diào)參心得7.1 譜圖參數(shù)與增強(qiáng)參數(shù)的聯(lián)動(dòng)關(guān)系窗長、重疊率、結(jié)構(gòu)元素長度這三個(gè)參數(shù)之間存在聯(lián)動(dòng)關(guān)系調(diào)參時(shí)必須一起考慮。窗長增大后頻率分辨率提升線譜在頻率方向上的展寬會(huì)變窄同一根線譜占的像素?cái)?shù)量變化形態(tài)學(xué)結(jié)構(gòu)元素的長度也要跟著調(diào)整。我個(gè)人的推薦做法是先用仿真信號(hào)固定一組已知線譜跑一遍完整流程用第4.3節(jié)的定量指標(biāo)做基準(zhǔn)。然后把參數(shù)逐一偏離觀察指標(biāo)變化趨勢。這樣能快速找到參數(shù)的敏感方向再針對實(shí)測數(shù)據(jù)做小范圍微調(diào)。7.2 線譜斷裂與慢漂移問題的處理實(shí)測數(shù)據(jù)里最常遇到的問題就是線譜斷裂。信道衰落、目標(biāo)機(jī)動(dòng)、環(huán)境噪聲驟增等因素都會(huì)導(dǎo)致線譜在某幾幀內(nèi)消失軌跡跟蹤時(shí)如果不做處理一根完整線譜會(huì)被拆成多段短軌跡特征提取時(shí)統(tǒng)計(jì)的線譜條數(shù)就會(huì)虛高。處理辦法是在軌跡關(guān)聯(lián)時(shí)采用“允許短暫中斷”的策略。也就是前面提到的最多容忍連續(xù)丟失幀數(shù)trackLifeTime。這個(gè)參數(shù)的物理含義是目標(biāo)線譜在時(shí)間上最長的連續(xù)不可見時(shí)間。設(shè)置成5到8幀通??梢愿采w絕大多數(shù)信道衰落情況。但如果設(shè)置太大又容易把隨機(jī)噪聲軌跡拼成假線譜需要根據(jù)信噪比水平做權(quán)衡。7.3 增強(qiáng)強(qiáng)度與識(shí)別效果之間的平衡很多人在做增強(qiáng)時(shí)容易走極端把譜圖處理得“干干凈凈”只剩幾根線譜。干凈的結(jié)果確實(shí)很好看但代價(jià)是丟掉了連續(xù)譜和弱線譜里的分類信息。識(shí)別效果反而可能變差。我的原則是增強(qiáng)只處理背景和噪聲不壓制真實(shí)信號(hào)。頂帽變換移除大尺度背景雙邊濾波平滑隨機(jī)噪聲這兩步合在一起基本不會(huì)損失目標(biāo)線譜信息。后續(xù)的峰值檢測閾值則承擔(dān)主要篩選職能把低置信度的譜線過濾掉。簡而言之增強(qiáng)模塊做到“提對比度降噪”篩選模塊做到“定閾值去虛警”兩者各司其職不要混在一起。最后分享一個(gè)小技巧如果現(xiàn)場數(shù)據(jù)量有限很難覆蓋各種海況和目標(biāo)工況可以用仿真數(shù)據(jù)預(yù)訓(xùn)練整套流程的參數(shù)再用少量實(shí)測數(shù)據(jù)做遷移微調(diào)。這樣可以避免實(shí)測數(shù)據(jù)不足導(dǎo)致參數(shù)過擬合到某一次試驗(yàn)環(huán)境上。