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

Flipped Classroom10 of DSP

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

一、要点

1、频域抽取法基2FFT(DIF-FFT)的原理及其蝶形运算分解图(重点);
2、IDFT的高效算法;
3、其他进一步减小计算量的措施:多类蝶形单元运算、旋转因子的生成、实序列的FFT算法(一般了解);
4、一~四章有关信号频域分析内容的回顾。

二、问题与解答

1、画出16点序列的DIF-FFT蝶形运算分解图, 介绍DIF-FFT算法的思路和基本原理。对DIF-FFT和DIT-FFT在原理、蝶形运算结构、输入输出排序等方面进行比较。

2、IDFT的高效算法与DFT的高效算法有何联系与区别?画出8点DIF-IFFT的蝶形运算结构图。

3、教材习题1:如果某通用单片计算机的速度为平均每次复数乘需要4us,每次复数加需要1us,用来计算N=1024点的DFT,问直接计算需要多少时间。用FFT计算呢?照这样计算,用FFT进行快速卷积来对信号进行处理时,估计可实现实时处理的信号最高频率。

4、简要叙述进一步减少计算量的主要措施及其基本思路。多类蝶形运算在减少计算量的同时,在程序设计中会带来什么别的问题?

5、任取1个4096点实序列,用MATLAB编程,采用一次2048点的FFT来计算该实序列的DFT。要求给出实现原理分析和程序流程图。

6、

1、DIF-FFT和DIT-FFT的比较

画出16点序列的DIF-FFT蝶形运算分解图, 介绍DIF-FFT算法的思路和基本原理。对DIF-FFT和DIT-FFT在原理、蝶形运算结构、输入输出排序等方面进行比较。



(1)DIF-FFT算法的思路和基本原理:




即把一个N点DFT变换为求两个N/2点DFT的运算。以此类推,进一步分解为两个N/4点DFT,进行二次和二次以上的分解。

(2)DIF-FFT和DIT-FFT在原理、蝶形运算结构、输入输出排序的比较:
原理:DIF-FFT是频率抽取法,DIT-FFT是时域抽取法;
蝶形运算结构:DIT-FFT先进行DFT,再蝶形运算,序列先乘旋转因子后相加减
DIF-FFT先蝶形运算,再进行DFT,序列先相加减后乘旋转因子。
输入输出排序:DIF-FFT输出倒序,输入顺序;DIT-FFT输入倒序,输出顺序。
频率抽取法与时间抽取法的基本蝶形是互为转置的。

2、IDFT的高效算法与DFT的高效算法的关系

IDFT的高效算法与DFT的高效算法有何联系与区别?画出8点DIF-IFFT的蝶形运算结构图。



8点DIF-IFFT的蝶形运算结构图:
8点DIT-FFT

8点DIT-IFFT

8点DIF-FFT

8点DIF-IFFT

3、DFT与FFT计算速度的直观比较

教材习题1:如果某通用单片计算机的速度为平均每次复数乘需要4us,每次复数加需要1us,用来计算N=1024点的DFT,问直接计算需要多少时间。用FFT计算呢?照这样计算,用FFT进行快速卷积来对信号进行处理时,估计可实现实时处理的信号最高频率。



4进一步减少计算量的措施及其“副作用”

简要叙述进一步减少计算量的主要措施及其基本思路。多类蝶形运算在减少计算量的同时,在程序设计中会带来什么别的问题?


主要措施:
1、多类蝶形单元运算
2、预先生成旋转因子
3、用N/2点FFT计算N点实序列的FFT
问题:
1、增加代码量
2、因为计算机是流水线结构,所以多类蝶形运算的“跳转”会降低电脑工作效率

5、FFT的matlab实现

任取1个4096点实序列,用MATLAB编程,采用一次2048点的FFT来计算该实序列的DFT。要求给出实现原理分析和程序流程图。


原理分析:

代码:

%%      代码:
clc,clear
n = 1:4096;
x = cos(2*pi*0.15*n) + cos(2*pi*0.3*n);
N = length(x)/2;% x1为偶数项,x2为奇数项
for n = 1:Nx1(n) = x(2*n-1);x2(n) = x(2*n);
end
% 组成新序列,并一次求解x1,x2的DFT,X1,X2
xx = x1+1j*x2;
XX = fft(xx,N);
X1(1)=real(XX(1));
X2(1)=imag(XX(1));
for n=2:NX1(n) = 0.5 * ( XX(n) + conj(XX(N+2-n)));X2(n) = -1j * 0.5 * ( XX(n) - conj(XX(N+2-n)));
end% 用1次蝶形计算X前N项和后N项
for n = 0:N-1X(n+1) = X1(n+1) + exp(-1j*pi*n/N) * X2(n+1);X(n+1+N) = X1(n+1) - exp(-1j*pi*n/N) * X2(n+1);
end
% 图形展示
subplot(2,1,1)
stem(abs(fft(x)))
title('直接计算','fontname','宋体','fontsize',15);
subplot(2,1,2)
stem(abs(X))
title('用一次2048点的FFT','fontname','宋体','fontsize',15);

运行结果:

分析:用一次2048点的DFT,会减少运算量,但也会增加程序的复杂度。

编程思路:

6、一到四章综合题目



代码:

