如何用numpy快速计算离散卷积?

信号与系统课的作业,要求比较用numpy和不用numpy的代码计算离散卷积的速度
题目给了不用numpy库情况下的代码:
def numpyless_conv(x, y):
# Create output array
N = len(x) + len(y) - 1 # Convolving a duration D signal and a duration K signal gives a duration D+K-1 signal
out = [0 for i in range(N)]

# Pad for ease of implementation
y_rev = y[::-1]
zeros_x = [0 for i in range(N - len(x))]
zeros_y = [0 for i in range(N - len(y))]
x_pad = zeros_x + list(x)
y_rev_pad = list(y_rev) + zeros_y
for n in range(N):
    # This loop computes the dot product
    for i in range(N):
        out[n] += x_pad[i] * y_rev_pad[i]
    y_rev_pad = [y_rev_pad[i] for i in range(-1, N-1)] # Circularly shift everything one to the right
return out

下面跪求用numpy情况下的代码。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值