潘祝光
(91656部隊(duì),上海 200439)
Signal Processing Toolbox 支持多種函數(shù)和App 功能,可用于壓力儀表采樣信號(hào)的存儲(chǔ)、記錄、預(yù)處理及特征提取,可以使用信號(hào)分析器在時(shí)域、頻域及時(shí)頻域中可視化地處理信號(hào)[1-4]。使用工具箱函數(shù),可以通過(guò)設(shè)計(jì)并實(shí)現(xiàn)降低維度和提高信號(hào)質(zhì)量的特征,為AI 模型訓(xùn)練準(zhǔn)備信號(hào)數(shù)據(jù)集,可以使用信號(hào)數(shù)據(jù)存儲(chǔ)來(lái)訪問(wèn)和處理文件集合與大型數(shù)據(jù)集,使用信號(hào)標(biāo)注器,可以注釋信號(hào)屬性、區(qū)域和感興趣的點(diǎn),以創(chuàng)建標(biāo)注信號(hào)集。除了C/C++和CUDA?代碼生成之外,該工具箱還支持GPU 加速,用于桌面原型構(gòu)建和嵌入式系統(tǒng)部署。
信號(hào)分析器是一款交互式工具,用于在時(shí)域、頻域和時(shí)頻域中可視化、測(cè)量、分析和比較信號(hào),通過(guò)該App 可同時(shí)和在同一視圖中處理不同持續(xù)時(shí)間的許多信號(hào)。從MATLAB?工具條上的Apps 選項(xiàng)卡中選擇該App 將其啟動(dòng),也可以通過(guò)在MATLAB 命令提示符下鍵入signal Analyzer來(lái)啟動(dòng)該App。
圖1 MATLAB APP界面圖Fig.1 MATLAB APP Interface diagram
圖2 對(duì)數(shù)據(jù)進(jìn)行去趨勢(shì)處理Fig.2 Detrending data
圖3 對(duì)數(shù)據(jù)進(jìn)行平滑處理Fig.3 Smoothing data
Signal Processing Toolbox?提供的函數(shù)可讓用戶對(duì)信號(hào)進(jìn)行去噪、平滑和去趨勢(shì)處理,為進(jìn)一步分析做好準(zhǔn)備,從數(shù)據(jù)中去除噪聲、離群值和亂真內(nèi)容,增強(qiáng)信號(hào)以對(duì)其可視化并發(fā)現(xiàn)模式,更改信號(hào)的采樣率,使不規(guī)則采樣信號(hào)或帶缺失數(shù)據(jù)信號(hào)的采樣率趨于恒定,為仿真和算法測(cè)試生成脈沖信號(hào)和chirp 等合成信號(hào)[5-8]。
測(cè)量的壓力信號(hào)可能存在的趨勢(shì)會(huì)妨礙壓力數(shù)據(jù)的分析,需要進(jìn)行去趨勢(shì)處理。以具有不同趨勢(shì)的兩種壓力信號(hào)為例,壓力信號(hào)對(duì)電源干擾等擾動(dòng)很敏感,第一個(gè)曲線圖上的信號(hào)顯示線性趨勢(shì),第二個(gè)曲線圖的趨勢(shì)是非線性的,需要去除非線性的趨勢(shì),針對(duì)壓力信號(hào)進(jìn)行低階多項(xiàng)式擬合的操作,并減去其值。信號(hào)多項(xiàng)式為3 階至6 階,繪制出兩個(gè)新的信號(hào),有效地去除趨勢(shì)使信號(hào)基值不再偏移。它們現(xiàn)在可用于進(jìn)一步處理,還可以通過(guò)使用中位數(shù)濾波器對(duì)時(shí)鐘信號(hào)進(jìn)行平滑處理,同時(shí)保留壓力信號(hào)的邊沿。
通過(guò)平滑處理,可以去除突發(fā)性、偶發(fā)性的干擾信號(hào),更好地呈現(xiàn)出壓力的真值數(shù)據(jù),待儀表的信號(hào)后處理。
2.1.1 一種移動(dòng)平均濾波器
移動(dòng)平均濾波器是將采集到的數(shù)據(jù)放在數(shù)組中,然后用一定寬度的窗口截取并計(jì)算平均值,窗口的寬度決定了儀表的靈敏度:窗口越大,靈敏度越低,濾波效果越好;反之,窗口越大,靈敏度越高,濾波效果越差。應(yīng)用過(guò)程中,可以人為去除這種延遲。平均濾波器可用于提取平均差異,使用移動(dòng)平均濾波器來(lái)更好地估計(jì)壓力數(shù)據(jù)對(duì)工況參數(shù)的影響。為此,首先,從測(cè)量值中減去平滑處理后的數(shù)據(jù);然后,將差異數(shù)據(jù)依照分組顯示。
2.1.2 加權(quán)移動(dòng)平均濾波器
其他類型的移動(dòng)平均濾波器并不對(duì)每個(gè)采樣進(jìn)行同等加權(quán)。加權(quán)移動(dòng)平均濾波器可以看作是一種特殊的移動(dòng)平均濾波器,在對(duì)窗口所截取數(shù)據(jù)進(jìn)行平均之前,根據(jù)壓力數(shù)據(jù)的處理經(jīng)驗(yàn),對(duì)待平均數(shù)據(jù)乘以一個(gè)權(quán)重系數(shù)alpha后,再進(jìn)行數(shù)據(jù)平均??梢酝ㄟ^(guò)介于0 和1 之間的alpha 參數(shù)來(lái)調(diào)整指數(shù)加權(quán)移動(dòng)平均濾波器。alpha 值越高,平滑度越低。
2.1.3 Savitzky-Golay濾波器
通過(guò)平滑處理數(shù)據(jù),極值得到一定程度地削減。濾波器以一定階數(shù)的最小二乘法對(duì)窗口內(nèi)的采樣數(shù)據(jù)進(jìn)行擬合,如matlab 的sgolayfilt 函數(shù)。sgolayfilt 函數(shù)在內(nèi)部計(jì)算平滑多項(xiàng)式系數(shù),執(zhí)行延遲對(duì)齊,并處理數(shù)據(jù)開始和結(jié)束位置的瞬變效應(yīng)。
2.1.4 提取峰值包絡(luò)及去除離群值
壓力信號(hào)的高低隨時(shí)都有變化,有時(shí)也希望對(duì)這種變化有平滑變動(dòng)的估計(jì)。為此,可以使用envelope 函數(shù)來(lái)顯示某個(gè)時(shí)段檢測(cè)到的極端高點(diǎn)和極端低點(diǎn),還可以通過(guò)取兩個(gè)極端點(diǎn)之間的平均值來(lái)了解高點(diǎn)和低點(diǎn)的趨勢(shì)。通過(guò)Hampel 濾波器可以去除離群值,許多濾波器對(duì)離群值很敏感。濾波器可以在不過(guò)度平滑處理的前提下,去除壓力信號(hào)中的數(shù)據(jù)離群值。
計(jì)算常見描述性統(tǒng)計(jì)量,如極大值、極小值、標(biāo)準(zhǔn)差和RMS 水平。查找壓力信號(hào)中的變化點(diǎn)并使用動(dòng)態(tài)時(shí)間規(guī)整來(lái)對(duì)齊信號(hào),測(cè)量時(shí)域特征,比如峰間幅值和信號(hào)包絡(luò)。
2.2.1 測(cè)量壓力信號(hào)相似性
測(cè)量壓力信號(hào)的相似性操作包括:①比較具有不同長(zhǎng)度或不同采樣率fs 的壓力信號(hào);②在測(cè)量中發(fā)現(xiàn)存在真實(shí)壓力儀表信號(hào),還只是噪聲干擾(兩信號(hào)的相關(guān)性);③測(cè)量?jī)蓚€(gè)壓力信號(hào)的延遲τ;④比較兩個(gè)壓力信號(hào)的頻率成分,也可以在信號(hào)的不同段中尋找相似性以確定信號(hào)是否為周期性信號(hào)。此外,并不始終需要對(duì)長(zhǎng)度進(jìn)行均衡化處理。不同長(zhǎng)度的信號(hào)之間可以執(zhí)行互相關(guān),但必須確保它們具有相同的采樣率。最安全的做法是以較低的采樣率對(duì)信號(hào)進(jìn)行重采樣。resample 函數(shù)在重采樣過(guò)程中,對(duì)信號(hào)應(yīng)用一個(gè)抗混疊(低通)FIR 濾波器。在測(cè)量中尋找關(guān)注信號(hào),可以使用matlab 的xcorr 函數(shù)將兩信號(hào)進(jìn)行互相關(guān)計(jì)算,以確定是否存在匹配關(guān)系,如圖4 所示。
圖4 信號(hào)自相關(guān)效果圖Fig.4 Signal autocorrelation effect
2.2.2 對(duì)齊壓力信號(hào)
測(cè)量壓力信號(hào)之間的延遲并將其對(duì)齊,假設(shè)要從不同的壓力儀表采集數(shù)據(jù),可以使用find delay 函數(shù)來(lái)找到兩個(gè)信號(hào)之間的延遲。
可以直接使用alignsignals 函數(shù)來(lái)對(duì)齊信號(hào),該函數(shù)通過(guò)延遲最早的信號(hào)來(lái)對(duì)齊兩個(gè)信號(hào)。
除了上述方法之外,還可比較壓力信號(hào)的頻譜或功率譜。假設(shè)兩個(gè)信號(hào),它們各自的功率譜如下:
mscohere 函數(shù)可以計(jì)算兩個(gè)壓力信號(hào)之間的頻譜相干性。在頻譜相干性高的頻率中,相關(guān)分量之間的相對(duì)相位可以用交叉頻譜相位來(lái)估計(jì)。
2.2.3 求壓力信號(hào)的周期性
求壓力信號(hào)的周期性,假設(shè)存在一組氣體流量計(jì)的補(bǔ)償壓力測(cè)量值,測(cè)量每30min 進(jìn)行一次,持續(xù)約16.5 周。首先,需要去除均值來(lái)分析信號(hào)中的微小波動(dòng)。xcov 函數(shù)在計(jì)算互相關(guān)性之前去除信號(hào)的均值。次峰指示每周有7個(gè)周期,主峰指示每周有1 個(gè)周期。第一個(gè)7 天周期表明,工況壓力存在以周為單位的周期行為,其中壓力在周末較低,在工作日期間恢復(fù)正常。
圖5 待分析延遲信號(hào)圖Fig.5 Delay signal diagram to be analyzed
圖6 信號(hào)對(duì)齊效果圖Fig.6 Signal alignment effect
圖7 信號(hào)功率譜圖Fig.7 Signal power spectrum
圖8 主峰次峰數(shù)據(jù)時(shí)域圖Fig.8 Time domain diagram of main and secondary peak data
通過(guò)累積和與變化點(diǎn)檢測(cè)來(lái)確定壓力信號(hào)的變化或爆發(fā)。在許多實(shí)際應(yīng)用中,用戶需要監(jiān)控?cái)?shù)據(jù),并且希望在底層過(guò)程發(fā)生變化時(shí)盡快收到警報(bào),通??梢允褂美鄯e和(CUSUM)控制圖來(lái)實(shí)現(xiàn)這一點(diǎn),對(duì)輸入數(shù)據(jù)執(zhí)行CUSUM測(cè)試可以快速確定疫情爆發(fā)的時(shí)間。CUSUM 跟蹤兩個(gè)累積和:檢測(cè)局部均值何時(shí)向上移動(dòng)的上和,以及檢測(cè)均值何時(shí)向下移動(dòng)的下和。積分方法使CUSUM 能夠忽略發(fā)病率中的大(瞬態(tài))尖峰,但仍對(duì)發(fā)病率中更穩(wěn)定的小變化保持敏感。另一種方法是發(fā)現(xiàn)方差的顯著變化,檢測(cè)統(tǒng)計(jì)量突變的另一種方法是通過(guò)變化點(diǎn)檢測(cè),它將一個(gè)信號(hào)分成若干相鄰的段,在每個(gè)段中有一個(gè)統(tǒng)計(jì)量(例如,均值、方差、斜率等)為常量。
為了實(shí)現(xiàn)工業(yè)壓力儀表信號(hào)的數(shù)學(xué)信號(hào)預(yù)處理,應(yīng)用Matlab 軟件的Signal Processing Toolbox 工具包對(duì)所采集的壓力數(shù)據(jù)進(jìn)行去趨勢(shì)、平滑等預(yù)處理操作,并對(duì)多組壓力數(shù)據(jù)實(shí)現(xiàn)了相似性判斷、信號(hào)對(duì)齊和周期測(cè)量。應(yīng)用數(shù)字信號(hào)預(yù)處理技術(shù),為后續(xù)的壓力信號(hào)邏輯處理奠定堅(jiān)實(shí)的基礎(chǔ)。