在 Igor Pro 中對數據進行移動平均平滑(Moving Average Smoothing)可以通過內置命令或自定義函數實現。以下是具體方法:
提供Igor軟件免費下載,還有Igor學習交流群,需要請聯系我們。
方法 1:使用內置 Smooth 命令
基本語法
Smooth [選項] 平滑點數, 輸入波形
平滑點數:窗口寬度(需為奇數,如 3、5、7 等)。
選項:
/B:邊界處理(默認為 0,即不處理邊緣)。
/E:使用邊緣數據填充邊界(減少邊緣失真)。
示例
對 wave1 進行 5 點移動平均:
Smooth 5, wave1
處理邊界數據:
Smooth/E 5, wave1 // 使用邊緣數據填充邊界
方法 2:使用 Smooth/B 命令(Savitzky-Golay 平滑)
若需更高平滑度,可用多項式擬合的移動平均(Savitzky-Golay 算法):
Smooth/B=2 7, wave1 // 7點窗口,2次多項式擬合
方法 3:手動實現移動平均(自定義函數)
步驟
創建移動平均函數:
Function MovingAverage(waveIn, windowSize)
Wave waveIn
Variable windowSize
Variable i, n = numpnts(waveIn)
Make/O/N=(n) waveOut
waveOut = NaN // 初始化輸出為NaN
for(i = floor(windowSize/2); i < n - floor(windowSize/2); i += 1)
waveOut[i] = mean(waveIn, i - floor(windowSize/2), i + floor(windowSize/2))
endfor
return waveOut
End
調用函數:
Duplicate/O wave1, wave1_smoothed
wave1_smoothed = MovingAverage(wave1, 5) // 5點移動平均
注意事項
窗口寬度選擇:
窗口越大,平滑效果越強,但可能過度平滑導致信號失真。
建議從較小窗口(如 3 或 5)開始測試。
邊界處理:
內置 Smooth 命令的邊界默認不處理(邊界點為原始值),使用 /E 選項可改善。
自定義函數中邊界點會賦值為 NaN,需后續處理(如線性插值)。
數據兼容性:
僅適用于一維波形數據(Wave)。
對二維矩陣需逐行/列處理。
以上是深圳市理泰儀器有限公司小編為您講解的Igor pro軟件如何對數據進行移動平均平滑的介紹,想要咨詢Igor軟件其他問題請聯系。




 
      ![[理泰微信聯系方式]](/static/upload/image/20250703/1751509713746459.jpg)
 Igor pro軟件咨詢
 Igor pro軟件咨詢