目录

1 离散傅里叶级数

1.1 离散傅里叶级数(DFS)

1.2 离散傅里叶级数的性质

2 离散傅里叶变换

2.1 离散傅里叶变换(DFT)

2.2 离散傅里叶变换的性质

2.3 频域采样定理

2.4 离散傅里叶变换的应用

3 快速傅里叶变换

3.1 按时间抽取的基2FFT算法(DIT-FFT)

3.2 按频率抽取的基2FFT算法(DIF-FFT)

3.3 快速傅里叶反变换

3.4 N为合数的FFT算法

3.5 分段卷积

3.6 实序列的FFT算法实现


1 离散傅里叶级数

1.1 离散傅里叶级数(DFS)

1. 傅里叶变换的几种可能形式:

  • 连续时间,连续频率——傅里叶变换(FT)
  • 连续时间,离散频率——傅里叶级数(FS)
  • 离散时间,连续频率——序列的傅里叶变换(DTFT)
  • 离散时间,离散频率——离散傅里叶变换(DFT)

2. 离散傅里叶级数

3. 周期序列的离散傅里叶级数变换对

其中

是周期为N的离散周期信号。

4. DFS与Z变换的关系

周期序列DFS可以看作是的一个周期x(n)做Z变换,再将Z变换在Z平面单位圆上按等间隔角抽样而得到。

1.2 离散傅里叶级数的性质

  • 线性
  • 周期序列的移位
  • 调制特性
  • 周期卷积

周期卷积与线性卷积的不同之处在于周期卷积仅在一个周期内求和。

2 离散傅里叶变换

2.1 离散傅里叶变换(DFT)

离散傅里叶变换

DFT实际上是DFS的主值,DFT隐含了周期性。x(n)的N点DFT对应x(n)的Z变换在单位圆上N个等间隔点的采样。

2.2 离散傅里叶变换的性质

  • 线性
  • 对称性:设x(n)为长度为N的实序列

  • 循环移位(圆周移位)
  • 循环卷积(圆周卷积)

计算过程:补零,周期延拓,翻褶,移位取主值序列,相乘相加。

循环卷积是周期卷积取主值,周期卷积是线性卷积的周期延拓。当时,可以用长度为L的循环卷积计算两个长度为N的序列的线性卷积。

2.3 频域采样定理

时域抽样造成频域周期延拓,频域抽样造成时域周期延拓。当频域采样点数时,频域采样X(k)可以不失真地恢复x(n)。进一步可以通过x(n)得到X(z),实现由DFT到ZT的重构,也可以由DTFT与ZT的关系得到傅里叶变换的内插公式。

2.4 离散傅里叶变换的应用

  • 混叠现象
  • 频谱泄露:时域加窗造成频域的拖尾现象;
  • 栅栏效应:可通过增大频域采样的N值,减小频率分辨率来减少栅栏效应;
  • 频率分辨率F:决定记录连续信号的最小时间长度;
  • 物理频率分辨率:序列的傅里叶变换能够分辨的最小频率;
  • 计算频率分辨率:DFT谱线间的距离。

3 快速傅里叶变换

3.1 按时间抽取的基2FFT算法(DIT-FFT)

算法原理:的对称性、周期性和可约性。

对时间进行奇偶分解,得到

带入DFT公式,得到

由于可约性

得到X(k)的前半部分

考虑到的的周期性有

考虑到的对称性有

因此得到X(k)的后半部分

继续分解,最终得到表示算法的蝶形图如下

  • 同址运算(原位计算):每一组运算结果仍存放在同一组存储器中;
  • 变址运算:乱序输入,顺序输出,乱序符合码位倒读规则;
  • FFT的运算量:(M为分解的级数)

  • N点DFT的运算量:N^2次复乘,N(N-1)次复加。

3.2 按频率抽取的基2FFT算法(DIF-FFT)

DIF-FFT是将时间前后分,频率偶奇分。与DIT-FFT不同的是,DIT-FFT的计算是先复乘后复加,而DIF-FFT是先复加后复乘。

3.3 快速傅里叶反变换

下图所示为按时间抽取的IFFT流程图

3.4 N为合数的FFT算法

如果N不为2的幂,通常有两种处理办法:

  • 用补零的方法延长x(n);
  • 采用以任意数为基数的FFT算法。

一个N=pq点的DFT可以用p个q点DFT来组成

3.5 分段卷积

输入为有限长序列的有限冲激响应(FIR)系统输出可以利用DFT得到,但在实现时存在一定的问题。由于输入序列的长度不确定,无法预先设置DFT的点数进行计算,所以需要先得到所有输入序列的样本,但会导致较大的延迟,这个问题可以利用分段卷积的方法解决。

1. 重叠相加法:将x(n)分成若干长为L的段

  • 计算h(n)的N点FFT,N=L+M-1;
  • 计算的N点FFT,N=L+M-1;
  • 计算
  • 的N点反变换,得到
  • 的重叠部分相加,得到最后输出

2. 重叠保留法:将x(n)划分为若干长度为N的序列,每段与其前一段重叠M-1个点,计算循环卷积(M<N)并去掉重叠的部分,拼接得到最终结果,如下图所示。

3.6 实序列的FFT算法实现

如果x(n)为实序列,有如下三种处理方式:

1. 把实序列x(n)看作虚部为0的复序列,直接调用FFT;

2. 把两个N点的实序列x(n)和h(n)构造复序列y(n)

