按时间抽取的基2FFT算法分析文档格式.docx

上传人:b****2 文档编号:3672904 上传时间:2023-05-02 格式:DOCX 页数:25 大小:99.42KB
下载 相关 举报
按时间抽取的基2FFT算法分析文档格式.docx_第1页
第1页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第2页
第2页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第3页
第3页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第4页
第4页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第5页
第5页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第6页
第6页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第7页
第7页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第8页
第8页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第9页
第9页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第10页
第10页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第11页
第11页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第12页
第12页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第13页
第13页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第14页
第14页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第15页
第15页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第16页
第16页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第17页
第17页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第18页
第18页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第19页
第19页 / 共25页
按时间抽取的基2FFT算法分析文档格式.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

按时间抽取的基2FFT算法分析文档格式.docx

《按时间抽取的基2FFT算法分析文档格式.docx》由会员分享,可在线阅读,更多相关《按时间抽取的基2FFT算法分析文档格式.docx(25页珍藏版)》请在冰点文库上搜索。

按时间抽取的基2FFT算法分析文档格式.docx

[x(0)

=[x(0)

x

(2)]W40[x

(1)x(3)W;

(周期性)

x

(2)]-[x

(1)x(3)]W40(对称性)

通过合并,使乘法次数由

4次减少到1次,运算量减少。

FFT的算法形式有很多种,但基本上可以分为两大类:

按时间抽取

(DIT)和按频率抽取(DIF)。

4.1按时间抽取(DIT)的

FTT

为了将大点数的DFT分解为小点数的

DFT运算,要求序列的长度N为

复合数,最常用的是N2M的情况(M

为正整数)。

该情况下的变换称为

基2FFT。

下面讨论基2情况的算法。

先将序列x(n)按奇偶项分解为两组

x(2r)Xi(r)

x(2r1)x2(r)

r0,1,,N1

2

将DFT运算也相应分为两组

X(k)DFT[x(n)]

N1

x(n)Wn

x(n)WNkn+

n为偶数

x(n)WNkn

n为奇数

N/21

x(2皿rk

r0

x(2r1)wN2r1)k

X1(r)wfk

WNkX2(r)wN^rk

X1(r)WNk/2

WNkX2(r)WNk/2(因为wN2rkWNrk/2)

Xi(k)WNX2(k)

其中Xi(k)、X2(k)分别是xi(n)、X2(n)的N/2点的

DFT

X1(k)=X1(r)wNk/2

x(2r)wN為,0

X2(k)=X2(r)WNrk/2

N/21

x(2r1)WNrk/2

0

至此,一个N点DFT被分解为两个

N/2点的DFT。

上面是否将全部N点的X(k)求解出来了?

分析:

Xi(k)和X2(k)只有N/2个点(k0,1,

k

X(k)X1(k)WNX2(k)只能求出X(k)的前N/2个点的DFT,要求出

全部N点的X(k),需要找出X1(k)>

X2(k)和X(kN/2)的关系,其

中k0,1,

岁1。

由式子X(k)Xi(k)W,X2(k)可得

X(k

N/2)Xi(kN/2)wNkN/2

X2(kN/2)化简得

N/2)=Xi(k)wNkX2(k),

0,1,,-21

这样N点DFT可全部由下式确定出来:

X(k)Xi(k)WNkX2(k)

X(kN/2)X1(k)WNX2(k)

上式可用一个专用的碟形符号来表示,这个符号对应一次复乘和两次复加运

算。

WNb

WnId

通过这样的分解以后,每一个N/2点的

DFT只需要(N)2—次复数

24

N2N2乘法,两个N/2点的DFT需要2(—)——次复乘,再加上将两个N/2

22

点DFT合并成为N点DFT时有N/2次与W因子相乘,一共需要

NNN

—————次复乘。

可见,通过这样的分解,运算量节省了近一半。

222

因为N2M,N/2仍然是偶数,因此可以对两个N/2点的DFT再

分别作进一步的分解,将两个N/2点的DFT分解成两个N/4点的DFT。

例如对x1(r),可以在按其偶数部分及奇数部分进行分解:

0,1,,-1

4

xi(2l)X3(l)

xi(2l1)X4(l)

则的运算可相应分为两组:

N/41

X1(k)=X1(2l)wN2l/k2

l0

X1(2l1)wN2l21)k

