MATLAB实现快速傅里叶变换的原理和基本代码

  • 格式:docx
  • 大小:257.39 KB
  • 文档页数:4

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB实现快速傅里叶变换的原理和基本代码

作者:头铁的小甘

快速傅里叶变换原理

在分析和处理信号时,一般需要将信号时域转换到频域空间表示,这样可以清楚知道信号的频率成分分布,也便于对其进行信息提取,滤波、去噪等操作。由于计算复杂和繁琐,一般采取计算机进行计算和处理,为了提高计算速率,快速傅里叶变换应运而生,大大减少计算机的乘法操作,因此大幅度减少计算时间。快速傅里叶变化的主要原理采用蝶形运算进行表示,如下图所示

N=8需三级蝶形运算N=23=8,由此可知,N=2M共需M级蝶形运算,而且每级都由N/2个蝶形运算组成,每个蝶形运算需要一次复乘和两次复加。这就是快速傅里叶变换算法的简单原理。

时域——频域对应

在进行快速傅里叶时,数据的时域和频域怎样对应起来是一个重要的方面。基本原理如下

模拟数据进行采样成离散时间,便于计算机操作,采样满足奈奎斯特定理,所以采样间隔就是1/fs,fs是采样频率。对于频域来说:总长应该是采样频率,步长应该为fs/n,n是数据样本的数据长度。对应原理图如下所示

Matlab快速傅里叶变换基本代码

结果显示

按照三角函数的傅里叶变换,图中可以看到幅频特性应该是在f=100Hz是呈现狄拉克函数(冲激函数),数据点越多越满足结果。