计算一维离散傅立叶变换。

此函数使用高效的快速傅立叶变换(FFT)算法计算一维n-point离散傅立叶变换(DFT)[1]。

参数:

x:array_like输入数组,可能很复杂。

n:int, 可选参数输出的转换轴的长度。如果n小于输入的长度,则裁剪输入。如果较大,则输入将填充零。如果未指定n,则使用输入沿由axis指定的轴的长度。

axis:int, 可选参数计算FFT的轴。如果未给出,则使用最后一个轴。

norm:{None, “ortho”}, 可选参数归一化模式。默认值为无,表示对正向变换和按比例缩放不进行标准化1/n在ifft。对于norm="ortho",两个方向均按1/sqrt(n)。

overwrite_x:bool, 可选参数如果为True,则x的内容可以被销毁;默认值为False。有关更多详细信息,请参见下面的注释。

workers:int, 可选参数用于并行计算的最大工人数。如果为负,则值从os.cpu_count()。请参阅下面的更多细节。

返回值:

out:复数ndarray截断的或zero-padded输入,沿axis指示的轴转换,如果未指定axis,则最后一个输入。

异常:

IndexError如果轴大于x的最后一个轴。

注意:

FFT(快速傅立叶变换)是指通过在计算项中使用对称性可以有效地计算离散傅立叶变换(DFT)的方法。当n为2的幂时,对称性最高,因此,对于这些大小,变换效率最高。对于可分解的尺寸,scipy.fft使用Bluestein的算法[2]因此永远不会比O(n日志n)。 zero-padding使用以下输入可以看到进一步的性能改进next_fast_len。

如果x是一维数组,则fft相当于

y[k] = np.sum(x * np.exp(-2j * np.pi * k * np.arange(n)/n))

频率项f=k/n被发现于y[k]。在y[n/2]我们达到Nyquist频率并回绕到negative-frequency个项。因此,对于8点变换,结果的频率为[0、1、2、3,-4,-3,-2,-1]。要重新排列fft输出以使zero-frequency组件居中,例如[-4,-3,-2,-1、0、1、2、3],请使用fftshift。

可以单精度,双精度或扩展精度(长双精度)浮点数进行转换。半精度输入将转换为单精度,非浮点输入将转换为双精度。

如果数据类型为x实际上,会自动使用“real FFT”算法,从而将计算时间大致减少了一半。为了进一步提高效率,请使用rfft,它执行相同的计算,但仅输出对称频谱的一半。如果数据既真实又对称,则dct通过从一半信号产生一半频谱,可以再次使效率提高一倍。

当overwrite_x=True被指定时,所引用的内存x该实现可以以任何方式使用。这可能包括为结果重新使用内存,但这绝不能保证。您不应依赖于x转换之后,因为将来可能会更改而不会发出警告。

的workers参数指定将FFT计算拆分为的最大并行作业数。这将在内部执行独立的一维FFTx。所以,x必须至少为二维,并且未变换的轴必须足够大以分裂成块。如果x太小,可能会使用少于要求的作业。

参考文献:

Cooley,James W.和John W. Tukey,1965年,“一种用于复杂傅里叶级数的机器计算的算法”,数学。计算19:297-301。

Bluestein,L.,1970年,“一种用于离散傅里叶变换的线性滤波方法”。 IEEE音频和电声学报。 18(4):451-455。

例子:

>>> import scipy.fft

>>> scipy.fft.fft(np.exp(2j * np.pi * np.arange(8) / 8))

array([-2.33486982e-16+1.14423775e-17j, 8.00000000e+00-1.25557246e-15j,

2.33486982e-16+2.33486982e-16j, 0.00000000e+00+1.22464680e-16j,

-1.14423775e-17+2.33486982e-16j, 0.00000000e+00+5.20784380e-16j,

1.14423775e-17+1.14423775e-17j, 0.00000000e+00+1.22464680e-16j])

在此示例中,实际输入具有FFT,该FFT是Hermitian的,即在实数部分是对称的,而在虚数部分是anti-symmetric:

>>> from scipy.fft import fft, fftfreq, fftshift

>>> import matplotlib.pyplot as plt

>>> t = np.arange(256)

>>> sp = fftshift(fft(np.sin(t)))

>>> freq = fftshift(fftfreq(t.shape[-1]))

>>> plt.plot(freq, sp.real, freq, sp.imag)

[, ]

>>> plt.show()

