numft ifft输出具有比原始信号大得多的功率

问题描述 投票:0回答:1

我在使用numpy fft类时遇到了一个奇怪的问题。我有以下测试代码:

import numpy as np
import scipy.io.wavfile
import matplotlib.pyplot as plt  

fs, a = scipy.io.wavfile.read('test.wav')   # import audio file

spectrum = np.fft.fft(a)                    # create spectrum

b = np.real(np.fft.ifft(spectrum))          # reconstruct signal

# Print power of original and output signal
print(np.average(a**2))
print(np.average(b**2))

它输出:

1497.887578558565
4397203.934254291

如对这些值的预期,输出比输入大得多。 numpy.fft.ifft的文档指出:

“此函数计算由fft计算的一维n点离散傅立叶变换的逆。换句话说,ifft(fft(a))== a在数值精度内。”]

因此信号应几乎相同。但是,显然不是。我在这里错了吗?

我在使用numpy fft类时遇到了一个奇怪的问题。我有以下测试代码:将numpy作为np导入scipy.io.wavfile导入作为plt fs的matplotlib.pyplot,a = scipy.io.wavfile...。

python-3.x numpy signal-processing fft
1个回答
0
投票

最后我设法自己找到了解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.