对y(n)进行N点FFT,得到

3. x(n)为N点实序列,取x(n)的偶数点和奇数点构造y(n)的实部和虚部

对y(n)做N/2点FFT得到Y(k)

根据DIT-FFT的思想可以得到

由于x(n)为实序列,X(k)具有共轭对称性,则X(k)的另N/2个点的值为

【数字信号处理 | 学习笔记】二、离散傅里叶变换及其快速算法相关推荐

  1. 数字信号处理学习笔记[1] 离散信号 奇异信号 抽样定理

    文章目录 2 离散信号和抽样定理 2.1 离散信号 奇异信号 2.2 连续信号的离散化,正弦波的抽样问题 2.3 带限信号与奈奎斯特频率 用卷积考察抽样定理 2.4 离散信号的频谱和抽样定理 2 离散 ...

  2. 数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF

    数字图像处理学习笔记(三):ORB算法(尺度不变特征变换)Oriented FAST and Rotated BRIEF 一.概述 参考:特征点匹配+特征检测方法汇总 ORB的全称是Oriented ...

  3. 数字信号处理学习笔记(一)|离散傅里叶变换

    离散傅里叶变换(DFT) 离散傅里叶变换(Discrete Fourier Transform)的实质是有限长序列傅里叶变换的有限点离散采样,实现了频域离散化,使数字信号处理可以在频域采用数值运算的方 ...

  4. 数字信号处理学习(二):振动与信号

    (以下内容纯粹抄书.书名:<数字信号处理的Matlab实现>) 通过读书,以早日学会随机场的生成! ---------------------- S 2.1 振动概述 对于简谐无阻尼振动, ...

  5. 数字信号处理学习笔记[0] 连续信号的频谱和傅氏变换

    文章目录 绪论 1 连续信号的频谱和傅氏变换 1.1 有限区间上连续信号的傅氏级数和离散频谱 1.2 傅氏变换,连续信号与频谱 1.2.3 频谱的基本性质 实际应用举例 习题 绪论 Q: 举例说明&q ...

  6. 数字信号处理学习笔记

    文章目录 信号处理 离散时间信号与系统 为什么要处理信号 信号是如何处理的 信号处理的目的 数字信号的表示 信号的分类 DSP 和 ASP 数字信号处理的特点 数字信号处理的应用 两类DSP 数字信号 ...

  7. dft对称性 matlab实验,数字信号处理实验 matlab版 离散傅里叶变换的性质

    数字处理实验 matlab版 山大学生最适用 本人自己写的 因为时间比较久了 不能完全保证出现代码都能运行 但95%还是能保证的 谢谢 实验13 离散傅里叶变换的性质 (完美格式版,本人自己完成,所有 ...

  8. 【DSP数字信号处理学习笔记】—— 详细推导DFT的快速实现算法:FFT 基于库利-图基算法的实现

    引言:尽管离散傅里叶变换(DFT)让频谱分析技术在计算机上的实现成为可能,但是受限于DFT算法庞大的计算量 O(N2)O(N^2)O(N2),使得DFT在一开始并没有被广泛使用,直到快速傅里叶变换算法 ...

  9. 数字信号处理学习笔记(二)|快速傅里叶变换

    快速傅里叶变换(FFT) 一.FFT出现的原因 对x(n)进行N点DFT计算,一共有N2 次乘法,N2次加法 如果N=1024,则有2*1048576次计算,计算量过于庞大. FFT的思想就是:不断把 ...

最新文章

  1. oracle 存储过程 输入,Oracle 存储过程加密方法
  2. weblogic工具_WebLogic Classloader分析工具
  3. c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任务资源
  4. vSphere 6.5 High Availability New Features – Proactive HA(vSphere 6.5高可用性新功能–主动HA)
  5. javascript 关键字this
  6. JavaScript 开闭原则OCP
  7. Simplify Path
  8. 1.通俗地理解贝叶斯公式(定理)
  9. 程序员年薪30万,被准丈母娘各种刁难,网友说:分手吧!
  10. BZOJ 2751: [HAOI2012]容易题(easy)( )
  11. 目标检测里,视频与图像有何区别?
  12. iconfont字体图标以及css字体图标在线制作和使用(推荐)
  13. html 获取声音频谱,[前端]利用WebAudioAPI获取音频频谱(html5音频可视化)
  14. asp.net后台代码如何通过动态的id给aspx中的html控件赋值
  15. mysql mmm坑_MySql之MMM部署过程中各种问题解决方法
  16. 短信验证php_php实现登录短信验证
  17. 【网络安全】基于网络攻击链的安全防护思考
  18. 超图结构到底比图结构好在哪里?????
  19. 基于Matlab Simulink开发的嵌入式模型,模型可自动生成ccs工程代码,生成的代码可直接运行在主控芯片中
  20. mac应用程序在哪_如何在Mac上列出所有应用程序

热门文章

  1. Resnet-50网络结构详解
  2. Web----CSS
  3. win7计划任务执行BAT文件问题
  4. Linux-ubuntu20高分辨率如2k屏下deepin qq或wechat很小
  5. 用vuex构建单页必备好文
  6. IOS管理文件和目录
  7. Linux高速缓存和内存屏障
  8. 2022年还可以学Java吗
  9. 用while循环语句 做1到10的数字竞猜
  10. 《世界杯彩票竞猜系统》设计报告