数字信号处理翻转课堂笔记9

The Flipped Classroom9 of DSP

对应教材:《数字信号处理(第五版)》西安电子科技大学出版社,丁玉美、高西全著

一、要点

1、DFT的计算复杂度问题和减少计算量的思路;
2、时域抽取法基2FFT(DIT-FFT)的原理及其蝶形运算分解图(重点);
3、直接计算DFT和用DIT-FFT的计算量比较;
4、DIT-FFT的运算规律及编程思想(难点,一般了解)。

二、问题与解答

1、画出16点序列的DIT-FFT蝶形运算分解图,介绍DIT-FFT算法的思路和基本原理,分析各级蝶形运算旋转因子的构成特点。
2、详细对比分析直接计算DFT和利用DIT-FFT的计算量,举例说明FFT在减少计算量方面的优势。
3、任取1个序列(实或复序列均可),分别用MATLAB直接计算(直接计算DFT的函数参见实验二指导书)和用DIT-FFT计算(采用fft函数)其DFT(512点以上),利用MATLAB的计时函数tic、toc,分别统计直接计算和FFT计算所需的时间,比较其计算时间差异,与理论上的计算量差异进行比较分析。若多次重复运行以上程序,会发现每次运行之后统计的计算时间并不完全相同,查阅相关资料,分析为什么会产生这样的结果(非本课程内容,请从计算机操作系统工作机制的角度去分析)。
4、如果采用DFT计算两个序列的线性卷积(参见第8次课问题1),其中的DFT和IDFT都采用FFT快速算法来实现,分析计算两个长度为N的复序列的线性卷积,分别需要多少次复数乘法和复数加法。与直接计算线性卷积相比,其计算量降低了多少?分别列出N=8,64,512,2048时的计算量(复数乘法和加法次数)对比表并进行分析总结。基于MATLAB平台,编写程序分别实现直接计算(可以用conv函数)和采用FFT计算两个2048点复序列的线性卷积,用tic和toc分别统计其计算时间,并进行对比验证。
5、FFT算法中的“原位计算”指的是什么?满足“原位计算”的特点对于FFT在计算机平台上的实现有什么好处?
6、FFT算法中,序列的“顺序”和“倒序”分别指什么?DIT-FFT算法的输入输出分别是如何排序的?查阅相关资料,了解有没有其他的排序方式的DIT-FFT算法,如果有,是如何实现的?能不能让输入和输出序列都是“顺序”的形式?如果有,这种形式的算法有什么缺点?

1、16点序列的DIT-FFT蝶形运算分解图

画出16点序列的DIT-FFT蝶形运算分解图,介绍DIT-FFT算法的思路和基本原理,分析各级蝶形运算旋转因子的构成特点。


旋转因子的变化规律:

2、理论分析DFT和DIT-FFT的计算量

详细对比分析直接计算DFT和利用DIT-FFT的计算量,举例说明FFT在减少计算量方面的优势。

3、用matlab实验比较DFT和FFT的运算速度

任取1个序列(实或复序列均可),分别用MATLAB直接计算(直接计算DFT的函数参见实验二指导书)和用DIT-FFT计算(采用fft函数)其DFT(512点以上),利用MATLAB的计时函数tic、toc,分别统计直接计算和FFT计算所需的时间,比较其计算时间差异,与理论上的计算量差异进行比较分析。若多次重复运行以上程序,会发现每次运行之后统计的计算时间并不完全相同,查阅相关资料,分析为什么会产生这样的结果(非本课程内容,请从计算机操作系统工作机制的角度去分析)。

代码:
DFT函数:

function [Xk]=dft(xn,N)
n=[0:1:N-1];
k=[0: N-1];
WN=exp(-j*2*pi/N);
nk=n'*k;
WNnk=WN.^(nk);
Xk=xn*WNnk;    %  采用矩阵相乘的方法

运行:

for a=[1 2 3 4];
N=512*2.^a;
xn=1:N;
tic
dft (xn,N);
toc
tic
fft (xn,N);
toc
end

运行结果:

由图可见,每次直接计算的时间都大于采用FFT算法的时间。
每次运行时间不一样的原因:
与操作系统的时间调度有关,操作系统给每个线程分时间片调度,每次调度的程序不同,所以运行时间不同。

4、利用FFT计算与直接计算复序列的线性卷积

如果采用DFT计算两个序列的线性卷积(参见第8次课问题1),其中的DFT和IDFT都采用FFT快速算法来实现,分析计算两个长度为N的复序列的线性卷积,分别需要多少次复数乘法和复数加法。与直接计算线性卷积相比,其计算量降低了多少?分别列出N=8,64,512,2048时的计算量(复数乘法和加法次数)对比表并进行分析总结。基于MATLAB平台,编写程序分别实现直接计算(可以用conv函数)和采用FFT计算两个2048点复序列的线性卷积,用tic和toc分别统计其计算时间,并进行对比验证。
暂未完成,后续更新

5、“原位计算”及其优势

FFT算法中的“原位计算”指的是什么?满足“原位计算”的特点对于FFT在计算机平台上的实现有什么好处?


