matlab 8点fft蝶形图,FFT快速傅里叶变换(蝶形算法)详解精要.ppt

第五章 快速傅里叶变换 本章目录 直接计算DFT的问题及改进的途径 5.1 引言 DFT在实际应用中很重要: 可以计算信号的频谱、功率谱和线性卷积等。 直接按DFT变换进行计算,当序列长度N很大时,计算量非常大,所需时间会很长。 FFT并不是一种与DFT不同的变换,而是DFT的一种快速计算的算法。 5.2 直接计算DFT的问题及改进的途径 DFT的运算量 5.2.1 DFT的运算量 DFT运算量的结论 5.2.2 减少运算工作量的途径 5.3 按时间抽取的基2-FFT算法 算法原理 按时间抽取基-2FFT算法与直接计算DFT运算量的比较 按时间抽取的FFT算法的特点 按时间抽取FFT算法的其它形式流程图 5.3.1 算法原理 蝶形运算 以8点为例第一次按奇偶分解 蝶形运算量比较 进一步按奇偶分解 以8点为例第二次按奇偶分解 算法原理 以8点为例第三次按奇偶分解 5.3.2 按时间抽取基2-FFT算法与直接计算DFT运算量的比较 FFT算法与直接DFT算法运算量的比较 5.3.3 按时间抽取的FFT算法的特点 序列的逆序排列 倒位序的树状图(N=8) 码位的倒位序(N=8) 倒位序的变址处理(N=8) 同址运算(原位运算) 观察原位运算规律 蝶形运算两节点间的距离 的确定 5.4 按频率抽取的基2-FFT算法 算法原理 5.4.1 算法原理 蝶形运算 例 按频率抽取(N=8) 5.4.2 频率抽取法与时间抽取法的异同 频率抽取法输入是自然顺序,输出是倒位序的;时间抽取法正好相反。 频率抽取法的基本蝶形与时间抽取法的基本蝶形有所不同。 频率抽取法运算量与时间抽取法相同。 频率抽取法与时间抽取法的基本蝶形是互为转置的。 5.5 快速傅里叶逆变换(IFFT)算法 例 频率抽取IFFT流图(N=8) 快速傅里叶逆变换另一种算法 5.8 Matlab实现 用FFT进行谱分析的Matlab实现 用CZT进行谱分析的Matlab实现 5.8.1 用FFT进行谱分析的Matlab实现 例5.1程序清单 例5.1程序运行结果 例5.1程序运行结果分析 例5.1修改程序运行结果 以N=8为例: 第一级蝶形,距离为: 第二级蝶形,距离为: 第三级蝶形,距离为: 规律:对于共L级的蝶形而言,其m级蝶形运算的节 点间的距离为 1 2 4 蝶形运算两节点间的距离 以N=8为例: 的确定 再把输出X(k)按k的奇偶分组 先把输入按n的顺序分成前后两半 设序列长度为N=2L,L为整数 前半子序列x(n) 后半子序列 0≤n≤ 0≤n≤ 由DFT定义得 k=0,1, …,N 由于 所以 则 k=0,1, …,N 然后按k的奇偶可将X(k)分为两部分 r=0,1, …, 则式 可转化为 令 n=0,1, …, 代入 r=0,1, …, 可得 为2个N/2点的DFT,合起来正好是N点X(k)的值。 将 称为蝶形运算 与时间抽选基2FFT算法中的蝶形运算符号略有不同。 例 按频率抽取,将N点DFT分解为两个N/2点DFT的组合(N=8) 与时间抽取法的推导过程一样,由于 N=2L,N/2仍然是 一个偶数,因而可以将每个N/2点DFT的输出再分解为偶数组 与奇数组,这就将N/2点DFT进一步分解为两个N/4点DFT。 N=8 IDFT公式 DFT公式 比较可以看出, IDFT多出 M个1/2可分解到M级蝶形运算中。 在Matlab中使用的线性调频z变换函数为czt,其调用格式为 >>X= czt(x, M, W, A) 其中,x是待变换的时域信号x(n),其长度为N,M是变换的长度,W确定变换的步长,A确定变换的起点。若M= N,A= 1,则CZT变成DFT。 例5.1 设模拟信号 ,以 t= 0.01n (n=0: N-1) 进行取样,试用fft函数对其做频谱分析。N分别为:(1) N=45;(2) N=50;(3) N=55;(2) N=60。 程序清单如下 %计算N=45的FFT并绘出其幅频曲线 N=45;n=0:N-1;t=0.01*n; q=n*2*pi/N; x=2*sin(4*pi*t)+5*cos(8*pi*t); y=fft(x,N); figure(1) subplot(2,2,1) plot(q,abs(y)) title('FFT N=45') %计算N=50的FFT并绘出其幅频曲线 N=50;n=0:N-1;t=0.01*n; q=n*2*pi/N; x=2*sin(4*pi*t)+5*cos(8*pi*t

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FFT(Fast Fourier Transform)是一种蝶形算法快速傅里叶变换方法,用于将时域信号转换为频域表示。它是一种高效计算离散傅里叶变换(DFT)的算法蝶形算法FFT的关键部分,它通过分治策略将DFT问题分解为规模更小的子问题。具体而言,蝶形算法将DFT的计算任务分为奇偶两组,每组包含一半的信号。然后,它通过递归调用自身来分别计算这两组的DFT。通过这种方式,FFT可以显著减少计算复杂性。 蝶形算法的核心是蝶形算。它是一种简单的计算,涉及两个复数的乘法和加法。蝶形算需要两个输入值(称为蝶形输入),分别乘以一个旋转系数(通常通过旋转因子计算得到),然后相加得到两个输值(称为蝶形)。这个算重复进行,直到计算所有输值。 FFT的过程可以用一个蝶形来表示,其中每个节代表一次蝶形算。蝶形按照二叉树的形式组织,上层节代表更高频率的DFT,下层节代表更低频率的DFT。通过在蝶形上按照特定顺序进行计算FFT可以以线性时间复杂度完成整个DFT过程。 总结起来,FFT快速傅里叶变换的核心是蝶形算法,它通过分治策略将DFT问题分解为规模更小的子问题,然后通过蝶形算来计算这些子问题。FFT以其高效的计算能力,广泛应用于信号处理、像处理、通信等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值