numpy下fft模块提供了丰富的fft函数,几种常用的在这里记录一下使用方式

fft

输入实数samples,如果输入的sample是带虚数部分的话,虚数部分会被默认删除。

t=np.arange(12)
b=np.sin(t)
print(b)
print("sum(b)=", np.sum(b))s = np.fft.fft(b)
print(s)

运行结果截图如下

从图中可以看到,

  • [0]是一个实数,实数部分是所有input中各个元素之和。
  • [i]与[N-i]共轭;输入的N如果是偶数,那么[N/2]没有共轭的元素。

rfft

rfft其实就是对fft的结果输出做了省略。 针对刚刚提到的共轭特性,其实输出结果是要保留(N+1)//2个结果就可以了。

t=np.arange(12)
b=np.sin(t)
print(b)
print("sum(b)=", np.sum(b))s = np.fft.fft(b)
print("fft result:", s)s = np.fft.rfft(b)
print("rfft result:", s)

fftfreq

返回fft的频率节点

上面的fft和rfft将时域数据转为频域,得到的数据的bin是哪些范围?
可以通过fftfreq来获取

第一个参数n是时域数据的数据个数,第二个参数d是表示每一个bin的尺度。一般是1/sample_rate

t=np.arange(12)
b=np.sin(t)
print(b)
print("sum(b)=", np.sum(b))s = np.fft.fft(b)
print("fft result:", s)s = np.fft.rfft(b)
print("rfft result:", s)s= np.fft.fftfreq(12, d=1/8000)
print(s)

其结果为

[    0.          666.66666667                      1333.33333333                     2000.2666.66666667  3333.33333333                    -4000.                          -3333.33333333-2666.66666667 -2000.                            -1333.33333333                    -666.66666667]

那么结合rfft的数据就有

Bin Range Value
bin[1] 1~667HZ 0.46997981+0.41183211j
bin[2] 667~1334HZ -1.36179847-5.76500237j
bin[3] 1334~2000HZ 0.14669493-0.4965488j
bin[4] 2000~2667HZ 0.20513541-0.2233417j
bin[5] 2667~3333HZ 0.22157176-0.09538547j
bin[6] 3333~4kHZ 0.22563497+0.j

【numpy】几种fft函数的使用相关推荐

  1. Numpy中np.mashgri() 函数介绍及2种应用场景

    @[toc](Numpy中np.mashgri() 函数介绍及2种应用场景 文章目录:) 近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法. 但总觉得印象不深刻,不 ...

  2. python中numpy函数fft_如何在PyTorch中正确使用Numpy的FFT函数?

    我最近被介绍给Pythorch,开始浏览图书馆的文档和教程. 在"使用numpy和scipy创建扩展"教程中( http://pytorch.org/tutorials/advan ...

  3. numpy基础教程--clip函数的使用

    在numpy中,clip函数的原型为clip(self, min=None, max=None, out=None),意思是把小于min的数全部置换为min,大于max的数全部置换为max,在[min ...

  4. Py之Numpy:Numpy库中常用函数的简介、应用之详细攻略

    Py之Numpy:Numpy库中常用函数的简介.应用之详细攻略 目录 Numpy库中常用函数的简介.应用 1.X, Y = np.meshgrid(X, Y) 相关文章 Py之Numpy:Numpy库 ...

  5. numpy矩阵运算和常用函数

    1. 创建常见的矩阵: >>> data1=mat(zeros((3,3))) #创建一个3*3的零矩阵 >>> data1 matrix([[ 0., 0., 0 ...

  6. FPGA series # 基于SDx的fft函数加速

    最近比较丧,也不知道是担心未来还是担心这样的自己 SDx建工程,new->SDx project,展开,src右键->import(或者在文件夹内添加相应的.c文件). main.c: # ...

  7. 离散傅里叶变换DFT与FFT,MATLAB的FFT函数使用(原创)——如何使用fft()绘制出真正的频谱图像

    以前一直对MATLAB中fft()函数的使用一直存在疑惑,为什么要加一 些参数,并且如何确定这些参数,也查了许多资料,但很多都感觉只是 表面一说根本没有讲清其本质.但随着学习的推进,慢慢有所领悟,所 ...

  8. Matlab中fft函数的使用与原理

    快速傅里叶变换(Fast Fourier transform,FFT) 利用离散傅里叶变换(DTF)算法进行运算时,复数乘法运行次,复数加法运行次,计算量其实可以通过fft减小.1965年,首先由Co ...

  9. [二] Numpy数据存取与函数

    Numpy数据存取与函数 一维和二维数据的存取 CSV文件, np.loadtxt(), np.savetxt() 多维数据的存取 a.tofile(), np.fromfile() np.save( ...

最新文章

  1. 下一代防火墙的5个优点
  2. JAVA SE学习day_01:API、文档注释规范、String字符串的常用API
  3. 【Android NDK 开发】JNI 线程 ( JNI 线程创建 | 线程执行函数 | 非 JNI 方法获取 JNIEnv 与 Java 对象 | 线程获取 JNIEnv | 全局变量设置 )
  4. oracle: to_char,to_date
  5. 电子管计算机的操作者是谁,大一计算机第一学期考试重点及相应习题 作者
  6. UVA 10254 The Priest Mathematician
  7. [BZOJ]3173: [Tjoi2013]最长上升子序列
  8. 小储云v1.782免授权版
  9. axure 小程序 lib_【kboneui】打通 H5/微信小程序,多端UI库
  10. CSS 常用中文字体的英文名称
  11. selenium测试(Java)-- 显式等待(九)
  12. 算法笔记_面试题_14. strStr 长字符串中查找短字符串
  13. java中多态含有math类_Java面试题汇总《Java基础、语法51-55》
  14. MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
  15. hihocoder 1378(有向图求最小割集)
  16. Spring Boot:项目前端vue环境搭建
  17. 写一段excel VBA自动分类的代码
  18. authorization配置
  19. ionic3 ion-select
  20. 失业参加聚会_谁被邀请参加聚会?

热门文章

  1. github+picGo+jsDelivr构建图床
  2. CentOS7(64位)安装Jupyter Notebook
  3. 华岩资本--微生物领域项目投递通道
  4. Horticulture Research 模式图的手稿
  5. NEJM | 益生菌LGG治疗肠胃炎无效,Immunity|LGG促进生骨
  6. R语言可视化、编写自定义函数可视化水平排序条形图(horizontal bar plot)、自定义图像布局模仿经济学人杂志可视化效果、右侧添加标签数值图像方框、自定义背景色、水平条形图中间线条等
  7. R语言使用haven包的read_spss函数读取spss格式数据、使用haven包的read_sas函数读取SAS格式数据、使用haven包的read_dta函数读取Stata格式数据
  8. R语言ggplot2可视化:使用scale_shape_identity函数显示pch点形状、使用geom_text函数为pch形状添加标(plot characters)
  9. R语言配对图可视化:pivot_longer函数将宽格式的数据重塑为长格式并进行数据全连接和左连接(left join)、配对图可视化(根据分类变量的值为散点图上的数据点添加颜色)
  10. pandas分层索引(层级索引、MultiIndex)的创建、取值、切片、统计计算以及普通索引和层级索引的转换方法