計算14通道得腦電數據嗎,將得出的樣本熵插入Excel表格
a = zeros(1,14); b = a'; for i =1:14 b(i) = SampEn(d1_1(i,1:3000),2,0.2*std(d1_1(i,1:3000))); end xlswrite('C:\Users\25626\Desktop\濾波后數據\14\樣本熵\樣本熵.xlsx',b,'Sheet1','J');%數據寫入A列
調用的SampEn函數
function SampEnVal = SampEn(data, m, r) % SampEn 計算時間序列data的樣本熵 % 輸入:data是數據一維行向量 % m重構維數,一般選擇1或2,優先選擇2,一般不取m>2 % r 閾值大小,一般選擇r=0.1~0.25*Std(data) 數據偏差 % 輸出:SampEnVal樣本熵值大小 data = data(:)'; N = length(data); Nkx1 = 0; Nkx2 = 0; for k = N - m:-1:1 x1(k, :) = data(k:k + m - 1); x2(k, :) = data(k:k + m); end for k = N - m:-1:1 x1temprow = x1(k, :); x1temp = ones(N - m, 1)*x1temprow; dx1(k, :) = max(abs(x1temp - x1), [], 2)'; Nkx1 = Nkx1 + (sum(dx1(k, :) < r) - 1)/(N - m - 1); x2temprow = x2(k, :); x2temp = ones(N - m, 1)*x2temprow; dx2(k, :) = max(abs(x2temp - x2), [], 2)'; Nkx2 = Nkx2 + (sum(dx2(k, :) < r) - 1)/(N - m - 1); end Bmx1 = Nkx1/(N - m); Bmx2 = Nkx2/(N - m); SampEnVal = -log(Bmx2/Bmx1); end