УДК 519.216.1/2 В.В. Сюзев, А.Я. Савельев, Д.Ю. Гудзенко МЕТОДЫ ПРЕДСТАВЛЕНИЯ И ПРЕОБРАЗВАНИЯ СИГНАЛОВ В БАЗИСЕ ОБОБЩЕННЫХ ФУНКЦИЙ КРЕСТЕНСОНА Рассмотрены методы синтеза и основные свойства различных дискретных базисных систем обобщенных функций Крестенсона в многоосновных системах счисления, а так же оригинальный скалярный способ построения быстрых алгоритмов анализа спектра в этих базисах. Теоретические результаты проиллюстрированы конкретными примерами. E – mail: v.suzev @ bmstu.ru Ключевые слова: сигнал, спектр, базис Крестенсона, многоосновная система счисления, быстрые преобразования Фурье. Вычислительная и функциональная эффективность решения многих задач цифровой обработки сигналов спектральными методами существенно зависит от используемых систем базисных функций [1]. Поскольку ортогональных систем базисных функций существует неограниченное множество, то выбор рационального базиса является сложной теоретической и прикладной проблемой. В этих условиях особенно полезными могут оказаться параметрические базисные функции, содержащие в своей структуре один или несколько изменяемых параметров, влияющих на их свойства. Известным и важным примером таких базисов служит класс комплексных экспоненциальных функций Виленкина-Крестенсона [2], управление свойствами которых осуществляется с помощью вариации основания используемой системы счисления. Обобщение этих функций на многоосновную систему счисления (систему счисления с переменным основанием) и применение дополнительных способов их переупорядочения значительно расширяет ассортимент возможных базисных систем, среди которых можно искать базис, в наибольшей степени удовлетворяющий условию решаемой задачи обработки. В данной статье рассмотрены известные и новые методы формирования таких базисных систем и их основные свойства, а также оригинальные скалярные алгоритмы быстрого преобразования Фурье на их основе. Пусть p1 , p2 , ..., pn есть целые положительные числа, принятые в качестве оснований системы счисления, и целые числа k и i, задающие номер и аргумент обобщенной функции Крестенсона (ОФК) W(k, i), на интервале N p1 p2 ... pn записаны в виде m 1 n k km p0 p1... pm 1 pn 1 pn 2 ... p1kn ... p2 p1k3 p1k2 k1 , m 1 n i im p0 p1... pm 1 pn 1 pn 2 ... p1in ... p2 p1i3 p1i2 i1 , (1) где p0 1 , а im и km являются m-ми разрядами позиционного представления чисел i и k ( i1 и k1 - младшие разряды) и лежат в диапазоне [0, pm 1] . Тогда ОФК можно представить следующим выражением [3]: n kmim ), i 0, 1, ..., N 1. m 1 pm W (k , i) exp( j 2 где (2) j 1 . Эти функции можно выразить и через произведение дискретных комплексных экспоненциальных функций (ДЭФ) exp( j n W (k , i) exp( m 1 где принято W p exp( j m n j 2 kmim ) Wpkmmim , im , km 0, 1, ..., pm 1, pm m 1 2 kmim ): pm (3) 2 ). pm Записанные таким образом ОФК обладают рядом интересных свойств. Приведем основные из них. 1. ОФК являются комплексными функциями с единичным модулем и n kmim . Вычитая из фазы целое число 2 , можно получить m 1 pm фазой (k , i) 2 ОФК с минимальными фазами. 2. В ОФК переменные k и i равноправны, поэтому, если поменять их местами, функция не изменится, т.е. W (k , i ) W (i, k ). (4) 2 В этом проявляется свойство двойственности ОФК относительно своих аргументов, которое приводит к симметричности матрицы значений ОФК. 3. Среднее значение любой ОФК, кроме нулевой, равно нулю, т.е. 1 N N 1 W (k , i) 0, k 0. (5) i 0 Действительно, N 1 N 1 n i 0 i 0 m 1 n p1 1 p2 1 pn 1 m 1 i1 0 i2 0 in 0 N 1 n W (k , i) Wpkmmim Wpkmmim ... Wpkmmim . m 1 i 0 (6) Но при km 0 pm 1 im 0 W pkmmim 0, поэтому при k 0 , когда хотя бы один разряд km 0 , все произведение (6) будет равно нулю. Следовательно, выражение (5) справедливо. Среднее значение нулевой ОФК равно единице, т.к. W (0, i) 1 и 1 N N 1 1 1. i 0 4. Произведение двух любых ОФК дает другую ОФК: W (k , i )W ( , i) W ( , i), (7) где k (){ p} , (8) а произведение двух любых ОФК, одна из которых является комплексносопряженной, так же принадлежит ОФК: W (k , i)W ( , i) W ( , i), (9) где k (){ p} . (10) В выражениях (8) и (10) ( ){ p} и (){ p} означают операции поразрядного модулярного сложения и вычитания, выполняемые по правилам: 1 (k1 1 ) (mod p1 ), 2 (k2 2 ) (mod p2 ), ........................................ n (kn n ) (mod pn ). (11) 3 Доказательство соотношений: первого утверждения n n m 1 1 n вытекает из следующих W (k , i) W (, i) Wpkmmim Wp Wp Wp n Wp ( k ) i 1 i i k i 1 n Wp W ( , i). i 1 Вывод второго утверждения можно получить аналогичным образом, если учесть, что n W ( , i) Wp i . 1 Данное свойство отражает мультипликативность ОФК. В силу своей двойственности ОФК обладают мультипликативностью как по индексу k, так и по индексу i, т.е. являются дважды мультипликативными функциями. 5. Мощность любой ОФК равна 1: Pk Действительно, 1 N N 1 W (k , i)W (k , i ) 1. (12) i 0 и W (k , i )W (k , i ) W (k , i ) 1 2 поэтому формула (12) справедлива. 6. ОФК являются ортогональными функциями, т.к. 1 N N 1 W (k , i)W ( , i ) 0, k . (13) i 0 Для доказательства этого свойства сначала воспользуемся свойством мультипликативности в виде (9) и запишем сумму в (13) так: 1 N N 1 W (k , i)W ( , i) i 0 1 N N 1 W ( , i). i 0 Из этого выражения следует, что взаимная мощность двух ОФК с номерами k и λ равна среднему значению ОФК с номером α, определяемым соотношением (10). Но при k номер k (){ p} не равен нулю и среднее значение такой ОФК будет равно нулю (см. (5)). 7. Система из N ОФК будет полной системой на интервале [0, N). Это следует из того, что в этом случае к системе нельзя будет добавить ни одной новой функции, которая была бы ортогональной одновременно ко всем остальным функциям системы. 4 Таким образом, N ОФК образуют полную ортонормированную мультипликативную комплексную дискретную базисную систему {W (k , i)} , пригодную для спектрального представления любых решетчатых сигналов ограниченной мощности. Пара ДПФ в базисе ОФК (k , i ), i 0 N 1 x(i ) X (k )W (k , i ), k 0 1 N X (k ) N 1 x(i)W (14) а равенство Парсеваля 1 N N 1 N 1 i 0 k 0 x2 (i) X (k ) X (k ), (15) где X (k ) - комплексно-сопряженная к X ( k ) величина. Так как ОФК являются дважды мультипликативными функциями, то для их спектров справедливы все общие свойства, приведенные в работе [2]. В частности, выполняются теоремы о модуляции, сдвиге, свертке, корреляции и умножении сигналов. При этом, поскольку операция мультипликативности совпадает с операцией поразрядного сложения или вычитания по переменным модулям, то и операция обобщенного сдвига в этом базисе понимается в этом же смысле. Такие же операции должны быть использованы здесь и при записи обобщенных сверток и корреляций. Энергетические спектры в базисе ОФК инвариантны к такому обобщенному сдвигу. ДПФ в базисе ОФК можно записать и в матричной форме. 1 W x, N x WX , X где матрицы прямых ( W ) и комплексно спряженных ( W ) значений ОФК имеют вид: n n m 1 m 1 W [ W pkmmim ], W [ W pmkmim ]. Эти матрицы значений ОФК являются матрицами с полными фазами. Вычитая в них из степеней W числа, кратные N , получим матрицы значений с минимальными фазами. Матрицы значений ОФК W симметрическими и унитарными. Они содержат и W будут действительные и 5 комплексные элементы, причем комплексные попарно сопряжены. Нулевая строка и нулевой столбец этих матриц состоят только из единичных элементов. Для ОФК по аналогии с функциями Виленкина-Крестенсона (ВКФ) и функциями Уолша [2] можно вести понятие ранга R, равного числу ненулевых разрядов кода номера функции k. Номер k функции или спектра ранга r можно тогда обозначить в виде k ( R r ) . При r =1 в разложении k будет только один значащий разряд. Совокупность таких номеров можно записать так: m 1 k ( R 1) km p0 p1... pm 1 km p , km 1, 2, ..., pm 1; m 1, 2, ..., n. 1 Так как здесь используется только одна переменная с индексом, то ее можно заменить на простую переменную µ и тем самым упростить запись: m 1 k ( R 1) p , 1, 2, ..., pm 1; m 1, 2, ..., n. 1 m 1 Если значение µ (или km) равно 1, то номер k p и принадлежит 1 следующему множеству значений: {1, p1 , p1 p2 , ..., p1 p2 ... pn1} . Соответствующие ему функции m 1 W ( p , i) exp( j 1 2 im ) pm (16) и зависят только от значения своего аргумента. Таким свойством обладали обычные функции Радемахера в системах Уолша и обобщенные функции Радемахера в системах ВКФ [2]. По аналогии эти функции так же можно считать обобщенными функциями Радемахера R( , i ) для системы счисления с переменным основанием. Тогда R(n m 1, i) exp( j 2 im ) W pimm , m 1, 2, ..., n . pm (17) При введении обозначения функции Радемахера учтено, что с увеличением ее номера число точек изменения ее значений должно возрастать. Очевидно, что в полной системе ОФК (2) содержится только n обобщенных функций Радемахера и любая ОФК (2) может быть выражена через их произведение: 6 n n m 1 m 1 W (k , i ) W pkmmim [ R(n m 1, i )]km . (18) Пример 1. Построить систему ОФК для N=6 прямым методом и с помощью функций Радемахера. Решение. В этом случае N 2 3 . Поэтому примем p1 2, а p2 3 . Тогда числа k и i запишутся в виде i i1 2i2 (i2i1 ) и k k1 2k2 (k2 k1 ) , где i1 , k1 0; 1 , а i2 , k2 0; 1; 2 . Значения i и k в десятичной системе и системе с основаниями 2 и 3 сведем в табл. 1. Таблица 1 i; k 0 1 2 3 4 5 (i2i1 );(k2 k1 ) 00 01 10 11 20 21 В соответствии с формулой (3) ОФК в этом случае записываются следующим образом: W (k , i ) W2k1i1W3k2i2 (1) k1i1 W3k2i2 . Подставляя сюда все значения разрядов, получим систему из шести ОФК, которую представим в виде следующей матрицы значений с минимальными фазами: 1 1 1 1 1 1 W6 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 3 2 3 2 3 1 3 1 3 2 3 2 3 W W W32 W W W32 W W W31 W W W31 1 1 W32 . W32 W31 W31 (19) Элементы W31 и W32 имеют следующие значения: W31 1/ 2 j Теперь вычислим ОФК 3 3 ; W32 1/ 2 j . 2 2 с помощью функций Радемахера. В соответствии с выражением (18) они будут равны: R(2, i) Wpi11 W2i1 {1, 1, 1, 1, 1, 1}, R(1, i) Wpi22 W3i1 {1, 1, W31 , W31 , W32 , W32}. После этого, пользуясь формулой (18), выразим все ОФК через эти функции: 7 W (0, i) 1; W (1, i ) W (01, i ) R(2, i ); W (2, i ) W (10, i ) R(1, i ); W (3, i ) W (11, i) R(2, i) R(1, i); W (4, i) W (20, i) R 2 (1, i); W (5, i) W (21, i) R(2, i) R 2 (1, i). Вычисление по этим формулам приводит к той же матрице значений ОФК (19). _______________ . _______________ Возможен еще один способ вычисления приведенных ОФК. Он следует из матричной интерпретации выражения (3) в виде кронекеровского произведения соответствующих матриц ДЭФ: Wp p 1 2 ... pn Dp1 Dp2 ... Dpn , (20) где Dpm {Wpkmmim }. (21) Поскольку такая система ОФК может быть выражена с помощью кронекеровского произведения, то ее можно назвать системой ОФККронекера. В частном случае, при p1 p2 ... pn p она переходит в систему ВКФ-Адамара [2]. Пример 2. Вычислить матрицу ОФК кронекеровским способом для условия предыдущего примера. Решение. В этом случае W6 W23 = D2 D3 , где 1 1 D2 , 1 1 1 1 1 1 D3 1 W3 W32 . 1 W32 W31 Поэтому D2 D2 W6 D2 W31 D2 D2 W32 D2 1 1 1 1 D2 1 1 W32 D2 1 1 W 1 D2 1 1 1 1 1 1 1 1 1 1 1 3 1 3 2 3 2 3 1 3 W32 W W W W31 W32 W W32 W31 W W32 W31 1 1 W32 . W32 W31 W31 (22) Матрицы (19) и (22) совпадают. _______________ . _______________ 8 Кронекеровская система является только одной из возможных полных базисных систем, n exp( j 2 (kmim / pm )) использующих можно ОФК. построить На целое основе семейство функций базисов с m 1 симметрическими и унитарными матрицами, число которых зависит от конкретной величины N. Причем возможностей для организации базисных систем здесь больше, чем в ВКФ. Можно отметить, кроме рассмотренных, по меньшей мере еще два способа построения таких базисов. Первый способ основывается на использовании формул (2), (18) или (20) для всех возможных комбинаций сомножителей в произведении p1 p2 ... pn для N. Если все сомножители pm разные, то он позволяет получить n! различных базисных систем ОФК- Кронекера. Пример 3. Построить все системы ОФК-Кронекера для N=6. Решение. В этом случае возможны два варианта разложения N=6 на множители: N 2 3 и N 3 2 . Для первого варианта система ОФК- Кронекера получена и приведена в предыдущих примерах. Для второго варианта имеем W6 W32 = D3 D2 . Поэтому D W6 3 D3 1 1 D3 1 D3 1 1 1 1 1 3 2 3 1 2 3 1 3 1 1 1 3 2 3 W W 1 W W W 1 W 1 1 1 1 W31 W32 1 W31 W32 1 W32 W31 1 W32 W31 . 1 W32 W31 (23) Полученная матрица (23) отличается от матрицы (22). _______________ . _______________ Второй способ формирования базисных ОФК-систем состоит в перестановке строк и столбцов любой матрицы ОФК-Кронекера, полученной первым способом, по закону определенной замкнутой операции над индексами k и i ОФК (напомним, что замкнутой считается такая операция над индексом, результат которой, изменяя порядок следования значений 9 индекса, не меняет самого диапазона его изменения, т.е. результирующий индекс пробегает те же значения, что и исходный, но в другой последовательности). Такими операциями являются, например, инверсия кода индекса и кодирование Грея индекса, обобщенные на случай многоосновной системы счисления. Рассмотрим эти операции. Если число k в многоосновной системе счисления представляется выражением (1), то инверсное ему число k в этой же системе счисления записывается следующим образом: n _ k kn 1 m M 0 M 1 ... M m 1 (24) m 1 где M m pn1m , M 0 pn1 1. Обобщенная инверсия, как и двоичная, и p-ичная инверсии, сводится к записи разрядов кода числа k в обратном порядке. Однако веса разрядов в многоосновной системе, где диапазоны изменения разрядов km в общем случае не совпадают, должны быть изменены по закону (24). При p-ичную инверсию и p1 p2 ... pn p обобщенная инверсия переходит в _ инверсное число k имеет более привычный вид записи: _ n k kn 1 m p m 1 . m 1 Пример 4. Найти инверсные значения целочисленного индекса, принадлежащего диапазону [0,6). Решение. В этом случае 6=2· 3, поэтому p1 2, а p2 3 . В системе _ счисления с основаниями 2 и 3 числа k и k будут иметь следующий вид: k (k2 k1 ) 2k2 k1 , k (k1k2 ) 3k1 k2 . Их значения в различных формах записи приведены в табл. 2. k (k2 k1 ) (k1k2 ) _ k ( k2 k1 ) k 0 00 00 0 1 01 10 3 2 10 01 1 3 11 11 4 4 20 02 2 Таблица 2 5 21 12 5 00 0 01 1 11 3 10 2 20 4 21 5 _______________ . _______________ 10 Код Грея k числа вычисляется по k в многоосновной системе счисления следующему km (km km1 ) (mod pm ), m 1, 2, ..., n; kn1 0 , алгоритму: который отличается от соответствующего алгоритма в системе счисления с одним основанием только использованием различных модулей при формировании разрядов кода. Пример 5. Найти значения кода Грея для индекса k предыдущего примера. Решение. Так как в этом случае p1 2, p2 3 , то k1 (k1 k2 ) (mod 2), а k2 k2 (mod 3) . Результаты расчетов по этим формулам приведены в табл. 2. ______________ . _______________ Рассмотренные операции позволяют получить новые ортонормированные мультипликативные системы ОФК. полные Для этого необходимо в матрице любой известной системы ОФК осуществить сначала перестановку строк, а затем – столбцов (можно и наоборот) по закону этих операций. В результате будут получены новые симметрические и унитарные матрицы ОФК. Перестановка только строк или только столбцов исходной матрицы приводит к несимметрическим результирующим матрицам. Продемонстрируем процесс формирования симметрических матриц на конкретных примерах. Пример 6. Построить матрицу ОФК из матрицы ОФК-Кронекера (19) с использованием операции обобщенной инверсии индексов. Решение. В соответствии с данными табл. 2 произведем следующее переупорядочение матрицы (19): первую строку перемещаем на место второй, а вторую – на место четвертой, третью – на место первой, четвертую – на место третьей, а нулевую и пятую строки оставляем на своих местах. В результате получается следующая промежуточная матрица: 11 1 1 1 1 1 1 1 1 1 1 1 1 1 W31 1 1 W32 1 W31 W32 W31 1 W31 W32 1 1 1 W32 W32 W31 W31 W31 W32 W32 W32 W31 Эта матрица несимметрическая. Для получения из нее симметрической матрицы необходимо выполнить аналогичные перестановки её столбцов. Тогда будет получена следующая итоговая матрица: 1 1 1 W 1 3 1 1 W6 2 1 W3 1 W31 2 1 W3 1 1 1 W 2 3 1 1 1 3 2 3 1 3 1 1 3 W 1 1 W W32 1 W W31 1 W W32 1 W32 1 . W31 W32 W31 (25) Эта матрица ОФК является симметрической и отличается от исходной. _______________ . _______________ Пример 7. Построить матрицу ОФК из той же матрицы ОФК- Кронекера (19) с использованием кодирования Грея. Решение. В соответствии с данными табл. 2 в этом случае процедура перестановок существенно проще: нулевые, первые, четвертые и пятые строки и столбцы остаются на месте, а вторые и третьи меняются местами. В итоге получается следующая матрица ОФК: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 W3 W3 W32 W6 1 1 2 1 1 W3 W3 W3 1 1 W32 W32 W31 2 2 1 1 1 W3 W3 W3 1 1 W32 . W32 W31 W31 (26) Эта матрица так же симметрическая и по структуре не совпадает ни с матрицей (19), ни с матрицей (25). _______________ . _______________ Результаты приведенных примеров показывают, что все матрицы, полученные различными способами, отличаются друг от друга по структуре, 12 хотя и обладают одинаковыми общими свойствами. Это говорит о том, что рассмотренные способы не подменяют друг друга и являются инструментом для построения новых полных ортонормированных и мультипликативных базисных систем. Перейдем теперь к синтезу алгоритмов быстрого преобразования в базисе обобщенных функций Крестенсона (БПК). Вариантов построения БПК существует еще больше, чем быстрых преобразований в базисе ВКФ, поскольку возможно образование значительно большего числа систем ОФК. В качестве примера приведем методы синтеза БПК только для ОФК-систем Кронекера. Остановимся сначала на случае представления числа отсчетов сигнала в виде произведения двух сомножителей: N p1 p2 , где p1 и p2 являются целыми положительными числами. Преобразуем одномерный массив x(i ) в двумерную таблицу с x(i1 , i2 ) помощью i i1 p1i2 (i1 0, 1, ..., p1 1; i2 0, 1, ..., p2 1) . Эта подстановки подстановка соответствует представлению величины i в позиционной системе счисления с основаниями p1 и p2 при числе разрядов n 2 . Тогда прямые ДПФ в базисе ОФК (14) без нормирующего множителя 1/ N можно записать так: p1 1 p2 1 X (k ) x(i1 p1i2 )W (k , (i1 p1i2 ) / N ) i1 0 i2 0 p1 1 p2 1 x(i , i )W i1 0 i2 0 1 2 (k , (i1 p1i2 ) / N ). Рассмотрим спектральные составляющие с номерами, изменяющимися по такому же закону, k k1 p1k2 , k1 0, 1, ..., p1 1; что и номера отсчетов, т.е. с k2 0, 1, ..., p2 1: p1 1 p2 1 X (k1 p1k2 ) X (k1 , k2 ) x(i1 , i2 )W (k1 p1k2 , (i1 p1i2 ) / N ). (27) i1 0 i2 0 Используя свойства позиционных кодов в системе с переменным основанием, можно записать, что i1 p1i2 i1 (){ p} p1i2 , k1 p1k2 k1 (){ p} p1i2 , (28) где ( ){ p} является, как и ранее в выражении (8), обозначением операции поразрядного суммирования по переменному модулю. Тогда в соответствии 13 со свойствами мультипликативности и двойственности ОФК выражение (27) можно преобразовать к виду p1 1 X (k1 , k2 ) W (k1 , i1 / N )W ( p1k 2 , i1 / N ) i1 0 p2 1 x(i , i )W 1 i2 0 2 (k1 , p1i2 / N )W ( p1k2 , p1i2 / N ). Дальнейшее упрощение этого выражения зависит от значений приведенных в нем ОФК. Чтобы их получить, воспользуемся записью ОФК в виде формулы (2). Тогда имеем k1i1 0 0 )] W ( k1 , i1 / p) W p1 k1i1 , p1 p2 0i k 0 W ( p1k1 , i1 / N ) exp[ j 2( 1 1 )] 1, p1 p2 k 0 0i W (k1 , p1i2 / N ) exp[ j 2( 1 2 )] 1, p1 p2 0 0 k2i2 W ( p1k2 , p1i2 / N ) exp[ j 2( )] W (k2 , i2 / p2 ) W p2k2i2 . p1 p2 W (k1 , i1 / N ) exp[ j 2( Учитывая эти соотношения, получим следующую запись общего спектра сигнала: p1 1 p2 1 X (k1 p1k2 ) X (k1 , k2 ) [ x(i1 , i2 )W p2k2i2 ]W p1 k1i1 , k1 0, 1, ..., p1 1; k2 0, 1, ..., p2 1. (29) i1 0 i2 0 Полученное выражение представляет собой алгоритм БПК для случая разложения N на два множителя. Его можно записать в более удобной для вычислений форме, если обозначить внутреннюю сумму в выражении (29) в виде двумерной величины q (i1 , k2 ) p2 1 x(i , i )W i2 0 1 2 k2i2 p2 , i1 0, 1, ..., p1 1; k2 0, 1, ..., p2 1 . (30) Тогда полный спектр будет равен p1 1 X (k1 p1k2 ) X (k1 , k2 ) q (i1 , k2 )W p1 k1i1 , k1 0, 1, ..., p1 1 . (31) i1 0 Последовательность действий в таком алгоритме такова: сначала одномерный сигнал преобразуется в двумерную таблицу x(i1 , i2 ) размерностью p1 p2 , после чего с помощью p2 -точечных ДПФ по каждой из её строк вычисляется таблица промежуточных данных {q(i1 , k2 )} , из которой затем путем выполнения p1 -точечных ДПФ по всем её столбцам 14 формируется таблица искомых спектральных коэффициентов { X (k1 , k2 )} . Переход от одномерных массивов к двумерным таблицам и обратно осуществляется по правилам взаимосвязи одномерных и многомерных индексов. Поскольку в этом алгоритме БПК отсчеты сигнала и спектра по строкам соответствующих таблиц располагаются с прореживанием, то он является алгоритмом с прореженным порядком следования отсчетов сигнала и спектра (алгоритмом первого типа). Для БПК (29) число комплексных сложений АБ и умножений М Б равно: (32) AБ p1 p2 ( p1 p2 2) N ( p1 p2 2) , M Б p2 ( p1 1) 2 p1 ( p2 1) 2 . (33) В последней оценке числа умножений учтено, что умножения на единичные значения элементов матрицы ДЭФ, расположенные в её нулевой строке и нулевом умножений столбце, являются тривиальными. Исключение из алгоритма на другие тривиальные значения ДЭФ приводит к оптимизированным вариантам БПК. Для них оценка числа умножений еще более уменьшается. Пример 8. Записать алгоритм БПК-Кронекера для N 6 . Решение. Пусть p1 2 и p2 3 . Тогда массив сигнала x(i ) превращается в таблицу x(i1 , i2 ) x(i1 2i2 ), i1 0, 1; i2 0, 1, 2 : x(0) x(2) x(4) x(1) x(3) x(5) . Алгоритм вычисления двумерного спектра X (k1 , k2 ) в соответствии с общим алгоритмом (29) будет выглядеть так: 1 2 X (k1 , k2 ) [ x(i1 , i2 )W3 k2i2 ](1) k1i1 , k1 0, 1; k2 0, 1, 2, i1 0 i2 0 где учтено, что W2 k i (1) k i (1)k i . Промежуточные величины 11 11 11 2 q(i1 , k2 ) x(i1 , i2 )W3 k2i2 i2 0 и алгоритм БПК: 1 X (k1 , k2 ) q(i1 , k2 )(1) k1i1 q(0, k2 ) q(1, k2 )(1) k1 i1 0 15 Дальнейшую последовательность действий можно представить в виде следующих двух этапов. Этап 1. Расчет промежуточных величин: q(0, k2 ) x(0, 0) x(0,1)W3 k2 x(0, 2)W32 k2 x(0) x(2)W3 k2 x(4)W32 k2 , q(1, k2 ) x(1, 0) x(1,1)W3 k2 x(1, 2)W32 k2 x(1) x(3)W3 k2 x(4)W32 k2 . Принимая k2 0, 1 , 2, получим q(0, 0) x(0) x(2) x(4), q(0,1) x(0) x(2)W31 x(4)W32 , q(0, 2) x(0) x(2)W32 x(4)W31 , q(1, 0) x(1) x(3) x(5), q (1,1) x(1) x(3)W31 x(5)W32 , q(1, 2) x(1) x(3)W32 x(5)W31. Таблица этих промежуточных величин будет иметь следующий вид: q(0, 0) q(0,1) q(0, 2) q(1, 0) q(1,1) q(1, 2) . Этап 2. Расчет искомого спектра: X (0, k2 ) q(0, k2 ) q(1, k2 ), X (1, k2 ) q(0, k2 ) q(1, k2 ), поэтому при k2 0,1, 2 X (0, 0) q(0, 0) q(1, 0), X (1, 0) q(0, 0) q(1, 0), X (0,1) q(0,1) q(1,1), X (1,1) q(0,1) q(1,1), X (0, 2) q(0, 2) q(1, 2), X (1, 2) q(0, 2) q(1, 2). Этим значениям соответствуют итоговые таблицы X (0, 0) X (1, 0) X (0,1) X (1,1) X (0, 2) X (0) X (1, 2) X (1) X (2) X (3) X (4) . X (5) В алгоритме выполняются 18 сложений и 8 умножений. Расчет по формулам (32), (33) дает 18 сложений и 11 умножений. Меньшее число реальных умножений связано с тем, что используемое в данном примере 2точечное ДПФ выполняется без умножений. Сигнальный граф этого алгоритма приведен на рис. 1а. 16 x(0) x(2) x(4) x(1) x(3) x(5) . . . . . . . . . . . . . . . . . . Х(0) x(0) Х(2) x(1) Х(4) x(2) Х(1) x(3) Х(3) x(4) Х(5) x(5) . . . . . . . . . . . . . . . . . . а) Х(0) Х(1) Х(2) Х(3) Х(4) Х(5) б) Рис. 1. Сигнальный граф полного БПК-Кронекера первого (а) и второго (б) типа для N=9 ____________ . _______________ Если в свою очередь один из сомножителей p1 или p2 также раскладывается на два множителя, то приведенный алгоритм рекурсивно можно применить и для быстрого вычисления p1 -точечных или p2 -точечных ДПФ. Это повлечет за собой дополнительное прореживание сигнала и спектра и, в конечном итоге, к дополнительному сокращению объема вычислений. В общем случае при n N pm , m 1 одномерные массивы x(i) и X ( k ) с помощью подстановок i i1 p1i2 p1 p2 pn 1in i1 ( ){ p} p1i2 ( ){ p} ( ){ p} p1 p1 pn 1in , k k1 p1k2 p1 p2 pn 1kn k1 ( ){ p} p1k2 ( ){ p} ( ){ p} p1 p1 pn 1kn , (34) где im , km 0, 1, ..., pm 1 , преобразуются в многомерные таблицы x(i1 , i2 ,..., in ) и X (k1 , k2 ,..., kn ) , связь между которыми устанавливает следующее аналитическое выражение: p1 1 X (k1 , k2 ,..., kn ) W i1 0 i1k1 p1 p2 1 W i2 0 i2 k2 p2 pn 1 x(i1 , i2 ..., in )W pnin kn , km 0,1,..., pm 1; m 1, 2,..., n. (35) in 0 17 Это и есть полный алгоритм БПК-Кронекера с прореженным порядком следования отсчетов сигнала и спектра, содержащий ( n 1) уровней прореживания. Реализация полного алгоритма БПК потребует выполнения n AБ N ( pm n), m 1 n M Б N ( pm 1) 2 / pm (36) m 1 сложений и умножений. Некоторые из этих умножений могут оказаться тривиальными. Их исключение из алгоритма позволяет еще больше оптимизировать его. В алгоритмах БПК-Кронекера (29) и (35) можно поменять последовательность суммирования и порядок следования индексов, в результате чего будут получены другие модификации БПК, обладающие такими же реализационными характеристиками. В частности, если порядок следования индексов и сумм изменить на обратный, что приведет к обработке транспонированных таблиц сигнала и спектра, то можно получить второй тип алгоритма БПК-Кронекера с естественным порядком следования отсчетов сигнала и спектра. Для N p1 p2 такой алгоритм имеет следующий вид: X (k2 , k1 ) p2 1 p1 1 [ x(i , i )W 2 i2 0 i1 0 1 i1k1 p1 ]W p2i2 k2 , k2 0, 1, ..., p2 1; k1 0,1, ..., p1 1, (37) а для N p1 p2 ... pn он представляется следующим образом: X (kn , kn 1..., k1 ) pn 1 W in 0 in kn pn pn1 1 W in1 0 in1kn1 pn1 p1 1 x(in , in 1 , , i1 )W p1 i1k1 , i1 0 (38) knm1 0, 1, ..., pnm1 1; m 1, 2, ..., n. Пример 9. Записать алгоритм БПК-Кронекера второго типа для N=6. Решение.Примем p1 2, p2 3 .Таблица сигнала x(i2 , i1 ) x(2i2 i1 ), i2 0, 1, 2; i1 0, 1 имеет следующий вид x(0) x(1) x(2) x(3) , x(4) x(5) а алгоритм БПК выглядит так: 2 1 X (2k2 k1 ) X (k2 , k1 ) [ x(i2 , i1 )(1)i1k1 ]W3i2 k2 i2 0 i1 0 2 q(i , k )W i2 0 2 1 i2 k2 3 , k2 0, 1, 2; k1 0, 1, 18 где q(i2 , k1 ) x(i2 , 0) x(i2 ,1)(1) k1 . Этап 1. Расчет промежуточных величин q(i2 , k1 ) : q(0, 0) x(0, 0) x(0,1) x(0) x(1); q(1, 0) x(1, 0) x(1,1) x(2) x(3); q(2, 0) x(2, 0) x(2,1) x(4) x(5); q(0,1) x(0, 0) x(0,1) x(0) x(1); q(1,1) x(1, 0) x(1,1) x(2) x(3); q(2,1) x(2, 0) x(2,1) x(4) x(5). Они образуют таблицу q(0, 0) q(0,1) q(1, 0) q(1,1) . q(2, 0) q(2,1) Этап 2 . Расчет спектра X (k ) : X (0, 0) q(0, 0) q(1, 0) q(2, 0), X (0,1) q(0,1) q(1,1) q(2,1), X (1, 0) q(0, 0) q(1, 0)W31 q(2, 0)W32 , X (1,1) q(0,1) q(1,1)W31 q(2,1)W32 , X (2, 0) q(0, 0) q(1, 0)W32 q(2, 0)W31 , X (2,1) q(0,1) q(1,1)W32 q(2,1)W31. Результирующие таблицы имеют вид: X (0, 0) X (1, 0) X (2, 0) X (0,1) X (0) X (1,1) X (2) X (2,1) X (4) X (1) X (3) . X (5) Сигнальный граф этого алгоритма приведен на рис. 1б. По сложности он совпадает с алгоритмом первого типа. _______________ . _______________ В выражении для N порядок сомножителей можно изменить. Это приводит к БПК для других систем ОФК, отличных от систем Кронекера. Таким образом, полученные результаты, включая методы формирования различных базисных систем на основе обобщенных функций Крестенсона в системах счисления с переменными основаниями, их свойства и быстрые алгоритмы вычисления спектра, составляют теоретическую основу для решения проблемы выбора оптимального базиса для широкого круга задач 19 обработки сигналов (фильтрации, распознавания, сжатия, кодирования и т.п.) в условиях действия жестких ограничений на вычислительную сложность алгоритмов обработки. Особенно перспективным может оказаться применение этих базисов для исследования { p} -линейных систем и { p} стационарных случайных процессов, использующих обобщенный временной сдвиг в виде поразрядного модулярного сложения с различными модулями. СПИСОК ЛИТЕРАТУРЫ 1. Залманзон Л.А. Преобразования Фурье, Уолша, Хаара и их применение в управлении, связи и других областях. – М.: Наука, 1989. – 496 с. 2. Трахтман А.М., Трахтман В.А. Основы теории дискретных сигналов на конечных интервалах. – М.: Сов. радио, 1975.- 208 с. 3. Власенко В.А., Лаппа Ю.М., Ярославский Л.П. Методы синтеза быстрых алгоритмов свертки и спектрального анализа сигналов. - М.: Наука, 1990. - 180с. 20