微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ValueError:处理两通道音频信号时zi的意外形状

如何解决ValueError:处理两通道音频信号时zi的意外形状

我正在尝试编写自己的卷积函数来在处理 2 通道音频信号时替换 lfilter。我必须将过滤器状态从一个块传递到另一个块。

def convolution(h,x,N_taps,zi):
conv_out = np.zeros(len(x),dtype = 'complex_')
for i in range(len(x)):
    for j in range(N_taps):
        if j != N_taps-1: #have not reached the last one 
            conv_out[i] += zi[j]*h[N_taps-1-j]
            if j < N_taps-2:
                zi[j] = zi[j+1]
        else:             #last one
            conv_out[i] += x[i]*h[N_taps-1-j]
            zi[-1] = x[i]
return conv_out,zi     

但是,运行上面的代码会出现以下错误。注意:当我没有为 conv_out 指定 dtype 时,它​​不会引发任何错误,但也听不到输出音频。

ComplexWarning: Casting complex values to real discards the imaginary part
filtered_data[position:position+block_size,0],z = convolution(firwin_coeff,audio_data[position:position+block_size,zi = z)
ValueError: Unexpected shape for zi: expected (9999,),found (50,).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。