fft快速傅里叶变换(一)

  • Post author:
  • Post category:其他


fft变换并不是什么新的算法,它只是为了加速dft运算的一种方法,dft的表达式如下:

在这里插入图片描述

很显然求出N点的X(k)需要



N

2

N^{2}







N











2













次复数乘法和N*(N – 1)次复数加法;我们都知道实现一次复数乘法需要四次实数乘两次实数加,实现一次复数加法需要两次实数加;那么当N很大的时候,计算量就会相当的大。dft作为信号处理中最为常用的算法,这么大的计算量显然是不能在实际中得到很好的应用,为此fft就出现了;fft是如何进行的呢?下面将进行详细的介绍。



视频请戳



1、基于时间的抽取(DIT)基2fft算法

对于下式

在这里插入图片描述





N

=

x

M

N = x^{M}






N




=









x











M

















M

M






M





为正整数,将



x

(

n

)

x(n)






x


(


n


)





按照奇偶分成两组,基令



n

=

2

r

n=2r






n




=








2


r





以及



n

=

2

r

+

1

n=2r+1






n




=








2


r




+








1





,而



r

=

0

,

1

,

.

.

.

,

N

/

2

1

r = 0,1,…,N/2 – 1






r




=








0


,




1


,




.


.


.


,




N


/


2













1





,于是有

在这里插入图片描述



在这里插入图片描述

则有

在这里插入图片描述




A

(

k

)

B

(

k

)

A(k)和B(k)






A


(


k


)





B


(


k


)





都是



N

/

2

N/2






N


/


2





点的dft,



X

(

k

)

X(k)






X


(


k


)





是N点dft,因此上式中



X

(

k

)

X(k)






X


(


k


)





不是完全形式,但是

在这里插入图片描述

所以



A

(

k

)

B

(

k

)

A(k),B(k)






A


(


k


)





B


(


k


)





可以完全表示



X

(

k

)

X(k)






X


(


k


)





,当



N

=

8

N = 8






N




=








8









A

(

k

)

B

(

k

)

X

(

k

)

A(k),B(k)以及X(k)






A


(


k


)





B


(


k


)








X


(


k


)





的关系可以用下图表示

在这里插入图片描述

上面推到出的结果



A

(

k

)

B

(

k

)

(

N

/

2

)

A(k),B(k)仍然是高复合数(N / 2)






A


(


k


)





B


(


k


)























(


N


/


2


)





的dft,可以按照上述方法继续进行分解,分别令



r

=

2

l

r

=

2

l

+

1

l

=

0

,

1

.

.

.

N

/

4

1

r = 2l,r = 2l + 1,l = 0,1,…,N / 4 – 1






r




=








2


l





r




=








2


l




+








1





l




=








0


,




1





.


.


.





N


/


4













1





,则



A

(

k

)

B

(

k

)

A(k)和B(k)






A


(


k


)





B


(


k


)





可分别表示为

在这里插入图片描述



在这里插入图片描述

则有

在这里插入图片描述

同样的道理,令

在这里插入图片描述

同理有

在这里插入图片描述

在这里插入图片描述

如果



N

=

8

N = 8






N




=








8





,那么



C

(

k

)

D

(

k

)

E

(

k

)

F

(

k

)

C(k),D(k),E(k),F(k)






C


(


k


)





D


(


k


)





E


(


k


)





F


(


k


)





都是两点dft,无需继续进行展开,则有

在这里插入图片描述

如果



N

=

16

,

32

2

N = 16,32或者是2的更高次幂






N




=








1


6


,




3


2











2




















,可以按照上述方法继续进行展开;上述方法均是将时间n按照奇偶进行展开的,所以称为时间抽取DIT,上述方法的8点DFT可以表示为下图:

在这里插入图片描述

基本运算单元如下:

在这里插入图片描述



版权声明:本文为pikaqiu_n95原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。