第四章快速傅里叶变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
库利和图基发表的“机器计算傅里叶级数的 一种算法”
桑德和图基的快速算法的出现。 主要讨论几种FFT算法。
2. 直接计算DFT的问题及改进的途 径
DFT和IDFT的变换公式
N1
Xk xnW N nk,k0,1, ,N1 4.1 n0
4x.1n式可N 1N k 写 0 1成XkW N nk,n0,1 , ,N1
(3)N是复合数,即它可以分解成一些成一些因子 的乘积,用混合基算法。
一. 整数的多基多进制表示形式
(1)对于二进制,
表示为
二进制倒序为
(2)对于r进制,正序
倒序
(3)对于多进制或称混合基 N可以表示成复合数,
的任一个正整数n,可以按L个基 表示。正序
倒序
,则对于
在这一多进制的表示中 可记为
例4-1
二、
ຫໍສະໝຸດ Baidu
的快速算法
要计算N点DFT为
设n是一个复合数 公式表达:
(4.39) ,可将n的数用下面的
同样,倒序表达为
(4.40)
(4.41)
例:设r1 4,r2 2 ,则
那么 所以
则排列为
同样,若 则
所以
将4.40式与4.41式代入4.39式,可得
上式运用了
结果
线性相位滤波器满足条件
运算结构如图5.26,5.27所示 线性相位FIR滤波器的乘法运算量
用FFT法(圆周卷积)来代替这线性卷积时,不产 生混叠条件是使x(n),h(n)都补零值点,补到至少 N=M+L-1,即
然后计算圆周卷积
此时y(n)能代表线性卷积结果。
用FFT计算y(n)步骤如下: (1)求
(4-2)
X k N 1xnW N nk N 1R e xn jIm xn R e W N nk jIm W N nk (4.3)
n 0
n 0
N 1
R e xn R e W N nk Im xn Im W N nk jR e xn Im W N nk Im xn R e W N nk n 0
4.42式可进一步表示为
式中
N为复合数
的DFT算法的步骤归纳如下:
(1)将x(n)改写成
利用
利用4.44式做 个 点DFT,得
利用4.45式,把N个
子
,组成
乘以相应的旋转因 。
利用4.46式,做 个 点DFT,得
利用4.47式,进行整序,得到
其中
对于
重写n和k的表达式
则4.44式变成
设x(n)为L点,y(n)为M点,需求线性相关
(4.115)
利用FFT法求线性相关是用圆周相关代替线性相关,
选择
令
其计算步骤如下: (1)求N点FFT,
(2)求N点FFT,
(3)求乘积,
(4)求N点IFFT, 同样,可以只利用已有的FFT程序计算IFFT,求
再见!
谢谢观赏
共同学习交流提高
X再2考N2虑k性质XW 2N kN 2k
WNN2WN k WN k
(4.9) (4.10)
把4.8,4.9,4.10代入4.5式,将X(k)表达成前后两部
分,前部分为
X kX 1k W N kX 2k, k 0,1,
,
N 2
1
(4.11)
后部分为
XkN2X1kN2WNrkN2X2kN2
X1kWNkX2k,k0,1,
单击此处添加正文,文字是您思想的提炼,请 尽量言简意赅的阐述观点。
每一个
对
和
用基2算法,取
作N点的圆周卷积
才可用快速卷积办法来运算, 补零值点,补到N点。为利
,然后
其方法如图4-29所示。
重叠相加法的步骤总结 (1)计算N点FFT, (2)计算N点FFT, (3)相乘,
(4)计算N点IFFT,
(5)将各段
(包括重叠部分相加),
2. 重叠保留法
第四章 快速傅里叶变换
1. 引言 2. 直接计算DFT的问题及改进的途径 3. 按时间抽选(DIT)的基-2FFT算法 4. 离散傅里叶反变换(IDFT)的快速计算方
法 5. N为复合数的FFT算法-混合基算法 6. 线性调频Z变换(Chirp-z变换)算法 7. 线性卷积与线性相关的FFT算法
1. 引言
r 0
r 0
(4.5)
式中
N1
N1
2
2
X1k x1 rW N rk2 x2rW N rk2
r0
r0
(4.6)
N1
N1
2
2
X2k x2 rW N rk2 x2r1W N rk2 (4.7)
r0
r0
应用系数的周期性
可得
(4.8) X 1 N 2 k N r 2 0 1x 1rW N r 2 N 2 k N r 2 0 1x 1rW N rk2X 1k
的确定
第m级运算由4-21式写成
其中r的求解方法为
6. 存储单元 输入序列 系数
N个单元 N/2个单元
四. 按时间抽选的FFT算法的其它形 式流程图
4.5 离散傅里叶反变换的快速计算方 法
从IDFT公式
与DFT公式
比较可知,只要把DFT运算中的每一个系数
变成
,最后再乘常数1/N,则以上所有
,N点
(2)求
,N点
(3)计算
;
(4)求
,N点
工作量分析 FFT计算工作量
(4.105)
用线性相位滤波器来比较直接计算线性卷积和FFT 法计算线性卷积时比值
(4.106)
运算量分析:
(1)x(n)与h(n)点数差不多,设M=L,
则
,则
计算得下表
(2)当x(n)点数很多时,即当 则
乘法:N(N+1)
混合基算法可节省的运算量倍数为 乘法
加法
当 数
时,混合基算法总乘法次
与直接计算DFT相比,运算量之比
4.10 线性卷积与线性相关的FFT算法
一、线性卷积的FFT算法 1. 概念 设x(n)为L点,h(n)为M点,输出y(n)为
y(n)也是有限长序列,其点数为L+M-1。 2. 线性卷积运算量 乘法次数
先将x(n)分段,每段补上L=N-M+1个点;序列
中补零处不补零,而每一段的前边补上前一段保
留下来的(M-1)个输入序列值,组成L+M-1
点序列
,如图4.30a所示。
如果
,则可在每段序列未端补
零值点,补到长度为2m。
二、线性相关的FFT算法:常称之为快速相关,要 利用补零值点的办法避免混叠失真。
此时有两组4点DFT。4.45,46式分别变成 后一式子共有4组2点DFT,4.47式变成
算法可以采用先乘旋转因子再算DFT的算法 当N为一个复合数时,可以分解为一些因子的乘积
2. N为复合数时FFT运算量的估计
当
时,运算量为
复数乘法
复数加法
直接计算N个点DFT工作量 加法
实际办法: (1)用上述特性对项合并 (2)将长序列的DFT分解为短序列的DFT。
3. 按时间抽选的基-2FFT算法 --3.1 算法原理
先设序列点数为 N 2L ,按n的奇偶进行分解
将DFT化为
利用系数 W
n N
k
的可约性,即
得
N 1
N 1
2
2
X k x 1rW N rk 2 W N k x 2rW N rk 2 X 1k W N kX 2k
第二次分解,每个N/2点子序列按其奇偶分解为两个 N/4点子序列
最后2点DFT按4-14~17进行计算。
这种方法的每一步分解都是按输入序列在时 间上的次序是属于偶数不是属于奇数来分解 为两个更短的子序列,所以称为“按时间抽 选法”。
运算量分析
直接DFT复数算法次数是 FFT复数乘法次数是 DFT和FFT算法的计算量之比为
进一步把N/2点子序列再按奇偶部分分解为两个N/4 点的子序列
且 其中
图4-3,给出N=8时,在分解为两个N/4点DFT, 由两个N/4点DFT组合成N/2点DFT的流图。
也可进行同样分解:
其中
一个N=8点DFT就可分解为四个N/4=2点DFT如图
序列按奇偶分解标号变化讨论(N=8) 第一次分解:两个N/2点序列:
这时
当L太大时,体现不出圆周积分的优点。 解决办法:分段卷积或称分段过滤
1. 重叠相加法
设h(n)的点数为M,信号x(n)为很长的序列。将x(n)
分解为很多段,每段为L点,L选择成和M的数量级
相同,用
表示x(n)的第i段
则输入序列可表示成
(4.108) (4.109)
线性卷积为
(4.110)
按时间抽选或按频率抽选的FFT都可以拿来运算
IDFT。
不改FFT的程序计算IFFT方法: 对4.29式取共轭
因而
4.6 N为复合数的FFT算法 --混合基算法
当N不满足
时,可有以下几种办法
(1)将x(n)补一些零值点的办法
(2)如要求准确的N点DFT,而N又是素数,则只 能采用直接DFT方法,或者用CZT方法。
存在问题:
整个DFT运算总共需要4 N 2 次行乘法运算和
N 2 (2 N 1 ) 2 N (2 N 1 )次加法运算。
直接计算DFT,乘法次数和加法次数都是和 N 2 成
正比。
减少DFT运算工作量的途径:利用 (1) 的对称性:
对称性:
(2) 的周期性:
(3) 的可约性: 可以得出
结论:FFT比DFT更优越,当N越大时,优点更明 显。
三、按时间抽选的FFT算法特点
1. 原位运算 每个蝶形结构完成下述基本迭代运算:
4.21的蝶形运算如图4-7所示。
2. 倒位序规律
3. 倒位序的实现:通过变址运算完成
4. 蝶形运算两结点的距离:
第m级运算,每个蝶形的两节点距离为
, N1 2
(4.12)
这样,4.11、12式只要0-(N/2-1)区间的所有
X(k)值。
的值,即可求0到(N-1)区间所有
4.11和4.12式用图4-1的蝶形符号表示。
N=8的情况如图4-2
分析:每个蝶形运算需要一次复数乘法
及
两次复数加(减)法。通过分解后运算工作量差不
多减少到一半。
桑德和图基的快速算法的出现。 主要讨论几种FFT算法。
2. 直接计算DFT的问题及改进的途 径
DFT和IDFT的变换公式
N1
Xk xnW N nk,k0,1, ,N1 4.1 n0
4x.1n式可N 1N k 写 0 1成XkW N nk,n0,1 , ,N1
(3)N是复合数,即它可以分解成一些成一些因子 的乘积,用混合基算法。
一. 整数的多基多进制表示形式
(1)对于二进制,
表示为
二进制倒序为
(2)对于r进制,正序
倒序
(3)对于多进制或称混合基 N可以表示成复合数,
的任一个正整数n,可以按L个基 表示。正序
倒序
,则对于
在这一多进制的表示中 可记为
例4-1
二、
ຫໍສະໝຸດ Baidu
的快速算法
要计算N点DFT为
设n是一个复合数 公式表达:
(4.39) ,可将n的数用下面的
同样,倒序表达为
(4.40)
(4.41)
例:设r1 4,r2 2 ,则
那么 所以
则排列为
同样,若 则
所以
将4.40式与4.41式代入4.39式,可得
上式运用了
结果
线性相位滤波器满足条件
运算结构如图5.26,5.27所示 线性相位FIR滤波器的乘法运算量
用FFT法(圆周卷积)来代替这线性卷积时,不产 生混叠条件是使x(n),h(n)都补零值点,补到至少 N=M+L-1,即
然后计算圆周卷积
此时y(n)能代表线性卷积结果。
用FFT计算y(n)步骤如下: (1)求
(4-2)
X k N 1xnW N nk N 1R e xn jIm xn R e W N nk jIm W N nk (4.3)
n 0
n 0
N 1
R e xn R e W N nk Im xn Im W N nk jR e xn Im W N nk Im xn R e W N nk n 0
4.42式可进一步表示为
式中
N为复合数
的DFT算法的步骤归纳如下:
(1)将x(n)改写成
利用
利用4.44式做 个 点DFT,得
利用4.45式,把N个
子
,组成
乘以相应的旋转因 。
利用4.46式,做 个 点DFT,得
利用4.47式,进行整序,得到
其中
对于
重写n和k的表达式
则4.44式变成
设x(n)为L点,y(n)为M点,需求线性相关
(4.115)
利用FFT法求线性相关是用圆周相关代替线性相关,
选择
令
其计算步骤如下: (1)求N点FFT,
(2)求N点FFT,
(3)求乘积,
(4)求N点IFFT, 同样,可以只利用已有的FFT程序计算IFFT,求
再见!
谢谢观赏
共同学习交流提高
X再2考N2虑k性质XW 2N kN 2k
WNN2WN k WN k
(4.9) (4.10)
把4.8,4.9,4.10代入4.5式,将X(k)表达成前后两部
分,前部分为
X kX 1k W N kX 2k, k 0,1,
,
N 2
1
(4.11)
后部分为
XkN2X1kN2WNrkN2X2kN2
X1kWNkX2k,k0,1,
单击此处添加正文,文字是您思想的提炼,请 尽量言简意赅的阐述观点。
每一个
对
和
用基2算法,取
作N点的圆周卷积
才可用快速卷积办法来运算, 补零值点,补到N点。为利
,然后
其方法如图4-29所示。
重叠相加法的步骤总结 (1)计算N点FFT, (2)计算N点FFT, (3)相乘,
(4)计算N点IFFT,
(5)将各段
(包括重叠部分相加),
2. 重叠保留法
第四章 快速傅里叶变换
1. 引言 2. 直接计算DFT的问题及改进的途径 3. 按时间抽选(DIT)的基-2FFT算法 4. 离散傅里叶反变换(IDFT)的快速计算方
法 5. N为复合数的FFT算法-混合基算法 6. 线性调频Z变换(Chirp-z变换)算法 7. 线性卷积与线性相关的FFT算法
1. 引言
r 0
r 0
(4.5)
式中
N1
N1
2
2
X1k x1 rW N rk2 x2rW N rk2
r0
r0
(4.6)
N1
N1
2
2
X2k x2 rW N rk2 x2r1W N rk2 (4.7)
r0
r0
应用系数的周期性
可得
(4.8) X 1 N 2 k N r 2 0 1x 1rW N r 2 N 2 k N r 2 0 1x 1rW N rk2X 1k
的确定
第m级运算由4-21式写成
其中r的求解方法为
6. 存储单元 输入序列 系数
N个单元 N/2个单元
四. 按时间抽选的FFT算法的其它形 式流程图
4.5 离散傅里叶反变换的快速计算方 法
从IDFT公式
与DFT公式
比较可知,只要把DFT运算中的每一个系数
变成
,最后再乘常数1/N,则以上所有
,N点
(2)求
,N点
(3)计算
;
(4)求
,N点
工作量分析 FFT计算工作量
(4.105)
用线性相位滤波器来比较直接计算线性卷积和FFT 法计算线性卷积时比值
(4.106)
运算量分析:
(1)x(n)与h(n)点数差不多,设M=L,
则
,则
计算得下表
(2)当x(n)点数很多时,即当 则
乘法:N(N+1)
混合基算法可节省的运算量倍数为 乘法
加法
当 数
时,混合基算法总乘法次
与直接计算DFT相比,运算量之比
4.10 线性卷积与线性相关的FFT算法
一、线性卷积的FFT算法 1. 概念 设x(n)为L点,h(n)为M点,输出y(n)为
y(n)也是有限长序列,其点数为L+M-1。 2. 线性卷积运算量 乘法次数
先将x(n)分段,每段补上L=N-M+1个点;序列
中补零处不补零,而每一段的前边补上前一段保
留下来的(M-1)个输入序列值,组成L+M-1
点序列
,如图4.30a所示。
如果
,则可在每段序列未端补
零值点,补到长度为2m。
二、线性相关的FFT算法:常称之为快速相关,要 利用补零值点的办法避免混叠失真。
此时有两组4点DFT。4.45,46式分别变成 后一式子共有4组2点DFT,4.47式变成
算法可以采用先乘旋转因子再算DFT的算法 当N为一个复合数时,可以分解为一些因子的乘积
2. N为复合数时FFT运算量的估计
当
时,运算量为
复数乘法
复数加法
直接计算N个点DFT工作量 加法
实际办法: (1)用上述特性对项合并 (2)将长序列的DFT分解为短序列的DFT。
3. 按时间抽选的基-2FFT算法 --3.1 算法原理
先设序列点数为 N 2L ,按n的奇偶进行分解
将DFT化为
利用系数 W
n N
k
的可约性,即
得
N 1
N 1
2
2
X k x 1rW N rk 2 W N k x 2rW N rk 2 X 1k W N kX 2k
第二次分解,每个N/2点子序列按其奇偶分解为两个 N/4点子序列
最后2点DFT按4-14~17进行计算。
这种方法的每一步分解都是按输入序列在时 间上的次序是属于偶数不是属于奇数来分解 为两个更短的子序列,所以称为“按时间抽 选法”。
运算量分析
直接DFT复数算法次数是 FFT复数乘法次数是 DFT和FFT算法的计算量之比为
进一步把N/2点子序列再按奇偶部分分解为两个N/4 点的子序列
且 其中
图4-3,给出N=8时,在分解为两个N/4点DFT, 由两个N/4点DFT组合成N/2点DFT的流图。
也可进行同样分解:
其中
一个N=8点DFT就可分解为四个N/4=2点DFT如图
序列按奇偶分解标号变化讨论(N=8) 第一次分解:两个N/2点序列:
这时
当L太大时,体现不出圆周积分的优点。 解决办法:分段卷积或称分段过滤
1. 重叠相加法
设h(n)的点数为M,信号x(n)为很长的序列。将x(n)
分解为很多段,每段为L点,L选择成和M的数量级
相同,用
表示x(n)的第i段
则输入序列可表示成
(4.108) (4.109)
线性卷积为
(4.110)
按时间抽选或按频率抽选的FFT都可以拿来运算
IDFT。
不改FFT的程序计算IFFT方法: 对4.29式取共轭
因而
4.6 N为复合数的FFT算法 --混合基算法
当N不满足
时,可有以下几种办法
(1)将x(n)补一些零值点的办法
(2)如要求准确的N点DFT,而N又是素数,则只 能采用直接DFT方法,或者用CZT方法。
存在问题:
整个DFT运算总共需要4 N 2 次行乘法运算和
N 2 (2 N 1 ) 2 N (2 N 1 )次加法运算。
直接计算DFT,乘法次数和加法次数都是和 N 2 成
正比。
减少DFT运算工作量的途径:利用 (1) 的对称性:
对称性:
(2) 的周期性:
(3) 的可约性: 可以得出
结论:FFT比DFT更优越,当N越大时,优点更明 显。
三、按时间抽选的FFT算法特点
1. 原位运算 每个蝶形结构完成下述基本迭代运算:
4.21的蝶形运算如图4-7所示。
2. 倒位序规律
3. 倒位序的实现:通过变址运算完成
4. 蝶形运算两结点的距离:
第m级运算,每个蝶形的两节点距离为
, N1 2
(4.12)
这样,4.11、12式只要0-(N/2-1)区间的所有
X(k)值。
的值,即可求0到(N-1)区间所有
4.11和4.12式用图4-1的蝶形符号表示。
N=8的情况如图4-2
分析:每个蝶形运算需要一次复数乘法
及
两次复数加(减)法。通过分解后运算工作量差不
多减少到一半。