В.В. Сюзев. А.Я. Савельев. Д.Ю. Гудзенко. МЕТОДЫ

advertisement
УДК 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 pmkmim ].
Эти матрицы значений ОФК являются матрицами с полными фазами.
Вычитая в них из степеней 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 ... pn1} .
Соответствующие ему функции
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  W23 = 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  W32 = 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  pn1m , M 0  pn1  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  km1 ) (mod pm ), m  1, 2, ..., n; kn1  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 p1 k1i1 ,
p1
p2
0i k 0
W  ( p1k1 , i1 / N )  exp[  j 2( 1  1 )]  1,
p1
p2
k 0 0i
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 p2k2i2 .
p1
p2
W  (k1 , i1 / N )  exp[ j 2(
Учитывая эти соотношения, получим следующую запись общего спектра
сигнала:
p1 1 p2 1
X (k1  p1k2 )  X (k1 , k2 )   [  x(i1 , i2 )W p2k2i2 ]W p1 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 p1 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)W32 k2  x(0)  x(2)W3 k2  x(4)W32 k2 ,
q(1, k2 )  x(1, 0)  x(1,1)W3 k2  x(1, 2)W32 k2  x(1)  x(3)W3 k2  x(4)W32 k2 .
Принимая k2  0, 1 , 2, получим
q(0, 0)  x(0)  x(2)  x(4),
q(0,1)  x(0)  x(2)W31  x(4)W32 ,
q(0, 2)  x(0)  x(2)W32  x(4)W31 ,
q(1, 0)  x(1)  x(3)  x(5),
q (1,1)  x(1)  x(3)W31  x(5)W32 ,
q(1, 2)  x(1)  x(3)W32  x(5)W31.
Таблица этих промежуточных величин будет иметь следующий вид:
 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 pnin 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 p2i2 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
pn1 1
W
in1  0
 in1kn1
pn1
p1 1
  x(in , in 1 , , i1 )W p1 i1k1 ,
i1  0
(38)
knm1  0, 1, ..., pnm1  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 ]W3i2 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)W31  q(2, 0)W32 ,
X (1,1)  q(0,1)  q(1,1)W31  q(2,1)W32 ,
X (2, 0)  q(0, 0)  q(1, 0)W32  q(2, 0)W31 ,
X (2,1)  q(0,1)  q(1,1)W32  q(2,1)W31.
Результирующие таблицы имеют вид:
 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
Download