参考北京师范大学的《计算物理基础》

第八章-快速傅里叶变换

计算物理基础_中国大学MOOC(慕课)​www.icourse163.org

1.快速傅里叶变换

1.1 离散傅里叶变换及其变换

离散傅里叶变换:令

(1的n次根),则
.

n个数据点

的离散傅里叶变换:
.用矩阵表示
,
的矩阵
的矩阵元
记为

以上即离散傅里叶变换的正变换和逆变换。

1.2 快速傅里叶变换的指令

  • 快速傅里叶变换(FFT)是离散傅里叶变换(DFT)的快速算法。

matlab中离散傅里叶变换使用的公式:(求和从1开始,故公式里的k和n都减1)

频率:

各频率的振幅:

  • 一维的FFT及其逆变换指令及语句格式
fft(x) fft(x,N)
ifft(x)  ifft(x,N)  %逆变换

说明:
x:待变换的数据
>输入数据的长度是2的整次幂,则FFT自动采用以2为基数的快速算法,否则就采用较慢的算法.
>若x是矩阵,FFT是对每一列进行.
N:进行N个点的FFT
>如果N大于x的长度,则用零补充.
>如果x大于N的长度,则把多余的部分去掉。
逆变换ifft的格式与fft的格式相同。

  • 二维的FFT及其逆变换
fft2(x) fft2(x,N)
ifft2(x)  ifft2(x,N)  %逆变换

说明:
x:要变换的二维矩阵。如果它是一维的,则按一维进行变换
逆变换ifft2的格式与fft的格式相同

  • 对于更高维:n维的FFT及其逆变换指令为fftn和ifftn,其用法分别与fft2、ifft2的格式相同。

2.快速傅里叶变换的应用

  • 一维傅里叶变换的应用

二维傅里叶变换的应用

f=zeros(30,30);
%f(1:30,15:16)=1;%设置矩形的位置
f(5:24,13:17)=1;%设置成狭缝figure(1)
imshow(f)%将数值显示为图像
F=fft2(f,256,256);
FF=fftshift(F);%将零频移到中央
F2=log(abs(FF));%计算须谱,取对数便
%F2=log(FF.*conj(FF)));%计算功率谱
figure(2)
imshow(F2,[-1,5])%将数值显示为图像
colormap(jet)
colorbar

2020.12.12

快速傅里叶变换_计算物理基础:第八章-快速傅里叶变换(FFT)相关推荐

  1. 用matlab对excel数据傅里叶变换,快速傅里叶变换_用excel如何作快速傅里叶变换?...

    用excel如何作快速傅里叶变换? 具体实例如下: 1.对于时间序列,可以展开成傅立叶级数,进行频谱分析.对于时间序列xt其傅立叶级数展开式为展开成傅立叶级数: 由图可见,图形完全对称,通常只取左半部 ...

  2. win10关闭快速启动_注意:win10系统快速启动功能虽然好用,但也会带来一些麻烦...

    快速启动是首先在Windows 8中实现并延续到Windows 10的功能,可在启动电脑时提供更快的启动时间.这是一个很方便的功能,也是大多数人在不知情的情况下使用的功能,但有一些高手会禁用它,为什么 ...

  3. 网站快速成型_我的老板对快速成型有什么期望?

    网站快速成型 Some of the top excuses I have gotten from clients when inviting them into a prototyping sess ...

  4. docker linux 快速开窗口_技术|如何使用 Docker 快速配置数据科学开发环境?

    数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难.而且这也是一个完全不常见的准入门槛. 还好,过去几 ...

  5. win10关闭快速启动_装系统不求人,快速制作启动U盘,傻瓜式重装WIN10

    在以前如果我们的电脑系统损坏,无法进入WINDOWS系统,在需要重装WINDOWS系统时,一般的做法是,下载一个WINDOWS系统镜像,制作一个PE启动盘,在PE里安装系统镜像.这样传统的WINDOW ...

  6. python qt gui快速编程_《PYTHON QT GUI快速编程 PYQT编程指南》源码

    文件名大小更新时间 <PYTHON QT GUI快速编程 PYQT编程指南>源码\chap01\answers.txt9882007-06-27 <PYTHON QT GUI快速编程 ...

  7. java安卓开发 快速入门_安卓程序员如何快速入门后端开发常识

    首先,对于安卓开发人员来说,学习一下后端开发知识是有必要的,一方面可以拓展自身的知识面,另一方面也可以推动自己走向全栈程序员发展路线,在云计算时代,全栈程序员的发展空间会更大一些. 相对来说,安卓程序 ...

  8. python快速数据分析_收藏 | 10个可以快速用Python进行数据分析的小技巧

    编译:小七.蒋宝尚 一些小提示和小技巧可能是非常有用的,特别是在编程领域.有时候使用一点点黑客技术,既可以节省时间,还可能挽救"生命". 一个小小的快捷方式或附加组件有时真是天赐之 ...

  9. java版我的世界快速建造_我的世界原版快速打造建筑指令教程分享

    导读:在我的世界中,玩家可以利用MOD来进行快速建造,下面小编我就来教教大家原版快速建造建筑的教程,通过下面的指令,就可以轻松的实现. 快速建筑Mod,都知道吧,就是按一下,然后出来个大房子的东西 这 ...

最新文章

  1. 黑马程序员 交通灯案例
  2. Operations on word vectors-v2 吴恩达老师深度学习课程第五课第二周编程作业1
  3. [算法题] Add Two Numbers
  4. laravel 目录
  5. ftp工具之本地操作命令
  6. 使用rabbitMQ实现数据同步
  7. HTML CSS里display:block的原理和用法
  8. Unit Three-Program test
  9. Let‘s Encrypt 免费Https证书
  10. Error - ORA-26028
  11. 模拟龟兔赛跑(Java)
  12. 令人困惑的strtotime
  13. 加载字典文件,扫描网站潜在目录
  14. CDA LEVEL I 数据分析认证考试模拟题库(一)
  15. 有监督机器学习训练流程---人工智能工作笔记0015
  16. 【C++】【内存】系列三:内存优化
  17. springboot-1-搭建一个springboot项目
  18. PHP获取网页返回的JSON数据并在微信换行展示
  19. 计算机基础知识(基础入门小白专属)四
  20. 1451_TC275 DataSheet阅读笔记12_时钟、温度以及供电

热门文章

  1. 二叉树的遍历(递归,非递归,Morris)
  2. Nginx内存管理详解
  3. TensorFlow交叉熵
  4. 字节跳动自研万亿级图数据库 图计算实践 【太高级了,不是圈里的人,有简明见解的吗?】
  5. 浅析聚簇索引与非聚簇索引(也叫二级索引)
  6. 利剑无意之JAVA面试题(二)
  7. Spark _30_SparkStreaming算子操作Driver HA
  8. JavaSE各阶段练习题----异常
  9. dart系列之:dart语言中的内置类型
  10. 小师妹学JavaIO之:文件编码和字符集Unicode