关于DFT变换含义、公式和具体形式

2023-05-16

原文地址:http://blog.sina.com.cn/s/blog_7853c3910102v9wd.html


这篇文章从实际工程应用的角度,记录一下如何计算,关于公式、变形和应用。

 

维基百科上的DFT公式:
对于N点序列,它的离散傅里叶变换(DFT)为

Discrete Fourier Transform Formula

 

有时候也能见到等式右边的系数不是1,而是1/N或者1/√N,最常用的还是系数为1的,只要保持“DFT变换”和“IDFTDFT反变换)变换”系数一致就好。


我们知道:关于DFT变换含义、公式和具体形式

假设 关于DFT变换含义、公式和具体形式, 那么公式变形为:

关于DFT变换含义、公式和具体形式

进一步:

 

关于DFT变换含义、公式和具体形式


所以其实DFT变换就是两个“相关(correlation)”操作,一个是与频率为KCOS序列相关,一个是与频率为KSIN序列相关,然后两者叠加就是与频率K的正弦波相关的结果,如果赋值很大,就表明信号包含频率为K的能量很大。

 

这里简单举个简单例子,假设序列x(n)=[1 0 -1 0],N=4

k=0,那么:

X(0)=[1 0 -1 0]*[1 1 1 1]’-i[1 0 -1 0]*[0 0 0 0]’

=0+i*0

也就是说其直流(DC)分量为0

k=1,那么:

X(1)= [1 0 -1 0]*[1 0 -1 0]’-i[1 0 -1 0]*[0 1 0 -1]’

      = 2-i*0

也就是说其一次谐波分量值很大,并且是和COS波形最相似(SIN分量能量为0

k=2那么:

X(2)= [1 0 -1 0]*[1 -1 1 -1]’-i[1 0 -1 0]*[0 0 0 0]’

      = 0-i*0

也就是说其二次谐波分量值为0.

X(3)= [1 0 -1 0]*[1 0 -1 0]’-i[1 0 -1 0]*[0 -1 0 -1]’

      = 2+i

嗯??怎么三次谐波分量居然那么大,哦,原来是采样频率不够大,其三次谐波根本就恢复不出来。

 

 

这里我要专门研究一下关于角度的问题,还是和上面类似的例子,假设序列x(n)=[ √2/2  -√2/2  -√2/2  √2/2],N=4 k=1,那么:

X(1)= [ √2/2  -√2/2  -√2/2  √2/2 ]*[1 0 -1 0]’-i[ √2/2  0 -√2/2 0]*[0 1 0 -1]’

      = √2+i*√2

也就是说一次谐波的相位是PI/4,而不是-PI/4。有时候应用DFT的时候关于DFT变换含义、公式和具体形式 里面第二项的”-“号容易被忽略。另外函数ATAN2的含义是:

 

 ATAN2Y坐标,X坐标)

\arg(X_k) = \operatorname{atan2}\big( \operatorname{Im}(X_k), \operatorname{Re}(X_k) \big)=-i*\operatorname{ln}\left(\frac{X_k}{|X_k|}\right),


但是”-“号被忽略其实也不是大问题,只是计算出来的虚部符号相反,并不影响幅值(magnitude),而相位会相反,只要保证后续处理一致,那么相位和标准DFT定义相反也没关系。我们的设计当中就是定义的和标准DFT相位相反。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于DFT变换含义、公式和具体形式 的相关文章

