潘祝光
(91656部隊,上海 200439)
Signal Processing Toolbox 支持多種函數和App 功能,可用于壓力儀表采樣信號的存儲、記錄、預處理及特征提取,可以使用信號分析器在時域、頻域及時頻域中可視化地處理信號[1-4]。使用工具箱函數,可以通過設計并實現降低維度和提高信號質量的特征,為AI 模型訓練準備信號數據集,可以使用信號數據存儲來訪問和處理文件集合與大型數據集,使用信號標注器,可以注釋信號屬性、區域和感興趣的點,以創建標注信號集。除了C/C++和CUDA?代碼生成之外,該工具箱還支持GPU 加速,用于桌面原型構建和嵌入式系統部署。
信號分析器是一款交互式工具,用于在時域、頻域和時頻域中可視化、測量、分析和比較信號,通過該App 可同時和在同一視圖中處理不同持續時間的許多信號。從MATLAB?工具條上的Apps 選項卡中選擇該App 將其啟動,也可以通過在MATLAB 命令提示符下鍵入signal Analyzer來啟動該App。

圖1 MATLAB APP界面圖Fig.1 MATLAB APP Interface diagram

圖2 對數據進行去趨勢處理Fig.2 Detrending data

圖3 對數據進行平滑處理Fig.3 Smoothing data
Signal Processing Toolbox?提供的函數可讓用戶對信號進行去噪、平滑和去趨勢處理,為進一步分析做好準備,從數據中去除噪聲、離群值和亂真內容,增強信號以對其可視化并發現模式,更改信號的采樣率,使不規則采樣信號或帶缺失數據信號的采樣率趨于恒定,為仿真和算法測試生成脈沖信號和chirp 等合成信號[5-8]。
測量的壓力信號可能存在的趨勢會妨礙壓力數據的分析,需要進行去趨勢處理。以具有不同趨勢的兩種壓力信號為例,壓力信號對電源干擾等擾動很敏感,第一個曲線圖上的信號顯示線性趨勢,第二個曲線圖的趨勢是非線性的,需要去除非線性的趨勢,針對壓力信號進行低階多項式擬合的操作,并減去其值。信號多項式為3 階至6 階,繪制出兩個新的信號,有效地去除趨勢使信號基值不再偏移。它們現在可用于進一步處理,還可以通過使用中位數濾波器對時鐘信號進行平滑處理,同時保留壓力信號的邊沿。
通過平滑處理,可以去除突發性、偶發性的干擾信號,更好地呈現出壓力的真值數據,待儀表的信號后處理。
2.1.1 一種移動平均濾波器
移動平均濾波器是將采集到的數據放在數組中,然后用一定寬度的窗口截取并計算平均值,窗口的寬度決定了儀表的靈敏度:窗口越大,靈敏度越低,濾波效果越好;反之,窗口越大,靈敏度越高,濾波效果越差。應用過程中,可以人為去除這種延遲。平均濾波器可用于提取平均差異,使用移動平均濾波器來更好地估計壓力數據對工況參數的影響。為此,首先,從測量值中減去平滑處理后的數據;然后,將差異數據依照分組顯示。
2.1.2 加權移動平均濾波器
其他類型的移動平均濾波器并不對每個采樣進行同等加權。加權移動平均濾波器可以看作是一種特殊的移動平均濾波器,在對窗口所截取數據進行平均之前,根據壓力數據的處理經驗,對待平均數據乘以一個權重系數alpha后,再進行數據平均。可以通過介于0 和1 之間的alpha 參數來調整指數加權移動平均濾波器。alpha 值越高,平滑度越低。
2.1.3 Savitzky-Golay濾波器
通過平滑處理數據,極值得到一定程度地削減。濾波器以一定階數的最小二乘法對窗口內的采樣數據進行擬合,如matlab 的sgolayfilt 函數。sgolayfilt 函數在內部計算平滑多項式系數,執行延遲對齊,并處理數據開始和結束位置的瞬變效應。
2.1.4 提取峰值包絡及去除離群值
壓力信號的高低隨時都有變化,有時也希望對這種變化有平滑變動的估計。為此,可以使用envelope 函數來顯示某個時段檢測到的極端高點和極端低點,還可以通過取兩個極端點之間的平均值來了解高點和低點的趨勢。通過Hampel 濾波器可以去除離群值,許多濾波器對離群值很敏感。濾波器可以在不過度平滑處理的前提下,去除壓力信號中的數據離群值。
計算常見描述性統計量,如極大值、極小值、標準差和RMS 水平。查找壓力信號中的變化點并使用動態時間規整來對齊信號,測量時域特征,比如峰間幅值和信號包絡。
2.2.1 測量壓力信號相似性
測量壓力信號的相似性操作包括:①比較具有不同長度或不同采樣率fs 的壓力信號;②在測量中發現存在真實壓力儀表信號,還只是噪聲干擾(兩信號的相關性);③測量兩個壓力信號的延遲τ;④比較兩個壓力信號的頻率成分,也可以在信號的不同段中尋找相似性以確定信號是否為周期性信號。此外,并不始終需要對長度進行均衡化處理。不同長度的信號之間可以執行互相關,但必須確保它們具有相同的采樣率。最安全的做法是以較低的采樣率對信號進行重采樣。resample 函數在重采樣過程中,對信號應用一個抗混疊(低通)FIR 濾波器。在測量中尋找關注信號,可以使用matlab 的xcorr 函數將兩信號進行互相關計算,以確定是否存在匹配關系,如圖4 所示。

