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 ...
随机推荐
- Jsoup的简单的使用示例
利用Jsoup中的相关方法实现网页中的数据爬去,本例子爬去的网页为比较流行的programmableweb中的mashup描述内容,然后为数据库中存在的mashup添加相应的描述. package c ...
- 数据库表结构导出sql语句
在“对象资源管理器”中找到要导出的表,选中该表并单击右键,“编写表脚本为(S)”/“CREATE到(C)”/“新查询编辑器窗口”即可查看该表的建表语句,Ctrl+S保存为sql脚本文件
- JavaScript函数传参
函数传参一: <html> <head> <meta charset="utf-8"> <title>无标题文档</title ...
- Shell Notes
查找: find: 实时查找,精确,速度慢,支持正则 find 查找路径 查找标准 查到后处理动作 查找路径默认当前目录,查找标准默认路径下所有文件,动作默认打印到屏幕 匹配标准: -name 'fi ...
- junit使用第一弹
知识点——断言 断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过. 1. 断言核心方法 assertArrayEquals(expecteds, actual ...
- 杭电2053 WA
#include<stdio.h> int main() { ]; while(scanf("%d",&n)!=EOF) { ;i<=;i++) { a[ ...
- WPF 利用RichTextBox 打印出不同颜色的文本
using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows ...
- SPOJ DISQUERY LCA + 倍增
裸题,如此之水- Code: #include<cstdio> #include<algorithm> using namespace std; const int maxn ...
- POJ2406A- Power Strings
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- 【Computer Vision】 复现分割网络(1)——SegNet
目录 Tags: ComputerVision 编译 数据处理 训练结果 Reference Tags: ComputerVision 编译 src/caffe/layers/contrastive_ ...