两个数组卷积 c语言,两个数组的卷积和解卷积

在Python中使用scipy库进行卷积和解卷积时遇到错误。当输入不是单点而是一个数组时,convolve和deconvolve函数出现问题。错误包括数组长度不匹配和不支持的滤波器系数。问题可能与输入数组的边界处理和滤波器的零值有关。尝试调整输入参数和滤波器设置来解决这些问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所以我想知道如何使卷积和解卷积正常工作。我的代码是:import numpy as np

from scipy import interpolate

from scipy import signal

import matplotlib.pyplot as plt

a = np.arange(0, 50, 1)

b = np.array([1,2,1])

aconvolved = signal.convolve(np.sin(a), b)

adeconvolved = signal.deconvolve(aconvolved, b)

plt.figure()

plt.plot(a, np.sin(a), 'g')

plt.plot(a, aconvolved[0], 'r')

plt.plot(a, adeconvolved[0], 'b')

plt.draw()

当我把“a”卷积成一个点(比如b=[2])而不是数组时,它工作得很好。但是当我试图在一个以上的点或者一个数组上做这个,它就是不起作用。我收到的错误包括:

^{pr2}$

如果我改为使用:a = np.arange(1, 50, 1)

b = np.array([1,2,1])

即使在这种情况下,我知道它们都是从1开始的。如果我做同样的事,但是b = np.array([1,2,1])

我得到一个错误:"ValueError: BUG: filter coefficient a[0] == 0 not supported yet"

有谁知道我做错了什么吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值