N/41lk

X3(I)Wn/4

WNk/2

X4(I)Wn/4

X3(k)W,/2X4(k)

k0,1,

41

将系数统一为以N为周期,即W,/2

W点,可得

2k

X1(k)X3(k)WnX4(k)

X1(kN/4)X3(k)WnX4(k)

同样,对X2(k)也可进行类似的分解。

一直分解下去,最后是2点的

DFT,2点DFT的运算也可用碟形符号来表示。

这样,对于一个N2’8

的DFT运算,其按时间抽取的分解过程及完整流图如下图所示。

令O

1^#^—J

卩伍RpXXXX

OQOOOOOb

D

FT

■T

DI

1

■C

1护

.^^1^/r^^1012345G7rLrLrLrLnrLrLrLxxxxxxxx

3用

o#

0^0

咗:

1用£

^-3再沪肘「聊一了严m-岂"

/八、

1/WOQOC0

爲二?

oftQoopo二

00e

*b_4卞十o粵o魯萌一更

--ft00

P同罔问⑴冋⑶PXXXXXXXX

XXXXX/e"

ee

这种方法,由于每一步分解都是按输入序列在时域上的次序是属于偶数

还是奇数来抽取的,故称为“时间抽取法”。

分析上面的流图,N2M,—共要进行M次分解,构成了从x(n)至U

X(k)的M级运算过程。

每一级运算都是由N/2个蝶形运算构成,因此每

级运算都需要N/2次复乘和N次复加,则按时间抽取的M级运算后总共

需要

复数乘法次数:

mF—MNlog2N

F22

复数加法次数:

aFNMNlog2N

根据上面的流图,分析FFT算法的两个特点,它们对FFT的软硬件构成产生很大的影响。

(1)原位运算

也称为同址运算,当数据输入到存储器中以后,每一级运算的结果仍然存储在原来的存储器中,直到最后输出,中间无需其它的存储器。

根据运算流图

分析原位运算是如何进行的。

原位运算的结构可以节省存储单元,降低设备成本。

(2)变址分析运算流图中的输入输出序列的顺序,输出按顺序,输入是“码位倒置”的顺序。

见图。

自然顺序

二进制表示

码位倒置

码位倒置顺序

000

1

001

100

010

011

110

6

5

101

7

111

X⑺

在实际运算中,直接将输入数据x(n)按码位倒置的顺序排好输入很不

方便,一般总是先按自然顺序输入存储单元,然后通过变址运算将自然顺序

的存储换成码位倒置顺序的存储,这样就可以进行

FFT的原位运算。

变质

的功能如图所示。

用软件实现是通用采用雷德(Rader)算法,算出I的倒

序J以后立即将输入数据X(I)和X(J)对换。

尽管变址运算所占运算量的比例

,也可设法用适当

很小,但对某些高要求的应用(尤其在实时信号处理中)

的电路结构直接实现变址。

例如单片数字信号处理器

TMS320C25就有专

用于FFT的二进制码变址模式。

4.2按频率抽取(DIF)的FTT

除时间抽取法外,另外一种普遍使用的FFT结构是频率抽取法。

频率

抽取法将输入序列不是按奇、偶分组,而是将N点

DFT写成前后两部分:

+x(n)WNkn

nN/2

因为WNN/2

x(n)WNnk

[x(n)n0

1,WN(N/2)k

x(nn0

WN(N/2)kx(n

(1)k,k

N/2)WN(nN/2)k

N/2)]WNnk

为偶数时

(1)k

1,k为奇数时

X(k)DFT[x(n)]x(n)WNkn

(N/2)1x(n)WNknn0

(1)1,由此可将X(k)分解为偶数组和奇数组:

knk

(1)kx(nN/2)]WNnk

X(k)=[x(n)

x(n

nrN/2)]WNnr/2

N/21

X(2r)=[x(n)

[x(n)

x(nN/2)]WN2nr

x1(n)

x2(n)

X(2r

x(n)[x(n)

1)=[x(n)

[x(n)x(nn0

x(nN/2)]WN(2r1)n

N/2)]WNnWNnr/2

x(nN/2)

x(nN/2)]WNnn0,1,,N/2

这两个序列都是N/2点的序列,对应的是两个N/2点的

DFT运算:

N/21

X(2r)=人5)阿石;

