#include <stdio.h>
int main() {
// 実験10Hzのデータから抜粋したサンプルデータ(時間, 電圧)
// ※レポートには、このように配列に格納して解析した旨を記載する
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,
14.3, 14.4, 14.5, 14.6, 14.7, // 山の付近の例
22.6, 22.7, 22.8, 22.9, 23.0 // 2つ目の山の例
};
double voltage[] = {
2.396, 2.399, 2.414, 2.409, 2.404, 2.407, 2.409, 2.409, 2.412, 2.404, 2.407,
3.050, 3.100, 3.131, 3.110, 3.020, // 14.5sでピーク
3.150, 3.210, 3.254, 3.200, 3.100 // 22.8sでピーク
};
// データの個数を計算
int n = sizeof(voltage) / sizeof(voltage[0]);
printf("--- ピーク電位検出結果 (C言語) ---\n"); printf("回数 | 時間 [s] | 電圧 [V]\n"); printf("---------------------------\n");
int peak_count = 1;
// 前後の値と比較してピーク(極大値)を検出
for (int i = 1; i < n - 1; i++) {
if (voltage[i] > voltage[i-1] && voltage[i] > voltage[i+1]) {
// ノイズ除去のため3.0V以上の山のみ抽出
if (voltage[i] > 3.0) {
printf("%2d | %8.2f | %.3f\n", peak_count
, time[i
], voltage
[i
]); peak_count++;
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbigpIHsKICAgIC8vIOWun+mokzEwSHrjga7jg4fjg7zjgr/jgYvjgonmipznsovjgZfjgZ/jgrXjg7Pjg5fjg6vjg4fjg7zjgr/vvIjmmYLplpMsIOmbu+Wcp++8iQogICAgLy8g4oC744Os44Od44O844OI44Gr44Gv44CB44GT44Gu44KI44GG44Gr6YWN5YiX44Gr5qC857SN44GX44Gm6Kej5p6Q44GX44Gf5peo44KS6KiY6LyJ44GZ44KLCiAgICBkb3VibGUgdGltZVtdID0gewogICAgICAgIDAuMCwgMC4xLCAwLjIsIDAuMywgMC40LCAwLjUsIDAuNiwgMC43LCAwLjgsIDAuOSwgMS4wLCAKICAgICAgICAxNC4zLCAxNC40LCAxNC41LCAxNC42LCAxNC43LCAvLyDlsbHjga7ku5jov5Hjga7kvosKICAgICAgICAyMi42LCAyMi43LCAyMi44LCAyMi45LCAyMy4wICAvLyAy44Gk55uu44Gu5bGx44Gu5L6LCiAgICB9OwogICAgZG91YmxlIHZvbHRhZ2VbXSA9IHsKICAgICAgICAyLjM5NiwgMi4zOTksIDIuNDE0LCAyLjQwOSwgMi40MDQsIDIuNDA3LCAyLjQwOSwgMi40MDksIDIuNDEyLCAyLjQwNCwgMi40MDcsCiAgICAgICAgMy4wNTAsIDMuMTAwLCAzLjEzMSwgMy4xMTAsIDMuMDIwLCAvLyAxNC41c+OBp+ODlOODvOOCrwogICAgICAgIDMuMTUwLCAzLjIxMCwgMy4yNTQsIDMuMjAwLCAzLjEwMCAgLy8gMjIuOHPjgafjg5Tjg7zjgq8KICAgIH07CgogICAgLy8g44OH44O844K/44Gu5YCL5pWw44KS6KiI566XCiAgICBpbnQgbiA9IHNpemVvZih2b2x0YWdlKSAvIHNpemVvZih2b2x0YWdlWzBdKTsKCiAgICBwcmludGYoIi0tLSDjg5Tjg7zjgq/pm7vkvY3mpJzlh7rntZDmnpwgKEPoqIDoqp4pIC0tLVxuIik7CiAgICBwcmludGYoIuWbnuaVsCAgfCAg5pmC6ZaTIFtzXSAgfCAg6Zu75ZynIFtWXVxuIik7CiAgICBwcmludGYoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7CgogICAgaW50IHBlYWtfY291bnQgPSAxOwoKICAgIC8vIOWJjeW+jOOBruWApOOBqOavlOi8g+OBl+OBpuODlOODvOOCr++8iOalteWkp+WApO+8ieOCkuaknOWHugogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuIC0gMTsgaSsrKSB7CiAgICAgICAgaWYgKHZvbHRhZ2VbaV0gPiB2b2x0YWdlW2ktMV0gJiYgdm9sdGFnZVtpXSA+IHZvbHRhZ2VbaSsxXSkgewogICAgICAgICAgICAvLyDjg47jgqTjgrrpmaTljrvjga7jgZ/jgoEzLjBW5Lul5LiK44Gu5bGx44Gu44G/5oq95Ye6CiAgICAgICAgICAgIGlmICh2b2x0YWdlW2ldID4gMy4wKSB7CiAgICAgICAgICAgICAgICBwcmludGYoIiUyZCAgICB8ICAlOC4yZiAgfCAgJS4zZlxuIiwgcGVha19jb3VudCwgdGltZVtpXSwgdm9sdGFnZVtpXSk7CiAgICAgICAgICAgICAgICBwZWFrX2NvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=