Лекции по ТБА v3
.pdfGenerated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
лы памяти любого канала начинает выполняться операция «бабочка». Выче-
ты арифметических операций «×» и «+» хранятся в схеме операционного уз-
ла и оттуда считываются.
Следующим шагов по улучшению вычислительных характеристик устройств БПФ в СОК является индексное представление вычетов. Индекс-
ные БПФ в СОК не содержат умножителей, и как следствие имеют мини-
мальное число каналов СОК и высокое быстродействие.
Поразрядные алгоритмы ДПФ (ПДПФ).
В ряде случаев лучшим вычислительным алгоритмом, чем БПФ, яв-
ляются поразрядные алгоритмы ДПФ (ПДПФ). Это обусловлено тем, что в ПДПФ большинство операций выполняются на этапе проектирования, а дру-
гие вычисляются таблично.
3.1. Одномерный поразрядный метод вычисления ДПФ
Известно, что k-я гармоника спектра для чисел входной последователь-
ности x(n):
N 1 |
|
Fk WNnk x(n) , |
(3.1) |
n 0
j 2
где WN e N – весовая функция. Раскрыв (3.1), получим для NS точек в r-м
разряде чисел x(n):
F |
(r) x |
r |
(0)W 0 |
x |
r |
(1)W k |
|
|
|
|
ks |
|
NS |
|
NS |
|
|
|
(3.2) |
||
|
|
|
2k |
... xr (NS |
(N |
|
1)k |
|||
|
|
|
|
, |
||||||
|
xr (2)WNS |
1)WNS |
S |
|
||||||
где тригонометрическая форма весовой функции: |
|
|
|
WNS cos(2π/NS ) j sin(2π/NS ) . |
(3.3) |
В спецпроцессорах обычно используются числа x(n) в дополнительном коде с фиксированной запятой. Тогда
R 2
x(n) xr (n)2r xзн (n)2R 1 ,
r 0
61
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
где R – число разрядов чисел в последовательности x(n), xЗН(n) – знаковый разряд чисел. Следовательно, при поразрядном ДПФ в r-м разрядном «срезе» для NS точек имеем:
|
|
|
N 1 |
|
(n) 1 2r , |
|
(3.4) |
|
|
|
F (r) W nk δ x |
|
|||||
|
|
ks |
n 0 N S |
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
|
(зн ) |
N 1 |
|
|
(n) 1 2 R 1 |
, |
(3.5) |
ks |
W nk x |
зн |
||||||
|
|
N S |
|
|
|
|||
|
|
|
n 0 |
|
|
|
|
|
|
|
Fks |
R 2 |
|
|
|
|
|
|
|
Fks (r) Fks (зн), |
|
(3.6) |
||||
|
|
|
r 0 |
|
|
|
|
|
где [0]=1; r 0, R 1; k, n 0, N 1.
Выражение (3.4) представляет возможность априорного вычисления суммы весов (обозначим ее через CKS (X r )) для всех возможных комбинаций значений в r-м разряде xr(n)). Например, если в r-м разряде последовательно-
сти из N=8 выборок наблюдается комбинация 10011010, то
FKS (r) CKS (xr ) CKS (10011010) W8K W84K W85K W87K .
Следовательно, все суммы весов CKS (xr ) могут быть записаны в ПЗУ или ОЗУ по адресам, соответствующим xr.
Схема устройства одномерного ПДПФ представлена на рис. 3.1. Входы параллельно-последовательных регистров RG1 являются R-разрядными, а
выходы – одноразрядными, регистр RG2 – параллельный. На выходах RG1
последовательно появляются числа от нулевого до (R–1)-го (знакового) раз-
рядов: x1(n), x2(n), ...xR(n) для всех n 0, NS 1 в каждом разряде одно-
временно. ПЗУ имеет NS-разрядный адрес. При изменении NS необходимо перепрограммировать ПЗУ в соответствии с (3.2) и (3.3). Объем памяти ПЗУ для NS точек входной последовательности QROM RkS 2NS , где RkS – разряд-
ность FKS . Таким образом, через R тактов на выходе устройства формируется отсчет Fk, а полное время преобразования составит NSR тактов.
62
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
X(0) |
RG |
|
|
|
|
|
Xr(0) |
Fks(r) |
RG |
|
1 |
ALU |
||
|
ROM |
|||
|
|
. |
|
FkS |
|
|
|
|
|
|
|
. |
|
|
X(1) |
RG |
. |
|
2 |
|
|
|||
|
|
|
|
|
|
|
Xr(1) |
|
|
|
1 |
|
сложение для r 0, R 2 |
|
|
|
|
||
. |
. |
|
вычитание для r R 1 |
|
. |
. |
|
|
|
. |
. |
|
|
|
X(NS–1) |
RG |
|
|
|
|
|
Xr(NS-1) |
|
|
|
1 |
|
|
|
R сдвигов |
|
|
|
|
Рис. 3.1. Схема устройства для одномерного поразрядного вычисления ДПФ
Проведённые исследования показали, что в связи с возрастанием аппа-
ратурных затрат одномерный метод вычисления ПДПФ целесообразно ис-
пользовать в случаях, когда количество точек входной последовательности
NS принимает значения от 64 до 256. При N 512 необходимо перейти к мно-
гомерному методу вычисления ПДПФ.
3.2. Многомерный поразрядный метод
вычисления ДПФ
Пусть N NS , все NS – взаимно простые числа. Тогда от одномер-
S 1
ного N-точечного ПДПФ можно перейти к многомерному ПДПФ через NS-
точечные в соответствии с алгоритмом Гуда. Метод многомерного ПДПФ содержит шагов по NS точек для всех S 1, . Такое преобразование вклю-
чает следующие этапы:
63
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
1. Переиндексация (реконфигурация) данных x
X (n) X (n1 ,n2 ,...,nS ,...n ),
|
|
|
n nS N / NS |
mod N . |
(3.7) |
S 1 |
|
|
Для двумерного случая X (n) X (n1,n2 ) , n N1n2 N2n1 mod N . 2. Вычисление N/NS коротких NS-точечных ПДПФ
а) при =2 сначала вычисляются N2=N/N1 N1-точечных ПДПФ:
F rS (k ,n |
2 |
) и F зн |
(k ,n |
2 |
) при k |
2 |
|
1, N |
2 |
; |
|
|
||||||||
k |
1 |
|
k |
|
1 |
|
|
|
|
|
|
|
|
|
|
|||||
1 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F rS (k ,n |
|
) |
N1 1 |
[x |
|
(n , n |
|
) 1]W n1k1N2 |
2r |
(S ) |
|||||||
|
|
|
2 |
|
r |
2 |
; |
|||||||||||||
|
|
|
k |
1 |
|
|
|
|
|
|
1 |
|
|
|
N |
|
|
|||
|
|
|
1 |
|
|
|
|
|
n1 0 |
|
S |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поразрядное |
|
|
|
|
|
|
|
R 1 |
|
|
|
|
|
|
|
|
|||
|
|
|
|
(k1 |
|
|
Fkr (S ) |
|
(k1,n2 ) Fkзн (k1,n2 ); |
|||||||||||
|
|
|
|
Fk |
,n2 ) |
|
||||||||||||||
|
суммирование |
|
1 |
|
|
r 0 |
1 |
|
|
|
|
1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
S 0 |
|
|
|
|
|
|
|
|
б) затем осуществляется N1=N/N2 вычислений N2-точечных ПДПФ:
F rS |
(k |
|
, k |
|
|
N2 1 |
[F r |
(k , n |
|
) 1]W n2k2N1 |
2r |
(S ) |
|||||||
1 |
2 |
) |
2 |
|
; |
||||||||||||||
k |
2S |
|
|
|
|
|
k |
|
1 |
|
|
N |
2 |
|
|
|
|||
|
|
|
|
|
|
|
n2 0 |
1(S ) |
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Поразрядное |
|
|
|
|
R 1 |
|
|
|
|
,k2 ) Fkзн (k1,k |
2 ) ; |
||||||||
|
|
|
|
|
Fk |
(k1,k2 ) Fkr (k1 |
|||||||||||||
суммирован ие |
|
2 |
|
r 0 |
|
2 |
|
|
|
2 |
|
|
|
R 1
в) F(k1 ,k2 ) FS (k1 ,k2 ) .
S0
3.Наконец, переупорядочиванием выходных значений многомерного
массива определяется F(k). Это возможно двумя путями[128]:
|
|
|
|
|
|
|
|
определяется из соотношения |
|
а) k kSU S |
N / NS mod N , где US |
|||
S 1 |
|
|
|
|
<U S N/NS>mod NS 1, S |
|
; |
|
|
1, |
|
|||
|
modN , где каждое US определяется из группы сравнений |
|||
б) k US kS |
||||
S 1 |
|
|
|
|
US ij mod Nj,
где знак означает операцию сравнения, которая заключается в интерактив-
ном поиске всех значений, удовлетворяющих этому условию. При = 2 k = <U1k1+U2k2>mod N; U1 1 mod N2; (U1 0 mod N1); U2 = N+1 U1.
64
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов» |
||||||
Схема устройства двумерного ПДПФ, которое при N1=63, N2=64 осу- |
||||||
ществляет 4032-точечное преобразование, представлена на рис. 3.2. |
||||||
Вход |
|
|
|
|
|
выход |
|
|
|
|
|
|
ШД |
n1 0, |
N1 1 |
|
k1=1 |
|
|
|
X(n) |
ПДПФ - |
R1 |
ПДПФ - |
|
|
|
n2=0 |
N1 |
|
|
N2 |
|
R2 |
R |
|
|
|
|
|
|
|
|
|
n2 0, |
N2 1 |
|
|
n1 0, |
N1 1 |
|
|
|
|
|
СПП |
ПДПФ - |
R1 |
k1=2 |
ПДПФ - |
|
СОП |
n2=1 |
N1 |
|
|
N2 |
|
F(k) |
|
|
|
|
|
|
|
|
. |
. |
n2 0, |
N2 1 |
|
|
|
. |
. |
|
|
||
|
|
|
|
|
||
|
. |
. |
|
|
|
|
n1 0, |
N1 1 |
R1 |
|
|
|
|
|
ПДПФ - |
k1=N1 |
ПДПФ - |
|
|
|
|
N1 |
|
|
N2 |
|
|
n2 N2 1 |
|
n2 0, N2 1 |
|
|
||
ШД |
X(n1, n2) |
ШД |
F(k1, n2) |
ШД |
F(k1, k2) |
|
ОЗУ-1 |
|
ОЗУ-2 |
ОЗУ-3 |
|||
|
|
|
«k1» |
|
«k1» |
ШУ |
«n1» «n2» |
«k1» |
|
«n2» |
«k2» |
«k2» |
|
|
Рис. 3.2. Схема устройства |
|
|
|||
для вычисления многомерного поразрядного ДПФ ( =2) |
Числовая R-разрядная последовательность X(n) поступает из шины дан-
ных ШД на схему прямой переиндексации СПП, работающую в соответствии с (3.7). Схема СПП может быть выполнена на ПЛМ, так же как и схема об-
ратной переиндексации СОП. После схемы СПП к первой ступени преобра-
зования (группа одномерных ПДПФ – N1, их общее число равно N2) через ОЗУ-1 подключаются данные X(n1, n2) группами по N1 чисел: сначала все вы-
65
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
борки с n2=0, далее с n2 = 1, ..., n2 = N2 – 1. При каждом n2 k1 меняется в цикле от 1 до N1, и, наконец, при каждом k1 n1 меняется в цикле от 0 до N1–1. Таким образом, подключением номера группы выборок управляет команда n2, стра-
ницу весов в каждом ПДПФ первой ступени определяет команда k1, а номер числа внутри группы устанавливается командой n1 (размерность дешифрато-
ра ППЗУ по входу первой ступени преобразования зависит от количества чи-
сел внутри группы, т.е. от N1). С выхода первой ступени ПДПФ числа
F(k2, n2) записываются в ОЗУ-2. (Нетрудно показать, что вместо трех ОЗУ в схеме можно применять одно с тем же объемом памяти, что и ОЗУ-3: разряд-
ность регистра числа у ОЗУ-3 максимальна. Три ОЗУ используются при ор-
ганизации конвейерной обработки). Числа из ОЗУ-2 в порядке, указанном на схеме, считываются на вторую ступень одномерных ПДПФ, состоящую из N1
устройств ПДПФ на N2 точек каждый.
Таким образом, каждое из ППЗУ второй ступени преобразования содер-
жит N2 страниц (k2 1, N2 ), так как каждая точка должна иметь отдельный ад-
рес. Номер группы чисел (или номер ПДПФ второй ступени) устанавливается
командой k1 (k1 1, N1) . Номер числа F(k1, n2) в группе определяется командой
n2 (n2 0, N2 1) . Команда k2 устанавливает номер страницы в ППЗУ. С выхо-
да второй ступени снимаются сигналы F(k1,k2), поступающие в ОЗУ-3. Из него через СОП, преобразуясь в Fk, они поступают в шину данных. По шине управ-
ления подаются сигналы n1, n2, k1, k2, назначение которых ясно из предыдущего.
Приведем таблицы перестановок для прямого и обратного преобразова-
ния в практически интересном случае N=1023; N1=31; N2=33. Первая ступень такого устройства осуществляет 33 31-точечных ПДПФ, а вторая – 31 33-точеч-
ных ПДПФ. Для такого преобразования n=<33n1+31n2>1023. Тогда прямая пере-
становка имеет вид, показанный в табл. 3.2.
66
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
25.01.2012 12:15 Курс лекций по дисциплине «Теория быстрых алгоритмов»
Таблица 3.2. Таблица перестановок для прямого преобразования ПДПФ
n |
0 |
33 |
66 |
99 |
132 |
... |
891 |
924 |
957 |
990 |
|
|
|
|
|
|
|
|
|
|
|
n1,n2 |
0,0 |
1,0 |
2,0 |
3,0 |
4,0 |
... |
27,0 |
28,0 |
29,0 |
30,0 |
: |
: |
: |
: |
: |
: |
: |
: |
: |
: |
: |
|
|
|
|
|
|
|
|
|
|
|
n |
992 |
2 |
35 |
68 |
101 |
... |
860 |
893 |
926 |
959 |
|
|
|
|
|
|
|
|
|
|
|
n1,n2 |
0,32 |
1,32 |
2,32 |
3,32 |
4,32 |
... |
27,32 |
28,32 |
29,32 |
30,32 |
Обратная перестановка проводится по алгоритму:
k=<528k1+496k2>1023.
Тогда
F(0,0) F(0),
F(1,0) F528,
F(2,0) F33,
F(3,0) F561 и т.д.
Заметим, что при N=1023
TБПФ=128000tСЛ, а T ПДПФ=33TДПФ-31+31TПДПФ-33=4092tСЛ.
Полученные результаты наглядно доказывают преимущество в быстро-
действии приведенных методов и устройств ПДПФ по сравнению с устрой-
ствами БПФ в ПСС. Кроме того, в ПДПФ существенно снижаются ошибки округления. Такие характеристики обусловлены тем, что до 90 % операций вычислительного алгоритма многомерного поразрядного ДПФ (включая и определение свертки) выполняются на этапе проектирования и изготовления
(программирования) ПДПФ.
67