2014.04.17,转帖,关于FFT的结果为什么要除以N
关于这个问题,我看到的书好像都没有进行解释,这里我试着解释下:
首先,离散付立叶变换的定义本身比连续付立叶变换少了一个dt(采样时间间隔);
然后,对于单频率成分的信号来说,经过矩形窗截断后的频谱在其信号频率处将放大T(做谱时间长度)倍,同样,对于相隔较远的多频率成分信号来说,相应的频率成分的幅值均将因截断而被放大T倍。
综合考虑这两种原因的话,也就是说我们用FFT做出的谱实际上是放大了T/dt=N(做谱点数)倍,因此,必须将此结果除以N。
以上是对于单频率或相隔较远的多频率成分信号而言的,其他的情况得具体问题具体分析了,如加的是其他窗,就要考虑幅值恢复系数。密集频率成分的考虑等等。
--------------------------------
解释的有道理,不过我感觉之所以除以个N,是因为我们在进行离散傅立叶变换时,是连加的,将所有采样的点都加在了一起,所以最后要除以N,不知说得对不对。
-----------------------------
一开始也是这么想的,可后来觉得这样解释不对.
因为有时这样解释是不对的,例如你构造一个低通滤波器序列,照这样解释的话它的频谱同样得除以N,但事实上并不需要,这主要的原因就是它本身是一个连续频率成分.
------------------------------
对于单频率的信号,经过矩形窗截断后,在频谱上为什么要乘以2/N来求得该信号的幅值,这可以经严格的数学推导得出的,它是由sinc函数产生的。现把它的推导过程列于下:---图片见原帖
--------------------------
FFT是个算法,至于点数N的处理,有些教科书上是除在FFT上,有些是除在IFFT上,因为FT是个变换,所以要保证 x=IFFT( FFT(x) )成立。
具体的计算公式还是要去研究DFT的一些东东,请楼主不妨参考一下这篇文献: 严普强等,动态测试信号处理中时-频域变换算法的讨论,振动测试与诊断,23(2),2003:120-124。 对傅氏变换,傅立叶级数等一些基本概念做了比较详细的讨论
---------------------------
除以N,是为了傅立叶逆变换的时候在数值上相应,其实对于分析来说意义并不是很大,所以除跟不除以N关系不是很大
------------------------------------------------
怎么一会N一会N/2??
----------------------
“2”是做单边谱的时候用。
---------------------
当输入样点数据为实数时除以2/N
当输入样点数据为复数时除以N
-----------------------
求有效值必须除以N
----------------------
不要先想DFT,先看看原始的傅里叶级数和傅里叶变换的公式,自己动手推导一下DFT就知道为什么要除以N了,注意,除以N得到的是双边谱幅值
----------------------
根据楼上的说法,除以N得到的双边谱,除以N同时乘以2得到的是单边谱,是这个意思吗??
是的。双边谱意味着有正负频率,只有数学意义,一般可以叫做数学谱;单边谱只有正频率,叫物理谱,一般具体工程问题的谱,都是指物理谱。
-------------------
下面是另一个关于功率谱和功率谱密度的讨论的帖子:
http://www.chinavib.com/forum/thread-26594-1-123.html
对信号加汉宁窗是为了截取1024个样值,再做DFT变换成幅度谱,取绝对值再平方是求频率线上的能量(还是功率?搞不清),为什么要除以1/N?最后为什么会产生512条频率线?请指教!
-------------------------------
加汉宁窗不仅是为了截取,同时还是为了减少泄露和干涉.
为什么要除以N,和为什么产生512条谱线,可参看本版其他帖.
还有这个公式求功率谱有问题,应该再乘上汉宁窗的能量恢复系数1.633
-------------------------------
看了论坛上的其他帖子,可是依然很混乱,资料上给出的这个公式说是求功率谱密度的,可是对它的意义还是不十分了解。
先结合我在论坛上看的功率谱方面的帖子,总结以下几点吧:
1,功率谱密度==功率谱;
2,分析功率有限信号采用功率谱,能量有限信号采用能量谱;
3,分析确定信号用频谱,分析随机信号用功率谱;
4,我们所说的“频谱”大部分指的是幅度谱(双边谱),是对信号做了DFT或FFT后得到的;
5,对幅度谱(双边谱)平方后乘2可转化为单边谱;
6,求功率谱(功率谱密度)是将DFT或FFT后的结果平方;
问题是:
1,对于确定信号,幅度谱是否等同于功率谱(即直接作DFT或FFT变换就可得到)?
2,对于随机信号,功率谱采用直接法是做DFT或FFT后绝对值得平方除以N?
3,功率谱求出的幅度是相对值,转化为绝对幅度的方法到底是除以采样频率还是频率分辨率?
以下问题针对附件给出的公式:
4,若用fft函数怎样求出512条谱线?
5,对于用1024点DFT变换作出的512条谱线的含义,为什么不作成1024条?
请大家来指点一下,如果有不对的地方希望提出!
----------------------------------------
回答:1 功率谱是幅度谱的平方(会相差一个系数)
2 可以这样做
3 取决于你功率谱的求法,不好回答,方法很多的.
4 512条是你具体问题中的出现的,不是必然
5 1024点DFT后关于原点对称,是双边谱,而我们只用单边谱,故只有一半的点数
---------------------------------------
但是对于式子里出现的1/N还是不清楚,查了一些资料,功率谱密度是DFT,FFT后绝对值的平方,那1/N的出现是什么意思呢?
------------------------------
这里给出的功率谱(密度)都是相对值,功率谱计算的方法之一是由FFT后的谱线平方来得到。但作FFT时,有的在FFT的公式中乘以(1/N),因此在你的式子中就有了(1/N)这因子,也有人把这因子放在IFFT中,这时表示出的功率谱计算中便没有这个因子。
2014.04.17,转帖,关于FFT的结果为什么要除以N的更多相关文章
- mini2440移植uboot 2014.04(三)
我修改的代码已经上传到github上,地址:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440.git 参考文档: s3c2440手册(下载地址) ...
- centos下Spin Version 6.3.2及ispin安装(2014.9.17)
centos下Spin Version 6.3.2及ispin安装(2014.9.17) 前言:windos下首先安装虚拟机,再安装linux系统(centos版) 一.本帖来源于官网http://s ...
- ApexSql Log 2014.04.1133破解版&补丁
已上传最新的2016版本,请移步: http://www.cnblogs.com/gsyifan/p/ApexSql_Log_2016_Crack.html 状态不好,鬼使补差的跑到服务器上updat ...
- SAP-MM:收货转储时提示 M7053“只能在公司代码 **** 的期间 2014/04 和 2014/03 中记账”
错误信息 消息号M7053 解决方法 Step 1.使用MMPV进入"关闭账期"界面. Step 2.输入"公司代码"."期间".& ...
- 关于asp.net执行exe程序时权限不够的解决办法(2015.04.17更新)
一,本文背景 长话短说:asp.net项目中需要用到PDF转换成SWF文件,用户上传后自动调用pdf2swf.exe转换. 但有个问题,执行时权限不够,导致一直报错(滚动条一直在往下滚,刷屏中),见下 ...
- new Date('2014/04/30') 和 new Date('2014-04-30') 的区别
new Date('2014/04/30') Wed Apr 30 2014 00:00:00 GMT+0800 (中国标准时间) new Date('2014-04-30'); Wed Apr 30 ...
- mini2440移植uboot 2014.04(七)
上一篇博文:<mini2440移植uboot 2014.04(六)> 代码已经上传到github上: https://github.com/qiaoyuguo/u-boot-2014.04 ...
- mini2440移植uboot 2014.04(六)
上一篇博文:<mini2440移植uboot 2014.04(五)> 代码已经上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04- ...
- mini2440移植uboot 2014.04(五)
代码上传到github上:https://github.com/qiaoyuguo/u-boot-2014.04-mini2440 前几篇博文: <mini2440移植uboot 2014.04 ...
随机推荐
- POJ3087 Shuffle'm Up
题目: 现有字符串s1.s2.s12,其中s1.s2的长度为len,s12的长度为2*len. 是否可以通过一些操作使s1和s2转换合并成s12? 变换的操作规则如下: 假设s1=11111,s2=0 ...
- Devexpress PdfViewer预览pdf,禁止下载,打印,复制
PDFviewer控件: 参数设置: 1.屏蔽书签栏和右键菜单 2.加载文档支持路径以及流stream加载的方式 pdfViewer.MenuManager.DisposeManager(); pdf ...
- DropDownListFor
- BZOJ1211: [HNOI2004]树的计数(prufer序列)
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2987 Solved: 1111[Submit][Status][Discuss] Descript ...
- Hibernate中解决No Hibernate Session bound to thread问题
引用:忘了 首先是getCurrentSession()与openSession()的区别: 1.getCurrentSession()与openSession()的区别? * 采用getCurren ...
- [原创]C++带空格字符串的输入问题
字符串一直是一个重点加难点,很多笔试面试都会涉及,带空格的字符串更是十分常见,现在对字符串的输入问题进行一下总结. C++用cin输入的时候会忽略空格以后的字符,比如 char a[100]; cin ...
- 开源作品-ThinkPHP在线分析工具(单文件绿色版)-TPLogAnalysis_PHP_1_0
TPLogAnalysis_PHP_1_0 前言:项目开发基于ThinkPHP框架,但是在调试程序的时候,没有一款日志可视化分析工具.在网络也找不到任何相关的TP日志分析工具.求人不如求己,于是决定抽 ...
- matplotlib学习笔记.CookBook
matplotlib 是Python下的一个高质量的画图库,可以简单的类似于MATLAB方法构建高质量的图表. 原始文章地址:http://zanyongli.i.sohu.com/blog/view ...
- HTML5新特性之文件和二进制数据的操作 Blob对象
HTML5新特性之文件和二进制数据的操作 1.Blob对象 2.FileList对象 3.File对象 4.FileReader 对象 5.URL对象
- C++基础 (5) 第五天 重载new delete () 只能操作符 自定义string类
1 昨日回顾 1.static 对整个类共享 可以直接用 类::方法 调用 如果是私有的 可以提供一个静态的访问静态成员的方法 2 自定义的数组类-重载操作符[] 3 重载new和delete 4 重 ...