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. R 分析回归(一元回归)

    x <- c(,,,,,,,,,) # build X(predictor) y <- c(,,,,,,,,,) # build Y(dependent variable) mode(x) ...

  2. Zjnu Stadium HDU - 3047 带权并查集板子题

    #include<iostream> #include<cstring> #include<cstdio> using namespace std; +; int ...

  3. Constructing Roads POJ - 2421 最小生成树板子题

    #include<iostream> #include<cstring> #include<algorithm> using namespace std; ; in ...

  4. PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分) (排序)

    给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...

  5. 微信小程序调起支付API

    官方文档: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7 https://developers.weixin.q ...

  6. 题解 P1056 【排座椅】

    题目地址:https://www.luogu.com.cn/problem/P1056 题解原地址:https://createsj.blog.luogu.org/solution-p1056 由于题 ...

  7. BurpSuite 汉化版(含注册机)安装教程

      1.注册机使用方法 首先需要完成java安装及环境变量配置. 打开burp-loader-keygen.jar(注册机)--点击run--license text (随意写)--然后将生成的lic ...

  8. ubuntu set up 3 - cuda

    https://www.pugetsystems.com/labs/hpc/How-to-install-CUDA-9-2-on-Ubuntu-18-04-1184/ How to install C ...

  9. 2020牛客寒假算法基础集训营1 F-maki和tree

    链接:https://ac.nowcoder.com/acm/contest/3002/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  10. linux - mysql:安装mysql

    安装环境 系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...