我正在尝试在python中实现一个用于卷积的梯形内核。有没有办法在astropy模块中进行卷积: Trapezoid1DKernel( width , slope )使用它' s梯形内核?
答案 0 :(得分:0)
我在某个时间点遇到了同样的问题。没有办法实现内核,而是可以生成梯形波,然后您可以继续进行卷积部分。我用它来实现它:
from scipy import signal
import matplotlib.pyplot as plt
from matplotlib import style
import numpy as np
def trapzoid_signal(t, width=2., slope=1., amp=1., offs=0):
a = slope*width*signal.sawtooth(2*np.pi*t/width, width=0.5)/4.
a += slope*width/4.
a[a>amp] = amp
return a + offs
for w,s,a in zip([32],[1],[0.0322]):
t = np.linspace(0, w, 34)
plt.plot(t,trapzoid_signal(t, width=w, slope=s, amp=a))
plt.show()
结果: https://i.stack.imgur.com/8RkBF.png
(宽度和斜率值完全相同,以便产生与熵的梯形核相同的梯形波形)。希望这会有所帮助。