【发布时间】:2018-07-10 05:44:52
【问题描述】:
上个月,我在this question 上发布了关于在生成正弦波时如何连接它们的帖子,但现在我遇到了不同的情况,我将生成一个正弦波并使其从我所做的另一个正弦波的末尾继续不生成。
我的解决方案基于我上一个问题的第二个答案,计算希尔伯特变换,然后用 numpy.angle 计算角度并通过加 90 对其进行归一化,并从那里生成下一个正弦。它有效,但只有当我的频率值的单位是 0 或 5 时,否则波不匹配,我不知道为什么。
from scipy.signal import hilbert
import numpy as np
from matplotlib import pyplot as plt
N = 1024
t = np.linspace(0, 1, N)
freq = 5.0
c = np.sin(2 * np.pi * freq * t + 0.0)
c2 = np.angle(hilbert(c), True) # in degrees
plt.subplot(2, 1, 1)
plt.grid()
plt.plot(c)
plt.subplot(2, 1, 2)
phase = c2[-1] + 90
c3 = np.sin(2.0 * np.pi * freq * t + np.deg2rad(phase))
plt.grid()
plt.plot(c3)
plt.show()
频率:5.0
频率:5.8
【问题讨论】:
标签: python numpy scipy signal-processing