圖4 信號自相關效果圖Fig.4 Signal autocorrelation effect
2.2.2 對齊壓力信號
測量壓力信號之間的延遲并將其對齊,假設要從不同的壓力儀表采集數據,可以使用find delay 函數來找到兩個信號之間的延遲。
可以直接使用alignsignals 函數來對齊信號,該函數通過延遲最早的信號來對齊兩個信號。
除了上述方法之外,還可比較壓力信號的頻譜或功率譜。假設兩個信號,它們各自的功率譜如下:
mscohere 函數可以計算兩個壓力信號之間的頻譜相干性。在頻譜相干性高的頻率中,相關分量之間的相對相位可以用交叉頻譜相位來估計。
2.2.3 求壓力信號的周期性
求壓力信號的周期性,假設存在一組氣體流量計的補償壓力測量值,測量每30min 進行一次,持續約16.5 周。首先,需要去除均值來分析信號中的微小波動。xcov 函數在計算互相關性之前去除信號的均值。次峰指示每周有7個周期,主峰指示每周有1 個周期。第一個7 天周期表明,工況壓力存在以周為單位的周期行為,其中壓力在周末較低,在工作日期間恢復正常。

圖5 待分析延遲信號圖Fig.5 Delay signal diagram to be analyzed

圖6 信號對齊效果圖Fig.6 Signal alignment effect

圖7 信號功率譜圖Fig.7 Signal power spectrum

圖8 主峰次峰數據時域圖Fig.8 Time domain diagram of main and secondary peak data
通過累積和與變化點檢測來確定壓力信號的變化或爆發。在許多實際應用中,用戶需要監控數據,并且希望在底層過程發生變化時盡快收到警報,通常可以使用累積和(CUSUM)控制圖來實現這一點,對輸入數據執行CUSUM測試可以快速確定疫情爆發的時間。CUSUM 跟蹤兩個累積和:檢測局部均值何時向上移動的上和,以及檢測均值何時向下移動的下和。積分方法使CUSUM 能夠忽略發病率中的大(瞬態)尖峰,但仍對發病率中更穩定的小變化保持敏感。另一種方法是發現方差的顯著變化,檢測統計量突變的另一種方法是通過變化點檢測,它將一個信號分成若干相鄰的段,在每個段中有一個統計量(例如,均值、方差、斜率等)為常量。
為了實現工業壓力儀表信號的數學信號預處理,應用Matlab 軟件的Signal Processing Toolbox 工具包對所采集的壓力數據進行去趨勢、平滑等預處理操作,并對多組壓力數據實現了相似性判斷、信號對齊和周期測量。應用數字信號預處理技術,為后續的壓力信號邏輯處理奠定堅實的基礎。