随机推荐

  • pb9在64位系统下提示:error opening DLL library pbws32.dll for external function

    pb9在64位系统下提示 xff1a error opening DLL library pbws32 dll for external function 解决方法 xff1a 打开PB9的目录 xff0c 在pb90 exe的属性中选择兼
  • 集成学习

    李宏毅机器学习 周志华机器学习第8章 使用sklearn进行集成学习 stacking心得 xgboost实战 bagging xff1a 当原模型已经很复杂的时候 xff0c bias已经很小但variance很大时候 比较容易overf
  • 【C++中级篇】gtest的使用方法及cmake配置

    个人箴言 xff1a 不积跬步 xff0c 无以至千里 xff1b 不积小流 xff0c 无以成江海 夯实基础 xff0c 成就高楼大厦 前言 xff1a 在一项c 43 43 工程中 xff0c 会存在很多类 xff0c 很多功能方法 x
  • CMake如何控制两个文件生成的依赖关系

    使用target link libraries函数 xff1a 这个函数可以让你指定一个目标 xff08 target xff09 依赖于哪些其他目标或库 CMake会自动根据这些依赖关系来确定编译的顺序 xff0c 先编译被依赖的目标 x
  • 关于windows连不上服务器的问题

    报错 xff1a kex exchange identification read Connection reset 也有可能报错 xff1a remote side unexpectedly closed network connecti
  • Jackson多态反序列化的使用

    缘起 最近看Apache Druid的源代码 0 5很老的版本 xff0c 印象最深的就是对Jackson的多态反序列化和注入的使用了 xff0c 这里也属于自己的知识盲点 xff0c 看着复杂的json直接反序列化为可用对象 xff0c
  • Apache Druid源码导读--Google guice DI框架

    文章目录 缘起Google Guice介绍与Spring的对比Example覆盖已有绑定关系默认绑定 Apache Druid中Guice模块guice lifecycleguice jsonconfigguice jersey jetty
  • 向Python女神推荐这些年我追过的经典书籍

    最近 34 瑞丽模特学Python 34 的热点牵动了大江南北程序员的心 xff0c 有人说这是炒作 xff0c 也有人说这是推广Python的爆点 我嘿嘿一笑 xff0c 美女就是美女 xff0c 眼光那是杠杠的 xff0c 不仅人美 x
  • [gevent源码分析] 深度分析gevent运行流程

    一直对gevent运行流程比较模糊 xff0c 最近看源码略有所得 xff0c 不敢独享 xff0c 故分享之 gevent是一个高性能网络库 xff0c 底层是libevent xff0c 1 0版本之后是libev xff0c 核心是g
  • TCP服务器端和客户端程序设计

    一 实验目的 学习和掌握Linux下的TCP服务器基本原理和基本编程方法 体会TCP与UDP编程的不同 xff0c UDP编程 xff1a http blog csdn net yueguanghaidao article details
  • UDP服务器端和客户端程序设计

    实验三 UDP服务器端程序设计 一 实验目的 学习和掌握Linux下的UDP服务器基本原理和基本编程方法 xff0c 体会与TCP的区别 xff0c TCP编程 xff1a http blog csdn net yueguanghaidao
  • python实现的文本编辑器

    wxpython实现的文本编辑器 效果如下 xff1a 主要功能 xff1a 1 编辑保存文本 xff0c 打开修改文本 2 常用快捷键 xff0c 复制 xff0c 粘贴 xff0c 全选等 3 支持撤销功能 4 支持弹出式菜单 代码如下
  • C语言开发Linux下web服务器(支持GET/POST,SSL,目录显示等)

    这个主要是在CSAPP基础上做的 xff0c 添加了POST xff0c SSL xff0c 目录显示等功能 一 实现功能 xff1a 1 支持GET POST方法 2 支持SSL安全连接即HTTPS 3 支持CGI 4 基于IP地址和掩码
  • sklearn2pmml xgboost缺失值(missing)处理的坑

    sklearn2pmml xgboost缺失值 missing 处理的坑 今天同事在部署xgboost pmml模型时遇到了大坑 xff0c 线上spark预测和本地python预测结果怎么都不对应 xff0c 记录一下处理过程 看了下同事
  • adb导出手机应用到电脑

    简单说一下相关步骤 xff0c 以备不时之需 1 手机开启usb调试 2 Windows系统 Win 43 R打开命令行窗口 xff0c 输入adb devices xff0c 如果连接成功会出现机子的序列号 3 adb shell pm
  • Js作用域与作用域链详解

    一直对Js的作用域有点迷糊 xff0c 今天偶然读到Javascript权威指南 xff0c 立马被吸引住了 xff0c 写的真不错 我看的是第六版本 xff0c 相当的厚 xff0c 大概1000多页 xff0c Js博大精深 xff0c
  • windows10环境下tensorflow安装教程

    楼主最近一直忙着找工作 最近几个月一直all in java 好久没学机器学习 深度学习 前几天突然通知要提交论文中期了 于是赶紧打开电脑 结果发现之前安装的tensorflow居然登陆不上了 折腾了半天 搜过各种csdn博客 一直安装失败
  • 'gbk' codec can't encode character '\xa0'

    从网上抓了一些字节流 xff0c 想打印出来结果发生了一下错误 xff1a UnicodeEncodeError 39 gbk 39 codec can 39 t encode character 39 xbb 39 in position
  • 【Git记录学习】github创建项目以及本地使用(vscode)

    一 github创建空仓库 从github中创建空仓库 在执行完上一步操作后会返回这样的界面 xff0c 包括了一些基本的git操作以及HttpS SSH地址 生成一个readme md文档 xff08 步骤2 Set up下面有蓝色的超链
  • 关于DFT变换含义、公式和具体形式

    原文地址 xff1a http blog sina com cn s blog 7853c3910102v9wd html 这篇文章从实际工程应用的角度 xff0c 记录一下如何计算 xff0c 关于公式 变形和应用 维基百科上的 DFT公