logo search
28-12-2014_12-52-57 / пповсрв

3.2. Реализация частных случаев вычисления «бабочки»

Воспользовавшись свойством симметрии поворачивающих множителей можно значительно упростить вычисление «бабочки».

Для алгоритма БПФ с прореживанием по времени и WN0 = 1 (cos=1, sin=0) получим

Pm+1 = [PR + QR] + j [PI + QI],

Qm+1 = [PR – QR] + j [PI – QI].

Программа вычисления «бабочки» при этом значительно сокращается (в 2

раза):

PR, 15, a

; A = 1/2 QR

BTRFLY ld

add

QR, 15, a

; A = 1/2 (PR+QR)

sth

a, PR

; = 1/2 PR

sub

QR, 16, a

; A = 1/2 (PR-QR)

sth

a, QR

; = 1/2 QR

ld

QI, 15, a

; A = 1/2 QI

add

PI, 15, a

; A = 1/2 (PI+QI)

sth

a, PI

; = 1/2 PI

sub

QI, 16, a

; A = 1/2 (PI-QI)

sth

a, QI

; = 1/2 QI

Для алгоритма БПФ с прореживанием по частоте и WN0 = 1 (cos=1, sin=0) получим

Pm+1 = [PR + QR] + j [PI + QI],

Qm+1 = [PR – QR] + j [PI – QI].

И программа вычисления «бабочки» полностью совпадает с программой для алгоритма с прореживанием по времени.

Для алгоритма БПФ с прореживанием по времени и WNN/4 = –j (cos=0, sin=1) получим

Pm+1 = [PR + QI] + j [PI – QR],

Qm+1 = [PR – QI] + j [PI + QR].