python - 带有 numpy 随机集的奇怪 FFT 图

标签 python numpy fft intel-mkl

代码如下:

import numpy as np 
from numpy import random_intel
import mkl_fft
import matplotlib.pyplot as plt

n = 10**5
a = np.random_intel.rand(n)
b = mkl_fft.fft(a)
plt.scatter(b.real,b.imag)
plt.show()
print(b)
for i in b :
    if i.real > n/2:
        print("Weird FFT Number is ",i)

结果是: output

你可以看到:

Weird FFT Number is  (50020.99077289924+0j)

为什么使用随机集的 FFT 会得出一个特定的数字?


(感谢 Paul Panzer 和 SleuthEye)

使用 mkl_fft.fft(a-0.5) 最终结果是: final result


[2019/03/29更新]

有了归一化数据,一切顺利

b = mkl_fft.fft((a - np.mean(a))/np.std(a))

(a - np.mean(a))/np.std(a) 的平均值接近于零

最佳答案

这是恒定或零频率模式,本质上是信号的平均值。您从单位间隔均匀采样,因此平均值约为 0.5。一些 fft 实现使用点数对其进行缩放以保存乘法。

关于python - 带有 numpy 随机集的奇怪 FFT 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55174208/

相关文章:

python : Text Replacement In Large Files

python - 将字典列表与数据框进行比较,显示缺失值

Python pickle 错误 : TypeError: object pickle not returning list. numpy 的问题?

android - 在Android中计算歌曲的FFT

ios - 获取 iPhone 上音频输入的频率

Python 多处理 pylab 傅里叶

python - 即使测试了所有案例,MyPy 也会给出错误 "Missing return statement"

python - 如何在不尝试任何身份验证的情况下获取 boto3 STS 客户端?

python - 无法将大小为 (x,) 的数组 reshape 为形状 (x,y,z,1)

python - 添加缺失的列