admin管理员组

文章数量:1534605

2024-07-28 作者:

4.6

N为复合数的F盯算法~一混合基算法上面讨论的是序列的点数为N~护,即t:J2为基敛的FFT算法这种算法在实际中使用得摄多,因为它的餐序简单.效率高,使用方便.若不满且N=2ι,则可有U下几种办法(Jl将;dn)补一些零也点的办法,以使N增长到最邻近的个2'舷值,例如N=27.则在序列中可补进到27l二到28)=x(29)

=x(30) =x(31)

=0等5个零值点使N达到N=ZS=32.囱OFT的性质知盟,有限长序列补零之后,并不影响其频诺X'o叫,只不过其频谐的抽样点数增加T.上例中就是囱27点地JmJlJ

32点.所造成的结果是增细了计算量而已.但是.有时计算量地加太多,造成很大浪费.例如x,时的点数N=300.则须补到N=Z"=512.要补212个零值点.因而人们才研究N".2ι时的FFT算法.(2)如果要求准确的N点DFT,而N卫是素数则只能采用直拨OFT方法,或者用后顶将要介细的CZT(Chirp-z变换〉方法.(3)着N是个草合数,它可以分解成一些因子的乘胆,则可H用FFT8

徽算法.即由合基FFT算法,而基.2算法只是这种一徽算法的特例.一撞撞的~基~选制表示形式(Jl对于二进制.N=Zι.则任一个.<护的正整数"可以用2为基敛表示成二进制形式,.ι,11L:"'11,170)'其中n为0或l,i=0,1.....1_-1这个二进制敛所表示的数也为〈的10= 11!.-12l-1 +

",._:2L-I +...

+11,2+110 (4-32)

将此二进制数倒位序后成为[p'川]ε=(n."I"'nι2叽I) 2

,其所代表的数值为[p(n)]10 = 1102L-I

+11,2,.--1十+.ι:2+

11ι(4-33)

(2)对于"茸制〈多进制).设N=,.!',r和L皆为大于1的'窿数(,.=2时,即为二进制).则任一个η1,IIO}.

其中>'1,=,.→1.i=O.I,....L-j.这个"挂制敛所袋示的数值为(1/)10 =

nιirLI+,,Larι1+"'+11,,-+,10

(4"34)

• 162 • 将此F进制'生倒也序后成为(p(,,)J.-(,慧。""""'-I"L-,).•其所代表的敏值为[p(")J,~ =,、r'-'+'"

r且'+•..

+

"t-tr+叽_,(4-35)

(3)对于多基多进制或称混合基.这是绩一般的情况可以包括上面两种单蜂的情Ilt.此时N可表示威直合舷N=r,rl'"凡,则对于,,

m

noLI'EM气。这一多基多进制数所代表的数值为(n),o =

"L_,(rlrJ"'rι) +nι.(r,r, "'rι)+"'+",r,+汗。(4-36)

其倒佳11"形式为[ρ,(n)].~.~_,......,=("o","'nι,nι,

)

