DFT计算过程详解
DFT计算过程详解
平时工作中,我们在计算傅里叶变换时,通常会直接调用Matlab中的FFT函数,或者是其他编程语言中已经为我们封装好的函数,很少去探究具体的计算过程,本文以一个具体的例子,向你一步一步展示DFT的计算过程。
众所周知,傅里叶变换的计算公式为:

对时域信号进行离散化:

根据欧拉定理:

DFT方程改写为:

为第m个DFT输出值,
为采样点输入,
假设N=4:

则:
m=0

m=1

m=2

m=3

这里需要补充一个采样率的概念。
假设对原始信号的采样率为:

对原始信号做16点DFT进行分析,则基频为:

则:
X(0) = 1st frequency term ,with analysis frequency = 0 .31.25 = 0Hz;
X(1) = 2nd frequency term ,with analysis frequency = 1.31.25 = 31.25Hz;
X(2) = 3rd frequency term ,with analysis frequency = 2 .31.25 = 62.5Hz;
X(3) = 4th frequency term ,with analysis frequency = 3 .31.25 = 93.75Hz;
分析频率的公式可以计为:

下面进入正题,对一个特定信号进行DFT分析。
原始信号为:

可以看出此信号包含1kHz和2kHz的信号,现在一步一步的对此信号做8点DFT分析。
假设采样率为
,即每
秒采集一个点,由于N=8,因此我们需要8个输入采样点来计算DFT,即对原始信号进行离散化为:

如果采样率samples/s,则DFT的结果将计算的是输入信号x(n)在分析频率,0KHz,1kHz,2KHz,...,7kHz处的梯度值。
则:

当m=1时,即计算原始信号在1kHz下的梯度值:


当m=2时,即计算原始信号在2kHz下的梯度值:

当m=3时,即计算原始信号在3kHz下的梯度值:

当m=4时,即计算原始信号在4kHz下的梯度值:

当m=5时,即计算原始信号在5kHz下的梯度值:

当m=6时,即计算原始信号在6kHz下的梯度值:

当m=7时,即计算原始信号在7kHz下的梯度值:

即8个梯度值计算完成:

DFT计算过程详解的更多相关文章
- Hadoop MapReduce执行过程详解(带hadoop例子)
		
https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...
 - Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)
		
启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...
 - Linux启动过程详解
		
Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...
 - ping命令执行过程详解
		
[TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...
 - Hadoop Mapreduce分区、分组、二次排序过程详解[转]
		
原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2) ...
 - Android中mesure过程详解
		
我们在编写layout的xml文件时会碰到layout_width和layout_height两个属性,对于这两个属性我们有三种选择:赋值成具体的数值,match_parent或者wrap_conte ...
 - Hadoop学习之Mapreduce执行过程详解
		
一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...
 - mysql中SQL执行过程详解与用于预处理语句的SQL语法
		
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
 - SSL/TLS 握手过程详解
		
在现代社会,互联网已经渗透到人们日常生活的方方面面,娱乐.经济.社会关系等都离不开互联网的帮助.在这个背景下,互联网安全就显得十分重要,没有提供足够的安全保障,人们是不会如此依赖它的.幸运的是,在大牛 ...
 
随机推荐
- gulp常用插件之gulp-htmlmin使用
			
更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-htmlmin这是一款HTML文件压缩插件. 更多使用文档请点击访问gulp-htmlmin工具官网. 安装 一键安装不多解释 npm ...
 - arcgis10.2下载安装教程
			
ArcGIS Desktop 10.2 完全安装教程(含win7 32/64位+下载地址+亲测可用) 时间: 2014年08月20日 阅读: 622,262 分类: GIS探秘 标签: A ...
 - Codeforces 1304E. 1-Trees and Queries 代码(LCA 树上两点距离判奇偶)
			
https://codeforces.com/contest/1304/problem/E #include<bits/stdc++.h> using namespace std; typ ...
 - MatchQuotesPastEndOfLine
			
MatchQuotesPastEndOfLine: 设定值:Yes/No 作用:当读取平面文件时,是否将双引号括起来部分整体视为单个字段值,比如以下平面文件: ID, Name, City , To ...
 - 创建基于ASP.NET  core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新
			
本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razo ...
 - C++&C语言 -> //有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
			
/* a b c d 1 5 5 ...
 - LaTeX技巧008:如何给文字添加阴影效果?
			
大家可以使用这个包:shadowtext宏包
 - 题解【AcWing91】最短Hamilton路径
			
题面 看到数据范围这么小,第一眼想到爆搜. 然而这样做的复杂度是 \(\mathcal{O}(n! \times n)\) 的,明显会 TLE. 于是考虑状压 DP. 我们设 \(dp_{i,j}\) ...
 - H3C RIP配置
			
一.RIP简介 RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模 ...
 - 6.Dockerfile 指令
			
概述 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,其实 Dockerfile 功能很强大,它提供了十多个指令.下面我们继续讲解其他的指令. COPY 格式: COPY <源路 ...