目录
一、公式概念
二、代码
1、numpy库
2、自定义打印出每一步结果
三、结果
一、公式概念
线性卷积_百度百科线性卷积(linear convolution) 在时域描述线性系统输入和输出之间关系的一种运算。这种运算在线性系统分析和信号处理中应用很多,通常简称卷积。中文名:数字信号处理https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E5%8D%B7%E7%A7%AF/5908978?fr=aladdin
二、代码
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 = 0for j in range(N1):s += x1[j] * x2.get(i - j, 0) # 卷积核下标不存在时返回0x0[i] = sX.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])