函數 > 數據分析 > 平滑 > 範例:數據平滑法
範例:數據平滑法
使用 movavgexpsmoothmedsmooth 函數執行移動平均線、指數數據平均值或中值濾波。這些函數會求解數據集中每個點與其本身及鄰接點的平均值,減少數據的不規則性,以平滑處理數據。
移動平均
若是時間 t = 0, 1, 2, . . . , n - 2,在 t 的平滑曲線值是時間 t (含) 之前所有觀測的算術平均值。一旦取得 n 觀測,在時間 t 的平滑曲線值是時間 t 的觀測與先前 n - 1 觀測之平均值。
1. 使用 sin 函數定義衰減的正弦波形。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 使用 rnd 函數引入一致但隨機的元件,讓信號充滿雜訊。
按一下以複製此運算式
3. 呼叫 movavg 函數分別使用寬度為 2、10 及 20 的視窗,平滑處理數據。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
較大的視窗寬度會引入延遲時間。
指數平均
使用階梯函數說明 movavgexpsmooth 之間的差分。指數數據平均的計算如下:
按一下以複製此運算式
按一下以複製此運算式
t = 1, . . . , last(x)
時間 t 的平滑曲線項目,是加權為目前觀測與先前平滑曲線觀測之 α 的平均值。
1. 定義並繪製階梯函數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
0.3 的加入可將負數 t 的函數設為零。
按一下以複製此運算式
按一下以複製此運算式
0.7 用於替代 1 使用,以取得寬度為 1.0 的脈衝。
按一下以複製此運算式
2. movavg 函數套用至使用視窗寬度 4 的階梯函數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
movavg 函數套用至此階梯函數,會導致在 n=4 個樣本時,平滑處理從 1-to-0 的轉移。
3. expsmooth 函數套用至使用加權 0.5 的階梯函數。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
expsmooth 函數套用至此階梯函數,會導致在 10個樣本時,平滑處理從 1-to-0 的轉移形成曲線。
expsmooth 可用於預測市場趨勢,方法如同 movavg;但實際上,大部份的專業人員會使用其他指標 (例如兩個指數平滑法之間的差分),並搭配相同原始數據的不同加權。
中值濾波
中值濾波會以元素的中值取代輸入的每個元素,並在接近信號結尾使用 n-1 或更少的鄰點。此方法適用於平滑處理 (同時維護邊緣) 及減少雜訊。
在大型矩陣上,由於此函數會對每個像素執行排序,因此需要更多時間。除了移除雜訊,中值濾波通常還會從信號移除鮮明但微小的暫態信號。
1. 定義並繪製指數信號。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
2. 使用 whiten 函數,以透過新增一些隨機白雜訊降低信號品質。
按一下以複製此運算式
按一下以複製此運算式
3. 使用 medsmooth 函數套用中值濾波,然後繪製篩選過的信號。
按一下以複製此運算式
按一下以複製此運算式
按一下以複製此運算式
濾波過的信號版本比較平滑。
變更濾波的長度,以查看其對雜訊信號的影響。實際上,中值濾波長度應該比信號長度短。
這是否有幫助?