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 ...
随机推荐
- Objective-C浮点数转化整数(向上取整、向下取整)
Objective-C拓展了C,自然很多用法是和C一致的.比如浮点数转化成整数,就有以下四种情况. 1.简单粗暴,直接转化 float f = 1.5; int a; a = (int)f; NSLo ...
- WPF全球化与本地化
当一个App需要推出多语言版本时,就需要使用到[全球化与本地化]服务. 原理及过程 资源文件中包含了所有的控件信息,通过导出这些控件信息,修改其对应的相关属性(比如TextBlock的Text属性)的 ...
- sql server中使用组合索引需要注意的地方
一.使用组合索引需要注意的地方 1.索引应该建在选择性高的字段上(键值唯一的记录数/总记录条数),选择性越高索引的效果越好.价值越大,唯一索引的选择性最高: 2.组合索引中字段的顺序,选择性越高的字段 ...
- 转载:SoapUI之接口数据传递
SoapUI之接口数据传递(TestCase.TestSuite传递) SoapUI之接口数据传递(step传递) SoapUI+Groovy做接口自动化测试 SoapUI中使用Conditional ...
- open source project for recommendation system
原文链接:http://blog.csdn.net/cserchen/article/details/14231153 目前互联网上所能找到的知名开源推荐系统(open source project ...
- mindmanager 2018 中文破解版_注册码_免激活
MindManager 2018是一个可视化的工具,可以用在脑力风暴(brainstorm)和计划(plan)当中.为商务人士提供更有效的.电子化手段捕捉.组织和联系信息(information)和想 ...
- JS 蓝球弹起的高度 100 米 第几次高度小于1米
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python文件操作IO
模式 描述 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. rb 以二进制格式打开一个文件用于只读.文件指针将会放在文件的开头.这是默认模式.一般用于非文本文件如图片等. r+ ...
- linux 结构需要清理 (structure needs cleaning)
下面操作会删除挂载点所有文件,注意备份. df -T 查看出错的挂载点对应的文件系统和文件系统类型 然后umount这个文件系统 umount /dev/sda1 然后文件系统类型不同操作不同 ...
- 【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现
如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义: /** * 对一个字符串的转义 * @param str * @return {*} */ functi ...