diff --git a/EcomAnalysis/Form1.cs b/EcomAnalysis/Form1.cs index ba706e5..5c75eef 100644 --- a/EcomAnalysis/Form1.cs +++ b/EcomAnalysis/Form1.cs @@ -166,6 +166,10 @@ // HRV算出(1/4ブロック単位) listView2.Items.Clear(); for (var block = 0; block < BLOCKS; block++) { + LF[block] = 0D; + HF[block] = 0D; + + // RR間隔データ取得 var datArr = _Data.Where(s => s.StimNo >= 4 + block * 21 && s.StimNo < 24 + block * 21).ToArray(); var startTime = datArr[0].ElapTime; @@ -189,6 +193,8 @@ } } } + if (rrTime.Count < 100) continue; // データが不足する場合はスキップ + // ノイズ除去 const int M = 2; var rrcTime = new List(); @@ -250,8 +256,6 @@ Fourier.Forward(fft[w], FourierOptions.Default); } var df = 1.0 / (WINDOW_LEN * interval); // フーリエ解析の周波数分解能 - LF[block] = 0D; - HF[block] = 0D; const double LFmin = 0.04; const double LFmax = 0.15; const double HFmax = 0.4; @@ -377,13 +381,18 @@ var enc = Encoding.GetEncoding("Shift_JIS"); var sr = new StreamWriter(saveFileDialogCsv.FileName, false, enc); - sr.WriteLine("シーン,FB回数,EC時間(s),潜時(s),心拍数,瞬目回数,瞳孔径:右(mm),瞳孔径:左(mm)"); + sr.WriteLine("シーン,FB回数,EC時間(s),EC回数,潜時(s),心拍数,瞬目回数,瞳孔径:右(mm),瞳孔径:左(mm)"); foreach (var sc in _SceneTable) { - sr.WriteLine($"{sc.SceneNo},{sc.FBCount},{sc.ECTime:0.00},{sc.Latency:0.00},{sc.Beat:0.00}," + - $"{sc.Blink},{sc.Pupil.R:0.00},{sc.Pupil.L:0.00}"); + sr.WriteLine($"{sc.SceneNo},{sc.FBCount},{sc.ECTime:0.00},{sc.ECCount},{sc.Latency:0.00}," + + $"{sc.Beat:0.00},{sc.Blink},{sc.Pupil.R:0.00},{sc.Pupil.L:0.00}"); } - sr.WriteLine($"平均,{_ScMean.FBCount},{_ScMean.ECTime:0.00},{_ScMean.Latency:0.00},{_ScMean.Beat:0.00}," + + sr.WriteLine($"平均,{_ScMean.FBCount},{_ScMean.ECTime:0.00},{_ScMean.ECCount:0.00},{_ScMean.Latency:0.00},{_ScMean.Beat:0.00}," + $"{_ScMean.Blink},{_ScMean.Pupil.R:0.00},{_ScMean.Pupil.L:0.00}"); + sr.WriteLine(""); + sr.WriteLine("シーン,LF,HF,LF/HF"); + for (var b =0; b