离散傅里叶变换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 当然,小编之前就已经写过一篇博客了,主要讲的就是基础多项式, ...
随机推荐
- new一个对象时,会经历哪些步骤
(1)创建一个对象:(2)将构造函数的作用域赋值给新对象(因此this就指向了这个新对象):(3)执行构造函数中的代码(为这个新对象添加属性):(4)返回新对象
- 能否让APP永不崩溃—小光与我的对决
前言 关于拦截异常,想必大家都知道可以通过Thread.setDefaultUncaughtExceptionHandler来拦截App中发生的异常,然后再进行处理. 于是,我有了一个不成熟的想法.. ...
- CF1407D Discrete Centrifugal Jumps 题解
蒟蒻语 写了 \(100\) 行的 线段树上ST表维护二分维护单调栈维护dp, 结果最后发现只要俩单调栈就好了 = = 蒟蒻解 首先 \(dp_i\) 表示从 \(1\) 楼到 \(i\) 楼要跳几次 ...
- Java集合源码分析(八)——WeakHashMap
简介 WeakHashMap 继承于AbstractMap,实现了Map接口. 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和 ...
- Java并发编程的艺术(十二)——并发容器和框架
ConcurrentHashMap 为什么需要ConcurrentHashMap HashMap线程不安全,因为HashMap的Entry是以链表的形式存储的,如果多线程操作可能会形成环,那样就会死循 ...
- jvm基本结构和解析
jvm的基本结构图如下 这只是代表我的个人理解 不是很深刻 欢迎各类大神进行补充和纠正 jvm之所以强大就是因为他从软件层面屏蔽不用操作系统在底层硬件与指令上的区别,从而可以在不同系统上兼容 主要 ...
- Java中构造代码块的使用
例子1 public class Client { { System.out.println("执行构造代码块1"); } { System.out.println("执 ...
- mini-web框架-WSGI-mini-web框架-多进程,面向对象的服务器(5.1.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 使用多进程 积极主动python多进程是复制资源,线程是共享变量 所以这个的socket要关两次,因为复制文件的时候,是把文件的fd给复制过去(fil ...
- Open SSH CVE-2020-15778
Open SSH OpenSSH 是用于使用 SSH 协议进行远程登录的一个开源实现.通过对交互的流量进行加密防止窃听,连接劫持以及其他攻击.OpenSSH 由 OpenBSD 项目的一些开发人员开发 ...
- Docker跑项目中常见的中间件
声明: 本章只作为记录 前端时间跑项目,发现每次都需要启动大量的中间件.在Windows 上启动特别麻烦 就想着写篇文章总结一下,把所有的 中间件全放服务器上启动 ,下次 直接复制黏贴命令就好了. 例 ...