X(2r1)=X2(n)wNn/2

这样,同样是将一个N点的DFT分解为两个

N/2点的DFT了。

频率抽选

法对应的碟形运算关系图如下:

对于N=8时频率抽取法的FFT流图如下:

b)WNn

啲m唧]flX[Z)沁]oX[4]^X[51^X[6)^X[7)

x[Oh

x[2k

X阪

X宙b

x[6I»

刈了b

MO)mx[1b刈2“XP]o诃xPIx[G]叩n

►0

4点

X(0]*0X|2]■oxM)”X问

xn1MXl3)*0X|51”xpi

x(01。

X[l]ex(£

]ox[3].

x[5]dx(G]cx[7]<

2点

2占

帀严I才甲

一X161

才5

X[51

巴鼻X171

x|0)oxlDc釁罔口XP)OxMhx[5hX161c

X17)o,

■1

-1

心X|0]

0X(4)

X⑵

心X[6]

“X(1J

0X⑸

X(3]

0X|71

这种分组的办法由于每次都是按输出X(k)在频域的顺序上是属于偶数还是

奇数来分组的,称为频率抽取法。

与前面按时间抽取的方法相比,相同点

问题:

如何利用快速算法计算IDFT?

分析IDFT的公式:

x(n)IDFT[X(k)]+

Nk

X(k)WNnk,n

0,1,

N1

比较DFT的公式:

X(k)DFT[x(n)]x(n)WNnk,k0,1,

N

得知可用两种方法来实现IDFT的快速算法:

(1)只要把

运算中的每

nknkI

个系数Wn该为Wn,并且最后再乘以常数—,就可以用时间抽取法

N

或频率抽取的FFT算法来直接计算IDFT。

这种方法需要对

FFT的程序和参

数稍加改动才能实现。

(2

x(n)y^WNY卡DFT[X*(k)]},n0,1,

Nk0N

N1,也就

是说,可先将X(k)取共轭变换,即将X(k)的虚部乘以—1,

就可直接调用

FFT的程序,最后再对运算结果取一次共轭变换并乘以常数

1/N即可得到

x(n)的值。

这种方法中,FFT运算和IFFT

运算都可以共用一个子程序块,

在使用通用计算机或用硬件实现时比较方便。

4.1.3混合基FFT算法

以上讨论的是基2的FFT算法,即

N2M的情况,这种情况实际

上使用得最多,这种FFT运算,程序简单,

效率很高,用起来很方便。

外,在实际应用时,有限长序列的长度N

到底是多少在很大程度时是由人

为因素确定的,因此,大多数场合人们可以将

N选定为N2m,从而可

以直接调用以2为基数的FFT运算程序。

如果长度N不能认为确定,而N的数值又不是以2为基数的整数次

方,一般可有以下两种处理方法:

将x(n)用补零的方法延长,使N增长到最邻近的一个

N2M数值。

例如,N=30,可以在序列x(n)中补进x(30)=

x(31)=0两个零值点,使N=32。

如果计算FFT的目的是为了

了解整个频谱,而不是特定频率点,则此法可行。

因为有限长序列补零以后并不影响其频谱X(ejw),只是频谱的采样点数增

加而已。

2)如果要求特定频率点的频谱,则N不能改变。

如果N为复合

数,则可以用以任意数为基数的FFT算法来计算。

快速傅里叶变换的

基本思想就是要将DFT的运算尽量分小。

例如,N=6时,可以按照

N=3X2分解,将6点DFT分解为3组2点DFT。

举例:

N=9时的快速算法。

4.2

快速傅里叶变换的应用

凡是可以利用傅里叶变换来进行分析、综合、变换的地方,都可以利

用FFT算法及运用数字计算技术加以实现。

FFT在数字通信、语音信号处理、

图像处理、匹配滤波以及功率谱估计、仿真、系统分析等各个领域都得到了广泛的应用。

但不管FFT在哪里应用,一般都以卷积积分或相关积分的具

体处理为依据,或者以用FFT作为连续傅里叶变换的近似为基础。

4.2.1利用FFT求线性卷积—快速卷积

在实际中常常遇到要求两个序列的线性卷积。

