python fft函数_python scipy fft.fft用法及代码示例
计算一维离散傅立叶变换。
此函数使用高效的快速傅立叶变换(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用法及代码示例相关推荐
- python agg函数_Python Pandas Series.agg()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas Series.agg()用 ...
- python中uniform函数_python scipy stats.uniform用法及代码示例
均匀连续随机变量. 在标准形式下,分布均匀[0, 1].使用参数loc和scale,在上获得均匀分布[loc, loc + scale]. 作为一个实例rv_continuous类,uniform对象 ...
- python colorbar函数_Python Matplotlib.pyplot.colorbar()用法及代码示例
颜色条是从标量值到颜色的映射的可视化.在Matplotlib中,它们被绘制到专用轴中. 注意:通常通过Figure.colorbar或其pyplot包装器pyplot.colorbar创建颜色条,该内 ...
- python annotate函数_Python Matplotlib.pyplot.annotate()用法及代码示例
Matplotlib是Python中的一个库,它是数字的-NumPy库的数学扩展. Pyplot是Matplotlib模块的基于状态的接口,该模块提供了MATLAB-like接口. matplotli ...
- python切比雪夫滤波器_python scipy signal.iirfilter用法及代码示例
IIR数字和模拟滤波器设计给出了阶数和临界点. 设计一个Nth-order数字或模拟滤波器,然后返回滤波器系数. 参数: N:int过滤器的顺序. Wn:array_like标量或长度为2的序列给出了 ...
- python duplicated函数_Python Pandas Dataframe.duplicated()用法及代码示例
Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. 数据分析的重要部分是分析重复值并将其删除 ...
- python iloc函数_python pandas Series.iloc用法及代码示例
基于位置的纯基于整数位置的索引. .iloc[]主要基于整数位置(来自0至length-1轴),但也可以与布尔数组一起使用. 允许的输入为: 整数,例如5. 整数列表或数组,例如[4, 3, 0]. ...
- python 希尔伯特变换_python scipy signal.hilbert用法及代码示例
使用希尔伯特变换来计算分析信号. 默认情况下,转换是沿着最后一个轴完成的. 参数: x:array_like信号数据.必须是真实的. N:int, 可选参数傅立叶分量的数量.默认:x.shape[ax ...
- python to_excel函数_python pandas DataFrame.to_excel用法及代码示例
将对象写入Excel工作表. 要将单个对象写入Excel .xlsx文件,仅需要指定目标文件名.要写入多张纸,必须创建一个ExcelWriter对象和目标文件名,并在文件中指定要写入的工作表. 通过指 ...
- python randint函数用法_python scipy stats.randint用法及代码示例
均匀离散随机变量. 作为一个实例rv_discrete类,randint对象从中继承了通用方法的集合(完整列表请参见下文),并使用特定于此特定发行版的详细信息来完善它们. 注意: 的概率质量函数ran ...
最新文章
- Facial keypoints detection Kaggle 竞赛系列
- 二次拟合r方_R方和线性回归拟合优度
- MySQL——高阶语句(上)
- java list能作为入参吗_springmvc 不支持 List 对象作为 方法的参数
- Silverlight:Dependency Property(依赖属性)学习笔记
- QCon杭州2012技术开发大会感受
- 【元胞自动机】基于matlab元胞自动机模拟小区车流量【含Matlab源码 358期】
- Web测试和App测试区别
- vue 导出excel文件
- eplan 电箱布局_Eplan 的从头到尾完成3D布局步骤说明
- JZOJ5460. 【NOIP2017提高A组冲刺11.7】士兵训练
- Python ADF 单位根检验 结果理解
- Android自动接听来电并录音
- @SpringBootTest注解分析(一)Found multiple @SpringBootConfiguration annotated classes
- 形容等待时间长的句子_形容等待已久的事终于等到句子
- 如何让Jmeter压力测试减少压力机的资源消耗
- 微信小程序利用腾讯云IM发送语音 + 图片
- 如何深入理解 iOS 开发中的锁?
- 用计算机用u盘怎么切换,u盘上的东西换个电脑就不见了怎么办啊
- 单片机如何烧录程序?单片机的下载方式讲解
热门文章
- origin 绘制箱图
- Atitit 高级人员要看哪些源码 目录 1. Ati看过的源码	1 1.1. Ui类	1 1.2. Mvc类	1 1.3. 数据库类	1 1.4. 算法类	1 2. 看源码的意义	2 2.1. 一
- Atitit 语言分类 形式语言 目录 1. 形式语言(英语:Formal language)是用精确的数学或机器可处理的公式定义的语言。	1 1.1. 形式语言理论是用数学方法研究自然语言(如英语
- atitit 解决教学记忆问题 压缩算法原理 哈夫曼 LZ77 gzip zlib deflate算法.docx 目录 1. 压缩理论	1 1.1. 柯氏复杂性	1 2. 1 RLE	1
- Atititi 软件界面gui开发之道 attilax著
- Atitit 如何利用先有索引项进行查询性能优化
- paip.TechExcel DevSuite IIS 根目录结构
- paip.目录文件列表排序算法
- paip.按键精灵调用其它程序及DLL以及EXE命令行的方法
- paip.网站上传服务里需要做的操作流程V2012.10.2