[μp(n时)J,. =

向no(r,内r'z,...

口rι斗)+ n,

(町r,ηr",... rι

L2ρ)+"'+"比1-→zr,+"叽ι←H斗,(4-3盯盯7>在迫一a多脏基多进制的褒示中,,0=η1

",= _,-l

吼,=,-l

可记为",=凡;-1.

i

= O.l,....L-l (4-38)

移基多进制《混合基〉是JI普A隘的形式它包含了.qt基《二进制或多迸制〉形式.当r,-rl="'=凡~2时.N=护为基2的二进制形式,当r,=rf-"'-rι~,时.N=rι为差,的r进制形式.[倒4-1]N=3X5:ar,r!.则有(n),.

=

n,rl +"0

=

5"t

+"。[p(时],.=

"Orl

+'"

=

3"0

+

'It

芷中n,=0.1,2:

no=0.1.2.3.4

例如(6),.=5Xl+l=(11)m. [p(6)],o=3Xl+1=(4>m(2),ø=5XO+2-(02).>

[例4-2]N=4X4=r,r,.剧本f(")10 = n,r,

+n. = 411\

+"。[ρ〈时J,o-IIor,

+

n,

=

4"0

+ '"

其巾n,=0.1.2,31 ".=0.1.2.3

例如(3),. -4 XO+3 -(03)川[p(3)J,.-4 X 3 -, 0 -(12)ω

(7),.=4Xl+3=(13).",.

(ρ(7)Jlo

= 4 X 3+ 1 = (13),.

(l4),.=4X3+2=(32).x,. [p(l4)J,.=4X2+3=(II),.

[例4-3]N=4X3X2-r,rzr).则有(,,),. = l1,rlr,

+n,r,

+no

= 6111 +211, +11.

• 163 • [ρ(n)],O nor,r,+n,r,+n,=12n。十4叫牛叫其巾n,=0.1.2.3; n,=O.J.2, n.=O.J

例如(5),0

=6XO+2x2+1 =

(021),)<))(,唱[p(S)],o= 12 X 1 +4 X2+0 = (20),0

(14

)】。=6x2+2xl+0=(210)川~,.[p(14)],o =

12xO+4XI+2=刊)"(2日10= 6 X 3+2 X 1+ 1 = (31l},xm.

[p(ZD],.

= 12 x 1 +4 X

1十3=

(19)'0

二N=r",的快速,摩洛1算法原理要计算的N点DFT为.'1-)

X(k)

=王二x(n)W;'.k=N-1

(4-39)

民N

是个且合数N

hηn债

阳上丽的讨tfnIn将

nn

<时仙向川用下式表达(〕1r一r1=

一E+g

z--(4-40)、A‘

h

­1同样,若令N=r,r,•则可将频率壶量k(k

=η-1

=

k,

Ik,r,十仇

(4-41)

这样的表达式,.为"进制数..。为末位.".为其进位,是为叫进制数,k,为其末恤,是l为其进佳.实际上是将原来的序号""周短阵形式来表示.用下面的例子来加U说明设r,=4.r,=2.则N =

r,r,

= 4 X 2 =

8

那么则可把"。看成列序号.把..看成行序号,r,=2为列的数目.r,=4为行的数目。在安(4-40)式组合这两变蝠,就得到单一的置量时1I=O,l.....N-l)叼如表4-4的挤到.表4-4N….Xl时将n然列为短酶形式.,

n二〉之。。o

2

357

2

4

3

6

同样,若N=r,r,=164 • 是=4k+品。叼,

4Ik,=0.1

0守11

ko

=

.2.3

迫II~.k,为变换后的列置景k,为行变量.1'"1= 2为别的敬目.,】~4为行的数目.彼(4-41)式组告这两蛮量,就得到单一的变量是〈是=O,I.....N~I).将(4-40)式与(4-41)式代人(4-39)式可得.'1]

汩的=X(I'",k, +k.>

=

X

:L,:xüdW:::

•• 0

=

:•L

: :L:.:dl'"lll]

+

no

)W'.,;,',

_-0

-•,.

~o

=豆豆.r(n, • no )

W~"" W'~,咐.W扩ewylh=

:•L

:.

_L,.:x(n,

.no)叫「··WJVitvye(4-42)

~O ..

'牛。在上面推导中应用了W,日川】需W231.1=IWJ蜻果这里n是肘,川和.,表示的.所U主要对矶和..的所有佳求利,则n的一个求和1号变成了.,初"0的两个求和号.(4

42)式可进步衷示为X屿,是0)~2:1[三.I'(/I,.no)W:J""JW~'o)W沪.,

~2:1[2:,问,nJWfo]川'elwrt=)~[X,(ko."o)圳、]W71.l=三x',忡。.n,,)W:g"=

Xt(ko.k,)

(4-43)

注意表达式小x(n,.no)表示x(旧的"为η进制顺序徘列X(k,.ko)表示X(们的走为"进制顺序排列,而X(1l0.n,)则应表示x(川的n为"进制倒位序排列.x(品。而〉川i应表示X=

:L:x(n"lIo)W;J".'

k"

=,r,一1(4-44)

X,'(ko

."。】=X,

(ι""}W3·P

(4-45)

X,

(是..k,)=

2..:X,'(k川(4-46)

X(企,.辰。)=

X,(仇•k

1 )

(4

-41)

(4-44)式表示叫为参锺时川。=0,1.....I'"t-1)输入变盟'"与输H1变键是。之间的"点165 • DFT,且共有η个(肉的最自)"点DFT.而X,(k,.7Io)的序歹'1值为ηXrl=N.(4-45)

式表示(4-44)式的X,忡。.问》乘以w:;,'.回子所组成的新序列Xi(ko,7Io).W~"称为旋转园子

(4-46)式表示h为参量时忡。=O,}....,r1-l)输入变量"0与输出变量是』之间的η点DFT,总共有"个忡。的数目)'.点DFT.而X,(仇•k1

)的序列值为"xη=N.同时页1VJ看出叼X,(/':0,k1)中的暨盏是孩"进位制倒位序徘列的.(4-47)式则表示.簸后要利用是=r1k1+ko进行整序,'J恢直出X(}=X(的.因而可将N为重合数N=r1r,的DFT算法的步骤归纳如下(J)将X(7I)改写成x(711町"0)

