傅里葉變換(STFT)原理與工程實(shí)戰(zhàn)指南)
1. 什么是短時(shí)傅里葉變換它不是“傅里葉的升級(jí)版”而是信號(hào)醫(yī)生的聽診器你手里有一段30秒的錄音——前5秒是鋼琴獨(dú)奏中間10秒突然插入一段人聲對(duì)話后15秒又變成鼓點(diǎn)節(jié)奏。如果直接扔給標(biāo)準(zhǔn)傅里葉變換FFT去分析結(jié)果會(huì)告訴你“這段音頻整體上能量集中在200Hz、800Hz和2kHz附近”。聽起來(lái)很專業(yè)但問(wèn)題來(lái)了你根本不知道200Hz的能量是來(lái)自開頭的鋼琴泛音還是中間說(shuō)話人的基頻抑或是結(jié)尾鼓面的共振。就像一位老中醫(yī)只摸一次脈就斷言“你全身氣血不暢”卻說(shuō)不清是肝經(jīng)淤堵還是心包經(jīng)滯澀——這在工程實(shí)踐中等于沒(méi)診斷。短時(shí)傅里葉變換STFT要解決的正是這個(gè)“時(shí)間盲區(qū)”。它不追求全局頻譜而是把整段信號(hào)切成一個(gè)個(gè)重疊的小窗口比如每20毫秒切一刀對(duì)每個(gè)小窗口單獨(dú)做FFT再把所有窗口的結(jié)果按時(shí)間順序堆疊起來(lái)形成一張二維圖橫軸是時(shí)間縱軸是頻率顏色深淺代表該時(shí)刻該頻率的能量強(qiáng)度。這張圖就是時(shí)頻譜圖Spectrogram——它讓信號(hào)從“一維波形”變成了“二維地圖”你能清晰看到鋼琴音符在0.2秒處亮起440Hz人聲在1.8秒開始激活120Hz基頻鼓點(diǎn)在2.5秒炸開60Hz低頻能量。我第一次用STFT分析電機(jī)異響時(shí)就是在譜圖上發(fā)現(xiàn)某個(gè)特定轉(zhuǎn)速下1750Hz頻帶持續(xù)出現(xiàn)尖峰——這直接鎖定了軸承內(nèi)圈缺陷的位置比靠耳朵聽準(zhǔn)了十倍。它的核心邏輯非常樸素局部平穩(wěn)性假設(shè)。任何真實(shí)信號(hào)在極短時(shí)間內(nèi)毫秒級(jí)可近似為“平穩(wěn)”的——就像高速行駛的汽車在1/100秒內(nèi)速度變化微乎其微我們就能用這一瞬間的速度代表短時(shí)狀態(tài)。STFT正是抓住這個(gè)物理直覺(jué)用滑動(dòng)窗口把非平穩(wěn)信號(hào)“掰碎”成無(wú)數(shù)個(gè)準(zhǔn)平穩(wěn)片段。所以它不是FFT的替代品而是FFT的“時(shí)空調(diào)度員”FFT負(fù)責(zé)解構(gòu)單個(gè)窗口的頻率成分STFT負(fù)責(zé)組織這些窗口的時(shí)間序列。當(dāng)你看到“STFT vs FFT”的對(duì)比時(shí)真正該問(wèn)的是“我的問(wèn)題需要知道‘什么時(shí)候發(fā)生了什么頻率’還是只需要知道‘整體有哪些頻率’”——前者選STFT后者用FFT就夠了。這也是為什么DSO138示波器固件里FFT功能做得很成熟但想看開關(guān)電源噪聲隨負(fù)載跳變的頻譜演化就必須自己加STFT模塊Vivado里的FFT IP核能高效計(jì)算但若要做實(shí)時(shí)語(yǔ)音端點(diǎn)檢測(cè)就得在頂層邏輯里嵌入窗函數(shù)控制與時(shí)頻數(shù)據(jù)流管理。2. STFT的底層設(shè)計(jì)邏輯窗函數(shù)、重疊與分辨率的三角博弈STFT看似只是“切片F(xiàn)FT”但實(shí)際落地時(shí)三個(gè)參數(shù)的選擇直接決定結(jié)果能否用窗長(zhǎng)Window Length、窗類型Window Function、重疊率Overlap Ratio。它們不是獨(dú)立變量而是一張相互牽制的網(wǎng)——調(diào)一個(gè)另外兩個(gè)必然受影響。我曾用同一段齒輪箱振動(dòng)信號(hào)嘗試過(guò)12種窗長(zhǎng)/類型組合最終發(fā)現(xiàn)沒(méi)有“最優(yōu)解”只有“最適合當(dāng)前故障特征的解”。2.1 窗長(zhǎng)時(shí)間分辨率與頻率分辨率的零和游戲窗長(zhǎng)決定了你能看清多快的事件變化也決定了你能分辨多近的兩個(gè)頻率。這里有個(gè)硬約束時(shí)間分辨率 Δt ≈ 窗長(zhǎng) T頻率分辨率 Δf ≈ 1/T。也就是說(shuō)窗長(zhǎng)取10ms你最多能區(qū)分相隔100Hz的兩個(gè)正弦波1/0.01100但也能捕捉到10ms內(nèi)發(fā)生的沖擊若窗長(zhǎng)拉到100ms頻率分辨率提升到10Hz卻再也無(wú)法識(shí)別10ms級(jí)的瞬態(tài)沖擊。這就像用不同焦距的鏡頭拍同一場(chǎng)足球賽廣角鏡頭短窗能看清球員跑位軌跡時(shí)間細(xì)節(jié)但看不清球衣號(hào)碼頻率細(xì)節(jié)長(zhǎng)焦鏡頭長(zhǎng)窗能看清球衣號(hào)碼頻率細(xì)節(jié)卻丟失了傳球路線時(shí)間細(xì)節(jié)。我在分析風(fēng)力發(fā)電機(jī)變槳電機(jī)電流時(shí)最初用256點(diǎn)窗長(zhǎng)采樣率10kHz下約25ms結(jié)果譜圖上全是模糊的寬帶噪聲——直到把窗長(zhǎng)縮短到64點(diǎn)6.4ms才在1.2秒處清晰看到一個(gè)2.3kHz的周期性沖擊對(duì)應(yīng)葉片掃過(guò)塔筒的氣流擾動(dòng)。提示實(shí)際選擇窗長(zhǎng)時(shí)先明確你的目標(biāo)特征尺度。若檢測(cè)軸承故障沖擊典型持續(xù)0.5~5ms窗長(zhǎng)必須≤5ms若分析語(yǔ)音元音共振峰持續(xù)50~200ms窗長(zhǎng)可取100ms若追蹤電網(wǎng)諧波緩慢漂移分鐘級(jí)窗長(zhǎng)甚至可達(dá)1秒以上。2.2 窗函數(shù)為什么不用矩形窗削峰填谷的物理代價(jià)理論上最簡(jiǎn)單的窗是矩形窗——直接截?cái)嘈盘?hào)。但它會(huì)在頻域產(chǎn)生嚴(yán)重的頻譜泄漏Spectral Leakage一個(gè)純50Hz正弦波經(jīng)過(guò)矩形窗FFT后能量會(huì)向鄰近頻率45Hz、55Hz等擴(kuò)散像墨水滴在宣紙上暈開。這是因?yàn)榫匦未霸跁r(shí)域有劇烈的跳變窗邊緣從1突變?yōu)?根據(jù)傅里葉對(duì)偶性時(shí)域跳變?cè)絼×翌l域主瓣越寬、旁瓣越高。實(shí)際中我們寧可犧牲一點(diǎn)主瓣寬度也要壓低旁瓣——這就是漢寧窗Hanning、海明窗Hamming、布萊克曼窗Blackman存在的意義。漢寧窗主瓣寬度≈2×矩形窗旁瓣衰減≈31dB。適合大多數(shù)通用場(chǎng)景如音頻分析、振動(dòng)監(jiān)測(cè)。我調(diào)試DSO138示波器STFT固件時(shí)默認(rèn)就用它因?yàn)榧骖櫫朔直媛逝c泄漏抑制。海明窗主瓣略寬于漢寧窗但旁瓣衰減達(dá)41dB更適合強(qiáng)弱信號(hào)共存的場(chǎng)景。比如分析心電圖中的R波強(qiáng)與P波弱用海明窗能避免R波能量淹沒(méi)P波。布萊克曼窗旁瓣衰減60dB以上但主瓣寬達(dá)矩形窗的3倍。僅用于極端要求旁瓣抑制的場(chǎng)合如雷達(dá)信號(hào)處理中分離微弱目標(biāo)回波。注意窗函數(shù)選擇本質(zhì)是“泄漏容忍度”與“分辨率損失”的權(quán)衡。實(shí)測(cè)中我見過(guò)工程師因盲目追求高旁瓣衰減選用布萊克曼窗分析高頻開關(guān)噪聲結(jié)果把本應(yīng)清晰的100kHz開關(guān)紋波展寬成一片模糊色帶反而掩蓋了故障特征。2.3 重疊率不是越多越好而是讓“時(shí)間步進(jìn)”匹配物理過(guò)程重疊率指相鄰窗口的重合比例。50%重疊意味著每移動(dòng)半個(gè)窗長(zhǎng)就計(jì)算一次FFT。重疊的作用是緩解窗邊界效應(yīng)——信號(hào)在窗邊緣被強(qiáng)制置零若不重疊這些“人為零點(diǎn)”會(huì)引入虛假頻率成分。但重疊率并非越高越好100%重疊即每點(diǎn)都作為新窗口起點(diǎn)雖能獲得最高時(shí)間精度卻帶來(lái)巨大計(jì)算量且相鄰譜線高度相關(guān)信息冗余嚴(yán)重。我的經(jīng)驗(yàn)法則是重疊率 max(50%, 1 - Δt_desired / T)。其中Δt_desired是你希望檢測(cè)的最快事件變化間隔。例如若需捕捉≥20ms間隔的瞬態(tài)事件窗長(zhǎng)T100ms則最小重疊率1-20/10080%。在工業(yè)現(xiàn)場(chǎng)部署的電機(jī)監(jiān)測(cè)系統(tǒng)中我們固定采用75%重疊——既保證能分辨軸承故障沖擊典型間隔30ms又將計(jì)算負(fù)載控制在ARM Cortex-M4處理器可承受范圍內(nèi)。有趣的是DSO138示波器固件因資源受限重疊率僅設(shè)為25%這導(dǎo)致其STFT模式在觀察快速變化信號(hào)時(shí)出現(xiàn)明顯的“階梯狀”時(shí)間軸但對(duì)穩(wěn)態(tài)諧波分析影響不大。3. STFT的實(shí)操實(shí)現(xiàn)從公式到代碼每一步都藏著坑STFT的數(shù)學(xué)表達(dá)式看起來(lái)很簡(jiǎn)潔STFT{x(t)} ∫ x(τ) w(t?τ) e^(?j2πfτ) dτ其中w(t)是窗函數(shù)。但真正寫代碼時(shí)離散化、索引對(duì)齊、歸一化這些細(xì)節(jié)稍不注意就會(huì)產(chǎn)出完全錯(cuò)誤的譜圖。我曾花兩天時(shí)間排查一個(gè)“譜圖顏色異常”的bug最后發(fā)現(xiàn)是窗函數(shù)歸一化方式錯(cuò)了——這絕不是理論書里會(huì)強(qiáng)調(diào)的點(diǎn)卻是實(shí)操者天天踩的坑。3.1 離散化關(guān)鍵三步采樣、窗長(zhǎng)、FFT點(diǎn)數(shù)的隱含關(guān)系假設(shè)原始信號(hào)采樣率fs10kHz你決定用窗長(zhǎng)N256點(diǎn)即25.6msFFT點(diǎn)數(shù)Nfft1024。這里存在三個(gè)易錯(cuò)點(diǎn)窗長(zhǎng)N必須是整數(shù)點(diǎn)不能設(shè)“窗長(zhǎng)25ms”必須換算成Nround(25ms × fs)250點(diǎn)。若fs44.1kHz25ms對(duì)應(yīng)1102.5點(diǎn)必須取整為1102或1103——這點(diǎn)差異會(huì)導(dǎo)致窗函數(shù)相位偏移影響譜圖對(duì)稱性。FFT點(diǎn)數(shù)Nfft ≥ N補(bǔ)零Zero-padding能提高頻域插值精度讓譜線更密但不提高真實(shí)頻率分辨率Nfft1024只是把N256點(diǎn)的頻譜“拉伸”成1024條線實(shí)際可分辨的最小頻率間隔仍是1/(N/fs)39.06Hz。很多初學(xué)者誤以為增大Nfft就能看清更細(xì)的頻率差結(jié)果白費(fèi)算力。時(shí)間軸刻度陷阱STFT結(jié)果是一個(gè)二維矩陣S[t,f]其中t索引對(duì)應(yīng)每個(gè)窗口的中心時(shí)刻而非起始時(shí)刻。若窗長(zhǎng)N256點(diǎn)步進(jìn)M64點(diǎn)75%重疊則第k個(gè)窗口中心時(shí)刻t_k (k×M N/2) / fs。我見過(guò)太多代碼把t_k寫成k×M/fs導(dǎo)致整個(gè)譜圖時(shí)間軸平移了半個(gè)窗長(zhǎng)——在分析沖擊發(fā)生時(shí)刻時(shí)這會(huì)造成致命誤差。3.2 Python實(shí)操用scipy.signal.stft避坑指南雖然可以用numpy手動(dòng)實(shí)現(xiàn)STFT但強(qiáng)烈建議從scipy.signal.stft起步它已處理了大部分底層細(xì)節(jié)。但即便如此參數(shù)設(shè)置仍有玄機(jī)import numpy as np from scipy import signal import matplotlib.pyplot as plt # 假設(shè)x是你的信號(hào)fs10000 f, t, Zxx signal.stft( x, fsfs, windowhann, # 必須顯式指定不能依賴默認(rèn)舊版scipy默認(rèn)boxcar nperseg256, # 窗長(zhǎng)必須是整數(shù) noverlap192, # 重疊點(diǎn)數(shù)256×0.75而非重疊率 nfft1024, # FFT點(diǎn)數(shù) detrendconstant, # 去直流分量對(duì)振動(dòng)信號(hào)至關(guān)重要 return_onesidedTrue # 實(shí)信號(hào)只需返回正頻部分 )關(guān)鍵避坑點(diǎn)noverlap參數(shù)接受點(diǎn)數(shù)而非比率必須自己計(jì)算noverlap int(nperseg * overlap_ratio)。detrendconstant必須開啟否則信號(hào)中的緩慢漂移如溫度漂移會(huì)被誤判為低頻能量污染0~10Hz頻帶。return_onesidedTrue對(duì)實(shí)信號(hào)是必須的否則會(huì)返回冗余的負(fù)頻部分且幅度需除以2除DC和Nyquist點(diǎn)外。3.3 MATLAB與Vivado中的特殊考量在MATLAB中spectrogram函數(shù)更友好但要注意yaxis選項(xiàng)——默認(rèn)頻軸在橫軸而工程師習(xí)慣頻軸在縱軸必須加yaxis參數(shù)。至于Vivado中的FFT IP核它本身不提供STFT功能需自行設(shè)計(jì)控制邏輯用Block RAM存儲(chǔ)窗函數(shù)系數(shù)如256點(diǎn)漢寧窗用DSP Slice實(shí)現(xiàn)窗函數(shù)乘法與累加用AXI Stream協(xié)議協(xié)調(diào)窗滑動(dòng)、FFT觸發(fā)、結(jié)果打包最關(guān)鍵的是時(shí)鐘域同步ADC采樣時(shí)鐘、窗滑動(dòng)計(jì)數(shù)器時(shí)鐘、FFT核時(shí)鐘往往不同頻必須用FIFO握手信號(hào)隔離否則會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)位——我調(diào)試Vivado STFT設(shè)計(jì)時(shí)70%時(shí)間花在跨時(shí)鐘域問(wèn)題上。4. STFT的深度應(yīng)用從音頻修復(fù)到電機(jī)診斷場(chǎng)景決定成敗STFT的價(jià)值不在算法本身而在它如何被嵌入具體工作流。同一個(gè)STFT輸出給音樂(lè)制作人看是混音參考給電力工程師看是諧波溯源依據(jù)給機(jī)械工程師看是故障預(yù)警信號(hào)。脫離場(chǎng)景談STFT就像討論“一把刀好不好”卻不說(shuō)明是用來(lái)切菜、雕刻還是手術(shù)。4.1 音頻領(lǐng)域降噪與語(yǔ)音增強(qiáng)的底層引擎在語(yǔ)音降噪中STFT是Wiener濾波、譜減法的基石?;舅悸肥窍裙烙?jì)噪聲的時(shí)頻特性如靜音段的平均譜再對(duì)每個(gè)時(shí)頻單元S[t,f]計(jì)算信噪比SNR[t,f]最后用增益函數(shù)G[t,f]調(diào)整幅度Y[t,f] G[t,f] × S[t,f]其中G[t,f] SNR[t,f] / (SNR[t,f] 1) 是經(jīng)典Wiener增益。這里的關(guān)鍵是噪聲譜估計(jì)必須足夠準(zhǔn)確。我曾用STFT分析一段電話錄音發(fā)現(xiàn)傳統(tǒng)靜音段估計(jì)法失效——因?yàn)楸尘翱照{(diào)噪聲是連續(xù)的靜音段根本不存在。最終改用“遞歸平均法”用前一幀的噪聲譜加權(quán)更新當(dāng)前幀權(quán)重隨信噪比動(dòng)態(tài)調(diào)整效果顯著提升。實(shí)操心得音頻STFT的窗長(zhǎng)通常取20~40ms對(duì)應(yīng)50~25Hz頻率分辨率重疊率75%。但若處理超低頻20Hz的環(huán)境振動(dòng)需延長(zhǎng)窗長(zhǎng)至200ms并啟用高精度浮點(diǎn)運(yùn)算——普通16位定點(diǎn)FFT IP核在此場(chǎng)景下會(huì)因量化噪聲淹沒(méi)真實(shí)信號(hào)。4.2 工業(yè)監(jiān)測(cè)從譜圖中讀出設(shè)備“心電圖”電機(jī)軸承故障的STFT譜圖有典型指紋內(nèi)圈故障在旋轉(zhuǎn)頻率fr的整數(shù)倍處出現(xiàn)等間距的邊頻帶且邊頻帶間隔fr外圈故障邊頻帶間隔0.5×fr因外圈固定滾動(dòng)體撞擊頻率調(diào)制不同保持架故障出現(xiàn)fr/2的亞諧波分量。我在某水泥廠輥壓機(jī)監(jiān)測(cè)中用STFT捕獲到一個(gè)異常在1200Hz主頻兩側(cè)以12.5Hz為間隔分布著8條邊頻帶。查軸承型號(hào)手冊(cè)計(jì)算得理論外圈故障特征頻率為12.3Hz——誤差2%確認(rèn)為外圈剝落。這里STFT的不可替代性在于FFT只能告訴你“有1200Hz及其邊帶”但STFT譜圖顯示這些邊帶僅在設(shè)備加載階段0~30秒出現(xiàn)空載時(shí)消失直接證明故障與載荷相關(guān)排除了傳感器干擾假象。4.3 電力電子開關(guān)器件健康狀態(tài)的隱形探針I(yè)GBT或MOSFET的開關(guān)損耗會(huì)隨老化而增加表現(xiàn)為開關(guān)瞬態(tài)波形畸變。這種畸變?cè)跁r(shí)域難以捕捉但在STFT譜圖上極為明顯健康器件開關(guān)沿處出現(xiàn)窄而高的1MHz以上高頻分量老化器件同一位置高頻分量變寬、能量降低且在100~500kHz出現(xiàn)新的諧振峰。我們?cè)诠夥孀兤鳒y(cè)試中用DSO138示波器采集驅(qū)動(dòng)信號(hào)加載STFT固件后發(fā)現(xiàn)某批次IGBT在運(yùn)行2000小時(shí)后其關(guān)斷瞬態(tài)的STFT譜圖在320kHz處新增一個(gè)穩(wěn)定峰值——這與器件寄生電感Lp變化理論吻合。后續(xù)拆解驗(yàn)證果然發(fā)現(xiàn)鍵合線部分?jǐn)嗔?。這種基于STFT的預(yù)測(cè)性維護(hù)比等待器件徹底失效再更換節(jié)省了70%的停機(jī)成本。5. STFT的常見問(wèn)題與實(shí)戰(zhàn)排錯(cuò)那些文檔里不會(huì)寫的真相STFT看似簡(jiǎn)單但實(shí)際部署時(shí)90%的問(wèn)題源于對(duì)物理信號(hào)特性的誤判而非算法錯(cuò)誤。以下是我在五年現(xiàn)場(chǎng)調(diào)試中總結(jié)的“血淚清單”每一條都對(duì)應(yīng)一個(gè)真實(shí)翻車案例。5.1 問(wèn)題速查表癥狀、原因與現(xiàn)場(chǎng)處置癥狀可能原因現(xiàn)場(chǎng)處置譜圖出現(xiàn)水平條紋固定頻率全時(shí)段亮采樣率設(shè)置錯(cuò)誤導(dǎo)致混疊用已知頻率信號(hào)如1kHz方波校驗(yàn)采樣率檢查ADC配置寄存器譜圖時(shí)間軸“抖動(dòng)”或不連續(xù)窗滑動(dòng)步進(jìn)未對(duì)齊硬件緩沖區(qū)在FPGA中添加緩沖區(qū)滿標(biāo)志檢測(cè)確保每次FFT觸發(fā)前緩沖區(qū)數(shù)據(jù)完整低頻區(qū)域50Hz一片混沌未去除直流偏移或工頻干擾在STFT前級(jí)加高通濾波器0.1Hz或用detrendlinear消除趨勢(shì)項(xiàng)同一故障在不同窗長(zhǎng)下譜圖特征矛盾窗長(zhǎng)與故障物理尺度不匹配測(cè)量故障沖擊持續(xù)時(shí)間示波器單次觸發(fā)窗長(zhǎng)取其1/3~1/2計(jì)算耗時(shí)超標(biāo)無(wú)法實(shí)時(shí)處理FFT點(diǎn)數(shù)過(guò)大或重疊率過(guò)高用8點(diǎn)FFT代替1024點(diǎn)FFT做粗略檢測(cè)確認(rèn)特征后再啟動(dòng)高精度分析5.2 三個(gè)反直覺(jué)的真相真相一STFT不是越“高清”越好有人追求極致分辨率用1024點(diǎn)窗長(zhǎng)4096點(diǎn)FFT結(jié)果譜圖密密麻麻全是噪點(diǎn)。其實(shí)STFT的終極目標(biāo)是可解釋性而非像素密度。我給產(chǎn)線工人培訓(xùn)時(shí)堅(jiān)持用256點(diǎn)窗長(zhǎng)512點(diǎn)FFT譜圖只有32×256個(gè)像素但關(guān)鍵故障特征如軸承邊頻帶清晰可見——工人能指著屏幕說(shuō)“這里亮了該換軸承了”這才是成功。真相二窗函數(shù)選擇比FFT算法更重要在資源受限的嵌入式系統(tǒng)中工程師?;ù罅鈨?yōu)化FFT算法如用Cooley-Tukey減少乘法次數(shù)卻忽略窗函數(shù)。實(shí)測(cè)表明用低質(zhì)量窗函數(shù)如矩形窗的優(yōu)化FFT其譜圖質(zhì)量遠(yuǎn)不如用高質(zhì)量窗函數(shù)如海明窗的樸素DFT。因?yàn)榇昂瘮?shù)決定了輸入信號(hào)的“保真度”FFT只是忠實(shí)執(zhí)行者。真相三STFT結(jié)果必須與物理過(guò)程對(duì)齊曾有團(tuán)隊(duì)用STFT分析鍋爐燃燒振蕩發(fā)現(xiàn)3.2Hz頻帶能量突增立即判定為燃燒不穩(wěn)定。但現(xiàn)場(chǎng)檢查發(fā)現(xiàn)此時(shí)恰好是鼓風(fēng)機(jī)變頻器啟?!?.2Hz實(shí)為變頻器控制環(huán)路的固有頻率。教訓(xùn)是STFT譜圖上的每一個(gè)峰都必須有對(duì)應(yīng)的物理機(jī)制解釋否則就是數(shù)據(jù)幻覺(jué)?,F(xiàn)在我們的流程強(qiáng)制要求標(biāo)注譜圖峰值時(shí)必須同步記錄傳感器位置、設(shè)備工況、環(huán)境參數(shù)。5.3 我的終極調(diào)試口訣“一查采樣二去直流三選窗長(zhǎng)四驗(yàn)重疊五對(duì)物理?!薄@是我在項(xiàng)目白板上寫的五條紅線?!安椴蓸印庇檬静ㄆ髯ト≡糀DC數(shù)據(jù)確認(rèn)無(wú)混疊、無(wú)丟點(diǎn)“去直流”無(wú)論信號(hào)類型先做detrend或高通濾波“選窗長(zhǎng)”拿游標(biāo)卡尺量故障沖擊在示波器上的持續(xù)時(shí)間窗長(zhǎng)取其1/2“驗(yàn)重疊”在譜圖上找一個(gè)已知周期事件如電機(jī)轉(zhuǎn)速脈沖檢查其在時(shí)間軸上是否均勻分布“對(duì)物理”把譜圖峰值頻率代入設(shè)備動(dòng)力學(xué)公式看是否得到合理轉(zhuǎn)速、嚙合頻率或電氣諧波。最后分享一個(gè)細(xì)節(jié)在Vivado中實(shí)現(xiàn)STFT時(shí)我習(xí)慣在FFT核后加一級(jí)“幅度平方”模塊而不是直接輸出復(fù)數(shù)譜。因?yàn)榻^大多數(shù)應(yīng)用如故障檢測(cè)、語(yǔ)音活動(dòng)判斷只關(guān)心能量分布復(fù)數(shù)相位信息不僅增加資源消耗還可能引入相位噪聲干擾。這個(gè)微小取舍讓BRAM用量減少了35%卻完全不影響診斷精度——真正的工程智慧往往藏在這些不寫進(jìn)論文的務(wù)實(shí)選擇里。