Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python FFT后如何计算频率轴_Python_Numpy_Matplotlib_Fft_Frequency - Fatal编程技术网

Python FFT后如何计算频率轴

Python FFT后如何计算频率轴,python,numpy,matplotlib,fft,frequency,Python,Numpy,Matplotlib,Fft,Frequency,我有一个时间序列数据,捕获其中的一部分,然后使用numpy.fft.rfft命令 plt.plot(2*abs(result)/len(result)) 要显示rfft结果,如何计算频率轴?我的采样频率为65536 Hz。您可以使用该方法生成与rfft方法对应的频率数据。下面我已经生成了一个有噪声的正弦波,并对其进行了傅里叶变换,同时生成了频率数据 import numpy as np import matplotlib.pyplot as plt N = 2048 x = np.sin(2

我有一个时间序列数据,捕获其中的一部分,然后使用
numpy.fft.rfft
命令

plt.plot(2*abs(result)/len(result))
要显示
rfft
结果,如何计算频率轴?我的采样频率为65536 Hz。

您可以使用该方法生成与
rfft
方法对应的频率数据。下面我已经生成了一个有噪声的正弦波,并对其进行了傅里叶变换,同时生成了频率数据

import numpy as np
import matplotlib.pyplot as plt

N = 2048
x = np.sin(2*np.pi*10*np.linspace(0,10,N)) + np.random.random(N)*0.1

z = np.fft.rfft(x) # FFT
y = np.fft.rfftfreq(len(x)) # Frequency data

fig, ax = plt.subplots()
ax.plot(y, z)

plt.show()
您可以使用该方法生成与
rfft
方法对应的频率数据。下面我已经生成了一个有噪声的正弦波,并对其进行了傅里叶变换,同时生成了频率数据

import numpy as np
import matplotlib.pyplot as plt

N = 2048
x = np.sin(2*np.pi*10*np.linspace(0,10,N)) + np.random.random(N)*0.1

z = np.fft.rfft(x) # FFT
y = np.fft.rfftfreq(len(x)) # Frequency data

fig, ax = plt.subplots()
ax.plot(y, z)

plt.show()
您可以使用该方法生成与
rfft
方法对应的频率数据。下面我已经生成了一个有噪声的正弦波,并对其进行了傅里叶变换,同时生成了频率数据

import numpy as np
import matplotlib.pyplot as plt

N = 2048
x = np.sin(2*np.pi*10*np.linspace(0,10,N)) + np.random.random(N)*0.1

z = np.fft.rfft(x) # FFT
y = np.fft.rfftfreq(len(x)) # Frequency data

fig, ax = plt.subplots()
ax.plot(y, z)

plt.show()
您可以使用该方法生成与
rfft
方法对应的频率数据。下面我已经生成了一个有噪声的正弦波,并对其进行了傅里叶变换,同时生成了频率数据

import numpy as np
import matplotlib.pyplot as plt

N = 2048
x = np.sin(2*np.pi*10*np.linspace(0,10,N)) + np.random.random(N)*0.1

z = np.fft.rfft(x) # FFT
y = np.fft.rfftfreq(len(x)) # Frequency data

fig, ax = plt.subplots()
ax.plot(y, z)

plt.show()
解决方案
rfftfreq
如另一张海报所述,如果您的系统中有它,它将起作用

警告 但是,我认为您使用的是过时的numpy版本。Numpy 1.6.1包中没有rfftfreq,因此您将看到
Numpy.fft.rfftfreq
的“未找到”错误

如果我使用较旧版本的python/numpy:

Speak 'Friend' and Enter: python2.7
Python 2.7.2 (default, Oct 11 2012, 20:14:37) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.6.1'
>>> numpy.fft.rfftfreq
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'rfftfreq'
说“朋友”并输入:python2.7
Python 2.7.2(默认值,2012年10月11日,20:14:37)
达尔文的[GCC 4.2.1兼容Apple Clang 4.0(标签/Apple/Clang-418.0.60)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.6.1'
>>>numpy.fft.rfftfreq
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“rfftfreq”
现在,使用新numpy更新版本中的相同命令:

Speak 'Friend' and Enter: python3.3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 13 2013, 13:52:24) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.8.1'
>>> numpy.fft.fftfreq
<function fftfreq at 0x10114edd0>
说“朋友”并输入:python3.3
Python 3.3.2(v3.3.2:d047928ae3f6,2013年5月13日,13:52:24)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.8.1'
>>>numpy.fft.fftfreq
我的推荐 更新numpy。您可能还需要更新python

实现这一点的简单方法(刚刚测试过):安装python3.3,然后安装pip()。安装pip后,它将是一个简单的
sudopip3.3installnumpy
,您将获得最新版本(撰写本文时为1.8.1)。更新python/numpy还有其他方法(例如brew或apt,具体取决于您的系统),但pip在ihmo中运行得相当好。

解决方案
rfftfreq
如另一张海报所述,如果您的系统中有它,它将起作用

警告 但是,我认为您使用的是过时的numpy版本。Numpy 1.6.1包中没有rfftfreq,因此您将看到
Numpy.fft.rfftfreq
的“未找到”错误

如果我使用较旧版本的python/numpy:

Speak 'Friend' and Enter: python2.7
Python 2.7.2 (default, Oct 11 2012, 20:14:37) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.6.1'
>>> numpy.fft.rfftfreq
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'rfftfreq'
说“朋友”并输入:python2.7
Python 2.7.2(默认值,2012年10月11日,20:14:37)
达尔文的[GCC 4.2.1兼容Apple Clang 4.0(标签/Apple/Clang-418.0.60)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.6.1'
>>>numpy.fft.rfftfreq
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“rfftfreq”
现在,使用新numpy更新版本中的相同命令:

Speak 'Friend' and Enter: python3.3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 13 2013, 13:52:24) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.8.1'
>>> numpy.fft.fftfreq
<function fftfreq at 0x10114edd0>
说“朋友”并输入:python3.3
Python 3.3.2(v3.3.2:d047928ae3f6,2013年5月13日,13:52:24)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.8.1'
>>>numpy.fft.fftfreq
我的推荐 更新numpy。您可能还需要更新python

实现这一点的简单方法(刚刚测试过):安装python3.3,然后安装pip()。安装pip后,它将是一个简单的
sudopip3.3installnumpy
,您将获得最新版本(撰写本文时为1.8.1)。更新python/numpy还有其他方法(例如brew或apt,具体取决于您的系统),但pip在ihmo中运行得相当好。

解决方案
rfftfreq
如另一张海报所述,如果您的系统中有它,它将起作用

警告 但是,我认为您使用的是过时的numpy版本。Numpy 1.6.1包中没有rfftfreq,因此您将看到
Numpy.fft.rfftfreq
的“未找到”错误

如果我使用较旧版本的python/numpy:

Speak 'Friend' and Enter: python2.7
Python 2.7.2 (default, Oct 11 2012, 20:14:37) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.6.1'
>>> numpy.fft.rfftfreq
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'rfftfreq'
说“朋友”并输入:python2.7
Python 2.7.2(默认值,2012年10月11日,20:14:37)
达尔文的[GCC 4.2.1兼容Apple Clang 4.0(标签/Apple/Clang-418.0.60)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.6.1'
>>>numpy.fft.rfftfreq
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“模块”对象没有属性“rfftfreq”
现在,使用新numpy更新版本中的相同命令:

Speak 'Friend' and Enter: python3.3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 13 2013, 13:52:24) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> numpy.version.version
'1.8.1'
>>> numpy.fft.fftfreq
<function fftfreq at 0x10114edd0>
说“朋友”并输入:python3.3
Python 3.3.2(v3.3.2:d047928ae3f6,2013年5月13日,13:52:24)
[GCC 4.2.1(苹果公司建造5666)(dot 3)]关于达尔文
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口numpy
>>>numpy.version.version
'1.8.1'
>>>numpy.fft.fftfreq
我的推荐 更新numpy。您可能还需要更新python

实现这一点的简单方法(刚刚测试过):安装python3.3,然后安装pip()。安装pip后,它将是一个简单的
sudopip3.3installnumpy
,您将获得最新版本