Лекции по ТБА v3
.pdfGenerated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
41
Пример 2
Если N 30 5 6 5 2 3, то основную теорию разложения можно использовать дважды. Начав с разложения 5 6 , выполнить 6-точечные ДПФ, используя для этого разложение 2 3.
Начнем с нумерации 30-ти отсчетов исходной матрицы сигнала
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
42
Чтобы оценить уменьшение объема вычислений за счет использова-
ния алгоритма БПФ, рассмотрим 2 частных случая:
1. Положим N L M (L и M – простые числа больше 2). Из общей формулы вычисления ДПФ следует, что M-точечное ДПФ требует M 2 опе-
раций. Учитывая это, получим общее число операций для разложения вида
N L M .
C2 M L2 L M 2 L M LM (L M L) N (M L 1) (4.24)
где LM учитывает количество умножений на поворачивающие множители.
Таким образом, с помощью формулы (4.24) можно оценить выигрыш во времени вычислений, характерный для преобразования с использованием
разложения. |
|
Например, N = 55. (L = 11, M = 5). C2 относится к числу операций при |
|
прямом расчете ДПФ как 17:55. С увеличением N выигрыш увеличивается. |
|
(Например при N = 15, L = 5, M = 3), |
С2 относится к числу операций при |
прямом расчете ДПФ как 17:55. |
|
2. N можно разложить на три |
простых целых сомножителя, т.е. |
N P M L . В этом случае число операций: |
|
C3 P2 L M P M L2 P L M 2 |
2PLM N(P L M 2) (4.25) |
Например, при P = 3, L = 5, M = 7. С3 относится к числу операций при |
прямом расчете ДПФ как 17:105, т.е. уменьшение числа операций почти на
порядок. |
|
|
Чтобы оценить |
выигрыш в общем случае, |
положим |
N N1 N2 N3...N j . Тогда: |
|
|
|
j |
|
C j |
N ( Ni j 1) |
(4.26) |
|
i 1 |
|
С помощью полученных формул можно достаточно точно определить |
величину выигрыша при условии, что все числа Ni – простые (и не равны 2).
Если же числа Ni не являются простыми или равными 2, необходимо быть
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
43
осторожными в оценках. Например, как было показано выше, при двух то-
чечных ДПФ умножения вообще не используются. Это же справедливо и для
Ni = 4. При Ni = 8 число умножений существенно меньше 64. В связи с этим при разложении N на 2, 4, 8 полученные формулы не пригодны.
Чтобы получить полученный граф (подобный графам 4.4 и 4.7 для са-
мого общего случая разложения) необходимо расширить круг обозначений.
Это сделано на рис. 4., где 30-точечный массив представлен в виде двумер-
ного массива, содержащего 5 строк и 6 столбцов, со следующими элементами
(числа обозначают номера элементов исходного массива):
0 |
1 |
2 |
3 |
4 |
5 |
|
|
|
|
|
|
6 |
7 |
8 |
9 |
10 |
11 |
|
|
|
|
|
|
12 |
13 |
14 |
15 |
16 |
17 |
|
|
|
|
|
|
18 |
19 |
20 |
21 |
22 |
23 |
|
|
|
|
|
|
24 |
25 |
26 |
27 |
28 |
29 |
|
|
|
|
|
|
На первом этапе БПФ выполняются 6 пятиточечных ДПФ, так, что не закрашенные кружки обозначают полные ДПФ, размер которых равен числу линий, входящих в кружок и выходящих из него.
Узлы графа обозначают регистры, содержащие входные и выходные отсчеты ДПФ. Все выходные отсчеты ДПФ умножаются на поворачивающие множители.
Следующий этап состоит в вычислении ДПФ всех строк. Т.к. строки содержат по 6 элементов, то каждая из них может быть представлена в виде матрицы (2×3). На рис. Каждая 6-ти точечная строка преобразовывается с помощью:
1)трех двухточечных ДПФ;
2)умножений на поворачивающие множители;
3)двух трехточечных ДПФ.
Отметим следующую особенность обозначения. Каждая линия, выхо-
дящая из незакрашенного кружка должна иметь свою стрелку с коэффициен-
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
44
том W. Но, если учесть, что W 0 1, то такой множитель можно опустить.
При нахождении поворачивающих множителей для второго этапа графа на
рис. Необходимо помнить, что для него коэффициент W W305 , поэтому
матрица поворачивающих множителей для каждой из прореживающих сто-
рон исходной матрицы, содержащей 5 сторон и 6 столбцов, имеет вид:
W 0 |
W 0 |
W 0 |
|
|
|
W 0 |
W 5 |
W 10 |
Алгоритм БПФ с основанием 2
Обратимся к алгоритму БПФ не со смешанным основанием, а с фикси-
рованным, т.к. в этом случае значительно проще проводить анализ, програм-
мирование и разрабатывать специализированные устройства.
В принципе разницы между алгоритмом со смешанным и фиксирован-
ным основанием нет. Если N r m , где m-целое, то сначала N представляется
в виде произведения r |
N |
, а затем |
N |
как r |
N |
и т.д. Например при N = 32 и |
|
|
r 2 |
||||
|
r |
r |
|
r = 2 можно поступить следующим образом:
1) Пусть отсчеты 0-15 составляют первую строку матрицы размером
(2×16), а отсчеты 16-31 составляют ее вторую строку. Начнем с выполнения двухточечного ДПФ всех 16 столбцов, как показано на рис. , а результаты затем умножим на матрицу поворачивающих множителей, также содержа-
щую 2 строки и 16 столбцов.
2) Пусть каждая строка, подлежащая преобразованию, представляет-
ся в виде матрицы (2×8). Вычислим по 8 ДПФ столбцов каждой из обеих матриц размером (2×8) и умножим их элементы на поворачивающие множи-
тели, рассчитанные с помощью множителя W 2 , матрица которых имеет раз-
мер (2×8). Полученный результат будет соответствовать второму этапу алго-
ритма, граф которого показан на рис…...
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
45
3) Аналогично каждую из строк, содержащих по 8 элементов пред-
ставим в виде матрицы (2×4) затем каждую из строк, содержащих по 4 эле-
мента – в виде матрицы (2×2) которая в данном случае и является конечной целью алгоритма.
РАЗРАБОТКА УСТРОЙСТВ
БЫСТРОГО ПРЕОБРАЗОВАНИЯ ФУРЬЕ в СОК
Синтез устройств БПФ в СОК содержит следующие этапы:
1.Выбор системы модулей.
2.Синтез функциональных модулей БПФ в СОК.
3.Аппаратурная реализация алгоритмов БПФ в СОК с заданными свойствами.
4.1.Особенности выбора системы модулей для БПФ в СОК
Наибольшее влияние на число каналов БПФ в СОК оказывает макси-
мальный диапазон результата max, который зависит от числа отсчетов N, раз-
рядности R данных x[nT] и разрядности RW весовых коэффициентов Wk:
max 2R RW log2 N1 , |
(4.1) |
где N1=N/2.
Разрядность R входных чисел определяется динамическим диапазоном
D входных сигналов: R=D/6, где D выражено в децибелах. Например, для
наиболее частых случаев ЦОС D=60дБ, т.е. R=10.
Величина RW выбирается, исходя либо из точности дискретизации 1,
либо из заданного отношения среднеквадратичного значения (СКЗ) ошибки к
СКЗ сигнала 2, либо принимается, что RW=R: |
|
RW log2 (1 0.5/ 1) ; 0< 1<<1; |
(4.2) |
RW 0.5(log2 log2 N1 log2 6 log2 2 ) ; 0< 2<<1; |
(4.3) |
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com |
For evaluation only. |
46 |
|
RW D / 6. |
(4.4) |
Отсюда следует основное соотношение для теоретического определе- |
|
ния числа каналов и модулей в СОК при реализации N-точечного БПФ: |
|
log2 log2 N R RW 1. |
(4.5) |
Зная N, D и задаваясь 1( 2), из (4.2-4.5) можно определить систему моду-
лей СОК {NS}, минимизируя и (или) RSmax. Или, напротив, по структуре про-
цессора, вычисляющего алгоритм «бабочка» в СОК, и его быстродействию T2, а
также быстродействию традиционного БПФ в ПСС T1, определяется max T1/T2.
После вычисления N, D и определяется RSmax и система модулей {NS}. Так можно теоретически вычислить верхний предел и {NS}. При этом max 220.
Компьютерное моделирование показывает, что практически макси-
мально возможный результат не превышает 218 для подавляющего боль-
шинства алгоритмов.
4.2. Синтез функциональных модулей БПФ в СОК
Базовой вычислительной операцией быстрого преобразования Фурье является операция, известная под названием «бабочка»:
C A BW k
– с прореживанием по времени;
D A BW k
– с прореживанием по частоте.
D (A B)W k
Для осуществления этих двух преобразований в каждом S-м канале
СОК необходимо провести операции сложения и умножения по соответст-
вующему модулю (будем рассматривать случай прореживания по времени):
|
|
C |
S |
A |
B |
W k ; |
|
(4.6) |
|
|
|
|
|
S |
S |
S |
|
|
|
D |
S |
A |
|
B |
W k A B |
V k ; |
(4.7) |
||
|
S |
|
S |
|
S |
S S |
S |
|
|
|
|
|
|
Generated by Foxit PDF Creator © Foxit Software |
|||||
|
|
|
|
|
http://www.foxitsoftware.com |
For evaluation only. |
||||
|
|
|
|
|
|
47 |
|
|
|
|
где |
CS C mod N S ; |
AS |
A mod N S ; |
BS B mod N S ; |
||||||
D |
S |
D mod N |
S |
; Wk W k modN |
S |
; V k N / 2 W k mod N |
S |
. |
||
|
|
S |
|
S |
|
|
В процессе синтеза функциональных модулей БПФ в СОК, характери-
зующихся высоким быстродействием, перед разработчиками возникают про-
блемы, связанные с возрастанием аппаратурных затрат. Для их решения предлагаются следующие способы.
Первый способ заключается в использовании при построении базовых табличных модулей (ТМ) соотношений, вытекающих из свойств СОК:
|
|
|
|
|
W k N / 2 W k ; W k N / 2 |
VSk ; VSk N / 2 |
WSk . |
(4.8) |
|||||||||||
|
Схемы ТМ, реализующих операцию «бабочка» в СОК, представлены на |
||||||||||||||||||
рис. 4.1 и 4.2. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
загрузка |
|
|
|
загрузка |
|
|
загрузка |
||||||
|
AS |
|
|
|
|
|
k |
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
CS |
Ws |
|
|
|
|
|
|
|
|
|||
|
BS |
|
|
ТМ |
BS |
ТМ |
|
|
|
ТМ |
|
CS |
|||||||
|
W k |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AS |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
загрузка |
|
|
|
|
|
загрузка |
|
|
|||||
|
|
|
|
|
|
|
|
|
загрузка |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
DS |
|
|
|
|
|
|
|
|
|
DS |
||
|
|
|
|
|
|
ТМ |
|
|
|
ТМ |
|
|
|
ТМ |
|
||||
|
|
|
|
|
|
V k |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
k |
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
Vs |
|
|
|
|
|
s |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4.1. Схема базового |
|
|
|
Рис. 4.2. Схема базового |
|
|
||||||||||||
табличного модуля для RS=3...4 |
|
табличного модуля для RS=5...6 |
В качестве таблиц возможно использование ППЗУ (в неперестраивае-
мых структурах) и сверхоперативных ЗУ, загружаемых из основной памяти таблицами выполняемых арифметических операций. Операнды подаются на шину адреса ТМ, с информационных выходов которых снимаются числа
CS и DS. При RSmax 3...4 объем памяти ТМ составляет 256 байт, а при
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
48
RSmax = 5...6 – не превышает 4 Кб, что не составляет проблем при техниче-
ской реализации.
Вторым способом сокращения аппаратурных затрат и увеличения бы-
стродействия является реализация функциональных модулей в СОК на ком-
бинационных операционных схемах (КОС), выполненных в виде заказных СБИС или синтезированных на ПЛМ(ПЛИС). На рис. 4.3 показана такая схе-
ма, в которой совмещен ряд логических операций «И» и «ИЛИ». Двуместная операция БПФ выполняется в два такта. Вначале на матрицы конъюнкций
(МК) через мультиплексоры (MS) подаются числа BS, WSk и BS, VSk , а с выхо-
дов умножителей считываются произведения ПS этих пар. Далее числа ПS и
AS складываются в той же комбинационной операционной схеме в направле-
нии МК-МД2 и на выходах суммирования образуются числа CS и DS.
|
|
WSk |
AS |
|
|
|
BS |
|
|
|
|
|
VSk |
|
|
|
AS |
|
|
|
|
|
BS |
|||||||||
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MS |
|
|
|
|
|
MS |
|
|
|
MS |
|
|
|
|
|
|
|
MS |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КОС |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
КОС |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
MK |
|
|
|
|
|
|
|
|
|
|
|
|
MK |
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MD1 |
MD2 |
|
|
MD1 |
MD2 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
УМН |
|
CS |
|
|
|
УМН |
|
DS |
||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
Рис. 4.3. Схема СБИС
для вычисления БПФ на КОС
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
49
Третьим способом, позволяющим увеличить быстродействие и умень-
шить аппаратурные затраты, является использование логического подхода к построению блока формирования весовых коэффициентов. Этот блок можно
существенно упростить, учитывая, что если BW k r , то
BV k BW k N S r (комбинационная схема, реализующая функцию
(NS – r) как r в обратном коде в вычислительных блоках обозначена через
КС). Общий случай реализации такого упрощенного вычислительного блока
«бабочка», выполняемого в соответствии с формулами 4.6 и 4.7, показан на рис. 4.4.
|
<A>S |
|
RS |
||||||
|
<B>S RS |
|
|
r RS |
|
|
|
|
RS <C>S |
|
|
|
|
|
|
|
|||
<Wk>S RS |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NS |
|
|
|
RS <D>S |
КС |
-r |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4.4. Схема упрощенного вычислительного блока «бабочка»
(общий случай)
|
Покажем результаты использования этого способа для различных прак- |
||||
тических случаев. Очевидно, |
|
например, что в канале NS = 2: Wk V k ; |
|||
A A ; B |
2 |
B ; W k |
2 |
W k , где A0, B0, W0 – нулевые (младшие) раз- |
|
2 |
0 |
0 |
0 |
ряды соответствующих чисел. Тогда упрощенный вычислительный блок «ба-
бочка» в этом канале имеет вид, показанный на рис. 4.5.
A0
|
|
|
|
|
C0, D0 |
|
B0 |
|
|
|
1 |
||
& |
||||||
|
|
|||||
W k |
|
|
|
|
||
|
|
|
|
|
||
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 4.5. Схема вычислителя и шифратора для NS=2
Generated by Foxit PDF Creator © Foxit Software
http://www.foxitsoftware.com For evaluation only.
50
На рис. 4.6 представлена схема реализации упрощенного вычислитель-
ного блока «бабочка» для NS=3 ( а-общая схема, б-подробная схема), а на рис. 4.7-4.9 –схемы CD для NS = 5, 7, 11, 13, 61 соответственно. При построе-
нии схем КС рассматриваются логические таблицы (NS – r), например табл. 4.1 для случая NS=61.
<A>3 |
|
2 |
<B>3 |
2 |
1 |
<Wk>3 |
2 |
1 |
2 <C>3
2 <D>3
|
|
|
|
а |
|
|
|
|
<A>3 |
|
|
2 |
1р |
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
2р |
|
|
2 |
|
<B>3 2 |
1р |
& |
1 |
& |
1 |
1р |
<C>3 |
|
2р |
|
|
|
|
||||
1 |
|
|
|
|
|
|||
<Wk>3 2 |
1р |
& |
1 |
& |
|
|
|
|
|
2р |
& |
|
& |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
& |
|
|
1 |
2р |
|
|
|
|
|
|
& |
|
|
||
|
|
|
|
& |
|
|
|
|
|
|
|
|
1р |
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
2р |
|
|
2 |
|
|
|
|
|
& |
1 |
1р |
<D>3 |
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
& |
|
|
|
|
|
|
|
|
& |
1 |
2р |
|
|
|
|
|
|
& |
|
|
|
|
б
Рис. 4.6. Схема реализации упрощенного блока «бабочка» для NS=3:
а – общая схема; б – подробная схема