2017-06-23 96 views
0

我想在卷积的python中实现梯形内核。有没有一种方法可以像在astropy模块中那样进行卷积运算:使用梯形内核?梯形1DKernel(宽度,坡度无梯度卷积的梯形内核

回答

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

(宽度和斜率值是完全相同的,以便产生一梯形波形相同astropy的梯形内核)。希望这可以帮助。