clear;
syms t
xt=exp(-1000*abs(t));
Xw=fourier(xt);N=512;
Fs=1000;
n=-N/2/Fs:1/Fs:(N-1)/2/Fs;
xn=exp(-1000*abs(n));
Xk=fft(xn,N);       %Xk是序列平移N/2之后的频谱的离散化
k=0:N-1;
X=(-1).^k.*Xk;      %去除序列平移对DFT的影响
Y=fftshift(X);
figure(1)
subplot(4,1,1)
stem(0:N-1,real(Xk));
title('DFT结果(1kHz采样)');
xlim([0 511])
xlabel('k')
subplot(4,1,2)
plot(pi*(-1:2/N:(N-1)/N),real(Y));
xlim([-pi pi])
ylim([0 2.2]);
title('DFT结果转换为序列的频谱(1kHz采样)')
xlabel('数字角频率(rad)')
subplot(4,1,3)
w=2*pi*(-N/2:N/2-1)*Fs/N;
plot(w,real(Y)/Fs);
xlim([-2*pi*Fs/2 2*pi*Fs/2])
ylim([0,0.0022]);
title('DFT分析得到的模拟信号频谱(1kHz采样)')
xlabel('模拟角频率(rad/s)')
subplot(4,1,4)
fplot(abs(Xw),[-2*pi*Fs/2 2*pi*Fs/2])
ylim([0,0.0022])
title('模拟信号理论频谱([-Fs/2,Fs/2]区间)')
xlabel('模拟角频率(rad/s)')Fs=5000;
n=-N/2/Fs:1/Fs:(N-1)/2/Fs;
xn=exp(-1000*abs(n));
xn1=[xn(257:512) xn(1:256)];    %转换为周期延拓后的主值序列
Xk=fft(xn1,N);
k=0:N-1;
X=Xk;
Y=fftshift(X);
figure(2)
subplot(4,1,1)
stem(0:N-1,real(Xk));
title('DFT结果(5kHz采样)');
xlim([0 511])
xlabel('k')
subplot(4,1,2)
plot(pi*(-1:2/N:(N-1)/N),real(Y));
xlim([-pi pi])
ylim([0 11]);
title('DFT结果转换为序列的频谱(5kHz采样)')
xlabel('数字角频率(rad)')
subplot(4,1,3)
w=2*pi*(-N/2:N/2-1)*Fs/N;
plot(w,real(Y)/Fs);
xlim([-2*pi*Fs/2 2*pi*Fs/2])
ylim([0,0.0022]);
title('DFT分析得到的模拟信号频谱(5kHz采样)')
xlabel('模拟角频率(rad/s)')
subplot(4,1,4)
fplot(abs(Xw),[-2*pi*Fs/2 2*pi*Fs/2])
ylim([0,0.0022])
title('模拟信号理论频谱([-Fs/2,Fs/2]区间)')
xlabel('模拟角频率(rad/s)')



(1)如下图,左边取256个点,右边取255个点,这是由n=0和t=0对应不上而决定的。或者也可以将右边的进行周期延拓形成图中下方的结果。通过乘以-1的k次方来消除时域平移的影响。

(2)利用fftshift函数将零频率分量移到频谱中心。
(3)-π对应- Fs/2,π对应Fs/2。
(4)频谱的“高矮胖瘦”不同,1kHz的幅值要高于5kHz的幅值。因为1kHz在高频的幅值幅度要比5kHz高,经过延拓之后,会产生频谱混叠,所以混叠后1kHz的幅值要高于5kHz的幅值。

三、反思总结

matlab编程:
conj为求复共轭的函数

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. 解决ms_cannot_allocmem错误的两种方法
  2. ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析
  3. Centos 6.2部署CSVN服务器
  4. Virtaulbox虚拟机添加磁盘
  5. linux装机量,在没有盗版的世界Linux桌面装机量占比40_-泡泡网
  6. 微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)
  7. cogs 76. [NOIP2007] 统计数字
  8. apple mac 下使用机械键盘的办法,键盘映射工具软件,apple mac Mechanical keyboard
  9. 提高应用程序稳定的小内容
  10. 自行车线控前叉换线之——鸡米螺丝
  11. 什么是英特尔® Edison 模块?
  12. 计算机冰雪世界教案,教案有趣的冰
  13. 朱义晨作业 17037099
  14. 如何使用XMind进行高效的时间管理
  15. python写一个表白程序带时间_python如何写出表白程序
  16. 每日随笔:笔记本WiFi突然连接不上重启才好的问题解决方式
  17. 【软件工具】百度搜索技巧
  18. 不要浪费那少得可怜的注意力(2)
  19. 租车战场没有新故事,一嗨租车能否破局?
  20. ssh-keygen产生公钥与私钥对,及密钥分发,ssh远程执行常用命令方法,和如何防止SSH登录入侵或被破解

热门文章

  1. CSS水平、垂直布局、盒子
  2. Dreamweaver 热点区域选择 area
  3. 关于对编码器和译码器的理解
  4. STM32【H7】理论——GPIO
  5. si446使用记录(三):MATCH功能
  6. 恢复.bat文件的默认打开方式
  7. 机器视觉--使用halcon标定助手进行相机标定
  8. iOS架构-组件化(Carthage管理工具)
  9. RK3399 Android7.1按键进入Loader模式的原理
  10. 第十届服务外包创新创业大赛总结