工作と競馬2

電子工作、プログラミング、木工といった工作の記録記事、競馬に関する考察記事を掲載するブログ

ヒルベルト変換 メモ

振幅包絡線を求めたかったので、メモ。

from scipy import signal
from scipy import fftpack
import numpy as np
import matplotlib.pyplot as plt

N = 1024
f = 5
f2 = 2
t = np.arange(0, N, 1) / N

# 元信号
x = np.sin(2 * np.pi * f * t) * (1 + 0.5 * np.sin(2 * np.pi * f2 * t))

# ヒルベルト変換
h = fftpack.hilbert(x)

# 解析信号
xa = signal.hilbert(x)

# 包絡線
env = np.abs(xa)
fig = plt.figure()

plt.plot(t, x, label="x")
plt.plot(t, h, label="h")
plt.plot(t, env, label="envelope(abs(xa))")

plt.legend()
plt.grid("both", "both")

f:id:dekuo-03:20220108181011p:plain