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计算过程详解的更多相关文章

  1. Hadoop MapReduce执行过程详解(带hadoop例子)

    https://my.oschina.net/itblog/blog/275294 摘要: 本文通过一个例子,详细介绍Hadoop 的 MapReduce过程. 分析MapReduce执行过程 Map ...

  2. Linux启动过程详解(inittab、rc.sysinit、rcX.d、rc.local)

    启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息.硬 ...

  3. Linux启动过程详解

    Linux启动过程详解 附上两张图,加深记忆 图1: 图2: 第一张图比较简洁明了,下面对第一张图的步骤进行详解: 加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的 ...

  4. ping命令执行过程详解

    [TOC] ping命令执行过程详解 机器A ping 机器B 同一网段 ping通知系统建立一个固定格式的ICMP请求数据包 ICMP协议打包这个数据包和机器B的IP地址转交给IP协议层(一组后台运 ...

  5. Hadoop Mapreduce分区、分组、二次排序过程详解[转]

    原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动   (1)最简单的过程:  map - reduce   (2) ...

  6. Android中mesure过程详解

    我们在编写layout的xml文件时会碰到layout_width和layout_height两个属性,对于这两个属性我们有三种选择:赋值成具体的数值,match_parent或者wrap_conte ...

  7. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

  8. mysql中SQL执行过程详解与用于预处理语句的SQL语法

    mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

  9. SSL/TLS 握手过程详解

    在现代社会,互联网已经渗透到人们日常生活的方方面面,娱乐.经济.社会关系等都离不开互联网的帮助.在这个背景下,互联网安全就显得十分重要,没有提供足够的安全保障,人们是不会如此依赖它的.幸运的是,在大牛 ...

随机推荐

  1. gulp常用插件之gulp-htmlmin使用

    更多gulp常用插件使用请访问:gulp常用插件汇总 gulp-htmlmin这是一款HTML文件压缩插件. 更多使用文档请点击访问gulp-htmlmin工具官网. 安装 一键安装不多解释 npm ...

  2. arcgis10.2下载安装教程

    ArcGIS Desktop 10.2 完全安装教程(含win7 32/64位+下载地址+亲测可用) 时间: 2014年08月20日   阅读: 622,262   分类: GIS探秘   标签: A ...

  3. Codeforces 1304E. 1-Trees and Queries 代码(LCA 树上两点距离判奇偶)

    https://codeforces.com/contest/1304/problem/E #include<bits/stdc++.h> using namespace std; typ ...

  4. MatchQuotesPastEndOfLine

    MatchQuotesPastEndOfLine:  设定值:Yes/No 作用:当读取平面文件时,是否将双引号括起来部分整体视为单个字段值,比如以下平面文件: ID, Name, City , To ...

  5. 创建基于ASP.NET core 3.1 的RazorPagesMovie项目(三)-已搭建基架的Razor页面解释和更新

    本节主要介绍在上一节中通过搭建基架而创建的Razor页面,并做一些UI改变. 一.创建.删除.详细信息和编辑页面 1.双击Pages/Movies/Index.cshtml.cs文件,这是一个Razo ...

  6. C++&C语言 -> //有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

    /*    a                  b                          c       d 1  5                   5               ...

  7. LaTeX技巧008:如何给文字添加阴影效果?

    大家可以使用这个包:shadowtext宏包

  8. 题解【AcWing91】最短Hamilton路径

    题面 看到数据范围这么小,第一眼想到爆搜. 然而这样做的复杂度是 \(\mathcal{O}(n! \times n)\) 的,明显会 TLE. 于是考虑状压 DP. 我们设 \(dp_{i,j}\) ...

  9. H3C RIP配置

    一.RIP简介 RIP(Routing Information Protocol,路由信息协议)是一种较为简单的内部网关协议(Interior Gateway Protocol,IGP),主要用于规模 ...

  10. 6.Dockerfile 指令

    概述 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,其实 Dockerfile 功能很强大,它提供了十多个指令.下面我们继续讲解其他的指令. COPY 格式: COPY <源路 ...