目录
一、公式概念
二、代码
1、numpy库
import numpy as np
# nunpy自带的一维线性卷积
r2 = np.convolve(v, a, mode="full")
print(r2)
2、自定义打印出每一步结果
# 时域上求两个序列的线性卷积
def lc(x1,x2):
N1 = len(x1)
N2 = len(x2)
x1 = dict(enumerate(x1))
x2 = dict(enumerate(x2))
N = N1 + N2 - 1 # 线性卷积结果序列长度
x0 = [0 for _ in range(N)]
# 保存每一步的卷积结果
X = []
for i in range(N):
s = 0
for j in range(N1):
s += x1[j] * x2.get(i - j, 0) # 卷积核下标不存在时返回0
x0[i] = s
X.append(x0)
return X
三、结果
if __name__ == '__main__':
x = [1,1,1,1]
y = [4,3,2,1]
print(np.convolve(x,y,mode="full"))
print(lc(x,y)[-1])