python fft函数_python scipy fft.fft用法及代码示例相关推荐

  1. python agg函数_Python Pandas Series.agg()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas Series.agg()用 ...

  2. python中uniform函数_python scipy stats.uniform用法及代码示例

    均匀连续随机变量. 在标准形式下,分布均匀[0, 1].使用参数loc和scale,在上获得均匀分布[loc, loc + scale]. 作为一个实例rv_continuous类,uniform对象 ...

  3. python colorbar函数_Python Matplotlib.pyplot.colorbar()用法及代码示例

    颜色条是从标量值到颜色的映射的可视化.在Matplotlib中,它们被绘制到专用轴中. 注意:通常通过Figure.colorbar或其pyplot包装器pyplot.colorbar创建颜色条,该内 ...

  4. python annotate函数_Python Matplotlib.pyplot.annotate()用法及代码示例

    Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展. Pyplot是Matplotlib模块的基于状态的接口,该模块提供了MATLAB-like接口. matplotli ...

  5. python切比雪夫滤波器_python scipy signal.iirfilter用法及代码示例

    IIR数字和模拟滤波器设计给出了阶数和临界点. 设计一个Nth-order数字或模拟滤波器,然后返回滤波器系数. 参数: N:int过滤器的顺序. Wn:array_like标量或长度为2的序列给出了 ...

  6. python duplicated函数_Python Pandas Dataframe.duplicated()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. 数据分析的重要部分是分析重复值并将其删除 ...

  7. python iloc函数_python pandas Series.iloc用法及代码示例

    基于位置的纯基于整数位置的索引. .iloc[]主要基于整数位置(来自0至length-1轴),但也可以与布尔数组一起使用. 允许的输入为: 整数,例如5. 整数列表或数组,例如[4, 3, 0]. ...

  8. python 希尔伯特变换_python scipy signal.hilbert用法及代码示例

    使用希尔伯特变换来计算分析信号. 默认情况下,转换是沿着最后一个轴完成的. 参数: x:array_like信号数据.必须是真实的. N:int, 可选参数傅立叶分量的数量.默认:x.shape[ax ...

  9. python to_excel函数_python pandas DataFrame.to_excel用法及代码示例

    将对象写入Excel工作表. 要将单个对象写入Excel .xlsx文件,仅需要指定目标文件名.要写入多张纸,必须创建一个ExcelWriter对象和目标文件名,并在文件中指定要写入的工作表. 通过指 ...

  10. python randint函数用法_python scipy stats.randint用法及代码示例

    均匀离散随机变量. 作为一个实例rv_discrete类,randint对象从中继承了通用方法的集合(完整列表请参见下文),并使用特定于此特定发行版的详细信息来完善它们. 注意: 的概率质量函数ran ...

最新文章

  1. Facial keypoints detection Kaggle 竞赛系列
  2. 二次拟合r方_R方和线性回归拟合优度
  3. MySQL——高阶语句(上)
  4. java list能作为入参吗_springmvc 不支持 List 对象作为 方法的参数
  5. Silverlight:Dependency Property(依赖属性)学习笔记
  6. QCon杭州2012技术开发大会感受
  7. 【元胞自动机】基于matlab元胞自动机模拟小区车流量【含Matlab源码 358期】
  8. Web测试和App测试区别
  9. vue 导出excel文件
  10. eplan 电箱布局_Eplan 的从头到尾完成3D布局步骤说明
  11. JZOJ5460. 【NOIP2017提高A组冲刺11.7】士兵训练
  12. Python ADF 单位根检验 结果理解
  13. Android自动接听来电并录音
  14. @SpringBootTest注解分析(一)Found multiple @SpringBootConfiguration annotated classes
  15. 形容等待时间长的句子_形容等待已久的事终于等到句子
  16. 如何让Jmeter压力测试减少压力机的资源消耗
  17. 微信小程序利用腾讯云IM发送语音 + 图片
  18. 如何深入理解 iOS 开发中的锁?
  19. 用计算机用u盘怎么切换,u盘上的东西换个电脑就不见了怎么办啊
  20. 单片机如何烧录程序?单片机的下载方式讲解

热门文章

  1. origin 绘制箱图
  2. Atitit 高级人员要看哪些源码 目录 1. Ati看过的源码 1 1.1. Ui类 1 1.2. Mvc类 1 1.3. 数据库类 1 1.4. 算法类 1 2. 看源码的意义 2 2.1. 一
  3. Atitit 语言分类 形式语言 目录 1. 形式语言(英语:Formal language)是用精确的数学或机器可处理的公式定义的语言。 1 1.1. 形式语言理论是用数学方法研究自然语言(如英语
  4. atitit 解决教学记忆问题 压缩算法原理  哈夫曼 LZ77 gzip  zlib deflate算法.docx 目录 1. 压缩理论 1 1.1. 柯氏复杂性 1 2. 1 RLE 1
  5. Atititi 软件界面gui开发之道 attilax著
  6. Atitit 如何利用先有索引项进行查询性能优化
  7. paip.TechExcel DevSuite IIS 根目录结构
  8. paip.目录文件列表排序算法
  9. paip.按键精灵调用其它程序及DLL以及EXE命令行的方法
  10. paip.网站上传服务里需要做的操作流程V2012.10.2