快速傅里叶变换

快速傅里叶变换叫FFT,是DFT的快速算法,只是改进以下算的方法而已

对于DFT变换而言
每一个k值都对应着N次相乘,以及N-1次相加
而又有N个k值,因为k的取值范围是0到N-1,所以有N的平方个乘机项,和N(N-1)项加式

FFT分为DIT和DFF,前者是基于时间的,也就是时域抽选法,后者是频域抽选法
我们学的是DIT

做几点DFT变换,其周期就是几点

什么是基2?
就是序列的长度是2的整数倍,因为这样很好划分

书上134页对于一个序列把他在时域分为偶数点序列和奇数点序列
我们对x(n)做DFT变换,之后又因为原序列是N长所以积偶序列长度是N/2,所以根据N/2的周期性又得到书上
135页中间的那个式子。你如果不根据周期性得到的仅仅是0到N/2-1区间上的式子,对于N/2-1到N上的式子你无法表达,因为原序列k的取值范围就是0到N-1。观察二者的式子我们最后画出了一个蝶形运算的图。

注:将N长的序列求N/4点的DFT,k的取值范围是0到N/4-1

求N点DIT运算所需要的乘法次数和加法次数?
对于乘法而言,首先是N点,所以你要进行N/2次蝶形运算,而每一次蝶形运算虽然是2个乘法项,但是结果是一样的,所以只进行一次,对于DFT而言,因为你分为一个奇序列和一个偶序列,所以要进行2次DFT变换,而每一次DFT变换有N/2个点,每一个点要进行N/2次乘机,所以最后的结果在书上136页。对于加法而言,由于前面是N/2点的DFT变换,每一次的DFT变换要加N/2-1次,有N/2个点,又由于是针对奇序列和偶序列而言,所以还要乘2。

你为了降低运算步骤,可以通过细化DFT和蝶形运算,但是蝶形运算无法降低,所以你只有通过降低DFT点数来减少步骤

细说8点DIT变换
对于N长序列的N/2点而言
首先你看书上136页图,左边是把这个序列分为奇数和偶数部分,分完之后不管n的取值还是k的取值都是原来的一半,所以中间的括号里面的你看都是到一半,那为啥不是X2和X1交互呢,是因为你前面针对是偶数,当然只有一个下标了,然后就是连接取相同值得k,为啥?你看那两个根本公式就知道了,连完之后据根据那两个根本公式就得到右边得结论,因为你要算X(k),所以肯定写X(k),如果你不是求N/2而是求N/4,你的第一个蝶形算出来的就不是X(k)。接下来我们来看一下N/4点,就是对原偶序列在分为奇数和偶数,和上面一样。

由于对于书上137页中间那幅图,作者觉得那个N/4DFT比较碍事,所以想用蝶形继续替代它
请你看书上137页下面那两个式子就是替代的
首先那两个根本的式子都是频域下的,所以等号两边肯定都是频域下的,又因为N/4-1,所以两边的取值都是0和1,然后你自己会了,这样一来所有的运算全部在蝶形里面了。

对于多点而言,算出的要送回去,也就是继续蝶形

DFT可选择性高,不是全算,而FFT没有选择性,它是全算的

例题:对于一个连续序列而言,采样1秒采到1096点,计算采样信号4096点的DFT,同时假设频率200到300
1.使用DFT,需要多少次乘?
首先fs=4096,N=4096,所以derta f = fs/N = 1,derta f就是分辨率
所以答案是101*4096
2.使用基2
直接套138页中间的公式就可以了

位倒叙:
就是输入是04261537,输出是01234567

原址运算:上一级的不需要保存,也就是说上一级的输入数据使用完之后就没用了,原输入数据所占据的空间就被结果占了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值