如一个信号序列x(n)通过

FIR滤波器时,其输出y(n)应是x(n)与h(n)的卷积:

y(n)x(n)h(n)x(m)h(nm)

m

x(n)

若通过

有限长序列x(n)与h(n)的卷积的结果y(n)也是一个有限长序列。

假设

与h(n)的长度分别为N1和N2,贝Uy(n)的长度为N=N1+N2-1。

补零使x(n)与h(n)都加长到N点,就可以用圆周卷积来计算线性卷积。

样得到用FFT运算来求y(n)值(快速卷积)的步骤如下:

(1)对序列x(n)与h(n)补零至长为N,使N>

N1+N2-1

N2M(M为整数),即

x(n),n0,1,,N11

x(n)0,nN1,N11,,N1

h(n)h(n),n0,1,,N21

0,nN2,N21,,N1

(2)用FFT计算x(n)与h(n)的离散傅里叶变换

x(n)(FFT)X(k)

N点)

h(n)(FFT)H(k)

(3)计算Y(k)=X(k)H(k)

(4)用IFFT计算Y(k)的离散傅里叶反变换得:

y(n)=IFFT[Y(k)]

应用于连

4.2.2利用FFT求相关—快速相关

互相关及自相关的运算已广泛的应用于信号分析与统计分析,续时间系统也用于离散事件系统。

用FFT计算相关函数称为快速相关,它与快速卷积完全类似,不同的

是一个应用离散相关定理,

另一个应用离散卷积定理。

同样都要注意到离散

傅里叶变换固有的周期性,

也同样用补零的方法来绕过这个障碍。

设两个离散时间信号

x(n)与y(n)为已知,离散互相关函数记作Rxy(n),

定义为

Rxy(n)

x(m)y(nm)

如果x(n)与y(n)的序列长度分别为N1和N2,则用FFT求相关的计算步骤

如下:

(1)对序列x(n)与y(n)补零至长为

N,

使N>

N1+N2-1,并且

N2m(M为整数),即

x(n),n

0,n

0,1,,N1

N1,N11,

y(n)

y(n),n

0,1,,N2

N2,N21,

(2)用FFT计算

x(n)与y(n)的离散傅里叶变换

y(n)(FFT)Y(k)

(3)将X(k)的虚部lm[X(k)]改变符号,

求得其共轭X*(k)

(4)计算Rxy(k)=X*(k)Y(k)

(5)用IFFT求得相关序列Rxy(n)

Rxy(n)=IFFT[Rxy(k)]

如果x(n)=y(n),则求得的是自相关序列Rxx(n)

4.2.3Chirp-Z变换

采用FFT算法可以很快的计算出全部DFT值,也即Z变换在单位圆

上的全部等间隔采样值。

但是,很多场合下,并非整个单位圆上的频谱都是很有意义的,例如对于窄带信号过程,往往只需要对信号所在的一段频带进行分析,这是,希望采样能密集在这段频带内,而对频带以外的部分,则可以完全不管。

另外,有时也希望采样能不局限于单位圆上,例如,语音信号处理中,往往需要知道其Z变换的极点所在频率,如果极点位置离单位圆较远,,则其单位圆上的频谱就很平滑,如图所示,这是很难从中识别出极点所在的频率。

要是采样不是沿单位圆而是沿一条接近这些极点的弧线进

从而可以较准确

FFT来快

行,则所得的结果将会在极点所在频率上出现明显的尖峰,的测定极点频率。

螺线采样就是一种适用于这种需要的变换,并且可以采用

速计算,这种变换也称为Chirp-Z变换,它是沿Z平面上的一段螺线作等分角的采样,这些采样点可表达为

zkAWk,k0,1,,M1

其中M为采样点的总数,A为起始点位置,这个位置可以进一步用它的半径Ao及相角0来表示

AA0ej0

参数W可表示为

WW0ej0

其中Wo为螺线的伸展率,W0>

1时螺线内缩(反时针方向);

W0<

1时螺

线外伸。

0为螺线上采样点之间的等分角。

螺线采样点在Z平面上的分布可表示为下图。

面分析这些点上采样值计算的特点。

假定x(n)是长度为N的有限

长信号序列,则其Z变换在采样点上的值为

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2