离散傅里叶变换DFT入门
网上对于傅里叶变换相关的文章很多(足够多),有的是从物理相关角度入场,有的从数学分析角度入场。对于有志学习相关概念的同学还是能够很好的理解的。
数学包括三大块:代数学、几何、数学分析。前两块我们在中学阶段一直在用,数学分析(非数学专业以高等数学入门)在大学开始接触
本文从更简单(最简单)的解析几何角度尝试讲一点DFT的入门概念。
解析几何就是把几何用代数学表示,引入了平面直角坐标系,是高中数学的主要部分
一、复数和单位复数根
复数我们在高中已经接触过了。当时为了强调二次方程一定有两个根(而不是更多或更少),引入了虚数单位\(i\),它是-1的平方根:
但实际上反过来不成立,也就是说-1的平方根并不只是\(i\)。想一下为什么?
这样类似于\(2+3i\)这样的_表示_就叫“复数”。其中\(2\)是实部,\(3\)是虚部(注意虚部不是\(3i\),因为\(i\)只是一种约定俗成的字母,实际可以用任何字母。甚至用有序实数对_表示_复数的时候完全不用引入字母)。
这里我们多次使用表示来说复数,是因为复数实际真的不是数(虽然说它是对实数系的扩充)。数的作用是“计数”,要能够比较大小。实数以后的数系都不再能比较了。只是在生产过程中,新的数系能把事情解释的更明白。而且对比来讲,实数上面的运算只是高等数系的一种特殊情况,复数的各种规律依然完全适用于实数。这样看来,用来计数的实数反而是自然界的“副产品”
有了复数概念,我们就可以说n次方程有且只有n个(复数)根。比如:
有4个根。除了我们一眼看出的熟悉的正负1,还有两个虚数根:正负i。
单位复数根就是这么来的:方程
的n个根就叫n次单位复根。
二、与复平面的关系
复平面可以理解为中学的平面直角坐标系,只不过横轴变成了实数轴,纵轴变成了虚数轴。
上图中横轴是实轴,纵轴是虚轴。单位圆与横轴的两个交点左右分别是-1,1;与纵轴的两个交点上下分别是i,-i。
上面提到的4次方程的4个根就是四次单位复根。从复平面看就是:第一个根从原点向实轴正向交于1(任意次单位复根第一个根都是1对吧?),第二个逆时针(或者说正向)转90度(因为3604)到了i,再转90度是第三个根-1,继续转是最后一个-i。
再比如,
的8个八次单位复数根同理可知,分别是
或者用三角函数表示
实际上,每次转动的角度确定以后(这个角度很好算,就是360除以次数,比如8次的就是360/8=45度,对应弧度π/4),第k个根(k从0开始到n-1)就是
可以自行验证。
三、离散傅里叶变换
有了上面的基础知识,我们来定义离散傅里叶变换。
设有向量
对于每一个下标\(j=0,1,...,n-1\),重新计算一个值:
其中\(w_n^j\)是n次单位复根中的第\(j\)个。
这样,离散傅里叶变换就是下面这个向量:
四、练习
请计算向量\(\left[\begin{array}{cccccc}
0&1& 2&3
\end{array}\right]^T\)的DFT。
离散傅里叶变换DFT入门的更多相关文章
- 灰度图像--频域滤波 傅里叶变换之离散傅里叶变换(DFT)
学习DIP第23天 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不 ...
- 【转】离散傅里叶变换-DFT(FFT)基础
转:https://blog.csdn.net/zhangxz259/article/details/81627341 什么是离散傅里叶变换 matlab例子 本文是从最基础的知识开始讲解,力求用最通 ...
- 用matlab脚本语言写M文件函数时用三种方法简单实现实现DFT(离散傅里叶变换)
%用二重循环实现DFT: function xk=dt_0(xn); %define a function N=length(xn); %caculate the length of the vari ...
- c语言数字图像处理(六):二维离散傅里叶变换
基础知识 复数表示 C = R + jI 极坐标:C = |C|(cosθ + jsinθ) 欧拉公式:C = |C|ejθ 有关更多的时域与复频域的知识可以学习复变函数与积分变换,本篇文章只给出DF ...
- opencv 3 core组件进阶(3 离散傅里叶变换;输入输出XML和YAML文件)
离散傅里叶变换 #include "opencv2/core/core.hpp" #include "opencv2/imgproc/imgproc.hpp" ...
- OpenCV离散傅里叶变换
离散傅里叶变换 作用:得到图像中几何结构信息 结论:傅里叶变换后的白色部分(即幅度较大的低频部分),表示的是图像中慢变化的特性,或者说是灰度变化缓慢的特性(低频部分). 傅里叶变换后的黑色部分(即幅度 ...
- 离散傅里叶变换(DFT)
目录 一.研究的意义 二.DFT的定义 三.DFT与傅里叶变换和Z变换的关系 四.DFT的周期性 五.matlab实验 五.1 程序 ...
- Opencv 实现图像的离散傅里叶变换(DFT)、卷积运算(相关滤波)
我是做Tracking 的,对于速度要求非常高.发现傅里叶变换能够使用. 于是学习之. 核心: 最根本的一点就是将时域内的信号转移到频域里面.这样时域里的卷积能够转换为频域内的乘积! 在分析图像信号的 ...
- 【算法•日更•第四十二期】离散傅里叶变换(DFT)
▎前言 小编相当的菜,这篇博客难度稍高,所以有些可能不会带有证明,博客中更多的是定义. 我们将要学到的东西: 复数 暴力多项式乘法 DFT 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...
随机推荐
- python学生管理名片
name=['刘备','关羽','张飞','赵云','马超'] print('名片管理系统1.0\n1.增加一个新的名片\n2.删除一个名片\n3.修改一个名片\n4.查找一个名片\n5.退出名片管理 ...
- nodjs html 转 pdf
var fs = require('fs');var pdf = require('html-pdf');//模块//读取html 文件 var html = fs.readFileSync('./s ...
- 免费部署个人博客到远端GitHub
前言 前面的博客我写到怎么样用hexo建立一个自己的博客网站(没看的可以先看前面那个文章地址,)但是它只能运行在本地端口,如果你分享给你的小伙伴他们是打不开的.如果把它部署到服务器上或空间上每个月都会 ...
- js下 Day13、面向对象
一.对象 什么是对象: 一组无序的属性集合 创建对象两种方式: 对象字面量: var obj = {} 实例化: var obj = new Object() 对象取值: **[] ( ** 中括号) ...
- Python高级语法-多继承MRO相关-多继承顺序(4.5.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 使用类的魔法方法__mro__ 可以查看他的父类调用顺序 还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先 ...
- 卷积涨点论文 | Asymmetric Convolution ACNet | ICCV | 2019
文章原创来自作者的微信公众号:[机器学习炼丹术].交流群氛围超好,我希望可以建议一个:当一个人遇到问题的时候,有这样一个平台可以快速讨论并解答,目前已经1群已经满员啦,2群欢迎你的到来哦.加入群唯一的 ...
- Centos上配置nginx+uwsgi+负载均衡配置
负载均衡在服务端开发中算是一个比较重要的特性.因为Nginx除了作为常规的Web服务器外,还会被大规模的用于反向代理后端,Nginx的异步框架可以处理很大的并发请求,把这些并发请求hold住之后就可以 ...
- JavaScript之作用域-作用域链
作用域 ==> 作用域链 作用域:变量可以其作用的区域(声明定义好一个变量,变量可以在哪些范围内使用) 分类:全局作用域和局部作用域(函数作用域):在js中,目前全局有作用域以及函数可以形成 ...
- 篇章三:SVN-对文件的操作
添加文件 在检出的工作副本中添加一个Readme文本文件,这时候这个文本文件会显示为没有版本控制的状态,如图: 这时候,你需要告知TortoiseSVN你的操作,如图: 加入以后,你的文件会变成这个状 ...
- (五)vimscript打印信息
1.打印信息 使用vimscript时,打印信息的命令是echo和echom,可以通过help echo及help echom命令查看帮助文档,而echo与echom有些许的区别, :echom &q ...