.利用(2)利用(4-44)式,做η个"点DFT.得X,(是。.110).(3)利用(4-45)式,把N个X,(儿.710

)乘且相应的旋转因子w~'.组成Xt

(的利用(4-46)式,做"个"点DFT得X,性。,k1

).

(5)利用"→47)式,进行整序.得到UX(k1,是Q)=X<的,其巾k=r,k,+庭。.对于N=rlr,=4X2=8(其中r,=4.η=白的例子,重写"和庭的表达式为71 = 211,

+

710 •

k

=

4k,十店。,则(4-44)式变成X1(ko•1I0)

=

2:x(η, ,"。川、叫"。此式有两组(对应于710=0,1)4点DFT.(4-45)式与(4-46)式分别变成Xi(仇.1I0}=

X,(.)Wã<>"

X,(ko

.kl)

= 2:X,'恼,,川Wj"1","。后一-式子共有四组(时应予ko=O.I.2.3)2点O1'T.(4-47)式变成X(k,.ko)

= X,()

这样,我们可U得到IJN=4X2=8的流因.ln图4-20所示.图中省略了一个4点DFT的流阁.读者可利用上面分析的方法自行画l\j•

另外,还可U果用先乘旋转圈子再算D凹的算法,即可表示为X

=

2:

W~i"'

眉。_0"2,.:

[.r(

11, ,110)

W~.f' JW:~.L

(4-48)

-0

此式和(4-43)式不同z处是,首先把时间序剖乘U旋转回子W~、,然后计算"点悦。,11,)的DFT.再计算"点(k,.II.)的DFT.这里是序同先乘wyo,应正反映了按时间抽选,(4-43)式是先作变候再乘wyg,正反幌T按频血事抽选.上面讨论的是N=r,rlnpN分解为两个素数的情况.若N为商组合素数,则可按166 直数效法草数加法N'

N(

N-I)

国而混合基算法可节省的运算量储安交为乘法Rx=..-NX而万万τ丁)f

N

"ττ+1

(4-49)

M法N-l

R+=τγ一一--;:;'7=一一一一"'"Nù',

+η-2)

1'",+1',-2

l)

N(N-35

13

例如,当N=r,η=5X7=35时.R只=~~=2_6.直接DFT算法的运算量是混合基算法的Z.6俯.同样,当N=r,ηr,ß;t.一定有"2r.个"点DFT.r,r,个"点DFT,r,rl个η点DFT.b闭上两次乘旋转园子,因而单乘法欢数为N(r,+r,+η+2).

这样可山推算出.当N=r,r,"'rι时采用混合毒品算法所需且果法次数为N[I2.>')村.则直撞计算DFT与之相比,运算烛之比为-1

J

(4-50)

R..=

N'

N[

12

.,>,)+1. --I

J

L

HEF

N

(4-51)

在章,(4-50)式用于每个r,!1)为素数〈但手白的情且是精确的守此时可将'.点置换着成乘法次数为r!是对的.但是当代不是蒙致或,.,=2时.就不定对了.例如.当ri=

2时,(4-50)是两点变换不辛苦有多在法运算对".=4也是这样.对r.=8.则所得运算比64次乘法少得多.所以.当'.分别为2.4.8时.将使上面的公式儿子失放也就是说,N=Z"时式完全不适用.

本文标签: N为复合数的FFT算法混合基算法