每个蝶形的两个输入数据只用于本蝶形运算;前一级的N个数据只用于求下一级的个点的数据,求出下一级,数据后前一级的数据不需要继续保留。这种利用同一存储单元存储蝶形计算输入、输出数据的方法称为“原位计算”。
对每个蝶形进行计算后,其结果可直接存入源数据所在的存储单元,从而节省数据存储器。

6、FFT算法中的顺序与倒序

FFT算法中,序列的“顺序”和“倒序”分别指什么?DIT-FFT算法的输入输出分别是如何排序的?查阅相关资料,了解有没有其他的排序方式的DIT-FFT算法,如果有,是如何实现的?能不能让输入和输出序列都是“顺序”的形式?如果有,这种形式的算法有什么缺点?

1)
顺序:自然顺序增加1,是在顺序数最低位加1,逢2向高位进位;
倒序:倒序数是在M位二进制最高位加1,逢2向低位进位;
2)
DIT-FFT算法输入倒序,输出顺序
DIF-FFT算法输入顺序,输出倒序

3)有,如图

输入顺序,输出倒序
4)

缺点为不能进行原位计算。

三、反思总结

数字信号处理翻转课堂笔记9相关推荐

  1. 数字信号处理翻转课堂笔记10

    数字信号处理翻转课堂笔记10 Flipped Classroom10 of DSP 教材:<数字信号处理(第五版)>西安电子科技大学出版社,高西全.丁玉美著 一.要点 1.频域抽取法基2F ...

  2. 数字信号处理翻转课堂笔记11

    数字信号处理翻转课堂笔记11 The Flipped Classroom11 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,丁玉美.高西全著 一.要点 1.数字 ...

  3. 数字信号处理翻转课堂笔记5

    数字信号处理翻转课堂笔记5 The Flipped Classroom5 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,高西全,丁玉美著 一.要点 1.回顾序列 ...

  4. 数字信号处理翻转课堂笔记4

    数字信号处理翻转课堂笔记4 The Flipped Classroom4 of DSP 一.要点 1.离散信号傅里叶变换的性质:周期性.时移特性.频移特性.对称性.时域卷积定理.频域卷积定理.Pars ...

  5. 数字信号处理翻转课堂笔记12

    数字信号处理翻转课堂笔记12 The Flipped Classroom12 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,丁玉美.高西全著 一.要点 (1)模 ...

  6. 数字信号处理翻转课堂笔记6

    数字信号处理翻转课堂笔记6 The Flipped Classroom6 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,丁玉美.高西全著 一.要点 1.离散傅里 ...

  7. 数字信号处理翻转课堂笔记3

    数字信号处理翻转课堂笔记3 The Flipped Classroom3 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,高西全.丁玉美著 一.要点 1.序列傅里 ...

  8. 数字信号处理翻转课堂笔记8

    数字信号处理翻转课堂笔记8 The Flipped Classroom8 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,丁玉美.高西全著 一.要点 1.用DFT ...

  9. 数字信号处理翻转课堂笔记7

    数字信号处理第七次翻转课堂 Flipped Classroom7 of DSP 对应教材:<数字信号处理(第五版)>西安电子科技大学出版社,高西全.丁玉美著 一.要点 1.循环移位性质: ...

最新文章

  1. 超nb的网页标签弹窗js代码!
  2. netty tcp 字节有序-gt;对象有序
  3. 24.二叉树中和为某一值的路径
  4. 腾讯面试题:岛屿数量
  5. c++ 多重背包状态转移方程_【模板】各种背包问题amp;讲解
  6. sklearn中模型的选择和各个模型的比较
  7. JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)
  8. 什么是OOM?常见有哪些OOM?
  9. linux搜索一天内更新的所有文件,linux下怎样更新文件夹下所有文件的时间戳
  10. 带通滤波器的matlab程序设计
  11. 涡CFTurbo 10.2.6 2017泵轮涡旋式机械设计
  12. wallhaven.cc网站图片超清壁纸爬虫
  13. Easyui之datagrid修改
  14. 下班后两小时,决定你将会成为怎样的人
  15. Mybatis官方网站
  16. js算法---寻找连续数组中的缺失数
  17. 为什么是四次挥手不是三次挥手
  18. BootStrap表格详解
  19. 数字分解的套路与陷阱
  20. 13、hive在启动beeline客户端时报错:User: xxx is not allowed to impersonate xxx

热门文章

  1. Apache ECharts下载安装(以GitHub下载源为例) |以及第一个echart图表快速上手
  2. Flutter基础之基本数据类型
  3. RabbitMQ(十一):RabbitMQ最大连接数
  4. 智能公厕的厕所智能管护软件
  5. Android开发实例-高校录取分数线应用(一)
  6. 降薪22万选择北京国企,入职4月感叹:户口真不重要,想赚钱!
  7. web前端零基础入门(一)
  8. 自学编程1个月,就去找工作,月入8000
  9. WIFI免费无线上网技巧
  10. vuecli3打包规范