Устройство для вычисления коэффициентов фурье
Иллюстрации
Показать всеРеферат
библиоте
С И оп и ди
ИЗОБРЕТЕН ИЯ
Союз Советских
Соцывлыстыческик республик
<
К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ (61) Дополнительное к авт. свид-ву (22) Заявлено 15.08,77 (2I) 2516246/18-24 с нрисоединением заявки Рй(23)ПрноритетОпубликовано 25.11.79. Бюллетень М 43 (5! )М. Кл.
G 06 F 15/34
Госудврстееииый «ои«тот
СССР ио делом изооретоиий и от«ритой, (53) УД К 681,32 7 (088.8) Дата опубликования описания 28.11.79 (72) Автори изобретения
B. Lt. Гусев, B. Н. Морозов и Г. И. Кацман
Специальное конструкторское бюро "Виброприбор (71) Заявитель (54) УСТРОЙСТВО ДЛЯ ВЫЧИСЛЕНИЯ
КОЭФФИЦИЕНТОВ ФУРЬЕ
Изобретение касается вычислительной техники, предназначается для цзмерения спектров случайных функций и может быть использовано при решении задач технической диагностики.
Известны специализированные процес5 соры, осуществляющие быстрое преобразование Фурье (БПФ) в реальном времени.
Как правило, эти процессоры содержат оперативные запоминающие устройства .10 (ОЗУ) в виде автономных блоков.
Эти ОЗУ содержат матрицу памяти, системы шин занесения, шин считывания, адресную систему с признаком операции, линейки усилителей считывания (в слу15 чае с МОЗУ) и т. д. (1).
Наиболее близким по технической сущности к предложенному является устройство для вычисления коэффициентов Фурье, содержащее арифметический блок, управляющий вход которого соединен с выходом генератора тригонометрических функ» ций, блок управления, т1 — разрядные регистры сдвига. Кроме того, известное устройство содержит тт регистров разной длины для обработки массива 2 выборок, 11
Блина каждого последующего регистра меньше прецыдущего в 2 раза, что опре деляет нужное двоичное расстояние между парами чисел, выбираемыми для обработки на текущей итерации: в устройстве реализован алгоритм Кули-Тычки. Совокупность этих g. регистров образует общий регистр сдвига, в котором последовательные выборки сигналов располагаются в двоичной последовательности от
0 до 2 — 1. Каждый из т1 регистров П входит в состав соответствующего модуля. Общее число модулей равно, таким образом, И. Схема каждого модуля содержит, помимо регистра, арифметический блок, 8 линий задержки, 4 из которых входят в состав арифметического блока, а остальные 4 установлены на входе и выходе этого блока, причем объем линий задержки равен объему соответствующего регистра сдвига. Кроме того, схема модуля содержит коммутацито
25 3
«:» c «С = в 8 точках, управляемую устройством
« управпе«ия (с функциями индексного устройства). В пределах времени обработки одного массива данных одновременно включенным бывает только один арифме-, тический блок. При «.« =9 дпя построения процессора потребуется 9 арифметических блоков, 72 линии задержки, общим объемом 2 (т. е. 512) и коммутация B
tl
72 точках. Необходимо подчеркнуть, что «0 если выполнять задержку на триггерах, то суммарный объем памяти процессора составит 2 М, где Я- объем исходного массива чисел. С увеличением Ъ (а реально = 10 —; 13} приведенные коли- «5 чества будут возрастать. Помимо этого, в рассматриваемом процессоре применено постоянное запоминающее устройство синус-косинусных коэффициентов, ра бота которого определяется индексным устройством, вырабатывающим соответствующие адреса (21.
Однако данный быстродействующий процессор является громоздким и сложным.
Цель изобретения — упрощение устройства.
11пя атого устройство, содержащее арифметический блок, управляющий вход которого соединен с выходом генератора
30 тригонометрических функций, блок управления, tl- ра зрядные ре гистры с дви га дополнительно содержит триггер, элементы
И записи, элемент HE и узел тактирования, выполненный на элементах И, ИЛИ, 35 причем первые входы элементов И узла тактирования сЬединены с шиной тактовых импульсов, второй вход первого элемента И узла тактирования — с единичным
40 выходом триггера, с первыми входами первого, второго, третьего и четвертого элементов И записи, второй вход второго алемента И. узла тактирования соединен со входом элемента НЕ, с первым
45 входом блока управления, со вторыми входами первого и второго элементов И записи и с первыми входами пятого и шестого элементов И записи, второй вход третьего алемента И узла тактирования
50 соединен с выходом элемента НЕ, с первыми входами седьмого и восьмого алементов И записи, вторыми входами третьего и четвертого элементов И записи, второй вход четвертого элемента И узла тактирования соединен с нулевым выходом триггера со вторыми входами пятого, шестого, седьмого и восьмого элементов И записи, выходы элементов И
25 4 узла тактирования соединены с первыми входами соответствующих элементов ИЛИ узла тактирования, вторые входы первого, второго, третьего и четвер ого элементов И узла тактирования соединены соответственно с выходами второго, четвертого, первого и третьего элементов И узла тактирования, выходы элементов
ИЛИ узла тактирования соединены с тактовыми входами соответствующих регистров сдвига, выходы которых соединены со входами арифметического блока, первый выход которого соединен с третьими входами шестого, второго, восьмого и четвертого элементов И записи, второй выход арифметического блока соединен с третьими входами пятого, первого, седьмого и четвертого элементов И записи, выходы пятого, первого, седьмого и третьего элементов И записи соединены с информационными входами первых разрядов соответствующих регистров сдвига выходы шестого, второго, восьмого и четвертого элементов И записи соединены с информационными входами (п/2+1) разрядов соответствующих регистров .сдвига, счетный вход триггера соединен со вторым выходом блока управления, третья о группа выходов которого соединена с управляющими входами генератора тригонометрических функций.
На фиг. 1 изображена структурная схема устройства; на фиг. 2 — граф для массива из 1 6 чисел алгоритма Стокхэма-Санди.
Устройство содержит регистры сдвига чисел 1 —: 4, арифметический блок 5, элементы И записи 6 —: 13, триггер 14, элемент HE 15, узел тактирования 16, элементы И 17 -, 20, элементы ИЛИ
2l - 24, блок управления 25, счетчик
26 объема —, регистр 27, элемент
ИЛИ 28, элементы И 29 —; 31, шину синхронизации 32, шину 33 сигнала окончания БПФ цикла, итерационные выходы
34 - 36 блока управления, генератор
37 тригонометрических функций, входы
38, 39 записи исходной информации в регистры, шину ТИ тактового импульса, шины выхода результата "Вых .
Предлагаемый процессор реализует алгоритмы Стокхэма-Санди. На фиг. 2 толстыми линиями обозначено умножение соответствующих чисел (при вершинах, откуда линии исходят) на единицу, а тонкими линиями - умножение соответствую99525 6
5 6 ших чисел иа тригонометрический Koýôôèциент 11(К-11 1»вЂ”
32Я где щ =Е,хр И
Я - объем обрабатываемого массива чисел (т. е. количество этих чисел);
p - номер итерации;
), — номер группы тонких линий, начиная от начала массива.
Так, например, на 1-с>й итерации (номера итераций проставлены сверху римскими цифрами) имеется только одна группа тонких линий (это числа в мас-. сиве с 9-го по 1 б-е), для которой трио гонометрический множитель равен % .
На второй итерации первая группа (r. е. числа с 5-го по 8-е) умножается на и, вторая группа чисел (с 13-го по
1 6-е) умножается на Ж+, на третьей итерации таких групп уже 4 (3 - 4, 7 - 8, 11 — 12, 15 - 16) и для них о соответственно имеем: Ф/,, щ 4 д", на четвертой итерации (.на последней) каждое число массива является группой, и здесь показатель степени 111 тригонометрического множителя меняется от 0 до 7. Естественно, что рассмотрен порядок изменения тригонометрических коэффициентов применительно к базовой операции алгоритма:
Таким образом, в отличие от алгоритма Кули-Тычки, данный алгоритм (Стекхэма-Санди) характеризуется естественным нарастанием показателя степени при 9/ внутри каждой итерации при смене групп чисел, возрастая каждый раз от 0 на одну и ту же величину. Эта особенность и позволяет применить в устройстве генератор, работающий по алгоритму (1). Здесь а(, есть та постоянная величина, на которую возрастает показатель степени при и которая задается в генераторе 37 соответствующей шиной (из числа 34 - . 36), на которой существует импульс, определенный текущей итерацией. Замечательной особенностью алгоритма является и то, что результаты базовой операции (т. е. Д„.+„ и3„ „) в массиве, формируемом для jq) итерации, всегда отстоят друг от друга на - )- чисел (т. е. на полмассива), Это
50 и дозволяет резко сократить число коммутаций в устройстве. Числа же А„ и
В„- для базовой операции берутся всегда из двух соседних групп чисел: число А„ берется иэ группы чисел, умножаемых на
1, а число В„- берется из следующей за ней группы чисел, умножаемых на @111. Если формировать массив для оче« редной итерации таким образом, чтобы числа А .1+ 1 и В, 4 записывались в разные регистры; то подавая на эти регистры тактовый импульс, можно сдвигать в арифметический блок нужные пары чисел одновременно.
В устройстве содержатся четыре регистра (1 -, 4), в каждый из которых можно записывать — чисел. При этом и каждый иэ регистров представляет собой два полурегистра, объемом -"-, включенных последовательно. Выход первого полурегистра включен на вход второго, причем на этот же вход второго полуре« гистра можно подавать числа с выхода соответствующих вентилей записи: 7, 9, 11, 13. В начале БПФ-цикла в регистры 1 и 3 заносится исходный массив чисел по шинам 38 и 39. Регистры 2 и 4 остаются свободными. При этом в регистр 1 заносится первая половина массива (первые. — чисел), а в регистр
Ц
3 — вторая половина массива, так что к началу первой итерации все числа А > сосредоточены в регистре 1, а все чисда В . — в регистре 3. Одновременно на л шину "Вых из регистра 1 (если число итераций четное) или из регистра 2 (ес« ли число итераций нечетное) выводится результат предыдущего цикла (как известно (lj, информативными при N чисй лах исходных являются только — чисел
2 результата). Занесение (выдача) чисел в регистры осуществляется за — — так« и
2 тов, и эти тактовые импульсы считаются счетчиком 26. В момент переполнения счетчика 26 (соответствует окончанию занесения в регистры 1 и 3 исходного массива чисел) на шине 32 синхронизации появляется импульс (переполнения), который записывает в первый разряд регистра 27 единицу и устанавливает в единичное состояние триггер 14. Элементы И 8, 9, 12 и 13 отпираются, элементы И 6, 7, 10 и 11 запираются.
Начинается 1-я итерация, которая продолжается — тактов (до появления слеН
2 дующего импульса переполнения на шине 32). Выход первого разряда регист-. ра 27 подключен к первому входу эле7 (i 9(э5 мепта 29 И, ко второму пхо, iy которого подключен старший разряд o÷åò÷èIIà 26.
Так как вес старшего разряда счет ьчка э - N ,. Ь равен —,, то потенциал с га ршего разряда счетчика 26 за время наполне-. ния счетчика (до появления следуюгцего и лпупьса переполнения па шине 32) изменится два раза (один раз — нулевой, один раз — единичный) . В нулевом состоянии на выходе блока управления су- !0 ществует единица, в результате чего " элементы И 8 и 9 остаются открытыми, и через них проходят числа с выходов арифметического блока 5 на запись одновременно в первый и второй полурегистры >5 регистра 2. Это — числа А — резуль1+4 таты базовой операции. Применительно к фиг. 2 это числа с 1-го по 4-е (опи запишутся во второй иопурегистр через вентили 9) и с 9-го по 1 2-е (запишутся в 20 первый попурегистр через элемент И 8) .
При этом на тактовые входы регистра 2 проходят импульсы с выхода элемента
22 ИЛИ, который, в свою очередь, пропускает эти импульсы с выхода элемента
18 И. По окончании нулевого состояния блока управления 25 в регистре 2 записывается непрерывный ряд чисел: 1, 2
3, 4, 9, 10, 11, 12 (применительно к примеру на фиг. 2), который состоит толь- 0 ко из чисел А „1, причем в этом ряду имеются все числа А „1 массива для спе1+1 дующей итерации. В единичном состоянии на выходе блока управления существует ноль, который запирает элемент 18 И, а также — элементы И 8, 9, при этом на выходе элемента 15 HE появляется единица, которая открывает элемент 19 И, элементы И 1 2 и 1 3, в результате числа
40 с выхода арифметического блока 5 поступают на запись в регистр 4: числа с 5-го по 8-е записываются во второй полуре, гистр (через элементы И 13), а числа
1 3 по 1 6 — в первый полурегистр (через элементы И 12 ). При этом регистр 4
45 тактируется импульсами с выхода элемента 24 ИЛИ, который, в свою, очередь, пропускает эти импульсы с выхода элемента 1 9 И. По окончании единичного состоя.ния блока управления 25 в регистре 4
50 записывается непрерывный ряд чисел: 5, 6, 7, 8, 1 3, 14, 1 5, 1 6 (применительно к примеру на фиг. 2), который состоит только из чисел В -, причем в этом
1+1 ряду имеются все чйспа В ° массива дпя
1+1 следующей итерации.
3а все время первой итерации регистры
1 и 3 безостановочно,тактируются по це г, 8 по цлм: элемент 1. 7 И вЂ” элемент 2
ИЛИ и элемент 17 И -:элемент 23 ИЛИ соответственно, в то время как регистры
2 и 1 тактируются лишь тогда, когда в них происходит запись чисел. Поэтому, к моменту окончания первой итерации регистры 1 и 3 оказываются свободными, а регистры 2 и 4 заполняются числами.
В момент окончания итерации на шине
32 появляется импульс, который переключает в нулевое состояние триггер 14, в результате чего элементы И 8, 9, 12, 13 запираются, а элементы И 6, 7, 10, ll открываются, элемент 17 И .запирается, а элемент 20 И отпирается, что обуславливает постоянное тактирование регистров 2 и 4 по цепочкам: элемент 20 И— элемент 22 ИЛИ и элемент 20 И вЂ” элемент 24 ИЛИ соответственно. Регистр
1 тактируется лишь тогда, когда на выхо де узла 25 (выход элемента 28 ИЛИ) присутствует единица, а регистр 3когда присутствует ноль. То есть регистры 1, 3 и 2, 4 меняются ролями. Одновременно импульс на,шине 32 передвигает в регистре 27 единичный потенциал во второй разряд, который управляет элементом 30 И по первому входу. Ко второму входу элемента 30 И подключается следующий за старшим разряд счетчика 26 с весом М/8, поэтому за время второй итерации на выходе адресного узла 25 потенциал меняется четыре раза (два раза будет существовать ноль, два раза — единица). Поэтому запись чисел с выхода блока 5 осуществляется в течение 2-х тактов (применительно к фиг. 2): вначале в регистр
1 (числа 1 и 2 записываются во второй полурегистр через элементы И 7, числа
9 и 10, записываются в первый полурегистр через элементы И 6), затем в регистр 3 (числа 3 и 4 записываются во второй полурегистр через элементы И
11, а числа 11 и 12 «в первый полурегистр через элементы И 10), затем запись вновь производится в регистр 1 (записываются числа 5, 6 и 13, 14), после чего - в регистр 3 (записываются числа 7, 8 и 15, 16). QJIsr осуществления базовой операции в продолжении второй итерации в арифметический блок сдвигаются числа .соответственно парами: 1 и 5, 2 и 6, 3 и 7, 4 и 8, 9 и
13, 10 и 14, 11 и 15, 12 и 16 (применительно к фиг. 2). Gagee, вторая итерация оканчивается, регистры 2 и 4 очищаются, регистры 1 и 3 заполняются чисне меняются.
C} 6сЭ95 лами, вырабатывается импульс переполнения на шине 32, г, ri.ep 14 переходит в единичное состояние, единичный потенциал в регистре 27 переходит в 3 разряд, при этом потенциал на выходе элемента 28 ИЛИ онредел,. тся инверсным состоянием разряда счетчика с весом
М/16 и все повторяется снова, как описано выше. По окончании всех итераций на шину 33 выходит единичный сиг- 10 нал с выхода последнего разряда регистра 27. Это и есть сигнал окончания
БПФ-цикла. При этом результаты БПФцикла располагаются либо в регистре 1 (если число итераций четное), либо в ре- 15 гистре 2 (если число итераций нечетное) в естественном порядке (свойство алгоритма Стокхзма-Санди), причем другой регистр (либо 2, либо 1) будет обязательно свободным. Поэтому объединение 0 регистров по выходу ничуть не мешает как при БПФ-цикле сдвигу нужных пар чисел в блок 5, так и при считывании конечного массива спектральных составляющих F —; $ на шину Выход ("Вых . о 15
Итак, если сравнить три устройства, реализующих БПФ в реальном масштабе времени, и в качестве сравниваемых взять: процессор с ОЗУ, процессор по схеме прототипа и предлагаемое устрой30 ство, то процессор в прототипе превосходит процессор с ОЗУ по быстродействию, но получается при этом очень сложным и громоздким, насыщенным коммутацией.
HpegnaraeMoe же устройство, превосходя в такой же степени процессор с ОЗУ по быстродействию, конструктивно оказывается в несколько раз проще процессорапрототипа, ибо содержит всего один ариф40 метический блок вместо 9, как в прототипе (в общем случае — по числу итераций), 8 точек коммутации вместо 72, как в прототипе (в общем случае зависит от числа итераций). Под точкой ком45 мутации в предлагаемом устройстве подразумевается элемент И записи (из числа 6 -, 11). Объем же триггерной памяти одинаков у процессора-прототипа и у предлагаемого процессора и равен 2 Й . При этом предлагаемое устройство тем более экономичней процессора-прототипа, чем больше массив обрабатываемых данных, потому что с увеличением массива данных увеличивается число итераций, а значит и количество арифметических блоков и коммутаций в процессоре-прототипе. В предлагаемом же устройстве количества этих блоков (т. е. число арифметио Г) 1С ческих блоков и число точек коммутации) Формула изобретения
Устройство для вычисления коэффициентов Фурье, содержащее арифметический блок, управляющий вход которого соединен с выходом генератора тригонометрических функций, блок управления, и-разрядные регистры сдвига, о т л и ч аю щ е е с я тем, что, с целью упрощения устройства, оно содержит триггер, элементы И записи, элемент НЕ и узел тактирования, выполненный на элементах
И, ИЛИ, причем первые входы элементов
И узла тактирования соединены с шиной тактовых импульсов, второй вход первого элемента И узла тактирования — с единичным выходом триггера, с первыми вхо» дами первого, второго, третьего и четвертого элементов И записи, второй вход второго элемента И узла тактирования соединен со входом элемента НЕ, с первым выходом блока управления, со вторыми входами первого и второго элементов И записи и с первыми входами пятого и шестого элементов И записи, второй вход третьего элемента И узла тактирования соединен с выходом элемента
НЕ, с первыми входами седьмого и восьмого элементов И записи, вторыми входами третьего и четвертого элементов И записи, второй вход четвертого элемента
И узла тактирования соединен с нулевым выходом григ гера, со вторыми входами пятого, шестого, седьмого и восьмого элементов И записи, выходы элементов
И узла тактирования соединены с первыми входами соответствующих элементов
ИЛИ узла тактирования, вторые входы первого, второго, третьего и четвертого элементов ИЛИ узла тактирования со единены соответственно с выходами второго, четвертого, первого и третьего элементов И узла тактирования, выходы элементов ИЛИ узла тактирования соединены с тактовыми входами соответствующих регистров сдвига, выходы которых соединены со входами арифмртического блока, первый выход которого соединен с третьими входами шестого, второго, восьмого и четвертого элементов И записи, второй выход арифметического блоКа соединен с третьими входами пятого, первого, седьмого и четвертого элемента И записи, выходы пятого, первого, 11 69 седьмого и третьего элел.ентов И запи- си соединены с информационными входами первых разрядов соответствующих регистров сдвига, выходы шестого, второ о, восьмого и четвертого элементов И записи соединены с информационными входами (п/2 + 1) разрядов соответствующих регистров сдвига, счетный вход триггера соединен со вторым выходом блока уп9525 равления, третья группа выходов которого соединена с упрагпяющими входами
t"å .åpàòoðï тригоцометри ческих функций.
Источники информации, принятые во BHHMBfllfp при экспертизе
1. Патент СПИ № 3803391, кл. 340 — 165, 1974.
2. Патент США ¹ 381 6729, кл. 340 — 165, 1975.
ЦНИИПИ Заказ 7229/53
Тираж 780 ПодписноеФилиал ППП Патент, г. Ужгород, ул. Про ектная,4