- •1. Реализация универсальной “бабочки” с прямой адресацией для алгоритма бпф с прореживанием по времени.
- •2. Реализация универсальной “бабочки” с прямой адресацией для алгоритма бпф с прореживанием по частоте.
- •3. Реализация “бабочек” для специальных значений поворачивающих множителей.
- •4. Алгоритм бпф с прореживанием по времени и двоично-инверсным расположением входных данных.
- •5. Программа бпф с прореживанием по времени и двоично-инверсным расположением входных данных.
- •6. Алгоритм бпф с прореживанием по времени и прямым расположением входных данных.
- •7. Программа бпф с прореживанием по времени и прямым расположением входных данных.
- •8. Алгоритм бпф с прореживанием по частоте и прямым расположением входных данных.
- •10. Алгоритм бпф с прореживанием по частоте и двоично-инверсным расположением входных данных.
- •11. Программа бпф с прореживанием по частоте и двоично-инверсным расположением входных данных.
- •12. Программная реализация алгоритма бпф с поблочно-плавающей запятой.
- •13. Организация двоично-инверсного счетчика (алгоритм Рэйдера) и перестановка данных.
- •14. Форматы чисел с плавающей запятой.
- •15. Алгоритм сложения чисел с плавающей запятой.
- •16. Программа сложения чисел с плавающей запятой.
- •17. Алгоритм умножения чисел с плавающей запятой.
- •18. Программа умножения чисел с плавающей запятой.
- •19. Алгоритм деления чисел с плавающей запятой.
- •20. Программа деления чисел с плавающей запятой.
- •21. Использование процессов семейства tms320 для компрессии сигналов. Два метода сжатие сигналов.
- •22. Алгоритм компрессии сигналов по методу μ-Law.
- •23. Программа компрессии сигналов по методу μ-Law.
- •24. Алгоритм восстановления сигналов, закодированных по методу μ-Law.
- •25. Программа восстановления сигналов, закодированных по методу μ-Law.
- •26. Алгоритм компрессии сигналов по методу a-Law.
- •27. Программа компрессии сигналов по методу a-Law.
- •28. Алгоритм восстановления сигналов, закодированных по методу a-Law.
- •28. Программа восстановления сигналов, закодированных по методу a-Law.
- •30. Алгоритм бпф для обработки многомерных векторных процессов.
3. Реализация “бабочек” для специальных значений поворачивающих множителей.
Алгоритм БПФ с прореживанием по времени с учетом симметрии W:
Fk = Gk + WNK+N/2 ⋅ Hk
F K+N/2 = Gk + WNK+N/2 ⋅ Hk = Gk - WNK ⋅ Hk
где
WNnk = e-j(2π/N)*nk = cos(2π/N)*nk – j*sin(2π/N)nk
поворачивающие множители.
Это можно проиллюстрировать следующим рисунком:

Воспользовавшись свойством симметрии поворачивающих множителей можно значительно упростить вычисление «бабочки».
Для алгоритма БПФ с прореживанием по времени и WN0 = 1 (cos=1, sin=0)
получим
Pm+1 = [PR + QR] + j⋅[PI + QI],
Qm+1 = [PR – QR] + j⋅[PI – QI].
Программа вычисления «бабочки» при этом значительно сокращается (в 2 раза):
BTRFLY ld PR, 15, a ; A = 1/2 QR
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].
Программа вычисления «бабочки» при этом выглядит следующим образом:
BTRFLY ld PI, 15, a ; A = 1/2 PI
sub QR, 15, a ; A = 1/2 (PI-QR)
sth a, PI ; = 1/2 PI
add QR, 16, a ; A = 1/2 (PI+QR)
ld PR, 15, b ; B = 1/2 PR
add QI, 15, b ; B = 1/2 (PR+QI)
sth b, PR ; = 1/2 PR
sub QI, 16, b ; B = 1/2 (PR-QI)
sth b, QR ; = 1/2 QR
sth a, QI ; = 1/2 QI
Для алгоритма БПФ с прореживанием по частоте и WNN/4 = – j (cos=0, sin=1) получим
Pm+1 = [PR + QR] + j⋅[PI + QI],
Qm+1 = [PI – QI] + j⋅[QR – PR].
Программа вычисления «бабочки» при этом выглядит следующим образом:
BTRFLY ld PI, 15, a ; A = 1/2 PI
add QI, 15, a ; A = 1/2 (PI+QI)
sth a, PI ; = 1/2 PI
sub QI, 16, a ; A = 1/2 (PI-QI)
ld QR, 15, b ; B = 1/2 QR
sub PR, 15, b ; B = 1/2 (QR-PR)
sth b, QI ; = 1/2 QI
add PR, 16, b ; B = 1/2 (PR+QR)
sth b, PR ; = 1/2 PR
sth a, QR ; = 1/2 QR
Для WNN/8 = 0.7 – j0.7 (cos=sin=W=0.7) получим:
прореживание по времени
Pm+1 = [PR + (QI + QR)⋅W] + j⋅[PI + (QI – QR)⋅W],
Qm+1 = [PR – (QI + QR)⋅W] + j⋅[PI – (QI – QR)⋅W].
прореживание по частоте
Pm+1 = [PR + QR] + j⋅[PI +QI],
Qm+1 = [(PI – QI)⋅W + (PR – QR)⋅W] + j⋅[(PI –QI)⋅W – (PR – QR)⋅W].
Для WN3N/8 = –0.7 – j0.7 (–cos=sin=W=0.7) получим:
прореживание по времени
Pm+1 = [PR + (QI – QR)⋅W] + j⋅[PI – (QI + QR)⋅W],
Qm+1 = [PR – (QI – QR)⋅W] + j⋅[PI + (QI + QR)⋅W].
прореживание по частоте
Pm+1 = [PR + QR] + j⋅[PI +QI],
Qm+1 = [(QR – PR)⋅W – (QI – PI)⋅W] + j⋅[(QR – PR)⋅W + (QI –PI)⋅W].
Программа вычисления «бабочки» при этом сокращается незначительно.
