我需要計算窗口大小爲20個樣本的移動窗口平均值。該窗口應該在整個數據中移動。例如:對於前20個樣本,它將計算平均值,並且窗口從0移動到20到21,並從1到21個樣本計算平均值,然後繼續移動。移動(滑動)窗口平均在Matlab中創建基線
我寫了一個代碼,其中'x'變量加載了.dat文件,並且已經編寫了for循環來計算平均值。代碼如下
clear all;
close all;
x= load ('cpp1500.dat');
for i=1:length(x)
s(i)=sum(x(1:i));
r(i)=s(i)./i;
end
plot(x,'R')
hold on;
plot(r)
請建議我一種方法來計算移動窗口的平均值。 Graphs of samples v/s sensor data
謝謝。數據的變化與上圖主要問題一樣。計算的平均值作爲閾值,我想通過平均值計算原始信號的變化。所以,應該計算平均值而不使用過濾器。正如你在程序中所建議的,平均值計算到9980,但樣本數是10000.它想要計算所有樣本的平均值。我無法使用過濾器,因爲它提供了平滑的值。我想要有可以與實際數據進行比較的平均值。 –
@NagaArjun您需要刪除原始信號末尾的最後21個樣本,以進行有意義的比較。即'xr = x(1:9980);'。 「過濾器」語法已經表達了意思。我不知道你想要什麼。 – rayryeng
謝謝@rayryeng。我想計算整個樣本的平均值,並且我想保留那個移動均值作爲閾值。 –