Python で波形データを積分する
こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
背景・目的
今まで波形の変換、近似、補間を記事にまとめてきました。
今度は変換とはまた違う " 積分 " を行なってみます。
積分すると物理量が変わり、波形の意味が変わります。
1つの波形から色々な情報を読み取るためにも積分についてまとめます。
動作環境
・Windows 10
・winpython 64bit 3.4.4
プログラム
ソースコード
###############################################################################
# 離散データの積分値の累積を計算するプログラム
###############################################################################
#==============================================================================
# ライブラリインポート
#==============================================================================
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
#==============================================================================
# テスト用離散データの作成
#==============================================================================
x = np.linspace(0, 2.2, num=2**5+1)
y = 2.1*x**4 - 3.3*x**3 - 2*x + 1
#==============================================================================
# 積分計算
#==============================================================================
integral_y_cumtrapz = integrate.cumtrapz(y, x, initial=0)
#==============================================================================
# グラフ
#==============================================================================
# 積分対象波形
plt.plot(x, y, 'r-', label='wave')
plt.plot(x, y, 'r.')
# 積分波形
plt.plot(x, integral_y_cumtrapz, 'b-', label='integral')
plt.plot(x, integral_y_cumtrapz, 'b.')
# グラフのタイトル・目盛設定
plt.title("Integral")
# 凡例の位置設定
plt.legend(loc='upper left')
# 罫線
plt.grid(which='major', color='black', linestyle='-')
plt.grid(which='minor', color='black', linestyle='-')
# 軸ラベル
plt.xlabel('x')
plt.ylabel('y')
file_name = 'integral.jpg'
plt.savefig(file_name)
plt.show()
コメント
波形データって奥が深いですね。
微分も後でやってみます。
以上