ГЛАВА 4 ПРЕОБРАЗОВАНИЯ ФУРЬЕ В КЛАССИЧЕСКИХ БАЗИСАХ 4.1. Системы дельта-функций, единичных функций

advertisement
ГЛАВА 4
ПРЕОБРАЗОВАНИЯ ФУРЬЕ В КЛАССИЧЕСКИХ БАЗИСАХ
4.1. Системы дельта-функций, единичных функций
и функций Котельникова
Спектры, связанные с различными базисными системами функций,
обладают рядом общих свойств, обусловленных свойствами используемого
функционального пространства. К таким свойствам относятся, например,
линейчатость спектра, его сходимость к нулю, связь спектра с
распределением энергии или мощности сигнала. Кроме них спектру могут
быть присущи индивидуальные свойства, отражающие специфические
особенности конкретных базисных систем. К их числу можно отнести
наличие нулевых составляющих в спектре, формульное описание спектров
конкретных сигналов, возможность построения быстрых вычислительных
процедур для анализа спектра и т.п. Такие локальные свойства могут иметь
весьма важное значение для обработки сигналов, поскольку благодаря им
удается находить новые методы решения традиционных задач обработки, а
так же ставить и решать новые задачи обработки сигналов. Кроме того,
локальные свойства спектров могут влиять на реализационные
характеристики спектральных алгоритмов обработки, связанные с их
точностью и вычислительной сложностью.
Учитывая то, что систем базисных функций может быть бесчисленное
количество, становится ясным, что выбор базиса при спектральном
представлении сигналов является серьезной математической и прикладной
задачей. Общей единой методики синтеза базисных систем не существует.
Ряд из них явились результатом решения математических и физических
задач, не связанных со спектральной обработкой. Примером могут служить
системы тригонометрических и полиномиальных функций, являющихся
решением соответствующих дифференциальных уравнений [59]. Однако
существуют и другие способы построения базисов. Учитывая сказанное,
имеет смысл рассмотреть наиболее распространенные системы базисных
функций. В этой главе остановимся на системах, применение которых давно
стало классикой спектральной обработки.
188
Начнем с систем, которые можно построить на основе дельтафункций. Две дельта-функции δ(t-τ1) и δ(t-τ2), сдвинутые на различное
расстояние по оси времени, являются ортогональными. Система таких
функций {δ(t-τ)}, сдвинутых относительно друг друга на бесконечно малые
интервалы времени, будет полной ортонормированной базисной системой,
пригодной для разложения сигналов произвольной формы на любом
интервале их определения. При этом, в силу непрерывности переменных t и
τ, преобразования Фурье по таким функциям будут носить интегральный
характер и, например, для конечного интервала [tmin, tmax) принимают
следующий вид:
x(t ) 
tmax

X ( ) (t   )d ,
tmin
1
X ( ) 
T
tmax

x(t ) (t   )dt.
(4.1)
tmin
Здесь X(τ) является спектральной плотностью сигнала в базисе дельтафункций.
Если учесть избирательное свойство дельта-функций и единичное
значение их площади (см. §2.2), то из последнего выражения можно
получить, что
t
1 max
X ( )  x( )   (t   )dt  x( ),
T tmin
(4.2)
т.е. в этом базисе спектральная плотность сигнала совпадает с самим
сигналом. Отсюда следует, что представление сигнала во временной области
является частным случаем более общего представления в спектральной
области.
Следовательно,
результаты
решения
задач
обработки
спектральными методами в произвольном базисе будут носить обобщенный
характер. Из них, используя конкретные базисные системы, можно получать
различные частные решения, в том числе и во временной области.
Если учесть равенство (4.2) в обратном преобразовании Фурье (4.1), то
получим, что
x(t ) 
tmax

x( ) (t   )d
tmin
189
т.е. обратное интегральное преобразование Фурье в базисе сдвинутых дельтафункций совпадает с динамическим описанием сигнала на основе дельтафункций (см. §2.2). Это говорит о математическом единообразии отдельных
форм аналитического описания сигналов.
Можно построить еще одну базисную систему, обладающую теми же
свойствами, что и система, использующая дельта-функции. Введем
непрерывную единичную функцию  (t ), представляющую собой импульс
бесконечно малой длительности с единичными амплитудой, площадью и
мощностью
1, t  0,
0, t  0,
 (t )  
1
T
P
1
T
(4.3)
tmax
  (t )dt  1,
tmin
tmax

2
(t )dt  1.
(4.4)
(4.5)
tmin
Система из бесконечного числа таких функций  (t   ) , сдвинутых на
бесконечно малое время относительно друг друга, будет ортонормированной
и полной. Интегральные преобразования Фурье по этим функциям будут
аналогичны интегральным преобразованиям Фурье в базисе дельта-функций:
x(t ) 
tmax

X ( ) (t   )d ,
tmin
t
1 max
X ( )   x(t ) (t   )dt .
T tmin
Используя введенное определение функции  (t )
(4.3), а также
нормированность ее площади к единице (4.4), из последнего выражения не
трудно получить равенство (4.2), подтверждающее совпадение временного и
спектрального способов описания сигналов и в этом базисе.
Системы, построенные на основе дельта-функций и единичных
функций, являются формальными. Это следует из того факта, что любую из
этих функций можно представить в виде полусуммы простых четных Ч(t,τ) и
нечетных H(t,τ) функций, вид которых зависит от интервала определения.
Например, для симметричного интервала [-T/2, T/2) эти простые
функции равны
190
2 (t ),   0,
Ч (t , )  
 (t   )   (t   ),   0,
H (t , )   (t   )   (t   ),
2 (t ),   0,
Ч (t , )  
 (t   )   (t   ),   0,
H (t , )   (t   )   (t   ),
а графики их изменения представлены на рис. 4.1. и 4.2.
Ч(t,τ)
 (t+ τ)
-Т/2 - τ
-Т/2
 (t- τ)
τ
0
Н(t,τ)
-τ
Т/2
t
 (t- τ)
τ
0
Т/2
t
- (t+ τ)
Рис. 4.1. Четные Ч(t,τ)и нечетные H(t,τ)
функции системы дельта-функций
Ч(t,τ)
.
 (t+ τ)
1
-Т/2 - τ
0
Н(t,τ)
1
-Т/2
-τ
.
-  (t+ τ)
0
.
 (t- τ)
τ
.
Т/2
t
τ
Т/2
t
 (t- τ)
-1
Рис. 4.2. Четные Ч(t,τ)и нечетные H(t,τ) функции
системы единичных функций
191
На основе четных и нечетных систем простых функций {Ч(t,τ)} и
{H(t,τ)} можно построить также и другие родственные системы. Составные
системы {Ч(t,τ), H(t,τ)} тривиальны. Разложение сигнала по этим системам
есть просто сумма разложений четной и нечетной частей сигнала по
системам {Ч(t,τ)} и {H(t,τ)} соответственно. Комплексные базисные системы
будут иметь следующий вид:
 (t ,   
 (t   )   (t   )

2
 (t   )   (t   )
 (t ,   

2
j
j
 (t   )   (t   ) 
2
,

 (t   )   ( t   ) 
2


и могут быть представлены еще в показательной и тригонометрической
формах записи. Составные и комплексные системы на основе дельтафункций и единичных функций не нашли практического применения.
Существует еще одна система базисных функций, для которой
выполняется совпадение спектрального и временного представлений
сигналов. Эта система используется для разложения сигналов с
ограниченным частотным спектром [-ωв, ωв], определенных в общем случае
на бесконечном интервале времени (-  ,  , ). Она строится на основе
функций Котельникова
 (k , t ) 
sin  в (t  k /  в )
, k  0,  1,  2, ... .
 в (t  k /  в )
(4.6)
Эти функции ортогональные, но не нормированы. Их норма равна π/ωв.
Бесконечная совокупность таких функций образует базис Котельникова в
2
линейном функциональном LE пространстве низкочастотных сигналов с
частотными спектрами, ограниченными сверху значением ω в. Каждая
функция  (k , t ) этого базиса называется еще отсчетной функцией.
Коэффициенты ряда Фурье в этом базисе равны

X (k )  в



x(t ) 

sin в (t  k / в )
dt  x(k / в ),
в (t  k / в )
поэтому сам ряд Фурье принимает вид ряда Котельникова
x(t ) 


k 
x(k t )
sin в (t  k / в )
.
в (t  k / в )
192
(4.7)
Отличие представлений сигналов с помощью рядов Фурье в
рассмотренных базисах состоит в следующем. Если использовать системы
дельта-функций или единичных функций и принять в них   k t , то с
помощью соответствующих рядов Фурье можно восстановить однозначно
функцию сигнала x(t) только в точках tk  k t . Для восстановления сигнала
во всех временных точках необходимо устремить t к 0. Это будет
соответствовать неограниченному спектру сигнала. Для ограниченного
спектра такой выбор интервала t избыточен. Его можно выбрать по
 / в
формуле Котельникова равном
и
затем рядом Котельникова
представить сигнал x(t) с любой требуемой точностью на всем временном
интервале. Связано это с тем, что ряд Котельникова является
интерполирующим рядом, который в точках tk=kπ/ωв точно совпадает со
значениями сигнала x(k / в ) , а в промежутке между ними обеспечивает
аппроксимацию сигнала теоретически с любой степенью точности. Поэтому
этот ряд можно использовать для восстановления непрерывного сигнала по
заданным его отсчетным значениям, выбранным в моменты, кратные k / в .
Ряды Фурье по системам дельта- и единичных функций интерполирующими
свойствами не обладают.
Рассмотренные системы базисных функций пригодны для
представления непрерывных сигналов. Для спектрального анализа
дискретных решетчатых сигналов можно использовать системы дискретных
дельта-функций и единичных функций, получаемых дискретизацией
соответствующих непрерывных функций. Для этого необходимо из систем
дельта-функций или единичных функций выбрать N первых функций со
значениями
  k t , k  0, 1, ... N  1 на
всем
интервале
определения
длительностью Т. При этом величины N и Т должны быть связаны
соотношением Т=N∆t. Кроме того, при дискретизации дельта-функций
амплитуда получаемых дискретных функций принимается равной единице. В
результате в обоих случаях будет получена одна и та же система дискретных
единичных функций {δ(i-k)} , о которых мы уже говорили в § 2.2.
Функции δ(i-k) являются ненормированными. Их мощность равна
Pk 
1
N
N 1

2
(i  k ) 
i 0
193
1
.
N
Пара дискретных преобразований Фурье в базисе {δ(i-k)} имеет следующий
вид
N 1
x(i )   x(k ) (i  k ),
k 0
1 N 1
 x(i) (i  k ),
Pk  N i 0
Учитывая, что функции δ(i-k) отличны от нуля только в точке i=k, где они
X (k ) 
равны единице, то из последнего выражения следует, что
N
X (k ) 
N
N 1
 x(i) (i  k )  x(k ).
i 0
Таким образом, в базисе дискретных единичных функций спектр
дискретного сигнала совпадает с самим сигналом, поэтому временное
представление дискретных сигналов также можно рассматривать как
частный случай спектрального представления по системе функций {δ(i-k)}.
Система базисных функций {δ(i-k)} является формальной системой.
4.2. Косинусное и синусное преобразования сигналов
Гармонические функции cos(kz) и sin(kz) являются классическим
примером четных Ч(k,z) и нечетных Н(k,z) функций. На их основе могут
быть построены все родственные системы базисных функций, причем для
составной системы используются именно функции cos(kz) и sin(kz), а для
формальной и комплексной систем – функции 2 cos(kz) и 2 sin(kz).
Простые системы {cos(kz)} и {sin(kz)} являются полными
ортогональными системами на интервале [0,π) или любом другом интервале
длительностью π. Для них мощность
1 , при k  0,
Pk  
0,5 , при k  0.
(4.8)
Они могут быть использованы для разложения в ряд Фурье математических
функций с интегрируемым квадратом, определенных на соответствующем
интервале длиной π, в частности, на интервале [0,π). Их можно применять и
при разложении непрерывных сигналов x(t) с односторонним
полуинтервалом определения [0,T/2). Для этого необходимо абстрактную
переменную z в базисных функциях преобразовать по алгоритму (3.27) во
временную переменную t сигнала. Тогда эти системы запишутся следующим
194
2


образом: c o s ( kt ) и

2


sin( kt )  или в виде: {cos(2πft)} и {sin(2πft)}, где
T



T
f=k/T является частотой k-й базисной функции и может определяться двояко:
как число ее знакоперемен на интервале определения и как скорость
нарастания фазы   k, t   2ft . В данном случае оба определения являются
равносильными.
Пара преобразований Фурье в этих базисах записывается с помощью
следующих соотношений


- для cos(
2

kt )  :
T


x(t )   X Ч (k ) cos(
k 0
2
X Ч (0) 
T
X Ч (k ) 
4
Т
T /2

x(t )dt ,
x(t ) cos(
0
(4.9)
0
T /2

2
kt ),
T
2
kt )dt , k  1, 2, ... ;
T
2
- для sin( kt )  :


T

x(t )   X Н (k ) sin(
k 1
2
kt ),
T
(4.10)
X Н (k ) 
4
Т
T /2

x(t ) sin(
0
2
kt ) dt , k  1, 2, ... .
T
Выражения (4.9) и (4.10) определяют обратное и прямое косинусное и
синусное
преобразования
непрерывных
односторонних
сигналов
соответственно. Равенства Парсеваля
2
T
T /2

O
1  2
1  2
x (t )dt  X (0)   X Ч (k )   X Н (k )
2 k 1
2 k 1
2
2
Ч
подтверждают полноту этих систем.
Путем решетчатой дискретизации базисных функций из них можно
получить соответствующие дискретные преобразования Фурье, пригодные
для представления решетчатых сигналов x(i), определенных на дискретном
полуинтервале [0,N/2). Для дискретизации базисных систем используем
приведенную ранее процедуру Трахтмана. В соответствии с ней для
195
2
определения моментов дискретизации оси t в косинусной системе cos( kt ) 

T

N
2 Nt 
воспользуемся нулями функции cos 
 порядка . Тогда
2
 T 2 
T
N
(2i  1), i  0, 1, ...,
1
2N
2
t
и дискретная косинусная система приобретает следующий вид:
  2 T (2i  1)      (2i  1) k  
k
cos 
   cos 
.
2 N   
N

  T
(4.11)
Эта система является ортогональной и полной, но не нормированной.
Мощность ее базисных функций такая
же, как и у функций
соответствующей ей непрерывной системы. Пара дискретных косинусных
преобразований Фурье имеет вид:
N
1
2
  k (2i  1) 
x(i )   X Ч (k ) cos 
,
N


k 0
2
X Ч (0) 
N
4
X Ч (k ) 
N
N
1
2
 x(i) ,
(4.12)
i 0
N
  k (2i  1) 
 , k  1, 2,...,  1.
N
2

2

 x(i) cos 
i 0
Для синусной системы sin(

по нулям функции sin(
N
1
2
T
kt )  моменты дискретизации t находятся

2 Nt
 ) и равны
T 2
t
Ti
N
, i  0, 1, ...,
 1. .
N
2
Поэтому дискретная синусная базисная система принимает следующий вид:
  2 Ti     2 ki  
k     sin 
sin 
.
T
N
N





 
(4.13)
Эта система ортогональна и полна на полуинтервале [1,N/2), мощность ее
функций одинакова и равна 0,5. Соответствующие ей ДПФ записываются
так:
N
1
2
 2 ki 
x(i )   X H (k ) sin 
,
 N 
k 1
(4.14)
196
N
1
2
4
 2 ki 
x(i ) sin 

.
N i 1
 N 
Равенства Парсеваля для дискретных косинусных и синусных систем
X H (k ) 
могут быть записаны в следующем объединенном виде:
2
N
N
1
2
x
i 0
2
(i )  X Ч2 (0) 
N
1
2
N
1
2
1
1
X Ч2 (k )   X Н2 (k ).

2 k 1
2 k 1
Обе приведенные ранее непрерывные системы
2


kt ) 
sin(
T


2


cos( kt ) 
T


и
являются непериодическими на интервале [0,T/2), однако
являются периодическими и ортогональными на симметричном интервале
[-T/2, T/2), двойном одностороннем интервале [0,T) и на любом другом
интервале длительностью Т . При этом каждая из них на этих интервалах не
является полной. Полными будут родственные системы, образованные из
этих простых систем: составная, комплексная и формальная.
Составная система, образованная из косинусных и синусных функций,
получила в литературе название тригонометрической системы, комплексная
– комплексной экспоненциальной системы, а формальная легла в основу
базисной системы Хартли [8, 59]. Эти системы, особенно первые две,
находят широкое применение в математике, радиотехнике, автоматике и
вычислительной
технике
при
аппроксимации
и
интерполяции
математических функций и результатов экспериментов, анализе и синтезе
линейных цепей и систем с постоянными и переменными параметрами, при
обработке сигналов. Поэтому рассмотрим их более подробно.
4.3. Тригонометрическая система базисных функций

2  
  2  
kt   и косинусные cos 
kt   системы
 T 
  T 
Простые синусные sin 

ортогональны друг другу на интервале длительностью Т в силу свойств их
четности. По этой же причине каждая из простых систем будет также
ортогональна на двойном интервале Т. Поэтому неполные на интервале Т
простые системы будут дополнять друг друга и образуют составную полную
тригонометрическую систему
197
  2 
 2  
 2
kt  ,sin 
kt    1, sin 
cos 
 T 
 T
  T 

 2
t  , cos 

 T

 4
t  , sin 

 T

 4
t  , cos 

 T

t  ,... .

Эта система является периодической с периодом Т и ненормированной,
поскольку мощность Pk каждой ее k-й функции для k =1, 2, … равна 0,5.
Мощность же функции с номером k=0 равна 1. Поэтому ряд Фурье и
формулы вычислении спектра в этой системе принимают следующий вид:

 2 
 2  
x(t )  X Ч (0)    X Ч (k )cos 
kt   X Н (k )sin 
kt   ,
 T 
 T 
k 1 





2
 2 
X Ч (k )   x(t ) cos 
kt  dt , 
TT
 T 


2
 2  
X Н (k )   x(t ) sin 
kt  dt ,
TT
 T  

k  1, 2, ... .

X Ч (0) 
(4.15)
1
x(t )dt ,
T T
(4.16)
Пределы интегрирования в формулах (4.16) зависят от вида интервала
определения сигнала. Для двустороннего интервала [-T/2, T/2) оно
выполняется в пределах от -Т/2 до Т/2, а для одностороннего интервала [0,T)
– в пределах от 0 до Т. Общий спектр X(m) сигнала в этом базисе
формируется из чередующейся последовательности спектров четных и
нечетных базисных функций:
{X(m)}={XЧ(k), XH(k)}={XЧ(0), XН(1), XЧ(1), ХН(2), ХЧ(2), … }.
Приведенную последовательность простых базисных функций в
полной составной тригонометрической системе часто записывают в другом
порядке:
  2 
 2  
 2 
 2 
 4 
 4 
kt  ,sin 
kt    1, cos 
t  , sin 
t  , cos 
t  , sin 
t  ,... .
cos 
 T 
 T 
 T 
 T 
 T 
  T 
При этом, естественно, меняется порядок следования простых спектров в
общем спектре сигнала. Обычно это не имеет принципиального значения, т.к.
не меняет общей записи ряда Фурье. Поэтому оба вида представления
составной тригонометрической системы одинаково допустимы.
Равенство Парсеваля в этой системе выглядит так:
198
1 2
1 
2
x (t )dt  X Ч (0)    X Ч2 (k )  X Н2 (k )  .

TT
2 k 1
(4.17)
Его выполнение подтверждает полноту тригонометрической системы.
Пример 4.1. Найти тригонометрический спектр линейного сигнала
x(t)=t, определенного на интервале [0, T).
Решение. Расчеты по формулам (4.16) приводят к
следующим
результатам: XЧ(0)=T/2; XЧ(k)=T/(2π2k2), XН(k)=-T/(πk), k=1, 2, … .
_______________ . _______________
Тригонометрический
ряд
Фурье
(4.15)
обеспечивает
среднеквадратическую сходимость для гладких функций с интегрируемым
квадратом. Для функций, содержащих разрывы 1-го рода, в точках разрыва
ряд сходится к величине [x(t+)+x(t-)]/2, где x(t+) и x(t-) – значения функции
при подходе к точке разрыва справа и слева. В окрестностях точек разрыва
ряд носит колебательный характер и его значения могут существенно
отличаться от значений аппроксимируемой функции. В этом проявляется
уже упоминавшееся ранее явление Гиббса.
Для представления дискретных сигналов на полном интервале из N
точек базисные функции тригонометрической системы должны быть
проквантованы по времени. Моменты их дискретизации определяются из
решения уравнения sin(2πNt/2T)=0 и совпадают с моментами дискретизации
простой синусной системы, однако с другим интервалом изменения индекса
i: i=0, 1, …, N-1 либо i  
N
N
N
,   1, ...,  1, 0, 1, ...,  1.
2
2
2
В результате
дискретизации будет получена дискретная составная тригонометрическая
базисная система
  2 k T 
 2 k T     2 
 2  
 i  ,sin 
 i    cos 
ki  , sin 
ki   ,
cos 
 T N    N 
 N 
  T N 
(4.18)
определенная на интервалах [0,N) или [-N/2, N/2) с любым из двух
возможных вариантов порядка следования функций в системе.
Система (4.18) ортогональна на этих интервалах. В силу конечности
системы число нечетных функций (оно равно
четных (их число равно
N
 1 ) в ней на 2 меньше
2
N
 1 ). По этой же причине последняя функция
2
системы (cos(πi)) имеет такую же единичную мощность, как и ее первая
199
функция с нулевым номером. Все остальные базисные функции дискретной
системы имеют ту же мощность, что и аналогичные им непрерывные
функции (Pk=0,5; k=1, 2, …,
N
 1 ).
2
Пример 4.2.
Записать систему дискретных тригонометрических
функций на интервале [0,8) для 1-го варианта упорядочения.
Решение. Система в этом случае будет иметь следующий вид:
cos  ki / 4 ,sin  ki / 4 
 1,sin  i / 4 , cos  i / 4 ,sin( i / 2),cos( i / 2),sin(3 i / 4),cos(3 i / 4),cos( i).
Матрица ее значений выглядит следующим образом:
1

0


1


0
1


0


1

1
1
2
2
2
2
1
1
1
0
2
2
2

2
1
0
1
0
2
2
2

2
1
1
2
2
2
2
1
1
0
0
1
1
1
1
2
2
2
1 
2
0
1
1 
0
2
2
2
2
1
1
1
0
0
0
1

0

1
1
2
2
2
2
1
0
1
0
1
2
2
2

2
1



















(4.19)
.
В ней номер строки является порядковым номером базисной функции в
системе, а номер столбца определяет дискретный момент времени ее
интервала определения. Нумерация строк и столбцов начинается с 0. Простой
проверкой нетрудно убедиться, что условие ортогональности выполняется
для всех строк матрицы базисной системы. Мощности нулевой и седьмой
функций равны по 1, а мощности остальных функций – по 0,5.
_________________ . _________________
Пример 4.3. Построить дискретную систему, аналогичную примеру 4.2,
но на интервале [-4,4).
Решение. Общая запись системы не меняется. Однако матрица
значений будет иметь другой вид (4.20), в ней номер строки задает и номер
базисной функции в системе. Однако связь между номером m столбца
матрицы и номером отсчета i базисной функции иная: i=-4+m, где m=0, 1, …,
200
7.
i
В
общем
случае
при
произвольном
N
номер
отсчета
N
 m, m  0, 1, ..., N  1. Матрицы значений тогда будут размерностью N ×
2
N.
1
1

0  2

2

 1  2

2

0
1

1
0

2

0  2

2

 1
2

1
1
1
1
1 
0
2
2
2
2
1
1
0
0
1
0
1
2
2
2

2
1

1
1
0
2
2
2
2
1
1
0
0
1
2
2
2
1 
2
1
1
0
1 

2 
1
2 

2
0 
2 

0
1 
.
1
0 

2 
1
2 

2 
0
2 

1
1 
1
(4.20)
_______________ . ____________
Сумма элементов каждой строки матрицы значений, кроме нулевой,
равна нулю, а сумма элементов нулевой строки, равна N. Это означает, что
среднее значение всех функций
тригонометрической системы, кроме
нулевой, равно 0, а среднее значение нулевой функции равно 1.
Следует отметить, что формально дискретизацию тригонометрической
системы можно провести проще, не прибегая к процедуре Трахтмана.
Достаточно в формульной записи непрерывных тригонометрических
функций учесть, что T  N t , а t  it . В дискретной системе и время, и
частота являются дискретными величинами.
Дискретный ряд Фурье (обратное ДПФ) в тригонометрическом базисе
имеет следующий вид:
N
1
2

 2 
 2   X  N  cos( i ),
x(i)  X Ч (0)    X Ч (k ) cos 
ki   X H (k )sin 
ki    Ч  
(4.21)
2
 N 
 N 
k 1 
а формулы вычисления спектра (прямое ДПФ) записываются следующим
образом:
1 N 1
 N  1 N 1
X Ч (0)   x(i ) ; X Ч     x(i ) cos( i ),
N i 0
 2  N i 0
201
2 N 1
N
 2 
 2 
x
(
i
)
cos
ki
X
(
k
)

x(i) sin 
ki  , k  1, 2, ...,  1.



 , Н
N i 0
2
 N 
 N 
i 0
(4.22)
Общий тригонометрический спектр X(m) дискретного сигнала
X Ч (k ) 
2
N
N 1
образуется из упорядоченной последовательности составляющих ХЧ(k) и
ХН(k) в зависимости от принятого порядка следования функций в системе.
Например, для первого способа упорядочения функций

N 
N 
 N 
 1 , X Ч   1 , X Ч    .
2

2

 2 
 X (m)   X Ч (0), X Н (1), X Ч (1),..., X Н 

Пара ДПФ (4.21) и (4.22) устанавливает математическое
взаимооднозначное соответствие между дискретными функциями x(i) и
X(m).Физическое их равноправие иллюстрируется равенством Парсеваля
N
1
2
N 1
1
N 1
x 2 (i )  X Ч2 (0)  X Ч2      X Ч2 (k )  X Н2 (k )  ,
(4.23)

N i 0
 2  2 k 1
которое подтверждает также полноту дискретной тригонометрической
системы.
Пример 4.4. Найти тригонометрический спектр линейного сигнала
x(i)=i на интервале [0,8).
Решение. Расчеты по формулам (4.22) с использованием матрицы (4.19)
приводят к следующему результату:
 X (m)  3,5; (1 

2);  1;  1;  1;(1  2 );1;  0,5 .
Совпадения левой и правой частей равенства Парсеваля (4.23) в этом случае
подтверждает его справедливость и правомочность базисной системы (4.19).
_______________ . _____________
4.4. Системы комплексных экспоненциальных базисных функций
2 
kt  ,
 T

Каждая k-я комплексная экспоненциальная функция (ЭФ) exp  j
определенная на интервалах [-T/2, T/2) или [0,T) длительностью Т, образуется
из соответствующих простых гармонических функций
 2 
 2 
 2 
exp  j
kt   cos 
kt   j sin 
kt  ,
 T

 T 
 T 
где
j  1 ,
экспоненты
(4.24)
а запись вида exp(ja) соответствует записи комплексной

2  
kt   , насчитывающая счетное бесконечное
 T 
. Система exp  j

202
множество таких функций (в самом общем случае k  0,  1,  2, ...), будет
полной и ортогональной. Она будет также нормированной системой, т.к.
мощность любой ее функции единична. Последнее следует из того факта, что
мощность
комплексной
функции
 2 
exp  j
kt  при
 T

k  0 равна
сумме
мощностей ее действительной и мнимой частей, которые в свою очередь
равны по 0,5. При k=0 ЭФ является действительной функцией, принимает
только единичные значения и ее мощность также равна 1.
Функции (4.24) удовлетворяют условиям мультипликативности с
операцией в виде обычного сложения:
 2 
 2

 2

exp  j
kt  exp  j
mt   exp  j
(k  m)t )  ,
 T

 T

 T

 2 
 2 
exp  j
kt   1/ exp   j
kt  .
T 
 T 

2
Здесь exp   j kt  является комплексно-сопряженной базисной функцией.
T


Систему ЭФ (4.24) можно записать в виде функции частоты f=k/T
exp(j2πft)=cos(2πft)+jsin(2πft).
(4.25)
В выражение (4.25) переменные
f и t входят симметрично, в виде
произведения ft. Тем не менее они изменяются по-разному: время t –
непрерывно и определено на конечном интервале, а частота f – дискретна и
задана на бесконечном интервале. Вследствии этого система {exp(j2πft)} при
разложении сигналов на конечном интервале имеет различные свойства по
осям t и f : она периодическая по оси t
exp(2πft(t+T))=exp(2πft)·exp(2πfT)=exp(2πft)
и непериодическая по оси f.
Каждая ЭФ является комплексной экспонентой, поэтому ее модуль
равен 1, а фаза θ(k,t)=2πkt/T=2πft. Так как система ЭФ по частоте не является
периодической, то каждому значению частоты соответствует единственная
функция exp(j2πft). При этом обе трактовки частоты: как скорость изменения
фазы и как число знакоперемен действительной или мнимой части функции
на интервале длительностью T/2 совпадают.
Преобразования Фурье в базисе ЭФ имеют следующий вид:
- прямое
X (k ) 
1
 2 
x(t ) exp   j
kt  dt , k  0, 1, ...,

TT
T 

203
(4.26)
- обратное
 2 
x(t )   X (k )exp  j
kt 
(4.27)
 T

k 0
и устанавливают математическую эквивалентность между сигналом x(t) и его
комплексным частотным спектром X(k). Равенство Парсеваля при этом
записывается так:



1 2
2
x (t )dt   | X (k ) |   X (k ) X  (k ) ,

TT
k 0
k 0
(4.28)
где X*(k) – комплексно-сопряженный спектр сигнала. Пределы
интегрирования в выражениях (4.26) и (4.28) задаются областью определения
сигнала. Для сходимости комплексного ряда Фурье (4.27) характерны все те
же особенности, что были отмечены ранее относительно сходимости
тригонометрического ряда Фурье (4.15).
Аналогом комплексных экспоненциальных функций в дискретном
анализе будут служить дискретные экспоненциальные функции (ДЭФ)
 2 
 2 
 2 
def (k , i )  exp  j
ki   cos 
ki   j sin 
ki  ,
 N 
 N 
 N 
(4.29)
где обе переменные k и i принимает целочисленные значения: k=0, 1, …,
N-1, а
i=0,1, …, N-1 либо i  
N N
N
,   1, ...,  1 . Эти
2
2
2
функции легко
получаются из непрерывных ЭФ с помощью той же процедуры
дискретизации, что была использована в тригонометрическом базисе, либо
путем подстановки в (4.24) t=i∆t и T=N∆t.
ДЭФ также является комплексной функцией. Ее модуль равен 1, а фаза
θ(k,i)=2πki/N полностью определяет все свойства функции. Приведем
основные из них.
1. ДЭФ является функцией двух равноправных переменных k и i, и
любые выводы относительно одной из них справедливы и для другой. Это
свойство иногда называют еще свойством двойственности ДЭФ. Из него
следует, что матрица значений ДЭФ должны быть симметрической.
2. ДЭФ – периодическая функция с периодом N как по времени, так и
по частоте:
def (k , i  N )  def (k , i); def (k  N , i )  def (k , i).
Это позволяет обычное сложение в ДЭФ заменять
модулю N).
204
на циклическое (по
3. Система ДЭФ дважды мультипликативна с базовой операцией в виде
циклического сложения:
def (k , i )def (m, i )  def (k  m, i ),
def (k , i )def (k , m)  def (k , m  i ).
Именно это свойство используется при выводе алгоритмов быстрого
преобразования Фурье.
4. Среднее значение всех ДЭФ, кроме нулевой, равно нулю. Это
следует из равенства:
1 N 1
exp( j 2 k )  1
def (k , i) 
, k  0.

N i 0
N exp( j 2 k / N )  1
Среднее значение нулевой функции равно 1.
5. Система ДЭФ ортонормирована:
1
N
0, k  m,
*
def
(
k
,
i
)
def
(
m
,
i
)



i 0
1, k  m.
N 1
6. Система ДЭФ является полной, поскольку она содержит N линейнонезависимых взаимоортогональных функций.
7. ДЭФ с номером N-k является комплексно-сопряженной ДЭФ с
номером k , причем расположены эти функции симметрично на интервале N,
т.к. числа N и k является противоположными по модулю N. Это свойство
следует из периодичности ДЭФ относительно индекса k:
def ( N  k , i)  def (k , i)  def  (k , i) .
8. Любая полная система ДЭФ состоит из определенного числа пар
комплексно-сопряженных функций, количество которых зависит от N . При
четном N система ДЭФ состоит из двух действительных функций def(0,i) и
def ( N / 2, i )
и (N/2)-1 пар комплексно-сопряженных функций. При нечетном N
она содержит только одну действительную функцию def(0,i), а остальные N-1
функций образуют (N-1)/2 комплексно-сопряженных пар.
Справедливость этого свойства следует из предыдущего свойства.
Систему ДЭФ также удобно задавать с помощью матрицы D значений
ее функций. При этом полезно ввести обозначение
 2 
WN  exp  j
,
 N 
при котором
def (k , i )  WN ki .
205
В этом случае, например, при i=0, 1, …, N-1
WN0 WN0 ...

WN0
 0

WN WN1 ...
WNN 1 

D = {def(k,i)}=
.
 .

.
.
.
 0

N 1
... WN( N 1)( N 1) 
WN WN
Нулевая строка и нулевой столбец этой матрицы содержат только единичные
элементы, т.к. WN0 =1.
Поскольку ДЭФ являются N- периодическими, то эту матрицу можно
переписать с минимальными фазами, образующимися после вычитания из
произведения ki целого числа N. В этом смысле предыдущее представление
матрицы ДЭФ следует считать представлением с полными фазами.
Аналогичными способами можно задать систему ДЭФ и на
двустороннем интервале при i=-N/2, -N/2+1, …, N/2-1.
Пример 4.5. Записать систему ДЭФ на интервале [0,4) .
Решение. Матрица значений ДЭФ с полными фазами для N=4 имеет
следующий вид:
W40 W40
 0
W W41
D =  40
W4 W42
 0
3
W4 W4
W40 W40 

W42 W43 
.
W44 W46 

W46 W49 
Соответствующая ей матрица с минимальными фазами равна
W40 W40
 0
W W41
D =  40
W4 W42
 0
3
W4 W4
W40 W40 

W42 W43 
.
W40 W42 

W42 W41 
_______________ . _______________
Так как def(-k, i)=def(N-k, i), то фаза ДЭФ является нечетной функцией
на интервале N . Это вытекает из периодичности системы ДЭФ относительно
номера k и не наблюдается в непрерывной системе ЭФ. Как следует из
общего вида ДЭФ (4.29) фаза ДЭФ всегда нарастает при увеличении i по
линейному закону со скоростью 2πk/N рад/ед. Увеличение номера функции
всегда приводит к увеличению скорости изменения ее фазы, поэтому
скорость нарастания полной фазы однозначно определяет номер ДЭФ. Таким
206
образом, используемое в (4.29) упорядочение ДЭФ соответствует
упорядочению по частоте при ее трактовке в виде скорости изменения фазы.
Сказанное можно подтвердить еще и следующей геометрической
иллюстрацией. Как и непрерывные комплексные экспоненциальные функции
ДЭФ можно изобразить на плоскости в виде вращающегося против часовой
стрелки вектора единичной длины, проекции которого на оси абсцисс и
ординат дают действительную и мнимую части функций. Разница будет
заключаться в том, что, если у непрерывных функций этот вектор с течением
времени
вращается непрерывно, то в случае ДЭФ он вращается
скачкообразно, проходя при изменении i на единицу угол 2πk/N радиан. В
общей сложности на интервале N вектор поворачивается на угол 2πk радиан,
т.е. совершает ровно k оборотов. Движение комплексно-сопряженного
вектора def*(k, i)=def(N-k, i) при изменении i на единицу можно представить
как поворот на один оборот и возврат обратно (по часовой стрелке) на угол
2πk/N радиан, так что создается иллюзия вращения в противоположную
сторону (стробоскопический эффект). Такому представлению соответствует
запись ДЭФ в виде матрицы с полными фазами. Матрица значений ДЭФ с
минимальными фазами не дает представления об истинной скорости
вращения векторов и может быть использована только как способ
упрощенного представления ДЭФ.
Теперь о числе знакоперемен ДЭФ. Рассмотрим комплексносопряженные функции def(k,i) и def(N-k,i). Вектор первой из них на
интервале N совершает k оборотов, а вектор второй – (N-k) оборотов. Это
свидетельствует о том, что скорость нарастания фазы (т.е. частота) равна
соответственно k и N-k. В то же время число знакоперемен у их проекций на
2
2
оси координат (например, cos  ki  и cos  ( N  k )i )  будет одним и тем же.
 N 
 N

Следовательно, число знакоперемен в этом случае не может правильно
характеризовать частоту ДЭФ. Здесь необходимо отличать секвенту от
частоты функций.
Пара ДПФ в базисе ДЭФ на интервале определения [0,N) имеет
следующий вид:
N 1
 2 
x(i )   X (k ) exp  j
ki  ,
N


k 0
207
(4.30)
1 N 1
 2 
x(i ) exp   j
ki  ,

N i 0
N 

а соответствующее им равенство Парсеваля равно
X (k ) 
1
N
N 1
x
i 0
N 1
2
N 1
(i )   X (k ) X (k )   S (k ) ,
(4.31)
S (k )  X (k ) X  (k )  X (k )
(4.32)

k 0
k 0
где
2

 2  
ki   .
является спектром мощности сигнала x(i) в базисе exp  j
 N 

В зависимостях (4.30)-(4.31) выполняется суммирование конечного
число членов, поэтому выполняется тождественное равенство между
сигналами в прямом и обратном ДПФ. В непрерывных ПФ (4.26) и (4.27),
как уже отмечалось, имеет место совпадение сигналов x(t) в смысле
стремления к нулю мощности или энергии погрешности аппроксимации
сигнала x(t) рядом Фурье (4.27). По этой же причине равенство Парсеваля
(4.31) можно использовать для практической проверки полноты системы
ДЭФ и контроля правильности выполнения ДПФ (4.30).
Аналогичными формулами можно представить ДПФ в базисе ДЭФ и на
двустороннем интервале [-N/2; N/2). Отличие будет проявляться только в
пределах суммирования по индексу i. Спектр X(k) при упорядочении ДЭФ в
виде (4.29) по сути является частотным спектром сигнала. Шаг изменения
частоты при этом будет равен   2 /( N t ).
ДПФ в базисе ДЭФ могут быть записаны и в компактной матричной
форме:
x = DX,
X=
1 
D x.
N
(4.33)
Здесь x и X являются матрицами-столбцами, образованными из отчетов
сигнала x(i) и его спектра X(k) соответственно, а D представляет собой, как и
ранее, матрицу отсчетов ДЭФ. Матрица D является симметрической и
унитарной; обратная ей матрица с точностью до постоянного множителя 1/N
совпадает с матрицей D* комплексно сопряженных значений ДЭФ: D-1=D*/N.
208
ДЭФ являются мультипликативными функциями по переменным i и k
с операцией мультипликативности в виде циклического сложения. Поэтому
для их спектров справедливы все те свойства, которые были приведены в
§ 3.8, с операцией обобщенного сдвига в виде циклического сдвига влево или
вправо. Кроме того, периодичность ДЭФ позволяет получить для их
спектров еще одно важное свойство, которое в теории сигналов обычно
формулируют в виде теоремы о симметрии: спектр X(k) действительного
дискретного сигнала удовлетворяет следующим условиям симметрии:
Re[X(k)]=Re[X(N-k)], Im[X(k)]=-Im[X(N-k)], |X(k)|=|X(N-k)|, arg[X(k)]=arg[X(N-k)]; спектр симметричного на интервале [0,N) действительного
сигнала x(i)=х(N-i) является действительным.
Доказательство. Если сигнал x(i) является действительным сигналом,
т.е. x(i)= re(i), то
 2  1 N 1
 2 
re
(
i
)
exp
ki    re(i ) cos 
ki  

 j
N
N
N




i 0
i 0
1 N 1
 2 
 j   re(i ) sin 
ki   Re[ X (k )]  j Im[ X (k )].
N i 0
N


 2 
ki  и
При замене k на N-k в силу свойства периодичности функций cos 
 N 
X (k ) 
1
N
N 1
 2 
sin 
ki  , а также свойств четности косинуса и нечетности синуса получим
 N 
справедливость указанных в теореме свойств спектра.
Если сигнал re(i) дополнительно обладает симметрией на интервале
[0,N), т.е. re(i)=re(N-i), то
1
 2 
re(i ) cos 
ki   j 

N
 N 
i 0
N 1
 2
N 1

ki  

i 0
N
 1

1 2
  2 
 2
 
   re(i) cos 
ki   cos 
k ( N  i)    
N  i 0
 N
 
  N 


1
X (k ) 
N
 re(i) sin  N
 N2 1

1 
  2 
 2
 
 j    re(i ) sin 
ki   sin 
k ( N  i)    .
N  i 0
 N
 
  N 


2
2
2
2








Но cos  ki   cos  k ( N  i)  , а sin  ki    sin  k ( N  i )  и поэтому в
 N 
 N

 N 
 N

209
последнем выражении остается только первая сумма
X (k ) 
2
N
N
1
2
 2
 re(i) cos  N
i 0

ki  .

Спектр является действительным. Теорема доказана.
Свойство симметрии позволяет при вычислении частотного спектра
действительного сигнала сократить число необходимых вычислительных
операций. Кроме того, оно позволяет с помощью одного ДПФ найти спектры
сразу двух действительных сигналов. Пусть два действительных сигнала
x1(i)и x2(i) с общим интервалом определения имеют в базисе ДЭФ спектры
X1(k) и X2(k), а образованный из них комплексный сигнал x(i)=х1(i)+jx2(i)
имеет
спектр
X(k).
Тогда
1
Re[ X 1 (k )]  {Re[ X (k )]  Re[ X ( N  k )]};
2
1
1
Im[X1 (k)]  {Im[X(k)]  Im[X(N  k)]}; Re[X 2 (k)]  {Im[X(k)]  Im[X(N  k)]};
2
2
1
Im[ X 2 (k )]  {Re[ X (k )]  Re[ X ( N  k )]}. В конечном счете это также приводит к
2
экономии вычислений.
Энергетические спектры в базисах ЭФ и ДЭФ инвариантны
относительно временного сдвига сигналов (обычного и циклического). Этому
свойству в базисе ДЭФ можно придать интересную матричную
интерпретацию. Пусть сигнал y1(m) является результатом циклического
сдвига влево на один отсчет сигнала x(i):{y1(m)}={x(1), x(2), …, x(N-1), x(0)}.
Связь сигналов y1(m) и x(i) удобно записать в матричном виде:
y1=Mx,
где y 1T ={y(0) y(1) … y(N-1)}, xT={x(0) x(1) … x(N-1)}, а
0
0

М = .

0
 1
1 0 ... 0
0 1 ... 0
. . . ..

0 0 ... 1 
0 0 ... 0
Тогда в соответствии с (4.33) спектр Y1(k) сигнала y1(i) будет равен
Y1 
1 
1
1
D y1  D Mx  D MDX  AX .
N
N
N
Здесь матрица
210
(4.34)
A
1 
D MD
N
отражает преобразование подобия и является матрицей связи спектров при
циклическом сдвиге сигнала. Она имеет диагональную структуру
WN0

WN1


А= 




.
.




,


.

WNN 1 
в результате чего решение матричного уравнения (4.34) может быть
представлено соотношением
Y1 (k )  WNk X (k ),
соответствующим теореме о сдвиге при сдвиге сигнала на один отсчет влево.
Из него следует, что
Y1(k)Y1*(k)=X(k)X*(k)=S(k) ,
а это подтверждает инвариантность спектра мощности сигнала в базисе ДЭФ
по отношению к циклическому сдвигу сигнала на один отсчет.
Обобщение свойства инвариантности на случай произвольного числа
сдвигов можно выполнить с помощью следующих рассуждений. При сдвиге
сигнала на два отсчета результирующий сигнал {y2 (m)}={x(2), x(3), …, x(0),
x(1)} может быть получен путем сдвига еще на один отсчет уже сдвинутого
на один отсчет сигнала {y1 (m)}:
y2=My1.
Поэтому его спектр Y2(k) , будет связан со спектром Y1(k) таким же
уравнением (4.34), каким определялась взаимосвязь спектров Y1(k) и Х(k):
Y2=AY1 .
Тогда в соответствии с особенностями структуры матрицы А
Y2 (k )  WNk Y1 (k )  WN2 k X (k ),
а
Y2 (k )Y2 (k )  Y1 (k )Y1 (k )  X (k ) X  (k ).
Поступая аналогичным образом, можно доказать инвариантность спектра
при любом произвольном числе сдвигов сигнала.
211
4.5 Преобразования Хартли
В 1942 г. Р.Хартли (R.Hartley) предложил для спектрального анализа
систему базисных функций {cas(kz)}, каждая из которых являлась суммой
соответствующих тригонометрических функций:
cas(kz)=cos(kz)+sin(kz).
Эта система представляла собой по сути формальную базисную систему,
образованную из четных 2cos(kz) и нечетных 2sin(kz) простых
тригонометрических функций, что позволило в данном случае из
ненормированных функций cos(kz) и
sin(kz) получить систему
нормированных функций {cas(kz)}.
Базис Хартли является системой вещественных периодических
функций, определенных на любом интервале длительности 2π с периодом,
так же равным 2π. Он является ортонормированным на том же интервале, т.к.
для любых его функций
1
2
1, k  m,
c
a
s(
kz
)
c
a
s(
mz
)
dz


2
0, k  m,
и может быть использован для разложения в ряд Фурье-Хартли
математических функций, определенных на интервале, кратном 2π, и
удовлетворяющих на нем условию интегрируемости с квадратом.
Для представления непрерывных сигналов с конечным временным
интервалом определения длительностью Т базис Хартли должен быть
преобразован к виду
 2 
 2 
 2 
cas
kt   cos 
kt   sin 
kt 
 T 
 T 
 T 
или
c a s  2 ft   cos  2 ft   sin  2 ft  ,
где f=k/T является частотой, причем обе существующие трактовки частоты
здесь также правомочны. Пара непрерывных преобразований Хартли
записывается следующим образом:
X (k ) 
1
 2 
x(t )ca s 
kt dt ,

TT
T 
(4.35)
 2 
x(t )   X (k )cas 
kt  ,
 T

k 0
а соответствующее им равенство Парсеваля имеет следующий вид:

212

1 2
x (t )dt   X 2 (k ).

TT
k 0
2
Ряд Хартли (4.35) для сигналов, принадлежащих пространству Lp , обладает
среднеквадратической сходимостью к этим сигналам. Спектр X(k) Хартли
вещественных сигналов так же является вещественным.
Все родственные системы: тригонометрическая, комплексная
экспоненциальная и Хартли содержат одни и те же простые функции.
Поэтому между спектрами сигнала в этих базисах существует определенная
связь (см. §3.4). Действительно, сравнивая выражения (4.16), (4.26) и (4.35),
получим
XХ(0)=XЧ(0),
X X (k )  [ XЧ (k )  X Н (k )]/ 2, k  0,
(4.36)
X X (k )  Re[ X Э (k )]  I m [ X Э (k )].
Здесь в виде ХХ(k) обозначен спектр Хартли, в виде XЭ(k) – спектр в
комплексном экспоненциальном базисе, а для тригонометрического спектра
сохранено его прежнее обозначение XЧ(k) и XН(k).
Обратная связь спектров базируется на свойстве симметрии
тригонометрических функций. Если представить функцию XХ(k) в виде
суммы четной и нечетной компонент XХЧ(k) и XХН(k) соответственно, то
(см. §1.1)
1
2
x(t ) cos( kt ) dt ,

TT
T
1
2
X ХH (k )  [ X X (k )  X X (k )] / 2   x(t ) sin( kt )dt.
TT
T
X ХЧ (k )  [ X X (k )  X X (k )] / 2 
Тогда будут справедливы следующие соотношения:
XЧ (k )  2 X XЧ (k ), X Н (k )  2 X ХН (k ),
(4.37)
Re[ X Э (k )]  X XЧ (k ), Im[ X Э (k )]   X ХН (k ).
Соотношения взаимосвязи спектров в родственных базисах (4.36) и (4.37)
могут оказаться полезными при спектральном анализе. Например, они
позволяют выразить энергетический и фазовый спектры сигнала в
комплексном экспоненциальном базисе через спектр Хартли:
2
2
Re2 [ X Э (k )]  Im 2 [ X Э (k )]  X ХН
(k )  Х ХН
(k ) 
 (1/ 4)[ X X (k )  X X (k )]2  (1/ 4)[ X X (k )  X X (k )]2 
213
 [ X X2 (k )  X 2 X (k )] / 2.
arg [ Х Э (k )]  arctg[ X ХН (k ) / X ХЧ (k )] 
 arctg{[ X Х (k )  X Х (k )]/[ X X (k )  X X (k )]}.
Используя понятие частоты, от непрерывных преобразований Хартли
нетрудно перейти к интегральным преобразованиям:

X(f ) 
 x(t ) c a s(2 ft )dt,


x(t ) 
 X ( f ) cos(2 ft )df ,

которые могут быть использованы при представлении непрерывных
сигналов, определенных на бесконечных интервалах времени. Равенство
Парсеваля в этом случае приобретает также полностью интегральный вид:


 x (t )dt   X
2

2
( f )df .

Спектральная плотность X(f) в этих выражениях является вещественной
функцией частоты.
Для интегральных преобразований так же справедливы все
соотношения взаимосвязи спектров в родственных тригонометрических
базисах.
Спектральное представление дискретных финитных сигналов
возможно только по системе дискретных ортонормированных базисных

 2  
функций Хартли ca s  ki   , которые могут быть получены путем
 N 

дискретизации соответствующих непрерывных функций. Процедура
дискретизации в этом случае та же, что использовалась при дискретизации
тригонометрической и комплексной экспоненциальной систем, а условие
ортонормированности дискретных функций Хартли на интервале [0,N)
выглядит так:
1 N 1
 2 
 2  1, k  m
cas
ki  c a s 
mi   

N i 0
 N 
 N
 0, k  m.
Дискретные преобразования Хартли на этом интервале имеют
следующий вид:
214
X (k ) 
1
N
 2
N 1
 x(i) c a s  N
i 0

ki ,

(4.38)
 2 
x(i )   X (k ) c a s 
ki ,
N


k 0
где первое выражение является прямым преобразованием Хартли, а второе –
обратным. Равенство Парсеваля
N 1
1
N
N 1
N 1
i 0
k 0
 x 2 (i)   X 2 (k )
является математическим и физическим подтверждением эквивалентности
временной и спектральной областей представления сигналов и полноты
дискретной системы Хартли. Условие ортонормированности функций
Хартли, пара дискретных преобразований Хартли и равенство Парсеваля на
интервале [-N/2, N/2) имеют аналогичный вид и отличаются от их записи на
интервале [0, N) только пределами суммирования.
Соотношения взаимосвязи спектров в дискретном варианте также
справедливы,
причем вид их записи полностью совпадает с
соответствующими выражениями (4.36) и (4.37). Справедлива также запись
энергетического и фазового спектров для ДЭФ с помощью дискретных
спектров Хартли.
Для функций Хартли не выполняется свойство мультипликативности,
поэтому для них в прямом виде теоремы спектров, доказанные в §3.8, не
справедливы. Однако, благодаря связи спектров сигналов в базисах ДЭФ и
Хартли, формулировка этих теорем, справедливая для комплексного
экспоненциального базиса, может быть записана с использованием спектров
Хартли или, как еще говорят, в терминах спектров Хартли. Покажем это на
примере двух теорем – теоремы о сдвиге и теоремы о свертке.
В соответствии с теоремой о сдвиге в базисе ДЭФ частотный спектр
YЭ(k) сдвинутого сигнала x(i-i0) равен модуляции аналогичного спектра XЭ(k)
 2

ki0  , т.е.
несдвинутого сигнала x(i) базисной функцией exp   j
N


 2

YЭ (k )  X Э (k ) exp   j
ki0  .
N


Представим этот спектр в развернутом виде:
215
2
2
ki0 )  j sin( ki0 )) 
N
N
2
2
 {Re[ X Э (k )]cos( ki0 )  Im[ X Э (k )]sin( ki0 )} 
N
N
2
2
 j{Im[ X Э (k )]cos( ki0 )  Re[ X Э (k )]sin( ki0 )}.
N
N
YЭ (k )  {Re[ X Э (k )  j Im[ X Э (k )]}  (cos(
Теперь учтем связь частотного спектра со спектром Хартли (см. (4.37)).
Тогда
2
2
ki0 )  X ХН (k ) sin( ki0 )] 
N
N
2
2
 j[ X ХЧ (k ) sin( ki0 )  X ХН (k ) cos( ki0 )].
N
N
YЭ (k )  Re[YЭ (k )]  j Im[YЭ (k )]  [ X ХЧ (k ) cos(
Но
2
ki0 ) 
N
2
2
2
ki0 )  X Х (k ) sin( ki0 ). (4.39)
[ X ХЧ (k )  X ХН (k )]sin(
ki0 )   X X (k ) cos(
N
N
N
YX (k )  Re[YЭ (k )]  Im[YЭ (k )]  [ X ХЧ (k )  X ХН (k )]  cos(
Из этого выражения следует, что при сдвиге сигнала во времени спектр
несдвинутого сигнала модулируется косинусной составляющей функции
 2

ki0  , а его зеркальная копия – синусной составляющей
Хартли cos 
 N

 2

ki0  . Результирующий спектр Хартли сдвинутого
функции Хартли sin 
 N

сигнала получатся простым суммированием модулированных составляющих
спектра несдвинутого сигнала. В этом состоит суть теоремы о сдвиге в
базисе Хартли.
Теперь перейдем к теореме о свертке. В соответствии с ней в базисе
ДЭФ спектр YЭ (k) циклической свертки двух сигналов со спектрами XЭ (k) и
U(k) с точностью до постоянного множителя N равен произведению этих
спектров:
YЭ (k )  N X Э (k )U Э (k ).
Развернем эти запись, выделив действительную и мнимую части, и учтем
отмеченную ранее связь спектров ДЭФ и Хартли. Тогда после несложных
преобразований получим:
YЭ (k )  N[( X ХЧ (k )U ХЧ (k )  X ХН (k )U ХН (k ))  j ( X ХЧ (k )U ХН (k )  X ХН (k )U XЧ (k ))] .
Так как
216
X X (k )  X X (k )
X (k )  X X (k )
; X ХН (k )  X
;
2
2
U (k )  U X (k )
U ( k )  U X ( k )
U ХЧ (k )  X
; U ХН (k )  X
,
2
2
X ХЧ (k ) 
то спектр ДЭФ свертки может быть преобразован к следующему виду:
YЭ (k ) 
N
N
[ X Х (k )U Х (k )  X Х (k )U X (k )]  j [( X Х (k )U Х (k )  X Х (k )U X (k )].
2
2
По этому выражению легко определяется искомый спектр Хартли
дискретной свертки:
YХ (k ) 
N
[ X Х (k )U Х (k )  X Х (k )U X (k )  X Х (k )U Х (k )  X Х (k )U X (k )].
2
(4.40)
Зависимость (4.40) представляет собой математическое описание теоремы о
циклической дискретной свертке в терминах спектра Хартли. Как видно из
нее, оно значительно сложнее аналогичного описания в частотной области. В
частном случае, когда один или оба сигнала, используемые в свертке,
являются либо четными, либо нечетными, записи теоремы о свертке в
базисах ДЭФ и Хартли совпадают. Это связано с тем, что в этом случае
спектры Хартли также являются либо четными, либо нечетными функциями.
Так, например, для четного сигнала x(i), для которого x(i)=x(N-i), спектр
X X (k ) 
2
N
N
1
2
2
 x(i) cos N ki
i 0
и X(-k)=X(k). Поэтому
N
 X Х (k )[U Х (k )  U X (k )  U Х (k )  U X (k )]  NX Х (k )U Х (k ).
2
Однозначная взаимосвязь спектров в базисах ДЭФ и Хартли позволяет
все свойства, присущие частотным спектрам, формулировать и для спектров
Хартли. Можно сказать, что нет таких задач, для которых справедливо
использование комплексных преобразований Фурье и одновременно не
может быть применено вещественное преобразование Хартли. Тем не менее
вплоть до настоящего времени область практического применения
преобразований Хартли остается существенно более узкой по сравнению с
областью приложений преобразований Фурье в тригонометрическом и
комплексном экспоненциальном базисах.
Во всех рассмотренных родственных гармонических преобразованиях
на конечном интервале времени использована процедура равномерной
YХ (k ) 
217
дискретизации частоты с шагом   2f  2 / T , причем отсчет частоты
начинается с нуля. Однако возможна и другая процедура дискретизации оси
частоты, также приводящая к ортогональным
гармоническим
преобразованиям. В этом случае шаг дискретизации частоты остается
прежним, но отсчет частоты ведется со сдвигом от нуля на половину шага
дискретизации. Получаемые при этом преобразования получили название
сдвинутых преобразований. Их можно записать как
для простых
гармонических систем, так и для всех родственных базисных систем:
тригонометрических, комплексных экспоненциальных и Хартли.
В качестве
примера приведем аналитические соотношения для
сдвинутых синусных, косинусных и комплексных экспоненциальных
преобразований. Для непрерывных сигналов:
 2 (k  0,5)t  
x
(
t
)
sin

dt , 
0
T

 


2

(
k

0,5)


x(t )   X Н (k ) sin 
t , 

T


k 0
4
X Н (k ) 
T
T /2


0

T /2

4
 2 (k  0,5) 
X Ч (k )   x(t ) cos 
t dt , k  0, 
T 0
T





 2 (k  0,5) 

x(t )   X Ч (k ) cos 
t ,
T



k 0
2
X Ч (0) 
T
(4.41)
T /2
x(t )dt ,
T
1
 2 ( k  0,5)t  
X (k )   x(t ) exp   j
 dt , 
T 0
T

 


 2 ( k  0,5)t 

x(t )   X ( k ) exp  j
.

T


k 0
Для дискретных сигналов:
218
(4.42)
(4.43)

 2 ( k  0,5)i  
x(i ) sin 

,
N


i 1

N
1

2
 2 ( k  0,5)i 

x(i )   X H ( k ) sin 
.

N



k 1
4
X H (k ) 
N
N
1
2


x(i),


i 0

N
1

4 2
  (k  0,5)(2i  1)  
X Ч (k )   x(i) cos 
, 
T i 0
N 1


N

1
2
  (k  0,5)(2i  1)  
x(i )   X Ч ( k ) cos 
, 
N 1

 
k 0

2
X Ч (0) 
N
X (k ) 
(4.44)
N
1
2
1
N
N 1
2 ( k  0,5)  
i , 
N


2 (k  0,5) 

j
i .

N

(4.45)

 x(i) exp   j
i 0
N 1

x(i)   X (k ) exp 

k 0
(4.46)
Сдвинутые преобразования могут оказаться полезными в задачах,
связанных с анализом спектральных свойств сигналов в области
фиксированных (например, граничных) частот. В главе 9 эти преобразования
будут использованы при синтезе нерекурсивных цифровых избирательных
фильтров.
4.6. Полиномиальные базисные системы
К таким системам обычно относят системы, построенные на основе
степенных полиномов. Существует четыре детально исследованных
множества степенных полиномов: полиномы Чебышева, Лежандра, Лагерра и
Эрмита. Конечный интервал определения имеют только полиномы Чебышева
и Лежандра, поэтому рассмотрим их более подробно.
Полиномы Чебышева задаются на интервале [-1, 1] следующими
соотношениями:
T0(z)=1; Tk(z)=cos(k·arccos( z)), k≥1.
(4.47)
При k≥2 их удобно вычислять по рекуррентной формуле
Tk(z)=2z Tk-1(z)-Tk-2(z).
(4.48)
219
Пример 4.6. Записать первые четыре полинома Чебышева.
Решение. В соответствии с выражениями (4.47) и (4.48) имеем
T0(z)=1; T1(z)=z; T2(z)=2z2-1; T3(z)=4z3-3z.
_______________ . _______________
Полиномы Чебышева тесно связаны с тригонометрическими
функциями. В сущности, они являются косинусными функциями cos(kθ),
замаскированными простым преобразованием переменной
θ=arccos(z), 0≤θ≤π.
(4.49)
В этом легко убедиться, если учесть, что при этом z=cos(θ) и
Tk(z)=cos(k arc cos (cos θ))=cos( k θ).
Полиномы Чебышева ненормированы и неортогональны. Однако для
них выполняется ортогональность с весом. Последнее означает, что
ортогональными являются функции  (k , z ) , которые получаются умножением
соответствующих полиномов Чебышева на весовые функции 1/
 (k , z )  Tk ( z ) /
(1  z 2 ) :
(1  z 2 ).
Условие ортогональности при этом имеет следующий вид:
0 , k  n,
1

1
dz
1

T
(
z
)
T
(
z
)

cos(
k

)
cos(
n

)
d


1/ 2, k  n  0,
k
n

2
2 1

1 z
0
1 , k  n  0.

Так как сами полиномы Чебышева неортогональны, то ряд Чебышева
не будет являться рядом Фурье. Поэтому для определения его
коэффициентов нельзя использовать формулу обратного преобразования
Фурье и необходимо применять другие способы их вычисления. Наиболее
просто эта задача решается при представлении функций в виде степенных
полиномов конечной степени.
Пусть на интервале [-1, 1] задана полиномиальная функция
x(z)=c0+c1z+c2z2+ … +crzr .
Учитывая, что 1=T0(z); z=T1(z); z2=(T0(z)+T2(z))/2, z3=(3T1(z)+T3(z))/4;
z4=(3T0(z)+4T2(z)+T4(z)) и т.д., то после подстановки и приведения подобных
членов превращаем конечный степенной ряд в конечное разложение по
полиномам Чебышева
x(z)=d0T0(z)+d1T1(z)+d2T2(z)+ … +drTr(z) .
220
Пример 4.7. Записать ряд Чебышева и найти его коэффициенты для
разложения функции x(z)=c0+c1z+c2z2.
Решение. Подставляя в эту функцию выражения 1, z и z2 через
соответствующие полиномы Чебышева, получим:
c2
c
x( z )  c0T0 ( z )  c1T1 ( z )  c2 (T0 ( z )  T2 ( z )) / 2  (c0  2 )T0 ( z )  c1T1 ( z )  T2 ( z ).
2
2
Отсюда следует, что d0  c0  c2 / 2; d1  c1 , а d2  c2 / 2.
_______________ ._______________
В силу своей конечности ряды Чебышева точно представляют
конечные степенные функции (если не учитывать погрешности вычислений).
Полиномы Чебышева являются знакопеременными функциями, причем
полиномы с четными номерами являются четными функциями относительно
середины интервала своего определения, а полиномы с нечетными номерами
– нечетными функциями.
Полиномы Лежандра определяются по формуле
1 d k ( z 2  1) k
Pk ( z )  k
, k  0, 1, ...
2 k!
dz k
(4.50)
или при k≥2 по рекуррентной зависимости
kPk ( z )  (2k  1) zPk 1 ( z)  (k  1) Pk 2 ( z ).
(4.51)
Они являются ортогональными на интервале [-1,1], но ненормированными.
Их мощность равна Pk=1/(2k+1).
Пример 4.8. Записать первые четыре полинома Лежандра.
Решение. Вычисляя по формулам (4.50) и (4.51), получим:
P0 ( z )  1; P1 ( z )  z; P2 ( z ) 
1
1
(3 z 2  1); P3 ( z )  (5 z 3  3 z ).
2
2
_______________ . ____________
Полиномы Лежандра, как и полиномы Чебышева, являются четными
либо нечетными функциями относительно середины интервала своего
определения. Поэтому образованная из них базисная система будет
составной системой. Она может быть использована для спектрального
представления любых математических функций x(z) с интегрируемым
квадратом на интервале [-1, 1]. Из них можно выделить четные и нечетные
простые базисные функции, ортогональные на интервале [0, 1], из которых
221
затем образовать и формальную, и комплексную родственные системы.
Однако последние не нашли своего применения.
Пара преобразований Фурье-Лежандра будет иметь обычный вид
записи

x( z )   X (k ) Pk ( z ),
k 0
(4.52)
1
1
x( z ) Pk ( z )dz,
2 Pk 1
так же, как и равенство Парсеваля
1

1 2
x
(
z
)
dz

X 2 (k ) Pk ,
(4.53)


2 1
k 0
которое подтверждает полноту полиномиальной системы Лежандра.
При обработке временных сигналов с помощью полиномиальных
систем необходимо ось формальной переменной z и интервал ее определения
[-1, 1] привести к временной оси t и интервалу изменения сигнала [tmin, tmax].
Делается это, как уже отмечалось, с помощью линейного преобразования
(3.27). Например, при определении сигнала на двустороннем интервале [-T/2,
T/2] переменную z в полиномиальных функциях необходимо представить в
виде z=2t/T, а при определении сигнала на одностороннем интервале [0, T] –
X (k ) 
в виде
z
2t
 1 . Аналитическая запись базисных функций изменится, они
T
станут функциями времени, однако их мощность останется прежней.
Полученные полиномы Лежандра можно будет использовать для разложения
любых сигналов x(t) с ограниченной мощностью. Пара преобразований
Фурье и равенство Парсеваля в этом случае примут следующий вид:

x(t )   X (k ) Pk (t ),
k 0
X (k ) 
1
x(t ) Pk (t )dt ,
T  Pk T
(4.54)

1 2
x
(
t
)
dt

X 2 (k ) Pk .
(4.55)


TT
k 0
Так как в полиномиальной системе Лежандра половина функций всегда
четные, а вторая половина – нечетные, то в спектрах четных или нечетных
относительно середины интервала определения сигналов половина
222
спектральных составляющих будет равна нулю. В спектрах же степенных
сигналов в этом базисе равны нулю будут все спектральные составляющие с
номерами выше наибольшей степени раскладываемого сигнала. Это свойство
следует из степенной структуры самих базисных функций и созвучно
аналогичному свойству полиномов Чебышева. В соответствии с ним ряды
Фурье-Лежандра, как и ряды Чебышева, будут конечными и абсолютно
точно (без учета погрешностей вычислений) представляют такие сигналы.
По сравнению с другими базисными системами разложения
полиномиальных сигналов по степенным полиномам будут иметь
минимальную размерность (т.е. иметь минимальное число ненулевых
составляющих). В этом смысле полиномиальные системы будут
адекватными классу полиномиальных сигналов. Если учесть, что многие
гладкие неполиномиальные математические функции достаточно точно
представляются конечными степенными рядами (например, рядом Тейлора),
то становится понятной причина широкого применения полиномов
Чебышева и Лежандра в задачах аппроксимации.
Пример 4.9. Определить спектр Лежандра линейного x(t)=t и
квадратичного x(t)=t2 сигналов на интервале [0, T].
Решение. Сначала запишем систему полиномов Лежандра,
определенных на этом интервале. Для этого в функции Pk(z) примера 4.8
подставим значения z 
2t
 1 . В результате получим
T
 2t

6t 2 6t
20t 3 30t 2 12t
Pk (t )  1,  1, 2   1, 3  2   1, ....
T
T
T
T
T
 T

Теперь, используя обратное преобразование Фурье-Лежандра, найдем
первые четыре спектральные составляющие сначала линейного, а затем и
квадратичного сигналов:
- для x(t)=t:
T
T
1
3
2t
(1)
(1)
X (0)   tdt  T / 2; X (1)   t (  1)dt  T / 2;
T 0
T 0 T
T
T
5  6t 2 6t 
7  20t 3 30t 2 12t 
(1)
X (2)   t  2   1 dt  0; X (3)   t  3  2 
 1 dt  0.
T 0 T
T
T0  T
T
T


2
- для x(t)=t :
(1)
1 2
3 2  2t 
2
(2)
t
dt

T
/
3;
X
(1)

t   1 dt  T 2 / 2;


T 0
T 0 T

T
X (2) (0) 
T
223
X
(2)
3
T
T
5 2  6t 2 6t 
7 2  20t 30t 2 12t 
2
(2)
(2)   t  2   1 dt  T / 6; X (3)   t  3  2 
 1 dt  0.
T 0 T
T
T 0 T
T
T


Здесь учтено, что P0=1; P1=1/3; P2=1/5; P3=1/7. Можно показать, что
и далее для всех k>3 спектральные коэффициенты Лежандра X(k) этих
сигналов равны нулю.
Проверка. Проверку можно выполнить либо с помощью прямого
преобразования Фурье-Лежандра, либо с помощью равенства Парсеваля.
Воспользуемся прямым преобразованием:

T T  2t 
   1  t ,
2 2T

k 0
k 0

2
T 3 T 2  2t  T 2  6t 2 6t  2
(2)
(2)
x(t )   X (k ) Pk (t )   X (k ) Pk (t ) 
   1   2   1  t .
3
2 T
T
 6 T
k 0
k 0

Имеем точное восстановление линейного и квадратичного сигналов с
помощью конечных рядов Лежандра.
_______________ . _______________
Базисные
функции
в
полиномиальных
системах
носят
знакопеременный характер, поэтому к ним применима процедура
дискретизации Трахтмана. Однако непосредственное ее использование
приводит здесь к системам дискретных функций с неравноотстоящими
отсчетами, т.к. нули нечетных функций максимального порядка в этом
случае располагаются по оси t неравномерно. В этом смысле непрерывные
полиномы не имеют решетчатых аналогов.
Пример 4.10. Построить дискретную ось для системы Лежандра на
симметричном интервале при N=6.
Решение. При N=6 система из первых семи полиномов Лежандра
примет следующий вид:
1
x(t )   X (k ) Pk (t )   X (1) (k ) Pk (t ) 
(1)
P0 ( z ), P1 ( z ), P2 ( z ), P3 ( z ), P4 ( z ), P5 ( z ), P6 ( z ) 
 Ч (0, z ), H (1, z ),Ч (1, z ), H (2, z ), Ч (2, z ), Н (3, z ), Ч (3, z ).
Нечетной функцией максимального порядка N/2 = 3 будет полином
Р5(z), который в соответствии с рекуррентной формулой (4.51) и
результатами примера 4.8 равен
1
P5 ( z )  (63 z 5  70 z 3  15 z ).
8
224
Его нули, которые и зададут моменты отсчетов всех остальных
полиномов, найдем из решения уравнения
63z 5  70 z 3  15 z  0.
Они равны {zi}={-0,901; -0,539; 0; 0,539; 0,901}. Не сложно убедиться, что
расстояние между нулями непостоянно и, следовательно, дискретная ось zi
будет неравномерной. Неравномерной будет и соответствующая ей
временная ось ti, т.к. в этом случае ti=(T/2)zi.
_______________ . _______________
Нелинейной трансформацией оси t неравномерность расположения
нулей в полиномиальных системах можно устранить и получить решетчатые
базисные функции. Однако при этом за счет нелинейности перехода от
непрерывной переменной t к дискретной i деформируется форма огибающих
базисных дискретных функций. В результате может оказаться, что после
дискретизации непрерывных базисных функций с неравноотстоящими
нулями полученные функции совпадут точно или приближенно с
дискретными тригонометрическими функциями, т.е. базисная система станет
неполиномиальной.
Этот результат соответствует дискретному варианту метода
приведенных систем отсчета, развитого А.С. Винницким [59] и
позволяющего сложные колебания в контуре с переменными параметрами
привести к простым синусоидальным колебаниям, что соответствует
приведению собственных функций дифференциального уравнения Матье к
синусоидальным функциям.
Наиболее
наглядно
процедуру
трансформации
базисных
полиномиальных функций можно проиллюстрировать на примере полиномов
Чебышева. Моменты отсчетов найдем по нулям
𝑁
2
-го полинома Чебышева
TN(t). Они соответствуют решению тригонометрического уравнения:
cos(N/2 arccos(2t/T))=0,
 2ti
T
которое имеет следующий вид: N/2Narc cos 
 
  (2i  1), i  0, 1, ... .
 2
Из этого выражения легко получается формула для моментов отсчетов ti :
2ti
  (2i  1) 
 cos 
.
T
N


225
Если подставить ее в общую запсь непрерывных полиномов Чебышева,
то можно получить систему дискретных полиномов Чебышева {Tk(i)}:
  (2i  1)k 
Tk (i )  Tk (ti )  cos 
.
N


Как видим, дискретные полиномы Чебышева в этом случае точно совпадают
с дискретными косинусными функциями.
Существуют другие способы получения решетчатых ортогональных
полиномов степенной структуры. Один из этих способов основан на
использовании процедуры ортогонализации Грама-Шмидта дискретных
степенных последовательностей различного типа. Приведем эту процедуру,
поскольку она позволяет получать различные системы непрерывных и
дискретных базисных функций и имеет важное значение в теории базисных
функций.
Любую конечную или бесконечную систему линейно независимых
функций
 (k , z) можно
ортогональную
систему
ортогонализировать,
функций
 (k , z) с
т.е.
превратить
помощью
в
следующих
рекуррентных формул:
  0, z     0, z  ,
 1, z   a1,0  0, z   (1, z),
  2, z   a2,0  0, z   a2,1 (1, z)  (2, z),
.............................
  k , z   ak ,0  0, z   ak ,1 (1, z)  . . .
(4.56)
ak , k 1  k 1, z    k , z  ,
.............................
Здесь величина z носит обобщенный характер и может принимать как
непрерывные, так и дискретные значения.
Для того, чтобы найти коэффициенты ak,m , составим скалярные
произведения функций  (k , z ) и  (m, z ) для некоторого интервала изменения z,
равного [zmin, zmax], причем функцию  (m, z ) заменим линейной комбинацией
из (4.56). Применяя для краткости упрощенные обозначения функций  (k , z )
=  k и  (m, z )   m , получим
(φm ,φk) = ak,0(φm ,φ0) + ak,1(φm ,φ1) +…+ ak,m(φm ,φm) +
226
 ...  ak ,k 1 (m , k 1) )  (m , k ).
Для того, чтобы система  (k , z) была ортогональной, необходимо все
скалярные произведения, в которых участвуют разные функции из этой
системы, положить равными нулю. В результате получим:
ak ,m (m , m )  (m , k )  0.
Отсюда
ak ,m  
(m , k )
.
(m , m )
(4.57)
Приняв здесь m=0, 1, 2, …, k-1, получим все коэффициенты ak,0 , ak,1 , …, ak, k-1 ,
необходимые
для
образования
функций
 (k , z ) в
приведенной
выше
рекуррентной формуле. Применяемые в (4.57) скалярные произведения
функций в зависимости от характера изменения переменной z используются
либо в смысле интегрирования, либо в смысле суммирования. Это позволяет
на единой математической основе получать как непрерывные, так и
дискретные ортогональные системы.
Применим процедуру Грама-Шмидта для построения полиномиальных
базисных функций, приняв для них обобщенное обозначение
Pоl(k,z). Для
этой цели в качестве исходной системы линейно независимых функций
 (k , z ) воспользуемся степенной последовательностью вида
вkzk, где вk
известные константы.
Пример
4.11.
Записать
систему
временных
полиномиальных функций {Pоl(k,t)} на интервале [0,T).
–
непрерывных
k
Решение. В этом случае z=t,  (k , t )  вk t и в соответствии с
рекуррентными уравнениями (4.56) имеем:
Pol (0, t )   (0, t )  в0 ,
Pol (1, t )  a1,0 Pol (0, t )  (1, t )  a1,0  в0  в1t ,
где коэффициент
a1,0  
(0 , 1 )
(в , в t )
 0 1 .
(0 , 0 )
(в0 , в0 )
Скалярные произведения
T
T
1
1
(в0 , в1 t )   в0 в1 tdt  в0 в1T / 2, (в0 , в0 )   в0 2 dt  в0 2 ,
T 0
T 0
227
поэтому
в0 2в1Т
T
Pol (1, t )  
 в1t  в1 (t  ).
2
2в0
2
Функция
T
Pol (2, t )  a2,0 Pol (0, t )  a2,1 Pol (1, t )  (2, t )  a2,0 в0  a2,1в1 (t  )  в2t 2 .
2
Здесь
a2,0
(0 , 1 )
(в0 , в2t 2 )


,
(0 , 0 )
(в1 , в0 )
T
(в1 (t  ), в2t 2 )
( , )
2
a2,1   1 2  
.
T
T
(1 , 1 )
(в1 (t  ), в1 (t  ))
2
2
Поскольку
T
1
(в0 , в2 t )   в0 в2 t 2 dt  в0 в2T 2 / 3,
T 0
2
T
T
1
T
(в1 (t  ), в2t 2 )   в1в2 (t  )t 2 dt  в1в2T 3 /12,
2
T 0
2
T
T
T
1
T
(в1 (t  ), в1 (t  ))   в12 (t  ) 2 dt  в12T 2 /12,
2
2
T 0
2
то
Pol (2, t )  
в0 2в2Т 2 в12в2Т 312
T
T2
2
2

(
t

)

в
t

в
(
t

Tt

).
2
2
3в 2
12в12Т 2
2
6
Функция
T
T2
2
Pol (3, t )  a3,0в3  a3,1в1 (t  )  a3,2в2 (t  Tt  )  в3t 3.
2
6
Здесь
(0 , 3 )
(в , в t 3 )
 0 3 ,
(0 , 0 )
(в0 , в0 )
T
(в1 (t  ), в3t 3 )
(1 , 3 )
2
a3,1  

.
T
T
(1 , 1 )
(в1 (t  ), в1 (t  ))
2
2
2
T
(в2 (t 2  Tt  ), в3t 3 )
( , )
6
 1 3 
.
2
T
T2
(2 , 2 )
2
2
(в2 (t  Tt  ), в2 (t  Tt  ))
6
6
a3,0  
a3,2
228
Вычисляя
все
скалярные
произведения,
найдем
a3,0  T 3в3 /(4в0 ); a3,1  9T 2в3 /(10в1 ); a3,2  3Tв3 /(2в2 )
и
коэффициенты
затем
после
преобразований получим:
3 2 3 2 T3
Pol (3, t )  в3 (t  Tt  T t  ).
2
5
20
процедуру Грама-Шмидта, можно
3
Продолжая
получить и все
последующие функции при k=4, 5, … .
_______________ . _______________
Полученные в примере 4.11 базисные функции {Pol(k,t)} имеют вид
степенных полиномов. Все они с точностью до постоянного множителя
совпадают с соответствующими полиномами Лежандра и степень их
совпадения зависит от выбора набора коэффициентов вk . Например, при
в0=1, в1=2/T, в2=6/T2, в3=20/T3, … полученная система полностью совпадает
с системой полиномов Лежандра. В этом легко убедиться, если сравнить для
этого случая результаты примеров 4.11 и 4.9.
Интересный результат получается при в0=1, в1=-2/T, в2=6/T2, в3=-20/T3,
… . В этом случае система функций {Pol(k,t)} является зеркальным
отражением системы полиномов Лежандра относительно середины
интервала их определения.
Пример
4.12.
Записать
систему
дискретных
решетчатых
полиномиальных функций {Pоl(k,i)} на интервале [0,N).
Решение. В этом случае z  i,  (k , i)  вk i k , i  0,1,..., N  1, k  0, 1, ..., N  1 и
систему ортогональных функций {Pol(k,i)} можно определить по алгоритму
(4.56). При этом функция Pol(0,i)=ψ(0,i)=в0 . Функция
Pol (1, i )  a1,0 Pol (0, i )  (1, i )  a1,0 в0  в1i,
где коэффициент a1,0 записывается также, как и в предыдущем примере, но с
другой формой записи скалярных произведений
1
(в0 , в1i) 
N
N 1
 в в i  в в ( N  1) / 2,
i 0
0 1
1
(в0 , в0 ) 
N
0 1
N 1
в
i 0
Поэтому
Pol (1, i )  в1 (i 
229
0
2
в0 2 .
N 1
).
2
Функция
Pol (2, i )  a2,0 Pol (0, i )  a2,1 Pol (1, i )  (2, i )  a2,0 в0  а2,1в1 (i 
N 1
)  в2i 2 .
2
Здесь
a2,0
(0 , 2 )
(в0 , в2i 2 )


,
(0 , 0 )
(в0 , в0 )
N 1
), в2i 2 )
(1 , 2 )
2
a2,1  

.
N 1
N 1
(1 , 1 )
(в1 (i 
), в1 (i 
))
2
2
(в1 (i 
Так как
1
(в0 , в2i ) 
N
2
N 1
в в i
i 0
0 2
2

в0 в2 ( N  1)(2 N  1)
,
6
N 1
1 N 1
N  1 2 в1в2 ( N  1)( N  1)2
2
(в1 (i 
), в2i )   в1в2 (i 
)i 
,
2
N i 0
2
12
N 1
N 1
1 N 1 2
N  1 2 в12 ( N 2  1)
(в1 (i 
), в1 (i 
))   в1 (i 
) 
,
2
2
N i 0
2
12
то
( N  1)( N  2) 

Pol (2, i )  в2 i 2  ( N  1)i 
 .
6

Аналогично можно получить и последующие дискретные функции для k=3,
4, …, N-1.
_______________ . _______________
Рассмотренный в примере 4.12 способ позволяет построить целое
семейство решетчатых полиномиальных базисных систем, отличающихся
набором коэффициентов вk . Используя коэффициенты знакочередующего
вида, т.е. вk=(-1)k|вk|, с его помощью можно получить известные решетчатые
системы Чебышева, Кравчука, Шарлье и Мейкснера, являющиеся по сути
зеркальными модификациями общих полиномов примера 4.12.
Все решетчатые полиномиальные системы являются составными
системами с чередующимися четными и нечетными относительно середины
интервала определения составляющими. Они являются ненормированными
системам. Мощность Pk базисных функций в них зависит от конкретного
вида системы. Пара дискретных преобразований Фурье в них имеет вид:
230
N 1
1
X (k ) 
N  Pk
 x(i) Pol (k , i),
i 0
(4.58)
N 1
x(i )   X (k ) Pol (k , i ),
k 0
а выполнение равенства Парсеваля свидетельствует о полноте
полиномиальных систем. Для спектра решетчатых полиномиальных базисов
так же справедливо
свойство адекватности классу полиномиальных
решетчатых сигналов.
Пример 4.13. Вычислить спектр линейного сигнала x(i)=i на интервале
[0,N) в полиномиальном базисе.
Решение. Воспользуемся решетчатой полиномиальной базисной
системой примера 4.12 при всех вk=1:
Pol (k , i)  1; i 

N 1 2
( N  1)( N  2) 
; i  ( N  1)i 
; ... .
2
6

Мощности первых двух базисных функций равны
N 2 1
 N 1 
i


.



2
12


i 0
Спектр сигнала определим по формуле обратного преобразования Фурье (см.
выражения (4.58)):
1
P0 
N
N 1
1
1  1; P1 

N
i 0
N 1
2
1 N 1
X (0)   i  ( N  1) / 2,
N i 0
1 N 1
N 1
(1)
X (1) 
i(i 
)  1,

NP1 i 0
2
(1)
1 N 1 2
( N  1)( N  2)
X (2) 
i(i  ( N  1)i 
)  0.

NP2 i 0
6
Нулю будут равны и спектральные составляющие всех последующих
(1)
базисных функций: X(1)(k)=0, k>2.
Проверка. По формуле прямого преобразования Фурье восстановим
сигнал по найденному его спектру:
N 1
x(i )   X (1) (k ) Pol (k , i )  X (1) (0)  X (1) (1)(i 
k 0
N 1 N 1
N 1
)
i 
 i.
2
2
2
Линейный дискретный сигнал точно представляется с помощью двух его
спектральных коэффициентов.
_______________ . ________________
231
Полученный в примере 4.13 результат можно обобщить: в
полиномиальном спектре любого дискретного полиномиального сигнала
максимальной степени r < N все спектральные составляющие с номерами k>r
будут равны нулю; дискретный ряд Фурье такого сигнала будет иметь
усеченный вид:
r
x(i )   X ( r ) (k ) Pol (k , i ).
k 0
(4.59)
Это свойство можно эффективно использовать в задачах обработки
полиномиальных сигналов.
Как уже отмечалось, все полиномиальные системы являются
составными системами. Однако номер k базисных функций в них не несет
физического смысла частоты изменения, хотя и связан с частотой
следования, т.е. с секвентой. Поэтому такие базисы не могут быть
использованы для частотного анализа сигналов.
4.7. Функции и преобразования Уолша
Все рассмотренные ранее базисные функции, за исключением
единичных функций, являются многозначными и принимают на интервале
своего определения большое число различных значений. Это число
бесконечно для непрерывных систем и конечно (равно N) для дискретных.
Многозначность базисных функций вызывает известные трудности при их
генерации и усложняет процедуру спектрального анализа сигналов. Поэтому
понятен тот интерес, который вызывают системы функций с небольшим
числом значений. К таким системам относятся системы пилообразных
функций и функций Хаара, Уолша и Радемахера [2, 17, 30, 43, 48, 50, 60, 74,
76]. Для этих функций интервал определения представляется совокупностью
двоично-рационального числа подинтервалов, на которых функции имеют
постоянные значения. В связи с этим эти системы называют еще и двоичноортогональными.
Наиболее важное значение для практики спектральной обработки
имеют системы Радемахера, Уолша и Хаара, поскольку функции в них
принимают простейшие значения 0 и ±1. Поэтому рассмотрим эти функции
более подробно. В этом параграфе остановимся на функциях Радемахера и
Уолша.
232
Непрерывные функции Радемахера r(m,z), m=0, 1…, предложенные в
1922 г. Х. Радемахером (Н.Rademacher), являются кусочно-постоянными
знакопеременными функциями с интервалами определения [-0,5; 0,5) либо
[0,1). Интервал определения этих функций можно разбить на N=2n, n=1, 2, …
равных подинтервалов, на каждом из которых функции Радемахера
принимают значения +1 или -1, а на концах подинтервалов могут иметь
разрывы первого рода, причем в точках разрыва функции Радемахера
непрерывны справа.
Каждая m-я функция Радемахера по форме совпадает с правильной
прямоугольной кривой – меандром, причем на интервале из N подинтервалов
укладывается 2m полупериодов этого меандра. В связи с этим функции
Радемахера иногда называют меандровыми функциями.
Аналитически функции Радемахера могут быть описаны следующими
выражениями:
r (0, z )  1, r (m, z )  sign(sin 2m  z ), m  1, 2,... ,
(4.60)
где sign определяет функцию
1, x  0,
sign( x)  
1, x  0.
Первые четыре функции Радемахера, полученные по формулам (4.60) для
z  [0,1) ,
приведены на рис. 4.3.
Значения функций Радемахера тесно связаны с двоичным кодом их
аргумента z. Если дробное число z представлено в двоичной позиционной
системе счисления

z   zm 2 m , zm  0; 1,
m 1
что соответствует следующей систематической записи двоичного кода z:
z=0, z1 z2 … ,
(4.61)
где крайний слева разряд (z1) является старшим, то
r (m, z)  (1) zm  e j zm  cos( zm ), m  0, j = -1.
(4.62)
Формула (4.62) задает более простой способ описания и построения функций
Радемахера. Его эффективность легко проверяется на функциях рис. 4.3.
233
r(0,z)
+1
0 1/8 1/4 3/8 1/2 5/8 3/4 7/8
1
z
r(1,z)
+1
0
1
z
1
z
1
z
-1
r(2,z)
+1
0
-1
r(3,z)
+1
0
-1
Рис. 4.3. Функции Радемахера
Функции Радемахера ортогональны и нормированы, но сведенные
вместе не образуют полную систему, поскольку существуют и другие
функции, ортогональные функциям Радемахера. Таковы, например, функции
{sign(cos 2m  z )} . Дополнением системы Радемахера за счет функций,
образованных всевозможными произведениями функций Радемахера, можно
построить полные системы функций Уолша.
Непрерывные функции Уолша, предложенные в 1923 г. Дж.Уолшем
(J.Walsh), также являются кусочно-постоянными знакопеременными
функциями со значениями +1 и -1 и интервалом определения [-0,5; 0,5) либо
[0,1),
содержащим
двоично-рациональное
число
подинтервалов
234
знакопостоянства. Записанные совместно и пронумерованные функции
Уолша образуют базисную систему {wal(k, z)}, k=0, 1, …, в которой
возможно разложение произвольной математической функции x(z) с
интегрируемым квадратом в ряд Фурье-Уолша. Так как нумерацию
(упорядочение) функций Уолша в базисной системе можно выполнить
различными способами, то возможны различные системы Уолша. Наиболее
используемыми на практике являются три системы: Пэли, Адамара и
Хармута. Система, предложенная самим Уолшем, близка к системе Хармута.
Система Уолша - Пэли {pal(k, z)}. Она образуется таким образом, что
каждая функция Уолша с номером k в системе Пэли представляется
произведением функций Радемахера с номерами, совпадающими с номерами
разрядов двоичного представления k , содержащих 1. Если целое число k из
множества {0, 1, 2, … } имеет следующее двоичное представление

k   km 2m1  ...k3k2 k1 , km  0; 1,
m 1
(4.63)
где m – номер двоичного разряда, то в общем виде функции этой системы
могут быть записаны следующим образом:

wal (k , z )  pal (k , z )   [r (m, z )]km .
m 1
(4.64)
Из (4.64) следует, что в тех случаях, когда двоичное представление k
содержит единицу только в одном разряде (т.е. k является степенью числа 2),
функция Уолша-Пэли с таким номером будет совпадать с одной из функций
Радемахера.
Пример 4.14. Построить систему Пэли из первых восьми функций Уо
Уолша для z  [0,1) .
Решение. Для этого случая: pal(0,z)=r(0,z); pal(1,z)=pal(001,z)=r(1,z);
pal(2,z)=pal(010,z)=r(2,z);pal(3,z)=pal(011,z)=r(2,z)·r(1,z);
pal(4,z)=pal(100,z)=r(3,z);pal(5,z)=pal(101,z)=r(3,z)·r(1,z);
pal(6,z)=pal(110,z)=r(3,z)·r(2,z);pal(7,z)=pal(111,z)=r(3,z)·r(2,z)·r(1,z).
Графики этих функций приведены на рис. 4.4.
235
pal(0,z)
pal(4,z)
+1
+1
0
0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 z
1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 z
-1
pal(1,z)
pal(5,z)
+1
+1
0
0
1z
1 z
-1
-1
pal(6,z)
pal(2,z)
+1
+1
0
0
1z
1 z
-1
-1
pal(3,z)
pal(7,z)
+1
+1
0
1 z
-1
0
1z
-1
Рис. 4.4. Система функций Уолша-Пэли для N=8 на интервале [0,1)
_______________ . _______________
Систему Уолша-Пэли можно записать и в экспоненциальной форме,
если в выражении (4.64) использовать формулу (4.62) для функций Радахера.
Тогда
pal (k , z )  e
j



k m zm
m1
 k m zm
 (1) m1
.
(4.65)
При ограниченном n-разрядном двоичном представлении чисел k и z с
помощью выражений (4.64) и (4.65) можно получить первые N=2n функций
системы Пэли. Если N фиксировано, то аргумент z полезно представить в
нормированном виде z=i/N, где i будет определять номер участка
знакопостоянства интервала определения функций Уолша (номер
236
подинтервала) и принадлежать целочисленному диапазону [0,N) при z  [0,1)
или [-N/2, N/2) при z  [-0,5; 0,5). В этом случае функции Радемахера и
Уолша можно выразить через разряды двоичного разложения числа i.
Запишем i в двоичной системе счисления
n
i   im 2m 1  inin 1 ... i1 , im  0;1.
(4.66)
m 1
Поскольку z=i/N=i2-n , то zm=in+1-m, т.е. двоичные разряды в
разложениях (4.61) и (4.66) чисел z и i расположены в обратных (инверсных)
порядках следования (сравните систематические записи двоичных кодов
чисел z и i). С учетом этого функции Радемахера и Уолша-Пэли с
нормированным аргументом запишутся следующим образом:
r (m, i / N )  e j in1m  (1)in1m  cos( in 1m ),
(4.67)
n
 km in1m
n
pal (k , i / N )   [r (m, i / N )]  (1) m1
km
.
(4.68)
m 1
В последней формуле сумма произведений разрядов чисел k и i не
меняется при замене m на n+1-m, поэтому справедлива будет и следующая
запись функций Уолша-Пэли:
n
 kn1mim
pal (k , i / N )  (1) m1
.
(4.69)
Обозначение системы Пэли в виде pal(k,z) и pal(k,i/N) и ее название
связаны с именем П.Пэли (P.Paley), который первым ввел её, связав в ней
функции Уолша с функциями Радемахера правилом (4.64).
Система Уолша-Адамара {had(k,z)}. Ее можно получить из системы
Пэли двоичной инверсией номеров функций, т.е. записью разрядов
двоичного кода номера функции Уолша в обратном порядке. Например, при
N=8 третья функция в системе Адамара (k=3=011) совпадает с шестой
функцией Уолша системы Пэли (k=110=6). С учетом этого систему Адамара
аналитически можно определить как

 kn1m zm

had (k , z )   [r (m, z )]kn1m  (1) m1
m 1
237
.
При конечной разрядности n и фиксированных значениях N
справедлива следующая запись этой системы в функции нормированного
аргумента i/N:
n
n
had (k , i / N )   [r (m, i / N )]
kn1m
 ( 1)

n
kn1min1m
m1
 kmim
 ( 1) m1
.
m 1
(4.70)
Название и обозначение этой системы связаны с именем Дж.Адамара
(J.Hadamard), предложившего свой способ построения ортогональных
симметрических матриц, строки которых совпадают со значениями
соответствующих функций Уолша на участках их знакопостоянства [60].
H 2n размера 2n  2n можно
По Адамару квадратную матрицу
получить либо по рекуррентному соотношению
H 2n  H 2n1  H 2 ,
(4.71)

где
‒ знак
кронекеровского умножения, либо как результат
кронекеровского возведения в степень элементарной матрицы H2 :
H 2n  H 2 [n] .
(4.72)
При этом элементарная матрица H2 имеет следующий простейший вид:
1
1
H2 = 

1 1
и совпадает с матрицей ДЭФ D2.
Пример 4.15. Записать матрицу Адамара для N=8.
Решение. В этом случае n=3 и в соответствии с (4.71) получим
H
H4 =  2
 H2
а
H
H8 =  4
 H4
1 1 1 1 
H 2  1 1 1 1
,

 H 2  1 1 1 1


1 1 1 1 
1
1

1

H 4  1

 H 4  1

1
1

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1
1
1
1
1 1
1 1
1
1
1
1
1
1 1 1
1
1
1 1
1
1 1 1 1
1 1
238
1
1
1
1
1
1
1
1
1
1

1
.
1

1
1

1
В матрице Адамара Н8 каждая строка задает соответствующую функцию
Уолша с интервалом определения [0,1) и длиной подинтервала
знакопостоянства 1/8.
_______________ . _______________
Система Уолша-Хармута {har(k,z)}. Функции Уолша в этой системе
располагаются в порядке увеличения числа знакоперемен на интервале
определения. Эту систему также можно получить из системы Уолша-Пэли.
При этом номер соответствующий функции Уолша системы Пэли равен коду
Грея двоичного кода заданного номера функции Уолша системы Хармута.
Код Грея образуется последовательным суммированием по модулю 2
соседних разрядов двоичного разложения, начиная с младшего:
<km>=km+km+1 (mod 2), m=1, 2, …n, kn+1=0, где сложение по модулю два
выполняется по правилам: 0+0=0; 1+0=1; 0+1=1; 1+1=0. С учетом этого
систему Хармута аналитически можно записать в виде:


har (k , z )   [ r ( m, z )]
 km 
  k m  zm
 ( 1) m1
,
m 1
(4.73)
n
n
har (k , z )   [r (m, z )]
 km 
  k m  zm
 (1) m1
.
m 1
Все три системы взаимосвязаны друг с другом, поскольку содержат
одни и те же функции Уолша. Поэтому при конечном n их можно построить,
используя одну систему (например, Пэли) в качестве базовой. В табл. 4.1.
указаны номера функций Уолша системы Пэли, которые нужно использовать
при построении систем Адамара и Хармута для N=8. Такие таблицы, а также
аналитические зависимости (4.65), (4.68)÷ (4.70) и (4.73) можно использовать
при синтезе генераторов функций Уолша.
Таблица 4.1
Номер
функции
в
системе
000=0
001=1
010=2
011=3
Номера функций Пэли
для
системы
Адамара
для
системы
Хармута
000=0
100=4
010=2
110=6
000=0
001=1
011=3
010=2
Номер
функции
в
системе
100=4
101=5
110=6
111=7
239
Номера функций Пэли
для системы
Адамара
для системы
Хармута
001=1
101=5
011=3
111=7
110=6
111=7
101=5
100=4
Своим названием система Хармута обязана Х.Хармуту (Н.Harmuth),
который совместно с Ф.Пихлером получил ее диадной (двухзначной)
модуляцией функций тригонометрической системы [61, 73]. Она является
составной системой, т.к. в ней четные функции (относительно середины
интервала определения) чередуются с нечетными. В этом смысле она
подобна тригонометрической системе и для подчеркивания этого подобия
авторы использовали специальное обозначение четных и нечетных функций,
созвучных с аналогичными обозначениями тригонометрических функций:
{har(k,z)}={cal(p,z); sal(p,z)} (буквы s и с взяты из обозначения
тригонометрических функций, а буквосочетание al – из записи фамилии
Уолша - Walsh). При этом
cal(p,z)=har(2p,z),
p=0, 1, … ,
(4.74)
sal(p,z)=har(2p-1,z), p=1, 2, ….
cal(0,z)
cal(2,z)
+1
-1/2 -3/8 -1/4 -1/8
+1
0 1/8 1/4 3/8 1/2 z
-1/2 -3/8 -1/4 -1/8
0 1/8 1/4 3/8 1/2 z
-1
sal(3,z)
sal(1,z)
+1
+1
0
0
z
-1
cal(1,z)
z
-1
cal(3,z)
+1
+1
0
0
z
-1
sal(2,z)
z
-1
sal(4,z)
+1
+1
0
1z
0
-1
z
-1
Рис. 4.5. Система функций Уолша-Хармута для N=8 и z  [-0,5; 0,5)
240
Пример 4.16. Построить систему Уолша-Хармута для N=8 при
z  [-0,5; 0,5).
Решение. Используя аналитическое описание (4.73) либо табл. 4.1 с
учетом соотношения (4.74), можно получить систему Хармута из 8-ми
функций, графики которых приведены на рис. 4.5.
_______________ . _______________
Несмотря на то, что система Хармута является составной системой,
номер р простых функций cal(p,z) и sal(p,z) в ней не имеет физического
смысла частоты изменения, но соответствует частоте следования. Поэтому
система Хармута упорядочена не по частоте, а по секвенте. Применение
функций cal(p,z) и sal(p,z) позволило Хармуту создать свою теорию
секвентного анализа, похожую на теорию частотного анализа, хотя и
имеющую ряд принципиальных отличий [61]. К вопросу о порядке
следования функций Уолша в различных базисных системах и его связи с
частотой и секвентой мы еще вернемся в §5.1 при рассмотрении функций
Виленкина-Крестенсона, частным случаем которых являются функции
Уолша.
Простые четные cal(p,z) и нечетные sal(p,z) функции могут быть
использованы и для образования формальной и комплексной базисных
систем на основе функций Уолша. Однако такие системы не получили
широкого развития.
Так как все рассмотренные системы используют одни и те же функции
Уолша, но в различной последовательности, то с общей точки зрения для
представления математических функций и сигналов они равноправны.
Различие этих систем может проявляться при формулировании отдельных
свойств конкретных сигналов.
Приведем основные свойства непрерывных функций Уолша,
образующих перечисленные базисные системы. Без потери общности
рассмотрим только функции, определенные на интервале [0,1). Так как
свойства справедливы для всех систем Уолша, воспользуемся общим
обозначением функций Уолша в виде wal(k,z).
1. Ортогональность. Функции Уолша ортогональны на интервале их
определения. Для них справедливо равенство
241
1
 wal (k , z )wal (m, z )dz  
k ,m
.
0
2. Нормированность. Функции Уолша нормированы при любом k, так
как
1
 [wal (k , z )] dz  1 .
2
0
3. Периодичность. Любая функция Уолша есть периодическая
функция с периодом, равным единице:
wal (k , z  1)  wal (k , z ).
4. Модуль и среднее функций Уолша. Так как функции Уолша
принимают только значения 1 , то модуль функций Уолша равен единице, а
среднее значение функций Уолша для всех k≠0 равно нулю, т.е.:
1
| wal (k , z ) | 1;  wal (k , z )dz  0.
0
5. Симметрия (двойственность). Так как k и z входят в выражения для
функций Уолша (4.65), (4.67) и (4.70) в виде суммы произведений, которая не
меняется при замене m на n+1-m, то любые выводы относительно
переменной z справедливы и для переменной k, и наоборот. Исходя из этого,
для функций Уолша выполняется равенство
wal (k , z )  wal ( zN , k / N ).
(4.75)
Для нормированного аргумента i/N запись свойства симметрии упрощается
wal (k , i / N )  wal (i, k / N ).
(4.76)
6. Мультипликативность. Произведение двух функций Уолша равно
другой функции этой же системы:
wal (k , z )  wal ( p, z )  wal (q, z ),
(4.77)
причем
q  k () 2 p.
(4.78)
Здесь (+)2 означает операцию поразрядного суммирования двоичных
кодов чисел k и p по модулю два. Таки м образом, для функций Уолша
операцией мультипликативности является операция поразрядного сложения
по модулю два. В комплексном экспоненциальном базисе такой операцией
было обычное сложение. Интересным является так же и то, что в
тригонометрических базисах свойством мультипликативности обладает
242
только одна комплексная система, в то время как в системах Уолша
мультипликативны действительные системы Пэли, Адамара и Хармута.
7. Порядок и ранг функций Уолша. Функции Уолша и их спектры
бывает удобным характеризовать двумя параметрами, связанными с
двоичным разложением их номеров. Первый из них определяет
максимальный номер ненулевого двоичного разряда k и называется порядком
(Р). Второй параметр – ранг (R) функции Уолша – показывает число
двоичных разрядов, в которых число k содержит единицы. Так, например,
функция wal(5, z)=wal(101, z) является функцией Уолша третьего порядка и
второго ранга, т.е. для нее P=3, а R=2. Функции Радемахера, входящие в
состав систем Уолша, в системах Пэли и Адамара являются функциями
первого ранга.
Для номеров различного ранга можно ввести
специальное
обозначение. В дальнейшем номер ранга, равного r, будем обозначать в виде
k(R=r) . Его запись в десятичной системе счисления зависит от способа
упорядочения систем Уолша и вида двоичного представления k . Для систем
Пэли и двоичной записи числа k в виде (4.64)
k (R  r)  2
1 1
2
2 1
 ...  2
r 1
1 r i
 2 ,
2 i 1
(4.79)
где µi – номера разрядов, содержащих единицу. Например, для wal(5, z) ранг
1
2
1
3
r равен 2 и µ1=1, а µ2=3, поэтому k  (2  2 )  5.
Область изменения всех µi в разложении k (4.79) должна удовлетворять
следующей системе равенств:
- при бесконечном n
µ1=1, 2, … ;
µ2= µ1+1, … ;
……………….
µr= µr-1+1, … ;
- при конечном n
µ1= 1, 2, …, n-r+1;
µ2= µ1+1, …, n-r+2;
(4.80)
………………………
µr= µr-1+1, …, n.
Выражение (4.79) можно упростить, если принять изменение
переменной µ1 с нуля. Тогда
243
r
k ( R  r )   2 i ,
i 1
(4.81)
а
µ1= 0, 1, …, n-r;
µ2= µ1+ 1, …, n-r+1;
…………………………
(4.82)
µr= µr-1+ 1, …, n-1.
Например, для функций Уолша-Пэли второго ранга при N=8 имеем:
k ( R  2)  21  22 , µ1=0, 1; µ2=µ1+1, 2, т.е. k =3, 5, 6. Таким образом,
система Уолша-Пэли из 8 функций будет содержать три функции второго
ранга. Это функции pal(3,z), pal(5,z) и pal(6,z).
В общем случае при конечном n число функций r-го ранга Nr равно
N r  Cnr 
n!
.
r !(n  r )!
Нулевая функция Уолша wal(0,z) считается функцией нулевого ранга.
Номер k функции Уолша p-го порядка и r-го ранга условно обозначим как
k(P=p, R=r).
Для ранга и
порядка функций Уолша справедливо следующее
свойство: ранг произведения функций Уолша не превосходит суммы их
рангов; порядок произведения не превосходит максимального из порядков
сомножителей.
Справедливость
этого
свойства
следует
из
мультипликативности функций Уолша и особенностей операции сложения
по модулю два. Например, для k=101 (P=3, R=2) и α=010 (P=2, R=1) сумма
k(+)2α=111(P=3; R=3).
Все рассмотренные базисные системы Уолша могут быть
использованы для спектрального представления интегрируемых или
интегрируемых с квадратом непрерывных сигналов x(t) с односторонним
или двухсторонним конечным интервалом определения. Для этого
необходимо переменную z по алгоритму (3.27) преобразовать в переменную
t. Для сигналов x(t) с t  [0,T) или t [-T/2, T/2) такое преобразование дает один
и тот же результат: z=t/T. Поэтому дли них непрерывный ряд Фурье-Уолша
имеет следующий вид:

x(t )   X (k ) wal (k , t / T ),
k 0
244
(4.83)
где спектр Уолша X(k) равен
1
x(t ) wal (k , t / T )dt.
(4.84)
T T
Здесь интегрирование ведется в пределах от 0 до Т либо от –T/2 до T/2. При
X (k ) 
этом равенство Парсеваля можно записать следующим образом:

1 2
x (t )dt   X 2 (k ).

TT
K 0
Усеченный ряд Уолша
(4.85)
N 1
xN (t )   X (k ) wal (k , t / T )
k 0
при N   обладает равномерной и среднеквадратической сходимостью и
может быть использован для аппроксимации сигналов, описываемых
интегрируемыми или интегрируемыми с квадратом функциями. Особенно
удобно использовать ряды Уолша для представления сигналов с разрывами
первого рода (например, сигналов в виде прямоугольных импульсов),
поскольку в этом случае отсутствуют погрешности аппроксимации,
связанные с явлением Гиббса.
Для практических вычислений спектров Уолша сигналов с известным
аналитическим описанием целесообразно формулы (4.83) и (4.84)
видоизменить. Так как функции Уолша имеют N участков знакопостоянства,
то, например, формулу (4.83) можно преобразовать так:
t
t
i 1
1 N 1 i1
1 N 1
X (k )    x(t )wal (k , t / T )dt   wal (k , i / N )  x(t )dt ,
T i 0 ti
T i 0
ti
где
ti и
ti+1 задают i-й подинтервал интервала определения (i– номер
подинтервала). Обозначив (t )   x(t )dt , получим
1 T  1
1 N 1
X (k )      (0)   wal (k , i / N ){[T (i  1) / N ]  [Ti / N ]}.
T N T
T i 1
Раскроем сумму в данном выражении и изменим порядок суммирования,
тогда
X (k )  
... 
1
1
(0)  (T / N )[ wal ( k , 0)  wal ( k ,1/ N )]  ...
T
T
1
[( N  1)T / N ][ wal ( k , ( N  2) / N )  wal ( k , ( N  1) / N )] 
T
(T ) wal (k , ( N  1) / N ).
245
В этой зависимости wal(k,(N-1)/N) – значение функции Уолша на
последнем подинтервале. Для системы Пэли это значение при четном ранге k
равно +1, а при нечетном равно -1. С учетом этого спектральный
коэффициент Уолша-Пэли ранга r
1
(1)r
2 N 1
X (k ( R  r ))   (0) 
(T )   (Ti / N ) i ,
T
T
T i 1
(4.86)
где
i  pal (k ,(i  1) / N )  pal (k , i / N )
и равно +1, если функция pal(k,i/N) в точке i/N меняет знак с «+» на «-»,
равно -1, если функция pal(k,i/N) в точке i/N меняет знак с «-» на «+», и равно
0, если данная функция в этой точке знака не меняет.
Пример 4.17. Найти разложение Уолша-Пэли линейного сигнала
x(t)=at+в при N=8 ( а и в – константы, t  [0,T)).
2
Решение. Для этого примера (t )  at / 2  вt. Тогда в соответствии с
функциями Уолша (4.67) по формуле (4.86) получим:
X (1) (0)  aT / 2  в; X (1) (1)  (aT / 2  в)  2(aT / 8  в / 2)  aТ / 4;
X (1) (2)  (aT / 2  в)  (4aT / 64  в / 2)  (16aT / 64  в)  (36aT / 64  3в / 2)  aТ / 8;
X (1) (3)  (aT / 2  в)  (4aT / 64  в / 2)  (36aT / 64  36 / 2)  0;
X (1) (4)  (aT / 2  в)  (aT / 64  2в / 8)  (4aT / 64  в / 2)  (9aT / 64  3в / 4) 
(16aT / 64  в)  (25aT / 64  5в / 4)  (36aT / 64  6в / 4)  (49aT / 64  7в / 4)  aT /16.
Коэффициенты X(1)(5), X(1)(6)и X(1)(7) равны нулю.
Усеченный ряд Уолша-Пэли линейного сигнала при N=8 имеет вид
aT 2  
at  в  (aT / 2  в) 
2 pal (2 , t / T ).

4  0
Этот ряд можно обобщить на случай N   , в результате чего будет получен
полный ряд Уолша-Пэли этого сигнала
aT   
at  в  (aT / 2  в) 
2 pal (2 , t / T ).
(4.87)

4  0
_______________ . _______________
Пример 4.18. Найти разложение Уолша-Пэли степенного сигнала
x(t)=t2 при N=8.
3
Решение. Здесь (t )  t / 3. Расчет по формуле (4.86) приводит к
следующим результатам: X(2)(0)=T2/3; X(2)(1)=-T2/4; X(2)(2)=-T2/8; X(2)(3)=T2/16;
246
X(2)(4)=-T2/16; X(2)(5)=T2/32; X(2)(6)=T2/64; X(2)(7)=0. Усеченный ряд Уолша-Пэли
этого сигнала при N=8
2
T 2 2 
T2 1

t  T /3
2 pal (2 , t / T ) 
2  ( 1  2 ) pal (2 1  2 2 , t / T ).



4  0
8 1 0 2  1 1
Полный ряд Уолша-Пэли квадратичного сигнала имеет следующий вид:
2
2


t  T / 3  (T / 4) 2 pal (2 , t / T )  (T / 8) 
2
2
2


2
 0
1  0


 
2 ( 1  2 ) pal (2 1  2 2 , t / T )
2  1 1
(4.88)
_______________ . _______________
С увеличением степени сигнала сложность расчета спектра по формуле
(4.86) возрастает. Далее мы приведем другой более простой способ
определения спектра Уолша-Пэли степенных и полиномиальных сигналов.
Поскольку функции Уолша являются мультипликативными, то для их
спектров справедливы все свойства спектров мультипликативных базисов,
доказанные в §3.8, т.е. выполняются теоремы о сдвиге, модуляции,
умножении сигналов, свертке и корреляции. При этом операцией
обобщенного сдвига является поразрядное сложение по модулю два (+) 2 вне
зависимости от направления сдвига, т.к. вычитание и сложение по модулю
два приводят к одинаковому результату. По этой же причине обобщенную
свертку и обобщенную корреляцию в базисах Уолша называют двоичными
(логическими) или диадическими [30, 46]. По форме записи они совпадают с
точностью до постоянного множителя 1/T:
T /2
x1 x2 

x1 (t ) x2 (t () 2 )dt ,
T / 2
T /2
1
R( ) 
x(t ) x(t ( ) 2 )dt.
T T/ 2
Диадическая автокорреляционная функция является четной функцией
по отношению к диадическому сдвигу, в нулевой точке равна мощности
сигнала и
связана с его энергетическим спектром обобщенными
уравнениями Винера-Хинчина (3.77), записанными для конечного интервала
времени с заменой общей операции (+)
на диадическую (+)2 .
Энергетический спектр сигнала в базисах Уолша инвариантен к
диадическому сдвигу сигнала. Такие свертки и корреляции используются при
247
исследовании логических систем и цепей [30, 59], а так же в задачах
идентификации сигналов и распознавания образов.
Для любого кусочно-постоянного сигнала, содержащего N=2n (n = 1,
2, …) равных участков постоянства (например, импульсные сигналы) ряд
Уолша не содержит более N членов. Конечность разложения Уолша кусочнопостоянного сигнала объясняется тем, что все функции Уолша с номерами
k≥N будут иметь на каждом участке постоянства равное число значений 1
и 1 . Поэтому все спектральные коэффициенты Уолша с такими номерами
равны нулю. Это свойство выполняется для любого способа упорядочения
функций Уолша в базисной системе.
Степенной полином r-ой степени раскладывается в ряд Уолша-Пэли по
функциям ранга не более r . Действительно, разложение сигнала
r
x(t )   t 
 0
с учетом (4.87) имеет вид




x(t )   T / 2  (T / 4) 2  pal (2  , t / T )  .
 0 
 0

r
В соответствии со свойством о ранге и порядке функций Уолша оно не будет
содержать членов ранга более r-го.
Приведенная формула неудобна для вычисления ряда Уолша-Пэли
полиномиальных сигналов при больших значениях r . Задача значительно
упрощается, если использовать следующее рекуррентное соотношение для
вычисления спектров X
( )
(k ) степенных сигналов x(t )  t  ,   0,1, ... на
интервале [0,T):
X
( )
T (  1)
T    (  1)
(k )  X
(k )   2 X
(k ()2 2 ).
2
4  0
(4.89)
Здесь
X
( )
T
1
(k )   t  pal (k , t / T )dt , k  0, 1,... .
T 0
Для доказательства этого соотношения функцию t  представим в виде
произведения t  1  t. Затем к произведению функций применим теорему о
спектре Уолша произведения двух сигналов. Тогда получим
248

X (  ) (k )   X (  1) (k () 2 m) X (1) (m)
m 0
Если теперь учесть, что спектры Уолша-Пэли нулевого и первого рангов
линейного сигнала равны (см. (4.89))
X(1)(0)=T/2, X (1) (2 )  (T / 4)  2  , а
спектры ранга, большего единицы, равны нулю (т.е. все X(1)(k(R>1))=0), то из
предыдущего выражения нетрудно получить и рекуррентное соотношение
(4.89).
При практических расчетах, ограничиваясь N функциями системы
Пэли, его можно использовать в усеченном виде
T (  1)
T n1   (  1)
X (k )  X
(k )   2 X
(k ( ) 2 2  ).
(4.90)
2
4  0
Увеличивая  от 2 и далее, по формуле (4.89) или (4.90) можно
последовательно получить аналитические зависимости для спектров УолшаПэли степенных функций различных степеней. Начальными значениями в
этом процессе будут соотношения спектров постоянного и линейного
сигнала, полученные в примере 4.17 и в работе [44].
Пример 4.19. Вывести зависимости для спектра Уолша-Пэли сигнала
x(t)=t2.
Решение. В соответствии с (4.89) для t2 имеем
( )
T (1)
T    (1)
X (k )  X (k )   2 X (k ()2 2 ), k  0, 1, ... .
2
4  0
(2)
Рассмотрим коэффициенты X (k) различных рангов. Для коэффициента
нулевого ранга (k=0)
(2)
T (1)
T    (1) 
T 2 T 2  2  T 2
X (0)  X (0)   2 X (2 ) 

2  3 .
2
4  0
4 16  0
Для коэффициентов первого ранга (k=2µ-1, µ=1, 2, … или, что проще, k=2µ,
(2)
µ=0, 1, …)
X
(2)
T (1)  T    (1) 
(2 )  X (2 )   2 X (2 () 2 2 1 ).
2
4 1 0

Здесь для любого   1 все
при   1 справедливо
X (1) (2 () 2 21 ) будут равны нулю (т.к.
2 () 2 21  2   2 1 , что определяет номера
спектральных коэффициентов второго ранга сигнала x(t)= t,
соответствии с (4.87) равны нулю). Поэтому
249
которые в
X
(2)
T (1)  T   (1)
T 2 
(2 )  X (2 )  2 X (0)   2 .
2
2
4

 1
 1
Для коэффициентов второго ранга (k  2 1  2 2 , 1  1, 2, ..., 2  1  1, ...


или, что проще, k  2 1  2 2 , 1  0, 1, ..., 2  1  1, ...)
X
(2)
T (1) 1
T   3 (1) 1
2
(2  2 )  X (2  2 )   2 X ((2  2 2 )( ) 2 2 3 ) 
2
4 3 0
1
2
T   3 (1) 1
   2 X ((2  22 )() 2 2 3 ).
4 3 0
В этом выражении для всех
3 ,
не равных
1
и
(4.91)
2 ,
величины
X (1) ((2 1  2 2 )() 2 2 3 ) будут являться коэффициентами Пэли третьего
ранга и равны нулю. Поэтому бесконечная сумма в (4.91) будет содержать
только два не равные нулю члена (при  3 = 1 и  3 = 2 ):
X
(2)
2
T
T
T  ( 1  2 )
(2  2 )   2 1 X (1) (2 2 )  2  2 X (1) (2 1 ) 
2
.
2
4
8
1
2
Все коэффициенты ранга выше двух X (2) (k ( R  2)) будут равны нулю в
соответствии со свойствами
сигнала.
Таким образом,
разложения Уолша-Пэли полиномиального
X (2) (0)  T 2 / 3; X (2) (2 )  (T 2 / 4)2  ;
(4.92)
X (2) (21  22 )  (T 2 / 8)2( 1  2 ) ; X (2) (k ( R  2))  0.
Эти зависимости совпадают с выражениями для спектров Уолша-Пэли
сигнала t2, полученные в примере 4.18 прямым методом.
_______________ . _______________
Используя формулу (4.89), можно получить общее выражение для
спектра Уолша-Пэли r-го ранга степенного сигнала x(t)=tr:
X
(r )
Tr
(2  2  ...  2 )  (1) 2 r r !2 ( 1  2 ... r ) ,
2
1
2
r
r
(4.93)
где область изменения переменных i соответствует системе равенств (4.82).
Следует иметь в виду, что все полученные зависимости спектров степенных
сигналов справедливы только для системы Пэли и не выполняются для
других способов упорядочения функций Уолша.
250
Формула (4.93) позволяет получить важную оценку спектра УолшаПэли для сигналов, описываемых гладкими дифференцируемыми
функциями:
| X (k ( R  r ) | x
(r )
r
max
T 2

r ( r 3)
2
,
(4.94)
где x(r)max – максимальное значение r-й производной сигнала x(t).
Для доказательства этой оценки представим функцию x(t) в виде ряда
Тейлора
x(t )  x
x(  ) 

t

!
 1

(0)
и найдем ее спектральный коэффициент ранга, большего или равного r :
T
1
X (k ( R  r ))   x (0) pal (k ( R  r ), t / T )dt 
T 0

x( ) 
x( ) ( )

t pal (k ( R  r ), t / T )dt  
X (k ( R  r )).


!
T

!
 1
 1
0

T
( )
Так как все X (k ( R  r )) для   r равны нулю, то
x( ) ( )
X (k ( R  r ))  
X (k ( R  r )).

!
 r

В соответствии с общей формулой для спектра r-го ранга (4.93) данный
ряд будет знакопеременным с убывающими по модулю членами. Поэтому
будет справедливо следующее неравенство
r
 i
x
x T
(r )
| X (k ( R  r )) |
| X (k ( R  r )) | 2 r 2 i1 .
r!
2
(r )
(r )
r

Величина | X (k ( R  r )) | достигает максимума при максимуме x(r) и минимуме
r
 i
2 i1 .
функции
Этот минимум соответствует нижним граничным
значениям переменных µi из области (4.82), т.е. при µ1=0; µ2=1, … µr=r-1.
Учет этого и приводит к оценке (4.94).
Оценку (4.94) можно записать и в функции порядка и ранга
спектрального коэффициента Уолша. Для коэффициента порядка p и ранга r
она будет иметь вид
251
p

r ( r 1)
2
| X (k ( P  p; R  r )) | x maxT 2  2
.
(4.95)
Формулы (4.94) и (4.95) показывают, что с ростом порядка и ранга
функций Уолша спектральные коэффициенты Уолша-Пэли разложений
гладких функций и сигналов быстро убывают (по закону показательной
функции с основанием два). Это хорошо согласуется с известным из
практики фактом быстрой сходимости к нулю спектра Уолша-Пэли для
широкого класса непрерывных сигналов. В задачах, связанных с
сортировкой спектра, этот факт может оказаться предпочтительным для
использования системы Пэли по сравнению с системами Хармута и Адамара,
где спектр Уолша не располагается в порядке его убывания по абсолютному
значению.
Для цифровой обработки сигналов могут быть использованы только
дискретные функции Уолша wal(k,i/N), где i определяет уже не номер
подинтервала непрерывного интервала определения, как ранее, а номер
точки дискретного интервала определения (момент дискретного времени). В
тех случаях, когда величина N известна и не меняется, ее можно опускать и
использовать более простую запись дискретной функции Уолша: wal(k,i),
k=0, 1, …, N-1.
Дискретные функции Уолша можно получить дискретизацией их
непрерывных аналогов. При этом в зависимости от интервала определения
непрерывных функций [-0,5; 0,5) или [0,1) можно получить дискретные
функции Уолша с изменением i от –N/2
до N/2-1 и от 0 до N-1
соответственно. Принимая за основу непрерывные системы Уолша с
различным порядком следования функций – системы Пэли, Адамара,
Хармута и др. – можно построить соответствующие дискретные системы.
При этом все системы для одного и того же N должны содержать одни и те
же функции Уолша и отличаются только последовательностью их
расположения в системе.
При дискретизации функций Уолша моменты их отсчетов следует
выбирать таким образом, чтобы полученные дискретные системы
удовлетворяли требованиям ортогональности и полноты. Дискретизацию
составной непрерывной системы Хармута можно выполнить с помощью
ранее описанной процедуры Трахтмана. Для этого необходимо выбрать
первые N+1 функции Уолша этой системы и взять их значения в моменты
(r )
252
r
знакоперемен функции sal(N/2, t/T). Сама функция sal(N/2, t/T) при этом
исключается.
В результате будет получена следующая полная и
ортогональная система Хармута дискретных функций Уолша:
{cal(0, i/N); sal(1, i/N); cal(1, i/N); …; cal(N/2-1, i/N); cal(N/2, i/N)}
Пример 4.20. Записать дискретные системы Уолша-Хармута,
определенные на интервалах [-2, 2) и [0, 8).
Решение. Выберем из непрерывной системы Хармута (см. рис. 4.5)
первые пять функций. Это будут функции cal(0, t/T); sal(1, t/T); cal(1, t/T);
sal(2, t/T); cal(2, t/T). Моменты отсчетов дискретной оси i выберем
совпадающими с моментами изменения знака функции sal(2, t/T).
Определим значения всех остальных функций Уолша в эти моменты. В
результате будет получена система, которую можно представить в
следующем матричном виде
1 1
 1 1
{har (k , i / 4)}  
 1 1

 1 1
1
1 1 
.
1 1

1 1
1
Аналогичным образом может быть получена система дискретных
функций Уолша-Хармута на одностороннем интервале [0,8):
1
1

1

1
{har (k , i / 8)}  
1

1
1

1
1
1
1
1
1
1
1
1
1 1 1
1
1 1 1 1
1
1
1 1
1
1
1
1
1 1
1
1
1 1
1 1
1
1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1

1
1

1
1

1
_______________ . ______________
Дискретизация системы Хармута приводит к еще одному интересному
результату: значения дискретной функции cal(N/2, i/N) полностью совпадают
со значениями непрерывной функции sal(N/2, t/T) в точках ее знакоперемен.
Этот факт объясняется разрывным характером изменения функций Уолша и
не имеет места в строго непрерывных функциях (например, в функциях
тригонометрической системы). Его легко проверить, если сравнить функции
253
sal(2, t/T) и cal(2, i/N) предыдущего примера. Данное обстоятельство
позволяет упростить процедуру дискретизации функций Уолша.
Суть упрощенной процедуры дискретизации будет состоять в
следующем. Из системы непрерывных функций выбираются первые N
функций. Из них отбирается функция с наибольшим числом знакоперемен и
отсчеты всех N дискретных функций Уолша определяются по их значениям в
точках изменения знака этой функции. Полученная таким образом базисная
система будет полной и ортогональной и пригодной для разложения
решетчатых сигналов произвольной формы с конечным интервалом
определения. Непрерывные функции Уолша будут являться кусочнопостоянными огибающими соответствующих дискретных функций.
Такая процедура дискретизации пригодна для любого способа
упорядочения функций Уолша.
Пример 4.21. Построить дискретную систему Уолша-Пэли,
определенную на интервале [0, N) для N=8.
Решение. Рассмотрим первые восемь непрерывных функций Уолша
системы Пэли (см. рис. 4.4). Из них наибольшее число знакоперемен
содержит функция pal(4, t/T). Найдем значения всех функций, включая и
функцию pal(4/ t/T), в точках знакоперемен этой функции. В результате будет
получена следующая дискретная система Уолша-Пэли:
1
1

1

1
{ pal (k , i / 8)}  
1

1
1

1
1
1
1
1
1
1
1
1 1 1
1
1 1
1
1 1 1 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1 1
1
1
1 1
1
1
1 1
1 1
1
1
1
1
1
1
1
1

1
.
1

1
1

1
_______________ . _______________
Дискретные функции Уолша можно описать аналитически, выразив их
через дискретные функции Радемахера. При этом функции систем Пэли и
Адамара определяются выражениями (4.68)÷(4.70), где i – номер точки
дискретного интервала определения этих функций. Дискретные функции
системы Хармута можно аналитически представить как
254
n
n
har (k , i / N )   [ r ( m, i / N )]
 km 
  knm1 im
 ( 1) m1
m 1
.
(4.96)
Для дискретных функций Уолша справедливы свойства, присущие
непрерывным функциям Уолша. При этом из-за конечного числа точек
интервала определения условие ортонормированности на [0, N) имеет вид
1
N
N 1
 wal (k , i / N ) wal (m, i / N )  
i 0
k ,m
,
(4.97)
N 1
а среднее значение (1/ N ) wal (k , i / N ) равно нулю при всех k , отличных
i 0
от нуля. Дискретные функции Уолша периодичные с периодом N , т.е.
wal (k , (i  N ) / N )  wal (k , i / N ) .
Свойство симметрии для дискретных функций
Уолша
записывается выражением (4.76). Это свойство приводит к
симметричности матрицы функции Уолша.
Дискретные сигналы x(i), определенные на интервале [-N/2, N/2) или
[0, N), можно разложить в дискретный ряд Уолша
N 1
x(i )   X (k ) wal (k , i / N ),
k 0
(4.98)
где спектральные коэффициенты X(k) равны
X (k ) 
1
N
N
1
2

x(i ) wal (k , i / N )
i  N / 2
(4.99)
либо
1 N 1
 x(i)wal (k , i / N ).
N i 0
Равенство Парсеваля имеет дискретный вид
X (k ) 
1
N
1
N
N
1
2
N 1

x (i )   X 2 (k ),
2
i  N / 2
k 0
N 1
x
i 0
(4.100)
(4.101)
N 1
2
(i )   X 2 (k )
k 0
(4.102)
и может быть использовано для проверки полноты базисной системы и
контроля процесса анализа спектра Уолша.
Для системы Хармута дискретный ряд Уолша можно представить еще
и так
255
N
1
2
x(i)  X Ч (0)   [ X Ч ( p)cal ( p, i / N )  X H ( p) sal ( p, i / N )]  X Ч ( N / 2)cal ( N / 2, i / N ), (4.103)
p 0
где
1
X Ч ( p) 
N
N
1
2
1
x
(
i
)
cal
(
p
,
i
/
N
)


N
i  N / 2
N 1
 x(i)cal ( p, i / N ),
(4.104)
i 0
p=0, 1, …, N/2,
X H ( p) 
1
N
N
1
2

x(i )sal ( p, i / N ) 
i  N / 2
1
N
N 1
 x(i)sal ( p, i / N ),
(4.105)
i 0
p= 1, 2, …, (N/2)-1
являются соответственно четными и нечетными составляющими общего
спектра сигнала: {X(k)}={XЧ(p); XH(p)}. Равенство Парсеваля при этом можно
записать в следующем объединенном виде
N 1
N
1
2
N
1
2
1
1
x 2 (i) 
x 2 (i)  X Ч2 (0)   [ X Ч2 ( p)  X H2 ( p)]  X Ч2 ( N / 2). (4.106)


N i 0
N i  N / 2
p 1
Дискретные
функции
Уолша
обладают
двойной
мультипликативностью (относительно индексов k и
i) с операцией
мультипликативности в виде поразрядного сложения по модулю два. Эта же
операция используется при записи диадических дискретных сверток и
корреляций
y ( m) 
N
1
2

i  N / 2
N 1
x(i )u (i () 2 m)   x(i )u (i () 2 m),
i 0
N
1
2
1
1 N 1
R ( m) 
x(i)x(i( ) 2 m)
 x(i) x(i()2 m)  N 
N i  N / 2
i 0
сигналов, определенных на двухстороннем [-N/2,
для
N/2) или
одностороннем [0, N) интервалах. Диадическая автокорреляционная функция
однозначно связана с дискретным спектром мощности сигнала в базисе
Уолша, который к тому же не меняется при его диадическом сдвиге.
Дискретный спектр мощности в системах Уолша записывается поразному. Для упорядочений Пэли и Адамара
S (k )  X 2 (k ), k  0,1,..., N  1,
а для упорядочения Хармута
S (0)  X Ч2 (0), S ( N / 2)  X Ч2 ( N / 2); S ( k )  X Ч2 (k )  X H2 (k ), k  1, 2,...
256
N
 1.
2
В последнем случае спектр имеет (N/2+1) отсчетов и распределен по
секвенте. Формально такой же спектр можно получить, если использовать
комплексную базисную систему, образованную из функций Уолша cal(k, i) и
sal(k, i):
  k , i   cal (k , i )  jsal (k , i ), k  0,1,...,
N
2
Такая интерпретация позволяет ввести и фазовый спектр Уолша-Хармута:
 (0)  0;  ( N / 2)   / 2,
и
 (k )  arctg
X H (k )
N
, k  1, 2, ...,  1.
X Ч (k )
2
Дискретные преобразования Уолша можно записать в компактном
матричном виде
x=WX,
X=
1
Wx,
N
где x и X являются матрицами-столбцами, образованными из осчетов сигнала
x(i) и его спектра Уолша X(k) соответственно, а W есть матрица значений
функций Уолша для выбранного способа их упорядочения. Матрица W
является симметрической и ортогональной, обратная ей матрица W 1 с
точностью до постоянного множителя 1/N совпадает с прямой матрицей, т.е.
W 1 =W/N.
Наряду со спектром мощности, инвариантным к диадическим сдвигам,
в базисах Уолша можно построить энергетический спектр, обладающий
свойством инвариантности относительно циклических сдвигов исходного
сигнала. Поступим так же, как мы это делали в базисе ДЭФ. Пусть сигнал
y1(m), как и ранее является результатом циклического сдвига влево на один
отсчет
сигнала
x(i) :{ y1 (m)}  {x(1), x(2), ..., x( N 1), x(0)}.
Тогда,
используя
матричную связь этих сигналов, приходим к следующему уравнению связи
между их спектрами:
Y1=
1
1
1
Wy1= WMx= WMWX=AX.
N
N
N
(4.107)
Это уравнение подобно уравнению (4.34) и отличается только видом
матрицы A:
A=
1
WMW.
N
257
Эта матрица обладает специфической структурой, отличной от
структуры марицы А в базисе ДЭФ. Наиболее просто ее можно
продемонстрировать для N=8.
Пример 4.22. Вычислить матрицу связи спектров для систем Пэли,
Адамара и Хармута при N=8.
Решение. Начнем с системы Пэли. Используя функции этой системы из
предыдущего примера, после
выполнения необходимых матричных
операций получим
1 0

0 1
2

0 0

0 1

2
А = 
0 0

1
0
2

0 0

0  1

2
0
0
1
2
0
0
0 
0
0
0
0
0
0
1
0
1
2
0
1
2
0
1
2
0
1
0
0
0
0
1
2
0

1
2
0
1
2
0


1
2
0 
1
0  
2
1 0 

1
0  
2
.
0
0 
1 
0

2 
0
0 

1
0 
2 
0
Все элементы этой матрицы можно разбить на 4 группы. В нулевую
войдет один элемент, лежащий на пересечении нулевой строки и нулевого
столбца (он равен 1); в первую группу – также один элемент, который
находится на пересечении четвертой строки и четвертого столбца (он равен
-1), во вторую группу войдут два элемента, лежащие на пересечении вторых
и шестых строк и столбцов (они равны +1 и -1), а в последнюю третью
группу – все остальные элементы (они равны 1 / 2 ), находящиеся на
пресечении строк и столбцов с номерами 1, 3, 5 и 7. Элементы, входящие в
одну группу, не могут принадлежать другим группам. Это особенность
матрицы А приводит к тому, что при решении матричного уравнения (4.107)
спектральные коэффициенты Y1(k) так же можно разбить на группы, в
пределах каждой из которой они будут связаны только с коэффициентами
X(k) с номерами, совпадающими с номерами коэффициентов Y1(k) этой
группы:
Y1 (0)  X (0); Y1 (4)   X (4);
Y1 (2)   X (6); Y1 (6)  X (2);
258
1
Y1 (1)  [ X (1)  X (3)  X (5)  X (7)],
2
1
Y1 (3)  [ X (1)  X (3)  X (5)  X (7)],
2
1
Y1 (5)  [ X (1)  X (3)  X (5)  X (7)],
2
1
Y1 (7)  [ X (1)  X (3)  X (5)  X (7)].
2
Если теперь найти суммы квадратов коэффициентов Y1(k) в пределах каждой
группы, то они будут равны соответствующим суммам квадратов таких же
коэффициентов X(k)
Y12 (0)  X 2 (0); Y12 (4)  X 2 (4);
Y12 (2)  Y12 (6)  X 2 (2)  X 2 (6);
Y12 (1)  Y12 (3)  Y12 (5)  Y12 (7)  X 2 (1)  X 2 (3)  X 2 (5)  X 2 (7).
В общем случае при произвольном N=2n элементы матрицы А разбиваются
на (n+1) группу, а суммы квадратов спектральных коэффициентов
образуются по следующему правилу:
Y12 (0)  X 2 (0); Y12 ( N / 2)  X 2 ( N / 2);
2k 1 1
Y
j 0
2
1
[ N (1  2 j ) / 2 ] 
k
2k 1 1

X 2 [ N (1  2 j ) / 2 k ], k  2, 3, ..., n.
j 0
Для системы Адамара, используя матрицу Адамара из примера 4.15,
после преобразований получаем
1 0
0 1

0 0

0 0

0 0
А = 

0 0

0 0


0 0

0
0
0
0
0
0
0
0
0
0
0 1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
2
1
2
1
2
1

2
1
2
1

2
1
2
1

2

1
2
1
2
1
2
1
2

0 
0 
0 

0 
1
 
2.
1 
2 

1

2

1
 
2 
Матрица взаимосвязи спектров при сдвиге сигнала в этом случае имеет
блочно-диагональную структуру и правило формирования групп ее
элементов и сумм квадратов спектров имеет здесь более простой вид:
Y12 (0)  X 2 (0); Y12 (1)  X 2 (1) ;
259
2k 1
Y
2
1
j  2k 1
( j) 
2k 1

X 2 ( j ), k  2, 3, ..., n.
j  2k 1
Для системы Хармута примера 4.20 матрица А имеет следующий вид:
1 0

0 1
2


1
0
2

0 0
А = 
0 0

1
0 
2

1

0 2

0 0
0
0
0
0
1
1
0 0 
2
2
1
1
0 0 
2
2
0 0 1 0

0
1
2
1
2
0
1
0
0
0
0
0
0
0
0
1
2
1
2
0

0
1
2
1
2
0

0
1
2
1

2
0

0

0


0

0

0

0


0

1
и по структуре близка к матрице А системы Пэли. Правило образования
групп в этом случае аналогично правилу формирования групп в базисе Пэли.
Отличие состоит в том, что спектры Хармута содержат четные и нечетные
составляющие, соответствующие функциям cal(m, i/N) и sal(m, i/N) системы.
Поэтому суммы квадратов спектров здесь выглядят так:
Y1Ч2 (0)  X Ч 2 (0); Y1Ч2 (
2k 2 1
 {Y
j 0

2k 2 1
 {X
j 0
2
Ч
2
1Ч
N
N
)  X Ч 2 ( );
2
2
[ N (1  2 j ) / 2k ]  Y12H [ N (1  2 j ) / 2 k ]} 
[ N (1  2 j ) / 2k ]  X H2 [ N (1  2 j ) / 2 k ]}, k  2, 3, ..., n.
_______________ . _______________
Результаты, полученные в приведенном примере, показывают, что
суммы квадратов спектральных коэффициентов сдвинутого сигнала в
пределах отдельных групп совпадают с соответствующими суммами
квадратов
спектральных
коэффициентов
несдвинутого
сигнала.
Следовательно, эти суммы не зависят от сдвига и могут быть использованы
для построения спектра мощности Уолша, инвариантного к циклическому
сдвигу на один отсчет. Этот спектр будет иметь следующий вид:
260
- для системы Пэли
S (0)  X (0); S ( k ) 
2
2k 1 1

X 2 [ N (1  2 j ) / 2 k ], k  1, 2, ..., n;
j 0
(4.108)
- для системы Адамара
S (0)  X 2 (0); S (k ) 
2k 1

X 2 ( j ), k  1, 2, ..., n;
j  2k 1
(4.109)
- для системы Хармута
S (0)  X Ч 2 (0); S (1)  X Ч2 ( N / 2);
S (k ) 
2k 2 1
 {X
j 0
2
Ч
[ N (1  2 j ) / 2k ]  X H2 [ N (1  2 j ) / 2k ]}, k  2,3,..., n. (4.110)
При любом способе упорядочения базисных функций инвариантный
энергетический спектр Уолша содержит n+1 составляющую.
Образованные по формулам (4.108)-(4.110) спектры мощности будут
инвариантными к циклическому сдвигу сигнала на любое число отсчетов.
Доказательство этого может быть выполнено также, как в §4.4, и следует из
указанных
особенностей
матрицы
А
преобразования
спектров.
Действительно, при сдвиге сигнала на два отсчета результирующий сигнал
{y2(m)} можно получить путем сдвига на один отсчет уже сдвинутого на один
отсчет сигнала {y1(m)}. Поэтому его спектр Y2(k) будет связан со спектром
Y1(k) таким же уравнением (4.107), каким определялась взаимосвязь спектров
Y1(k) и X(k):
Y2=AY1.
Тогда в соответствии со структурой матрицы А в пределах каждой группы ее
элементов суммы квадратов спектральных коэффициентов сигналов со
сдвигом на два отсчета и один отсчет будут равны между собой и равны
сумме
квадратов
соответствующих
спектральных
коэффициентов
несдвинутого сигнала. Поэтому эти суммы не будут зависеть от временного
сдвига сигнала на два шага и, следовательно, спектры мощности (4.108),
(4.109) и (4.110) будут инвариантны к сдвигу на два отсчета. Аналогичными
рассуждениями доказывается инвариантность таких спектров к сдвигам
исходного сигнала на большее число отсчетов.
261
Далее в следующей главе будет показано, что матрицы А в базисах
Уолша и ДЭФ являются частными случаями более общих матриц А в базисе
Виленкина-Крестенсона.
Для дискретных базисных систем Уолша справедливы свойства
спектров полиномиальных и степенных сигналов, приведенные ранее в этом
параграфе для непрерывных систем. Некоторое отличие имеется только в
аналитической записи этих свойств, что связано с заменой операции
интегрирования на операцию суммирования и конечностью дискретных
рядов Фурье-Уолша. Так, например, дискретный ряд Уолша-Пэли линейного
сигнала ai+в запишется так
a( N  1)
Nа n1  
аi  в 
в
2 pal (2 , i / N ),

2
4  0
а рекурентное соотношение для вычисления спектра дискретных степенных
сигналов i  (  1, 2, ...) примет конечный вид
X (  ) (k ) 
N  1 (  1)
N n1
X
(k )   2  X (  1) ( k ( ) 2 2  ),
2
4  0
(4.111)
где
X
а
(  1)
X
(0)
N 1
1
(k ) 
N
(0)  1, X
(0)
 i
1
pal (k , i / N ),
i 0
(k ( R  0))  0.
Аналитические зависимости для спектров Уолша-Пэли дискретных
степенных сигналов первой и второй степени, полученные с помощью
соотношения (4.111), будут иметь следующий вид:
- для линейного сигнала x(i)=i:
X (1) (0) 
N 1
N
; X (1) (2  )   2  ,   0, 1,..., n  1; X (1) ( k ( R  1))  0;
2
4
(4.112)
- для квадратичного сигнала x(i)=i2:
X (2) (0) 
( N  1)(2 N  1)
( N  1) N  
; X (2) (2  )  
2 ,   0, 1,..., n  1;
6
4
X (2) (2 1  2 2 )  (
(4.113)
N  ( 1  2 )
)2
, 1  0,1,..., n  2; 2  1  1,..., n  1; X (2) ( k ( R  2))  0.
8
Общее выражение для дискретного спектра Уолша-Пэли r-го ранга сигнала
ir имеет вид:
262
X
(r )
Nr
(2  2  ...  2 )  (1) 2 r r !2 ( 1  2 ... r ) ,
2
1
2
r
r
(4.114)
где диапазон изменения переменных µi по-прежнему задается
соотношениями (4.82).
Если сложность дискретных спектральных представлений сигналов
оценивать числом ненулевых спектральных коэффициентов, то сложность
степенных полиномиальных сигналов в базисе Уолша может быть
существенно меньшей максимальной величины N. В этом смысле базис
Уолша можно также считать адекватным классу степенных полиномов.
Подобным же свойством, как уже отмечалось, обладает базис
полиномиальных функций. Однако двоично-рациональный вид спектра
Уолша-Пэли (см. (4.112)÷(4.114)) может оказаться более предпочтительным
при практической реализации спектральных разложений на устройствах с
двоичной арифметикой.
Приведенный материал по функциям Уолша показывает, что функции
Уолша и их спектры обладают целым рядом замечательных свойств,
полезных для теоретических исследований и практических приложений. По
этой причине эти функции нашли применение в самых различных областях
науки и техники, включая математику, медицину, радио и связь, телевидение,
радио- и гидролокацию, автоматику и управление. Преобразования Уолша
успешно используются для аппроксимации и интерполяции функций и
сигналов, для сжатия и распознавания одномерных и многомерных сигналов,
для помехоустойчивого кодирования и передачи сигналов по каналам связи,
для фильтрации, экстраполяции и имитации детерминированных и
случайных сигналов, для обработки речи и изображений, для анализа систем
автоматического управления и дискретных логических систем. Секвентный
анализ на базе функций Уолша одно время рассматривался как альтернатива
частотному анализу и применялся при разработке систем оптимального
управления, локационных систем различного типа, идентификации объектов,
при создании мультиплексных многоканальных систем связи. Подробные
сведения о разработках, использующих функции Уолша, можно найти в
специальной литературе, например, в книгах Х.Хармута [61] и Л.А.
Залманзона [25].
263
Широкий интерес к функциям Уолша подтверждается также и тем
фактом, что в семидесятые годы прошлого столетия в США регулярно
проводились научные симпозиумы по теории и применению функций
Уолша. Различные научные семинары и конференции проходили и в странах
Европы, в том числе и в нашей стране. В настоящее время быстрое развитие
цифровых средств связи, цифрового телевидения, цифровой фотографии,
мобильной сотовой связи, компьютерных сетей и методов и средств защиты
информации создает новые перспективы для еще более широкого
применения аппарата функций Уолша.
4.8. Преобразования Хаара
В 1909 г. А.Хаар (A. Haar)
[70] построил полную систему
ортонормированных функций меандрового типа, пригодную для
спектрального представления интегрируемых функций, определенных на
интервале [0,1), разбиваемом на двоично-рациональное число N=2n, n=1, 2, …
подинтервалов знакопостоянства.
Все базисные функции h(k,z) этой
системы удобно разбивать на группы, в пределах которых они имеют
одинаковые амплитудные значения. Достигается это за счет двумерного
представления одномерного номера k:
k  2  m,   0,1,...; m  0,1,..., 2 1.
(4.115)
Здесь индекс  определяет номер группы, а индекс m – номер функции Хаара
в этой группе. Двумерное представление не распространяется на нулевую
функцию, которая выпадает из групп и задается отдельно. При конечном N
число групп тоже становится конечным и равным n=log2N . Поэтому индекс
группы  в этом случае изменяется от 0 до n-1.
Нормированные функции Хаара являются многозначными функциями.
Поэтому для практики спектральной обработки более удобными
оказываются ненормированные функции Хаара, принимающие всего три
простейших значения: 0, +1 и -1. Такие функции аналитически задаются
следующим выражением:
1 при 2m2 ( 1)  z  (2m  1)2 ( 1) ,

h(o, z )  1; h(k , z )  h( , m, z )  1 при (2m  1)2  ( 1)  z  (2m  2)2  ( 1) , (4.116)
0 при остальных z

264
и имеют знакопеременный характер, причем во внутренних точках разрывов
первого рода принимаются непрерывными справа.
Функции Хаара (4.116) ортогональны, т.к.
1
 h(k , z )h( p, z )dz  0
o
при k≠p. Мощности нулевой и первой функций равны по единице, а
мощности остальных функций равны
Pk  P ,m  2 , k  2,3,... .
Из этого выражения следует, что в пределах каждой группы собраны
функции Хаара одинаковой мощности.
Пример 4.23. Построить систему функций Хаара из восьми функций
( N  8, n  3,   0,1, 2, m  0,1,..., 2  1).
Решение. Нулевая функция h[0, z) по определению равна +1. Для
остальных функций в соответствии с правилом (4.115) получаем:
1, 0  z  0,5 ,
h(1, z )  h(0, 0, z )  
1, 0,5  z  1 ,
1, 0  z  0, 25 ,

h(2, z )  h(1,0, z)  1, 0, 25  z  0,5 ,
 0, 0,5  z  1 ,

0, 0  z  0,5 ,

h(3, z )  h(1,1, z )  1, 0,5  z  0, 75 ,
1, 0, 75  z  1 ,

1, 0  z  0,125 ,

h(4, z )  h(2, 0, z )  1, 0,125  z  0, 25 ,
 0, 0, 25  z  1 ,

 0,
1,

h(5, z )  h(2,1, z )  
1,
 0,
265
0  z  0, 25 ,
0, 25  z  0,375 ,
0,375  z  0,5,
0,5  z  1,
0  z  0,5 ,
 0,
1,

h(6, z )  h(2, 2, z )  
1,
 0,
0,5  z  0, 625 ,
0, 625  z  0, 75,
0, 75  z  1,
 0, 0  z  0, 75 ,

h(7, z )  h(2,3, z )  1, 0, 75  z  0,875 ,
1, 0,875  z  1 .

h(0,z)
h(4,z)
+1
+1
0
0 1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 z
1/8 1/4 3/8 1/2 5/8 3/4 7/8 1 z
-1
h(1,z)
h(5,z)
+1
+1
0
0
1z
-1
-1
h(6,z)
h(2,z)
+1
+1
0
0
1 z
1 z
-1
-1
h(3,z)
h(7,z)
+1
+1
0
-1
1 z
1z
0
-1
Рис.4.6. Система функций Хаара для N=8
Графики этих функций приведены на рис. 4.6.
_______________ . _______________
266
1z
Функции Хаара можно связать с функциями Радемахера. Нулевые и
первые функции этих систем совпадают, а для остальных справедливо
следующее соотношение:
r (  1, z ), m2  z  (m  1)2  ,
h( , m, z )  
, при остальных z .
0
Возможна и обратная связь
(4.117)
2 1
r (  1, z )  pal (2 , z )   h( , m, z ).

m0
(4.118)
Поскольку функции Уолша также связаны с функциями Радемахера, то
функции Уолша можно выразить через функции Хаара. Можно показать, что
функции Уолша являются линейной комбинацией ненормированных
функций Хаара с весовыми коэффициентами ±1 [30].
Функции Хаара из функций Уолша можно получить еще и следующим
образом. Выберем первую функцию Уолша wal(1,z) на интервале [0,1),
считая ее вне интервала равной нулю. Сожмем теперь эту функцию по оси z
вдвое на половинном интервале. При этом получится функция Хаара h(1,0,z).
Сдвинем сжатую функцию Уолша вправо по оси z на половину интервала
определения. В результате будет получена следующая функция Хаара первой
группы h(1,1,z). Если теперь сжать функцию Уолша wal(1,z) вчетверо (или
функцию Хаара h(1,0,z) вдвое), а затем последовательно сдвигать сжатую
функцию на четверть интервала, то будут получены все функции Хаара
второй группы. Процесс сжатия и сдвига сжатых функций можно
продолжать до построения полной системы функций Хаара для заданного
значения N.
Интересно, что описанный хааровский процесс сжатия и сдвига можно
применить и к другим функциям Уолша, получая системы, занимающие
промежуточное положение между системами Уолша и Хаара. Более того,
такой процесс можно применить и к другим базисным функциям, например,
тригонометрическим. Именно такой подход и используется при построении
вейвлетов [22].
Для представления сигналов функций времени x(t) переменная z в
функциях Хаара должна быть преобразована в переменную t. Для сигналов с
односторонним интервалом определения [0,T) формула преобразования
имеет такой же вид, что и в функциях Уолша, а именно z=t/T и следует из
267
общего выражения (3.27). Пара непрерывных преобразований Фурье-Хаара
представляется следующими зависимостями:
 2 1

x(t )   X (k )h(k , t / T )  X (0)    X ( , m)h( , m, t / T ),
 0 m 0
k 0
(4.119)
T
1
1
X (0)   x(t )dt  [(T )  (0)];
T 0
T
X (k )  X ( , m) 
 T
2
T
 x(t )h( , m, t / T )dt 
0
2
 (2 m 1)T
2
[
T

 (  1)
x(t )dt 
2 mT 2 (  1)
(4.120)
(2 m  2)T 2


 (  1)
(2 m 1)T 2 (  1)
2
x(t )dt ]  [2((2m  1)T 2 ( 1) )  ((2m  2)T 2  ( 1) )],
T
где коэффициенты X(0) и X (k )  X (2  m)  X ( , m) являются спектром Хаара
сигнала x(t), а (t )   x(t )dt есть первообразная сигнала x(t). При записи
выражения для спектра X ( , m) учтена зависимость изменения функций
Хаара (4.115). Конечная формула в (4.120) для X ( , m) особенно удобна при
вычислении спектра Хаара сигналов с известным аналитическим описанием.
Ряд Хаара (4.119) обеспечивает равномерную и среднеквадратическую
сходимость к сигналу x(t). Его так же, как и ряд Уолша (4.83), удобно
использовать для представления разрывных сигналов, например,
импульсных.
Так как система функций Хаара полная, то для нее выполняется
равенство Парсеваля, которое так же, как и ряд Хаара (4.119), можно
записать в двумерном виде


2 1
1 2
2

2
x
(
t
)
dt

X
(0)

2
X
( , m).


T 0
 0
m0
T
(4.121)
Функции Хаара не являются мультипликативными, т.к. произведение
двух таких функций дает результирующую функцию, не принадлежащую
системе Хаара. По этой причине спектры Хаара не обладают свойствами
спектров мультипликативных базисов. Тем не менее спектры Хаара
отдельных сигналов обладают рядом полезных свойств. Так, например,
спектр Хаара кусочно-постоянного сигнала с двоично-рациональным числом
268
участков постоянства конечен и не содержит составляющих с номерами
k  N . Связано это с тем, что все функции Хаара с номерами k  N будут
иметь на участках постоянства равное число значений +1 и -1. Аналогичным
свойством, как уже отмечалось, обладает спектр Уолша таких сигналов. Для
спектра Хаара степенных сигналов можно получить удобные
вычислительные формулы. Так для сигнала
x(t )  t  ,   0, 1, ... его
первообразная (t )  t  1 /(   1) и спектр Хаара имеет следующий вид:
X
( )

(0)  T /(  1); X
( )
T  2 
( , m) 
[2(2m  1) 1  (2m) 1  (2m  2) 1 ] 

2(  1)2
T   !2 

2  2
(2m) 1k  (2  2k )

.
k !(  1  k )!
k 2
 1
(4.122)
Пример 4.24. Найти спектр Хаара степенных сигналов нулевой (  =0)
и первой (  =1) степени.
Решение. В соответствии с формулами (4.122) имеем:
- для сигнала x(t)=1:
X (0) (0)  1; X (0) ( , m) 
1
(2  1  1)  0;
2
- для сигнала x(t)=t:
T 
T
2 (8m 2  8m  2  4m 2  4m 2  8m  4)   2  .
8
4
_______________ . _______________
X (1) (0)  T / 2; X (1) ( , m) 
Результаты примера 4.23 позволяют записать ряд Хаара для линейного
сигнала

T   2 1
at  в  (aT / 2  в )     h( , m, t / T )  2 .
4  0  m 0


(4.123)
Легко показывается идентичность рядов Хаара (4.123) и Уолша (4.87)
линейного сигнала, если учесть, что внутренняя сумма в выражении (4.123) в
соответствии с формулой (4.118)
определяет функцию Радемахера
r (  1, t / T ),
которая в свою очередь совпадает с функцией Пэли первого ранга
pal (2 , t / T ).
Пример 4.25. Найти спектр Хаара квадратичного сигнала x(t)=t2 .
Решение. В этом случае  =2 и, выполнив необходимые
преобразования по формулам (4.122), получим:
269
X
(2)
(0)  T / 3; X
2
(2)
T 2 2
( , m)   2 (2m  1).
4
(4.124)
Спектр Хаара квадратичного сигнала теряет чисто показательную форму
записи, которую имел спектр линейного сигнала.
_______________ . _______________
Как следует из общей формулы (4.122), в спектре Хаара степенного
сигнала t  присутствуют две составляющие: показательная с основанием
два и отрицательной степенью, равной произведению индексов
 , и
полиномиальная для индекса m с положительными степенями   1,   2,..., 0.
Поэтому модуль коэффициентов Хаара с возрастанием номера группы 
убывает, а в пределах группы с увеличением индекса m монотонно
возрастает. Спектральные коэффициенты, являющиеся первыми в группах
(т.е. с m=0) меняются только по показательному закону и достаточно быстро
сходятся к нулю. Скорость сходимости других коэффициентов существенно
сдерживается полиномиальной составляющей. Этот эффект проявляется и
для других гладких дифференцируемых сигналов. В этом смысле спектр
Хаара уступает спектру Уолша, который для таких сигналов описывается
только показательной функцией (см. (4.94)). Спектральные коэффициенты
Хаара с k≠0 любого монотонно возрастающего положительного сигнала
всегда отрицательны, т.к. при их вычислении сумма отрицательных значений
превышает сумму положительных. Это следует из характера изменения
самих функций Хаара.
Для спектрального представления дискретных сигналов x(i ), i  [0, N )
функции Хаара должны быть продискретизированы. Для этого необходимо
взять первые N функций непрерывной системы Хаара и определить их
значения в точках, кратных интервалу 1/N, начиная с 0, помня при этом, что
функции Хаара в точках разрыва непрерывны справа. В результате будет
получена полная, ортогональная, но не нормированная система дискретных
функций Хаара {h(k , i / N )}  {h(0, i / N ), h( , m, i / N )}, где
  0, 1, ..., n  1, а m  0, 1, ..., 2  1 . Связь одномерного номера функций с
двумерными индексами здесь остается прежней.
Дискретные функции Хаара можно записать аналитически с помощью
соотношений:
270
1 при 2m2n  1  i  (2m  1)2n  1  1,

h(0, i / N )  1; h( , m, i / N )  1 при (2m  1)2 n  1  i  (2m  2)2 n  1  1, (4.125)
0 при остальных i,

которые следуют из соотношений (4.115) при z=i/N.
Пример 4.26. Получить дискретную систему Хаара для N=8.
Решение. Эту систему можно получить либо путем дискретизации
системы Хаара примера 4.23, либо с помощью соотношений (4.125). В обоих
случаях будет один и тот же результат, который можно представить в виде
следующей матрицы:
1 1 1 1 1 1 1 1 
1 1 1 1 1 1 1 1


1 1 1 1 0 0 0 0 


0 0 0 0 1 1 1 1

{h(k , i )} 
.
1 1 0 0 0 0 0 0 


0 0 1 1 0 0 0 0 
0 0 0 0 1 1 0 0 


0 0 0 0 0 0 1 1
_______________ . _______________
Дискретные функции Хаара взаимосвязаны с дискретными функциями
Радемахера. При этом будут справедливы соотношения (4.117) и (4.118), если
в них заменить переменную z на i/N.
Условие ортогональности дискретных функций Хаара имеет
классический вид
1
N
N 1
 h(k , i / N )h( p, i / N )  0,
p  k,
i 0
а их мощность остается такой же, как и в случае непрерывных функций.
Дискретный ряд Фурье-Хаара удобно записывать в двумерном виде
n 1 2 1
x(i )  X (0)    X ( , m)h( , m, i / N ),
(4.126)
 0 m 0
а для вычисления дискретного спектра использовать следующие формулы:
1
X (0) 
N
2
x(i ); X ( , m) 

N
i 0
N 1
(2 m  2)2
1
 (2 m 1)2 1

x
(
i
)

x
(
i
)
 
 . (4.127)

n 1
n 1
 i  2 m 2

i  (2 m 1)2
n 1
n 1
Равенство Парсеваля в дискретном варианте также сохраняет двумерный вид:
271

n 1
2 1
1 N 1 2
2

x
(
i
)

X
(0)

2
X 2 ( , m).
(4.128)



N i 0
 0
m 0
Спектры Хаара дискретных сигналов с известным аналитическим
описанием в общем случае вычисляются сложнее, чем спектры Хаара
непрерывных сигналов и, как правило, не имеют законченных простых
выражений. Это связано с тем, что в дискретном варианте приходится вместо
интегралов сигналов определять их суммы (см. (4.127) и (4.120)), которые
обычно математически вычисляются и записываются гораздо сложнее
интегралов. Сказанное в полной мере касается и степенных сигналов. Однако
для последних в случае малых степеней удается получить выражения,
подобные тем, что были найдены в примерах 4.24 и 4.25 для непрерывных
сигналов.
Пример 4.27. Найти спектр Хаара дискретного степенного сигнала
нулевой и первой степени.
Решение. Для сигнала x(i)=1:
X (0) (0)  1; X (0) ( , m)  0;
Для сигнала x(i)=i:
X (1) (0)  ( N  1) / 2; X (1) ( , m)  
N 
2 .
4
_______________ . _______________
В соответствии с результатами примера 4.27 ряд Хаара дискретного
линейного сигнала ai+в примет следующий вид:
 
a ( N  1)
Na n 1  2 1
ai  в 
в
h
(

,
m
,
i
/
N
)
2
 
2
4  0  m0


и совпадает с соответствующим дискретным рядом Уолша-Пэли.
Пример 4.28. Найти спектр Хаара дискретного степенного сигнала
второй степени x(i)=i2 .
Решение. Вычисления по формулам (4.127) приводят в данном случае к
следующим результатам:
( N  1)(2 N  1)
N
; X (2) ( , m)   2 [ N (2m  1)2   1].
6
4
При выводе этих зависимостей использована известная формула
конечной суммы квадратов натурального ряда чисел.
_______________ . _______________
X (2) (0) 
272
Характер изменения спектра Хаара дискретных степенных сигналов
сохраняется таким же, как и у спектра Хаара непрерывных степенных
сигналов.
Поскольку функции Хаара связаны с функциями Уолша-Пэли, то
спектры сигналов для этих функций также можно связать между собой. Для
этого вычислим сумму спектров для функций Хаара, входящих в  -ю группу:
2 1
2 1
2
 X (2  m)  m0 N
m0

2
x(i) h (2  m, i / N ) 

N
i 0
N 1

N 1
2 1
i 0
m0
 x(i)  h (2  m, i /N ).
Но, в силу соотношения (4.118), внутренняя сумма в последнем выражении
означает функцию Уолша-Пэли первого ранга pal (2 , i /N ). Поэтому
2
N
2 1
N 1
1
x(i )  h (2  m, i /N )  2 [

N
i 0
m 0


N 1
 x(i) pal (2 , i /N )]  2 X (2 ).
i 0
В итоге получаем, что
2 1
X
H
(2  m) 2 X Y (2 ),   0, 1, ..., n  1.
m 0
(4.129)
В соотношении (4.129) верхние индексы H и Y в обозначениях спектров
означают их принадлежность к системам Хаара и Уолша-Пэли
соответственно.
Так как функции Хаара имеют нулевые значения, то только первые два
коэффициента спектра Хаара учитывают поведение сигнала на всем
интервале его определения. Все остальные коэффициенты учитывают
локальное поведение сигнала и на тем меньшем интервале, чем больше
номер группы функции Хаара. Коэффициенты последней группы вообще
определяются только по двум соседним значениям сигнала. Этим спектр
Хаара принципиально отличается от спектра Уолша, поскольку для базиса
Уолша каждый спектральный коэффициент учитывает поведение сигнала на
всем интервале определения. Избирательный характер спектра Хаара может
оказаться полезным при изучении локальных свойств сигнала. Наличие
нулевых значений у функций Хаара приводит так же к тому, что при
вычислении конкретных значений сигнала с помощью ряда Хаара (4.126)
число ненулевых слагаемых в нем будет равно n+1, где n=log2N и
значительно меньше максимально возможной величины N. Кроме того,
несмотря на немультипликативность функций Хаара, для них существуют
273
экономные алгоритмы быстрого анализа спектра, которые «быстрее»
соответствующих алгоритмов в базисах Уолша и комплексных
экспоненциальных функций (см. следующие главы).
Отмеченные особенности функций Хаара делают их привлекательными
для различных практических приложений. Эти функции широко
используются в математике при аппроксимации и интерполяции табличных
функций, численном интегрировании, в теории вероятностей; в системах
управления и обработки сигналов при сжатии и идентификации сигналов,
при исследовании случайных сигналов; при кодировании и передаче
сигналов по каналам связи; при анализе и синтезе логических функций и
систем [30]. Примеры теоретического и практического применения функций
Хаара можно найти в литературе, в частности, в уже упоминавшейся книге
Л.А. Залманзона [25].
Кратко подводя итоги этой главы, следует отметить, что
представленные здесь базисные системы естественно не охватывают всего
множества возможных базисных систем, тем более, что множество это
бесконечное. В этой главе приведены только классические системы,
большинство из которых давно и успешно используется в различных
разработках. Это, однако, не исключает существование других базисных
систем с интересными и полезными свойствами. Некоторые из них
обобщенного характера рассмотрены в следующей главе.
Вопросы и задачи для самопроверки
1. Как записывается система базисных функций из дельта-функций?
2. Почему представление сигнала в спектральной области базиса
единичных функций совпадает с его представлением во временной области?
3. В чем состоит суть отличия представлений сигнала в базисах
единичных функций и функций Котельникова?
4. Каким важным свойством обладает ряд Котельникова?
5. Почему моменты отсчетов функций в дискретных косинусной и
синусной системах не совпадают?
6. К какому виду базисных систем относится тригонометрическая
система?
274
7. Какие способы упорядочения функций используются при записи
тригонометрической системы?
8. Вычислить тригонометрический спектр квадратичного сигнала
x(t)=t2, t  [0,T).
9. Вычислить спектр линейного сигнала
x(t)=t, t [0,T) в базисе
комплексно-экспоненциальных функций.
10. Как доказать полноту системы дискретных ДЭФ?
11. Запишите свойство двойственности для ДЭФ. Как это свойство
влияет на структуру матрицы значений ДЭФ?
12. Запишите условия двойной мультипликативности ДЭФ.
13. Как из матрицы ДЭФ с полными фазами получается матрица ДЭФ с
минимальными фазами?
14. Почему в системе ДЭФ нужно отличать частоту изменения от
частоты следования?
15. Сформулируйте и докажите теорему симметрии для спектра ДЭФ.
16. Докажите все основные теоремы спектрального анализа для ДЭФ
(теоремы о сдвиге, модуляции, свертке, корреляции, умножении сигналов).
17. Какую структуру имеет матрица связи спектров сигнала при его
сдвиге в базисе ДЭФ?
18. Показать, что
cas( A)cas( B)  cos( A  B)  sin( A  B);
A B
A B
)  cas(
);
2
2
cos z  sin z  cas ( z ).
cas( A)  cas( B)  2ca s(
19. Найдите спектры Хартли следующих сигналов:
2
sin(2t ); cos( t ); t ; t 2 .
T
20. Запишите в терминах спектра Хартли теоремы о модуляции сигнала
базисной функцией и о произведении сигналов.
21. Какие гармонические преобразования называются сдвинутыми?
22. Какие способы вычисления полиномов Чебышева и Лежандра вы
знаете?
23. Как осуществляется дискретизация непрерывных полиномов
Чебышева и Лежандра?
24. Как осуществляется процедура ортогонализации Грама-Шмидта?
25. Как можно получить дискретные полиномы на системе
равноотстающих точек?
275
26. Какие базисные системы получаются путем нелинейной
трансформации оси времени в полиномиальных системах?
27. Какой вид имеют непрерывные функции Радемахера?
28. Существует ли класс сигналов, для которых система функций
Радемахера является полной?
29. Запишите все известные вам аналитические описания функций
Радемахера.
30. Чем отличаются системы Пэли, Адамара и Хармута?
31. Почему система функций, построенная из функций Уолша-Пэли
двоичной инверсией их номеров, получила название системы Адамара?
32. Запишите правило образования матриц Адамара?
33. Докажите справедливость соотношений:
cal (k , z )  cal (m, z )  cal (k ()2 m, z );
sal (k , z )  cal (m, z )  sal{[m()2 (k  1)]  1, z};
cal (k , z )sal (m, z )  cal[(k  1)()2 (m  1), z ].
34. К функциям Уолша какого ранга относятся функции Радемахера?
35. Вычислить спектр Уолша-Пэли сигнала x(t)=t3, t [0,T).
36. Почему спектр Уолша-Пэли гладких дифференцируемых сигналов
быстро сходится к нулю?
37. Запишите
выражения
для
диадической
свертки
и
автокорреляционной функции.
38. Докажите все основные теоремы спектрального анализа для базиса
Уолша.
39. Найдите
спектры
Уолша-Пэли
следующих
сигналов:
sin(2i), cos(3i), i 3 при i  [0,8).
40. Постройте систему Хаара из 16 функций.
2
2
t
41. Найдите спектр Хаара сигналов: sin( t ), t , e при t [0,T).
T
42. Какими особенностями обладают спектры Хаара?
43. Как функции Хаара связаны с функциями Уолша?
44. Почему при вычислении сигнала в конкретной точке с помощью
дискретного ряда Фурье – Хаара выполняется число сложений, значительно
мньшее их максимальной величины, равной N, где N – число отсчетов
сигнала.
276
ГЛАВА 5
ОРТОГОНАЛЬНЫЕ ПРЕОБРАЗОВАНИЯ
В ОБОБЩЕННЫХ БАЗИСАХ
5.1. Функции и преобразования Виленкина-Крестенсона
В этой главе рассмотрим преобразования Фурье, связанные
с
различными видами обобщения традиционных базисных систем. Начнем с
систем функций Виленкина-Крестенсона, являющихся обобщением ЭФ и
функций Уолша на случай позиционной системы счисления с произвольным
основанием [10, 60, 66].
Функции Виленкина-Крестенсона (ВКФ), предложенные в 1947 г.
Н.Я. Виленкиным и подробно описанные в 1955 г. Х.К. Крестенсоном
(H.Chrestenson), представляют собой кусочно-постоянные p-значные (p –
целое положительное число) комплексные функции, определенные на
интервалах [0, 1) и [-0,5; 0,5). Аналитическое описание ВКФ Wal(k, z)
непосредственно связано с представлением ее номера k и аргумента z в
позиционной системе счисления с основанием p и зависит от способа этого
представления. Если, например, при z  [0,1)

k   km p m 1  ...k3k2 k1 ,
m 1
(5.1)

z   zm p  m  0, z1 z2 z3 ... ,
m 1
где km и zm – обозначения m-х разрядов
соответственно (km, zm = 0, 1, …, p-1), то
p-ичных кодов чисел k
и z
2 
(5.2)
 km zm ), j  1 .
p m 1
Как следует из этого выражения, ВКФ представляет собой не одну
базисную функцию, а семейство функций, отличающихся значением
модулярного параметра p (основания системы счисления). При p=2 функция
exp( j )  1 и ВКФ переходит в функцию Уолша. По этой причине ВКФ
Wal (k , z )  exp( j
можно рассматривать как обобщение функций Уолша на p-значный случай и
277
использовать для их обозначения обозначения функций Уолша, но с
заглавной буквы.
Ограничивая число разрядов в разложениях k и z (5.1) до конечной
величины n, с помощью формулы (5.2) можно получить первые N=pn
непрерывные функции Виленкина-Крестенсона. При этом все функции будут
иметь N участков постоянства, на которых их действительные и мнимые
части могут принимать p различных значений. В этом случае удобно
воспользоваться нормированными значениями аргумента z=i/N, где i будет
являться номером участка постоянства интервала определения функции
(i=0, 1, …, N-1). Номер i можно представить с помощью его p-ичного кода
n
i   im p m1  inin 1...i2i1 .
(5.3)
m 1
Нетрудно заметить, что систематические записи кодов чисел z и i
отличаются инверсным порядком следования разрядов (см. (5.1) и (5.3)). Это
связано с различием в диапазонах изменения этих чисел (i – целое, а z –
дробное). Если данное обстоятельство учесть, то ВКФ с нормированным
аргументом можно сразу
выразить через
разряды числа i
без
промежуточного перехода от i к z:
2
2 n
exp(
j
kn 1 mim ) .
Wal (k , i / N )  exp( j
k
i
)
=
(5.4)
 m n1m
p m 1
p m 1
Справедливость второй формулы в выражении (5.4) следует из того
факта, что сумма произведений в экспоненте (5.4) не меняется при замене m
на n+1-m. В этом проявляется свойство двойственности ВКФ, речь о котором
n

пойдет ниже. Вторая формула записи ВКФ с нормированным аргументом
чаще используется в литературе.
Из ВКФ (5.2) и (5.4) особое значение приобретают функции с одним
значащим разрядом km=1 в номере k . Эти функции определяются только pичным разложением своего аргумента. Подобным свойством в обычных
функциях Уолша обладали функции Радемахера, поэтому такие функции
можно считать обобщенными функциями Радемахера R(m, z) и R(m, i/N):
R(m, z )  exp( j
2
zm ), m 1, 2,...,
p
(5.5)
278
2
in1m ), m 1, 2,..., n.
p
Все ВКФ можно представить в виде произведений обобщенных функций
Радемахера, взятых в определенной степени. Это позволяет записывать
полные системы ВКФ с различным порядком следования функций.
Если поступить так же, как в обычных функциях Уолша, и представить
ВКФ в виде произведения обобщенных функций Радемахера с номерами,
совпадающими с номерами значащих разрядов p-ичного представления k (не
содержащих 0), то будет получена система ВКФ, подобная системе УолшаПэли. По аналогии ее обычно называют системой ВКФ-Пэли. Она будет
иметь следующий аналитический вид:
R(m, i / N )  exp( j
km
n
Pal (k , z )   [ R(m, z )]
,
m 1
(5.6)
km
n
Pal (k , i / N )  [ R(m, i / N )]
,
m 1
а в экспоненциальной форме записи представляется выражениями (5.2) и
(5.4). Из нее путем p-ичной инверсии кодов номеров k базисных функций
можно получить систему ВКФ-Адамара
kn1m
n
Had (k , z )  [ R(m, z )]
m 1
2
 exp( j
p
n
k
m 1
z ),
n 1 m m
(5.7)
kn1m
n
Had (k , i / N )  [ R(m, i / N )]
m 1
2
 exp( j
p
n
k
m 1
i ),
m m
а используя обобщенный код Грея, ‒ систему ВКФ-Хармута
n
 km 
Har (k , z )  [ R(m, z )]
m 1
2
 exp( j
p
n
 k
m 1
m
 zm ) ,
(5.8)
n
 km 
Har (k , z )  [ R(m, i / N )]
m 1
2
 exp( j
p
n
 k
m 1
n 1 m
 im ).
В формулах (5.8)  km  означает m-й разряд обобщенного кода Грея
числа k, вычисляемого путем последовательного суммирования по модулю p
соседних разрядов числа k, начиная с младшего. Правило вычисления
279
разрядов обобщенного кода Грея аналогично правилу вычисления обычного
кода Грея и отличается только значением модуля p. При представлении k в
виде (5.1) с конечным числом разрядов оно записывается так:
 km  (km  km1 ) mod p, m  1, 2, ..., n; величина k n 1 принимается равной нулю.
При p=2 формулы (5.2), (5.4), (5.6) – (5.8) переходят в формулы (4.64),
(4.65), (4.68)÷(4.70) и (4.73) обычных функций Уолша с упорядочением Пэли,
Адамара и Хармута. При p=N p-ичные коды чисел k и i содержат по одному
разряду (n=1) и ВКФ при любом способе упорядочения совпадают с
функциями комплексной экспоненциальной системы:
2
2
Wal (k , i / N )  exp( j
k1i1 )  exp( j
ki ).
(5.9)
N
N
По аналогии с обычными функциями Уолша-Пэли для ВКФ-Пэли
также можно ввести понятие ранга, равного числу ненулевых разрядов pичного кода номера функции k. Номера ВКФ r-го ранга можно условно
обозначить так же, как и для функций Уолша: k(R=r) и записывать их в
следующем виде:
k ( R  r )  k1 p 1 1  k2 p 2 1  ...  kr p r 1
.
(5.10)
Здесь параметры i (i  1, 2, ..., r ) служат для обозначения номеров
значащих (не равных нулю) разрядов p-ичного кода числа k , а величины
ki  1, 2, ..., p  1 –
их значений. При этом все
µi
должны удовлетворять
системе значений (4.80).
Ранг произведения функций Виленкина-Крестенсона не превышает
суммы их рангов. Подобное свойство отмечалось ранее для функций УолшаПэли и вытекает из особенности операции сложения по модулю p.
Для ВКФ-Пэли первого ранга значащим в числе k будет только один
разряд 1 , поэтому
k ( R  1)  k1 p 1 1 ,
где 1  1, 2, ..., n . Но параметр 1
пробегает здесь те же значения, что и номер разрядов m , и его можно
заменить на m . Кроме того, переменные с индексами
{k 1 }
в этом случае
принимают одинаковые значения, поэтому их можно заменить на простую
переменную µ, записав номер первого ранга в более простом виде:
k ( R  1)   p m1 ,   1, 2,..., p  1; m  1, 2,..., n . Тогда ВКФ-Пэли первого ранга
примут следующий вид:
280
2
 zm ),
p
2
Pal (  p m1 , i / N )  exp( j
in1m ),
p
Pal (  p m1 , z )  exp( j
(5.11)
  1, 2,..., p  1; m  1, 2,..., n .
Обобщенные функции Радемахера входят в состав ВКФ-Пэли первого
m 1
m 1
ранга и совпадают с функциями Pal (  p , z ) и Pal (  p , i / N ) , для
которых µ=1. Поэтому
Pal ( p m1 , z)  R(m, z),
(5.12)
Pal ( p
m1
, i / N )  R(m, i / N ),
Pal ( p m1 , z )  [ R(m, z )] ,
(5.13)

Pal ( p , i / N )  [ R(m, i / N )] .
Число обобщенных функций Радемахера в системах ВКФ равно n .
При p=N и n=1 (случай комплексного экспоненциального базиса) функция
Радемахера одна. Интересно, что в этом случае все функции системы (кроме
нулевой), являются функциями первого ранга.
Функции
Виленкина-Крестенсона являются ортонормированными
функциями, т.к. для них
m 1
1
 Wal (k , z)Wal (m, z)dz  

; k , m  0, 1, 2,... .
(5.14)
комплексно-сопряженная
ВКФ),
k ,m
0
(  k , m ‒ символ Кронекера, Wal*(m, z) ‒
образуют полные базисные системы и могут быть использованы для
спектрального представления математических функций с интегрируемым
квадратом, определенных на интервале [0, 1). ВКФ являются
периодическими функциями с периодом, равным 1, поэтому их можно
применить и для разложения функций с любым интервалом определения,
длительностью 1, в частности и функций, определенных на симметричном
интервале [-0,5; 0,5).
Чтобы использовать ВКФ для разложения временных сигналов x(t),
необходимо переменную z преобразовать по алгоритму (3.27) в переменную
t. Для z  [0,1) и t  [0, T ) это делается с помощью простой подстановки z=t/Т.
281
Преобразования Фурье и равенство Парсеваля в этом случае имеют
следующий вид:

x(t )   X (k )Wal (k , t / T ) ,
k 0
(5.15)
T
X (k ) 
1
x(t )Wal  (k , t / T )dt ,

T 0

1 2
x (t )dt  X (k ) X  (k ).

T 0
k 0
T
(5.16)
Поскольку ВКФ являются комплексными функциями и их спектры X(k)
сигнала x(t) также комплексные, то в формуле прямого преобразования
Фурье и в равенстве Парсеваля использованы комплексно-сопряженные
функции Wal*(k, t/T) и X*(k).
Для представления дискретных финитных сигналов x(i) ВКФ должны
быть продискретизированы. Наиболее просто это выполняется путем
подстановки в аналитические описания непрерывных ВКФ значений t  it и
T  N t ( t – шаг дискретизации). В результате будут получены выражения
для дискретных ВКФ, совпадающие с формулами (5.4), (5.6), (5.7), (5.8),
(5.12) и (5.13), в которых индекс i будет задавать теперь номер отсчета
функции (дискретное время).
Дискретная ВКФ является комплексной функцией с единичным
2
модулем и фазой  (k , i ) 
p
n
k
m 1
i . Вычитая из  (k , i) целое число раз 2  ,
m m
можно минимизировать фазу ВКФ. При
k  p m1 дискретная ВКФ-Пэли
переходит в обобщенную дискретную функцию Радемахера R(m, i / N ) . В
любой системе ВКФ содержится n обобщенных дискретных функций
Радемахера. Каждая m-я функция Радемахера на интервале [0, N) имеет pm-1
периодов. Фаза такой функции
 ( p m1 , i) 
2
i
p
(5.17)
при изменении i в пределах каждого периода линейно возрастает от 0 до 2π .
Если при переходе с одного периода на другой фазу увеличивать на
величину 2π , то будет получена обобщенная функция Радемахера R(m, i / N )
282
с полной фазой. Фаза такой функции при изменении i будет линейно
возрастать от 0 до 2πpm-1. Обобщенные функции Радемахера с полными
фазами позволяют восстановить систему ВКФ с полными фазами по ее
записи с минимальными фазами. ВКФ с полными фазами оказываются
весьма полезными при рассмотрении частотных свойств ВКФ.
При p=2 обобщенные дискретные функции Радемахера являются
действительными функциями и совпадают с обычными дискретными
функциями Радемахера. При p=N и n=1 система дискретных ВКФ
переходит в систему ДЭФ, совпадающую с системой из N функций
Виленкина-Крестенсона нулевого и первого рангов с одной обобщенной
функцией Радемахера, представляющей собой основную гармонику ДЭФ.
Дискретные ВКФ удовлетворяют условиям ортонормированности
1
N
N 1
Wal (k , i / N )Wal
i 0

(m, i / N )   k ,m
и периодические с периодом N
Wal (k , i / N )  Wal (k , (i  N ) / N ).
Они обладают свойствами симметрии (двойственности)
Wal (k , i / N )  Wal (i, k / N )
и двойной мультипликативности с базовой операцией в виде поразрядного
сложения по модулю p :
Wal (k , i / N )  1/ Wal  ( k , i / N ),
Wal (k , i / N ) Wal ( m, i / N )  Wal (q, i / N ),
Wal (i, k / N ) Wal ( i, m / N )  Wal (i, q / N ),
(5.18)
где
q  k () p m
есть результат поразрядного сложения по модулю p p-ичных кодов чисел k
и m. Среднее значение всех дискретных ВКФ, за исключением нулевой,
равно нулю, т.е.
1 N 1
Wal (k , i / N )  0, k  0.
N i 0
Так как на интервале [0,N) можно построить только N дискретных
ВКФ, то система таких функций будет полной, поскольку ее нельзя будет
дополнить на этом интервале ни одной новой функцией, ортогональной
одновременно ко всем остальным функциям. Полные системы дискретных
283
ВКФ можно записать и для других интервалов, длительностью из N точек, в
частности, и для интервала [ N / 2, N / 2) .
Дискретные ВКФ, как и любые другие дискретные базисные функции,
удобно записывать с помощью матриц. Матрицы ВКФ будут
симметрическими и унитарными. Вне зависимости от упорядочения систем
эти матрицы обладают рядом характерных свойств. Перечислим основные из
них для строк матриц. В силу симметричности этих матриц данные свойства
будут справедливы и для столбцов.
1. Матрицы ВКФ содержат ровно p различных элементов.
2. Элементы нулевой строки матриц равны единице. Действительно
при k=0 все km=0 и вне зависимости от значений индекса i суммы
произведений в формулах
для ВКФ будут также равны нулю и,
следовательно, ВКФ Wal(0, i/N)=1.
3. Для размерности матриц N=pn, являющейся нечетным числом (тогда
модуль p тоже является нечетным числом), в матрицах ВКФ нет других
строк с действительными элементами. Для случая, когда N=pn является
четным числом (при этом модуль р может быть только четным числом),
любая строка с номером k, у которого разряды km=0; p/2 , состоит из
действительных элементов. Общее число строк с действительными
элементами в таких матрицах ВКФ составляет 2n . В матрицах функций
Уолша (p=2, N=2n) все строки действительные, а в матрице ДЭФ (p=N, n=1)
действительными являются только две строки с номерами k=0 и k=N/2.
4. Остальные строки в матрицах ВКФ содержат комплексные
элементы, причем они попарно сопряжены. Номера комплексносопряженных строк k и k* являются р-ично противоположными числами, т.е.
связаны соотношением
km  ( p  km ) p  ( p  km ) (mod p).
(5.19)
Пример 5.1. Построить систему дискретных ВКФ-Пэли по алгоритму
(5.4) для N=9.
Решение. В этом случае p=3, а n=2. Поэтому в соответствии с
выражением (5.4) получим следующую матрицу значений ВКФ-Пэли:
284
W30
 0
W3
W30
 0
W3
{Pal (k , i / 9)}  W30
 0
W3
W 0
 3
W30
 0
W3
W30 W30 W30 W30 W30 W30 W30 W30 

W30 W30 W31 W31 W31 W32 W32 W32 
W30 W30 W32 W32 W32 W34 W34 W34 

W31 W32 W30 W31 W32 W30 W31 W32 
W31 W32 W31 W32 W33 W32 W33 W34  .

W31 W32 W32 W33 W34 W34 W35 W36 
W32 W34 W30 W32 W34 W30 W32 W34 

W32 W34 W31 W33 W35 W32 W34 W36 

W32 W34 W32 W34 W36 W34 W36 W38 
В этой матрице использовано обозначение Wp  exp( j
(5.20)
2
) , что позволяет
p
представить ВКФ–Пэли в виде
n
Pal (k , i / N )  Wp

km in1m
m1
n
 kn1mim
 Wp m1
.
(5.21)
Вычитая из показателя степени Wp целое число р, получим матрицу
ВКФ-Пэли с минимальными фазами:
1
1

1

1
{Pal (k , i / 9)}  1

1
1

1
1

В
этой
матрице
1
1
1
1
3
2
3
1
1
1
3
2
3
1
3
2
3
1
3
2
3
2
3
1
1
2
3
1
3
2
3
1
3
1
3
1
1
W
W
W
W
W
1
1
W
W
W
W
W
1
W
W
1
W
1
3
1
3
1
3
2
3
2
3
2
3
W
W
W
W
W
W
2
3
2
3
2
3
1
3
1
3
1
3
W
W
W
W
W
W
учтено,
1
3
2
3
W
W
1
1
3
2
3
W
W
W
1
2
3
W
1
1
W
1
2
3
2
3
1
3
W
W
W
W
1
W
2
3
1
3
W
W
W
1
W
1
1
3
W
что
1
3
1
3
2
3
2
3
1
3
W30  1 ,
а
1 
W32 
W31 

W32 
W31  .

1 
W31 

1 
W32 
остальные
(5.22)
ее
элементы
W31  1/ 2  j 3 / 2 и W32  1/ 2  j 3 / 2 .
_______________ . _______________
Пример 5.2. Построить систему дискретных ВКФ-Пэли по алгоритму
(5.6) (через произведение обобщенных функций Радемахера) для N=9.
Решение. При р=3 и n=2 система будет содержать две обобщенных
функции Радемахера: R(1, i / 9)  Pal (1, i / 9)
и
R(2, i / 9)  Pal (3, i / 9) ,
которые
соответствуют первой и третьей строке матриц (5.20) и (5.22) (напомним, что
нумерация строк и столбцов в матрицах базисных функций начинается с
нуля). По формуле (5.6) все остальные ВКФ могут быть выражены через
произведения этих двух функций:
285
Pal (2, i / 9)  Pal (02, i / 9)  R 2 (1, i / 9);
Pal (4, i / 9)  Pal (11, i / 9)  R(1, i / 9)  R(2, i / 9);
Pal (5, i / 9)  Pal (12, i / 9)  R 2 (1, i / 9)  R(2, i / 9);
(5.23)
Pal (6, i / 9)  Pal (20, i / 9)  R 2 (1, i / 9);
Pal (7, i / 9)  Pal (21, i / 9)  R(1, i / 9)  R 2 (2, i / 9);
Pal (8, i / 9)  Pal (22, i / 9)  R 2 (1, i / 9)  R 2 (2, i / 9) .
В этих уравнениях числа 02, 11, 12, 20, 21 и 22 являются записью номеров
соответствующих функций в троичной системе счисления. Троичные коды
записаны справа налево, как это принято в арифметике.
Если использовать в соотношениях (5.23) функции Радемахера R(1,i/9)
и R(2,i/9) из матрицы (5.20), то с их помощью после последующей
минимизации фаз можно получить матрицу ВКФ-Пэли в виде (5.22).
Однако, если в этих соотношениях использовать запись обобщенных
функций Радемахера с линейно возрастающей фазой, то после выполнения
всех вычислений будет получена матрица ВКФ-Пэли с полными фазами.
Действительно, записав функцию R(2,i/9) в полнофазном виде
{W30 ,W31 ,W32 ,W33 ,W34 ,W35 ,W36 ,W37 ,W38 },
после вычислений по уравнениям (5.23) получим следующую матрицу ВКФПэли:
W30
 0
W3
W30
 0
W3
{Pal (k , i / 9)}  W30
 0
W3
W 0
 3
W30
 0
W3
W30 W30 W30
W30
W30
W30
W30
W30 W30
W31
W31
W31
W32
W32
W30 W30 W32
W32
W32
W34
W34
W31 W32 W33
W34
W35
W36
W37
W31 W32 W34
W35
W36
W38
W39
W31 W32 W35
W36
W37
W310 W311
W32 W34 W36
W38
W310 W312 W314
W32 W34 W37
W39
W311 W314 W316
W32 W34 W38 W310 W312 W316 W318
W30 

W32 
W34 

W38 
W310  .

W312 
W316 

W318 

W320 
(5.24)
Система ВКФ-Пэли при N=9 содержит одну функцию нулевого ранга
Pal (0, i / 9) ,
четыре функции первого ранга Pal (1, i / 9) , Pal (2, i / 9) , Pal (3, i / 9) и
Pal (6, i / 9)
и четыре функции второго ранга Pal (4, i / 9) , Pal (5, i / 9) , Pal (7, i / 9),
Pal (8, i / 9).
_______________ . _______________
286
Пример 5.3. Записать матрицу ВКФ для упорядочения Адамара с
минимальными фазами при N=9.
Решение. Матрицу ВКФ-Адамара с минимальными фазами получим по
матрице ВКФ-Пэли (5.22) с помощью переупорядочения её строк по правилу
троичной инверсии номеров этих строк: 0→0; 1→3; 2→ 6; 3→1; 4→4;
5→7; 6→2; 7→5; 8→8. Матрица ВКФ-Адамара принимает следующий вид:
1
1

1

1
{Had (k , i / 9)}  1

1
1

1
1

1
1
3
2
3
1
1
2
3
1
3
1
1
3
2
3
1
3
2
3
1
2
3
1
3
1
3
1
1
1
3
2
3
2
3
W
W
1
W
W
1
W
W
W
1
W
W
1
W
1
1
3
2
3
W
W
1
1
3
2
3
W
W
1
2
3
1
3
W
W
1
2
3
1
3
W
W
1
3
1
3
1
3
2
3
2
3
2
3
2
3
2
3
2
3
1
3
1
3
1
3
W
W
W
W
W
W
W
1
W
1
W
1
2
3
2
3
2
3
1
3
1
3
1
3
2
3
W
W
W
W
W
W
W
W
W
1
W
W
W
1
W
1
W
1
3
W
1 
W32 
W31 

W32 
W31  .

1 
W31 

1 
W32 
(5.25)
_______________ . _______________
Существует еще один способ непосредственного построения системы
ВКФ-Адамара. Известно [60], что матрица этой системы (обозначим ее как Н
pn
) есть n-я кронекеровская степень (см. §2.5) матрицы ДЭФ Dp размером
p p :
H pn  D[pn ] .
(5.26)
Пример 5.4. Записать матрицу ВКФ-Адамара для N=9.
Решение. В этом случае p=3, n=2 и исходная матрица ДЭФ D3 имеет
вид:
D3 =
W30 W30 W30 
 0
1
2
W3 W3 W3  .
W30 W32 W34 


Тогда в соответствии с формулой (5.26) имеем
W30 D3 W30 D3 W30 D3 
H9 = {Had(k,i/9)} = W30 D3 W31 D3 W32 D3  .
W30 D3 W32 D3 W34 D3 


287
Выполняя умножение матриц D3 на соответствующие элементы
W3q (q  0,1, 2, 4) и минимизируя фазу полученной матрицы, придем к
матрице (5.25) ВКФ-Адамара с минимальными фазами.
_______________ . _______________
В уравнении (5.26) представляют интерес два крайних случая: p=2 и
p=N. При p=2 исходная матрица ДЭФ D2 совпадает с элементарной матрицей
Адамара Н2, поэтому матрица системы ВКФ-Адамара становится матрицей
Адамара Н 2 n
размером 2  2
n
n
и система ВКФ-Адамара переходит в
систему Уолша-Адамара {had (k , i / N )} . При p=N
и n=1 матрица ВКФ-
Адамара совпадает с матрицей ДЭФ размера N  N .
Поскольку
при
образовании
матрицы
используется
H pn
кронекеровское умножение матриц, то систему ВКФ-Адамара называют еще
и системой ВКФ-Кронекера.
Пример 5.5. Записать систему ВКФ-Хармута для N=9=32.
Решение. Воспользуемся связью систем Хармута и Пэли через
обобщенный код Грея. Эта связь выражается в том, что номер функции в
системе Пэли совпадает с его p-ичным кодом Грея в системе Хармута. В
табл. 5.1 приведены значения k номеров ВКФ-Хармута в десятичной и
троичной системах счисления (номерация разрядов идет справа налево) и
соответствующие им троичные коды Грея <k>, также записанные в троичной
и десятичной системах.
Таблица 5.1.
k в десятичной
системе
k в троичной
системе
<k> в троичной системе
<k> в десятич
ной системе
0
1
2
3
4
5
6
7
8
00
01
02
10
11
12
20
21
22
00
01
02
11
12
10
22
20
21
0
1
2
4
5
3
8
6
7
В соответствии с результатами табл. 5.1 нулевая, первая и вторая
функции Хармута совпадают с такими же функциями Пэли, третья функция
Хармута совпадает с четвертой функцией Пэли, четвертая – с пятой, пятая –
с третьей, шестая – с восьмой, седьмая – с шестой и восьмая – с седьмой
288
функцией. Применив это правило соответствия к системе Пэли (5.22),
получим систему Хармута с минимальными фазами для p=3 и n=2
1
1

1

1
{Har (k , i / 9)}  1

1
1

1
1

1
1
1
1
1
1
W31
W31
1
1
W32 W32 W32
W31
W31
W31 W32
W32
1
W31 W32
1
3
1
3
2
3
2
3
2
3
2
3
2
3
1
3
1
3
1
3
2
3
1
1
1
W31 W32 W32
1
W
W
W32
W31 W
1
W31
1
W31
1
W31
1
W32
W
W
W
1
W
W
1
W
W
W32
W31
W
W
1
W32
W
W
W31
1
1
3
2
3
1
3
W32 W32
W31
1 
W32 
W31 

W31 
1 .

W32 
W32 

W31 
1 
_______________ . _______________
Так как ВКФ являются комплексными функциями, то к ним также
можно применить модель вращающегося на плоскости вектора, которая
ранее использовалась при рассмотрении ДЭФ. Для ДЭФ было показано, что в
силу их свойств, частоту или порядок функции в системе следует связывать
только со скоростью вращения вектора. Трактовка частоты как числа
знакоперемен действительной или мнимой части ДЭФ несовместима с
определением этой функции на интервале положительных чисел N.
Применим данное понятие частоты к ВКФ [60]. Определим частоту как
число оборотов, совершаемых вектором ВКФ на интервале ее определения,
при условии, что векторы изображают ВКФ с полными фазами и могут
вращаться только против часовой стрелки, а следовательно, фаза ВКФ
может только нарастать. Частота функции, входящей в некоторую систему
ВКФ, не должна зависеть от модуля p системы, поэтому она будет одной и
той же и для функций Уолша, и для ДЭФ, и для любых ВКФ при условии,
что они определены на равном интервале N и упорядочены по одному
принципу.
Вращаясь, вектор ВКФ может занимать на плоскости только p
фиксированных положений. Для ДЭФ это число равно N , а для функций
Уолша – 2. В общем случае вектор ВКФ вращается неравномерно, однако
исключение будут составлять ВКФ, совпадающие с обобщенными
функциями Радемахера, у которых фаза при вращении вектора равномерно
нарастает,
достигая
величины
2 p m1.
289
Это
обстоятельство
можно
использоваться для того, чтобы восстановить истинный характер нарастания
полной фазы ВКФ по матрице с минимальными фазами (см. пример 5.2).
Важной особенностью системы ВКФ-Пэли является такое
упорядочение, при котором число оборотов вектора за период (т.е. к моменту
i=N) точно равно номеру функции. Так, при k = 1 вектор ВКФ совершает
один оборот за период, при k = 2 – два оборота и т.д. В этом смысле матрица
ВКФ-Пэли подобна матрице ДЭФ той же размерности. Следовательно, номер
функции в системе Пэли можно истолковать как частоту ВКФ. Никакая
другая из возможных систем ВКФ таким свойством не обладает.
Пример 5.6. Проиллюстрировать частоту ВКФ-Пэли для N=9.
Решение. Так как N=32 , то вектор ВКФ при своем вращении в этом
случае будет занимать на плоскости три возможных положения (см. рис. 5.1).
Первое положение определяется фазой 2 q, q  0, 3, 6, ... , кратной 2 , и ему
соответствуют
элементы
W30 ,W33 , W36 , W39 , W312 , W315 , W318 .
2πq/3,q=1,4,7,…,
кратной
W31 ,W34 , W37 , W310 , W313 , W316 , W319 .
фазой
4πq/3, q=2,5,8,… ,
W32 , W35 , W38 , W311 , W314 , W317 , W320 .
матрицы
Второе
положение
2π/3,
и
ему
ВКФ-Пэли
(5.24)
определяется
фазой
соответствуют
элементы
Ну и, наконец, третье положение определяется
кратной
4π/3, и ему соответствуют элементы
Переход от одного соседнего элемента матрицы
ВКФ к другому соответствует определенной части оборота вектора.
Суммируя эти части, можно определить общее число оборотов за период, т.е.
частоту ВКФ. При этом следует помнить, что ВКФ являются
периодическими функциями, и учесть переход от последнего элемента к
начальному (нулевому), который в этом случае должен быть представлен в
полнофазовой записи как N-й элемент.
Проиллюстрируем эту процедуру для функции Pal (5, i / 9) (пятая строка
матрицы (5.24)). Переход от элемента W30 к элементу W31 соответствует 1/3
оборота, от W31 к W32 – также 1/3 оборота, от W32 к W35 – одному обороту, от W35
к W36 – 1/3 оборота, от W36 к W37 – 1/3 оборота, от W37 к W310 – одному обороту,
от W310 к W311 – 1/3 оборота, от W311 к W312 – 1/3 оборота, от W312 к W30 – одному
обороту, т.к. в этом случае W30 в полнофазном представлении есть W315 .
Общее число оборотов равно 5 и совпадает с номером ВКФ. Для других ВКФ
процедура определения частоты аналогична.
290
q=1,4,7,...
.
2
2π
/
2π / 3
.
3
/
2π
.
1 q= 0,3,6,...
3
.
3
q=2,5,8,...
Рис. 5.1 Положения вектора ВКФ при p=3
_______________ . _______________
Введенное для ВКФ понятие частоты естественно распространяется
при p = 2 и на функции Уолша. Векторы, изображающие функции системы
Уолша-Пэли в ее полнофазном представлении, совершают на интервале
определения (к моменту i=N) целое число оборотов, точно равное номеру
функции. Следовательно, и для функций Уолша номер в системе Пэли
определяет частоту функции. Именно такая упорядоченность системы
Уолша, по-видимому, объясняет не раз отмеченный в литературе факт
лучшей сходимости ряда Фурье по системе Пэли по сравнению с рядами
Фурье по системам Адамара и Хармута. Этот факт подтверждается и
приведенной ранее формулой (4.94) для спектра Уолша-Пэли гладкого
сигнала.
Пример 5.7. Определить частоту функции Уолша-Пэли для N = 8.
Решение. Перепишем матрицу Уолша-Пэли в экспоненциальном виде
W20
 0
W2
W20
 0
W
{ pal (k , i / 8)}   20
W
 20
W2
W 0
 2
W20
W20 W20 W20 W20 W20 W20 W20 

W20 W20 W20 W21 W21 W21 W21 
W20 W21 W21 W20 W20 W21 W21 

W20 W21 W21 W21 W21 W20 W20 
,
W21 W20 W21 W20 W21 W20 W21 

W21 W20 W21 W21 W20 W21 W20 
W21 W21 W20 W20 W21 W21 W20 

W21 W21 W20 W21 W20 W20 W21 
291
где W2=exp(jπ), и восстановим полные фазы функций этой системы таким же
способом, как это было сделано в примере 5.4 для системы ВКФ-Пэли. Для
этого представим функции в виде произведения простых функций
Радемахера r (m, i / 8) (см. пример 4.14), а сами функции Радемахера запишем в
полнофазном
виде:
r (2, i / 8)  pal (2, i / 8)
=
{W20 ,W20 , W21 , W21 , W22 , W22 , W23 , W23};
r (3, i / 8)  pal (4, i / 8) = {W20 ,W21 , W22 , W23 , W24 , W25 , W26 ,W27 } .
r (1, i / 8)  pal (1, i / 8)
Запись
функции
не изменяется. В результате получим
W20
 0
W2
W20
 0
W
{ pal (k , i / 8)}   20
W
 20
W2
W 0
 2
0
W2
W20 W20 W20 W20 W20
W20
W20 W20 W20
W21
W21
W21
W20
W21
W21 W22 W22
W23
W20
W21
W21 W23 W23
W24
W21 W22 W23 W24 W25
W26
W21 W22 W23 W25 W26
W27
W21 W23 W24 W26 W27
W29
W21 W23 W24 W27 W28 W210
W20 

W21 
W23 

W24 
.
W27 

W28 
W210 

W211 
Подсчитаем число оборотов, совершаемых вектором 5-й функции
Уолша-Пэли pal (5, i / 8) за период N = 8. При вращении вектор любой функции
Уолша-Пэли будет занимать на плоскости всего два положения: с фазой,
кратной 2π (ему соответствуют элементы полнофазной матрицы Уолша-Пэли
W20 , W22 , W24 , W26 , W28 , W210 , W212 )
и с фазой, кратной π (ему соответствуют элементы
W21 ,W23 , W25 , W27 , W29 , W211 , W213 ).
Поэтому для pal (5, i / 8) имеем: при переходе от
элемента W20 к элементу W21 вектор совершает полоборота, от W21 к W22 –
полоборота; от W22 к W23 – полоборота, от W23 к W25 – один оборот, от W25 к W26 –
полоборота, от W26 к W27 – полоборота, от W27 к W28 – полоборота и от W28 к W20 (
W210 ) – один оборот. В итоге вектор pal (5, i / 8) сделает ровно пять оборотов.
_______________ . _______________
Ранее мы отмечали, что любая система ВКФ может содержать
действительные и попарно комплексно-сопряженные функции. Все эти
функции легко интерпретируются при представлении ВКФ с помощью
вращающихся векторов. По определению векторы всех ВКФ вращаются в
одну сторону, при этом скорость вращения векторов разная, так что одни
обгоняют другие. Из-за дискретного характера функций положения векторов
фиксируется лишь в определенные моменты времени. При этом некоторые
векторы, имеющие большую скорость вращения против часовой стрелки,
292
воспринимаются как векторы, вращающиеся в обратную сторону с меньшей
скоростью. Вследствие этого комплексно-сопряженные векторы кажутся
вращающимися в противоположные стороны с равной скоростью. Это
явление может быть истолковано как своеобразный стробоскопический
эффект. Векторы действительных функций располагаются только под
углами 0 или π и поэтому кажутся невращающимися.
При определении на положительном интервале комплексносопряженные ВКФ имеют разную частоту, однако их действительные и
мнимые части имеют равное число знакоперемен. Именно поэтому в этом
случае следует делать различие между действительной частотой и частотой
следования (секвентой) функций Уолша, ДЭФ и вообще ВКФ. По этой
причине функции Уолша в системе Пэли упорядочены по частоте, а в
системе Хармута – по секвенте.
Дискретные ВКФ могут быть использованы для разложения
дискретных сигналов x(i), i=0, 1, …, N-1 в ряды Фурье. Пара ДПФ в базисе
ВКФ имеет следующий вид:
N 1
x(i )   X (k )Wal (k , i / N ),
k 0
(5.27)
N 1
1
x(i)Wal  (k , i / N ).

N i 0
Спектр X(k) в общем случае является комплексным, поэтому равенство
Парсеваля записывается так:
X (k ) 
1
N
N 1
x
i 0
N 1
2
(i )   X (k ) X  (k ).
k 0
(5.28)
Функция
S (k )  X (k ) X  (k ), k  0, 1, ..., N 1
(5.29)
определяет спектр мощности сигнала.
ДПФ (5.27) могут быть записаны и в матричном виде, причем вид их
записи совпадет с записью ДПУ (см. § 4.7), если в ней считать, что матрица
W означает матрицу ВКФ, а не Уолша, и учесть комплексно-сопряженный
характер матрицы W в прямом ДПФ.
Дискретные ВКФ являются дважды мультипликативными базисными
функциями, поэтому для их спектров выполняются все свойства спектров
мультипликативных базисов, приведенные в § 3.8. В частности справедливы
293
теоремы о сдвиге, модуляции, свертке, корреляции и умножении сигналов.
Так как мультипликативность ВКФ выполняется относительно операции
поразрядного сложения по модулю p, то и временные сдвиги в этом базисе
также осуществляются в виде поразрядных сложений и вычитаний по
модулю p. Это позволяет ввести в этом базисе обобщенную свертку и ричную (полиадическую) автокорреляционную функцию в виде зависимостей
(3.73) и (3.74), где общие обозначения (+) и (-) будут соответствовать этим
операциям: ( )  ( ) p , ()  ( ) p . Энергетические спектры в базисе ВКФ
будут инвариантными к обобщенному сдвигу.
Для ВКФ, подобно функциям Уолша, можно записать спектры
мощности, инвариантные к обычному временному сдвигу в виде
алгебраического сложения. Способ построения таких спектров определяется
структурой матрицы А связи сигналов при сдвиге, которая в свою очередь
зависит от упорядочения ВКФ. Сама матрица А при этом по форме записи
близка к матрицам А в базисах ДЭФ и Уолша
A=
1
W*MW
N
(5.30)
и отличается только значениями элементов матриц W и W*, которые в этом
случае равны W p
 ki
, k , i  0,1,..., p 1 .
Рассмотрим матрицы А для ВКФ Адамара и Пэли сначала на
конкретных примерах, а затем обобщим полученные результаты.
Пример 5.8. Записать матрицу связи спектров для упорядочения
Адамара при N=9.
Решение. В этом случае p=3, а n=2 и матрица А имеет следующий
блочно-диагональный вид:
1
 W1
3


W32


А= 







a3,3
a3,4
a3,5
a4,3
a4,4
a4,5
a5,3
a5,4
a5,5
294
a6,6
a6,7
a7,6
a7,7
a8,6
a8,7






,


a6,8 

a7,8 
a8,8 
(5.31)
где
1
1
3
a3,3  a5,3  a5,4  (2W30  W31 )   j
;
3
2
6
1
1
3
a3,4  a3,5  a4,4  (2W31  W32 )    j
;
3
2
6
1
3
a4,3  a4,5  a5,5  (W30  2W32 )   j
;
3
3
1
1
3
a6,6  a7,6  a7,8  (2W30  W32 )   j
;
3
2
6
1
1
3
a6,7  a6,8  a8,8  (W31  2W32 )    j
;
3
2
6
1
3
a7,7  a8,6  a8,7  (W30  2W31 )  j
.
3
3
Такая структура матрицы А позволяет решение матричного уравнения (4.107)
представить в виде следующей системы равенств:
Y1 (0)  X (0); Y1 (1)  W31 X (1); Y1 (2)  W32 X (2);
Y1 (3)  a3,3 X (3)  a3,4 X (4)  a3,5 X (5);
Y1 (4)  a4,3 X (3)  a4,4 X (4)  a4,5 X (5);
Y1 (5)  a5,3 X (3)  a5,4 X (4)  a5,5 X (5);
Y1 (6)  a6,6 X (6)  a6,7 X (7)  a6,8 X (8);
Y1 (7)  a7,6 X (6)  a7,7 X (7)  a7,8 X (8);
Y1 (8)  a8,6 X (6)  a8,7 X (7)  a8,8 X (8);
Из нее следует, что все спектральные коэффициенты X(k) и Y1(k) можно
разбить на 5 групп, в которые входят коэффициенты с номерами, не
принадлежащими другим группам. Так в состав 0-й группы входят
коэффициенты с нулевым номером, в состав 1-й – с первым номером, в
состав 2-й – со вторым номером, в состав 3-й – с номерами 3, 4 и 5, а в состав
последней 4-й группы – с номерами 6, 7 и 8. Можно показать, что суммы
произведений комплексно-сопряженных пар коэффициентов X(k) и Y1(k) в
пределах каждой группы равны между собой:
Y1 (0)Y1 (0)  X (0) X  (0); Y1(1)Y1 (1)  X (1) X (1); Y1 (2)Y1 (2)  X (2) X  (2);
Y1 (3)Y1 (3)  Y1 (4)Y1 (4)  Y1 (5)Y1 (5)  X (3) X  (3)  X (4) X  (4)  X (5) X  (5);
Y1 (6)Y1 (6)  Y1 (7)Y1 (7)  Y1 (8)Y1 (8)  X (6) X  (6)  X (6) X  (7)  X (8) X  (8).
Их можно использовать для образования
инвариантного к циклическому сдвигу:
энергетического
S (0)  X (0) X  (0); S (1)  X (1) X  (1); S (2)  X (2) X  (2);
295
спектра,
S (3)  X (3) X  (3)  X (4) X  (4)  X (5) X  (5);
S (4)  X (6) X  (6)  X (7) X  (7)  X (8) X  (8).
_______________ . _______________
Результаты приведенного и других примеров показывают, что в общем
случае для произвольных p и n матрица А сохраняет блочно-диагональный
вид и строится по принципу «расширяющейся диагонали», при котором
блоки располагаются в порядке возрастания их размерности:
1



А= 








.



A(n  1) 
A(0)



(5.32)
Блок-матрицы A(i), i=0, 1, …, n-1 в свою очередь также имеют блочнодиагональную структуру и состоят из (p-1) субблоков А (i, m), m  1, 2, ..., p  1 :
 A(i,1)



А (i )  




A(i, 2)







.



A(i, p  1) 
При этом каждый m-й матричный субблок А(i, m) является квадратной
i
i
матрицей размера p  p
 a0,0 (i, m)

(i, m)  
.
А
 a i (i, m)
 p 1,0
и содержит
a0, pi 1 (i, m) 

.
.
.

a pi 1,1 (i, m) ... a pi 1, pi 1 (i, m) 

a0,1 (i, m)
...
p 2i ненулевых комплексных элементов, образованных из
0
1
p 1
различных линейных комбинаций чисел Wp , Wp ,...,Wp . Суббматрицы A(0,
m
m) имеют единичную размерность и состоят из одного элемента W p ,
поэтому блок-матрица А(0) будет обычной
296
диагональной
матрицей с
1
2
p 1
элементами Wp ,Wp , ...,Wp . Вся матрица А содержит ( p 2 n  p) /( p  1)
ненулевых элементов.
Блочно-диагональная структура матрицы А позволяет все
спектральные коэффициенты Y1(k) и X (k) при решении матричного
уравнения (4.107) разбить на n(p-1)+1 группу так, что в каждую группу будут
входить только коэффициенты с номерами, совпадающими с номерами
строк и столбцов, на пересечении которых находятся элементы,
принадлежащие данному субблоку. Правило образования групп поясняется
табл. 5.2.
Таблица 5.2.
Номер группы
Количество
коэффициентов
в группе
Номера коэффициентов
в группе
0
1
..
.
1
1
..
.
0
1
..
.
p-1
p
..
.
1
p
..
.
2(p-1)
..
.
p
..
.
( p  1) p, ( p  1) p  1, ..., p 2  1
..
.
..
.
 ( p  1)  1
..
.
(  1)( p  1)
..
.
p 1
p, p  1, ..., 2 p  1
..
.
..
.
p
p  , p   1,..., 2 p   1
p
( p  1) p ,( p  1) p  1,..., p 1  1
p n1
p n1 , p n1  1,..., 2 p n1  1
p n1
( p  1) p n1 ,( p  1) p n1  1,..., p n  1
..
.
(n  1)( p  1)  1
..
.
..
.
..
.
n( p  1)
..
.
Суммы пар произведений комплексно-сопряженных коэффициентов
Y1 (k )Y1 (k )
и X (k ) X  (k ) в пределах каждой группы равны между собой
Y1 (0)Y1 (0)  X (0) X  (0); Y1 (k )Y1 (k )  X (k ) X  (k ), k  1, 2,..., p  1 ;
(5.33)

( m 1) p 1

i  mp


1
Y1 (i)Y (i) 
( m 1) p 1

X (i) X  (i),   1, 2, ..., n  1; m  1, 2,..., p 1.
i  mp
Это позволяет спектр мощности, инвариантный к циклическому сдвигу, для
ВКФ-Адамара записать в следующем виде:
297
S (0)  X (0) X  (0); S (k )  X (k ) X  (k ), k  1, 2,..., p 1;
(5.34)

S ( ( p  1)  m) 
( m 1) p 1

X (i) X  (i),   1, 2, ..., n  1; m  1, 2,..., p  1.
i  mp
Из этого общего спектра следуют частные результаты, полученные в
§4.4 и §4.7. Действительно, при p=N и n=1 матрица А (5.32) содержит только
элемент 1 и блок А(0) и совпадает с матрицей А для ДЭФ. Поэтому спектр
(5.34) переходит в аналогичный спектр для ДЭФ. При p=2 матрица (5.32)
переходит в матрицу А для базиса Уолша-Адамара, а спектр (5.34)
становится спектром мощности (4.109) Уолша-Адамара.
Рассмотрим теперь систему ВКФ-Пэли.
Пример 5.9. Записать матрицу связи спектров при сдвиге сигнала для
упорядочения Пэли при N=9.
Решение. Расчет матрицы А для ВКФ-Пэли (5.22) приводит к
следующему результату:
1 0
0 a
1,1

0 0

0 0
A  0 a4,1

0 0
0 0

0 a7,1
0 0

0
0
0
0
0
0
0
0
a1,4
0
0
a1,7
a2,2
0
0
a2,5
0
0
1
3
0
W
0
0
0
0
0
0
a4,4
0
0
a4,7
a5,2
0
0
a5,5
0
0
2
3
0
0
0
0
W
0
0
0
a7,4
0
0
a7,7
a8,2
0
0
a8,5
0
0
где ненулевые элементы aij равны:
1
1
3
a1,1  a7,1  a7,4  (2W30  W31 )   j
;
3
2
6
1
1
3
a1,4  a1,7  a4,4  (2W31  W32 )    j
;
3
2
6
1
1
3
a2,2  a5,2  a5,8  (2W30  W32 )   j
;
3
2
6
1
1
3
a2,5  a2,8  a8,8  (W31  2W32 )    j
;
3
2
6
1
3
a4,1  a4,7  a7,7  (W30  2W32 )   j
;
3
3
1
3
a5,5  a8,2  a8,5  (W30  2W31 )  j
.
3
3
298
0 
0 
a2,8 

0 
0 ,

a5,8 
0 

0 
a8,8 
(5.35)
Матрица (5.35) не является блочно-диагональной и имеет более
сложную структуру по сравнению с матрицей (5.31). Однако наличие в ней
нулевых элементов и их специфическое расположение позволяют решение
матричного уравнения (4.107) и в этом случае свести к решению системы
уравнений, подобной системе, полученной в предыдущем примере:
Y1 (0)  X (0); Y1 (3)  W31 X (3); Y1 (6)  W32 X (6);
Y1 (1)  a1,1 X (1)  a1,4 X (4)  a1,7 X (7);
Y1 (4)  a4,1 X (1)  a4,4 X (4)  a4,7 X (7);
Y1 (7)  a7,1 X (1)  a7,4 X (4)  a7,7 X (7);
Y1 (2)  a2,2 X (2)  a2,5 X (5)  a2,8 X (8);
Y1 (5)  a5,2 X (2)  a5,5 X (5)  a5,8 X (8);
Y1 (8)  a8,2 X (2)  a8,5 X (5)  a8,8 X (8).
Это в свою очередь позволяет все спектральные коэффициенты {Y1 (k )} и
{ X ( k )}
разбить на 5 групп с номерами, принадлежащими только одной
конкретной группе. При этом в состав 0-й, 1-й и 2-й групп входят по одному
коэффициенту Y1 (0) и X (0) , Y1 (3) и X (3) и Y1 (6) и X (6) соответственно, а в
состав 3-й и 4-й групп – по три коэффициента {Y1 (1), Y1 (4), Y1 (7)} и
{ X (1), X (4), X (7)};
{Y1 (2), Y1 (5), Y1 (8)} и
{ X (2), X (5), X (8)} .
Суммы попарных
произведений комплексно-сопряженных коэффициентов Y1 (k ) и
X (k )
в
пределах каждой группы в этом случае так же равны между собой:
Y1 (0)Y1 (0)  X (0) X  (0); Y1 (3)Y1 (3)  X (3) X  (3); Y1 (6)Y1 (6)  X (6) X  (6);
Y1 (1)Y1 (1)  Y1 (4)Y1 (4)  Y1 (7)Y1 (7)  X (1) X  (1)  X (4) X  (4)  X (7) X  (7);
Y1 (2)Y1 (2)  Y1 (5)Y1 (5)  Y1 (8)Y1 (8)  X (2) X  (2)  X (5) X  (5)  X (8) X  (8) .
Данные суммы можно использовать для организации спектра мощности,
инвариантного к циклическому сдвигу на один отсчет:
S (0)  X (0) X  (0); S (1)  X (3) X  (3); S (2)  X (6) X  (6);
S (3)  X (1) X  (1)  X (4) X  (4)  X (7) X  (7);
S (4)  X (2) X  (2)  X (5) X  (5)  X (8) X  (8).
Число составляющих такого спектра равно числу групп спектральных
коэффициентов.
_______________ . _______________
299
В общем случае структура матрицы А для ВКФ-Пэли позволяет все
спектральные коэффициенты при решении матричного уравнения (4.107)
также разбить на n( p  1)  1 независимых групп, подобно тому, как это было
сделано для системы ВКФ-Адамара. Правило образования групп для этого
случая другое и поясняется табл. 5.3.
Таблица 5.3
Номер группы
Количество
коэффициентов
Номера коэффициентов
в группе
в группе
0
1
0
1
..
.
p-1
1
..
.
1
p n1
p
..
.
2(p-1)
..
.
p
..
.
p
..
.
..
.
( p  1) p n1
p n2 , p n2 (1  p),..., p n2 [1  p( p  1)]
..
.
p n2 ( p  1), p n2 ( p  1  p),..., p n2 [( p  1)  p( p  1)]
..
.
 ( p  1)  1
p
p n 1 , p n 1 (1  p),..., p n 1[1  p( p  1)]
..
.
..
.
..
.
(  1)( p  1)
p
p n 1 ( p  1), p n 1[( p  1)  p],..., p n 1[( p  1)  p( p 1)]
..
.
..
.
..
.
(n  1)( p  1)  1
p n1
1, 1  p, ..., 1  ( p n1  1) p
..
.
..
.
..
.
n( p  1)
p n1
p  1, ( p  1)  p,..., p n  1
Суммы пар произведений комплексно-сопряженных коэффициентов
Y1 (k ) Y1 (k ) и
X (k ) X  (k ) с номерами, принадлежащими каждой группе, равны
между собой
Y1 (kp n 1 )Y  (kp n 1 )  X (kp n 1 ) X  (kp n 1 ), k  0, 1, ..., p  1;
p 1
Y[p
i 0
1
n  1
p 1
(m  ip)]Y1[ p n 1 (m  ip)]   X [ p n 1 (m  ip)] X [ p n 1 (m  ip)],
i 0
  1, 2, ..., n  1; m  1, 2, ..., p  1.
300
(5.36)
Из этих пар можно образовать инвариантный спектр мощности в базисе
ВКФ-Пэли:
S (k )  X (kp n1 ) X  (kp n1 ), k  0, 1, ..., p  1;
S[ ( p  1)  m)] 
p 1
 X[ p
n   1
(m  ip)] X [ p n 1 (m  ip)],
i 0
  1, 2, ..., n  1; m  1, 2, ..., p  1.
(5.37)
При p=N и n=1 спектр (5.37) переходит в спектр мощности ДЭФ, а
при p=2 – в спектр мощности Уолша-Пэли (4.108).
Спектры мощности (5.34) и (5.37) не зависят от циклического сдвига
сигналов на любое число отсчетов. Доказывается это по той же схеме, что
была использована в системах ДЭФ и Уолша.
Остановимся теперь на спектрах Виленкина-Крестенсона конкретных
сигналов. В качестве примера рассмотрим свойства спектров степенных

сигналов x(i )  i ,   0, 1, ..., причем сохраним для них те же обозначения
X (  ) (k ) , что были использованы нами в базисе Уолша (см. § 4.7).
Начнем с постоянного сигнала x(i)  1 . Его спектр X (0) (k ) является
действительным и содержит одно единичное и N-1 нулевое значение:
X (0) (k ) 
1, k  0,
1 N 1
Pal  (k , i / N )  

N i 0
0, k  0.
(5.38)
Это следует из свойства о среднем ВКФ. Формула (5.38) справедлива для
любого базиса, у которого нулевая функция принимает только единичные
значения, а среднее значение всех остальных функций равно нулю.
Для линейного сигнала x(i)  i спектр
1 N 1
iPal  (k , i / N )

N i 0
содержит как действительные, так и комплексные составляющие и обладает
X (1) (k ) 
следующими полезными для его вычисления свойствами.
1. Все коэффициенты этого спектра с номерами ранга выше 1 равны
нулю, т.е.
X (1) (k ( R  1))  0.
(5.39)
301
Не равны нулю только коэффициенты нулевого
X (1) (0)
и
первого
X (1) ( p m1 ) (  1, 2, ..., p  1; m  1, 2, ..., n) рангов.
Коэффициент нулевого ранга линейного сигнала
1 N 1
X (1) (0)   i ( N  1) / 2.
(5.40)
N i 0
3. Все спектральные коэффициенты первого ранга можно по значению
переменной m разбить на n групп. При этом коэффициенты каждой
последующей группы будут в p раз меньше соответствующих
коэффициентов предыдущей группы. Это свойство позволяет выразить
спектральные коэффициенты всех групп через коэффициенты первой
группы:
2.
X (1) ( p m1 ) X (1) (  ) / p m1.
4. В пределах каждой группы действительная часть коэффициентов
первого ранга не меняется, т.е.
Re[ X (1) ( p m1 )] Re[ X (1) (2 p m1 )]  ...  Re[ X (1) (( p  1) p m1 )].
Для коэффициентов первой группы это равенство упрощается:
Re[ X (1) (1)] Re[ X (1) (2)]  ...  Re[ X (1) ( p  1)].
5. В каждой группе мнимые составляющие спектра первого ранга
располагаются в кососимметричном порядке, т.е.
Im[ X (1) (( p   ) p m1 )]  Im[ X (1) (  p m1 )],
причем число равных по модулю пар мнимых частей X (1) ( pm1 ) при
нечетном значении p равно ( p  1) / 2 , а при четном его значении – ( p  2) / 2 . В
последнем случае мнимая часть коэффициента X (1) ( pm1 ) с   p / 2 равна
нулю.
Свойства 3 и 4 позволяют существенно упростить процедуру
вычисления коэффициентов первого ранга. Из них следует, что для
получения всего спектра первого ранга достаточно найти действительную
часть первого коэффициента Re[ X (1) (1)] и мнимые части коэффициентов
первой группы Im[ X (1) ( )],   1, 2, ..., p  1. Найдем их.
Коэффициенты Уолша-Пэли
относящиеся к первой группе (m=1)
1
X ( ) 
N
(1)
первого
N 1
 i exp( j
i 0
302
ранга
2
in ) .
p
линейного
сигнала,
Поэтому действительная часть первого коэффициента (   1) будет равна
Re[ X (1) (1)] 
1
N
N 1
 i cos(
i 0
2
in ) .
p
Учитывая распределение значений n-го разряда in p-ичного разложения
чисел i, сумму в последнем выражении можно преобразовать и свести
действительную часть к следующему виду:
1
Re[ X (1)] 
N
(1)
p n1 1

i 1
n1
1 p 1 ( 1) p 1
2
i    i cos(  ) 
N  1 i  pn1
p
n1
n1
1 p 1 1 p 1
2 ( 1) p 1

i

cos(
)  i .
 N
N i 1
p
 1
i  pn1
Из этого выражения, используя известные формулы для сумм чисел
натурального ряда, после преобразования получаем
 2  1  N  p 1
 2  
1  N  1  N p 1
Re[ X (1)] 
  1    cos       1  cos     .
2 p  p  p  p  1
 p  2  p   1
 p 
(1)
Но
p 1
cos(


1
2
 )  1 ,
p
поэтому
N p 1
2
 cos(  )
2 
p  1
p
Сумма в этом выражении является табличной (см., например, [49]) и равна
Re[ X (1) (1)] 
2
p sin(2   / p) 1  cos(2 )
p
) 



.
p
2sin( / p)
4sin 2 ( / p)
2
 1
В соответствии с этим
Re[ X (1) (1)]   N /(2 p) .
Для мнимых частей первой группы коэффициентов
p 1
  cos(
n1
1 N 1
2
1 p 1 ( 1) p 1
2
Im[ X (  )]    i sin( in )     i sin(  ) 
N i 0
p
N  1 i  pn1
p
(1)
 2

1  N  p 1
2
N p 1


1
sin(

)


sin

  p .


2 p  p   1
p
p 2  1


В этом выражении первая сумма равна нулю, т.к. равна сумме
решетчатых значений синусоиды на целом числе ее периодов, а вторая
сумма является табличной
303
p 1
 sin(


1
2
sin(2 )
p  cos(2   / p)
p
 ) 



ctg ( / p) .
p
4sin 2 ( / p)
2sin( / p)
2
Поэтому
Im[ X (1) (  )] 
N
ctg ( / p).
2p
Объединяя все полученные результаты, запишем спектр первого ранга
линейного сигнала в окончательном виде:
N m
p [1  jctg ( / p)], m  1, 2, ..., n;   1, 2,..., p 1 (5.41)
2
Формулы (5.39)-(5.41) определяют аналитическое описание спектра ВКФПэли линейного сигнала.
Пример 5.10. Получить значения спектра первого ранга линейного
сигнала для p  3, n  3 и p  4, n  2 .
X (1) (  p m1 )  
Решение. Результаты расчетов по формуле (5.41) приведены в табл. 5.4.
Таблица 5.4.
p
n
N
m
1
3
3
27
2
3
1
4
2
16
2
X(1)(k)
k
1
9(1  j / 3) / 2
2
9(1  j / 3) / 2
3
3(1  j / 3) / 2
6
3(1  j / 3) / 2
9
(1  j / 3) / 2
18
(1  j / 3) / 2
2(1  j )
2
2(1  j )
(1  j ) / 2
1
2
3
4
8
12
1/ 2
(1  j ) / 2
Такие же результаты получаются путем непосредственного вычисления
спектра сигнала x(i)=i по формуле (5.27) прямого преобразования Фурье в
базисе ВКФ-Пэли для N=27 и N=16.
_______________ . _______________
Общая формула (5.41) позволяет получить частные результаты в
базисах функций Уолша и ДЭФ. Если положить p=2, то все коэффициенты
первого ранга образуют n групп по одному коэффициенту в группе.
Параметр µ в этом случае равен 1, а функция ctg ( / 2)  0 . Поэтому спектр
(5.41) становится действительным и переходит в спектр первого ранга
304
Уолша-Пэли (см. зависимости (4.112)). Если же принять p=N и n=1, то
теперь параметр m=1 и весь спектр первого ранга образует одну группу
комплексно-сопряженных пар коэффициентов
X (1) ( )  [1  jctg ( / N )]/ 2,   1, 2, ..., N  1 .
Добавив к
этим коэффициентам коэффициент
X (1) (0),
(5.42)
описываемый
формулой (5.40), получим спектр Фурье (для ДЭФ) линейного сигнала.
Из общей формулы (5.41) спектра первого ранга линейного сигнала
легко получить его модуль. Он равен
X (1) (  p m 1 ) 
N m
p / sin( / p)
2
(5.43)
и с увеличением m быстро убывает по закону показательной функции с
основанием p . Ряд Фурье по ВКФ для линейного сигнала принимает
следующий вид:
N  1 N n  m p 1

i
  p [1  jctg ( )]Pal (  p m1 , i / N ) .
(5.44)
2
2 m1
p
 1
Используя его, можно в общем виде записать ряд ВКФ-Фурье произвольного
степенного сигнала x(i)  i 


 N  1 N n  m p 1

i 
  p [1  jctg ( )]Pal (  p m1 , i / N )  .
2
2 m1
p


 1

В соответствии со свойством о ранге ВКФ этот ряд не будет содержать
членов ранга более
λ-го. При этом сохраняется свойство быстрого
уменьшения модуля коэффициентов ряда и с увеличением показателя
степени сигнала. Данные факты позволяют сделать вывод о своеобразной
адекватности ВКФ классу степенных сигналов, что может оказаться весьма
полезным на практике. Очевидно, что этот вывод распространяется и на
полиномиальные сигналы, в которые степенные сигналы входят составной
частью.
ВКФ могут найти применение как при решении известных задач
обработки, для которых ранее традиционно использовались базисные
системы ДЭФ и функций Уолша, так и при решении новых задач, связанных,
например, с использованием
p-линейных и
p-стационарных систем и
процессов, в которых используется обобщенный временной сдвиг в виде
поразрядного модулярного сложения [60]. Применение ВКФ позволяет
305
получать обобщенные теоретические результаты и открывает новые
возможности для решения прикладных задач.
5.2. Обобщенные функции Крестенсона
ВКФ являются обобщенными функциями Уолша. Однако им, в свою
очередь, можно придать еще большую степень обобщения, если
использовать для представления номера и аргумента этих функций
многоосновную позиционную систему счисления (систему счисления с
переменным основанием), которую мы уже использовали в § 2.5 при
вычислении кронекеровского произведения матриц. Получаемые при этом
функции обычно называют обобщенными функциями Крестенсона (ОФК), а
иногда еще – функциями Крестенсона-Понтрягина [9, 21]. Остановимся
только на дискретных ОФК.
Пусть p1 , p2 , ..., pn есть целые положительные числа, принятые в
качестве оснований системы счисления. Тогда целые числа k и i, задающие
номер и аргумент ОФК W(k, i), на интервале N  p1 p2 ... pn представимы в виде
n
i   im p0 p1... pm 1  pn 1 pn  2 ... p1in  ...  p2 p1i3  p1i2  i1 ,
m 1
(5.45)
n
k   km p0 p1... pm 1  pn 1 pn  2 ... p1kn  ...  p2 p1k3  p1k2  k1 ,
m 1
где p0  1 , а im и km являются m-ми разрядами позиционного представления
чисел
i и k ( i1 и k1 ‒ младшие разряды) и лежат в диапазоне [0, pm  1] .
Обобщение ВКФ достигается записью функций в виде
n
kmim
), i  0, 1, ..., N 1.
m 1 pm
ОФК (5.46) можно представить и через произведение ДЭФ:
n
n
n
j 2 kmim
W (k , i)   exp(
)   def (km , im )  Wpkmmim ,
pm
m 1
m 1
m 1
W (k , i)  exp( j 2 
(5.46)
(5.47)
im , km  0, 1, ..., pm  1,
где принято W pm  exp( j
2
).
pm
Представленные ОФК обладают рядом интересных свойств. Приведем
основные из них.
306
1. ОФК являются комплексными функциями с единичным модулем и
n
фазой
kmim
. Вычитая из фазы целое число 2 , можно
m 1 pm
 (k , i)  2 
получить ОФК с минимальными фазами.
2. В ОФК переменные k и i равноправны, поэтому, если поменять их
местами, функция не изменится, т.е.
W (k , i )  W (i, k ).
(5.48)
В этом проявляется свойство двойственности ОФК относительно своих
аргументов, которое приводит к симметричности матрицы значений ОФК.
3. Среднее значение любой ОФК, кроме нулевой, равно нулю, т.е.
1
N
N 1
 W (k , i)  0,
k  0.
(5.49)
i 0
Действительно,
N 1
N 1 n
 W (k , i )   W
i 0
i  0 m 1
N 1
n
kmim
pm
  W
m 1 i  0
p1 1 p2 1
pn 1
m 1 i1  0 i2  0
in  0
n
kmim
pm
    ...  W pkmmim .
(5.50)
Но при km  0
pm 1

im  0
Wpkmmim  0,
поэтому при k  0 , когда хотя бы один разряд km  0 , все произведение (5.50)
будет равно нулю. Следовательно, выражение (5.49) справедливо.
Среднее значение нулевой ОФК равно единице, т.к. W (0, i)  1 и
1
N
N 1
1  1.
i 0
4. Произведение двух любых ОФК дает другую ОФК:
W (k , i )W ( , i)  W ( , i),
где
(5.51)
  k (){ p}  ,
(5.52)
а произведение двух любых ОФК, одна из которых является комплексносопряженной, так же принадлежит ОФК:
W (k , i)W  (, i)  W ( , i),
где
  k (){ p} .
307
(5.53)
(5.54)
В выражениях (5.52) и (5.54) (  ){ p}
( ){ p}
и
означают
операции
поразрядного модулярного сложения и вычитания, выполняемые
правилам:
по
1  (k1  1 ) (mod p1 ),
 2  (k2  2 ) (mod p2 ),
. . . . . . . . . . .
 n  (kn  n ) (mod pn ).
Доказательство
соотношений:
первого
утверждения
n
W (k , i) W (, i)  W
m 1
n
 W
 1
вытекает
n
n
из
следующих
 Wp  Wp  Wp  
kmim
pm
 i
 1
n
k i
 i
 1
 Wp   W ( , i).
( k   ) i
p
 i
 1
Вывод второго утверждения можно получить аналогичным образом, если
учесть, что
n
W ( , i)  Wp

  i
.
 1
Данное свойство отражает мультипликативность ОФК. В силу своей
двойственности ОФК обладают мультипликативностью как по индексу k, так
и по индексу i, т.е. являются дважды мультипликативными функциями.
5. Мощность любой ОФК равна 1:
Pk 
1
N
N 1
W (k , i)W

(k , i )  1.
(5.56)
i 0
Действительно, W (k , i)W  (k , i)  W (k , i)  1 и поэтому формула (5.56)
2
справедлива.
6. ОФК являются ортогональными функциями, т.к.
1
N
N 1
W (k , i)W

( , i )  0, k  .
i 0
(5.57)
Для доказательства этого свойства сначала воспользуемся свойством
мультипликативности в виде (5.53) и запишем сумму в (5.57) так:
1
N
N 1
1
W (k , i )W ( , i ) 

N
i 0

308
N 1
W ( , i).
i 0
Из этого выражения следует, что взаимная мощность двух ОФК с номерами k
и λ равна среднему значению ОФК с номером α, определяемым
соотношением (5.54). Но при k   номер   k (){ p}  не равен нулю и
среднее значение такой ОФК будет равно нулю (см. (5.49)).
7. Система из N ОФК будет полной системой на интервале [0, N). Это
следует из того, что в этом случае к системе нельзя будет добавить ни одной
новой функции, которая была бы ортогональной одновременно ко всем
остальным функциям системы.
Таким образом, N
ОФК образуют полную ортонормированную
мультипликативную комплексную дискретную базисную систему {W (k , i)} ,
пригодную для спектрального представления любых решетчатых сигналов
ограниченной мощности. Пара ДПФ в базисе ОФК
1
X (k ) 
N
N 1
 x(i)W

(k , i ),
i 0
(5.58)
N 1
x(i )   X (k )W (k , i ),
k 0
а равенство Парсеваля
1
N
N 1
N 1
i 0
k 0
 x2 (i)   X (k ) X  (k ),
(5.59)
где X  (k ) ‒ комплексно-сопряженная к X ( k ) величина. Спектр мощности
равен
S (k )  X (k ) X  (k ),
а спектр энергии –
E (k )  NX (k ) X  (k ).
Так как ОФК являются дважды мультипликативными функциями, то
для их спектров справедливы все общие свойства, приведенные в § 3.8. В
частности, выполняются теоремы о модуляции, сдвиге, свертке, корреляции
и умножении сигналов. При этом, поскольку операция мультипликативности
совпадает с операцией поразрядного сложения или вычитания по
переменным модулям, то и операция обобщенного сдвига в этом базисе
понимается в этом же смысле: ()  (){ p} , ()  (){ p} . Такие же операции
должны быть использованы здесь и при
309
записи обобщенных сверток и
корреляций. Энергетические спектры в базисе ОФК инвариантны к такому
обобщенному сдвигу.
ДПФ в базисе ОФК можно записать и в матричной форме, причем вид
их записи совпадет с ДПФ в базисе ВКФ и отличие будет состоять только в
элементах матриц W и W*. Матрицы значений ОФК W и W* будут
симметрическими и унитарными. Они содержат действительные и
комплексные элементы, причем комплексные попарно сопряжены. Нулевая
строка и нулевой столбец этих матриц состоят только из единичных
элементов.
Для ОФК по аналогии с ВКФ и функциями Уолша можно вести
понятие ранга R с тем же самым его определением. Номер 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
(5.60)
и зависят только от значения своего аргумента. Таким свойством обладали
обычные функции Радемахера в системах Уолша и обобщенные функции
Радемахера в системах ВКФ. По аналогии эти функции так же можно считать
обобщенными функциями Радемахера
R (  , i ) для
системы счисления с
переменным основанием. Тогда
R(n  m  1, i )  exp( j
2
im )  W pimm , m  1, 2, ..., n .
pm
310
(5.61)
При введении этого обозначения функции Радемахера учтено, что с
увеличением ее номера число точек изменения ее значений должно
возрастать. Очевидно, что в полной системе ОФК (5.46) содержится только n
обобщенных функций Радемахера и любая ОФК (5.46) может быть выражена
через их произведение:
n
W (k , i )  W
m 1
n
kmim
pm
  [ R(n  m  1, i )]km .
m 1
(5.62)
Пример 5.11. Построить систему ОФК для N=6 прямым методом и с
помощью функций Радемахера.
Решение. В этом случае N  2  3 . Поэтому примем p1  2, а p2  3 . Тогда
числа k и i запишутся в виде
i  i1  2i2  (i2i1 )
i1 , k1  0; 1 , а i2 , k2  0; 1; 2 . Значения i
и k  k1  2k2  (k2 k1 ) , где
и k в десятичной системе и системе с
основаниями 2 и 3 сведем в табл. 5.5.
Таблица 5.5
i; k
0
1
2
3
4
5
(i2i1 );(k2 k1 )
00
01
10
11
20
21
В соответствии с формулой (5.47) ОФК в этом случае записываются
следующим образом:
W (k , i )  W2k1i1W3k2i2  (1) k1i1  W3k2i2 .
Подставляя сюда все значения разрядов, получим систему из шести ОФК,
которую представим в виде следующей матрицы значений с минимальными
фазами:
1 1
1 1

1 1
W6  
1 1
1 1

1 1
Элементы W31
и
W32
1
1
1
1
1
1
W31
W31
W32
W31
W31 W32
W32
W32
W31
W32
W32
W31
1 
1 
W32 
.
W32 
W31 

W31 
(5.63)
имеют здесь такие же значения, что и в
предыдущем параграфе.
Теперь вычислим ОФК с помощью функций
соответствии с выражением (5.61) они будут равны:
R(2, i)  Wpi11  W2i1  {1, 1, 1, 1, 1, 1},
311
Радемахера.
В
R(1, i)  Wpi22  W3i1  {1, 1, W31, W31, W32 , W32}.
После этого, пользуясь формулой (5.62), выразим все
функции:
ОФК через
эти
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).
Вычисление по этим формулам приводит к той же матрице значений
ОФК (5.63).
_______________ . _______________
Возможен еще один способ вычисления приведенных ОФК. Он следует
из матричной интерпретации выражения (5.47) в виде кронекеровского
произведения соответствующих матриц ДЭФ:
Wp p
1 2
... pn
 Dp1  Dp2  ...  Dpn ,
(5.64)
где
Dpm  {Wpkmmim }.
(5.65)
Поскольку такая система ОФК может быть выражена с помощью
кронекеровского произведения, то ее называют еще ОФК-Кронекера. В
частном случае, при p1  p2  ...  pn  p она переходит в систему ВКФАдамара.
Пример 5.12. Вычислить матрицу ОФК кронекеровским способом для
условия предыдущего примера.
Решение. В этом случае
W6  W23 = D2  D3 ,
где
1 
1 1

1
D3  1 W3 W32  .
1 W32 W31 
1 1 
D2  
,
1 1
Поэтому
312
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
W31
W31
W32
W31
W31 W32
W32
W32
W31
W32
W32
W31
1 
1 
W32 
.
W32 
W31 

W31 
(5.66)
Матрицы (5.63) и (5.66) совпадают.
_______________ . _______________
Кронекеровская система является только одной из возможных полных
базисных
систем,
использующих
ОФК.
На
основе
функций
n
exp( j 2  (kmim / pm ))
m 1
можно
построить
целое
семейство
базисов
с
симметрическими и унитарными матрицами, число которых зависит от
конкретной величины N. Причем возможностей для организации базисных
систем здесь больше, чем в ВКФ.
Можно отметить, кроме рассмотренных, по меньшей мере еще два
способа построения таких базисов. Первый способ основывается на
использовании формул (5.46), (5.62) или (5.64) для всех возможных
комбинаций сомножителей в
произведении p1 p2 ... pn для N. Если все
сомножители pm разные, то он позволяет получить n! различных базисных
систем ОФК-Кронекера.
Пример 5.13. Построить все системы ОФК-Кронекера для 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 
Полученная матрица (5.67) отличается от матрицы (5.66).
_______________ . _______________
313
(5.67)
Второй способ формирования базисных ОФК-систем состоит в
перестановке строк и столбцов любой матрицы ОФК-Кронекера, полученной
первым способом, по закону определенной замкнутой операции над
индексами k и i ОФК (напомним, что замкнутой считается такая операция
над индексом, результат которой, изменяя порядок следования значений
индекса, не меняет самого диапазона его изменения, т.е. результирующий
индекс пробегает те же значения, что и исходный, но в другой
последовательности). Такими операциями являются, например, инверсия
кода индекса и кодирование Грея индекса, обобщенные на случай
многоосновной системы счисления. Рассмотрим эти операции.
Если число k в многоосновной системе счисления представляется

выражением (5.45), то инверсное ему число k в этой же системе счисления
записывается следующим образом:
n
_
k   kn 1 m M 0 M 1 ... M m 1
m 1
(5.68)
где
M m  pn1m , M 0  pn1  1.
Обобщенная инверсия, как и двоичная, и p-ичная инверсии, сводится к
записи разрядов кода числа k в обратном порядке. Однако веса разрядов в
многоосновной системе, где диапазоны изменения разрядов km в общем
случае не совпадают, должны быть изменены по закону (5.68). При
p1  p2  ...  pn  p обобщенная инверсия переходит в
p-ичную инверсию и
_
инверсное число k имеет более привычный вид записи:
_
n
k   kn 1 m p m 1 .
m 1
(5.69)
Пример 5.14. Найти инверсные значения целочисленного индекса,
принадлежащего диапазону [0,6).
Решение. В этом случае 6=2· 3, поэтому p1  2, а p2  3 . В системе
_
счисления с основаниями 2 и 3 числа k и k будут иметь следующий вид:

k  (k2 k1 )  2k2  k1 , k  (k1k2 )  3k1  k2 . Их значения в различных формах записи
приведены в табл. 5.6.
314
Таблица 5.6.
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
5
21
12
5
00
0
01
1
11
3
10
2
20
4
21
5
_______________ . _______________
Код Грея  k  числа
k в многоосновной системе счисления
вычисляется
по
следующему
алгоритму:
 km  (km  km1 ) (mod pm ), m  1, 2, ..., n; kn1  0 , который отличается от
соответствующего алгоритма в системе счисления с одним основанием
только использованием различных модулей при формировании разрядов
кода.
Пример 5.15. Найти значения кода Грея для индекса k предыдущего
примера.
Решение. Так как в этом случае p1  2, p2  3 , то  k1  (k1  k2 ) (mod 2), а
 k2  k2 (mod 3) . Результаты расчетов по этим формулам приведены в
табл. 5.6.
_______________ . _______________
Рассмотренные операции позволяют получить новые
полные
ортонормированные мультипликативные системы ОФК. Для этого
необходимо в матрице любой известной системы ОФК осуществить сначала
перестановку строк, а затем – столбцов (можно и наоборот) по закону этих
операций. В результате будут получены новые симметрические и унитарные
матрицы ОФК. Перестановка только строк или только столбцов исходной
матрицы приводит к несимметрическим результирующим матрицам.
Продемонстрируем процесс формирования симметрических матриц на
конкретных примерах.
Пример 5.16. Построить матрицу ОФК из матрицы ОФК-Кронекера
(5.63) с использованием операции обобщенной инверсии индексов.
Решение. В соответствии с данными табл. 5.6. произведем следующее
переупорядочение матрицы (5.63): первую строку перемещаем на место
второй, а вторую – на место четвертой, третью – на место первой, четвертую
315
– на место третьей, а нулевую и пятую строки оставляем на своих местах. В
результате получается следующая промежуточная матрица:
1 1
1 1

1 1

1 1
1 1

1 1
1
1
1
W
W
W
1
1
1
1
3
2
3
1
3
2
3
1
3
2
3
1
3
2
3
W
W
W31
W
W
W32
W
W32
W31
1 
W32 
1 

W31 
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 
(5.70)
Эта матрица ОФК является симметрической и отличается от исходной.
_______________ . _______________
Пример 5.17. Построить матрицу ОФК из той же матрицы ОФККронекера (5.63) с использованием кодирования Грея.
Решение. В соответствии с данными табл. 5.6 в этом случае процедура
перестановок существенно проще: нулевые, первые, четвертые и пятые
строки и столбцы остаются на месте, а вторые и третьи меняются местами. В
итоге получается следующая матрица ОФК:
1
1
1
1 1
1 1 1
1
1

1 1 W31 W31 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 
(5.71)
Эта матрица так же симметрическая и по структуре не совпадает ни с
матрицей (5.63), ни с матрицей (5.70).
_______________ . _______________
Результаты приведенных примеров показывают, что все матрицы,
полученные различными способами, отличаются друг от друга по структуре,
316
хотя и обладают одинаковыми общими свойствами. Это говорит о том, что
рассмотренные способы не подменяют друг друга и позволяют получить
широкий ассортимент полных ортонормированных и мультипликативных
базисных систем, среди которых можно искать базис, оптимальный для
решения конкретной практической задачи. Особенно перспективным может
оказаться применение таких базисов для исследования { p} -линейных систем
и { p} -стационарных случайных процессов, оперирующих
обобщенного временного сдвига в виде
суммирования с различными модулями [60].
поразрядного
понятием
модулярного
5.3. Обобщенные функции Хаара
С помощью соотношения (4.117) непрерывные функции Хаара
выражаются через обычные функции Радемахера. Если учесть, что функции
Радемахера являются функциями Уолша-Пэли первого ранга, то его можно
переписать в следующем виде:
h(0, z )  pal (0, z )  1;
 pal (2 , z )
h(2  m, z )  
0

при
(5.72)
m2  z  (m  1)2 ,
при остальных значениях z;
(5.73)
  0, 1, ...; m  0, 1, ..., 2  1.
В такой форме записи взаимосвязь между функциями Хаара и Уолша
может быть обобщена и из ВКФ-Пэли первого ранга получены базисные
функции, которые будут являться обобщением обычных функций Хаара.
Нулевая обобщенная функция Хаара (ОФХ) H(0,z) принимается
равной нулевой ВКФ-Пэли Pal(0,z) и во всех точках своего интервала
определения [0,1) равна Wp0  1. Все остальные функции H (k , z ) с помощью
трехмерного представления их номера
k   p  m,   0, 1, ...;   1, 2, ..., p 1; m  0, 1, ..., p 1
(5.74)
могут быть разбиты на группы и следующим образом выражены через ВКФПэли первого ранга:
 Pal (  p , z ) при mp   z  (m  1) p  ,
H (k , z )  H (  p  m, z )  
0 при остальных значениях z.
317
(5.75)
Параметр  задает номер группы ОФХ, номер же конкретной функции в
группе определяется с помощью индексов  и m. В обычных функциях
Хаара номером функции в группе служил только индекс m.
Учитывая, что
Pal ( p , z)  [ R(  1, z)] , ОФХ можно выразить
непосредственно через обобщенные функции Радемахера, точнее – через
соответствующие степени обобщенных функций Радемахера:
[ R(  1, z )] при mp   z  (m  1) p  ,
H (  p  m, z )  
(5.76)
0 при остальных значениях z.
Выражения (5.75) и (5.76) определяют алгоритмы построения ОФХ для
произвольного значения параметра p. В частном случае при p=2 формула
(5.75) переходит в формулу (5.73), а формула (5.76) – в формулу (4.117) для
обычных функций Хаара. При этом трехмерное представление (5.74) номера
функции k переходит в его двумерную запись (4.115).
ОФХ являются ( p  1) значными кусочно-постоянными комплексными

функциями. Ограничивая величиной n число разрядов
p-ичного
представления z , с помощью алгоритмов (5.75) и (5.76) можно получить
первые N  p n обобщенных функций Хаара, содержащих на своем интервале
определения [0,1) N участков постоянства. При этом индекс  в выражениях
(5.74)÷(5.76) будет принимать n первых значений:   0, 1, ..., n  1, а аргумент z
можно представить в нормированном виде z=i/N, где индекс i, как и в случае
ВКФ, будет являться номером участка постоянства ОФХ. Алгоритм
вычисления ОФХ в этом случае примет следующий вид записи:
H (0, i / N )  Pal (0, i / N )  Wp0  1;
 Pal ( p , i / N )  [ R(  1, i / N )] , mp n  i  (m  1) p n ,
H ( p  m, i / N )  
0 при остальных значениях i;

(5.77)
  0, 1, ..., n  1;   1, 2, ..., p  1; m  0, 1, ..., p 1.
Пример 5.19. Записать первые девять обобщенных функций Хаара при
p=3.
Решение. В этом случае N=9, n=2 и k   3  m, где   0, 1;   1, 2; m  0
и m  0, 1, 2. Поэтому по алгоритму (5.77) получим:
k  0 : H (0, i / 9)  W30  1;
k  1   0,   1, m  0 :
H (1, i / 9)  Pal (1, i / 9)  R(1, i / 9);
318
k  2   0,   2, m  0 : H (2, i / 9)  Pal (2, i / 9)  R2 (1, i / 9);
k  3    1,   1, m  0  :
 Pal (3, i / 9)  R(2, i / 9), 0  i  2,
H (3, i / 9)  
0 , 3  i  8;
k  4    1,   1, m  1 :
 Pal (3, i / 9)  R(2, i / 9), 3  i  5,
H (4, i / 9)  
0 , 0  i  2 и 6  i  8;
k  5    1,   1, m  2  :
 Pal (3, i / 9)  R(2, i / 9), 6  i  8,
H (5, i / 9)  
0 , 0  i  5;
k  6   1,   2, m  0  :
 Pal (6, i / 9)  R 2 (2, i / 9), 0  i  2,
H (6, i / 9)  
0 , 3  i  8;
k  7   1,   2, m  1 :
 Pal (6, i / 9)  R 2 (2, i / 9), 3  i  5,
H (7, i / 9)  
0 , 0  i  2 и 6  i  8;
k  8   1,   2, m  2  :
 Pal (6, i / 9)  R 2 (2, i / 9), 6  i  8,
H (8, i / 9)  
0 , 0  i  5.
Функции H (k , i / 9) принимают четыре значения:
W30  1, W31  1/ 2  j 3 / 2, W32  1/ 2  j 3 / 2 и 0.
_______________ . _______________
ОФХ являются ортогональными функциями, поскольку для них
1
 H (k , z ) H

( , z )dz  0 при k  
0
и
образуют полную базисную систему, пригодную для представления
математических функций x( z ) с интегрируемым квадратом на интервале [0,1) .
Они не удовлетворяют условию нормированности, поскольку их мощность
зависит от номера функции. Это связано с тем, что в системе ОФХ первые р
функций совпадают с первыми функциями системы ВКФ-Пэли, а остальные
функции совпадают со значениями ВКФ-Пэли только на соответствующих
подинтервалах общего интервала определения. Поэтому только первые p
ОФХ имеют ненулевые значения на всем интервале [0,1) . Это нулевая
функция H (0, z ) и функции нулевой группы (при   0 ) H (  , z ) . Функции
последующих
групп
(  1, 2, ...)
имеют
участки
нулевых
значений,
длительность которых увеличивается с возрастанием номера группы. Это
свойство ОФХ является обобщением аналогичного свойства обычных
функций Хаара, где только две первые функции
h(0, z )
и h(1, z ) не имеют
нулей на интервале [0,1) . По этой причине первые р ОФХ имеют единичную
319
мощность ( P0  P1  ...  Pp 1  1) , а мощность остальных функций можно
вычислить по формуле
( m 1) p  
P p  m 

2
Pal (  p , z ) dz  p  .
mp  
Здесь учтено, что модуль ВКФ равен 1. Мощность ОФХ так же, как и
для обычных функций Хаара, в пределах одной группы не меняется, а с
увеличением номера группы убывает.
Для представления сигналов, являющихся функциями времени x(t ) с
интервалом определения [0, T ) , аргумент z в ОФХ необходимо подстановкой
z  t / T преобразовать в переменную t. Пара непрерывных преобразований
Фурье-Хаара при этом запишется следующим образом:


p 1 p 1
x(t )   X (k ) H (k , t / T )  X (0)    X (  p   m) H (  p   m, t / T ),
  0  1 m  0
k 0
(5.78)
T
X (0) 
1
x(t ) dt ,
T 0
p
p



X ( k )  X (  p  m) 
x(t ) H (  p  m, t / T )dt 
T
T 0
 T
(5.79)
( m 1)Tp  

x(t ) Pal  (  p , t / T )dt.
mTp  
Равенство Парсеваля также можно представить в трехмерном виде:

p 1 p 1

1 2


x (t )dt  X (0) X (0)   p   X (  p  m) X  (  p  m).

T0
 0
 1 m0
T
(5.80)
В выражениях (5.79) и (5.80) знаком  как и ранее отмечены
комплексно-сопряженные величины.
Обобщенный ряд Хаара (5.78) обеспечивает равномерную и
среднеквадратическую сходимость к сигналу x(t ) и при конечном n
становится усеченным. При его использовании для вычисления конкретного
значения сигнала x(t1 ) в произвольной точке t1 интервала [0, T ) придется по
формуле (5.78) суммировать не N слагаемых, а значительно меньшее их
число, равное n( p  1)  1 . Это объясняется тем, что при t1 , принадлежащему
любому интервалу длительностью T / N , только n( p  1)  1 ОФХ будут
отличны от нуля. Это свойство обобщенных рядов Хаара является
обобщением подобного свойства обычных усеченных рядов Хаара (см. §4.8)
и делает их более экономичными по сравнению с рядами ВиленкинаКрестенсона.
320
Наличие нулевых значений у ОФХ приводит к тому, что только первые
p
коэффициентов обобщенного спектра Хаара X ( k ) учитывают поведение
сигнала на всем интервале его определения. Все остальные коэффициенты
учитывают локальное поведение сигнала и на тем меньшем интервале, чем
большее значение индекса 
в номере ОФХ. В этом проявляется
избирательный характер обобщенного спектра Хаара, присущий также и
обычному спектру Хаара.
Для спектрального анализа дискретных сигналов x(i) с i  [0, N ) могут
быть использованы только дискретные ОФХ H (k , i / N ) . Наиболее просто их
можно получить по алгоритму (5.77), если использовать в нем дискретные
ВКФ и под переменной i понимать не номер участка постоянства, а номер
отсчета дискретного сигнала (дискретное время).
Пример 20. Записать дискретную систему ОФХ для N=9.
Решение. В этом случае p  3 и n  2 , поэтому дискретные ОФХ по
форме записи совпадут с непрерывными ОФХ для нормированного
аргумента предыдущего примера. Используя в них значения дискретных
ВКФ-Пэли первого ранга из примера 5.1, получим следующую матрицу
значений дискретных ОФХ:
1
1
1
1
1
1
1 
1 1
1 1
1
1
1
2
2
1 W3 W3 W3 W3 W3 W32 

1 1
1 W32 W32 W32 W31 W31 W31 


1
2
0
0
0
0
0
0 
1 W3 W3
H  0 0
0
1 W31 W32 0
0
0 .


0
0
0
0
1 W31 W32 
0 0
1 W 2 W 1 0
0
0
0
0
0 
3
3


0
1 W32 W31 0
0
0 
0 0
0 0
0
0
0
0
1 W32 W31 

_______________ . _______________
Если систему дискретных ОФХ представлять в матричном виде, то для
матрицы значений ОФХ можно сформулировать ряд характерных свойств.
1. Матрица ОФХ содержит N строк и N столбцов и образуется из ( p  1)
различных элементов: Wp0 , Wp1, ...Wpp1, 0 . Комплексные
элементы попарно
сопряжены. Нумерация строк и столбцов в матрице начинается с нуля.
Каждая ее строка совпадает с соответствующей функцией Хаара.
321
2. Нулевая строка матрицы ОФХ содержит только элементы Wp0 ,
равные 1. Следующие ( p  1) ее строк содержат все различные элементы,
кроме нулевых и совпадают со значениями ВКФ-Пэли первого ранга
Pal (  , i / N ),   1, 2, ..., n  1 .
Все последующие строки содержат все элементы,
включая и нулевые. Эти строки можно разбить на (n  1) групп, причем
каждая строка, принадлежащая группе с номером
содержать
p n 
 (  1, 2, ..., n  1) , будет
ненулевых элементов и, следовательно,
( p n  p n )
элементов, равных нулю. Общее число нулевых элементов в матрице ОФХ
равно p n ( p n  np  n  1) .
3. Сумма элементов всех строк матрицы, кроме нулевой, равна нулю.
Сумма элементов нулевой строки равна N . Это говорит о том, что среднее
значение всех ОФХ, кроме нулевой, равно нулю. Среднее значение нулевой
функции равно единице.
4. Средние суммы произведений комплексно-сопряженных элементов
первых p строк матрицы ОФХ равны по единице, а остальных строк,
принадлежащих каждой  -й группе, –
p   . Отсюда следует, что мощности
первых p ОФХ равны единице, а мощности остальных функций зависят от
номера группы, к которой они принадлежат. С увеличением номера группы
мощность убывает по закону показательной функции с основанием p .
5. Матрица ОФХ является унитарной и несимметрической.
Дискретный ряд Фурье в базисе ОФК можно записать в многомерном
виде

n 1 p 1 p 1
x(i )  X (0)    X (  p   m) H (  p   m, i / N ),
  0  1 m  0
(5.81)
а для вычисления дискретного обобщенного спектра Хаара использовать
следующие соотношения:
1 N 1
X (0)   x(i);
N i 0
p
X (  p  m) 
N

( m 1) p n

i  mp n
x(i) Pal  (  p , i / N ) , (5.82)
  0, 1, ..., n  1;   1, 2, ..., p  1; m  0, 1, ..., p  1 .
Равенство Парсеваля в дискретном варианте сохраняет многомерный вид:
322
1
N
N 1
x
i 0
2
n 1
(i )  X (0) X (0)   p

 0

p 1 p 1
X ( p   m) X



1 m  0

(  p   m). (5.83)
Его выполнение подтверждает полноту системы дискретных ОФХ и служит
гарантией правильности вычислений по формулам (5.81) и (5.82).
Дискретный ряд Хаара (5.81) обладает таким же свойством, что и
усеченный непрерывный ряд Хаара (5.78), а именно: при его использовании
для вычисления значения сигнала в конкретной точке необходимо
просуммировать только n( p  1)  1 сомножителей вида X (k ) H (k , i / N ). Это
связано с наличием большого числа нулевых значений в ОФХ. Данное
свойство существенно повышает вычислительную эффективность базиса
дискретных ОФХ, которая еще больше увеличивается за счет существования
для него специальных процедур быстрого преобразования Фурье [30, 57].
ОФХ являются немультипликативными функциями, поэтому для их
спектров не выполняются фундаментальные теоремы спектрального анализа
(теоремы о сдвиге, модуляции, свертке и т.д.). Однако обобщенный
дискретный спектр Хаара так же, как и его непрерывный аналог, обладает
полезным избирательным свойством. Только первые p его спектральные
коэффициенты X (0), X (1), ..., X ( p  1) носят глобальный характер и учитывают
значения сигнала на всем интервале определения. Все остальные
коэффициенты используют значения сигнала только
на отдельных
подинтервалах, длительность которых уменьшается с ростом номера
группы функций Хаара, и в этом смысле являются локальными. В частности,
спектральные коэффициенты последней группы функций вычисляются
только по
p соседним
отсчетам сигнала. Это свойство в работе [30]
эффективно используется при анализе и синтезе дискретных устройств
многозначной логики.
Свойства спектров конкретных сигналов в базисе ОФК практически не
изучены. По аналогии с ВКФ рассмотрим для ОФК только спектры сигналов,
описываемых степенными функциями.
Для постоянного сигнала x(i)  1 обобщенный спектр Хаара
1,
X (0) (k )  
0,
323
k  0,
k 0
и совпадает с соответствующим спектром ВКФ. Такой вид X (0) (k ) следует из
свойства о среднем ОФК.
Для линейного сигнала x(i)  i аналитическая запись обобщенного
спектра Хаара зависит от номера k его спектрального коэффициента.
Спектральный коэффициент
1
X (0) 
N
(1)
N 1
1 N 1
iH (0, i / N )   i  ( N  1) / 2.

N i 0
i 0
(5.84)
Все остальные коэффициенты, соответствующие ОФХ определенных групп,
в пределах одной группы имеют равные действительные составляющие и
равные модули мнимых составляющих. Сами мнимые составляющие в
пределах группы располагаются в кососимметричном порядке:
Im[ X (1) (  p  m)]   Im[ X (1) (( p   ) p  m)].
При этом в случае нечетного значения p все мнимые составляющие попарно
сопряжены, а в случае его четного значения мнимые составляющие
коэффициентов с   p / 2 к тому же равны нулю. Кроме того, спектральные
коэффициенты каждой последующей группы в p
соответствующих коэффициентов предыдущей группы, т.е.
раз
меньше
X (1) ( p 1  m)  X (1) (  p  m) / p,   1, 2, ..., n  2,
что приводит к равенству
X (1) ( p  m)  X (1) ( ) / p ,
  1, 2, ..., n 1.
Таким образом, из всего этого следует, что для получения полного
спектра Хаара достаточно найти только спектральные коэффициенты X (1) ( ),
принадлежащие нулевой группе и соответствующие функциям H (  , i / N ). Но
функция H (  , i / N )  Pal (  , i / N ), а спектр линейного сигнала по ВКФ-Пэли
первого ранга представляется выражением (5.41). Поэтому
X (1) ( )   N[1  jctg ( / p)]/(2 p)
и для ОФХ получаем:
X (1) ( p  m)   N[1  jctg ( / p)]/(2 p 1 ),
(5.85)

  0, 1, ..., n  1;   1, 2, ..., p 1; m  0, 1, ..., p 1 .
324
Таблица 5.7.
p
n


m
k
X(1)(k)
0
0
1
0
0
0
1
4
3(1  j / 3) / 2
2
0
2
3(1  j / 3) / 2
0
3
(1  j / 3) / 2
1
4
(1  j / 3) / 2
2
5
(1  j / 3) / 2
0
6
(1  j / 3) / 2
1
7
(1  j / 3) / 2
2
8
0
0
0
(1  j / 3) / 2
7,5
1
0
1
2(1  j )
2
0
2
3
0
3
2
2(1  j )
0
4
(1  j ) / 2
1
5
(1  j ) / 2
2
6
(1  j ) / 2
3
7
(1  j ) / 2
0
8
1/ 2
1
2
9
10
3
0
11
12
1/ 2
1/ 2
1/ 2
(1  j ) / 2
1
13
(1  j ) / 2
2
14
(1  j ) / 2
3
15
(1  j ) / 2
0
1
3
1
2
0
0
1
4
2
1
2
Выражения (5.84) и (5.85) дают полное описание всего обобщенного
спектра Хаара линейного дискретного сигнала. Этот спектр не зависит от
параметра m и по форме записи близок к спектру ВКФ-Пэли первого ранга
(5.41) этого же сигнала.
Пример 5.21. Найти спектр ОФХ линейного сигнала x(i)=i для
p  3, n  2 и p  4, n  2 .
Решение. Результаты расчетов по формулам (5.84) и (5.85) приведены в
табл. 5.7.
325
Результаты, приведенные в табл. 5.7, совпадают с результатами,
получаемыми путем непосредственного вычисления спектра Хаара сигнала
x(i)=i по формуле (5.82) прямого преобразования Фурье в базисе ОФХ для
N=9 и N=16. Найденные спектры полностью удовлетворяют всем ранее
перечисленным свойствам.
_______________ . _______________
Ряд Фурье по ОФХ для линейного сигнала будет иметь следующий вид
N 1 N
i

2
2
n 1
p 1 p 1
 0
 1 m  0
 p ( 1)   [1  jctg (

)]H (  p   m, i / N ). (5.86)
p
Можно показать, что этот ряд является видоизмененной формой записи ряда
ВКФ-Пэли (5.44). Для этого в выражении (5.86) вынесем за знак внутренней
суммы по m член [1  jctg ( / p)] , не зависящий от m, и затем учтем,
что
p 1

H (  p  m, i / N )  Pal (  p , i / N ),   0, 1, ..., n  1;   1, 2, ..., p  1. (5.87)
m0
Если
теперь еще
сделать подстановку
  m  1, m  1, 2, ..., n,
то
получившийся ряд Хаара будет идентичен ряду ВКФ-Пэли (5.44). При p=2
ряд (5.86) переходит в ряд Фурье (4.129) линейного сигнала по обычным
функциям Хаара.
Уравнение (5.87) является уравнением связи между ОФХ и ВКФ-Пэли
первого ранга. С его помощью можно получить следующее полезное
обратное уравнение связи спектров ВКФ-Пэли и ОФХ:

X B ( p )  p

p 1

m 0
X X (  p  m),   0, 1, ..., n  1;   1, 2, ..., p  1. (5.88)
Здесь приняты обозначения:
X B (  p )
– спектральные коэффициенты

сигнала в базисе ВКФ-Пэли, а X X (  p  m) – спектральные коэффициенты
того же сигнала в базисе ОФХ.
ОФХ (5.75) и (5.77) используют ВКФ-Пэли и позиционные системы
счисления с одним основанием. Можно значительно увеличить число систем
с нулевыми значениями базисных функций (хааро-подобных систем) за счет
применения функций Крестенсона, обобщенных на случай многоосновных
систем счисления [21] .
326
5.4. Теоретико-числовые преобразования
При построении ортогональных базисных систем на основе ДЭФ
используется комплексная величина
WN  e
j
2
N
, которая является корнем
порядка (степени) N из единицы по модулю N ( т.к. WNN  1 (mod N ) ). Однако
корни порядка N из единицы существуют и в поле целых действительных
чисел (см. § 2.6) и их можно использовать для создания целочисленных
базисов. Если величина α является таким корнем, то функции  также
образуют ортогональный базис, подобный базису ДЭФ.Базис таких функций
лежит в основе так называемых теоретико-числовых преобразований (ТЧП),
принадлежащих к еще одному классу обобщенных ДПФ.
Прямое и обратное ТЧП определяются выражениями
ki
N 1
x(i )   X (k ) ki
(mod M ),
k 0
(5.89)
N 1
X (k )  N 1  x(i )  ki (mod M )
i 0
и осуществляют взаимооднозначное соответствие между N-точечными
последовательностями
{ X (k )}, k  0, 1, ..., N 1
целых
чисел
{x(i )}, i  0, 1, ..., N  1
и
при выполнении следующих условий: модуль М
является простым числом и не имеет общих сомножителей с N, число N
является делителем функции Эйлера φ(N) (см. §2.6), α есть корень порядка N
k
из единицы по модулю М и взаимно простое с М, а числа (1   ) являются
взаимно простыми с М для всех k , за исключением тех, которые сравнимы с
нулем по модулю N, т.е. ( N , M )  ( , M )  1, N |  ( N ),  k  k  NN 1  1 (mod M ), а
 k несравнимо с 1 по модулю М при k<N.
В ТЧП (5.89) величины N 1 и  1 является обратными по модулю M к
числам N и α соответственно. Число отсчетов N зависит от М и для простого
М должно делить (М-1), т.е. N|(M-1). Таким образом, для любых простых М
можно найти значения N, при которых существуют ТЧП (5.89). После этого
остается только определить корень порядка N из единицы по модулю М (см.
§ 2.6) и ТЧП будет задано.
327
ТЧП (5.89) по структуре подобны ДПФ. Отличия состоят только в том,
что в них в качестве комплексной экспоненты WN используется целое число
α и все вычисления выполняются не по модулю N , а по модулю М,
отличном от N. Поэтому ТЧП являются вещественными преобразованиями.
Поскольку модулярная арифметика не допускает округлений, то вычисления
ТЧП осуществляются с высокой инструментальной точностью. Числа X(k) в
ТЧП
можно
интерпретировать
как
теоретико-числовой
спектр
последовательности отсчетов входного сигнала x(i).
Базис ТЧП { ki } аналогичен базису ДЭФ и обладает такими же
свойствами. Аналитическая запись этих свойств должна при необходимости
учитывать модулярность используемой арифметики. Базис является
ортонормированным, т.к.
N
1
N 1

i 0
ki
   mi   k ,m (mod M ) при k  m.
Среднее значение нулевой базисной функции равно единице,
значение остальных функций равно нулю:
N
1
N 1
1  mod M 
0 (mod M )
  ki  
i 0
а среднее
при k  0,
при k  0.
Базисные функции являются периодическими с периодом N по обоим
индексам k
( N  k ),i
  ki (mod M ) и
и i: 
 k ( N i )   ki (mod M ) . Это
свойство легко доказывается, если учесть, что  Nn  1 (mod M ) при любом
целом n.
Из периодичности базиса следует периодичность его спектра
X ( N  k )  X (k ) и
его симметрия X ( N  k )  X (k ) . Для базисных функций
справедливы
также
мультипликативности:
свойства
двойственности
и
двойной
 ki   ik ,
 ki   mi   ni , где n  (m  k ) (mod N ),
 ki   km   kn , где n  (i  m) (mod N ).
Последнее свойство может быть использовано для синтеза быстрых процедур
вычисления ТЧП.
328
Энергетические соотношения между x(i) и X(k) в ТЧП можно
выразить с помощью равенства Парсеваля, которое в этом случае имеет
следующий модулярный вид:
N
1
N 1
x
i 0
2
N 1
N 1
k 0
k 0
(i )   X (k ) X (k ) (mod M )   X (k ) X ( N  k ) (mod M ).
Здесь спектр X (k )  X ( N  k ) играет ту же роль, что и комплексносопряженный спектр в ДПФ. Равенство Парсеваля подтверждает полноту
базиса ТЧП и справедливость прямого и обратного ТЧП.
ТЧП (5.89) можно записать и в матричной форме:
x  TX
(mod M ),
(5.90)
1
1
X  N T x (mod M ),
где
T  [ ki ] и T -1  [  ki ] являются прямой и обратной матрицами ТЧП.
Прямая матрица ТЧП
1
1
...
1 
1
1  1
2
...  N 1 

T
(mod M )
.
.
.
.
. 


N 1
2( N 1)
( N 1) 2
1


...



по структуре близка к матрице D ДЭФ и обладает схожими свойствами. Она
является ортогональной и симметрической матрицей с N различными
действительными целочисленными элементами, причем нулевая строка и
нулевой столбец ее состоят только из единичных элементов, а элементы
остальных строк и столбцов равны вычетам числа α в соответствующей
степени по модулю М. При вычитании из степени числа α целого числа N
образуется запись матрицы Т, подобная записи матрицы ДЭФ с
минимальными фазами. В этом случае ТЧП будет содержать только
элементы  0 ,  1 , ...,  N 1 . Обратная матрица ТЧП образуется из тех же
элементов,
но
с
другим
порядком
их
следования.
  ki   (  k )i   ( N k )i (mod M ) , то обратная матрица
Так
T 1
как
легко
получается из прямой матрицы Т простой симметричной перестановкой
строк последней (по закону N-k). Тогда
tk,1i  t( N k ),i ,
элементы обратной и прямой матриц ТЧП соответственно.
329
где
tk,1i
и
t k ,i
–
Совпадения структур матриц ТЧП и ДПФ приводит к совпадению
свойств ТЧП. Для ТЧП выполняются все теоремы спектрального анализа,
справедливые для ДПФ, в частности теорема линейности и теоремы о
сдвиге, свертке и корреляции. Временной сдвиг в ТЧП также реализуется с
помощью модулярного алгебраического сложения, т.е. является
циклическим. Поэтому ТЧП могут рассматриваться в качестве вещественной
альтернативы комплексным ДПФ.
Используя ТЧП для обработки реальных сигналов, следует учитывать
целочисленный характер ТЧП. Поэтому в общем случае отсчеты сигналов
необходимо масштабировать к целочисленному диапазону. Все
вычислительные операции в ТЧП должны выполняться в целочисленной
модулярной арифметике, сложность которой определяется модулем
преобразования М. От модуля зависит и разрядность машинных слов в ТЧП,
при правильном выборе которой расчетные результаты будут совпадать с
истинными (иначе они могут оказаться только сравнимыми с ними) и
исключаются переполнения разрядной сетки.
Преобразования (5.89) задают семейство ТЧП, различающихся числами
α, которые в свою очередь зависят от модуля М. Для упрощения вычислений
ТЧП выбирают обычно модули наиболее простого представления.
Наилучшее в этом смысле число М=2. Однако тогда максимальная длина
преобразуемой числовой последовательности N равна 1. Поэтому М=2 и
вообще M=2n не имеет практического смысла. Аналогично, если М есть
четное число, то один из сомножителей М равен 2 и максимальная длина
последовательности опять равна 1. Следовательно, представляют интерес
только нечетные М. Предъявляемым требованиям удовлетворяют числа
M  2 n  1 и M  2n  1 .
n
Рассмотрим сначала числа M  2  1. Число n здесь может быть
составным и простым. Наибольшее значение N будет при простом n=p,
потому что при составном n=pm число 2  1 является множителем числа
p
2n  1 и максимальное
соответствующей
значение
N
не
превысит
величины,
2 p  1 . Таким образом, наибольший интерес
представляет случай, когда n – простое. Целые числа вида 2  1 , где p –
простое, есть числа Мерсенна, поэтому ТЧП по модулю чисел Мерсенна
p
330
называются теоретико-числовыми преобразованиями Мерсенна (ТЧПМ) [5,
40].
При любых M  2  1 (простых и составных) возможно построение
двух видов ТЧПМ: p-точечных (одинарных) и 2p-точечных (удвоенных)
p
ТЧП. Для первых   2 и N  p , поэтому
p 1
x(i )   X (k )2ki
(mod (2 p  1)),
k 0
(5.91)
p 1
X (k )  p 1  x(i )2 ki
(mod (2 p  1)).
i 0
Для вторых   2, N  2 p и
x(i ) 
2 p 1
 X (k )(2)
ki
(mod (2 p  1)),
k 0
(5.92)
2 p 1
X (k )  (2 p) 1  x(i)( 2)  ki
( mod (2 p  1)),
i 0
где (2)
 ki
 (2)
(2 p 1) ki
(mod(2 p  1)). Чаще всего используются ТЧПМ
для простых М, для которых первые 15 значений p равны: 2; 3; 5; 7; 11; 13;
17; 19; 31; 61; 89; 107; 127; 521; 1279 [40]. В ТЧПМ (5.91) и (5.92) нет общих
умножений, а умножения на двоично-рациональные числа вида
2n
заменяются на сдвиги. В арифметике по модулю чисел Мерсенна, известной
как арифметика в обратных кодах, такие сдвиги реализуются с помощью
циклических сдвигов двоичного кода на n разрядов влево. При сложении
двух чисел в такой арифметике учитывается перенос из старшего разряда,
который суммируется с младшим разрядом. Важной особенностью ТЧПМ
является то, что для них разрядность представления данных должна точно
равняться числу отсчетов p и при больших p также будет большой.
Пример 5.22. Выполнить прямое и обратное одинарное ТЧПМ
линейного сигнала x(i)=i для N=5. Проверить справедливость равенства
Парсеваля.
Решение. При p=5 число Мерсенна 2 p  1  25  1  31 , а 51  25 (mod 31) .
Поэтому матрицы ТЧПМ примут следующий вид
331
1
1

T  1

1
1
1
1

T -1  1

1
1
1
1
1
1
2
2
2
3
2
4
26
23
26
29
24
28
212
1
1
1
2
2
2
2
1
2
2
3
4
26
23
26
29
24
28
212
2
2
2
Теоретико-числовой
2
прямого
1  1 1 1 1 1 
24  1 16 8 4 2 
28   1 8 2 16 4  (mod 31).
 

212  1 4 16 2 8 
216  1 2 4 8 16 
спектр
X  25T x  [2, 29, 9, 21, 1] (mod 31) .
1
1  1 1 1 1 1 
24  1 2 4 8 16 
28   1 4 16 2 8  (mod 31),
 

212  1 8 2 16 4 
216  1 16 8 4 2 
T
ТЧПМ
сигнала
будет
равен
Восстановление сигнала с помощью
приводит
к
следующему
результату:
x  TX  [0,1, 2,3, 4]T (mod 31) . Расчет мощности по сигналу и его спектру
показывает, что
4
51  i 2  25(1  4  9  16)  6 (mod 31),
i 0
4
 X (k ) X (5  k )  4  2  29 1  2  9  21  6 (mod 31).
k 0
Мощности
совпадают.
Таким
образом,
ТЧПМ
обеспечивают
математическую и энергетическую взаимооднозначность сигнала и его
спектра.
_______________ . _______________
Приведенные удвоенные ТЧПМ (5.92) определены для числа отсчетов
2p. Однако можно записать преобразования и для отсчетов, больших 2p,
N  2 p  2. Но
поскольку теоретическая максимальная величина
максимальное число отличных друг от друга степеней числа -2 в точности
равно 2p, так что корни α преобразований последовательностей с большим
числом отсчетов не будут иметь простое представление в виде степеней
двойки. Следовательно, для преобразования сигналов с N  2 p потребуются
операции умножения общего вида. Использование таких ТЧПМ может
оказаться менее выгодным, чем преобразований с числом отсчетов p и 2p.
Обычно преобразованиями Мерсенна называют лишь p- и 2p-точечные
преобразования.
332
Для ТЧПМ характерна жесткая связь разрядности представления
данных с числом этих данных. Этот недостаток может быть устранен за счет
использования в качестве модуля чисел 2  1 , которым также соответствует
относительно простая арифметика [40].
n
Если в модуле M  2  1 число n-нечетное, то максимально
возможное число отсчетов преобразуемого сигнала не может превышать 2.
n
Если же n-четное ( n  s  2 , где s – нечетное), то число
q
2 1
2t
является
n
множителем числа 2  1 и значит, число отсчетов, определенное для модуля
2n  1 не может превышать числа отсчетов, определенных по модулю
2 1.
2t
Отсюда следует, что целесообразно использовать в качестве
Ft  22  1 ,
t
модуля числа
t  0, 1, ...,
которые являются числами Ферма.
ТЧП, определенные по модулю чисел Ферма, называются теоретикочисловыми преобразованиями Ферма (ТЧПФ) [9, 40].
Первые пять чисел Ферма {Ft }  {3, 15, 17, 257, 65537} являются простыми,
а остальные – составными. Если Ft простое, то максимальное число отсчетов
b
t
равно Ft  1  2 , b  2 и, следовательно, возможные значения N находятся
из условия N | 2b . Если Ft есть составное число, то максимальное N равно
2t  2 ,
а возможные его значения должны быть делителями
N 2t 2 или
2t  2 ,
т.е.
N 4b .
t 1
В теории чисел доказывается, что при N  2  2b существуют
корни порядка N из единицы по модулю простых и составных чисел Ферма и
они равны 2. Следовательно, можно определить 2b-точечное ТЧПФ:
2 b 1
x(i )   X (k )2ki
k 0
 mod(2
b
 1)  ,
(5.93)
2 b 1
X (k )  (2b) 1  x(i)2 ki
i 0
Здесь
 mod(2
b
 1)  .
2 ki  (2(b1) )ki (mod(2b  1)) , а обратная величина
модулю
b t 1
2b  1 равна 2
.
333
(2b)1 по
Пример 5.23. Выполнить ТЧПФ над линейным сигналом x(i)  i при
N=4.
Решение. Так как в этом случае N  22 , то b  2 и 2b  1  5  F1. Обратная
величина (2b)1  41  1  4 (mod 5). Матрицы обратного и прямого ТЧПФ
будут иметь следующий вид:
1 1
1 21
T 
1 22

3
1 2
1 1
1 21
-1
T 
1 22

3
1 2
1  1
23  1

26  1
 
29  1
1
2
2
24
26
1  1 1
23  1 2

26  1 4
 
29  1 2
1
2
1 1 1  1 1 1 1 
2 4 8  1 2 1 2 

(mod 5),
4 1 4  1 1 1 1
 

8 4 2  1 2 1 2 
2
24
26
1  1 1 1 1 
4 2  1 2 1 2 

(mod 5).
1 4  1 1 1 1
 

4 2  1 2 1 2
1
Теоретико-числовой спектр Ферма сигнала равен X  4T 1 x  [4, 3, 2, 1]T (mod 5) ,
а сам сигнал  x  TX  [0, 1, 2, 3]T (mod 5) . Совпадение вычисленного сигнала с
исходным подтверждает справедливость ТЧПФ (5.93). Выполняется и
равенство Парсеваля. Действительно, в этом случае
3
41  i 2  4(1  4  9)  56  1 (mod 5) , а
i 0
3
 X (k ) X (4  k )  X
2
(0)  2 X (1) X (3)  X 2 (2)  1  2  2  4  9  26  1 (mod 5).
k 0
_______________ . ________________
Так как число 2 является корнем порядка
22
m
будет корнем порядка 2
t 1 m
2t1 по модулю F , то число
t
. Значит, можно определить ТЧПФ
2m
t 1 m
меньшей размерности, а именно 2
– точечные ТЧПФ с корнем 2 :
x(i ) 
b21m 1

X (k )(22 m ) ki
(mod(2b  1)),
k 0
(5.94)
1m
1 m 1
X (k )  (b2
)
b2
1

x(i )(22 m )  ki
(mod(2b  1)).
i 0
Пример 5.24. Найти спектр Ферма сигнала x(i)=i при N=4 для M=17=F2.
334
Решение. В этом случае t=2 и m=1. Поэтому корень α=4 и ТЧПФ
примут следующий вид:
3
x(i )   X (k )4ki
(mod 17),
k 0
3
X (k )  41  x(i )4 ki
(mod 17).
i 0
Соответствующие им матрицы равны
1 1
1 41
T 
1 42

3
1 4
1 1
1 41
T -1  
1 42

3
1 4
и
имеем
следующие
а
[10, 10, 8, 6]T (mod 17),
1
42
44
46
1
4
2
44
46
1  1 1 1 1 
43  1 4 1 4 

(mod17),
46  1 1 1 1
 

49  1 4 1 4 
1  1 1 1 1 
43  1 4 1 4 

(mod17)
46  1 1 1 1
 

49  1 4 1 4 
результаты
преобразований:
X  (-4 )T 1 x 
x  TX  [0, 1, 2, 3]T (mod 17). Мощность
сигнала
3
(4) i 2  (4)(1  4  9)  56  12 ( mod 17) равна
i 0
3
 X (k ) X (4  k )  X
2
мощности спектра
(0)  2 X (1) X (3)  X 2 (2)  100  2  6 10  64  284  12(mod17) .
k 0
_______________ . _______________
Таким образом, ТЧПФ применимы к сигналам с числом отсчетов,
равным степеням 2, и могут быть вычислены с использованием только
t1
операций сложения и умножения на степени 2 для N до 2 . При N  2t  2
корень   2 , которое в кольце чисел Ферма записывается также в двоичнорациональном виде:
2  2b / 4 (2b / 2  1)(mod(2b  1)) . Для N  2t  2 ТЧПФ по
модулю простых чисел Ферма тоже могут быть определены, однако в этом
случае корни не будут иметь простого представления и в вычислениях
появятся умножения общего вида. ТЧПФ с α =2 называют еще теоретикочисловыми преобразованиями Рейдера.
335
Арифметика по модулю чисел Ферма немногим сложнее, чем
арифметика по модулю чисел Мерсенна [9, 40]. Любое целое число,
t
b
определенное по модулю чисел Ферма Ft  2  1, b  2 , представимо (b  1) -
разрядным словом и число разрядов здесь меньше числа N отсчетов сигнала
(т.к. N  4b ). Поскольку N в ТЧПФ имеет составной либо двоичнорациональный вид, то общее число операций в них можно значительно
сократить за счет применения специальных вычислительных процедур (см.
гл. 6).
Вычислительную эффективность ТЧПМ и ТЧПФ можно еще более
повысить, сохранив все преимущества арифметик по модулю чисел
Мерсенна и Ферма, если использовать псевдочисла Мерсенна и Ферма.
Такие ТЧП называют псевдопреобразованиями. Возможно также построение
эффективных ТЧП в поле целых комплексных чисел. Подробно с этими и
другими видами ТЧП можно ознакомиться в соответствующей литературе, в
частности в работах [5, 9, 19, 40, 45].
5.5. Система дискретных базисных функций
на основе чисел Фибоначчи
ТЧП являются не единственным способом построения преобразований
Фурье с целочисленными базисами. Возможны и другие способы, в
частности способы, использующие
особенности известных числовых
последовательностей. В качестве примера рассмотрим такой способ
построения дискретных целочисленных базисных систем на основе чисел
Фибоначчи.
Целочисленные последовательности Фибоначчи [15] относятся к
классу рекуррентных (возвратных) числовых последовательностей, в
которых текущее число является линейной комбинацией предыдущих чисел.
Для последовательности Фибоначчи каждое текущее число f k равно сумме
двух предыдущих чисел, поэтому рекуррентное соотношение в этом случае
имеет простейший вид
f k  f k 1  f k 2
и выполняется для всех k>2 при начальных значениях f1  f 2  1 .
Пример 5.25. Записать первые шесть чисел Фибоначчи.
336
(5.95)
Решение. Используя выражения (5.95), получим:
{ f k }  {1, 1, 2, 3, 5, 8}.
_______________ . ____________
Из данных чисел сформируем конечную базисную систему (назовем ее
системой Фибоначчи), каждую функцию
fib(k , i ) которой
свяжем с числами
Фибоначчи следующим правилом:
 fi 1 ,

fib(k , i)   fi ,
 0 ,

В
соответствии
с
ним
0  i  k,
i  k  1,
(5.96)
k  1  i  N  1.
при
fib(k , i )  { f1 , f 2 , ..., f k 1 ,  f k 1, 0, ..., 0} ,
0 k  N 2
а
при
все
k  N 1
функции
функция
fib( N  1, i)  { f1 , f 2 , ..., f N } .
Пример 5.26. Записать систему Фибоначчи из шести базисных
функций.
Решение. В этом случае N=6 и
fib(0, i)  { f1 ,  f1 , 0, 0, 0, 0},
fib(1, i)  { f1 , f 2 ,  f 2 , 0, 0, 0},
fib(2, i)  { f1 , f 2 , f3 ,  f3 , 0, 0},
fib(3, i)  { f1 , f 2 , f3 , f 4 ,  f 4 , 0},
fib(4, i)  { f1 , f 2 , f3 , f 4 , f5 ,  f5},
fib(5, i)  { f1 , f 2 , f3 , f 4 , f5 , f 6 }.
Используя значения чисел Фибоначчи предыдущего примера, запишем
полученную числовую систему в следующем матричном виде:
1 1 0 0 0 0 
1 1 1 0 0 0 


1 1 2 2 0 0 
{ fib(k , i )}  
.
1
1
2
3

3
0


1 1 2 3 5 5


1 1 2 3 5 8 
_______________ . _______________
Докажем, что система Фибоначчи является ортогональной системой.
Для этого найдем сумму произведений двух произвольных базисных
337
функций fib(k , i ) и fib(m, i ) , где m  k и m  k . С учетом соотношения (5.96)
эту сумму можно записать так:
N 1
k
 fib(k , i) fib(m, i)   f
i 0
i 0
2
i 1
 f k 1 f k  2 .
Но из теории чисел Фибоначчи [15] известно, что
k
f
i 0
2
i 1
 f k 1  f k  2 ,
(5.97)
поэтому
N 1
 fib(k , i) fib(m, i) 0
i 0
и условие ортогональности числового базиса (5.96) выполняется.
Все функции базиса Фибоначчи являются ненормированными. Их
мощность для 0  k  N  2 равна
Pk 
1
N
N 1

fib 2 (k , i ) 
i 0

1 k 2
( f i 1  f k21 ) 
N i 0
1
f k 1 ( f k 1  f k  2 )  f k 1 f k 3 / N ,
N
(5.98)
а для k  N 1
1 N 1 2
(5.99)
 fi1  f N f N 1 / N .
N i 0
При выводе этих формул использовано соотношение (5.97).
Пример 5.27. Найти мощности базисных функций системы Фибоначчи
PN 1 
для N=6 (пример 5.26).
Решение. Выполнив вычисления по формулам (5.98) и (5.99), получим:
P0  f1 f3 / N  2 / N  1/ 3;
P1  f 2 f 4 / N  3/ N  1/ 2;
P2  f3 f5 / N  10 / N  5 / 3;
P3  f 4 f 6 / N  24 / N  4;
P4  f5 f 7 / N  65 / N  65 / 6;
P5  f 6 f 7 / N  104 / N  52 / 3.
_______________ . _______________
Базис Фибоначчи является полным базисом и может быть использован
для спектрального представления любых решетчатых сигналов и функций
ограниченной мощности. Дискретные преобразования Фурье и равенство
Парсеваля в нем имеют типичный для дискретных базисов вид записи и
могут быть получены из общих выражений (3.79) и (3.80), если положить в
них  (k , i)  fib(k , i) . Использование соотношения (5.96) позволяет прямое
338
преобразование Фурье-Фибоначчи представить в более удобной для
вычислений форме:
 k
[ x(i ) fi 1  x(k  1) f k 1 ]/( f k 1 f k 3 ),
1 N 1
 i 0
X (k ) 
x(i ) fib(k , i)   N 1

NPk i 0
[ x(i ) f ]/( f f ), k  N  1.
i 1
N N 1
 
i 0
k  N  1,
.
( 5.100)
Как следует из зависимости (5.100) спектр сигнала в базисе Фибоначчи
также тесно связан с самими числами Фибоначчи. Приведем два примера
спектров Фибоначчи конкретных сигналов.
Пример 5.28. Найти спектр Фибоначчи постоянного сигнала x(i)=a.
Решение. Используя формулу (5.100), получим
k 1
N 1
i 0
i 0
X (k  N  1)  (a  f i 1 ) /( f k 1 f k 3 ), X ( N  1)  (a  fi 1 ) /( f N f N 1 ) .
Но [15]
n 1
n
i 0
j 1
 fi1   f j  fn2 1,
(5.101)
поэтому
 a ( f k  2  1)
,
0  k  N  2,
 f f
 k 1 k 3
X (k )  
(5.102)
 a ( f N  2  1) ,
k  N  1.

 f N f N 1
Следовательно, для постоянного сигнала только одна нулевая
спектральная составляющая равна нулю (в этом случае f k  2  f 2  1). Все
остальные Х(k) имеют ненулевые значения, связанные со значениями
конкретных чисел Фибоначчи.
_______________ . _______________
Пример 5.29. Найти спектр Фибоначчи линейного сигнала x(i)=ai.
Решение. При 0  k  N 1 в соответствии с формулой (5.100) имеем
X (k ) 

a 

f k 1 f k 3 
a
NPk
k 1

i 0
N 1

i 0
i  fib(k , i ) 
a  k

if

(
k

1)
f

i

1
k

1

f k 1 f k 3  i 0


a 
ifi 1  kf k 1  kf k 1  f k 1  

 f k 1 f k 3 
339
k 1
 if
i 0
i 1

 f k 1 

Если сделать подстановку i  j  1, j  1, 2, ..., k , то из последнего выражения
можно получить:
a 
X (k ) 

f k 1 f k 3 
k

j 1
k
jf j   f j  f k 1
j 1
k 1


a  k

jf

f
  j  j .

f
f
j 1

k 1 k 3  j 1

Но известно [15], что
k
 jf
j 1
j
 kf k  2  f k 3  2,
поэтому с учетом выражения (5.101) окончательно получаем:
X (k ) 
a
(kf k  2  2 f k 3  3).
f k 1 f k 3
(5.103)
При k=N-1
N

a N 1
a  N
if

jf

  j  fj  

i 1
f N f N 1 i 0
f N f N 1  j 1
j 1

a
a

( Nf N  2  f N 3  2  f N  2  1) 
[( N  1) f N  2  f N 3  3].
(5.104)
f N f N 1
f N f N 1
В спектре Фибоначчи линейного сигнала все составляющие X(k) не
X ( N  1) 
равны нулю и зависят от значений соответствующих чисел Фибоначчи.
_______________ . _______________
До этого мы выражали базисные функции Фибоначчи и их спектры
только через числа Фибоначчи. Однако такие базисные функции можно
записать и в виде функции дискретного времени i, а их спектральные
коэффициенты – в виде функций их номера k. Для этого нужно
воспользоваться формулой Бине для чисел Фибоначчи [15]:
fi  ( i   i ) / 5,
(5.105)
где

1 5
1 5
 1, 618 ;  
 0, 618.
2
2
Из формулы Бине следует, что числа Фибоначчи имеют
экспоненциальный характер изменения. Поэтому такой же характер
изменения будут иметь и сами базисные функции Фибоначчи, и их спектры
различных сигналов. Для этих базисных функций адекватными в смысле
обеспечения концентрации энергии в минимальном числе спектральных
коэффициентов будут экспоненциальные сигналы вида  i , поскольку для них
спектр Фибоначчи близок к дельта-функции. Поэтому функции Фибоначчи
340
могут оказаться весьма полезными при обработке
экспоненциальным законом изменения во времени.
сигналов
с
5.6. Обобщенные преобразования Фурье
Все рассмотренные ранее преобразования
Фурье определяют
взаимооднозначное соответствие между сигналом, заданным непрерывной
либо дискретной функцией времени, и его спектром в выбранной базисной
системе. Геометрически это соответствует установлению взаимосвязи между
вектором сигнала и его проекциями в заданной системе координат. Однако в
спектральном анализе возможна более общая
постановка, при которой
определяется взаимосвязь между различными спектрами одного и того же
сигнала. С геометрической точки зрения в этом случае устанавливается
взаимосвязь между проекциями вектора сигнала в различных системах
координат. Так как при этом сам сигнал остается неизменным, то связь
между проекциями (спектрами) можно выразить аналитически.
С целью обобщения теоретических выкладок при выводе формул
взаимопреобразования спектров для непрерывных и дискретных сигналов
вновь воспользуемся наиболее общей записью преобразований Фурье в виде
скалярных произведений (см. (3.26)). Пусть в функциональном пространстве
с базисами { (k , t )} и { (m, t )} сигнал x(t) представляется в виде
x(t )  ( X  (k ),  (k , t )) k ,
(5.106)
x(t )  ( X (m),  (m, t )) m ,
(5.107)
X (k )  ( x(t ),  (k , t ))t / Pk ,
(5.108)
X (m)  ( x(t ),  (m, t ))t / Pm .
(5.109)
и имеет спектры
В этих выражениях
Pk и Pm означают мощности соответствующих
базисных функций, время t может быть как непрерывным, так и дискретным
(в последнем случае фактически t=i), а внешние круглые скобки означают
скалярное
произведение по соответствующей переменной. Если t
непрерывно, то скалярное произведение понимается в смысле
интегрирования, при дискретном же характере t – в смысле суммирования.
Нормирующие множители 1/T
и 1/N , используемые в обратных
341
преобразованиях для сигналов, определенных на конечных интервалах
времени, считаем входящими в запись соответствующих скалярных
произведений.
Если спектр X (m) сигнала x(t) известен, то его спектр X  (k ) можно
определить путем подстановки формулы (5.108) в выражение для x(t) (5.107).
Тогда после преобразований получаем, что
X  (k )  ( X (m), Ф(k , m)) m ,
(5.110)
где функция двух переменных k и m
Ф(k , m)  ( ( m, t ),  ( k , t )) t / Pk
(5.111)
является ядром линейного преобразования (5.110) спектра одной базисной
системы в спектр другой базисной системы для одного и того же сигнала. Ее
называют еще ядром Фурье [59].
Обратный переход от спектра X  (k ) к спектру X (m) можно выполнить
по формуле
X (m)  ( X  (k ), Ф1(m, k )) k ,
(5.112)
где
Ф 1 (m, k )  ( ( k , t ),  ( m, t )) t / Pm
(5.113)
есть ядро обратного преобразования спектров. В комплексных базисных
системах в выражениях для ядер одна из базисных функций должна быть
комплексно-сопряженной:
Ф(k , m)  ( (m, t ),   (k , t ))t / Pm ,
(5.114)
Ф 1 (m, k )  ( ( k , t ),   ( m, t )) t / Pm .
(5.115)
В случае базисов одинаковой мощности ядра прямого и обратного
преобразований совпадают. Объединяя в этом случае выражения (5.110)(5.115), приходим к универсальной паре преобразований, определяющей
любое отображение спектров в однотипных базисах с равной мощностью Р:
X  (k )  ( X (m), Ф(k , m)) m ,
X (m)  ( X  (k ), Ф(m, k )) k ,
Ф ( k , m) 
1
( (m, t ),  ( k , t )) t .
P
342
(5.116)
В случае комплексных базисов по-прежнему в выражении для Ф (k , m) одна
из базисных функций должна быть комплексно-сопряженной.
Таким образом, различные спектры одного и того же сигнала всегда
связаны линейным функциональным оператором, который полностью
определяется своим ядром Фурье. В свою очередь ядро Фурье определяется
только базисами используемого пространства. Выражения (5.116)
представляют собой наиболее общую форму преобразования Фурье. В
частном случае, когда один из спектров является сигналом, они совпадают с
обычными преобразованиями Фурье (5.106) и (5.108). Действительно, так как
x(t) можно рассматривать как спектр в базисе
 (t  mt ),
 (m, t )  
 (i  m)
(в зависимости от того, является сигнал непрерывным либо дискретным), то
получаем, что ядро Ф (k , m) совпадает с базисной функцией  (k , t )
Ф(k , m)   (k , t ) / Pk
и формула (5.110) обращается в формулу (5.108).
При обобщенном преобразовании спектров равенство Парсеваля
принимает следующий вид:
( X (k ), X (k ) Pk )k  ( X (m), X (m) Pm ) m.
(5.117)
Если хотя бы один из базисов является комплексным, то в выражении
(5.117) один из спектров в соответствующем скалярном произведении
должен быть комплексно-сопряженным.
Ядра Фурье имеют простой физический смысл: это спектр одних
базисных функций по системе других базисных функций. Функции {Ф(k , m)} ,
образующие ядра Фурье, обладают свойствами полноты и ортогональности,
т.к.
(Ф(k , t ), Ф(m, t ))t  0,
k  m.
Поэтому они, в свою очередь, могут быть использованы в качестве базисных
функций для спектрального анализа сигналов. Формулы ядра (5.111) и
(5.114) тогда можно рассматривать в качестве алгоритмов формирования
новых базисов на основе уже существующих базисных систем.
Полная и ортогональная система функций {Ф(k , m)} по своим общим
свойствам ничем не отличается от любой другой системы, пригодной для
343
разложения сигналов. Эта система может быть простой, и тогда она годится
для отображения спектров на одностороннем интервале; она может быть
составной, формальной и комплексной, и тогда она пригодна для
отображения спектров на симметричных интервалах. Используя систему
{Ф ( k , m)} ,
следует, однако, иметь в виду, что ядра Фурье как базисная система
функций обладают существенными недостатками, а именно: эти системы не
являются мультипликативными и в общем случае несимметрические [59].
В дискретном варианте обобщенные преобразования Фурье удобно
записывать в матричном виде
X   X
,
(5.118)
1
X   X ,
где X  и
X – матрицы-столбцы спектров в базисах
{ (k , i )} и { (m, i )}
соответственно, а Ф – матрица ядра Фурье, имеющая в общем случае
следующий вид:
(0,1)
 (0, 0)
 (1, 0)
(1,1)


.
.

 ( N  1, 0) ( N  1,1)
(0, N  1) 
...
(1, N  1) 
.

...
.

... ( N  1, N  1) 
...
Обобщенные преобразования Фурье могут оказаться полезными при
решении задач обработки, связанных с взаимопреобразованием спектров в
различных базисах. Эффективность их применения во многом зависит от
свойств ядер этих преобразований, которые в свою очередь связаны со
свойствами используемых базисных систем. Для систем базисных функций,
находящих наиболее широкое применение в обработке сигналов, свойства
ядер хорошо изучены и приведены в литературе. В частности в работе [9]
рассмотрены ядра взаимопреобразования спектров в теоретико-числовых
базисах, а в работах [46, 48, 60] приведены основные свойства ядер Фурье
для отображения спектров в базисах тригонометрических и комплексноэкспоненциальных функций, а также функций Виленкина-Крестенсона и
Уолша. Ниже в качестве примера рассмотрим ядра Фурье для ЭФ и ВКФ.
Ограничимся только дискретным вариантом базисных функций.
344
При преобразовании спектров из базиса ДЭФ в базис дискретных ВКФ
 (m, i)  def (m, i) , а  (k , i )  Wal (k , i ). Ядро Фурье в этом случае в развернутой
форме записи представляется следующим образом:
1
Ф ( k , m) 
N
N 1
1
de f (m, i )Wal (k , i ) 

N
i 0

N 1
W
Wal  (k , i ).
mi
N
i 0
Поскольку аналитическая запись ВКФ Wal  (k , i) зависит от способа их
упорядочения в системе, то, очевидно, от него же будет зависеть и вид ядра
Ф ( k , m)
.
Рассмотрим
последовательно
два
наиболее
используемые
упорядочения: Пэли и Адамара. Начнем с упорядочения Пэли.
Пример 5.3. Рассчитать ядро Фурье преобразования спктра ДЭФ в
спектр ВКФ-Пэли для N=9=32.
Решение. Используя значения ВКФ-Пэли из матрицы (5.22) примера
5.1, по формуле (5.119) получим ядро Фурье, которое представим в виде
следующей матрицы:
0
0
0
0
0
1
0 Ф(1,1)
0
0 Ф(1, 4)
0

0
0
Ф(2, 2) 0
0
Ф(2,5)

0
0
1
0
0
0
  0 Ф(4,1)
0
0 Ф(4, 4)
0

0
Ф(5, 2) 0
0
Ф(5,5)
0
0
0
0
0
0
0

0
0 Ф(7, 4)
0
0 Ф(7,1)
0
0
Ф(8, 2) 0
0
Ф(8,5)


0 Ф(1, 7)
0 
0
0
Ф(2,8) 

0
0
0 
0 Ф(4, 7)
0 ,

0
0
Ф(5,8) 
1
0
0 

0 Ф(7, 7)
0 
0
0
Ф(8,8) 
0
0
0
(5.120)
где ненулевые элементы равны:
Ф(1,1)  Ф(4, 4)  Ф(7, 7)  (1  W91  W92 ) / 3  0, 65  j 0,54;
Ф(1, 4)  Ф(4, 7)  Ф(7,1)  (1  W94  W98 ) / 3  0, 28  j 0,10;
Ф(1, 7)  Ф(4,1)  Ф(7, 4)  (1  W95  W97 ) / 3  0, 08  j 0, 44;
Ф(2, 2)  Ф(5,5)  Ф(8,8)  (1  W92  W94 ) / 3  0, 08  j 0, 44;
Ф(2,5)  Ф(5,8)  Ф(8, 2)  (1  W91  W95 ) / 3  0, 28  j 0,10;
Ф(2,8)  Ф(5, 2)  Ф(8,5)  (1  W97  W98 ) / 3  0, 65  j 0,54.
Численные значения мнимых и действительных частей этих элементов
приведены здесь с точностью до второго знака после запятой. Число
ненулевых элементов в матрице Ф (5.120) равно 21.
345
Количество и расположение нулевых и ненулевых элементов в матрице
Ф (5.120) совпадает с их количеством и расположением в матрице А (5.35)
связи спектров при сдвиге сигнала. Отличие матриц Ф и А состоит только в
значении их ненулевых элементов. Совпадение структур этих матриц
позволяет для спектров Фурье
X ф ( m)
и Виленкина-Крестенсона
X ВК (k )
использовать правило объединения в пять одноименных групп,
сформулированное в примере 5.9: в состав 0-й, 1-й и 2-й групп войдут по
одному коэффициенту ХФ(0) и ХВК(0), ХФ(3) и ХВК(3) и ХФ(6) и ХВК(6)
соответственно, а в состав 3-й и 4-й групп – по три коэффициента
и
{ X Ф (1), Х Ф (4), Х Ф (7)}
{ X ВК (2), Х ВК (5), Х ВК (8)} .
{ X ВК (1), Х ВК (4), Х ВК (7)}; { X Ф (2), Х Ф (5), Х Ф (8)}
и
Это правило позволяет общее уравнение (5.110)
вычисления спектра Виленкина-Крестенсона по спектру Фурье записать в
следующем развернутом виде:
X ВК (0)  Х Ф (0); X ВК (3)  Х Ф (3); X ВК (6)  Х Ф (6);
X ВК (1)  Ф(1,1) Х Ф (1)  Ф(1, 4) Х Ф (4)  Ф(1,7) X Ф (7);
X ВК (4)  Ф(4,1) Х Ф (1)  Ф(4, 4) Х Ф (4)  Ф(4,7) X Ф (7);
X ВК (7)  Ф(7,1) Х Ф (1)  Ф(7, 4) Х Ф (4)  Ф(7,7) X Ф (7);
X ВК (2)  Ф(2, 2) Х Ф (2)  Ф(2,5) Х Ф (5)  Ф(2,8) X Ф (8);
X ВК (5)  Ф(5, 2) Х Ф (2)  Ф(5,5) Х Ф (5)  Ф(5,8) X Ф (8);
X ВК (8)  Ф(8, 2) Х Ф (2)  Ф(8,5) Х Ф (5)  Ф(8,8) X Ф (8).
Из этой системы уравнений следует, что спектральные коэффициенты X ВК (k )
с номерами, принадлежащими конкретной группе, вычисляются через
коэффициенты X Ф (k ) с номерами этой же самой группы. Можно показать,
что суммы произведений одноименных спектральных коэффициентов на
свои комплексно-сопряженные величины в пределах одной группы в этом
случае равны между собой:

X Ф (0) Х Ф (0)  Х ВК (0) Х ВК
(0);

X Ф (3) Х Ф (3)  Х ВК (3) Х ВК
(3);

X Ф (6) Х Ф (6)  Х ВК (6) Х ВК
(6);



(1)  Х ВК (4) Х ВК
(7);
X Ф (1) Х Ф (1)  X Ф (4) Х Ф (4) + X Ф (7) Х Ф (7)  Х ВК (1) Х ВК
(4) + Х ВК (7) Х ВК



(2)  Х ВК (5) Х ВК
(5) + Х ВК (8) Х ВК
X Ф (2) Х Ф (2)  X Ф (5) Х Ф (5) + X Ф (8) Х Ф (8)  Х ВК (2) Х ВК
(8).
346
Это обстоятельство может быть учтено при записи обобщенного
равенства Парсеваля (5.117).
_______________ . _______________
Выявленные особенности матрицы Ф в базисах ДЭФ и ВКФ-Пэли
справедливы и для других значений параметров p и n . Поэтому в общем
2n
случае эта матрица содержит ( p  p) /( p  1) ненулевых элементов, из
которых p принимают единичные значения, а остальные являются
комплексными и образуют комплексно-сопряженные пары. Данные
элементы разбиваются на n( p  1)  1 независимых групп. На такое же число
групп разбиваются и спектральные коэффициенты X Ф (k ) и X ВК (k ) , причем
правило образования этих групп идентично соответствующему правилу
образования независимых групп спектральных коэффициентов в базисе
ВКФ-Пэли при сдвиге сигнала и поясняется табл. 5.3.
Это правило позволяет общее уравнение преобразования спектров
(5.110) для этого случая представить в виде следующей системы уравнений:
X
ВК
(kp n1)  X
X
(kp n1), k  0, 1, ..., p 1;
Ф
[ p n 1(m  jp)] 
ВК
p 1
  Ф[ p n 1(m  jp), p n 1(m  ip)] X [ p n 1( m  ip)],
Ф
i0
(5.121)
m  1, 2, ..., p 1;   1, 2, ..., n 1; j  0, 1,..., p 1.
Данные уравнения носят общий характер по отношению к параметрам
p и n. Из них могут быть получены частные результаты. Так при значениях
pN
и n=1, когда ВКФ-Пэли переходят в ДЭФ, выполняется только первая
система уравнений из (5.121), которая переходит в систему тривиальных
тождеств
X
Ф
(k )  X
Ф
(k ), k  0, 1, ..., N 1.
Матрица Ф в этом случае совпадает с единичной матрицей Е. При значении
p=2, когда ВКФ-Пэли становятся функциями Уолша-Пэли, уравнения (5.121)
приобретают следующий вид:
X (0)  X (0); X ( N / 2)  X ( N / 2);
У
Ф
У
Ф
X [2n 1(1  2 j )] 
У
2 1
  Ф[2n 1(1  2 j ), 2n 1(1  2i)] X [2n 1(1  2i)]
Ф
i 0
347
(5.122)
  1, 2, ..., n 1; j  0, 1, ..., 2 1.
Величины XУ (k ) здесь являются спектром Уолша-Пэли.
Правило
образования
одноименных
групп
спектральных
коэффициентов позволяет и равенство Парсеваля для этого случае записать в
нетрадиционной форме:
p 1
 (kp n1) 
 X ВК (kp n1) X ВК
k 0
p 1 n1 p 1
  
X
[ p n 1(m  ip )] X  [ p n 1(m  ip )] 

ВК
ВК
m1 1 i 0
p1
  X (kp n1) X  (kp n1) 
Ф
k 0 Ф
p 1 n1 p 1
  
X [ p n 1(m  ip )] X  [ p n 1(m  ip )].

Ф
Ф
m1 1 i0
При выводе этого выражения учтено, что суммы пар произведений
комплексно-сопряженных коэффициентов
X Ф (k ) X Ф (k )
и

X ВК (k ) X ВК
(k )
с
номерами k, принадлежащими каждой группе, равны между собой.
Перейдем теперь к системе ВКФ-Адамара.
Пример 5.31. Найти ядро Фурье преобразования спектра в базисе ДЭФ
в спектр базиса ВКФ-Адамара для N  9  32 .
Решение. Ядро Фурье Ф(k,m) для этого случая можно получить либо
по формуле (5.119), используя в качестве функций Wal(k,i) ВКФ-Адамара
Had(k,i) (5.25), либо путем перестановки строк матрицы Ф предыдущего
примера для ВКФ-Пэли по закону троичной инверсии, поскольку система
ВКФ-Адамара может быть получена троичной инверсией номеров функций
системы ВКФ-Пэли. Оба способа приводят к одинаковому результату:
0
0
1
0
0
0

0
0
0

0
0 Ф(3,1)
  0 Ф(4,1)
0

0
0 Ф(5,1)
0
0
Ф(6, 2)

0
Ф(7, 2)
0
0
0
Ф(8, 2)

0
0
0
0
1
0
0
0
0
0
0
1
0 Ф(3, 4)
0
0
0 Ф(4, 4)
0
0
0 Ф(5, 4)
0
0
0
0
Ф(6,5) 0
0
0
Ф(7,5) 0
0
0
Ф(8,5) 0
348

0
0 
0
0 

Ф(3, 7)
0 
Ф(4, 7)
0 

Ф(5, 7)
0 
0
Ф(6,8) 

0
Ф(7,8) 
0
Ф(8,8) 
0
0
(5.123)
Как видно из матрицы Ф (5.123), она и в этом случае имеет нулевые и
ненулевые элементы. Ненулевых элементов 21, из них 3 имеют единичные
значения, а остальные образуют 3 комплексно-сопряженные пары:
Ф(3,1)  Ф(4, 4)  Ф(5, 7)  0, 65  j 0,54;
Ф(3, 4)  Ф(4, 7)  Ф(5,1)  0, 28  j 0,10;
Ф(3, 7)  Ф(4,1)  Ф(5, 4)  0, 08  j 0, 44;
Ф(6, 2)  Ф(7,5)  Ф(8,8)  0, 08  j 0, 44;
Ф(6,5)  Ф(7,8)  Ф(8, 2)  0, 28  j 0,10;
Ф(6,8)  Ф(7, 2)  Ф(8,5)  0, 65  j 0,54.
Структура матрицы Ф (5.123) отличается от структуры
соответствующей матрицы А (5.31). Однако наличие нулевых элементов и их
расположение и в этом случае позволяют из спектральных коэффициентов
Фурье и Виленкина-Крестенсона образовать 5 независимых групп, причем
номера коэффициентов Виленкина-Крестенсона, принадлежащие каждой
группе, остаются такими же, как в предыдущем примере, а номера
коэффициентов Фурье совпадают с номерами коэффициентов при сдвиге
сигнала, рассмотренными в примере 5.8. В результате в группу с нулевым
номером войдут коэффициенты { X Ф (0) и Х ВК (0)} , в группу с номером 1 –
{ X Ф (3) и Х ВК (1)} , с номером 2 – { X Ф (6) и Х ВК (2)} , с номером 3 –
{ X Ф (1), Х Ф (4), X Ф (7) и
{ X Ф (2), Х Ф (5), X Ф (8)
X ВК (3), Х ВК (4), X ВК (5)} ,
с
номером
4
–
и X ВК (6), Х ВК (7), X ВК (8)} . Такое формирование групп
спектральных коэффициентов позволяет общее уравнение
преобразования спектров привести к более простому виду:
(5.110)
X ВК (0)  X Ф (0); X ВК (1)  X Ф (3); X ВК (2)  X Ф (6);
X ВК (3)  Ф(3,1) Х Ф (1)  Ф(3, 4) Х Ф (4)  Ф(3,7) Х Ф (7);
X ВК (4)  Ф(4,1) Х Ф (1)  Ф(4, 4) Х Ф (4)  Ф(4,7) Х Ф (7);
X ВК (5)  Ф(5,1) Х Ф (1)  Ф(5, 4) Х Ф (4)  Ф(5,7) Х Ф (7);
X ВК (6)  Ф(6, 2) Х Ф (2)  Ф(6,5) Х Ф (5)  Ф(6,8) Х Ф (8);
X ВК (7)  Ф(7, 2) Х Ф (2)  Ф(7,5) Х Ф (5)  Ф(7,8) Х Ф (8);
X ВК (8)  Ф(8, 2) Х Ф (2)  Ф(8,5) Х Ф (5)  Ф(8,8) Х Ф (8).
Суммы произведений комплексно-сопряженных пар спектральных
коэффициентов, принадлежащих одной группе, в этом случае также равны
между собой:
349

X ВК (0) X ВК
(0)  X Ф (0) X Ф (0);

X ВК (1) X ВК
(1)  X Ф (3) X Ф (3);

X ВК (2) X ВК
(2)  X Ф (6) X Ф (6);



(4)  X ВК (5) X ВК
(5)  X Ф (1) X Ф (1)  X Ф (4) X Ф (4)  X Ф (7) X Ф (7);
X ВК (3) X ВК
(3)  X ВК (4) X ВК



X ВК (6) X ВК
(6)  X ВК (7) X ВК
(7)  X ВК (8) X ВК
(8)  X Ф (2) X Ф (2)  X Ф (5) X Ф (5)  X Ф (8) X Ф (8).
_______________ . _______________
Обобщая полученные в примере 5.31 результаты, приходим к выводу,
что в общем случае для произвольных p и n матрица Ф ядра Фурье для
систем ВКФ-Адамара имеет такое же количество нулевых и ненулевых
элементов, что и аналогичная ей матрица Ф для систем ВКФ-Пэли.
Структура матрицы Ф позволяет из всех спектральных коэффициентов в
базисах ДЭФ {X Ф (m)} и ВКФ-Адамара
{ X ВК (k )} образовать n( p  1)  1
независимых групп, причем номера коэффициентов Фурье, входящие в
каждую группу, определяются по тому же правилу, что было
сформулировано для систем ВКФ-Пэли (см. табл. 5.3), а соответствующие им
номера спектральных коэффициентов Виленкина-Крестенсона-Адамара
определяются по правилу образования независимых групп коэффициентов в
базисах ВКФ-Адамара при сдвиге сигнала, которое поясняется табл. 5.4. В
соответствии с этим общее уравнение преобразования спектров (5.110)
представляется в виде системы уравнений
X ВК (k )  X Ф (kp n 1 ),

X ВК (mp  j ) 
p 1

i 0
k  0, 1, ..., p  1;
Ф[(mp   j ), p n 1 (m  ip)] X Ф [ p n  1 (m  ip)],
(5.124)
  1, 2, ..., n  1; m  1, 2, ..., p  1; j  0, 1, ..., p   1.
При p=2 ВКФ-Адамара переходят в функции Уолша-Адамара и система
уравнений (5.124) упрощается:
X У (0)  Х Ф (0); X У (1)  X Ф ( N / 2);
2 1
X У (2  j )   Ф[(2  j ), 2n  1 (1  2i)] X Ф [2n  1 (1  2i)];
i 0
  1, 2, ..., n  1; j  0, 1, ..., 2  1.
Здесь величины XУ (k ) являются спектром Уолша-Адамара.
350
(5.125)
Наличие независимых групп спектральных коэффициентов приводит к
тому, что равенство Парсеваля может быть записано по группам

X ВК (k ) X ВК
(k )  X Ф (kp n 1 ) X Ф (kp n 1 ), k  0, 1, ..., p  1;
p  1

j 0

X ВК (mp  j ) X

ВК

(mp  j ) 
p  1

i 0
X Ф [ p n  1 (m  ip )] X Ф [ p n  1 (m  ip )],
  1, 2, ..., n  1; m  1, 2, ..., p  1
и в объединенном виде
p 1

k 0
X ВК (k ) X

ВК
n 1 p 1

(k )   X ВК [mp   j ) X ВК
(mp   j ) 
 1 m 1
p 1
n 1 p 1
k 0
 1 m 1
  X Ф (kp n 1 ) X Ф (kp n 1 )   X Ф [ p n  1 (m  ip )] X Ф [ p n  1 (m  ip )].
Равенство Парсеваля по группам говорит о том, что мощность сигнала
одинаково распределяется по группам коэффициентов при его
представлении в базисах ДЭФ и ВКФ. Оба вида записи равенства Парсеваля
могут оказаться полезными при решении задач обработки сигналов с
использованием их энергетических характеристик.
Особенности структуры ядра Фурье преобразования спектров базисов
ДЭФ и ВКФ можно наглядно пояснить, используя геометрические
представления. Система координат Виленкина-Крестенсона развернута в
пространстве относительно комплексно-экспоненциальной системы так, что
многие оси координат одной системы становятся ортогональными осям
другой системы. Им соответствуют нулевые значения элементов матрицы
ядра. Неортогональными оказываются только те оси, номера которых
принадлежат к одной из независимых групп. Им соответствуют ненулевые
значения элементов матрицы ядра. Кроме того, у этих систем есть p
совпадающих осей: им соответствуют единичные значения элементов
матрицы ядра Фурье.
Наличие нулевых элементов в матрице ядра Фурье позволяет сократить
число вычислительных операций при взаимопреобразованиях комплексноэкспоненциальных спектров и спектров Виленкина-Крестенсона и создать
так называемые быстрые алгоритмы преобразования спектров. Подобные
алгоритмы рассмотрены в работах [26, 46].
351
Вопросы и задачи для самопроверки
1. Запишите целые и дробные числа в системе
счисления с
произвольным основанием.
2. Представьте числа 10 и 20 в системах счисления в основанием 3 и 5.
3. Дайте определение p-ичной инверсии кода числа.
4. Сформулируйте правила вычисления обобщенного кода Грея с
постоянным основанием. Вычислите код Грея в троичной системе счисления
для чисел 5 и 15, записанных в десятичной системе.
5. Запишите системы дискретных ВКФ для p=4 и n=2 при различных
способах их упорядочения.
6. Как определяется ранг ВКФ и их спектров?
7. Какие ВКФ-Пэли совпадают с обобщенными функциями
Радемахера?
8. Докажите теоремы о свертке, сдвиге, корреляции и умножении
сигналов в базисе ВКФ.
9. Запишите обобщенные свертку и корреляцию в базисе ВКФ.
10. Объясните понятие обобщенной частоты. Чем частота ВКФ
отличается от секвенты?
11. Подсчитайте частоту ВКФ Pal (3, i / 9) и Pal (7, i / 9) и функций Уолша
pal (3, i / 8) и pal (6, i / 8) .
12. Рассчитайте матрицы связи при сдвиге сигнала для ВКФ-Хармута
при N=9 и N =27. Проведите анализ их структуры.
13. Найдите спектр ВКФ-Пэли сигнала
x(i )  5  2i
и
i=0, 1, …, 15
прямым методом и сравните полученные результаты с общими формулами,
приведенными в §5.1.
14. Найдите спектры ВКФ-Пэли сигналов x(i )  sin 0,3i и x(i )  exp(i ) при
N=9.
Для решения задач 13 и 14 целесообразно воспользоваться
компьютером.
15. Запишите число 17 в системе счисления с основаниями {2; 3; 4}.
16. Дайте определение обобщенных функций Крестенсона.
17. Сформулируйте и докажите основные свойства ОФК.
352
18. Запишите аналитические выражения обобщенных сверток и
корреляционных функций для систем счисления с переменными
основаниями.
19. Сформулируйте и докажите теоремы о сдвиге, свертке и умножении
сигналов в базисе ОФК.
20. Постройте возможные системы ОФК для N=12.
21. Как определяется обобщенная инверсия индексов?
22. Запишите правила вычисления обобщенного кода Грея для
многоосновных систем счисления.
23. Постройте систему обобщенных функций Хаара для N =16.
24. Вычислите спектр в базисе ОФХ сигнала x(i )  3  4i для i=0, 1,…, 8
прямым методом по алгоритму (5.82) и по формулам (5.84) и (5.85).
25. В чем состоят отличия между преобразованиями Фурье в базисе
ДЭФ и ТЧП?
26. Вычислить ТЧП Мерсенна сигнала x(i)  i 2 , i  0, 1, ..., 10 .
27. Показать, как вычисляется 17-точечное ТЧП Ферма.
28. Какие особенности имеет запись равенства Парсеваля в ТЧП?
29. Записать первые 10 чисел Фибоначчи.
30. Записать систему функций Фибоначчи для N=10. Проверить ее
ортогональность и полноту.
31.
Вычислить
спектр
Фибоначчи
линейного
сигнала
x(i )  2  5i,
i  0, 1, ..., 7 .
32. Дайте геометрическую иллюстрацию обобщенного преобразования
Фурье.
33. Поясните физический смысл ядра Фурье.
34. Какие недостатки имеет ядро Фурье как система базисных
функций?
35. Найдите матрицу ядра Фурье для тригонометрического базиса и
базиса Фибоначчи при N=6.
36. Вычислите матрицу ядра Фурье для тригонометрического базиса и
базиса Уолша-Хармута при N=8.
37. Поясните, как образуются группы спектральных коэффициентов
Фурье и Виленкина-Крестенсона при их взаимопреобразованиях. Что дает
правило образования групп для спектрального анализа?
353
ГЛАВА 6
БЫСТРЫЕ АЛГОРИТМЫ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ
НА СТАТИЧЕСКИХ ИНТЕРВАЛАХ ВРЕМЕНИ
6.1. Вычислительная сложность алгоритмов. Быстрые алгоритмы
Сложность вычислительного алгоритма, предназначенного для
программирования, было бы логично численно выражать с помощью тех же
реализационных характеристик, что используются для оценки программ. К
таким характеристикам относят обычно время выполнения программы и
объемы памяти, используемые при её реализации. Однако данные
характеристики во многом зависят от архитектуры и быстродействия
применяемого процессора и квалификации программиста. Поэтому в теории
ЦОС на алгоритмическом уровне для характеристики вычислительной
сложности алгоритмов ЦОС используются только те показатели, которые
могут быть получены непосредственно по алгоритмам без учёта элементной
базы и профессионального мастерства программистов. К таким показателям
относятся число вычислительных операций (алгебраических вещественных
или комплексных сложений (А), вещественных или комплексных умножений
(М), двоичных сдвигов на один разряд (С)), количество входных, выходных
и промежуточных данных (Q) и число констант (L), используемых в
алгоритме.
В простых алгоритмах значения их сложностных показателей можно
легко подсчитать, поэтому величины А, М, С, Q и L принимают точные
значения. В сложных алгоритмах прямой подсчет этих показателей обычно
невозможен, поэтому пользуются их оценочными значениями. Для записи
оценок используют оценочную функцию О(·), устанавливающую
пропорциональное соответствие между показателем сложности и
параметрами алгоритма. К числу таких параметров в теории сигналов
относится, например, количество отсчетов N обрабатываемого сигнала.
Тогда запись вида А = О(N3) будет означать, что число сложений в алгоритме
пропорционально кубу величины N и при больших значениях N может
достигать существенной величины.
354
Любой алгоритм ЦОС можно описывать либо через соотношение
между входом и выходом, либо детально объясняя его внутреннюю
структуру. Обычно при решении новой задачи используется первый способ,
поскольку в этом случае при заданном сигнале или записанных некоторым
образом данных основное внимание сосредотачивается на том, что надо с
этими данными сделать, т.е. каков должен быть выход алгоритма при
известном его входе. Примерами такого выхода могут служить свернутая
(циклически или линейно) версия входа либо его преобразование Фурье в
некотором базисе. Такая связь входа с выходом в алгоритме математически
может быть записана без детального выписывания всех шагов, необходимых
для выполнения вычислений. Эти алгоритмы могут быть записаны
математической формулой и, следовательно, вычислены в прямом
соответствии с этой записью. Такую запись алгоритма вычислений называют
прямой [5].
В отличии от нее при второй форме записи алгоритма выполняется
детальное описание вычислительной процедуры, которая не является
очевидным способом вычисления выхода по заданному входу, хотя и
приводит к такому же результату. Если в этом случае концептуальная
ясность вычислений жертвуется в пользу эффективности, что приводит к
улучшению показателей сложности А, М и С, то такую запись алгоритма
называют быстрой.
Обычно быстрые алгоритмы (БА) получают с помощью определенной
модификации прямых алгоритмов. Эта модификация и составляет существо
используемых методов синтеза БА. Приведем несколько простых примеров
прямых и быстрых алгоритмов.
Пример 6.1. Вычислить сумму произведений четырех величин a, b, c и
d:
S=ac+ad+bc+bd.
Решение. Прямой алгоритм определяется приведенной формулой. Для
его реализации необходимо выполнить четыре умножения и три сложения.
Из этого алгоритма простой перегруппировкой данных легко получить
следующую эквивалентную форму записи:
S=(a+b)(c+d),
требующую лишь одного умножения и двух сложений. Этот пример
тривиален, но зато весьма нагляден.
_______________ . _______________
355
Пример 6.2. Записать прямой и быстрый алгоритмы вычисления
произведений двух комплексных чисел a+jb и c+jd.
Решение. Прямой алгоритм следует из самой операции комплексного
умножения:
e  jf  (a  jb)(c  jd )  (ac  bd )  j (ad  bc)
и выражается через умножения и сложения вещественных чисел:
e  ac  bd , f  ad  bc.
Он содержит четыре вещественных умножения и два вещественных
сложения.
Если умножение более трудоемкая операция, чем сложение, то более
эффективный алгоритм задается равенствами:
e  (a  b)d  a(c  d ),
f  (a  b)d  b(c  d ).
В такой форме алгоритм содержит три вещественных умножения и пять
вещественных сложений. Если выполняется умножение комплексного числа
a  jb
на комплексную константу c  jd , то члены c  d и c  d можно
вычислить заранее, независимо от процесса умножения. Тогда для
выполнения одного комплексного умножения понадобится выполнение
только трех вещественных умножений и сложений.
В этом случае происходит подмена одного вещественного умножения
на одно вещественное сложение. Это может быть целесообразным, если в
системе команд процессора длительность операции умножения больше
длительности операции сложения. В противном случае преимущество
улучшенного алгоритма теряется.
_______________ . _______________
Пример 6.3. Вычислить сумму конечного числа членов степенного
r
ряда
S   a x
 0
с известными коэффициентами a .
Решение. Прямой алгоритм задается приведенным равенством. Для его
выполнения необходимо организовать циклический процесс, состоящий из r
шагов, на каждом  -м шаге которого требуется вычислить выражение типа
S  S 1  a x . Реализация этого выражения потребует выполнения
356

умножений ((  - 1) умножение идет на формирование степени x и одно
умножение – на выполнение произведения x на a ) и одного сложения.
Поэтому для вычисления всего прямого алгоритма понадобится r сложений
и r (r  1) / 2 умножений.
Существует, однако, более экономичный алгоритм вычисления
подобных сумм, известный под названием схемы Горнера [5]:
S  (...((ar x  ar 1 ) x  ar 2 ) x  ...  a1 ) x  a0 .
Он также реализуется за r циклов, только в этом случае на каждом шаге
выполняется по одной операции умножения и сложения. Поэтому общие
затраты этого алгоритма составят r сложений и r умножений. При
одинаковом числе сложений быстрый алгоритм Горнера приводит к
существенной экономии умножений (в ( r +1)/ 2 раз).
_______________ . _______________
Из приведенных примеров может сложиться впечатление, что для
построения БА достаточно выполнить только хитроумную расстановку
скобок в вычислениях. Это не всегда соответствует действительности. В
сложных задачах быстрые алгоритмы не удается найти простым просмотром
вычислительного процесса. Для их построения потребуется весьма развитая
теория.
Эта теория в ЦОС зависит от трех основных факторов: типа
выполняемой над сигналами операции, способа формирования выборки
входного сигнала и вида математической модели сигналов и их
преобразований. В данной главе рассматриваются только методы синтеза БА
для вычисления дискретных
сверток и преобразований Фурье на
статических интервалах времени, для которых накопленная конечномерная
выборка входного сигнала {x(i)} , i  0,1,..., N  1 жестко фиксируется на оси
текущего времени и не перемещается по ней. БА для вычисления сверток и
преобразований Фурье на скользящих интервалах времени и БА цифровой
фильтрации сигналов будут рассмотрены в последующих главах.
При разработке БА ЦОС наиболее часто используют два вида
аналитического представления сигналов и их линейных преобразований –
матричное и скалярное (см. главу 2). В соответствии с этим и методы
синтеза БА делятся на матричные и скалярные [5, 13, 21, 40]. В настоящей
357
книге преимущественно используются скалярные методы и только в §6.9
приводятся примеры матричных методов синтеза БА. Следует отметить, что
в большинстве своем и матричные, и скалярные методы обладают близкими
возможностями и приводят к схожим конечным результатам. Поэтому
использование того или иного подхода к синтезу БА определяется чаще всего
математическим пристрастием разработчика, а не достоинствами или
недостатками самих подходов.
Для наглядного графического изображения БА часто используются
блок-схемы (структурные схемы) и сигнальные ориентированные
(направленные) графы. Блок-схемы алгоритмов в ЦОС строятся по тем же
правилам, что используются в вычислительной математике и теории
алгоритмов [5, 45]. Сигнальные графы являются удобной формой
пространственно-временного представления вычислительного процесса в
ЦОС. Они состоят из узлов и ветвей. Узлы предназначены для обозначения
вычислительных операций, а ветви – для изображения взаимосвязи узлов,
выражающейся в обмене данными между узлами. Узлы, в которых
выполняются алгебраические сложения, будем обозначать кружками со
знаком + внутри либо жирными точками, а узлы, предназначенные для
обозначения умножения данных, – квадратиками или кружками со знаком 
внутри них. Ветви будем представлять сплошными либо пунктирными
прямыми линиями. Обозначение ветви в виде сплошной линии будет
соответствовать прямой передаче данных (без изменения их знака), а в виде
пунктирной линии – инверсной передаче данных (с изменением их знака на
противоположный). Умножения на константы на графе могут отображаться
двумя способами. Если умножение выполняется при передаче данных, то в
соответствующей ветви указывается стрелка с обозначением около нее, в
случае необходимости, величины константы. Если выполняется умножение
на постоянную величину результата сложения, то константа указывается
около соответствующего узла. В крайних левых узлах графа операции
сложения обычно не выполняются и эти узлы служат для обозначения
входных данных. Результаты вычисления алгоритма формируются в крайних
правых узлах графа. Приведенные правила и элементы соответствуют
правилам и элементами, используемым при построении направленных
358
графов в линейных системах и ЦОС. В отдельных работах графы
дополняются и другими графическими элементами [40, 45].
Сигнальные графы представляют собой по сути еще и графический
способ распараллеливания вычислительного процесса, а при замене узлов на
процессорные элементы могут служить прототипом многопроцессорной
вычислительной системы, реализующей БА. Наряду с блок-схемами и
сигнальными графами возможно и комбинированное графическое
представление БА, содержащее элементы блок-схем и сигнальных графов,
которое будем называть блок-графом.
К настоящему времени в ЦОС накоплено большое количество
различных БА [5, 11, 13, 21, 40, 43, 45, 48, 60]. Рассмотреть все их в рамках
одной книги не представляется возможным. Поэтому остановимся только на
наиболее известных и эффективных БА, проиллюстрировав на их примере
основные идеи и подходы, используемые в теории быстрых алгоритмов.
6.2. Быстрые алгоритмы вычисления дискретных сверток
Прямой алгоритм вычисления линейной свертки задается выражением
(2.19). Его можно выразить через произведение полиномов (2.58), если
использовать для сигналов x(i) и y (i) и функции ядра F (i) их представление в
виде полиномов X ( z ), Y ( z ) и F ( z ) формальной переменной z (см. §2.6).
Вычисление свертки с помощью прямого произведения полиномов не
приводит к экономии вычислительных операций. Их число в этом случае
остается таким же, как и при реализации прямого алгоритма, и равно
M П  N1 N 2 ,
( N1  N 2  2)2 / 4
AП  
( N1  N 2  1)( N1  N 2  3) / 4
(6.1)
при N1  N 2 четном,
при N1  N 2 нечетном.
При больших значениях N1 и N 2 число этих операций
(6.2)
становится
существенным.
При полиномиальной записи свертки в виде (2.59) полиномы сигналов
и функции ядра задаются с помощью их коэффициентов, в качестве которых
используются отсчеты сигналов и функции. Однако возможен еще один
способ задания полиномов. Любой полином (2.57) степени N-1 может быть
задан его значениями в N точках. Произведение двух полиномов X ( z )
359
степени N1  1 и
Y ( z)
F ( z)
степени
N 2  1 соответственно является полиномом
степени N1  N2  2 и может быть задан значениями в N1  N2  1 точках.
Это приводит к другому методу умножения полиномов, а, следовательно, и
вычисления линейной свертки.
Суть этого метода состоит в том, что выбираются N1  N2  1 значений
формальной переменной
z , т.е. точки zi , i  0, 1, ..., N1  N2  2 и для них
вычисляются значения полиномов входного сигнала X ( zi ) и функции ядра
свертки F ( zi ) . Затем вычисляются произведения
Y ( zi )  X ( zi ) F ( z1 ), i  0, 1, ..., N1  N 2  2 .
(6.3)
Очевидно искомый полином Y ( z ) (2.59) выходного сигнала y (i)
полностью будет определен этими значениями и может быть восстановлен по
ним с помощью полиномиальной интерполяции, в частности, по
интерполяционной формуле Лагранжа:
Y ( z) 
N1  N2  2

i 0
Y ( zi ) Li ( z ) ,
(6.4)
где функции
Li ( z )  
j i
(z  z j )
(6.5)
( zi  z j )
являются полиномами Лагранжа. Вычисление Y ( z ) через значения
X ( zi ) и
F ( zi ) с последующим применением интерполяции Лагранжа составляет
существо алгоритма Тоома-Кука вычисления линейных сверток [5, 40].
Оценим сложность алгоритмов Тоома-Кука. На этапе вычисления
значений
X ( zi ) и F ( zi )
( N1  N2  1) ( N1  N 2  2)
полиномов X ( z ) и F ( z ) необходимо
умножений отсчетов
zi , i  0, 1, ..., N1  N 2  2;   1, 2, ..., N1  N 2  2
и
x(i )
и
F (i )
затратить
на константы
( N1  N 2 ) 2
сложений
произведений. На этапе вычисления значений Y ( zi ) полинома Y ( z ) следует
выполнить еще N1  N2  1 умножений по формуле (6.3). Ну и, наконец, на
этапе восстановления полинома Y ( z ) по интерполяционной формуле (6.4)
также возникают дополнительные умножения на константы и сложения,
число которых зависит от сложности и числа интерполяционных полиномов
(6.5). Таким образом, в общем случае при произвольных значениях N1 и N 2
360
алгоритмы Тоома-Кука потребуют для своей реализации не менее ( N1  N 2  1) 2
умножений и ( N1  N 2 ) 2 сложений.
Однако, если N1 и N 2 малы, то тогда для представления полиномов
можно использовать значения
zi
в виде целых чисел 0,  1 и 2 . В этом
случае умножения на константы либо исключаются, либо заменяются на
сдвиги. Число умножений становится равным N1  N2  1 и по сравнению с
прямым алгоритмом уменьшается. Правда, это уменьшение достигается за
счет увеличения числа сложений. Таким образом, алгоритм Тоома-Кука
может оказаться быстрым только для небольших значений величин N1 и N 2 ,
т.е. при вычислении коротких сверток.
Пример 6.4. Записать прямой и быстрый алгоритмы вычисления
линейной свертки с N1  N2  2 .
Решение. Прямой алгоритм следует из общего выражения (2.19) и
представляется следующими равенствами:
y (0)  x(0) F (0),
y (1)  x(0) F (1)  x(1) F (0),
y (2)  x(1) F (1) .
Он требует затрат четырех умножений и одного сложения, т.е. для него
M П  4 , а AП  1 .
Для получения алгоритма Тоома-Кука сначала представим входной
сигнал x(i) , функцию ядра F (i) и выходной сигнал y(i) в виде полиномов
X ( z )  x(0)  x(1) z,
F ( z )  F (0)  F (1) z,
Y ( z )  X ( z ) F ( z ).
Так как степень полинома Y ( z ) равна N1  N2  2  2 , то необходимо выбрать 3
значения
zi , т.е. точки z0 , z1 , z2 . Выберем их наиболее простыми:
z0  0; z1  1; z2  1.
Тогда
X ( z0 )  x(0); X ( z1 )  x(0)  x(1); X ( z2 )  x(0)  x(1);
F ( z0 )  F (0); F ( z1 )  F (0)  F (1); F ( z2 )  F (0)  F (1)
и вычисление значений полиномов X ( zi ) и F ( zi ) потребует выполнения
только четырех сложений без выполнения умножений.
361
Далее
Y ( z0 )  X ( z0 ) F ( z0 ) ; Y ( z1 )  X ( z1 ) F ( z1 ); Y ( z2 )  X ( z2 ) F ( z2 ) ,
что требует выполнения трех умножений. Интерполяционные полиномы
Лагранжа в этом случае имеют следующий вид:
L0 ( z ) 
( z  z1 )( z  z2 )
 ( z 2  1),
( z0  z1 )( z0  z2 )
L1 ( z ) 
( z  z0 )( z  z2 ) 1 2
 ( z  z ),
( z1  z0 )( z1  z2 ) 2
L2 ( z ) 
( z  z0 )( z  z1 )
1
 ( z 2  z ),
( z2  z0 )( z2  z1 ) 2
а интерполяционная формула представляется так:
Y ( z )  Y ( z0 ) L0 ( z)  Y ( z1 ) L1 ( z )  Y ( z2 ) L2 ( z) 
1
1
 Y ( z0 )  [Y ( z1 )  Y ( z2 )]z  {Y ( z0 )  [Y ( z1 )  Y ( z2 )]}z 2 .
2
2
Отсюда следует, что
1
1
y (0)  Y ( z0 ); y (1)  [Y ( z1 )  Y ( z2 )]; y (2)  Y ( z0 )  [Y ( z1 )  Y ( z2 )]
2
2
и для вычисления искомых значений свертки потребуется выполнение трех
сложений и двух сдвигов. Таким образом, применение алгоритма ТоомаКука для N1  N2  2 приведет к затратам трех умножений, семи сложений и
двух сдвигов. Если функция F (i) известна, то F ( z1 ) и F ( z2 ) можно вычислить
заранее, причем вычислить величины
1
1
F ( z1 ) и
F ( z2 ) . Тогда уберутся
2
2
сдвиги и число сложений станет равным пяти. В этом случае сложностные
характеристики алгоритма Тоома-Кука принимают следующие значения:
M Б  3, АБ  5 .
_______________ . _______________
Число сложений в алгоритмах Тоома-Кука можно сократить без
изменения числа умножений, если использовать следующую его
модификацию. Заметим, что в линейной свертке последнее её значение
y( N1  N2  2)  x( N1  1) F ( N 2  1) . Для его вычисления необходимо только одно
умножение. Сформируем модифицированный полином
T ( z )  Y ( z )  y ( N1  N 2  2) z N1  N2  2  X ( z ) F ( z )  y( N1  N 2  2) z N1  N2 2 ,
362
степень которого равна N1  N2  3 и вычислим этот полином по алгоритму
Тоома-Кука. Тогда общее число умножений останется прежним, а число
сложений, которое зависит от степени полинома, уменьшится.
Продемонстрируем это на предыдущем примере.
Пример 6.5. Записать модифицированный алгоритм Тоома-Кука для
N1  N 2  2 .
Решение. Модифицированный полином в этом случае равен
T ( z )  X ( z ) F ( z )  x(1) F (1) z 2
и имеет первую степень. Для его представления необходимо два значения z0
и z1 , которые выберем следующими: z0  0, z1  1 . Тогда
X ( z0 )  x(0), X ( z1 )  x(0)  x(1),
F ( z0 )  F (0), F ( z1 )  F (0)  F (1),
а
L0 ( z )  z  1, L1 ( z )   z.
Поэтому
T ( z0 )  X ( z0 ) F ( z0 )  x(1) F (1) z02  X ( z0 ) F ( z0 ),
T ( z1 )  X ( z1 ) F ( z1 )  x(1) F (1) z12  X ( z1 ) F ( z1 )  x(1) F (1)
и
T ( z )  T ( z0 ) L0 ( z )  T ( z1 ) L1 ( z)  T ( z0 )  [T ( z0 )  T ( z1 )]z,
Y ( z )  T ( z )  x(1) F (1) z 2  T ( z0 )  [T ( z0 )  T ( z1 )]z  x(1) F (1) z 2 .
Коэффициенты последнего полинома являются искомыми значениями
свертки 2  2 . Их можно записать непосредственно через значения x(i) и F (i) ,
если объединить предыдущие формулы:
y (0)  x(0) F (0),
y (1)  x(0) F (0)  [ x(0)  x(1)][ F (0)  F (1)]  x(1) F (1),
y (2)  x(1) F (1).
Этот алгоритм требует выполнения трех умножений и четырех сложений.
При известной функции F (i) одно сложение пропадает. В этом случае
M Б  3, АБ  3 и
алгоритм
по
числу
сложений
становится
конкурентноспособным прямому алгоритму. В таком виде алгоритм
вычисления свертки 2  2 был предложен А.Карацубой и известен в
литературе под его именем [5].
_______________ . _______________
363
Алгоритм Тоома-Кука не является единственным для коротких
сверток. Известен еще один алгоритм – алгоритм Винограда [5,40], который
основывается на полиномиальном представлении круговой свертки по
модулю полинома z  1 с использованием китайской теоремы об
полиномиальных вычетах (см. §2.6).
N
Полином z  1 может быть разложен в произведение m неприводимых
полиномов, которые называются
циклотомическими полиномами или
полиномами деления круга:
N
m
z N  1   M j ( z ).
j 1
Тогда общая последовательность вычисления свертки такова:
1. Полиномы X ( z ) и F ( z ) приводятся по модулю полиномов M j ( z ) , т.е.
находятся вычеты
X j ( z )  X ( z ) (mod M j ( z )) ,
Fj ( z )  F ( z ) (mod M j ( z )) .
2. Вычисляются m произведений Y j ( z )  X j ( z ) Fj ( z ) (mod M j ( z )) .
3. По этим произведениям с помощью КТО для полиномов
восстанавливается полином свертки Y ( z ) .
Сложность
такого
алгоритма
во
многом
будет
определяться
сложностью циклотомических полиномов M j ( z ) , а они будут зависеть от
множества, которому принадлежат их коэффициенты. Как уже отмечалось в
§2.6, при разложении полиномов на множители целесообразно выбирать
множество рациональных чисел. Для небольших N это дает циклотомические
полиномы
с
коэффициентами
и
0,  1
полиномиальные
операции
выполняются без умножений. В противном случае алгоритм теряет
практический смысл.
Для множества рациональных чисел
z N  1   M j ( z) ,
(6.6)
j| N
где произведение берется по всем значениям j , являющимися делителями
(сомножителями) N, включая 1 и саму величину N. Для различных значений
N циклотомические полиномы приведены в литературе [5, 19, 40]. Первые
шесть из них имеют следующий вид:
364
M1 ( z )  z  1,
M 2 ( z )  z  1,
M 3 ( z )  z 2  z  1,
M 4 ( z )  z 2  1,
M 5 ( z )  z 4  z 3  z 2  z  1,
M 6 ( z )  z 2  z  1.
Пример 6.6. Разложить на циклотомические множители полином z 6  1 .
Решение. Сомножителями числа 6 являются числа 1, 2, 3, 6. Поэтому
z 6  1  M 1 ( z ) M 2 ( z ) M 3 ( z ) M 6 ( z )  ( z  1)( z  1)( z 2  z  1)( z 2  z  1)  ( z 2  1)( z 4  z 2  1)  z 6  1.
_______________ . _____________
Оценим вычислительную сложность алгоритмов вычисления круговых
сверток. Реализация прямого алгоритма (2.18) приводит к затратам N 2
умножений и N ( N  1) сложений, т.е. для него
M П  N 2 , АП  N ( N  1).
(6.7)
Для алгоритма Винограда при малых значениях N циклотомические
полиномы M j ( z ) просты, так как их коэффициенты равны 0 или 1 . Это
означает, что приведение по модулю M j ( z ) и восстановление полинома Y ( z )
по КТО может быть выполнено без общих умножений (возможны умножения
только на числа
типа 1/ 2, 1/ 3, 1/ 4, 2, 3, 4 и т.д., которые можно свести к
сложениям и сдвигам) и с ограниченным числом сложений. При этом для
сверток, в которых функция ядра фиксирована, сложений, требуемых при
использовании КТО, столько же, сколько их требуется для приведения по
модулю циклотомических полиномов. Общее число сложений, необходимых
для реализации первого и третьего этапов алгоритма в этом случае равно
4( N  1) .
На этапе вычисления вычетов Y j ( z ) полинома свертки выполняются
умножения общего вида, число которых, как было показано Виноградом,
равно 2N  d , где d – количество сомножителей N, включая 1 и N, и
небольшое число сложений, зависящее от N. Поэтому для круговых сверток
с известной функцией ядра алгоритм Винограда обладает следующими
оценками реализационных характеристик:
M Б  2 N  d , AБ  4( N 1).
Очевидно, что формулы (6.8) задают нижнюю
вычислительных операций в алгоритме Винограда.
365
(6.8)
границу
числа
Пример 6.7. Записать алгоритм Винограда для вычисления 2-точечной
круговой свертки и оценить его сложность.
Решение. В этом случае N  2 и
Y ( z)  X ( z) F ( z)
(mod( z 2 1)),
где
X ( z )  x(0)  x(1) z, F ( z )  F (0)  F (1) z, Y ( z )  y (0)  y (1) z.
Полином z 2  1  ( z  1)( z  1), поэтому M1 ( z )  z  1, а M 2 ( z )  z  1. Тогда вычеты
полиномов X(z) и F(z) по модулю этих циклотомических полиномов будут
равны
X1 ( z )  x(0)  x(1)  a1 ,
X 2 ( z )  x(0)  x(1)  a2 ,
F1 ( z )  F (0)  F (1)  b1 ,
F2 ( z )  F (0)  F (1)  b2 .
По ним можно найти вычеты полинома результата
Y1 ( z )  X1 ( z ) F1 ( z ) (mod( z  1))  а1b1  с1 , Y2 ( z )  X 2 ( z ) F2 ( z ) (mod( z 1))  а2b2  с2
и записать по КТО восстанавливающий полином
Y ( z )  ( z  1)T1 ( z )Y1 ( z )  ( z  1)T2 ( z )Y2 ( z )
Обратные полиномы
T1 ( z )
и
T2 ( z )
(mod( z 2  1)) .
должны удовлетворять условиям
T1 ( z )( z  1)  1 (mod( z  1)), T2 ( z )( z  1)  1 (mod( z  1)).
Их
легко
найти
либо
подбором, либо по алгоритму Евклида для полиномов. Для этого случая они
имеют простейший вид:
T1 ( z )  1/ 2, T2 ( z )  1/ 2
и восстанавливающий полином представляется следующим образом:
1
Y ( z )  [Y1 ( z )( z  1)  Y2 ( z )( z  1)]
2
(mod( z 2  1))  
1
1
(c1  c2 )  (c1  c2 ) z.
2
2
Отсюда следует, что
y (0) 
1
1
(c1  c2 ), y (1)  (c1  c2 ).
2
2
Подставляя в эти выражения значения вычетов, получим искомую свертку в
окончательном виде:
1
1
y (0)  [ x(0)  x(1)]  [ F (0)  F (1)]  [ x(0)  x(1)]  [ F (0)  F (1)],
2
2
1
1
y (1)  [ x(0)  x(1)]  [ F (0)  F (1)]  [ x(0)  x(1)]  [ F (0)  F (1)].
2
2
Для сравнения запишем прямой алгоритм вычисления такой свертки:
y (0)  x(0) F (0)  x(1) F (1), y (1)  x(0) F (1)  x(1) F (0).
366
Он проще по записи, но требует выполнения четырех умножений и двух
сложений, в то время как алгоритм Винограда – двух умножений, шести
сложений и двух сдвигов. Если функция ядра известна, то можно заранее
вычислить величины
1
[ F (0)  F (1)] и
2
1
[ F (0)  F (1)].
2
Тогда в алгоритме
Винограда исчезнут сдвиги, а число сложений станет равным четырем.
Полученные при этом оценки числа операций будут полностью
соответствовать общим оценкам (6.7) и (6.8).
_______________ . _______________
Пример 6.8. Записать алгоритм Винограда для вычисления 3-точечной
круговой свертки.
Решение. Здесь N=3 и
Y ( z )  X ( z ) F ( z ) (mod( z 3  1)),
где
X ( z )  x(0)  x(1) z  x(2) z 2 ,
F ( z )  F (0)  F (1) z  F (2) z 2 ,
Y ( z )  y(0)  y(1) z  y(2) z 2 .
Полином
z 3  1  M 1 ( z ) M 3 ( z )  ( z  1)( z 2  z  1).
Используя алгоритм Евклида для полиномов, найдем обратные полиномы
Ti ( z ) , удовлетворяющие условиям:
T1 ( z )( z 2  z  1)  1 (mod( z  1)),
T3 ( z )( z  1)  1 (mod( z 2  z  1)).
Они будут равны T1 ( z )  1/ 3, T3 ( z)  ( z  2) / 3.
Далее на этапе приведения полиномов X ( z ) и F ( z ) имеем:
X1 ( z )  X ( z ) (mod M1 ( z ))  x(0)  x(1)  x(2)  a1 ,
X 3 ( z )  X ( z ) (mod M 3 ( z))  [ x(0)  x(2)]  [ x(1)  x(2)]z  a3  a2 z,
F1 ( z)  F ( z) (mod M1 ( z))  F (0)  F (1)  F (2)  b1,
F3 ( z )  F ( z ) (mod M 3 ( z ))  [ F (0)  F (2)]  [ F (1)  F (2)]z  b3  b2 z,
где
a2  x(1)  x(2), a3  x(0)  x(2), b2  F (1)  F (2), b3  F (0)  F (2).
Реализация этого этапа требует только восьми сложений.
На этапе вычисления вычетов полинома результата получаем:
Y1 ( z )  X1 ( z ) F1 ( z ) (mod M1 ( z ))  a1b1  с1 ,
367
Y3 ( z )  X 3 ( z ) F3 ( z) (mod M 3 ( z))  (a3  a2 z)(b3  b2 z ) (mod M 3 ( z )) 
 (a3 b3  a2b2 )  (а3b3  а2b3  а2b2 ) z.
Необходимо затратить пять умножений и три сложения. Но число
умножений можно уменьшить, если последнее выражение представить в
следующем эквивалентном виде:
Y3 ( z )  (c3  c2 )  (c3  c4 ) z  d1  d2 z,
где
c2  a2 b2 , c3  a3b3 , c4  (а3  a2 )(b3  b2 ), d1  c3  c2 , d2  c3  c4 .
В этом случае затраты составят четыре умножения и четыре сложения.
На этапе восстановления полинома результата:
Y ( z )  T1 ( z ) M 3 ( z )Y1 ( z )  T3 ( z ) M 1 ( z )Y3 ( z ) (mod ( z 3  1)) 
1
1
 [ ( z 2  z  1)c1  ( z  2)( z  1)(d1  d 2 z )] (mod ( z 3  1)) 
3
3
1
1
1
 (c1  2d1  d 2 )  (c1  d1  2d 2 ) z  (c1  d1  d 2 ) z 2 (mod ( z 3  1)).
3
3
3
Поэтому
1
1
1
y (0)  (c1  2d1  d 2 ); y (1)  (c1  d1  2d 2 ); y (2)  (c1  d1  d 2 ),
3
3
3
На выполнение этого этапа требуется затратить только пять сложений (если
не учитывать умножения на константы 1/3 и 2).
Объединяя все необходимые выражения, быстрый алгоритм Винограда
вычисления круговой свертки 3  3 можно записать в следующем
окончательном виде:
a1  x(0)  x(1)  x(2), a2  x(1)  x(2), a3  x(0)  x(2),
1
1
1
b1  [ F (0)  F (1)  F (2)], b2  [ F (1)  F (2)], b3  [ F (0)  F (2)],
3
3
3
b4  b3  b2 , c1  a1b1 , c2  a2b2 , c3  a3b3 , c4  (a3  a2 )b4 ,
d1  c3  c2 , d2  c3  c4 , y(0)  c1  2d1  d 2 ,
y(1)  c1  d1  2d2 , y(2)  c1  d1  d2 .
Множитель 1/3 здесь учтен при вычислении величин b1 , b2 и b3 .
Этот алгоритм
показателями:
будет
обладать
следующими
сложностными
М Б  4, АБ  17.
Если функция ядра известна, то величины b1 ÷ b4 можно определить заранее
и тогда
М Б  4, АБ  12.
368
Прямой алгоритм вычисления такой свертки имеет
М П  9, АП  6.
Таким образом, в этом случае экономия пяти умножений достигается за
счет шести сложений.
_______________ . ______________
Алгоритм Винограда выведен здесь применительно к круговым
сверткам. Однако он может быть использован и для вычисления линейных
сверток.
Может сложиться впечатление, что алгоритмы Тоома-Кука и
Винограда имеют только чисто теоретическое значение, поскольку они не
эффективны для длинных сверток, а короткие свертки практически не
используются в реальных задачах. Однако это не так. Именно эти алгоритмы
служат основой разработки эффективных алгоритмов вычисления длинных
сверток.
Таких алгоритмов несколько типов. Все они основаны на возможности
представления длинной свертки в виде совокупности коротких сверток, либо
с использованием приведенных в §2.3 методов секционирования
(перекрытия), либо путем её преобразования из одномерной формы записи
к многомерной с помощью операции преобразования одномерных индексов в
многомерные (см. §2.6). Вычислительный процесс многомерной свертки
представляется при этом в виде последовательного выполнения одномерных
коротких сверток с помощью включения (вложения) в него алгоритмов
коротких сверток. Алгоритмы коротких сверток образуют в этом случае
своеобразное алгоритмическое «гнездо» общей вычислительной процедуры.
Поэтому такие алгоритмы получили название алгоритмов с вложением или
гнездовых алгоритмов (nesting algorithm). Наиболее известными из них
являются алгоритм Агарвала-Кули и послойно-гнездовой алгоритм [5, 40].
Алгоритм Агарвала-Кули (1978 г.) использует для перехода от
одномерного представления круговой свертки к многомерному китайскую
теорему об остатках для индексов (см. §2.6). Он может быть получен для
составных N  N1 N 2 ...N m . Выведем этот алгоритм для случае представления N
в виде произведения двух взаимно-простых
N  N1 N 2 , где ( N1 , N2 )  1 .
369
сомножителей N1 и N 2 , т.е.
В этом случае индексы i и  в круговой свертке (2.18) можно по КТО
записать в двумерном виде, причем в общей форме или упрощенной.
Воспользуемся упрощенной записью:
i  N2i1  N1i2 ,
i2 ,  2  0, 1, ..., N 2  1,
  N21  N1 2 , i1 , 1  0, 1, ..., N1  1.
(6.9)
Тогда одномерная свертка превращается в двумерную
y ( N 2i1  N1i2 ) 
N1 1
N 2 1
 
1  0  2  0
x( N 21  N1 2 ) F [ N 2 (i1  1 )  N1 (i2   2 )].
(6.10)
При переходе к полиномиальному представлению этой свертки
возможны два варианте. Первый вариант основывается на использовании
набора одномерных полиномов (вектора полиномов) по строкам или
столбцам, а второй – на использовании двумерных полиномов. В алгоритме
Агарвала-Кули применяется первый вариант. Для его описания введем
следующие обозначения
N 2 1
X i1 ( z )  { X i1 ( z )}  {  x(i1 , i2 ) z i2 } ,
i2  0
N 2 1
F i1 ( z )  {Fi1 ( z )}  {  F (i1 , i2 ) z i2 },
(6.11)
i2  0
N 2 1
Y i1 ( z )  {Yi1 ( z )}  {  y (i1 , i2 ) z i2 },
i2  0
i1  0, 1, ..., N1  1.
Тогда искомую свертку можно записать в виде свертки полиномов
Yi1 ( z ) 

N1 1
N 2 1
1 0
2 0
{



x(1 ,  2 ) F [(i1  1 ), (i2   2 )]} 
(6.12)
N1 1


1 0
X 1 ( z ) F i1 1 ( z) (mod( z N2 1)),
i1  0, 1, ..., N1 1.
Из этого выражения следует, что реализация двумерной свертки
требует выполнения N12 произведений полиномов, каждое из которых в свою
очередь является сверткой, требующей выполнения N 22 умножений. Общее
число умножений будет равно N12  N 22  N 2 и совпадает с числом умножений
для прямого алгоритма.
370
Однако для вычисления свертки полиномов можно применить
имеющиеся быстрые алгоритмы вычисления сверток, если заменить в
последних операции над числами на операции над полиномами, т.е.
сложения чисел заменить на сложения полиномов, а умножения чисел – на
умножения полиномов. Если для реализации быстрого алгоритма N1 точечной свертки требуется M ( N1 ) умножений и A( N1 ) сложений, то
применение его для циклической свертки полиномов потребует M ( N1 )
умножений полиномов и A( N1 ) сложений полиномов степени N 2  1 (т.е. всего
N2 A( N1 ) сложений). Каждое
умножение
полиномов само является N 2 -
точечной сверткой, для которой по быстрому алгоритмy нужны M ( N 2 )
умножений и A( N2 ) сложений. Тогда общее число M Б ( N ) умножений и AБ ( N )
сложений будет равно
M Б ( N )  M ( N1 ) M ( N 2 ),
AБ ( N )  N 2 A( N1 )  M ( N1 ) A( N 2 ).
Отсюда следует, что число сложений зависит от порядка следования
сомножителей в величине N. Предпочтение нужно отдать тому способу
разложения на сомножители, который требует меньшего числа сложений.
Пример 6.9. Записать алгоритм Агарвала-Кули для вычисления
6-точечной круговой свертки.
Решение. В этом случае N  6 и имеется два варианта разложения N на
множители: N1  2, N2  3 и N1  3, N2  2 . Следовательно, будут и два
варианта построения алгоритма Агарвала-Кули, использующие быстрые
алгоритмы Винограда вычисления двух- и трехточечных сверток,
рассмотренные в предыдущих примерах и
имеющие характеристики
M ( N1 )  M (2)  2,
A( N1 )  A(2)  6 ,
M ( N2 )  M (3)  4 ,
A( N 2 )  A(3)  17.
Для
первого варианта число сложений
A(6)  N2 A( N1 )  M ( N1 ) A( N2 )  3  6  2 17  52,
а для второго –
A(6)  N1 A( N2 )  M ( N2 ) A( N1 )  2 17  4  6  58.
Таким образом, первый вариант разложения на множители является более
предпочтительным и именно для него запишем алгоритм Агарвала-Кули.
В этом случае переход от одномерных представлений к двумерным
осуществляется с помощью следующих преобразований индексов:
371
i  3i1  2i2
(mod 6), i1 , 1  0,1;
i  31  2 2
(mod 6), i2 ,  2  0, 1, 2.
Векторы полиномов равны
X i1 ( z)  {X 0 ( z), X1 ( z)};
F i1 ( z)  {F0 ( z), F1 ( z)};
Y i1 ( z)  {Y0 ( z), Y1 ( z)},
где
X 0 ( z )  x(0, 0)  x(0,1) z  x(0, 2) z 2  x(0)  x(2) z  x(4) z 2 ,
X 1 ( z )  x(1, 0)  x(1,1) z  x(1, 2) z 2  x(3)  x(5) z  x(1) z 2 ,
F0 ( z )  F (0, 0)  F (0,1) z  F (0, 2) z 2  F (0)  F (2) z  F (4) z 2 ,
F1 ( z )  F (1, 0)  F (1,1) z  F (1, 2) z 2  F (3)  F (5) z  F (1) z 2 ,
Y0 ( z )  Y (0, 0)  Y (0,1) z  Y (0, 2) z 2  y(0)  y(2) z  y(4) z 2 ,
Y1 ( z )  y (1, 0)  y (1,1) z  y (1, 2) z 2  y (3)  y (5) z  y (1) z 2 .
Они связаны между собой двухточечной полиномиальной сверткой
1
Y i1 ( z )   X k1 ( z ) F i1 k1 ( z ).
1  0
Её можно записать в виде быстрого алгоритма Винограда примера 6.7, если
в нем вместо чисел использовать полиномиальные векторы и операции над
числами заменить на операции над полиномами. Тогда для данного случая
получим:
A1 ( z )  X 0 ( z )  X 1 ( z )  a10  a11 z  a12 z 2 ,
a10  x(0)  x(3), a11  x(2)  x(5), a12  x(4)  x(1),
A2 ( z )  X 0 ( z )  X 1 ( z )  a20  a12 z  a22 z 2 ,
a20  x(0)  x(3), a12  x(2)  x(5), a22  x(4)  x(1),
B1 ( z )  F0 ( z )  F1 ( z )  b10  b11 z  b12 z 2 ,
1
1
1
b10  [ F (0)  F (3)], b11  [ F (2)  F (5)], b12  [ F (4)  F (1)],
2
2
2
B2 ( z )  F0 ( z )  F1 ( z )  b20  b21 z  b22 z 2 ,
1
1
1
b20  [ F (0)  F (3)], b21  [ F (2)  F (5)], b22  [ F (4)  F (1)],
2
2
2
C1 ( z )  A1 ( z ) B1 ( z )  c10  c11 z  c12 z 2 ,
C2 ( z )  A2 ( z ) B2 ( z )  c20  c12 z  c22 z 2 .
372
В этих выражениях
a10 , a11 , a12 , a20 , a12 , a22 , b10 , b11 , b12 , b20 , b21 , b22 , c20 , c12 и c22
являются коэффициентами соответствующих полиномов A1 ( z ), A2 ( z ),
B1 ( z ), B2 ( z ), C1 ( z ) и C2 ( z ).
Далее
Y0 ( z )  C1 ( z)  C2 ( z), Y1 ( z )  C1 ( z )  C2 ( z)
и
y (0, 0)  c10  c20 , y (0,1)  c11  c12 , y (0, 2)  c12  c22 ,
y (1, 0)  c10  c20 , y (1,1)  c11  c12 , y (1, 2)  c12  c22 .
Из приведенных формул следует, что для вычисления полиномов
A1 ( z ), A2 ( z ), B1 ( z ) и B2 ( z ) нужно четыре раза просуммировать полиномы 2-й
степени, а для вычисления полиномов Y0 ( z ) и Y1 ( z ) нужно еще два раза
просуммировать полиномы той же степени. На все это потребуется 18
сложений. Кроме того, для вычисления полиномов C1 ( z ) и C2 ( z ) нужно
выполнить два умножения полиномов 2-й степени. Каждое такое умножение
является трехточечной сверткой, которую можно вычислить по быстрому
алгоритму Винограда примера 6.8. Его использование в этом случае
приводит к следующей вычислительной процедуре:
a1(1)  a10  a11  a12 ; a2(1)  a11  a12 ; a3(1)  a10  a12 ;
1
1
1
b1(1)  (b10  b11  b12 ), b2(1)  (b11  b12 ), b3(1)  (b10  b12 ),
3
3
3
b4(1)  b3(1)  b2(1) ; c1(1)  a1(1)b1(1) ; c2(1)  a2(1)b2(1) ; c3(1)  a3(1)b3(1) ; c4(1)  (a3(1)  a2(1) )b4(1) ,
d1(1)  c3(1)  c2(1) , d 2(1)  c3(1)  c4(1) , c10  c1(1)  2d1(1)  d 2(1) ,
c11  c1(1)  d1(1)  2d 2(1) , c12  c1(1)  d1(1)  d 2(1) ,
a1(2)  a20  a12  a22 , a1(2)  a12  a22 , a3(2)  a20  a22 ,
1
1
1
b1(2)  (b20  b21  b22 ), b2(2)  (b21  b22 ), b3(2)  (b20  b22 ),
3
3
3
b4(2)  b3(2)  b2(2) ; c1(2)  a1(2)b1(2) , c2(2)  a2(2)b2(2) , c3(2)  a3(2)b3(2) , c4(2)  (a3(2)  a2(2) )b4(2) ,
d1(2)  c3(2)  c2(2) , d 2(2)  c3(2)  c4(2) , c20  c1(2)  2d1(2)  d 2(2) ,
c12  c1(2)  d1(2)  2d 2(2) , c22  c1(2)  d1(2)  d 2(2) .
Для ее выполнения необходимо затратить 8 умножений и 34 сложений.
Всего для выполнения алгоритма Агарвала-Кули свертки 6х6 потребуется 8
умножений и 52 сложений. Прямой алгоритм вычисления шеститочечной
круговой свертки требует выполнения 36 умножений и 30 сложений. Если
функция ядра свертки известна заранее, то в алгоритме Агарвала-Кули
373
величины
b10 , b11 , b12 , b20 , b21 , b22 , b1(1) , b2(1) , b3(1) ,
b1(2) , b2(2) , b3(2) и b4(2)
могут
быть
вычислены предварительно, в результате чего полностью исключаются
умножения на константы 1/2 и 1/3, а число сложений станет равным 36.
_______________ . _______________
Алгоритм Агарвала-Кули рекурсивно обобщается на случай
произвольного числа взаимно-простых сомножителей N. Действительно, если
N  N1 N 2 ...N m , где все N i попарно взаимнопростые, то N-точечная одномерная
свертка представляется в виде m  мерной свертки массивов N1  N2  ... Nm и
может быть вычислена с помощью
N1 -точечной
свертки
массивов
N 2  N3  ... N m . При этом все умножения заменяются свертками массива
N2  N3  ...  Nm . Затем последние свертки рекурсивного сводятся к сверткам
меньшей размерности и так до тех пор, пока все свертки не сведутся к
M ( N1 ) M ( N 2 )  M ( N m ) N m -точечным сверткам, где M ( Ni ) – число умножений,
требуемых
для выполнения N i -точечной свертки.
Если через A( Ni )
обозначить
число сложений, требуемых для быстрого вычисления N i -
точечной свертки, то общее число операций, необходимых для гнездового
алгоритма вычисления свертки массива размерностью N  N1  N2  ...  Nm ,
будет задаваться выражениями
M Б ( N )  M ( N1 )M ( N 2 )  M ( N m ),
AБ ( N )  A( N1 ) N 2  N m  M ( N1 ) A( N 2 ) N3  N m  M ( N1 )M ( N2 ) A( N3 ) N 4  N m 
  M ( N1 )M ( N 2 )  M ( N m1 ) A( N m ).
(6.13)
(6.14)
Обращаем внимание на то, что число операций, выполняемым по
формулам (6.13) и (6.14), зависит в основном от числа умножений M ( Ni ) ,
тогда как число сложений A( Ni ) дает незначительный вклад в общее
выражение для AБ ( N ) . Поэтому
для больших сверток могут оказаться
наиболее выгодными алгоритмы, вычисляющие короткие свертки с малым
числом умножений, даже если это уменьшение достигается за счет
относительного увеличения числа сложений. Суммарные характеристики все
равно могут оказаться лучшими. Так, например, 504-точечная свертка по
алгоритму Агарвала-Кули может быть вычислена с помощью алгоритмов 7-,
8- и 9- точечных сверток со следующими характеристиками [40]:
374
M (7)  16, A(7)  70,
M (9)  19, A(9)  74,
M (8)  14, A(8)  46
или
M (8)  12, A(8)  72.
Может показаться, что вариант с 8-точечной сверткой с
M (8)  14
показателями
и A(8)  46 лучше, поскольку за счет двух умножений экономится 26
сложений. Однако в общей процедуре Агарвала-Кули получается [40]
- для первого варианта М Б (504)  4256, AБ (504)  28240,
- для второго варианта М Б (504)  3648, AБ (504)  26304.
Второй вариант быстрого алгоритма Агарвала-Кули в этом случае
эффективнее первого как по числу умножений, так и по числу сложений.
В послойно-гнездовом алгоритме (split nesting algorithm) используется
представление многомерных сверток в виде произведения многомерных
полиномов [5,40]. Рассмотрим основные принципы построения такого
алгоритма на примере N1 N 2 -точечных круговых
сверток, где N1 и N 2 –
различные простые числа.
В этом случае двумерная свертка y(i1 , i2 )  y( N2i1  N1i2 ) , полученная
путем преобразования одномерных индексов по КТО, рассматривается как
N
2
произведение по составному модулю z1 1  1 , z2  1 полиномов
N
X ( z1 , z2 ) 
F ( z1 , z2 ) 
N1 1
N 2 1
i1  0
i2  0
N1 1
N 2 1
i1  0
i2  0
 
 
x(i1 , i2 ) z1i1 z2i2 ,
(6.15)
F (i1 , i2 ) z1i1 z2i2
и записывается в виде
Y ( z1 , z2 ) 
N1 1
N 2 1
i1  0
i2  0
 
y (i1 , i2 ) z1i1 z2i2  X ( z1 , z2 ) F ( z1 , z2 ) (mod z1N1  1, z N 2  1) .
(6.16)
N
Поскольку N1 и N 2 – простые числа, то z1 1  1 и z2 2  1 раскладываются в
N
произведение циклотомических полиномов
M1 ( z1 )  P1 ( z1 )  z1  1, M N1 ( z1 )  P2 ( z1 )  z1N1 1  z1N1 2  ...  1
и
375
N 1
N 2
M1 ( z2 )  P1 ( z2 )  z2  1, M N2 ( z2 )  P2 ( z2 )  z2 2  z2 2  ...  1
соответственно. Полином свертки Y ( z1 , z2 ) теперь можно получить, обобщая
КТО для полиномов (см. §2.6) на двумерный случай, по произведениям
двумерных вычетов, определенных по модулю этих циклотомических
полиномов:
2
Y ( z1 , z2 )  
m 1
где
2

n 1
S m,n ( z1 , z2 )Ym,n ( z1 , z2 ) (mod z1N1  1, z2N2  1) ,
(6.17)
Sm,n ( z1 , z2 )  Tm,n ( z1 , z2 ) P  m ( z1 ) P  n ( z2 ),  ,   1, 2
(6.18)
и должны удовлетворять условию
0
Sm,n ( z1 , z2 )  
1
(mod P  m ( z1 ), P  n ( z1 )),
(6.19)
(mod Pm ( z1 ), Pn ( z2 ),
а обратные двумерные полиномы Tm ,n ( z1 , z2 ) определяются по формуле
Tm ,n ( z1 , z2 ) P  m ( z1 ) P  n ( z2 )  1 (mod Pm ( z1 ), Pn ( z2 )).
Двумерные вычеты полинома – результата Ym ,n ( z1 , z2 )
(6.20)
получаются из
полиномиальных вычетов двумерных полиномов (6.15) входного сигнала и
функции ядра свертки
Ym,n ( z1 , z2 )  X m,n ( z1 , z2 ) Fm, n ( z1 , z2 )
(mod Pm ( z1 ), Pn ( z2 )),
(6.21)
где
X m,n ( z1 , z2 )  X ( z1 , z2 ) (mod Pm ( z1 ), Pn ( z2 )),
Fm,n ( z1 , z2 )  F ( z1 , z2 ) (mod Pm ( z1 ), Pn ( z2 )).
Таким образом, процедура вычисления свертки в послойно-гнездовом
алгоритме включает последовательные приведения по модулям
P1 ( z1 ), P1 ( z2 ), P2 ( z1 ), P2 ( z2 ) , перемножения вычетов по составным модулям
Pm ( z1 ), Pn ( z2 ) и восстановление свертки по полиномиальным произведениям,
согласно КТО для двумерных полиномов. При этом в силу особенностей
модулей z1  1 и z2  1 полиномиальные двумерные умножения по составному
модулю ( z1  1), ( z2  1) превращаются в простые умножения на скаляр, а по
модулям ( z1  1), P2 ( z2 ) и ( z2  1), P2 ( z1 ) – в умножение одномерных полиномов
по модулям P2 ( z2 ) и P2 ( z1 ) соответственно. Полиномиальное же произведение
по составному
модулю P2 ( z1 ), P2 ( z2 ) целесообразно вычислять
гнездовым
методом, используя в полиномиальных умножениях по модулю P2 ( z1 ) вместо
376
скалярных величин полиномы степени N 2  1 , а вместо умножения скаляров
– умножения полиномов по модулю P2 ( z2 ) .
Обратные двумерные полиномы, используемые в КТО, находятся
либо подбором, либо по алгоритму Евклида для полиномов, обобщенному
на двумерный случай.
Пример 6.10. Записать послойно-гнездовой алгоритм вычисления 6точечной круговой свертки.
Решение. В этом случае
N1  2, N 2  3 и
i  3i1  2i2 , i1  0,1; i2  0, 1, 2.
Поэтому
X ( z1 , z2 )  x(0, 0)  x(0,1) z2  x(0, 2) z22  x(1, 0) z1  x(1,1) z1 z2  x(1, 2) z1 z22 
 x(0)  x(2) z2  x(4) z22  x(3) z1  x(5) z1 z2  x(1) z1 z22 ,
F ( z1 , z2 )  F (0, 0)  F (0,1) z2  F (0, 2) z22  F (1, 0) z1  F (1,1) z1 z2  F (1, 2) z1 z22 
 F (0)  F (2) z2  F (4) z22  F (3) z1  F (5) z1 z2  F (1) z1 z22 ,
Y ( z1 , z2 )  y (0, 0)  y (0,1) z2  y (0, 2) z22  y (1, 0) z1  y (1,1) z1 z2  y (1, 2) z1 z22 
 y (0)  y (2) z2  y (4) z22  y (3) z1  y (5) z1 z2  y (1) z1 z22 .
Циклотомические полиномы равны
P1 ( z1 )  z1  1, P2 ( z1 )  z1  1, P1 ( z2 )  z2  1, P2 ( z2 )  z22  z2  1,
а двумерные обратные полиномы находятся из условий
T1,1 ( z1 , z2 ) ( z1  1)( z22  z2  1)  1 (mod z1  1, z2  1),
T1,2 ( z1 , z2 ) ( z1  1)( z2  1)  1 (mod z1  1, z22  z2  1),
T2,1 ( z1 , z2 ) ( z1  1)( z22  z2  1)  1 (mod z1  1, z2  1),
T2,2 ( z1 , z1 ) ( z1  1)( z2  1)  1 (mod z1  1, z22  z2  1)
и имеют следующий вид:
T1,1 ( z1 , z2 )  1/ 6; T1,2 ( z1 , z2 )  ( z2  2) / 6; T2,1 ( z1 , z2 )  1/ 6; T2,2 ( z1 , z2 )  ( z2  2) / 6.
Сам вычислительный алгоритм далее представляется в виде
последовательности трех этапов: 1) определение полиномиальных вычетов
полиномов X ( z1 , z2 ) и F ( z1 , z2 ) ; 2) определение полиномиальных вычетов
полинома Y ( z1 , z2 ) и 3) восстановление полинома результата Y ( z1 , z2 ) по КТО
для полиномов.
На первом этапе:
X1,1 ( z1 , z2 )  x(0)  x(2)  x(4)  x(3)  x(5)  x(1)  a1(0) ;
377
X1,2 ( z1 , z2 )  [ x(0)  x(4)  x(3)  x(1)]  [ x(2)  x(4)  x(5)  x(1)]z2  a2(0)  a2(1) z2 ;
X 2,1 ( z1 , z2 )  x(0)  x(2)  x(4)  x(3)  x(5)  x(1)  a3(0) ;
X 2,2 ( z1 , z2 )  [ x(0)  x(4)  x(3)  x(1)]  [ x(2)  x(4)  x(5)  x(1)]z2  a2(0)  a4(1) z2 ;
F1,1 ( z1 , z2 )  F (0)  F (2)  F (4)  F (3)  F (5)  F (1)  b1(0) ;
F1,2 ( z1 , z2 )  [ F (0)  F (4)  F (3)  F (1)]  [ F (2)  F (4)  F (5)  F (1)]z2  b2(0)  b2(1) z2 ;
F2,1 ( z1 , z2 )  F (0)  F (2)  F (4)  F (3)  F (5)  F (1)  b3(0) ;
F2,2 ( z1 , z2 )  [ F (0)  F (4)  F (3)  F (1)]  [ F (2)  F (4)  F (5)  F (1)]z2  b4(0)  b4(1) z2 .
Вычислительные формулы первого этапа:
a1(0)  ( x(0)  x(4)  x(2))  ( x(3)  x(1)  x(5));
a2(0)  ( x(0)  x(4))  ( x(3)  x(1));
a2(1)  ( x(2)  x(4))  ( x(5)  x(1));
a3(0)  ( x(0)  x(4)  x(2))  ( x(3)  x(1)  x(5));
a4(0)  ( x(0)  x(4))  ( x(3)  x(1));
a4(1)  ( x(2)  x(4))  ( x(5)  x(1));
b1(0)  ( F (0)  F (4)  F (2))  ( F (3)  F (1)  F (5));
b2(0)  ( F (0)  F (4))  ( F (3)  F (1));
b2(1)  ( F (2)  F (4))  ( F (5)  F (1));
b3(0)  ( F (0)  F (4)  F (2))  ( F (3)  F (1)  F (5));
b4(0)  ( F (0)  F (4))  ( F (3)  F (1));
b4(1)  ( F (2)  F (4))  ( F (5)  F (1)).
x(0)
x(4)
x(2)
x(3)
x(1)
x(5)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(0)
a
2
(0)
a
1
(1)
a
2
(0)
a
4
(0)
a
3
(1)
a
4
Рис. 6.1. Сигнальный граф процесса вычисления
полиноминальных вычетов
378
Наличие одинаковых слагаемых в этих формулах позволяет выполнить
этот этап с помощью 28 сложений. В этом легко убедиться, если представить
процесс вычисления коэффициентов полиномов-вычетов X 1,1 ( z1 , z2 ) , X 1,2 ( z1 , z2 ) ,
X 1,2 ( z1 , z2 )
и
в виде ориентированного сигнального графа,
X 2,2 ( z1 , z2 )
приведенного на рис. 6.1.
Граф
процесса
вычисления
вычетов
полинома
F ( z1 , z2 )
имеет
аналогичную структуру. Каждый из этих графов для своей реализации
требует 14 сложений.
На втором этапе:
Y1,1 ( z1 , z2 )  X1,1 ( z1 , z2 ) F1,1 ( z1 , z2 ) (mod z1 1, z2 1)  a1(0)b1(0)  c1(0) ;
Y1,2 ( z1 , z2 )  X 1,2 ( z1 , z2 ) F1,2 ( z1 , z2 ) (mod z1  1, z22  z2  1) 
 (a2(0)b2(0)  a2(1)b2(1) )  (a2(0)b2(1)  a2(1)b2(0)  a2(1)b2(1) ) z2  c2(0)  c2(1) z2 ;
Y2,1 ( z1 , z2 )  X 2,1 ( z1 , z2 ) F2,1 ( z1, , z2 ) (mod z1  1, z2 1)  a3(0)b3(0)  c3(0) ;
Y2,2 ( z1 , z2 )  X 2,2 ( z1 , z2 ) F2,2 ( z1 , z2 ) (mod z1  1, z22  z2  1) 
 (a4(0)b4(0)  a4(1)b4(1) )  (a4(0)b4(1)  a4(1)b4(0)  a4(1)b4(1) ) z2  c4(0)  c4(1) z2 .
Вычислительные формулы этого этапа:
c1(0)  a1(0)b1(0) ; c3(0)  a3(0)b3(0) ; c2(0)  a2(0)b2(0)  a2(1)b2(1) ; c4(0)  a4(0)b4(0)  a4(1)b4(1) ;
c2(1)  a2(0)b2(1)  a2(1)b2(0)  a2(1)b2(1) ; c4(1)  a4(0)b4(1)  a4(1)b4(0)  a4(1)b4(1) .
На их выполнение потребуется 10 умножений и 6 сложений. Число
умножений можно уменьшить, если поступить так же, как в примере 6.8, т.е.
представить величины c2(1) и c4(1) в виде
c2(1)  a2(0)b2(0)  (a2(0)  a2(1) )(b2(0)  b2(1) ); c4(1)  a4(0)b4(0)  (a4(0)  a4(1) )(b4(0)  b4(1) ) .
В этом случае на втором этапе будет затрачено 8 умножений и 8
сложений.
На третьем этапе:
Y ( z1 , z2 )  T1,1 ( z1 , z2 ) P2 ( z1 ) P2 ( z2 )Y1,1 ( z1 , z2 )  T1,2 ( z1 , z2 ) P2 ( z1 ) P1 ( z2 )Y1,2 ( z1 , z2 ) 
T2,1 ( z1 , z2 ) P1 ( z1 ) P2 ( z2 )Y2,1 ( z1 , z2 )  T2,2 ( z1 , z2 ) P1 ( z1 ) P1 ( z2 )Y1,2 ( z1 , z2 ) (mod z12  1, z23  1) 
1
1
1
 ( z1  1)( z22  z2  1)c1(0)  ( z2  2)( z1  1) ( z2  1)(c2(0)  c2(1) z2 )  ( z1  1)( z22  z2  1)c3(0) 
6
6
6
1
1
 ( z2  2)( z1  1) ( z2  1)(c4(0)  c4(1) z2 ) (mod z12  1, z23 1)  {[( c1(0)  c3(0) )  2(c2(0)  c4(0) ) 
6
6
(c2(1)  c4(1) )]  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  2(c2(1)  c4(1) )] z2  [(c2(0)  c3(0) )  (c2(0)  c4(0) ) 
(c2(1)  c4(1) )]z22  [(c1(0)  c3(0) )  2(c2(0)  c4(0) )  (c2(1)  c4(1) )]z1  [(c1(0)  c3(0) )  (c2(0)  c4(0) ) 
379
2(c2(1)  c4(1) )]z1 z2  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  (c2(1)  c4(1) )]z1 z22 }.
Вычислительные формулы третьего этапа:
1
y (0)  y (0, 0)  [(c1(0)  c3(0) )  2(c2(0)  c4(0) )  (c2(1)  c4(1) )],
6
1
y (1)  y (1, 2)  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  (c2(1)  c4(1) )],
6
1
y (2)  y (0,1)  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  2(c2(1)  c4(1) )],
6
1 (0) (0)
y (3)  y (1, 0)  [(c1  c3 )  2(c2(0)  c4(0) )  (c2(1)  c4(1) )],
6
1
y (4)  y (0, 2)  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  (c2(1)  c4(1) )],
6
1
y (5)  y (1,1)  [(c1(0)  c3(0) )  (c2(0)  c4(0) )  2(c2(1)  c4(1) )].
6
Используя одинаковые слагаемые, их реализацию можно выполнить с
затратами 16 сложений. Умножения на константы 1/ 6 и 2 при этом не
учитываются.
Таким образом, весь послойно гнездовой алгоритм вычисления 6точечной свертки приводит к затратам 8 умножений и 52 сложений. Если
функция ядра известна, то заранее можно вычислить величины
b1(0) , b2(0) , b2(1) , b3(0) , b4(0)
и b4(1) , перенеся сюда множитель 1/ 6 , а так же величины
b2(0)  b2(1) и b4(0)  b4(1) . Тогда число сложений уменьшится до 36.
_______________ . ______________
Из рассмотренных примеров 6.9 и 6.10 следует, что при N=6 оба
метода приводят к одинаковым по эффективности алгоритмам. Однако для
других значений N получаемые алгоритмы различаются по вычислительной
эффективности. В работе [40] доказывается, что послойно-гнездовые
алгоритмы требуют для своей реализации при том же числе умножений
меньшего числа сложений и это их преимущество при больших N может
достигать 25%. Послойно-гнездовые алгоритмы рекурсивно можно
применить и к большим N1 N2 ...Nm -точечным сверткам.
6.3. Быстрые алгоритмы вычисления частотного спектра
История развития быстрых алгоритмов анализа спектра началась во
второй половине прошлого века с появлением работ И.Гуда [69] (1960 г.),
Л.Томаса [75] (1963 г.), Дж. Кули и Дж. Тьюки [67] (1965 г.), посвященных
380
разработке быстрых алгоритмов
вычисления частотного спектра в
дискретном комплексном экспоненциальном базисе. Именно в этих работах
впервые было использовано словосочетание «быстрое преобразование
Фурье» (Fast Fourier Transform – БПФ), прочно вошедшее в общую
терминологию ЦОС. Простота вывода и высокая эффективность первых БПФ
обеспечили им самое широкое применение и способствовали превращению
дискретного спектрального анализа в действенный инструмент прикладной
обработки сигналов. Впоследствии теория БПФ получила дальнейшее
развитие силами трудов большого числа зарубежных и отечественных
авторов (О. Синглтона, Ч. Рейдера, Н. Бреннера, Л. Блюстейна, С. Винограда,
Б. Гоулда, Л. Рабинера, Р. Блейхута, Г. Нуссбаумера, Дж. Макклеллана, Л.П.
Ярославского, В.Н. Пойды, В.А. Трахтмана, В.Г. Лабунца, Г.А. Кухарева и
многих других [5, 9, 11, 13, 21, 36, 40, 43, 45, 60]), как в направлении
совершенствования БПФ в базисе ДЭФ, так и в направлении разработки
быстрых алгоритмов вычисления ДПФ в других базисах. В этом параграфе
мы остановимся на основных алгоритмах БПФ только в комплексном
экспоненциальном базисе.
Прямой алгоритм вычисления прямого ДПФ определяется вторым
уравнением системы (4.30). Запишем его без нормирующего множителя 1/ N ,
который в данном случае не имеет принципиального значения
N 1
X (k )   x(i )WNik , WN  exp( j
i 0
2
), k  0, 1, ..., N  1.
N
(6.22)
Реализация этого алгоритма приводит к затратам M П  N 2 умножений
отсчетов сигнала на комплексные значения базисных функций WN ki , которые
обычно рассчитываются заранее и хранятся в виде соответствующих
констант, и AП  N ( N  1) комплексных сложений. Быстрые алгоритмы ДПФ
позволяют существенно сократить эти затраты.
Существует два основных подхода к синтезу алгоритмов БПФ. Первый
подход использует переход от одномерного массива, образованного из
отсчетов сигнала x(i) , к многомерному и, соответственно, от одномерного
ДПФ к многомерному, которое хотя и записывается сложнее, но вычисляется
проще. Поскольку известны разные способы преобразования одномерных
массивов в многомерные, то в рамках этого подхода возможно построение
381
различных модификаций БПФ. Основными из них являются БПФ КулиТьюки и Гуда-Томаса.
Второй подход состоит в сведении ДПФ по процедуре Рейдера к
свертке, которая затем вычисляется по одному из быстрых алгоритмов. В
этом случае также возможны различные модификации БПФ, отличающиеся
по сложности. Наиболее эффективными из них являются БПФ-алгоритмы
Винограда.
Начнем рассмотрение БПФ с алгоритмов Кули-Тьюки. Пусть величина
N в ДПФ (6.22) является составной, т.е. N  N1 N2 , где N1 и N 2 ‒ любые целые
числа. Сделаем преобразование одномерных индексов i и k по правилам,
приведенным в примерах 2.19 и 2.20 §2.6:
i  i1  N1i2 , i1 , k1  0, 1, ..., N1  1,
(6.23)
k  N2 k1  k2 , i2 , k2  0, 1, ..., N2  1.
Тогда одномерное ДПФ (6.22) можно преобразовать к
двумерному виду:
X ( N 2 k1  k2 )  X (k1 , k2 ) 

N1 1
N 2 1
i1  0
i2  0
 
N1 1
N 2 1
i1  0
i2  0
 
следующему
x(i1  N1i2 )WN (i1  N1i2 )( N2 k1  k2 ) 
x(i1 , i2 )WN ( N2i1k1 i1k2  N1N2i2 k1  N1i2k2 ) .
Здесь {x(i1 , i2 )} и {X (k1 , k2 )} – двумерные массивы сигнала и его спектра,
образованные из соответствующих одномерных массивов {x(i)} и { X (k )} с
помощью правила (6.23) преобразования индексов. Теперь, используя
свойство мультипликативности базиса ДЭФ, последнее выражение запишем
так:
X (k1 , k2 ) 
N1 1

i1  0
 N 2i1k1
N
W
 i1k2
N
W
N 2 1

i2  0
x(i1 , i2 )WN N1N2i2k1 WN N1i2k2
и учтем, что
WN N2i1k1  exp[ j (2 N2i1k1 ) /( N1N2 )]  WN1i1 ,k1 ,
WN N1i2k2  exp[ j (2 N1i2k2 ) /( N1 N2 )]  WN2i2 ,k2 ,
WN N1N2i1k1  exp[ j (2 N1 N 2i2 k1 ) /( N1 N 2 )]  1.
382
Тогда
X (k1 , k2 ) 
N1 1

 i1k2
N
[W
i1  0
N 2 1

i2  0
x(i1 , i2 )WN2i2 k2 ]WN1i1k1 ,
(6.24)
k1  0, 1, ..., N1  1; k2  0, 1, ..., N2  1.
Формула (6.24) задает алгоритм БПФ Кули-Тьюки для составного N.
Суть этого алгоритма состоит в том, что сначала одномерный массив сигнала
x(i )
преобразуется в двумерную таблицу x(ii , i2 ) , при этом отсчеты сигнала в
каждой строке таблицы идут не подряд, а через N1 , т.е. прореженными (см. §
2.6). После этого N1 раз выполняется N 2 - точечное ДПФ по строкам таблицы
x(i1 , i2 ) , результаты которых затем умножаются на множители
WN i1k2
(эти
множители называют поворачивающими или фазовыми), а над полученными
произведениями N 2 раз выполняется N1 -точечное ДПФ по столбцам.
Полученная итоговая таблица содержит полный спектр сигнала,
расположенный по строкам таблицы в естественном порядке следования.
Такая модификация БПФ-алгоритма Кули-Тьюки, при которой исходный
сигнал прореживается, а результирующий спектр нет, получила название с
прореживанием по времени (номер отсчета i является аналогом времени).
Если в алгоритме Кули-Тьюки (6.24) поменять между собой правила
преобразования индексов i и k , то отсчеты сигнала в таблице x(i1 , i2 ) будут
следовать по строкам без прореживания, а спектральные коэффициенты в
таблице спектра – с прореживанием. Такая модификация БПФ Кули-Тьюки
называется с прореживанием по частоте
(номер  спектрального
коэффициента соответствует определенной частоте). Поскольку сама
вычислительная процедура алгоритма в обоих случаях одна и та же, то обе
модификации обладают одинаковыми сложностными характеристиками.
По форме записи алгоритм (6.24) Кули-Тьюки для составного N
сложнее прямого алгоритма ДПФ (6.22), но число выполняемых в нем
операций меньше, чем в прямом алгоритме. Для оценки затрат операций и
удобства практического использования алгоритма (6.24) целесообразно
ввести дополнительные обозначения
q(i1 , k2 ) 
N 2 1
 x(i , i )W
i2  0
1
2
 i2 k2
N2
, k2  0, 1, ..., N 2  1,
383
(6.25)
h(i1 , k2 )  q(i1 , k2 )WNi1k2 , i1  0, 1, ..., N1  1
(6.26)
и переписать алгоритм (6.24) в виде
X (k1 , k2 ) 
N1 1
 h(i , k )W
1
i1  0
2
 i1k1
N1
, k1  0, 1, ..., N1  1.
(6.27)
Тогда алгоритм Кули-Тьюки можно представить в виде последовательности
следующих этапов.
1. Вычисление промежуточного массива
q(i1 , k2 ) с
помощью
точечного ДПФ по строкам таблицы x(i1 , i2 ) . Этот массив
N1 -
представляет
собой по сути спектр промежуточных выборок, образованных
прореживанием исходного сигнала и расположенных в строках таблицы
x(i1 , i2 ) . На выполнении этого этапа необходимо M 1  N1 N 22 умножений и
A1  N1 N2 ( N2  1) сложений.
2.
Вычисление
промежуточного
массива
h(i1 , k2 )
путем
 i1k 2
умножений элементов массива q(i1 , k2 ) на константы WN
N1 N 2
. Этот этап
требует выполнения M 2  N1 N2 умножений.
W
-i1k2
N
ДПФ
(N2)
...
{х}
ДПФ
{q}
{h}
...
(N1)
ДПФ
(N1)
ДПФ
(N2)
0
{х}
0
{Х}
N-1
{Х}
N-1
Рис. 6.2. Блок-схема быстрого алгоритма Кули-Тьюки
для составного N
3.
помощью
Вычисление результирующего массива спектра сигнала с
N 2 -кратного
выполнения
384
N1 -точечного
ДПФ по столбцам.
Реализация этого этапа потребует выполнения M 3  N 2 N12 умножений и
A3  N2 N1 ( N1  1) сложений.
Вся процедура алгоритма Кули-Тьюки наглядно иллюстрируется
графически с помощью блок-схемы рис. 6.2.
Общие затраты операций на её реализацию составят
M Б  М1  М 2  M 3  N1 N2 ( N1  N 2  1)  N ( N1  N 2  1),
(6.28)
AБ  A1  A3  N1 N2 ( N1  N 2  2)  N ( N1  N 2  2).
Сравнивая её с прямым алгоритмом, получим следующие значения
коэффициентов выигрыша по операциям:
 M  М П / М Б  N1 N2 /( N1  N 2  1),
 A  AП / AБ  ( N1 N2  1) /( N1  N2  2).
Несложно убедиться, что начиная уже с N  8 , коэффициенты  и  
больше 1 и БПФ Кули-Тьюки приводят к экономии вычислений, которая тем
больше, чем больше N. Следует при этом, однако, иметь в виду, что в общем
случае реализация алгоритма Кули-Тьюки требует N дополнительных ячеек
памяти для хранения промежуточных массивов.
В приведенных зависимостях (6.28) для числа умножений учтены
 i1k 2
умножения на все константы WN
, в том числе и на константы, равные 1
и  j , умножения на которые являются
тривиальными. Исключение
последних уменьшает общее число умножений и позволяет получить так
называемые оптимизированные
БПФ Кули-Тьюки. Правда, при этом
обычно нарушается регулярность алгоритма и
усложняется его
программирование.
Пример 6.11. Записать алгоритм Кули-Тьюки для N  15 .
Решение. В этом случае N1  3 , N 2  5 и i  i1  3i2 , k  5k1  k2 , i1 , k1  0, 1, 2;
i2 , k2  0, 1, 2, 3, 4 . Двумерные массивы x(i1 , i2 ) и X (k1 , k2 ) приведены в табл. 6.1
и 6.2.
Таблица 6.1.
Таблица 6.2.
0
1
2
3
4
2
1
0
х(0)
х(3)
х(6)
х(9)
х(12)
0
1
х(1)
х(4)
х(7)
х(10) х(13)
2
х(2)
х(5)
х(8)
х(11) х(14)
i2
i1
1
2
3
4
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
1
Х(5)
Х(6)
Х(7)
Х(8)
Х(9)
2
Х(10)
Х(11) Х(12) Х(13) Х(14)
385
0
Далее по этапам:
4
Этап 1:
Этап 2:
q(i1 , i2 )   x(i1 , i2 )W5i2k2 .
i2  0
h(i1 , k2 )  q(i1 , k2 )W15 i1k2 .
2
Этап 3:
X (k1 , k2 )   h(i1 , k2 )W3i1k1  X (5k1  k2 ) .
i1  0
Общее число комплексных операций составляет М Б  135, AБ  90 . Если
исключить умножения на тривиальные множители W30  W50  W150  1 , то
получим число умножений, равное М Б  76 . В прямом оптимизированном
алгоритме ДПФ при N  15 М   180, а A  210 . За счет быстрого алгоритма
достигается экономия 104 умножений и 120 сложений комплексных чисел.
_______________ . _______________
Порядок вычислений в алгоритме Кули-Тьюки можно изменить:
сначала выполнить умножения на фазовые множители, а затем – два
последовательных преобразования Фурье. В этом случае
X (k1 , k2 ) 
N1 1 N 2 1
 [  ( x(i , i ) W
i1  0
i2  0
k1  0, 1, ..., N1  1;
1
2
 i1k2
N
)WN2i2 k2 ]WN1i1k1 ,
(6.29)
k2  0, 1, ..., N 2  1.
Очевидно, что такое преобразование алгоритма БПФ не влияет на его
принципиальную сущность и сложность.
Если сомножители N1 и N 2 в N являются составными числами, то БПФалгоритм можно использовать и для вычисления N1 - и N 2 -точечных ДПФ.
Это приведет к новым уровням прореживания выборки входного сигнала и к
рекурсивной процедуре применения БПФ, на каждом шаге которой
образуется дополнительная экономия вычислений. Процесс рекурсивного
прореживания можно продолжать до тех пор, пока сомножители не примут
значения простых чисел. В этом случае будет получена максимальная для
данного N глубина прореживания и максимально возможная эффективность
БПФ-алгоритма Кули-Тьюки. Алгоритм Кули-Тьюки с максимально
возможным числом уровней прореживания (с максимальной глубиной
прореживания) называют еще полным БПФ-алгоритмом.
386
Возрастание эффективности алгоритмов Кули-Тьюки с увеличением
числа сомножителей N делает особенно привлекательным их использование
для обработки выборок, длина которых представляется в виде целой
положительной степени n некоторого целого положительного числа p .
Запись величины N
в виде p
n
отражает её представление в системе
счисления с основанием p , поэтому алгоритмы Кули-Тьюки для таких N
получили название БПФ по основанию p .
БПФ по основанию p могут быть получены из общих алгоритмов
Кули-Тьюки для составных N (6.24) и (6.29), если принять в последних
N1  p, N 2  p n 1 либо N1  p n 1 , N 2  p. Однако для малых значений
p
алгоритмы БПФ можно существенно упростить, отказавшись по сути дела от
многомерных представлений сигнала, и, что самое важное, повысить их
вычислительную эффективность. Рассмотрим эти алгоритмы для обоих
способов прореживания.
Прореживание по времени.
В этом случае на первом уровне
прореживания N –точечная выборка входного сигнала разбивается на p
промежуточных выборок, в каждую 1 -ю из которых x1 (i1 ) включаются
отсчеты
с
номерами
i  pi1  1 ,
1  0, 1, ..., p  1; i1  0, 1, ..., p n 1  1 .
x1 (i1 )  x( pi1  1 ),
т.е.
Тогда искомый спектр X ( k ) сигнала
может быть представлен в виде следующей двойной суммы
p 1 p n1 1
X (k )  
 x( pi   )W
1 0 i1 0
1
1
 ( pi1  1 ) k
pn
p 1 p n1 1
  [  x1 (i1 )Wpni11k ]Wp 1k . (6.30)
1 0
i1 0
При ее записи использовано свойство мультипликативности ДЭФ. Разделим
теперь все спектральные коэффициенты на p последовательных групп так,
что в группу с номером
q1
войдут
составляющие с номерами
k  k1  p n 1q1 , k1  0, 1, ..., p n 1 1 ; q1  0, 1, ..., p 1 . Коэффициенты этих групп
можно вычислить по формуле (6.30)
p 1 p n1 1
X (k1  p n1q1 )   [  x1 (i1 )Wpni11( k1  p
1 0
i1 0
387
n1
q1 )
]Wpn1 ( k1  p
n1
q1 )

(6.31)
p 1
p n1 1
1 0
i1 0
  {[  x1 (i1 )Wpni11k1 ]Wpn1k1 }Wp 1q1 ,
где использованы равенства
W
 i1q1 p n1
p n1
1, W
 1q1 p n1
pn
 Wp 1q1 .
В выражении (6.31) внутренняя сумма является
p n1 -точечным ДПФ
1 -й промежуточной выборки и определяет спектр этой выборки. Если его
обозначить
как X
( 1 )
вычислен с помощью p
(k1 ) , то искомый
n 1
спектр сигнала может быть
ДПФ спектральных коэффициентов
p -точечных
каждой группы, умноженных на соответствующие фазовые множители:
p 1
X (k1  p q1 )   [ X ( 1 ) (k1 )Wpn1k1 ]Wp 1q1 ,
n 1
(6.32)
1  0
X ( 1 ) (k1 ) 
где
p n1 1
x
1
i1  0
(i1 )Wpni11k1 .
(6.33)
Уравнения (6.32) и (6.33) являются аналитическим описанием
алгоритма Кули-Тьюки по основанию p на первом уровне прореживания по
времени. Их можно использовать и для вычисления промежуточного спектра
X ( 1 ) (k1 ) , введя второй уровень прореживания.
На втором уровне промежуточные выборки примут следующий вид:
x1 ,2 (i2 )  x[ p( pi2  2 )  1 ]  x( p2i2  p2  1 ),
где
1  0, 1, ..., p  1; i2  0, 1, ..., p n 2  1 ,
а
промежуточные
спектральные
коэффициенты q2 -й группы первого уровня прореживания в соответствии с
(6.32) представятся следующим образом:
X
( 1 )
( k2  p
n2
q2 ) 
p 1
[X  


( 1,
2 0
2)
(k2 )Wpn12k2 ]Wp 2q2 ,
(6.34)
q2  0, 1, ..., p  1; k2  0, 1, ..., p n  2  1,
где
X ( 1 ,2 ) (k2 ) 
p n2 1

i2 0
388
x 1 ,2 (i2 )Wpni22k2
(6.35)
являются спектром Фурье промежуточных выборок на втором уровне
прореживания. Действуя далее аналогичным образом, на последнем (n  1) -м
уровне прореживания получим
X
( 1 ,2 ,...,n2 )
(kn 1  pq n1 ) 
p 1
[X  


( 1,
2 ,..., n1 )
n1  0
(kn 1 )Wp2n1kn1 ]Wpn1qn1 , (6.36)
qn1  0, 1, ..., p  1; kn1  0, 1, ..., p 1 ,
где
а
X
( 1 , 2 ,..., n1 )
(kn1 ) 
p 1
 x 
in1  0
1,
 in1kn1
(
i
)
W
,
n 1
p
2 ,..., n1
(6.37)
x1 ,2 ,...,n1 (in1 )  x( pn1in1  pn2n1  ...  p2  1 ).
(6.38)
Совокупность уравнений (6.32)÷(6.38) определяет полный алгоритм
БПФ Кули-Тьюки по основанию p с прореживанием по времени. Процесс
вычисления спектра по этому алгоритму должен проводиться в обратном
порядке, начиная с (n  1) -го уровня прореживания и заканчивая 1-м
уровнем, на котором и формируется искомый спектр.
Поскольку в этом алгоритме вычисление результирующего спектра
сводится к многократному выполнению p -точечного ДПФ, то следует
ожидать наибольшую эффективность его применения к тем значениям
основания p , для которых малоточечные ДПФ требуют незначительных
вычислительных затрат. К таким значениям относятся 2 и 4.
Соответствующие им БПФ Кули-Тьюки получили название БПФ по
основанию 2 и основанию 4.
Для основания 2 матрица комплексно-сопряженных значений ДЭФ
имеет простейший вид
1 1 
D2  

1 1
и 2-точечное ДПФ выполняется без умножений с использованием только
одного сложения и одного вычитания. Поэтому алгоритм такого БПФ КулиТьюки упрощается и на первом уровне прореживания выглядит так:
X (k1 )  X (0) (k1 )  X (1) (k1 )WN k1 ,
X (k1  N / 2)  X (0) (k1 )  X (1) (k1 )WN k1 ,
k1  0, 1, ..., ( N / 2)  1,
где
389
(6.39)
N
1
2
N
1
2
i1  0
i1  0
X (0) (k1 )   x0 (i1 )WN/i12k1 , X (1) (k1 )   x1 (i1 )WN/i12k1 ,
(6.40)
а
(6.41)
x0 (i1 )  x(2i1 ), x1 (i1 )  x(2i1  1) .
Блок-граф, соответствующий этому алгоритму, приведен на рис. 6.3.
x(0)
x(2)
.
.
(0)
X (1)
ДПФ
x(3)
X(1)(0) WN0
-1
X(1)(1) WN
ДПФ
_
X(1) ( 2N -1)
.
- 2N_ +1
WN
X(0)
X(1)
.
.
.
X ( _2N -1)
X ( _2N )
X ( _2N +1)
...
...
(N/2)
...
...
.
x(N-1)
.
.
.
.
.
...
_
X(0) ( 2N -1)
x(N-2)
x(1)
...
(N/2)
...
...
.
.
.
.
.
X(0)(0)
.
Х(N-1)
Рис. 6.3. Блок-граф БПФ Кули-Тьюки по основанию 2
на первом уровне прореживания по времени
Из выражений (6.39)÷ (6.41) следует, что при p  2 на первом уровне
прореживания исходная выборка делится на две промежуточные выборки,
включающие соответственно отсчеты сигнала с четными и нечетными
номерами, а спектральные коэффициенты – на две группы, в первую из
которых входит первая половина этих коэффициентов, а во вторую – вторая
половина. Такая же процедура выполняется и на следующих уровнях
прореживания. На произвольном m -м уровне прореживания по времени:
X (1 ,2 ,...,m1 ) (km )  X (1 ,2 ,...,m1 ,0) (km )  X ( 1 ,2 ,...,m1 ,1) (km )W2nkmm1
X (1 ,2 ,...,m1 ) (km  2nm )  X (1 ,2 ,...,m1 ,0) (km )  X ( 1 ,2 ,...,m1 ,1) (km )W2nkmm1 (6.42)
km  0, 1, ..., 2n  m  1;   0,1;   1, 2,..., m  1,
390
где
X ( 1 ,2 ,...,m1 ,0) (km ) 
2nm 1

im  0
X ( 1 ,2 ,...,m1 ,1) (km ) 
а
x1 ,2 ,...,m1 ,0 (im )W2nimmkm ,
2nm 1

im 0
x1 ,2 ,...,m1 ,1 (im )W2nimmkm ,
x1 ,2 ,...,m1 ,0 (im )  x(2m im  2m2 m1  ...  22  1 ),
m1
x1 ,2 ,...,m1 ,1 (im )  x(2 im  2
m
(6.43)
m 2
2
(6.44)
m1  ...  22  1 ).
Если индекс m изменять от 1 до n 1, то можно алгоритм (6.42)-(6.44)
развернуть до полного БПФ-алгоритма. Для организации процесса
вычисления спектра необходимо индекс m менять в обратном направлении от
n 1 до 1. В этом случае соотношения (6.42)–(6.44) зададут вычислительный
процесс полного алгоритма БПФ по основанию 2, который будет иметь
итерационный (рекуррентный) характер. Его начальными данными будут
являться промежуточные выборки на ( n 1)-м уровне прореживания
{x1 ,2 ,...,n2 ,0 (in1 )}  {x(2n1 in1  2n3 n2    22  1 )},
{x1 ,2 ,...,n2 ,1 (in1 )}  {x(2n1in1  2n2  2n3 n2   22  1 )},
а результатом – искомый спектр X (k1 ) и X (k1  N / 2) , получаемый на первом
уровне прореживания.
Графической иллюстрацией полного алгоритма БПФ по основанию 2
будет служить уже не блок-граф, а полный направленный сигнальный граф,
не содержащий элементов блок-схемы. Такой граф в общем случае имеет
прямоугольный вид и содержит (n  1) вертикальных уровней по N узлов в
каждом уровне. Узлы на первом (крайнем слева) уровне используются для
хранения отсчетов сигнала, а узлы на последнем – служат для формирования
значений вычисляемого спектра. Все остальные узлы предназначены для
вычисления промежуточных спектров. Все вычислительные узлы имеют по
два входа и два выхода и по форме изображения напоминают бабочку. Такая
«бабочка» является типовой операцией БПФ по основанию 2.
Проведем оценку вычислительной сложности такого БПФ. Умножения
в нем используются только при умножении промежуточного спектра на
фазовые множители. На каждом m -м уровне прореживания их число равно
391
2nm  2m1  2n1 . Сложения выполняются при вычислении промежуточных
n  m1
 2m1  2n , а также при
спектров и на m -м уровне их число равно 2
вычислении двухточечных ДПФ на (n  1) -м уровне прореживания. Таких
ДПФ 2
n1
и каждое из них требует затрат двух сложений, поэтому общее
n
число сложений, используемых на этой стадии алгоритма, равно 2 .
Поскольку полный алгоритм (6.42) ÷(6.44) имеет n 1 уровней прореживания,
то общее число комплексных операций в БПФ Кули-Тьюки по основанию 2 с
прореживанием по времени составит
M Б  2n 1 (n  1)  N (log 2 N  1) / 2 ,
(6.45)
AБ  2n n  N log 2 N .
В литературе [5, 40] часто встречается другая оценка для числа
умножений, равная
M Б  Nn / 2  ( N log 2 N ) / 2 .
(6.46)
1
Она получается, если учитывать умножения на множители W2  1 при
выполнении двухточечных ДПФ. Таких умножений в алгоритме N / 2 ,
поэтому М Б становится равным Nn / 2 . Программирование и, следовательно,
учет таких умножений может оказаться оправданным только при стремлении
сохранить регулярность (однотипность) вычислительного процесса
алгоритма БПФ на всех уровнях прореживания.
Приведенная в (6.45) оценка числа умножений так же содержит
определенное число умножений на тривиальные фазовые множители 1 и
j,
используемые
при
вычислении
промежуточных
спектров.
Их
исключение позволяет повысить вычислительную эффективность алгоритма,
однако нарушает его регулярность и усложняет программирование. Анализ
алгоритма БПФ по основанию 2 показывает, что на самом первом его шаге
(на (n  1) )-м уровне прореживания) все умножения тривиальны, т.е. имеют
k
вид умножений на (1) , k  0,1; все умножения на следующем шаге так же
k
тривиальны и имеют вид умножений на j для k  0, 1, 2, 3; на последующих
шагах число тривиальных умножений равно N / 4, N / 8, ... . В итоге после их
исключения число комплексных умножений в оптимизированных БПФалгоритмах Кули-Тьюки по основанию 2 равно
392
M Б  ( N / 2)(log 2 N  3)  2 .
(6.47)
Пример 6.12. Записать полный БПФ-алгоритм Кули-Тьюки по
основанию 2 с прореживанием по времени для N  8 , построить
направленный сигнальный граф этого алгоритма и оценить его сложность.
Решение. В этом случае n  3 и полный алгоритм будет содержать два
уровня прореживания (m  1, 2) . В соответствии с общим алгоритмом (6.42)–
(6.44) получаем:
- на втором уровне (m  2; 1  0,1; 2  0,1; i2 , k2  0,1) :
x0,0 (i2 )  x(4i2 )  {x(0), x(4)};
x0,1 (i2 )  x(4i2  2)  {x(2), x(6)};
x1,0 (i2 )  x(4i2  1)  {x(1), x(5)};
x1,1 (i2 )  x(4i2  3)  {x(3), x(7)};
X (0,0) (0)  x0,0 (0)  x0,0 (1)  x(0)  x(4);
X (0,0) (1)  x0,0 (0)  x0,0 (1)  x(0)  x(4);
X (0,1) (0)  x0,1 (0)  x0,1 (1)  x(2)  x(6);
X (0,1) (1)  x0,1 (0)  x0,1 (1)  x(2)  x(6);
X (1,0) (0)  x1,0 (0)  x1,0 (1)  x(1)  x(5);
X (1,0) (1)  x1,0 (0)  x1,0 (1)  x(1)  x(5);
X (1,1) (0)  x1,1 (0)  x1,1 (1)  x(3)  x(7);
X (1,1) (1)  x1,1 (0)  x1,1 (1)  x(3)  x(7);
X (0) (0)  X (0,0) (0)  X (0,1) (0)W40 ;
X (0) (1)  X (0,0) (1)  X (0,1) (1)W41 ;
X (0) (2)  X (0,0) (0)  X (0,1) (0)W40 ;
X (0) (3)  X (0,0) (1)  X (0,1) (1)W41;
X (1) (0)  X (1,0) (0)  X (1,1) (0)W40 ;
X (1) (1)  X (1,0) (1)  X (1,1) (1)W41 ;
X (1) (2)  X (1,0) (0)  X (1,1) (0)W40 ;
X (1) (3)  X (1,0) (1)  X (1,1) (1)W41 ;
- на первом уровне (m  1; k1  0, 1, 2, 3) :
X (0)  X (0) (0)  X (1) (0)W80 ;
X (2)  X (0) (2)  X (1) (2)W82 ;
X (4)  X (0) (0)  X (1) (0)W80 ;
X (6)  X (0) (2)  X (1) (2)W82 ;
X (1)  X (0) (1)  X (1) (1)W81;
X (3)  X (0) (3)  X (1) (3)W83 ;
X (5)  X (0) (1)  X (1) (1)W81 ;
X (7)  X (0) (3)  X (1) (3)W83 .
Граф, соответствующий этому алгоритму, приведен на рис. 6.4.
Непосредственно из него следует, что для реализации алгоритма
необходимо выполнить 8 комплексных умножений и 24 комплексных
сложений. Исключая умножения на константы W40  W80  1 и W82  W41   j , в
оптимизированном варианте алгоритма можно затратить только 2 умножения
на константы W81 и W83 . Эти численные оценки полностью совпадают с
формульными оценками (6.45) и (6.46) при N  8 .
393
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W40
W4-1
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
W80
Х(4)
W8-1
W40
W8-2
W4-1
W8-3
Х(5)
Х(6)
Х(7)
Рис. 6.4. Сигнальный граф полного БПФ Кули-Тьюки по
основанию 2 с прореживанием по времени для N=8
_______________ . _______________
При основании, равном 4, сопряженная матрица значений ДЭФ
1 1 1 1 
1  j 1 j 


D4  
1 1 1 1


1 j 1  j 
содержит только действительные и мнимые единичные элементы и 4точечное ДПФ может быть выполнено без умножений. Поэтому в таком
алгоритме БПФ останутся умножения также только на фазовые множители.
При основании 4 число отсчетов N  4n и на каждом уровне
прореживания выборка разбивается на четыре промежуточных выборки.
Алгоритм такого БПФ на первом уровне прореживания можно получить из
общего алгоритма (6.32), (6.33) при p  4 ,
q1  0, 1, 2, 3; k1  0, 1, ..., 4n 1  1 .
Учитывая при этом значения ДЭФ из матрицы D4 , его можно записать в виде
следующих четырех уравнений:
3
X (k1 )   X ( 1 ) (k1 )W4n 1k1 ,
1  0
3
X (k1  4 )   ( j )1 X ( 1 ) (k1 )W4n 1k1 ,
n 1
1  0
394
3
X (k1  2  4 )   (1)1 X ( 1 ) (k1 )W4n 1k1 ,
n 1
1  0
3
X (k1  3  4 )   j 1 X ( 1 ) (k1 )W4n 1k1 ,
n 1
1  0
где
X
( 1 )
(k1 ) 
4n1 1
 x (i )W
1
i1 0
 i1k1
4n1
1

4n1 1
 x(4i   )W
1
i1 0
 i1k1
4n1
1
, 1  0, 1, 2, 3.
(6.48)
На произвольном m -м уровне прореживания по времени алгоритм БПФ
Кули-Тьюки по основанию 4 принимает следующий вид:
X
X
X
( 1 ,2 , ..., m1 )
( 1 , 2 , ..., m1 )
( 1 ,2 , ..., m1 )
X
(km ) 
( km  4
nm
( km  2  4
( 1 , 2 , ..., m1 )
3


)
m 0
X ( 1 ,2 , ...,m ) (km )W4nmmk1m ,
3
( j )


m
m 0
nm
)
3
( 1) 


m
m 0
(km  3  4
nm
)
X ( 1 , 2 , ..., m ) ( km )W4nmmk1m ,
3
j


m
m 0
X ( 1 ,2 , ...,m ) (km )W4nmmk1m ,
(6.49)
X ( 1 ,2 ,...,m ) (km )W4nmmk1m ,
  0, 1, 2, 3;   1, 2, ..., m 1; km  0, 1, ..., 4 n m 1,
где
X
( 1 ,2 , ..., m )
( km ) 

4nm 1

im 0
4nm 1

im 0
x1 ,2 ,...,m (im )W4nimmkm 
(6.50)
x(4m im  4m1 m  ...  42  1 )W4nimmkm .
Изменяя величину m от n 1 до 1, по рекуррентным уравнениям (6.49)
можно вычислить спектр Фурье сигнала при следующих начальных
значениях:
X
( 1 ,2 , ..., n1 )
(kn1 ) 
3
 x(4
in1  0
n 1
in1  4n2 n1    42  1 )W4in1kn1 ,
(6.51)
  0, 1, 2, 3;   1, 2, ..., n  1; kn1  0, 1, 2, 3.
395
Соотношения (6.49)-(6.51) и определяют БПФ-алгоритм Кули-Тьюки
по основанию 4 с прореживанием по времени.
Оценим вычислительную сложность приведенного алгоритма. Сначала
подсчитаем число комплексных умножений. Если не учитывать умножения
на действительные и мнимые единицы при выполнении 4-точечных ДПФ, то
общее число умножений будет зависеть только от числа умножений на
фазовые множители. В соответствии с алгоритмом (6.49) на каждом m -м
уровне
прореживания
имеем
4m
групп
промежуточных
спектров,
nm
содержащих по 4
спектральных коэффициентов. Каждый из них
умножается на соответствующий фазовый множитель. Поэтому на этом
уровне будет выполнено 4m  4n m  4n  N умножений. Поскольку число
уровней равно n 1, то общее число умножений в алгоритме составит
1
M Б  N (n  1)  N (log 4 N  1)  N ( log 2 N  1).
2
Это число близко к числу умножений для алгоритма по основанию 2.
Его можно сократить, если учесть, что на каждом уровне прореживания
все коэффициенты промежуточного спектра нулевой группы (с m  0 ) и
нулевые спектральные коэффициенты остальных групп умножаются на 1.
Если эти умножения не выполнять, то на m -м уровне потребуется умножить
на фазовые множители только (4m  1)(4nm  1) коэффициентов. Общее число
таких умножений на всех уровнях прореживания будет равно
n 1
2
M Б   (4m  1)(4n  m  1) N (n  1)  ( N  4)  n  1 
3
m 1
(6.52)
1
2
1
 N ( log 2 N  1)  ( N  4)  log 2 N  1.
2
3
2
В этом варианте БПФ по основанию 4 становится эффективнее своего
аналога по основанию 2. Дальнейшая оптимизация алгоритма по основанию
4 может быть выполнена за счет исключения тривиальных умножений на
фазовые множители 1 и  j . В работе [40] подсчитано, что в этом случае
алгоритм по основанию 4 уменьшает число умножений примерно на 25% по
сравнению с оптимизированными алгоритмами по основанию 2.
Подсчитаем теперь число сложений. На каждом уровне их выполняется
3  4  4n 1  3 N . Кроме того 3N сложений выполняется при вычислении
396
начальных значений (6.51). Поэтому общее число сложений в алгоритме по
основанию 4 будет равно
AБ  3N (n  1)  3N  3Nn  3N log 4 N  1,5N log 2 N
и больше, чем в алгоритме по основанию 2.
Можно существенно уменьшить
число сложений, если
модифицировать процедуру вычисления результирующего и промежуточных
спектров. Наиболее просто ее можно записать
на первом уровне
прореживания, для чего введем дополнительные обозначения
Y (1 ) (k1 )  X (1 ) (k1 )W4n 1k1 .
Тогда уравнения (6.47) можно переписать к следующему более экономному
виду:
X (k1 )  [Y (0) (k1 )  Y (2) (k1 )]  [Y (1) (k1 )  Y (3) (k1 )],
X (k1  4n 1 )  [Y (0) (k1 )  Y (2) (k1 )]  j[Y (1) (k1 )  Y (3) (k1 )],
X (k1  2  4n 1 )  [Y (0) (k1 )  Y (2) (k1 )]  [Y (1) (k1 )  Y (3) (k1 )],
X (k1  3  4n 1 )  [Y (0) (k1 )  Y (2) (k1 )]  j[Y (1) (k1 )  Y (3) (k1 )],
где появляются однотипные слагаемые, сокращающие число необходимых
сложений. Аналогичным образом можно представить и уравнения (6.49)
вычисления промежуточных спектров на других уровнях прореживания, и
уравнение (6.51) вычисления начальных значений. В итоге в таком варианте
алгоритма по основанию 4 число сложений станет равным
AБ  2 N (n  1)  2 N  2 Nn  N log 2 N
и совпадет с числом сложений в алгоритме по основанию 2. Число
нетривиальных умножений при этом не меняется, а вот число тривиальных
умножений на j уменьшается.
Пример 6.13. Записать алгоритм БПФ Кули-Тьюки по основанию 4 в
немодифицированном и модифицированном вариантах для N=16.
Решение. В этом случае N  42 и n  2 . Поэтому будет только один
уровень прореживания ( m  1). В немодифицированном алгоритме начальные
значения в соответствии с (6.51) будут равны:
X (0) (0)  x(0)  x(4)  x(8)  x(12); X (0) (1)  x(0)  jx(4)  x(8)  jx(12);
X (0) (2)  x(0)  x(4)  x(8)  x(12); X (0) (3)  x(0)  jx(4)  x(8)  jx(12);
X (1) (0)  x(1)  x(5)  x(9)  x(13); X (1) (1)  x(1)  jx(5)  x(9)  jx(13);
397
X (1) (2)  x(1)  x(5)  x(9)  x(13); X (1) (3)  x(1)  jx(5)  x(9)  jx(13);
X (2) (0)  x(2)  x(6)  x(10)  x(14); X (2) (1)  x(2)  jx(6)  x(10)  jx(14);
X (2) (2)  x(2)  x(6)  x(10)  x(14); X (2) (3)  x(2)  jx(6)  x(10)  jx(14);
X (3) (0)  x(3)  x(7)  x(11)  x(15); X (3) (1)  x(3)  jx(7)  x(11)  jx(15);
X (3) (2)  x(3)  x(7)  x(11)  x(15); X (3) (3)  x(3)  jx(7)  x(11)  jx(15) ,
а результирующий спектр получим по следующим соотношениям:
X (0)  X (0) (0)  X (1) (0)  X (2) (0)  X (3) (0),
X (1)  X (0) (1)  X (1) (1)W161  X (2) (1)W162  X (3) (1)W163 ,
X (2)  X (0) (2)  X (1) (2)W161  X (2) (2)W164  X (3) (2)W166 ,
X (3)  X (0) (3)  X (1) (3)W163  X (2) (3)W166  X (3) (3)W169 ,
X (4)  X (0) (0)  jX (1) (0)  X (2) (0)  jX (3) (0),
X (5)  X (0) (1)  jX (1) (1)W161  X (2) (1)W162  jX (3) (1)W163 ,
X (6)  X (0) (2)  jX (1) (2)W162  X (2) (2)W164  jX (3) (2)W166 ,
X (7)  X (0) (3)  jX (1) (3)W163  X (2) (3)W166  jX (3) (3)W169 ,
X (8)  X (0) (0)  X (1) (0)  X (2) (0)  X (3) (0),
X (9)  X (0) (1)  X (1) (1)W161  X (2) (1)W162  X (3) (1)W163 ,
X (10)  X (0) (2)  X (1) (2)W162  X (2) (2)W164  X (3) (2)W166 ,
X (11)  X (0) (3)  X (1) (3)W163  X (2) (3)W166  X (3) (3)W169 ,
X (12)  X (0) (0)  jX (1) (0)  X (2) (0)  jX (3) (0),
X (13)  X (0) (1)  jX (1) (1)W161  X (2) (1)W162  jX (3) (1)W163 ,
X (14)  X (0) (2)  jX (1) (2)W162  X (2) (2)W164  jX (3) (2)W166 ,
X (15)  X (0) (3)  jX (1) (3)W163  X (2) (3)W166  jX (3) (3)W169 .
Графическое
представление
этого
алгоритма
приводит
к
прямоугольному полному графу, содержащему 3 вертикальных уровня по 16
узлов в каждом. Крайний левый уровень узлов служит для хранения отсчетов
сигнала, а в узлах крайнего правого уровня будут формироваться искомые
спектральные коэффициенты. В каждом вычислительном узле происходит
обработка четырех операндов. «Бабочка» в этом случае будет иметь 4 входа и
4 выхода.
Практическая реализация такого алгоритма потребует выполнения 9
комплексных умножений на фазовые
W169 ,
множители W161 , W162 , W163 , W164 , W166 ,
один из которых W164  W41   j является тривиальным. Если же еще
398
учитывать умножения на множитель j , то общее число комплексных
умножений будет равным 25. Общее число комплексных сложений в этом
алгоритме равно 96.
В модифицированном варианте алгоритма по основанию 4 начальные
значения и результирующий спектр в соответствии с уравнениями (6.51)
будут вычисляться по следующим соотношениям:
X (0) (0)  [ x(0)  x(8)]  [ x(4)  x(12)]; X (0) (1)  [ x(0)  x(8)]  j[ x(4)  x(12)];
X (0) (2)  [ x(0)  x(8)]  [ x(4)  x(12)]; X (0) (3)  [ x(0)  x(8)]  j[ x(4)  x(12)];
X (1) (0)  [ x(1)  x(9)]  [ x(5)  x(13)];
X (1) (1)  [ x(1)  x(9)]  j[ x(5)  x(13)];
X (1) (2)  [ x(1)  x(9)]  [ x(5)  x(13)];
X (1) (3)  [ x(1)  x(9)]  j[ x(5)  x(13)];
X (2) (0)  [ x(2)  x(10)]  [ x(6)  x(14)]; X (2) (1)  [ x(2)  x(10)]  j[ x(6)  x(14)];
X (2) (2)  [ x(2)  x(10)]  [ x(6)  x(14)]; X (2) (3)  [ x(2)  x(10)]  j[ x(6)  x(14)];
X (3) (0)  [ x(3)  x(11)]  [ x(7)  x(15)]; X (3) (1)  [ x(3)  x(11)]  j[ x(7)  x(15)];
X (3) (2)  [ x(3)  x(11)]  [ x(7)  x(15)]; X (3) (3)  [ x(3)  x(11)]  j[ x(7)  x(15)];
Y (0) (0)  X (0) (0); Y (0) (1)  X (0) (1); Y (0) (2)  X (0) (2); Y (0) (3)  X (0) (3);
Y (1) (0)  X (1) (0); Y (1) (1)  X (1) (1)W161 ; Y (1) (2)  X (1) (2)W162 ; Y (1) (3)  X (1) (3)W163 ;
Y (2) (0)  X (2) (0); Y (2) (1)  X (2) (1)W162 ; Y (2) (2)  X (2) (2)W164 ; Y (2) (3)  X (2) (3)W166 ;
Y (3) (0)  X (3) (0); Y (3) (1)  X (3) (1)W163 ; Y (3) (2)  X (3) (2)W166 ; Y (3) (3)  X (3) (3)W169 ;
X (0)  [Y (0) (0)  Y (2) (0)]  [Y (1) (0)  Y (3) (0)]; X (8)  [Y (0) (0)  Y (2) (0)]  [Y (1) (0)  Y (3) (0)];
X (1)  [Y (0) (1)  Y (2) (1)]  [Y (1) (1)  Y (3) (1)];
X (9)  [Y (0) (1)  Y (2) (1)]  [Y (1) (1)  Y (3) (1)];
X (2)  [Y (0) (2)  Y (2) (2)]  [Y (1) (2)  Y (3) (2)]; X (10)  [Y (0) (2)  Y (2) (2)]  [Y (1) (2)  Y (3) (2)];
X (3)  [Y (0) (3)  Y (1) (3)]  [Y (1) (3)  Y (3) (3)];
X (11)  [Y (0) (3)  Y (2) (3)]  [Y (1) (3)  Y (3) (3)];
X (4)  [Y (0) (0)  Y (2) (0)]  j[Y (1) (0)  Y (3) (0)]; X (12)  [Y (0) (0)  Y (2) (0)]  j[Y (1) (0)  Y (3) (0)];
X (5)  [Y (0) (1)  Y (2) (1)]  j[Y (1) (1)  Y (3) (1)];
X (13)  [Y (0) (1)  Y (2) (1)]  j[Y (1) (1)  Y (3) (1)];
X (6)  [Y (0) (2)  Y (2) (2)]  j[Y (1) (2)  Y (3) (2)]; X (14)  [Y (0) (2)  Y (2) (2)]  j[Y (1) (2)  Y (3) (2)];
X (7)  [Y (0) (3)  Y (2) (3)]  j[Y (1) (3)  Y (3) (3)]; X (15)  [Y (0) (3)  Y (2) (3)]  j[Y (1) (3)  Y (3) (3)].
В этом варианте алгоритма число умножений на фазовые множители
остается равным 9, а вот число умножений на константу j уменьшается
вдвое. Число же сложений равно 64. Сигнальный граф этого алгоритма
приведен на рис. 6.5 и содержит 5 вертикальных уровней по 16 узлов. В
каждом вычислительном узле происходит обработка только двух операндов.
399
x(0)
x(8)
x(4)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x(12)
x(1)
x(9)
x(5)
x(13)
x(2)
x(10)
x(6)
x(14)
x(3)
x(11)
x(7)
x(15)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
j
j
j
j
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W16-1
W16-2
W16-3
W16-2
W16-4
W16-6
W16-3
W16-6
W16-9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
j
j
j
j
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(8)
Х(9)
Х(10)
Х(11)
Х(12)
Х(13)
Х(14)
Х(15)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.5. Сигнальный граф полного БПФ Кули-Тьюки
по основанию 4 с прореживанием по времени
для N=16 (модифицированный вариант)
Множители, в том числе и равные мнимой единице, указаны около
соответствующих узлов. По внешнему виду такой граф близок к графу
аналогичного 16-точечного БПФ Кули-Тьюки по основанию 2 (такой граф
легко можно получить путем формального объединения двух графов 8точечного БПФ по основанию 2 рис. 6.4), но содержит меньшее число
умножений и измененный порядок следования искомых спектральных
составляющих.
_______________ . _______________
Основание 3 занимает промежуточное положение между основаниями
2 и 4. Однако БПФ Кули-Тьюки по основанию 3 уступают по эффективности
своим аналогам по этим основаниям. Связано это с тем, что сопряженная
матрица значений ДЭФ для N=3
400
1 
1 1

1
D  1 W3 W32 
1 W32 W31 

3
(6.53)
содержит неединичные элементы W31 и W32 и поэтому вычисление одного 3точечного ДПФ требует выполнения четырех нетривиальных умножений.
Алгоритмы по основанию 3 можно улучшить в вычислительном плане,
если использовать арифметику чисел Эйзенштейна, где общие умножения на
числа W31 и W32 заменяются на сложения и тривиальные умножения [13].
Однако такие алгоритмы становятся более сложными в освоении и требуют
реализации дополнительных этапов перехода от поля комплексных чисел в
поле чисел Эйзенштейна и обратно. Поэтому они не нашли широкого
применения в инженерной практике, где по-прежнему доминируют
алгоритмы с основаниями 2 и 4. Следует отметить, что первые БПФ,
предложенные самими Дж. Кули и Дж. Тьюки, были алгоритмами по
основанию 2.
Прореживание по частоте. При прореживании по частоте в алгоритмах
по малому основанию p на первом уровне прореживания исходная выборка
сигнала разбивается на p соприкасающихся промежуточных выборок
{x(i1  1 p n 1 )}, 1  0, 1, ..., p  1; i1  0, 1, ..., p n 1  1.
С учетом этого искомый спектр
представляется как
p 1 p n1 1
X (k )  
 x(i   p
1
1 0 i1 0
n 1
1
)Wpn(i1 1 p
n1
p 1 p n1 1
)k

 x(i   p
1 0 i1 0
1
n 1
1
)Wpni1k Wp 1k
и для коэффициентов с номерам k  pk1  q1 , q1  0, 1, ..., p  1; k1  0, 1, ..., p n1  1
преобразуется к виду
X ( pk1  q1 ) 
p n1 1
p 1
 {[ x(i   p
i1 0
1
1 0
1
n 1
)W
 1q1
pn
]W
 i1q1
pn
}W
 i1k1
p n1

p n1 1
x
i1 0
( q1 )
(i1 )Wpni11k1 ,
(6.54)
p 1
где
x ( q1 ) (i1 )  [  x(i1  1 p n 1 )Wp 1q1 ]Wpni1q1 .
1  0
(6.55)
ДПФ в виде (6.54), (6.55) представляет собой алгоритм Кули-Тьюки с
прореживанием по частоте. В нем результаты p-точечных ДПФ над
отсчетами промежуточных выборок умножаются на фазовые множители, а
над полученными произведениями выполняются p n1 -точечные ДПФ. В этом
401
случае спектр сигнала не выражается через спектры промежуточных
выборок, но наличие в (6.54) однотипных слагаемых и здесь позволяет
получить экономию вычислений.
Приведенную процедуру можно применить и для вычисления внешних
n 1
p -точечных ДПФ в алгоритме (6.54), введя второй уровень прореживания.
n2
На нем i1  i2  2 p , k2  pk2  q2 (2 , q2  0, 1, ..., p  1; i2 , k2  0, 1, ..., p n 2  1)
p n2 1
X ( p 2 k2  pq2  q1 ) 
и

i2  0
x( q1 ,q2 ) (i2 ),Wpni22k2 ,
p 1
x
где
( q1 , q2 )
(i2 )  [  x( q1 ) (i2  2 p n2 )W p 2q2 ]W pni21q2 .
2  0
Процесс прореживания рекурсивно можно продолжать (n  1) раз,
получая каждый раз дополнительную экономию вычислительных операций.
На последнем (n  1) -м уровне
p 1
n 1
X ( p kn 1  p
x
( q1 , q2 ,..., qn1 )
n2
qn 1  ...  pq2  q1 ) 
(in 1 )  [
p 1
x


( q1 , q2 ,..., qn2 )
n1  0
x
( q1 , q2 ,..., qn1 )
in1  0
(in 1 ),Wpin1kn1 ,
(in 1  n 1 p)Wp n1qn1 ]W p2in1qn1 (6.56)
kn1  0, 1, ..., p 1; q  0, 1, ..., p 1;   1, 2, ..., n 1.
Эти зависимости описывают полный алгоритм БПФ Кули-Тьюки с
прореживанием по частоте. Из них следует, что полный алгоритм
представляется совокупностью только коротких p -точечных ДПФ, поэтому
будет обладать наибольшей вычислительной эффективностью для тех
значений p , для которых
p -точечные
ДПФ выполняются без умножений.
Такими значениями в первую очередь являются 2 и 4.
Для основания 2, используя значения элементов матрицы D2 , запись
БПФ Кули-Тьюки можно существенно упростить. На первом уровне
прореживания по частоте из формул (6.54), (6.55) получаем
X (2k1 ) 
2n1 1
x
i1 0
(0)
 i1k1
2n1
(i1 )W
; X (2k1  1) 
2n1 1
x
i1 0
(1)
(i1 )W2ni11k1 ,
x(0) (i1 )  x(i1 )  x(i1  2n1 ); x(1) (i1 )  [ x(i1 )  x(i1  2n1)]W2n i1 .
(6.57)
(6.58)
Здесь индекс k1 изменяется в пределах от 0 до 2n1  1 . Блок-граф этого
алгоритма приведен на рис. 6.6. Алгоритм (6.57), (6.58) позволяет почти в 2
402
X ( _2N )
х(N-1)
х (1)
.
х(1)(0)
WN-1
х(1)(1)
.
(N/2)
.
.
.
_
х(0) ( 2N -1)
WN0
Х(0)
Х(2)
...
ДПФ
...
.
.
.
...
X ( _2N +1)
.
.
.
(0)
Х(N-2)
ДПФ
Х(1)
Х(3)
...
2
.
.
х(0)(0)
...
х ( _N -1)
...
х(1)
.
.
...
х(0)
.
.
...
раза сократить число комплексных сложений и умножений по сравнению с
прямым ДПФ (6.22).
(N/2)
.
_
х(1) ( 2N -1)
Х(N-1)
- 2N_ +1
WN
Рис. 6.6. Блок-граф БПФ Кули-Тьюки по основанию 2
на первом уровне прореживания по частоте
На произвольном m-м
уровне прореживания по частоте алгоритм
Кули-Тьюки по основанию 2 имеет следующий вид:
X (2m km  2m2 qm1  ...  2q2  q1 ) 
X (2 km  2
m
m 1
2
m2
2nm 1

im 0
qm1  ...  2q2  q1 ) 
x ( q1 ,q2 ,...,qm1 ,0) (im )W2nimmkm ,
2nm 1

im 0
x ( q1 ,q2 ,...,qm1 ,1) (im )W2nimmkm ,
x ( q1 ,q2 ,...,qm1 ,0) (im )  x ( q1 , q2 ,..., qm1 ) (im )  x( q1 , q2 ,..., qm1 ) (im  2n  m ),
x( q1 ,q2 ,...,qm1 ,1) (im )  [ x( q1 ,q2 ,...,qm1 ) (im )  x( q1 ,q2 ,...,qm1 ) (im  2nm )]W2nimm1 .
Здесь индекс
km
принимает значения
0, 1, ..., 2nm  1 . Изменяя
значения переменной m от 1 до n 1, по приведенным соотношениям при
начальных значениях (6.58) можно построить полный алгоритм Кули-Тьюки
по основанию 2 с прореживанием по частоте.
n
Такой алгоритм сводит вычисление 2 -точечного ДПФ к выполнению
совокупности элементарных 2-точечных ДПФ. Аналогичный процесс имеет
403
место в алгоритмах с прореживанием по времени. Поэтому в
вычислительном плане обе эти модификации алгоритма Кули-Тьюки по
основанию 2 будут эквивалентными и, следовательно, для них обеих будут
справедливы все ранее полученные оценки вычислительной сложности.
Отличие этих модификаций состоит только в последовательности обработки
входных данных и в порядке следования результирующего спектра: для
прореживания по времени он естественный, а для прореживания по частоте –
прореженный. Следует, однако, отметить, что в двоичной системе счисления
взаимосоответствие между естественным и прореженным порядками легко
реализуется с помощью двоичной инверсии кодов номеров спектральных
коэффициентов. Поэтому прореженный порядок следования спектра в
алгоритмах с прореживанием по частоте вряд ли можно считать его
большим недостатком. Для задач обработки, в которых порядок следования
спектра не имеет значение, применение обоих типов алгоритмов становится
вообще равноценным.
Геометрически полный алгоритм Кули-Тьюки с прореживанием по
частоте удобно иллюстрировать с помощью полного сигнального графа,
структура которого и в этом случае базируется на двухвходовых «бабочках»
и подобна структуре графа полного алгоритма по основанию 2 с
прореживанием по времени.
Пример 6.14. Записать полный БПФ-алгоритм Кули-Тьюки по
основанию 2 с прореживанием по частоте для N=8. Построить направленный
сигнальный граф этого алгоритма и оценить его сложность.
Решение. Поскольку в этом случае n=3, то полный алгоритм
получается с помощью двух уровней прореживания, т.е. m =1, 2. На первом
уровне прореживания ( m  1; i1  0, 1, 2, 3; q1  0, 1) :
x (0) (i1 )  x(i1 )  x(i1  4);
x (1) (i1 )  [ x(i1 )  x(i1  4)]W8i1 .
На втором уровне (m  2; i2  0,1; k2  0,1; q2  0,1) :
x(0,0) (0)  x(0) (0)  x(0) (2); x(0,0) (1)  x(0) (1)  x(0) (3);
x(1,0) (0)  x(1) (0)  x(1) (2); x(1,0) (1)  x(1) (1)  x(1) (3);
x (0,1) (0)  x (0) (0)  x (0) (2); x (0,1) (1)  [ x (0) (1)  x (0) (3)]W41 ;
x (1,1) (0)  x (1) (0)  x (1) (2); x (1,1) (1)  [ x (1) (1)  x (1) (3)]W41
и результирующий спектр равен:
404
X (0)  x(0,0) (0)  x(0,0) (1); X (4)  x(0,0) (0)  x(0,0) (1);
X (2)  x(0,1) (0)  x(0,1) (1); X (6)  x(0,1) (0)  x(0,1) (1);
X (1)  x(1,0) (0)  x(1,0) (1); X (5)  x(1,0) (0)  x(1,0) (1);
X (3)  x(1,1) (0)  x(1,1) (1); X (7)  x(1,1) (0)  x(1,1) (1).
Сигнальный граф, соответствующий этому алгоритму приведен на рис.
6.7. Он подобен соответствующему графу алгоритма с прореживанием по
времени, представленному на рис. 6.4, и имеет такое же количество операций
умножения и сложения. Различаются графы только порядком следования
отсчетов входного сигнала и коэффициентов результирующего спектра.
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(4)
Х(2)
W40
Х(6)
W4-1
W80
W8-1
Х(1)
Х(5)
Х(3)
W4-1
W40
W8-3
W4-1
Х(7)
Рис. 6.7. Сигнальный граф полного БПФ Кули-Тьюки по
основанию 2 с прореживанием по частоте для N=8
Соответствие между естественным и прореженным порядками
изменения индексов реализуется с помощью двоичной инверсии двоичного
кода индекса, что иллюстрируется табл. 6.3.
Таблица 6.3.
Естественный
порядок
Прореженный
порядок
десят.
0
1
2
3
4
5
6
7
двоич.
000
001
010
011
100
101
110
111
двоич.
000
100
010
110
001
101
011
111
десят.
0
4
2
6
1
5
3
7
_______________ . _______________
В полном алгоритме БПФ по основанию 4 с прореживанием по частоте
n 1
X (4 kn 1  4
n2
qn 1  ...  4q2  q1 ) 
3
x
in1  0
405
( q1 , q2 ,..., qn1 )
(in 1 )W4in1kn1 ,
(6.59)
kn1  0, 1, 2, 3; q  0, 1, 2, 3;   1, 2, ..., n  1 ,
( q1 , q2 ,..., qn1 )
где величины x
рекуррентного уравнения
(in 1 ) находятся последовательным решением
3
x
( q1 , q2 ,..., qm )
(im )  [  x( q1 ,q2 ,...,qm1 ) (im  m 4n m )W4 mqm ]W4nimmq1m ,
m  0
(6.60)
m  2, 3, ..., n  1
при начальных значениях
3
x
( q1 )
(i1 )  [  x(i1  1 4n 1 )W4 1q1 ]W4n i1q1 ,
1  0
q1  0, 1, 2, 3; i1  0, 1, ..., 4n 1  1.
Используя значения элементов матрицы
D4 ,
суммы в приведенных
уравнениях можно записать в экономной форме, подобной той, что была
использована в алгоритмах с прореживанием по времени. Например,
начальные значения можно вычислить по следующим зависимостям:
x (0) (i1 )  [ x(i1 )  x(i1  2  4n 1 )]  [ x(i1  4 n 1 )  x(i1  3  4 n 1 )],
x(2) (i1 )  {[ x(i1 )  x(i1  2  4n1)] [ x(i1  4 n1)  x(i1  3  4 n1)]}W4n2i1 ,
x(1) (i1 )  {[ x(i1 )  x(i1  2  4n1 )]  j[ x(i1  4n1 )  x(i1  3  4n1 )]}W4n i1 ,
x(3) (i1 )  {[ x(i1 )  x(i1  2  4n1 )]  j[ x(i1  4n1 )  x(i1  3  4n1)]}W4n3i1 .
К аналогичному виду можно привести и уравнения (6.59) и (6.60). В
такой модификации алгоритма существенно уменьшается число сложений и
БПФ по основанию 4 с прореживанием по времени и частоте, обладая
одинаковыми сложностными показателями между собой, превосходят БПФ
по основанию 2 по числу нетривиальных умножений.
Пример 6.15. Записать полный БПФ-алгоритм Кули-Тьюки по частоте
для N=16.
Решение. Так как 16  42 , то n  2 и алгоритм будет содержать один
уровень прореживания. Поэтому в соответствии с общими уравнения
(6.59)÷(6.60) получим
3
X (4k1  q1 )   x ( q1 ) (i1 )W4i1k1 , q1  0, 1, 2, 3; k1  0, 1, 2, 3,
i1  0
3
где
x
( q1 )
(i1 )  [  x(i1  41 )W4 1q1 ]W16i1q1 .
1  0
406
В модифицированном варианте эти уравнения принимают следующий
вид записи:
X (q1 )  [ x ( q1 ) (0)  x ( q1 ) (2)]  [ x ( q1 ) (1)  x ( q1 ) (3)],
X (q1  4)  [ x ( q1 ) (0)  x ( q1 ) (2)]  j[ x ( q1 ) (1)  x ( q1 ) (3)],
X (q1  8)  [ x ( q1 ) (0)  x ( q1 ) (2)]  [ x ( q1 ) (1)  x ( q1 ) (3)],
X (q1  12)  [ x ( q1 ) (0)  x ( q1 ) (2)]  j[ x ( q1 ) (1)  x ( q1 ) (3)],
где
x (0) (i1 )  [ x(i1 )  x(i1  8)]  [ x(i1  4)  x(i1  12)],
x (1) (i1 )  {[ x(i1 )  x(i1  8)]  j[ x(i1  4)  x(i1  12)]}W16i1 ,
x (2) (i1 )  {[ x(i1 )  x(i1  8)]  [ x(i1  4)  x(i1  12)]}W162i1 ,
x (3) (i1 )  {[ x(i1 )  x(i1  8)]  j[ x(i1  4)  x(i1  12)]}W163i1 .
х(0)
х(1)
х(2)
х(3)
х(4)
х(5)
х(6)
х(7)
х(8)
х(9)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
х(10)
х(11)
х(12)
х(13)
х(14)
х(15)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
j
j
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
W16-2
W16-4
W16-6
W16-3
W16-6
W16-9
W16-1
j
W16-2
j
W16-3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
j
j
j
j
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(8)
Х(12)
Х(4)
Х(2)
Х(10)
Х(14)
Х(6)
Х(3)
Х(11)
Х(15)
Х(7)
Х(1)
Х(9)
Х(13)
Х(5)
Рис. 6.8. Сигнальный граф полного БПФ Кули-Тьюки
по основанию 4 с прореживанием по частоте
для N=16
407
Сигнальный граф этого алгоритма приведен на рис. 6.8. Его структура
близка к структуре графа алгоритма по основанию 4 с прореживанием по
времени, приведенного на рис. 6.5, и отличается только порядком обработки
входных отсчетов и получения выходного результата. Реализация этих
графов требует одинаковых затрат вычислительных операций.
_______________ . _______________
В основе алгоритмов Кули-Тьюки лежит многомерное представление
одномерного ДПФ, использующее разложение одномерного индекса в
составной системе счисления. Однако, как мы знаем из §2.6, существует и
другой способ преобразования одномерного массива в многомерный на
основе китайской теоремы об остатках для индексов. Применение этого
способа приводит к другому виду БПФ, получивших название быстрых
алгоритмов Гуда-Томаса или алгоритмов простых множителей [40].
Пусть N представляется в виде произведения взаимнопростых чисел N1
и N 2 , т.е. N  N1 N2 , где ( N1 , N2 )  1 . Запишем индекс i в ДПФ (6.22) в
двумерном виде по КТО для индексов
i  N2T1i1  N1T2i2
(mod N ),
i1  0, 1, ..., N1  1; i2  0, 1, ..., N1  1,
где
N2T1  1 (mod N1 ), N1T2  1 (mod N2 ),
(6.61)
а индекс k ‒ по КТО с перестановкой (см. §2.6)
k  N2 k1  N1k2
(mod N ),
k1  0, 1, ..., N1  1; k2  0,1,..., N2  1.
Тогда
X ( N 2 k1  N1k2 )  X (k1 , k2 ) 

N1 1 N 2 1
N1 1 N 2 1
  x( N T i  N T i )W
i1  0 i20
  x(i , i )W
i1  0 i20
1
2
2 11
1 2 2
 ( N 2T1i1  N1T2i2 )( N 2 k1  N1k2 )
N

 N 2 N 2T1i1k1
N
WN N1N2T2i2 k1WN N2 N1T1i1k2WN N1N1T2i2 k2 .
В этом выражении сомножители
WN N1N2T2i2 k1  W1T2i2k1  exp( j 2 T2i2 k1 )  1,
WN N2 N1T1i1k2  W1T1i1k2  exp( j 2 T1i1k2 )  1,
поскольку обратные элементы
сомножители
T1 и T2
являются целыми числами, а
WN N2 N2T1i1k1  WN1N2T1i1k1 ; WN N1N1T2i2k2  WN2N1T2i2k2 .
408
Учитывая условия (6.61) для обратных элементов, их можно упростить:
WN1N2T1i1k1  WN1i1k1 (mod N1 ); WN N T i k  WNi k
1 22 2
(mod N2 ).
2 2
2
2
Поэтому в окончательном виде получаем:
X (k1 , k2 ) 
N1 1 N 2 1
 [  x(i , i )W
i1  0
1
2
 i2 k2
N2
 i1k1
N1
]W
i20

N1 1
 q(i , k )W
1
i1  0
 i1k1
N1
2
.
(6.62)
Эти уравнения и определяют БПФ-алгоритм Гуда-Томаса для N  N1 N2 .
В соответствии с ним для определения частотного спектра необходимо
сначала N1 раз выполнить N 2 -точечное ДПФ по строкам двумерной таблицы
x(i1 , i2 ) , получив при этом промежуточный массив q(i1 , k2 ) , а затем - N 2 раза
N1 -точечное ДПФ по столбцам такого массива. Структурная схема этого
алгоритма приведена на рис. 6.9.
ДПФ
(N2)
...
{х}
{q}
ДПФ
(N1)
...
ДПФ
ДПФ
0
(N1)
(N2)
{х}
N-1
0
{Х}
N-1
{Х}
Рис. 6.9. Блок-схема быстрого алгоритма Гуда-Томаса
для N=N 1 N 2
Очевидно, что общие вычислительные затраты в неоптимизированном
варианте этого алгоритма составят
M Б  N1 N 22  N 2 N12  N1 N 2 ( N1  N 2 ),
409
AБ  N1 N2 ( N2  1)  N2 N1 ( N1  1)  N1 N2 ( N1  N 2  2)
и меньше соответствующих затрат как при прямой реализации N-точечного
ДПФ (6.22), так и при его реализации с помощью БПФ-алгоритма КулиТьюки для составного N. Последнее связано с тем, что в алгоритме ГудаТомаса отсутствуют умножения на фазовые множители.
Алгоритм Гуда-Томаса не изменится, если в выражении (6.62)
поменять местами суммы по индексам i1 и i2 , т.е. обработку выполнять
сначала по столбцам, а затем по строкам двумерных массивов.
Пример 6.16. Записать алгоритм Гуда-Томаса для N=15.
Решение. В этом случае N1  3 , а N 2  5 . Поэтому
i  5T1i1  3T2i2 (mod15),
k  5k1  3k2 (mod15), i1 , k1  0, 1, 2; i2 , k2  0, 1, 2, 3, 4 .Обратные элементы находятся
из решения сравнений
5T1  1 (mod 3), 3T2  1 (mod 5)
и принимают одинаковые значения T1  2, T2  2. В соответствии с этим индекс
i  10i1  6i2 (mod 15). В табл. 6.4 и 6.5 приведены номера отсчетов сигнала x(i )
и его спектра X ( k ) , образующие двумерные массивы x(i1 , i2 ) и X (k1 , k2 ).
Таблица 6.4.
i2
i1
0
1
2
Таблица 6.5.
0
1
2
3
4
2
1
0
10
5
6
1
11
12
7
2
3
13
8
9
4
14
0
1
2
0
1
2
3
4
0
5
10
3
8
13
6
11
1
9
14
4
12
2
7
Далее
4
q(i1 , k2 )   x(i1 , i2 )W5i2k2 ,
i2  0
2
а
X (k1 , k2 )  X (5k1  3k2 )   q(i1 , k2 )W3i1k1 .
i1  0
В неоптимизированном варианте этот алгоритм имеет M Б  120 и AБ  90 .
Исключая умножения на 1, получим оптимизированный вариант с M Б  68 .
По сравнению с алгоритмом Кули-Тьюки примера 6.11 в этом случае
экономятся 8 комплексных умножений.
_______________ . _______________
410
Если
сомножители
N1
и
N2
числа
также
N
выражаются
произведениями взаимно-простых чисел, то БПФ-алгоритм Гуда-Томаса
можно применить и для вычисления N1  и N 2  точечных ДПФ, получая при
этом дополнительный выигрыш по числу операций.
Перейдем теперь ко второму подходу к синтезу алгоритмов БПФ.
Поскольку он основывается на алгоритме Рейдера сведения ДПФ к
циклической корреляции или свертке, то рассмотрим сначала сам алгоритм
Рейдера, разработанный им для случая представления числа отсчетов N в
виде простого нечетного числа p [36].
Для него
p 1
X (k )   x(i )W p ki .
i 0
Нулевой коэффициент X (0) вычисляется простым суммированием отсчетов
p 1
X (0)   x(i ),
i 0
а для остальных значений k можно записать
p 1
X (k )  x(0)   x(i)W p ki , k  0.
(6.63)
i 1
В этом выражении индексы k и i определены по модулю p . В §2.6
отмечалось, что если m принадлежит множеству целых 0, 1, 2, ..., p  2 , то
всегда существует первообразные корни g , определенные по модулю p
такие, что g m (mod p) пробегает все значения 1, 2, ..., p  1 тогда, как m
пробегает все значения 0, 1, 2, ..., p  2 . Следовательно индексы i и k , не
равные 0, в (6.63) можно заменить на индексы  и  такие, что
i  g  (mod p); k  g  (mod p); ,   0, 1, ..., p  2.
При этих условиях выражение (6.63) преобразуется к виду
p2
X ( g )  x(0)   x( g  )W p g

 
,
 0
откуда следует, что разность X ( g  )  x(0) вычисляется как
(6.64)
циклическая
корреляция переупорядоченной последовательности x( g  ) отсчетов сигнала с
g
решетчатой функцией W p

.
411
Пример 6.17. Записать корреляционный алгоритм Рейдера для p  5 .
Решение. Для p  5 первообразный корень g  3 (см. пример 2.24).
Поэтому
3
X (3 (mod 5))  x(0)   x(3 (mod 5))W53 .

 
 0
Используя значения   0, 1, 2, 3, получим все спектральные коэффициенты,
коме X (0). Например, при   1 коэффициент
X (3)  x(0)  x(1)W53  x(3)W54  x(4)W52  x(2)W51
и совпадает с его значением, полученным прямым вычислением по матрице
значений ДЭФ D для N  5 .
_______________ . _______________
Алгоритм Рейдера (6.64), использующий корреляцию, можно с
помощью дополнительного переупорядочения отсчетов, преобразовать к
виду, содержащему циклическую свертку
p 2
X ( g )  x(0)   x( g )W


 0
 g  
p
p 2
 x(0)   x( g p 1 )W p g
 
 0
.
(6.65)
Пример 6.18. Записать алгоритм Рейдера в виде свертки для p  5 .
Решение. Поскольку g  3 , то
3
X (3 (mod 5))  x(0)   x(34 (mod 5))W53 .

 
 0
Принимая   0, 1, 2, 3, найдем коэффициенты X (1) ÷ X (4) , если учтем, что
обратные значения равны
31  2 (mod 5); 32  4 (mod 5); 33  3 (mod 5).
Опять же, например, при   1 получим коэффициент
X (3)  x(0)  x(1)W53  x(2)W51  x(4)W52  x(3)W54 ,
содержащий те же составляющие, что и в предыдущем примере, но в другом
порядке следования.
_______________ . _______________
Алгоритм Рейдера (6.65) можно представить и в такой эквивалентной
форме записи:
p2
X ( g )  X (0)   (W p g

 1
 1)x( g p 1 ),
 0
в которой также присутствует p  1 -точечная циклическая свертка.
412
(6.66)
Алгоритм Рейдера можно распространить и на случай составных
значений N  p n , где p ‒ простое число, n – любое целое положительное
число. Здесь возможны два варианта: 1) p ‒ простое нечетное число и
2) p =2, которые следует рассмотреть раздельно.
При
в виде простого нечетного числа всегда существуют
p
n
n 1
первообразные корни g по модулю p порядка p ( p  1) (см. § 2.6).
n
Следовательно, можно предположить, что p -точечное ДПФ представляется
в
виде
p n1 ( p  1) -точечной свертки и некоторых
циклической
дополнительных выражений. Чтобы доказать это, проведем замену индексов
k  pk1  k2 , k1  0, 1, ..., p n 1  1; k2  0, 1, ..., p  1.
Тогда для k2  0 величина k станет сравнимой с нулем по модулю p и
коэффициент X ( k ) примет вид
X ( pk1 ) 
p n 1
 x(i)W
i 0
 pik1
pn

p n 1
 x(i)W
i 0
 ik1
p n1
.
W pnik11 индекс i определяется по модулю p n1 , его можно
Поскольку в
записать в виде
i  p n 1i1  i2 , i1  0, 1, ..., p  1; i2  0, 1, ..., p n 1  1.
В итоге, при k2  0 выражение для X ( k ) принимает вид p n1 - точечного ДПФ
X ( pk1 ) 
p n1 1 p 1
 [ x( p
i2 0
ii  i2 )]Wpni21k1 .
n 1
i1 0
(6.67)
Для значений k , несравнимых с нулем по модулю p , спектральные
коэффициенты можно представить в виде суммы двух слагаемых
X (k )  A(k )  B(k ),
первая A(k ) из которых образуется путем суммирования составляющих со
значениями индекса i , сравнимыми с 0 по модулю p , а вторая B (k ) ‒
несравнимыми с 0 по тому же модулю, т.е.
A(k )   x(i )W pnik ,
i
‒ сравнимо с 0 по модулю p ,
i
‒ несравнимо с 0 по модулю p .
i
B (k )   x(i )W pnik
i
413
Рассмотрим
первое
i  0 (mod p) i  pi, i1  0, 1, ..., p n 1  1 .
слагаемое.
Для
При k , несравнимом с нулем по модулю p
, индекс k можно представить в виде
k  p n 1k1  k2 ,
k1  0, 1, ..., p  1;
k2  1, 2, ..., p n 1  1,
Поэтому
A( p n1k1  k2 ) 
p n1 1
 x( pi )W
i1 0
1
k2
 pi1k2
pn

0 (mod p).
p n1 1
 x( pi )W
i1 0
1
 i1k2
p n1
.
(6.68)
Выражения справа от знака равенства в (6.68) не зависят от k1 , поэтому A(k )
является p
n 1
-точечным ДПФ, в котором выходные отсчеты с номерами,
соответствующими условию k2  0 (mod p) , не вычисляются.
Для второго слагаемого оба индекса i и k несравнимы с 0 по модулю p .
n 1
Поэтому последовательность B (k ) имеет длину p ( p  1) и ik
0 (mod p).
Следовательно, здесь индексы i и k могут быть представлены с помощью
n
первообразного корня g , определенного по модулю p :
i  g  (mod p n ), k  g  (mod p n ),  ,   0, 1, ..., p n1 ( p  1)  1.
Подставляя эти индексы в выражение для B (k ) , получим p n1 ( p  1) -точечную
корреляцию
B( g  ) 
p n1 ( p 1) 1


0
x( g  )W png
 
,
(6.69)
n 1
которую легко можно преобразовать в p ( p  1) -точечную циклическую
свертку.
n
n 1
Таким образом, p -точечное ДПФ представляется в виде двух p n 1
точечных ДПФ и одной p ( p  1) -точечной
корреляции или свертки.
Очевидно, что описанную процедуру можно рекурсивно использовать для
n 1
преобразования в корреляцию (свертку) и p -точечные ДПФ.
Пример 6.19. Записать алгоритм Рейдера для N  9 .
Решение. В этом случае p  3 и n  2 . Поэтому из всех номеров k ,
равных {0, 1, 2, 3, 4, 5, 6, 7, 8}, отберем номера {0, 3, 6}, сравнимые с 0 по
модулю 3. Для них по формуле (6.67) найдем коэффициенты
414
X (0)  [ x(0)  x(3)  x(6)]  [ x(1)  x(4)  x(7)]  [ x(2)  x(5)  x(8)],
X (3)  [ x(0)  x(3)  x(6)]  [ x(1)  x(4)  x(7)]W31  [ x(2)  x(5)  x(8)]W92 ,
X (6)  [ x(0)  x(3)  x(6)]  [ x(1)  x(4)  x(7)]W32  [ x(2)  x(5)  x(8)]W91.
Для оставшихся номеров {1, 2, 4, 5, 7, 8} в соответствии с формулами (6.68) и
(6.69) запишем величины A(k ) и B (k ) , учитывая, что первообразным корнем
по модулю 9 порядка 6 будет число 2, т.е.
i  2 (mod 9); k  2 (mod 9);  ,   0, 1, 2, 3, 4, 5.
В результате получим
2
2
A(1  3k1 )   x(3i1 )W ; A(2  3k1 )   x(3i1 )W32i1 ; k1  0, 1, 2;
 i1
3
i1  0
5
i1  0
В(2 )   x(2 )W92 ,  ,   0, 1, 2, 3, 4, 5.

 
 0
Суммируя
одноименные
составляющие
A(k )
и
B(k ) ,
найдем
оставшийся спектр сигнала. Результаты таких расчетов совпадают с
результатами прямого вычисления спектра по формуле (6.22) при N  9 .
_______________ . _______________
Если p  2 , т.е. N
равно степени 2, то N-точечное ДПФ тем же
способом расчленяется на два ДПФ размера N/2 отсчетов. ПервоеДПФ будет
соответствовать четным значениям индексов i и k , а второе – нечетным.
ДПФ, соответствующее нечетным значениям i и k , сводится к корреляции
(свертке). Поскольку при N  4 не существует первообразных корней, то
процедура преобразования ДПФ в cвертку в этом случае иная.
Для её пояснения исключим из матрицы D* значений ДЭФ все строки
и столбцы с четными номерами. Оставшуюся матрицу назовем усеченной и

обозначим как D . Путем соответствующей перестановки её строк и
столбцов эту матрицу можно преобразовать к симметричному виду
 D* D2* 

,
D   1
*
D
D
 2
1
(6.70)
n2
n2
где D1 и D2 представляют собой матрицы размера 2  2 , каждая из
которых задает структуру циклической свертки.
В этом случае ДПФ для нечетных i и k можно записать в следующем
матричном виде
415
 X1   D1
X    
 2   D2
D2   x1 
 ,
D1   x2 
(6.71)
представляющем по сути запись матричной 2-точечной
циклической
свертки. Один из способов её вычисления задается формулой [5]

0
 X1  1 1 0,5( D1  D2 )

 X   1  1 
0
0,5( D1  D2 ) 

 2 
1 1  x1 
1  1  x  .

 2
Этим задача сводится к вычислению двух комплексных циклических сверток
n 2
длины 2 .
Теперь остается только описать способ перестановки строк и столбцов
усеченной матрицы. Если g  3 , а   2n  1 , то множество нечетных чисел i и
k относительно умножения по модулю
2 n будет порождаться
g
и  так,
что каждый элемент этого множества может быть однозначно представлен
либо в виде
 i g i (mod 2n ) ,
1
2
либо в виде
 k g k (mod 2n ) ,
1
2
где
i1 , k1  0,1; i2 , k2  0, 1, ..., 2n  2  1 . Если для индекса i использовать первое
представление, а для индекса k ‒ второе, то каждый элемент WNik матрицы

D будет равен
 ik
N
W
  i1 g  i2 k1 g k2
N
W

N
W
k1i
1
g k2 i2
,
а сама матрица примет следующую блочную структуру:
 W  g k2 i2  W  g k2 i2  

 N
  N


D 
.
   g k2 i2    2 g k2 i2  
W
 WN
  N
 
Учитывая, что  2  1 (mod 2n ) , из нее получим симметричную структуру вида
(6.70).
Пример 6.20. Записать алгоритм Рейдера для N = 8.
Решение. Из матрицы ДЭФ для N=8 исключим строки и столбцы с
четными номерами. В результате останется усеченная матрица
W81
 3

W
D   85
W8
 7
W8
W83 W85 W87 

W81 W87 W85 
.
W87 W81 W83 

W85 W83 W81 
Используя перестановки
416
i  7 i1  3i2 , k  7 k1  3k2 , i1 , k1  0, 1; i2 , k2  0, 1,
из нее получим матрицу следующего вида
 W81
  3
 W8
 W87
  5
 W8
W83  W87 W85  
 

W81  W85 W87  
.
W85  W81 W83  
 

W87  W83 W81  
В ней квадратными скобками выделены блоки, соответствующие матрицам
D1 и D2 .
Матричное уравнение ДПФ (6.71) в этом случае
следующим образом:
 X (1)   D1
 X (3)  

 
 X (7)  

  
 X (5)   D2
D2 




D1 
записывается
 x(1) 
 x(3) 

,
 x(7) 


 x(5) 
Его решение можно организовать в виде пары цикличеких сверток.
Из приведенного примера следует еще одно интересное свойство
переупорядоченной усеченной матрицы: её блоки являются комплксносопряженными матрицами, т.е. D1  D2 и D2  D1 . Это свойство выполняется
для любых двоично-рациональных N и может быть использовано при
решении матричного уравнения (6.71).
_______________ . _______________
Если в алгоритмах Рейдера свертки вычислять по прямым алгоритмам,
то их применение не принесет никакого выигрыша по операциям. Если же в
структуру алгоритмов Рейдера включить быстрые алгоритмы вычисления
сверток, то будут получены процедуры БПФ-алгоритмов, отличающихся от
алгоритмов Кули-Тьюки и Гуда-Томаса.
Наибольшую эффективность новых БПФ-алгоритмов удается получить
за счет применения в алгоритмах Рейдера быстрых алгоритмов Винограда
вычисления циклических сверток. Поскольку существуют алгоритмы
Винограда для вычисления коротких и длинных сверток, то и получаемые на
их основе БПФ-алгоритмы
делятся соответственно на алгоритмы
малоточечных и многоточечных ДПФ.
В алгоритмах Винограда малоточечных ДПФ алгоритм Рейдера
используется в сочетании с алгоритмом Винограда вычисления коротких
417
сверток. Эти алгоритмы могут быть использованы при представлении числа
отсчетов в виде простого числа, степени простого нечетного числа и степени
двойки. Наиболее используемыми являются значения N, равные 2, 3, 4, 5, 7,
8, 9 и 16.
Свертки, получающиеся в алгоритме Рейдера, вычисляются по
алгоритму Винограда так, как было описано в предыдущем параграфе.
Однако, поскольку в данном случае последовательность коэффициентов WN g ,
i
участвующая в свертке, обладает некоторыми специфическими
особенностями, то в вычислениях возможны дополнительные упрощения.
Рассмотрим случай p -точечного ДПФ, где p - простое нечетное число.
Оно по алгоритму Рейдера сводится к p  1 -точечной свертке, которая по
алгоритму Винограда реализуется в виде произведения полиномов по
p 1
модулю z  1 . Однако p  1 является четным числом, поэтому
z p 1  1  ( z ( p 1) / 2  1)( z ( p 1) / 2  1)
и в алгоритме Винограда возникают приведения полиномов по модулям
z ( p 1) / 2  1 и z ( p 1) / 2  1 .
( p 1) / 2
 1 (mod p) и
С другой стороны g
Wp g
i ( p 1) / 2
 Wpg  cos(2 g i / p)  j sin(2 g i / p) .
i
Это предполагает четную симметрию относительно середины интервала
определения вещественных коэффициентов и нечетную симметрию – для
мнимых коэффициентов и приводит к тому, что при приведении полинома
p2
W ( z )   W p g z i
i
i 0
( p 1) / 2
 1 полиномы-остатки будут содержать
1 и z
по модулям z
только действительные или чисто мнимые коэффициенты.
( p 1) / 2
n
При N  p , p ‒ нечетное простое, также возможны дополнительные
упрощения при реализации алгоритма Винограда. В табл. 6.6 приведены
вычислительные характеристики алгоритмов Винограда вычисления
малоточечных ДПФ для наиболее популярных значений N [40]. В графе для
числа умножении без скобок указано количество нетривальных умножений,
а в скобках – количество полных умножений, включая умножения на 1 и
j.
418
Таблица 6.6
Длина после- Число
довательности умножений
N
МБ
2
3
4
5
Число
сложений
АБ
0(2)
2(3)
0(4)
5(6)
Длина последовательности
N
2
6
8
17
Число
умножений
МБ
7
8
9
16
8(9)
2(8)
10(11)
10(18)
Число
сложений
АБ
36
26
44
74
Пример 6.21. Записать алгоритм Винограда для вычисления 5точечного ДПФ.
Решение. В соответствии с результатами примере 6.18 алгоритм
Рейдера в этом случае имеет вид 4-точечной цлической свертки
3
X (3 )  x(0)   x(34 )W53 ,   0, 1, 2, 3,

 
 0
которая по алгоритму Винограда может быть вычислена с помощью
произведения полиномов по модулю z 4  1 :
Y ( z )  X ( z )W ( z ) (mod( z 4  1)) ,
где
X ( z )  x(1)  x(2) z  x(4) z 2  x(3) z 3 ,
W ( z )  W51  W52 z  W54 z 2  W53 z 3 ,
Y ( z )  [ X (1)  x(0)]  [ X (2)  x(0)]z  [ X (4)  x(0)]z 2  [ X (3)  x(0)]z 3.
Модуль z 4  1 раскладывается на три циклотомических полином M1 ( z )  z  1,
M 2 ( z)  z  1
и
M 4 ( z)  z 2  1
(см.
предыдущий
параграф).
Поэтому
полиномиальные вычеты будут равны:
X1 ( z )  x(1)  x(2)  x(4)  x(3)  a1 ,
X 2 ( z )  x(1)  x(2)  x(4)  x(3)  a2 ,
X 4 ( z )  [ x(1)  x(4)]  [ x(2)  x(3)]z  a3  a4 z,
W1 ( z )  W51  W52  W54  W53  b1 ,
W2 ( z )  W51  W52  W54  W63  b2 ,
W4 ( z )  (W51  W54 )  (W52  W53 ) z  b3  b4 z.
Вычеты полинома W ( z ) можно упростить, если учесть свойство симметрии
его коэффициентов. Поскольку W54  W51 , а W53  W52 , то
b1  W51  W52  W51  W52  2(cos   cos 2 ),
419
b2  W51  W52  W51  W52  2(cos   cos 2 ),
b3  W51  W51   j 2sin  , b4  W52  W52   j 2sin 2 .
В последних выражениях   2 / 5.
Вычеты полинома Y ( z ) :
Y1 ( z )  X1 ( z )W1 ( z )  a1b1  c1;
Y2 ( z )  X 2 ( z )W2 ( z )  a2b2  c2 ;
Y4 ( z )  X 4 ( z )W4 ( z )  (a3b3  a4b4 )  (a3b4  a4b3 ) z  c3  c4 z.
Запись
последнего вычета является нерациональной. Ее можно
преобразовать, сократив число умножений, если принять:
c3  a3b3 ; c4  a4b4 ; c5  a3b3  a4b4  c3  c4 ; c6  a3b4  a4b3 
 c3  c4  a5b5 ; a5  a4  a3 ; b5  b4  b3 ; Y4 ( z )  c5  c6 z.
Восстановление по КТО для полиномов:
Y ( z )  ( z  1)( z 2  1)T1 ( z )Y1 ( z )  ( z  1)( z 2  1)T2 ( z )Y2 ( z )  ( z 2  1)T4 ( z )Y4 ( z ),
где обратные полиномы T1 ( z), T2 ( z) и T4 ( z ) находятся по уравнениям
T1 ( z )( z 3  z 2  z  1)  1 (mod( z  1)),
T2 ( z )( z 3  z 2  z  1)  1 (mod( z  1)),
T4 ( z )( z 2  1)  1 (mod( z 2  1))
и равны T1 ( z)  1/ 4, T2 ( z)  1/ 4, T4 ( z)  1/ 2. Поэтому
1
1
1
1
1
1
Y ( z )  [ (c1  c2 )  c5 ]  [ (c1  c2 )  c6 ]z  [ (c1  c2 )  c5 ] z 2 
4
2
4
2
4
2
1
1
[ (c1  c2 )  c6 ]z 3 .
4
2
Отсюда получаем
1
1
1
1
X (1)  x(0)  (c1  c2 )  c5 ; X (2)  x(0)  (c1  c2 )  c6 ;
4
2
4
2
1
1
1
1
X (4)  x(0)  (c1  c2 )  c5 ; X (3)  x(0)  (c1  c2 )  c6 .
4
2
4
2
Такая запись алгоритма Винограда не является удачной, так как
содержит умножения на константы 1/ 4 и 1/ 2 и лишние сложения. Переносом
констант 1/ 4 и 1/ 2 в формулы для величин b1 , b2 , b3 и b4 , которые
вычисляются заранее, и рациональным изменением последовательности
действий, можно получить его боле экономичную запись:
1) t1  x(1)  x(4); t2  x(2)  x(3); a1  t1  t2 ; a2  t1  t2 ;
a3  x(1)  x(4); a4  x(2)  x(3); a5  a4  a3;
420
1
1
b1  [cos( )  cos(2 )]; b2  [cos( )  cos(2 )]; b3   j sin( );
2
2
b4   j sin(2 ); b5  b4  b3  j[sin( )  sin(2 )];
2) c1  a1b1; c2  a2b2 ; c3  a3b3 ; c4  a4b4 ; c5  c3  c4 ; c6  c3  c4  a5b5 ;
3) S1  c1  x(0); S2  S1  c2 ; S3  S1  c2 ; X (0)  a1  x(0);
X (1)  S2  c5 ; X (2)  S2  c6 ; X (4)  S2  c5 ; X (3)  S2  c6.
Алгоритм содержит 5 умножений (2 действительных и 3 мнимых) и 18
сложений. В работе [40] приведен другой вариант этого алгоритма,
содержащий на одно сложение меньше.
_______________ . _______________
Алгоритм Винограда малоточечных ДПФ можно использовать и для
вычисления многоточечных ДПФ, если последние разложить на
совокупность малоточечных ДПФ. В качестве такой процедуры разложения
можно использовать, например, алгоритм Гуда-Томаса. Однако наибольшую
эффективность вычислений удается получить при замене алгоритма ГудаТомаса на специальную гнездовую процедуру Винограда [5, 11, 40]. В этом
случае будет получен гнездовой алгоритм Винограда вычисления
многоточечных ДПФ.
Пусть N-точечное ДПФ (6.22) с помощью алгоритма Гуда-Томаса
представляется в двумерном виде (6.62). Здесь
N  N1 N 2 и ( N1 N 2 )  1 . Это
двумерное ДПФ можно рассматривать как одномерное N1 -точечное, если
каждый
скаляр в нем заменить на вектор из N 2 компонент, а каждое
умножение – на N 2 -точечное ДПФ. Тогда ДПФ (6.62) можно записать так
X (k1 , k2 ) 
N1 1
W
 i1k1
N1
i1  0
DN 2 xi1 ,
(6.72)
xi1 ‒ вектор-столбец данных x(i , i )
где
1
2
xiT1  [ x(i1 ,0) x(i1,1)...x(i1, N2 1)]
из
N2
компонент, а матрица
DN 2
сопряженных значений ДЭФ и равна
421
является
матрицей комплексно-
DN 2
WN02
 0
WN
 2
 
W 0
 N2


 WN2( N2 1) 
.



 ( N 2 1) 2 
 WN2


WN02
WN21

WN2( N2 1)
WN02
Следовательно, ДПФ векторов, определенное по (6.72), является N1 точечным ДПФ, в котором умножения на
WN1i1k1
заменены на умножения на
WN1i1k1 DN 2 . Последние операции сами по себе эквивалентны
N 2 -точечным
WN2i2k2 заменено умножением на
ДПФ, в которых каждое умножение на
WN1i1k1WN2i2k2 .
Уравнение (6.72) можно записать и в матричном виде, используя
кронекеровское произведение матриц. Если из строк двумерных массивов
X (k1 , k2 ) и x(i1 , i2 ) образовать новые одномерные массивы X ( k ) и x(i ) , то их
можно связать матричным уравнением

X  DN x ,
(6.73)

D N  DN 2  DN 1
где матрица
(6.74)
является результатом кронекеровского произведения матриц значений ДЭФ
для N 2 и N1 , представленных в следующем эквивалентном виде:
DN 2  [WN2k2i2 ]  [WNk2i2 N1 ]; DN1  [WN1k1i1 ]  [WNk1i1 N2 ] .
Матрица
exp( j 2 ki / N ) ,

DN
по сути является матрицей
DN
(6.75)
значений ДЭФ
строки и столбцы которой подвержены перестановке по КТО
для индексов, используемой в алгоритме Гуда-Томаса. Поэтому её можно
получить и без кронекеровского умножения. Однако представление в виде
(6.74) позволяет факторизовать её в произведение слабозаполненных матриц,
получив тем самым экономию вычислительных операций при реализации
уравнения (6.73).
Виноград показал [11], что матрицы DN и DN раскладываются на
1
произведение трех матриц
DN 1  C1B1 A1 , DN 2  C2 B2 A2 ,
422
2
где A1 , A2 , C1 и C2 представляют собой матрицы, состоящие только из нулей и
единиц, а матрицы B1 и B2 являются диагональными. Поэтому
X  [(C2 B2 A2 )  (C1B1 A1 )] x  (C2  C1 )(B2  B1 )( A2  A1 ) x  CBAx,
(6.76)
где кронекеровские произведения C  C2  C1 и A  A2  A1 представляют собой
матрицы, состоящие только из нулей и единиц, а кронекеровское
произведение B  B2  B1 является диагональной матрицей. Уравнение (6.76)
определяет матричный алгоритм Винограда вычисления ДПФ.
Процедура Винограда расщепляет вычисление N -точечного ДПФ на
вычисления N1 - и N 2 -точечных ДПФ. При этом метод расщепления
отличается от метода, используемого в алгоритме простых множителей.
Фактически используемый здесь метод аналогичен гнездовому методу,
примененному в алгоритме Агарвала-Кули для вычисления сверток.
Применение процедуры Винограда для расщепления многоточечных
ДПФ на малоточечные ДПФ наиболее эффективно в сочетании с алгоритмом
Рейдера преобразования ДПФ в свертки и быстрым алгоритмом Винограда
вычисления коротких сверток. Если для вычисления N1 -точечных коротких
ДПФ требуется
A1 сложений и M 1 умножений, а для вычисления N 2 -
точечных коротких ДПФ ‒ A2 сложений и M 2 умножений, то общее число
операций для получения N -точечного ДПФ по гнездовому алгоритму
Винограда будет равно
M Б  М1М 2 ,
(6.77)
АБ  N 2 A1  M 1 A2 .
Из оценок (6.77) следует, что число сложений в этом алгоритме зависит
от порядка вычислений в ДПФ (6.62). Если в нем поменять местами
суммирования по индексам i1 и i 2 , то
AБ  N1 A2  M 2 A1 .
(6.78)
Первый способ организации вычислений будет требовать меньшего числа
сложений, если
N 2 A1  M1 A2  N1 A2  M 2 A1
или
(M1  N1 ) / A1  (M 2  N 2 ) / A2 .
423
Таким образом, величины (M i  N i ) / Ai характеризуют
порядок, в
котором необходимо вкладывать различные короткие алгоритмы, чтобы
минимизировать общее число сложений.
Гнездовой алгоритм Винограда можно рекурсивно рспространить на
случай более двух сомножителей. Тогда N1 N2 ...Nm -точечное ДПФ, где
( Ni ,N k )  1 при i  k , вычисляется посредством
m
M Б   Мi ,
i 1
(6.79)
AБ  А1 N2  Nm  M1 A2 N3  N m    M1M 2  M m1 Am
операций, где M i и Ai ‒ число комплексных умножений и сложений,
необходимое для получения N i -точечного ДПФ.
Следует отметить, что оценки (6.77)-(6.79) содержат общее число
сложений и умножений, включая и тривиальные. Однако, при вычислении
ДПФ малых размеров по алгоритму Рейдера комплексные умножения
сводятся к умножениям комплексного числа (при комплексном входном
сигнале) на вещественное либо чисто мнимое и выполняется с помощью двух
вещественных умножений. Кроме того, как мы знаем, ряд умножений в
алгоритмах ДПФ малых размеров являются тривиальными на множители  1
и  j . Исключение их позволяет оптимизировать алгоритмы Винограда и
получить дополнительную экономию операций.
Таблица 6.7.
Длина
последовательности N
15
30
48
63
120
168
Число
умноже-
Число
сложений
ний М Б
АБ
17
(18)
34
(36)
46
(54)
98
(99)
138
(144)
210
(216)
Длина
последовательности N
81
240
192
420
318
504
704
840
1038
1008
1746
2520
424
Число
умноже-
Число
сложений
ний M Б
АБ
316
(324)
644
(648)
786
(792)
1290
(196)
1774
(1782)
4746
(4752)
2508
5676
7270
12402
17334
49814
В табл. 6.7. приведены данные о числе вещественных операций в ДПФ
различной длины, заимствованные из работы [40]. Все ДПФ вычислялись по
алгоритму Винограда с использованием алгоритмов малоточечных ДПФ с
характеристиками, приведенными в табл.6.6 и в работах [5, 40]. Как и в табл.
6.6 в данной таблице указано число нетривиальных умножений и полное (в
скобках) число вещественных умножений. Для комплексных входных
сигналов данные табл. 6.7 следует удвоить.
Пример 6.2. Записать алгоритм Винограда для вычисления 15точечного ДПФ.
Решение. Так как число 15 раскладывается на произведение чисел 3 и
5, то для реализации быстрого 15-точечного ДПФ-алгоритма Винограда
потребуются быстрые алгоритмы Винограда вычисления 3- и 5-точечных
ДПФ. Алгоритм 3-точечного ДПФ имеет следующий вид [40]:
t1  x(1)  x(2); m0  1  [ x(0)  t1 ]; m1  (cos u  1)  t1 ; m2  j sin u  [ x(2)  x(1)]; S1  m0  m1 ;
X (0)  m0 ; X (1)  S1  m2 ;
X (2)  S1  m2 , где u  2 / 3 , а один из возможных
вариантов 5-точечного ДПФ рассмотрен в примере 6.21. Характеристики
этих алгоритмов приведены в табл. 6.6 и в примере 6.21. Их анализ
показывает, что рациональная по числу сложений структура 15-точечного
алгоритма Винограда будет получена при выборе N1  3 , а N 2  5 . Тогда
2
X (5k1  3k2 )  X (k1 , k2 )  W3 k1i1 D5 xi1 ,
i1  0
k1  0, 1, 2; k 2  0, 1, 2, 3, 4, (6.80)
где в соответствии с результатами примера 6.16
xoT  [ x(0) x(3) x(6) x(9) x(12)] ,
x1T  [ x(5) x(8) x(11) x(14) x (2)] ,
x2T  [ x(10) x(13) x(1) x(3) x(7)] .
Для реализации алгоритма (6.80) необходимо выполнить алгоритм 3точечного ДПФ, в котором каждое умножение на константу заменяется на 5точечное ДПФ, вычисляемое по алгоритму Винограда примера 6.21 с
видоизмненными контантами b1 ÷ b5 . При этом будут получены следующие
характеристики: М Б  18 , АБ  84 . Если же для вычисления 5-точечного ДПФ
использовать алгоритм Винограда с 17 сложениями [40], то характеристики
15-точечного ДПФ Винограда совпадут с теми значениями, что приведены в
табл. 6.7.
425
 0
W 150
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 150
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
W 0
 150
W 15
0
W 15
1
W 15
2
W 15
3
W 15
4
W 15
5
W 15
6
W 15
7
W 15
8
W 15
9
W 15
10
W 15
11
W 15
12
W 15
13
W 15
14
W 15
0
W 15
2
W 15
4
W 15
6
W 15
8
W 15
10
W 15
12
W 15
14
W 15
1
W 15
3
W 15
5
W 15
7
W 15
9
W 15
11
W 15
13
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
4
W 15
8
W 15
12
W 15
1
W 15
5
W 15
9
W 15
13
W 15
2
W 15
6
W 15
10
W 15
14
W 15
3
W 15
7
W 15
11
W 15
0
W 15
5
W 15
10
W 15
0
W 15
5
W 15
10
W 15
0
W 15
5
W 15
10
W 15
0
W 15
5
W 15
10
W 15
0
W 15
5
W 15
10
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
7
W 15
14
W 15
6
W 15
13
W 15
5
W 15
12
W 15
4
W 15
11
W 15
3
W 15
10
W 15
2
W 15
9
W 15
1
W 15
8
W 15
0
W 15
8
W 15
1
W 15
9
W 15
2
W 15
10
W 15
3
W 15
11
W 15
4
W 15
12
W 15
5
W 15
13
W 15
6
W 15
14
W 15
7
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
10
W 15
5
W 15
0
W 15
10
W 15
5
W 15
0
W 15
10
W 15
5
W 15
0
W 15
10
W 15
5
W 15
0
W 15
10
W 15
5
W 15
0
W 15
11
W 15
7
W 15
3
W 15
14
W 15
10
W 15
6
W 15
2
W 15
13
W 15
9
W 15
5
W 15
1
W 15
12
W 15
8
W 15
4
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
13
W 15
11
W 15
9
W 15
7
W 15
5
W 15
3
W 15
1
W 15
14
W 15
12
W 15
10
W 15
8
W 15
6
W 15
4
W 15
2
W 15
W 15 
14
W 15 
13
W 15 
12 
W 15 
11 
W 15 
10 
W 15 
9
W 15 
8
W 15 
7
W 15 
6 
W 15 
5 
W 15 
4 
W 15 
3
W 15 
2
W 15 
1
W 15 
0
Рис. 6.10. Матрица D 1*5

Проиллюстрируем теперь кронекеровскую структуру матрицы D15 для
этого примера. Общая матрица D 15 будет иметь вид, приведенный на рис.
6.10. Переставляя в ней строки в соответствии с табл. 6.5, а столбцы в

соответствии с табл. 6.4 примера 6.16, из нее получим матрицу D15 ,
приведенную на рис. 6.11 и состоящую из 9 блоков размерностью 5 5 ,
выделенных пунктиром. Легко проверить, что данная матрица представляет
собой результат кронекеровского произведения матриц
W150 W150
W150 
D 3  [W3k1i1 ]  [W155k1i1 ]  W150 W155 W1510  ,
W150 W1510 W155 


W150 W150
W150
W150
W150 
 0

3
W156 W159 W1512 
W15 W15
D 5  [W5k2i2 ]  [W153k2i2 ]  W150 W156 W1512 W153 W159  ,
 0

W15 W159 W153 W1512 W156 
 0

12
W159 W156 W153 
W15 W15

т.е.

D15  D3  D5 .
426
 0
W 150
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 150
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
 0
W 15
W 0
 150
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
0
W 15
0
W 15
0
W 15
0
W 15
0
W 15
5
W 15
5
W 15
5
W 15
5
W 15
5
W 15
10
W 15
10
W 15
10
W 15
10
W 15
10
W 15
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
5
W 15
8
W 15
11
W 15
14
W 15
2
W 15
10
W 15
13
W 15
1
W 15
4
W 15
7
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
5
W 15
11
W 15
2
W 15
8
W 15
14
W 15
10
W 15
1
W 15
7
W 15
13
W 15
4
W 15
Действительно,
используя
кронекеровского умножения, получим
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
5
W 15
14
W 15
8
W 15
2
W 15
11
W 15
10
W 15
4
W 15
13
W 15
7
W 15
1
W 15
0
W 15
12
W 15
9
W 15
6
W 15
3
W 15
5
W 15
2
W 15
14
W 15
11
W 15
8
W 15
10
W 15
7
W 15
4
W 15
1
W 15
13
W 15
0
W 15
0
W 15
0
W 15
0
W 15
0
W 15
10
W 15
10
W 15
10
W 15
10
W 15
10
W 15
5
W 15
5
W 15
5
W 15
5
W 15
5
W 15
правила
0
W 15
3
W 15
6
W 15
9
W 15
12
W 15
10
W 15
13
W 15
1
W 15
4
W 15
7
W 15
5
W 15
8
W 15
11
W 15
14
W 15
2
W 15
0
W 15
6
W 15
12
W 15
3
W 15
9
W 15
10
W 15
1
W 15
7
W 15
13
W 15
4
W 15
5
W 15
11
W 15
2
W 15
8
W 15
14
W 15
выполнения
0
W 15
9
W 15
3
W 15
12
W 15
6
W 15
10
W 15
4
W 15
13
W 15
7
W 15
1
W 15
5
W 15
14
W 15
8
W 15
2
W 15
11
W 15
W 15 
12
W 15 
9
W 15 
6 
W 15 
3 
W 15 
10 
W 15 
7
W 15 
4
W 15 
1
W 15 
13 
W 15 
5 
W 15 
2 
W 15 
14
W 15 
11
W 15 
8
W 15 
0
левого
W150 D5 W150 D5
W150 D5 



D15  W150 D5 W155 D5 W1510 D5  .
W150 D5 W1510 D5 W155 D5 



Произведения элементов матрицы D 3 на матрицу D 5 образуют в матрице D15
блоки,
выделенные
пунктиром.
Вычисляя
произведения,
придем
к

результирующему виду матрицы D15 , совпадающему с тем, что был получен
перестановкой строк и столбцов исходной матрицы ДЭФ D15 .
_______________ ._______________
Анализ характеристик различных алгоритмов многоточечных ДПФ
показывает, что применение алгоритмов Винограда по сравнению с
алгоритмами Кули-Тьюки и Гуда-Томаса в среднем в 1,5-2 раза сокращает
число операций умножения при небольшом увеличении числа сложений
[40]. Таким образом, алгоритм Винограда вычисления ДПФ представляется
427
эффективным и заслуживающим внимания методом анализа частотного
спектра. Недостатками этого алгоритма являются зависимость его структуры
от величины N и, как следствие, нерегулярность алгоритма, усложняющая
его программирование, а также относительная сложность математических
преобразований при его записи, особенно для больших значений N.
Рассмотренные БПФ, конечно, не охватывают всего многообразия
существующих в настоящее время быстрых алгоритмов в базисе ДЭФ, хотя и
являются основным инструментом частотного анализа. Среди других
известных алгоритмов, представляющих в большинстве своем различные
модификации основных, наибольший практический и теоретический интерес
вызывают видоизменения алгоритмов Кули-Тьюки, полученные Рейдером,
Бреннером, Чу, Темесом и Капориным [36, 45], в которых комплексные
умножения заменяются на мнимые или вещественные, а также более общее
семейство гнездовых алгоритмов Джонсона-Барраса, включающее в себя
методы Гуда-Томаса и Винограда в виде экстремальных случаев [5].
Все упомянутые БПФ-алгоритмы, включая и основные, ориентированы
на обработку комплексных сигналов. В случае их использования для
обработки вещественных сигналов эти алгоритмы становятся структурно
избыточными, что следует из свойства симметрии ДПФ:
X (k )  X  ( N  k ), k  1, 2, ...,
N
 1.
2
(6.81)
Существует несколько способов устранения этой избыточности и, как
следствие, дополнительной экономии вычислений. В первом способе из двух
вещественных сигналов образуют один комплексный и анализ спектров двух
сигналов выполняют за время анализа одного сигнала (см. §4.4). Во втором
способе комплексный сигнал образуется из различных составляющих одного
вещественного сигнала (например, из составляющих с четными и нечетными
номерами:
z (i )  x(2i )  jx(2i  1) ,
i  0, 1, ..., ( N / 2)  1)
с
последующим
выражением спектра вещественного сигнала через действительные и мнимые
составляющие спектра комплексного сигнала [40]. В этом случае в два раза
уменьшается размерность ДПФ. Третий способ предполагает учет
особенностей вещественной обработки непосредственно в структуре БПФ.
Наиболее известным примером таких алгоритмов является алгоритм Бруна
428
[40]. В работе [40] можно найти описание и других алгоритмов, построенных
по такому принципу.
Следует отметить, что из всех рассмотренных основных алгоритмов
проблема устранения структурной избыточности при переходе на обработку
вещественных сигналов наиболее просто решается в алгоритмах Винограда.
В этом случае все умножения и почти все сложения заменяются на
вещественные и алгоритм Винограда потребует почти половины операций,
необходимых для обработки комплексных сигналов, без каких-либо
дополнительных изменений его структуры.
Наличие большого числа разнообразных БПФ-алгоритмов позволяет на
их основе строить гибридные алгоритмы, использующие на различных
стадиях обработки различные малоточечные БПФ. К гибридным алгоритмам
БПФ можно отнести и алгоритмы Винограда, использующие для вычисления
малоточечных сверток теоретико-числовые преобразования [9]. Гибридные
алгоритмы представляют собой еще один перспективный путь дальнейшего
повышения эффективности БПФ [13, 21].
Имеющееся многообразие различных БПФ-алгоритмов для вычисления
частотного спектра объясняется в первую очередь тем, что в базисе ДЭФ
число отсчетов входной выборки может быть любым числом: простым,
составным, четным, кратным определенной степени и т.д. В других базисных
системах, где существуют ограничения на значения N, такой широкий
спектр алгоритмов БПФ просто невозможен. Подтверждением этому служат
БПФ в базисах Уолша, Виленкина-Крестенсона, Хаара и числовых базисах,
приведенные в последующих параграфах этой главы.
БПФ Винограда содержат в своей структуре быстрые алгоритмы
вычисления циклических сверток. Однако в свою очередь и алгоритмы БПФ
можно использовать для
быстрого вычисления циклических сверток.
Возможность этого следует из теоремы о свертке, справедливой и для ДПФ
(см. §3.4). В соответствии с формулой (3.94) спектр свертки Y (k ) с точностью
до
постоянного множителя N совпадает с произведением спектров
свертываемых сигналов X (k ) и U (k ) . Следовательно, для вычисления самой
свертки необходимо сначала выполнить два прямых ДПФ (для вычисления
спектров X (k ) и U (k ) ), затем перемножить полученные
спектры, чтобы
образовать из них спектр свертки (Y (k )  X (k )U (k )) , а затем с помощью
429
обратного ДПФ восстановить по спектру все значения свертки. Поскольку
все алгоритмы БПФ могут быть использованы для реализации как прямых,
так и обратных ДПФ, то такой способ вычисления свертки потребует
выполнения трех алгоритмов БПФ и N дополнительных умножений.
Структурная схема алгоритма вычисления свертки, использующего этот
{х(i)}
БПФ
{X(k)}
{Y(k)}
{y(i)}
БПФ
{u(i)}
{U(k)}
БПФ
Рис. 6.12. Структурная схема быстрого алгоритма вычисления
циклической свертки
способ, приведена на рис. 6.12. Очевидно, что его эффективность напрямую
зависит от эффективности используемых БПФ.
6.4. Быстрые преобразования Уолша
В основе разработки БПФ-алгоритмов Кули-Тьюки по основанию 2
лежат представления числа отсчетов в виде N  2n , n  1, 2, ... и свойства
двойственности и мультипликативности ДЭФ. Для дискретных функций
Уолша величина N также представляется двоично-рациональным числом и
справедливы свойства двойственности и мультипликативности (см. § 4.7).
Поэтому в базисе этих функций тоже возможно построение алгоритмов
быстрых преобразований, подобных БПФ Кули-Тьюки.
Поскольку операции мультипликативности в базисах ДЭФ и Уолша
различаются, то результатами разработки БПФ при синтезе быстрых
преобразований Уолша (БПУ) в полной мере воспользоваться не удается.
Особенности операции мультипликтивности, которой для функций Уолша
является поразрядное сложение по модулю 2, а также порядок следования
функций Уолша в базисной системе влияют на процедуру вывода и форму
записи алгоритмов БПУ. Поэтому рассмотрим скалярные методы синтеза
БПУ для всех трех основных систем Уолша: Пэли, Хармута и Адамара.
430
Прямое ДПУ для сигнала x(i) с i  [0, N ) без нормирующего множителя
1/ N имеет простой вид
N 1
X (k )   x(i ) wal (k , i / N ), k  0, 1, ..., N 1 .
i 0
(6.82)
Поскольку функции Уолша принимают только единичные значения
( 1) ,
то реализация прямого алгоритма (6.82) требует затрат только одних
вещественных сложений, число которых равно
AП  N ( N  1) .
(6.83)
При больших значениях N это число может оказаться весьма
существенным. Для его сокращении применим тот же подход, что
использовался при синтезе БПФ Кули-Тьюки: с помощью прореживания
входной выборки сигнала преобразуем многоточечное ДПУ в совокупность
более простых малоточечных ДПУ. При этом воспользуемся обоими
классическими способами прореживания, используемыми в теории БПФ.
Прореживание по времени. Разобъём N-точечную выборку x( i ) на две
промежуточные выборки с отсчетами с четными и нечетными номерами
соответственно: x0 (i1 )  x(2i1 ) и x1 (i1 )  x(2i1  1), i1  0, 1, ..., N / 2  1, спектры Уолша
которых равны

x0 (i1 ) wal (k1 , i1 /( N / 2)), 
i1  0

N / 2 1


X (1) (k1 )   x1 (i1 ) wal (k1 , i1 /( N / 2)), 
i1  0


k1  0, 1, ..., N / 2  1.



X (0) (k1 ) 
N / 2 1

(6.84)
Тогда полный спектр X ( k ) (6.82) можно преобразовать к виду
X (k ) 
N / 2 1

i1  0

x(2i1 ) wal (k , 2i1 / N ) 
N / 2 1

i1  0
N / 2 1

i1  0
x0 (i1 ) wal (k , 2i1 / N ) 
x(2i1  1) wal (k , (2i1  1) / N ) 
N / 2 1

i1  0
x1 (i1 ) wal (k , (2i1  1) / N ).
Так как 2i1 ‒ четное число, то в 2i1  1 обычное сложение можно
заменить на поразрядное сложение по модулю 2 ()2 , т.е. 2i1  1  2i1 ()21 .
Учитывая это и применяя свойство мультипликативности функций Уолша,
можно записать
431
wal (k ,(2i1  1) / N )  wal (k ,(2i1 () 21) / N )  wal (k , 2i1 / N )  wal (k ,1/ N ).
Поэтому
X (k ) 
N / 2 1

i1  0
x0 (i1 ) wal (k , 2i1 / N ) wal (k ,1/ N )
N / 2 1

i1  0
x1 (i1 ) wal ( k , 2i1 / N ).
(6.85)
Рассмотрим раздельно первую и вторую половины спектральных
коэффициентов X ( k ) . Для первой половины спектра k  k1 , k1  0, 1, ..., N / 2  1 и
X (k1 ) 
N / 2 1

i1  0
x0 (i1 ) wal (k1 , 2i1 / N ) wal (k1 ,1/ N )
N / 2 1
 x (i )wal (k , 2i / N ).
i1  0
1
1
1
1
Для второй половины ‒ k  k1  N / 2 , поэтому
X (k1  N / 2) 
N / 2 1

i1  0
x0 (i1 ) wal (k1  N / 2, 2i1 / N ) 
 wal (k1  N / 2, 1/ N )
N / 2 1

i1  0
x1 (i1 ) wal (k1  N / 2, 2i1 / N ).
Индекс k1 меняется в пределах от 0 до N / 2 1 и старший n-й разряд
двоичного представления его значений всегда равен 0. Число N/2 в своей
двоичной записи имеет 1 в старшем разряде и 0 во всех остальных разрядах.
Поэтому k1  N / 2  k1 ()2 N / 2 и в силу свойства мультипликативности
wal (k1  N / 2, 2i1 / N )  wal (k1 () 2 N / 2, 2i1 / N )  wal (k1, 2i1 / N ) wal ( N / 2, 2i1 / N ).
Следовательно
X (k1  N / 2) 
N / 2 1

i1  0
x0 (i1 ) wal (k1 , 2i1 / N )wal ( N / 2, 2i1 / N ) 
 wal (k1  N / 2, 1/ N )
N / 2 1

i1  0
x1 (i1 ) wal (k1 , 2i1 / N ) wal ( N / 2, 2i1 / N ).
Для дальнейшего преобразования выражений спектров
X (k1  N / 2)
X (k1 )
и
необходимо рассмотреть свойства функций wal (k1 , 2i1 / N ) и
wal ( N / 2, 2i1 / N ) . Они зависят от способа упорядочения функций Уолша в
системе. Поэтому рассмотрим эти функции раздельно в системах Пэли,
Хармута и Адамара, используя их
аналитическую запись в
экспоненциальной форме представления (см. формулы (4.68), (4.70) и
(4.96)). При этом, поскольку нижние индексы в переменных i1 и k1 в данном
параграфе используются для обозначения диапазона изменения этих
переменных, то в записи их двоичного представления воспользуемся
верхними индексами, заключенными в круглые скобки.
Тогда для системы Пэли будем иметь
432
n
 k ( m ) i( n1m )
pal (k , i / N )  (1) m1
(n)
При k  k1 старший разряд k  0 , а при i  2i1 младший разряд i (1)  0 .
Поэтому
n1
 k1( m ) i( n1m )
pal (k1 , 2i1 / N )  (1) m1
.
Поскольку числа 2i1 в разрядах 2, 3, ..., n имеют те же значения, что и числа i1
в разрядах 1, 2, ..., n  1 , то, перенумеровывая разряды, получаем
n1
 k1( m ) i1( n11m )
pal (k1 , 2i1 / N )  (1) m1
 pal (k1, i1 /( N / 2)).
(6.86)
Таким образом, N-точечные функции Уолша-Пэли с номерами
k1  0, 1, ..., N / 2  1 , взятые в отсчетах с четными номерами, совпадают с N / 2 –
точечными функциями Уолша-Пэли с теми же номерами. Подобное свойство
в ДЭФ автоматически следовало из экспоненциальной формы их записи.
Такой же результат получается и для системы Хармута. Это связано с
тем, что (см. формулу (4.96))
n
  k ( m ) ii( n1m )
har (k , i / N )  ( 1) m1
и по правилам вычисления кода Грея  k ( n )  k ( n ) ()2 0  k ( n ) , а код Грея
значений k при k ( n )  0 совпадает с кодом Грея значений k1 . Поэтому
n1
k ( m ) i1( n11m )
har (k1 , 2i1 / N )  (1) m1
 har (k1 , i1 /( N / 2)).
(6.87)
Для функций Уолша-Адамара ситуация другая. В этом случае в
соответствии с (4.70)
n
 k ( m ) i( m )
had (k , i / N )  ( 1) m1
(6.88)
и при k  k1 , i  2i1
n1
 k ( m ) i( m )
had (k1 , 2i1 / N )  (1)m2
.
Эта функция не совпадает с функцией had (k1 , i1 /( N / 2)).
Теперь о функции wal ( N / 2, 2i1 / N ) . Её номер k  N / 2 в своем двоичном
разложении имеет только одну единицу в старшем разряде. В тоже время
433
двоичный код чисел 2i1 содержит 0 в младшем разряде. Поэтому в системе
Пэли
pal ( N / 2, 2i1 / N )  ( 1)
 1.
k ( n ) i(1)
(6.89)
Для системы Хармута следует учесть, что код Грея числа N/2 имеет
единичные значения только в двух старших разрядах. Поэтому
har ( N / 2, 2i1 / N )  (1)k
( n1) ( 2)
i
 (1)i .
( 2)
Но из двоичных представлений чисел i  2i1 и i1 следует, что i (2)  i1(1) .
Следовательно
(1)
har ( N / 2, 2i1 / N )  (1)i1
.
При четном значении i1 его разряд i1(1)  0 , а при нечетном i1(1)  1 . Поэтому
будет справедлива и следующая запись этой функции:
har ( N / 2, 2i1 / N )  (1)i1 .
(6.90)
Полученные результаты позволяют сделать следующие важные для
синтеза БПУ выводы. Во-первых, простая связь между функциями
wal (k1 , 2i1 / N ) и wal (k1 , i1 /( N / 2)) , позволяющая упростить соотношения для
X (k1 ) и X (k1  N / 2) , существует только в системах Пэли и Хармута. Для
функций Уолша-Адамара такой связи нет и поэтому невозможно построить
алгоритм БПУ-Адамара в классической формулировке прореживания по
времени. Необходима его модификация. Во-вторых, функция wal ( N / 2, 2i1 / N )
в базисе Пэли тождественно равна 1, а в базисе Хармута зависит от
переменной i1 . Это приводит к различным формам записи спектров X (k1 ) и
X (k1  N / 2) в этих базисах, поэтому дальнейший вывод алгоритмов БПУ для
систем Пэли и Хармута следует осуществлять раздельно. Отдельно надо
рассматривать и БПУ-Адамара.
Начнем с упорядочения Пэли. В этом случае, учитывая зависимости
(6.86) и (6.89) в соотношениях для X (k1 ) и X (k1  N / 2) , последние можно
преобразовать к следующему виду:
X (k1 ) 
N / 2 1

i1  0
x0 (i1 ) pal (k1 , i1 /( N / 2))  pal (k1 ,1/ N )
434
N / 2 1
 x (i ) pal (k , i /( N / 2)),
i1  0
1
1
1
1
X (k1  N / 2) 
N / 2 1

i1  0
x0 (i1 ) pal (k1 , i1 /( N / 2))  pal (k1  N / 2,1/ N )
N / 2 1
 x (i ) pal (k , i /( N / 2)).
i1  0
1
1
1
1
Сравнивая эти выражения с формулами (6.83), получаем
X (k1 )  X (0) (k1 )  pal (k1 ,1/ N ) X (1) ( k1 ),
X (k1  N / 2)  X (0) (k1 )  pal (k1  N / 2,1/ N ) X (1) (k1 ).
Последние зависимости можно упростить, если учесть, что в силу свойства
двойственности
функций
Уолша
pal (k1 ,1/ N )  pal (1, k1 / N )  1,
а
pal (k1  N / 2, 1/ N )  pal (1,(k1  N / 2) / N )  1 . Тогда


X (k1  N / 2)  X (k1 )  X (k1 ), 

k1  0, 1, ..., N / 2 1.

X (k1 )  X (0) (k1 )  X (1) (k1 ),
(0)
(1)
(6.91)
Уравнения (6.91) определяют алгоритм БПУ-Пэли на первом уровне
прореживания по времени. Из них следует, что искомый спектр сигнала
можно получить простым
алгебраическим суммированием спектров
промежуточных выборок. Уравнения связи спектров (6.91) в БПУ-Пэли
похожи на аналогичные уравнения (6.39) в БПФ Кули-Тьюки по основанию 2
и с прореживанием по времени и отличаются только отсутствием фазовых
множителей (последние в этом случае равны 1).
Поскольку N/2 также делится пополам, то описанный алгоритм можно
применить и для вычисления промежуточных спектров X (0) (k1 ) и X (1) (k1 ) ,
введя новый уровень прореживания. Очевидно, что процедуру прореживания
можно продолжать до тех пор, пока число отсчетов в промежуточных
выборках не станет равным 2. В этом случае будет получен полный алгоритм
БПУ-Пэли с (n-1) уровнями прореживания по времени.
В общем случае на m-м уровне прореживания


( 1 , 2 ,...,  m1 )
( 1 , 2 ,...,  m1 ,0)
( 1 ,  2 ,...,  m1 ,1)
nm
X
(km  2 )  X
X
(km ), 

   0,1;   1, 2, ..., m  1, km  0, 1, ..., 2nm  1.

X ( 1 ,2 ,...,m1 ) (km )  X 1 ,2 ,...,m1 ,0) (km )  X ( 1 ,2 ,...m1 ,1) (km ),
(6.92)
где
X ( 1 ,2 ,...,m1 ,0) (km ) 
2nm 1

im 0
x1 ,2 ,...,m1 ,0 (im ) pal (km , im 2mn ),
435
(6.93)
X ( 1 ,2 ,...,m1 ,1) (km ) 
2nm 1

im 0
а
x1 ,2 ,...,m1 ,1 (im ) pal (km , im 2mn ),
x1 ,2 ,...,m1 ,0 (im )  x(2m im  2m2 m1    22  1 ),
m1
x1 ,2 ,...,m1 ,1 (im )  x(2 im  2
m
m 2
2
(6.94)
m1    22  1 ).
Изменяя индекс m от 1 до n 1, с помощью соотношений (6.92)-(6.94)
можно описать все стадии процесса быстрого анализа спектра Уолша-Пэли,
получив алгоритм полного БПУ. Сама организация вычислений по этому
алгоритму подразумевает изменение индекса m в обратном направлении от
n 1 до 1 подобно тому, как это делалось в алгоритмах БПФ по основанию
два. Начальными данными в полном алгоритме будут служить
промежуточные
X ( 1 ,2 ,...,n1 ) (kn 1 ), (kn 1  0,1)
спектры
2-точечных выборок на (n  1) -м уровне прореживания. Поскольку 2-точечные
функции
Уолша
при
любом
упорядочении
принимают
значения
wal (0, in1 / 2)  {1,1} и wal (1, in1 / 2)  {1,  1}, то начальные спектры имеют
простой вид записи:
X
X
(1 ,2 ,...,n1 )
(1 ,2 ,...,n1 )
(0)  x 1 ,2 ,...,n1 (0)  x1 ,2 ,...,n1 (1),
(6.95)
(1)  x 1 ,2 ,...,n1 (0)  x1 ,2 ,...,n1 (1),
где
x1 ,2 ,...,n1 , (0)  x(2n2 in1  2n3 n2    22  1 ),
x1 ,2 ,...,n1 , (1)  x(2n1  2n2 n1  2n3 n2    22  1 ).
Результатом выполнения полного алгоритма будет искомый спектр X (k1 ) и
X (k1  N / 2) , получаемый на первом уровне прореживания.
Полный алгоритм БПУ, так же как и аналогичный ему алгоритм БПФ,
графически удобно представлять с помощью полного сигнального графа,
имеющего (n  1) уровней и
N (n  1) узлов. Во всех узлах, кроме узлов
крайнего левого уровня выполняются только операции сложения. Граф БПУПэли по структуре похож на граф подобного БПФ и отличается от него
только отсутствием умножений на фазовые множители. Полный БПУ-Пэли с
прореживанием по времени требует при своей реализации выполнения
436
AБ  N log 2 N
(6.96)
сложений.
Пример 6.23. Записать полный алгоритм БПУ-Пэли с прореживанием
по времени и построить его сигнальный граф для N=8.
Решение. Так как N  8  23 , то n=3 и полный алгоритм будет содержать
два уровня прореживания (m=1,2). Поэтому в соответствии с общим
алгоритмом (6.92)÷(6.95) получаем:
- начальные данные:
x0,0 (i2 )  x(4i2 )  {x(0), x(4)}; x0,1 (i2 )  x(4i2  2)  {x(2), x(6)};
x1,0 (i2 )  x(4i2  1)  {x(1), x(5)}; x1,1 (i2 )  x(4i2  3)  { x(3), x(7)};
X ( 0,0) (0)  x0,0 (0)  x0,0 (1)  x(0)  x(4); X (0,0) (1)  x0,0 (0)  x0,0 (1)  x(0)  x(4);
X ( 0,1) (0)  x0,1 (0)  x0,1 (1)  x(2)  x(6); X (0,1) (1)  x0,1 (0)  x0,1 (1)  x(2)  x(6);
X (1,0) (0)  x1,0 (0)  x1,0 (1)  x(1)  x(5); X (1,0) (1)  x1,0 (0)  x1,0 (1)  x(1)  x(5);
X (1,1) (0)  x1,1 (0)  x1,1 (1)  x(3)  x(7); X (1,1) (1)  x1,1 (0)  x1,1 (1)  x(3)  x(7);
- на втором уровне прореживания (m  2; 1 , 2  0,1; i2 , k2  0,1) :
X (0) (0)  X (0,0) (0)  X (0,1) (0); X (0) (1)  X (0,0) (1)  X (0,1) (1);
X (0) (2)  X (0,0) (0)  X (0,1) (0); X (0) (3)  X (0,0) (1)  X (0,1) (1);
X (1) (0)  X (1,0) (0)  X (1,1) (0); X (1) (1)  X (1,0) (1)  X (1,1) (1);
X (1) (2)  X (1,0) (0)  X (1,1) (0); X (1) (3)  X (1,0) (1)  X (1,1) (1);
- на первом уровне прореживания (m  1; k1  0, 1, 2, 3) :
X (0)  X (0) (0)  X (1) (0); X (1)  X (0) (1)  X (1) (1);
X (2)  X (0) (2)  X (1) (2); X (3)  X (0) (3)  X (1) (3);
X (4)  X (0) (0)  X (1) (0); X (5)  X (0) (1)  X (1) (1);
X (6)  X (0) (2)  X (1) (2); X (7)  X (0) (3)  X (1) (3).
Граф, соответствующий этому алгоритму, приведен на рис. 6.13.
Непосредственно из него следует, что для реализации алгоритма требуется
выполнить 24 вещественные сложения. Эта величина полностью
соответствует оценке (6.96) при N=8. Граф рис. 6.13 близок по структуре к
графу БПФ рис. 6.4.
Проверка. Вычислим по алгоритму коэффициент Х(6). В соответствии
с приведенными уравнениями он будет равен X (6)  X (2)  X (1) (2)  X (0,0) (0) 
( 0)
 X (0,1) (0)  X (1,0)  X (1,1) (0)  x(0)  x(4)  x(2)  х(6)  х(1)  х(5)  х(3)  х(7)  х(0)  x(1) 
437
и совпадает с результатом своего прямого
 x(2)  х(3)  х(4)  x(5)  х(6)  х(7)
вычисления по значениям шестой функции Уолша-Пэли, приведенным в
матрице Пэли 4.21.
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.13. Сигнальный граф полного БПУ Пэли
с прореживанием по времени для N=8
_______________ . _______________
Перейдем к алгоритму БПУ-Хармута. Для его получения учтем в
выражениях для X (k1 ) и X (k1  N / 2) соотношения (6.87) и (6.90).
После
преобразований получим
X (k1 ) 
X (k1  N / 2) 
N / 2 1
 [ x (i )  har (k ,1/ N ) x (i )]har (k , i /( N / 2)),
0
i1  0
1
1
1
1
1
1
N / 2 1
 {[ x (i )  har (k ,1/ N ) x (i )](1) }har (k , i /( N / 2)).
i1
i1  0
0
1
1
1
1
1
1
Если использовать свойство двойственности функций Уолша и вытекающие
из него равенства
har (k1 ,1/ N )  har (1, k1 / N )  1,
har (k1  N / 2, 1/ N )  har (1, (k1  N / 2) / N )  1,
то искомые спектры сигнала можно записать в более простом виде:


i1  0

N / 2 1


X (k1  N / 2)   {[ x0 (i1 )  x1 (i1 )]( 1)i1 }har (k1 , i1 /( N / 2)), 
i1  0


k1  0, 1, ..., N / 2  1.



X (k1 ) 
N / 2 1
 [ x (i )  x (i )]har (k , i
0
1
1
1
1
438
1
/( N / 2)),
(6.97)
Уравнения (6.97) представляют собой аналитическое описание
алгоритма БПУ-Хармута на первом уровне прореживания по времени. В этом
случае нет явной связи результирующего спектра со спектрами
промежуточных выборок, однако наличие однотипных слагаемых и в этом
случае позволяет сократить требуемый объем вычислений. Алгоритм БПУХармута (6.97) по форме записи близок к алгоритму БПФ по основанию 2 с
прореживанием по частоте (см. выражение (6.54) при p=2). Используя в нем
те же обозначения, что применялись в БПФ, получим следующую запись
БПУ-Хармута на первом уровне прореживания по времени:
X (k1 ) 
N / 2 1

i1  0
X (k1  N / 2) 
x ( 0) (i1 )har (k1 , i1 /( N / 2)),
(6.98)
N / 2 1

i1  0
x (1) (i1 )har (k1 , i1 /( N / 2)),
где
x (0) (i1 )  x0 (i1 )  x1 (i1 )  x(2i1 )  x(2i1  1),
(6.99)
x (1) (i1 )  [ x0 (i1 )  x1 (i1 )]  (1)i1  [ x(2i1 )  x(2i1  1)](1)i1 .
Здесь индекс k1 изменяется от 0 до N / 2 1.
Поскольку N / 2 делится на 2, то алгоритм (6.98), (6.99) можно
применить и для вычисления ДПУ-Хармута (6.98), введя тем самым еще
один уровень прореживания. На произвольном m-м уровне прореживания по
времени алгоритм БПУ-Хармута приобретает следующий вид:


im  0

nm

2
1
X (km  2n  m  2n  m 1 qm 1    2n  2 q2  2n 1 q1 )   x ( q1 ,q2 ,...,qm1 ,1) (im )har (km , im / 2n  m ), 
im  0

nm

q  0, 1;   1, 2,..., m  1; km  0,1,..., 2  1,


X (km  2
n  m 1
qm 1    2
n2
q2  2
n 1
q1 ) 
2nm 1

x ( q1 ,q2 ,...,qm1 ,0) (im )har (km , im / 2n  m ),
(6.100)
где x
( q1 , q2 ,..., qm1 ,0)
(im )  x ( q1 , q2 ,..., qm1 ) (2im )  x( q1 , q2 ,..., qm1 ) (2im  1), (6.101)
x ( q1 ,q2 ,..., qm1 ,1) (im )  [ x( q1 , q2 ,..., qm1 ) (2im )  x( q1, q2 ,..., qm1) (2im  1)]( 1)im .
Изменяя переменную m от 1 до n-1, с помощью приведенных
зависимостей можно записать полный алгоритм БПУ-Хармута с
прореживанием по времени при начальных условиях (6.99). Его будет
439
отражать полный сигнальный граф со структурой, отличающейся от
структуры графа БПУ-Пэли, хотя и имеющей то же число уровней и узлов, а,
следовательно, и число сложений, определяемое формулой (6.96).
Пример 6.24. Записать полный алгоритм БПУ-Хармута с
прореживанием по времени и построить его сигнальный граф для N=8.
Решение. В этом случае n=3 и полный алгоритм получается с помощью
двух уровней прореживания, т.е. m=1, 2.
Начальные данные ( i1  0, 1, 2, 3) :
x0 (i1 )  x(2i1 )  {x(0), x(2), x(4), x(6)},
x1 (i1 )  x(2i1  1)  {x(1), x(3), x(5), x(7)}.
На первом уровне (m  1, q1  0,1; i1  0, 1, 2, 3) :
x (0) (i1 )  x0 (i1 )  x1 (i1 ); x (1) (i1 )  [ x0 (i1 )  x1 (i1 )]  (1)i1 .
Поэтому
x (0) (0)  x0 (0)  x1 (0); x (0) (1)  x0 (1)  x1(1);
x (0) (2)  x0 (2)  x1 (2); x (0) (3)  x0 (3)  x1(3);
x (1) (0)  x0 (0)  x1 (0); x (1) (1)  x1 (1)  x0 (1); x (1) (2)  x0 (2)  x1 (2); x (1) (3)  x1(3)  x0 (3).
На втором уровне (m  2, q2 , k2 , i2  0, 1) :
x( q1 ,0) (i2 )  x
(q )
1
(2i2 )  x( q1 ) (2i1  1); x( q1 ,1) (i2 )  [ x
(q )
1
(2i2 )  x 1 (2i2  1)]  (1)i2 .
(q
Поэтому
x(0,0) (0)  x(0) (0)  x(0) (1); x(0,0) (1)  x(0) (2)  x(0) (3);
x(0,1) (0)  x(0) (0)  x(0) (1); x(0,1) (1)  x(0) (3)  x(0) (2);
x(1,0) (0)  x(1) (0)  x(1) (1); x(1,0) (1)  x(1) (2)  x(1) (3);
x(1,1) (0)  x(1) (0)  x(1) (1); x(1,1) (1)  x(1) (3)  x(1) (2).
Результирующий спектр будет равен:
X (k2  4q1 )  x ( q1 ,0) (0)har (k2 , 0 / 2)  x ( q1 ,0) (1) har ( k2 ,1/ 2),
X (k2  4q1  2)  x ( q1 ,1) (0)har (k2 , 0 / 2)  x ( q1 ,1) (1)har (k2 ,1/ 2).
Поскольку har (k2 , 0 / 2)  {1,1}, а har (k2 ,1/ 2)  {1,  1}, то окончательно получим:
X (0)  x(0,0) (0)  x(0,0) (1); X (1)  x(0,0) (0)  x(0,0) (1),
X (2)  x(0,1) (0)  x(0,1) (1); X (3)  x (0,1) (0)  x (0,1) (1),
X (4)  x(1,0) (0)  x(1,0) (1); X (5)  x(1,0) (0)  x(1,0) (1),
X (6)  x(1,1) (0)  x(1,1) (1); X (7)  x(1,1) (0)  x(1,1) (1).
440
Сигнальный граф этого алгоритма приведен на рис. 6.14. Его структура
отличается от структуры графа алгоритма БПУ-Пэли рис. 6.13, однако
требует затрат такого же числа сложений.
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.14. Сигнальный граф полного БПУ Хармута
с прореживанием по времени для N=8
Проверка. Выполним проверку алгоритма на примере коэффициента
X (6) .
Он будет равен
X (6)  x(1,1) (0)  x(1,1) (1)  x(1) (0)  x(1) (1)  x(1) (3)  x(1) (2) 
 x0 (0)  x1 (0)  x1 (1)  x0 (1)  x1 (3)  x0 (3)  x0 (2)  x1 (2)  x(0)  x(1)  x(3)  x(2)  x(7) 
 x(6)  x(4)  x(5)  x(0)  x(1)  x(2)  x(3)  x(4)  x(5)  x(6)  x(7).
Это же значение
получается при прямом вычислении X (6) по значениям шестой функции
Хармута, приведенным в шестой строке матрицы Уолша-Хармута примера
4.20.
_______________ . _______________
Прореживание по частоте (спектру).
Применение термина
«прореживание по частоте» для БПУ не совсем корректно, поскольку
понятие частоты не применимо к системам Хармута и Адамара. Более
подходящим было бы использование здесь термина «прореживание по
спектру», отражающего факт прореженного представления отсчетов
вычисляемого в быстрых алгоритмах этого типа спектра. Однако, следуя
сложившейся в технической литературе традиции [5, 45], сохраним принятую
в БПФ терминологию и при разработке БПУ-Пэли и БПУ–Хармута. БПУАдамара, как будет показано далее, строятся на комбинации способов
прореживания по времени и частоте, чем существенно отличаются от других
441
БПУ, и для них целесообразно использовать особую терминологию. Все
вышесказанное распространяется и на БПФ в базисах функций ВиленкинаКрестенсона, рассматриваемые в следующем параграфе.
Разобъем N-точечную выборку входного сигнала на две
соприкасающиеся промежуточные выборки x0 (i1 ) и x1 (i1 ) , первую из которых
образуем из первой половины отсчетов, а вторую – из второй половины, т.е.
приняв x0 (i1 )  x(i1 ) , а x1 (i1 )  x(i1  N / 2), i1  0, 1, ..., N / 2 1. Тогда полный спектр
(6.82) можно представить следующим образом:
X (k ) 
N / 2 1

i1  0

x(i1 ) wal (k , i1 / N ) 
N / 2 1

i1  0
N / 2 1
 x(i  N / 2)wal (k , (i  N / 2) / N ) 
1
i1  0
x0 (i1 ) wal (k , i1 / N ) 
1
N / 2 1
 x (i )wal (k , (i  N / 2) / N ).
i1  0
1
1
1
Но wal (k ,( i1  N / 2) / N )  wal (k ,(i1 () 2 N / 2) / N )  wal (k , i1 / N )wal ( N / 2, k / N ).
Поэтому
X (k ) 
N / 2 1

i1  0
x0 (i1 ) wal (k , i1 / N )  wal ( N / 2, k / N )
N / 2 1
 x (i )wal (k , i / N ).
i1  0
1
1
(6.102)
1
Теперь с помощью этого выражения запишем спектральные
коэффициенты Пэли и Хармута с четными и нечетными номерами:
X (2k1 ) 
X (2k1  1) 
Здесь
N / 2 1

i1  0
N / 2 1

i1  0
x0 (i1 ) wal (2k1 , i1 / N )  wal ( N / 2, 2k1 / N )
N / 2 1
 x (i )wal (2k , i / N ),
x0 (i1 ) wal (2k1  1, i1 / N )  wal ( N / 2, (2k1  1) / N )
k1  0, 1, ..., N / 2  1 .
Поскольку
1
i1  0
1
1
N / 2 1
 x (i )wal (2k
1
i1  0
1
1
1
 1, i1 / N ).
wal (2k1  1, i1 / N )  wal (2k1 ()21, i1 / N ) 
 wal (2k1 , i1 / N )  wal (1, i1 / N ), а для систем Пэли и
Хармута
wal (2k1 , i1 / N ) 
 wal (k1 , 2 i1 / N )  wal (k1 , i1 /( N / 2)) и wal (1, i1 / N )  1 , то
X (2k1 ) 
N / 2 1

i1  0
X (2k1  1) 
x0 (i1 ) wal (k1 , i1 /( N / 2))  wal ( N / 2, 2k1 / N )
N / 2 1

i1  0
N / 2 1
 x (i )wal (k , i /( N / 2)),
i1  0
x0 (i1 ) wal (k1 , i1 /( N / 2))  wal ( N / 2, (2k1  1) / N )
1
1
1
1
N / 2 1
 x (i )wal (k , i /( N / 2)).
i1  0
1
1
1
1
Сравнивая эти выражения с выражениями (6.84), можно получить
X (2k1 )  X (0) (k1 )  wal ( N / 2, 2k1 / N ) X (1) (k1 ),
X (2k1  1)  X (0) (k1 )  wal ( N / 2, ( 2k1  1) / N ) X (1) ( k1).
Для системы Пэли wal ( N / 2, 2k1 / N )  1, wal ( N / 2, (2k1  1) / N )  1, а для системы
Хармута wal ( N / 2, 2k1 / N )  (1) k , wal ( N / 2, (2k1  1) / N )  (1) k . Поэтому в
1
1
окончательном виде получаем:
442
- в системе Пэли


X (2k1  1)  X (0) (k1 )  X (1) (k1 ), 

k1  0, 1, ..., N / 2  1,

X (2k1 )  X (0) (k1 )  X (1) (k1 ),
(6.103)
- в системе Хармута


X (2k1  1)  X (0) (k1 )  (1)k1 X (1) (k1 ), 

k1  0, 1, ..., N / 2  1.

X (2k1 )  X (0) (k1 )  (1) k1 X (1) (k1 ),
(6.104)
Соотношения (6.103) и (6.104) определяют алгоритмы БПУ для
упорядочений Пэли и Хармута соответственно на первом уровне
прореживания по частоте. Для произвольного m-го уровня прореживания эти
алгоритмы записываются следующим образом:
- в системе Пэли
(  ,  ,..., ,1)
X ( 1 ,2 ,...,m1 ) (2km )  X ( 1 ,2 ,...,m1 ,0) (km )  X 1 2 m1 (km ),
X ( 1 ,2 ,...,m1 ) (2km  1)  X
( 1 ,  2 ,..., m1 ,1)
(6.105)
(km )  X ( 1 ,2 ,...,m1 ,1) (km ),
- системе Хармута
X ( 1 ,2 ,...,m1 ) (2km )  X ( 1 ,2 ,...,m1 ,0) (km )  (-1) km X ( 1 ,2 ,...,m1 ,1) (km ),
X
( 1 ,  2 ,..., m1 )
где
(2km )  X
( 1 ,  2 ,...,  m1 ,0)
(km )  (-1)
km
X
km  0, 1, ..., 2n  m  1;    0, 1;   1, 2, ..., m  1.
( 1 , 2 ,..., m1 ,1)
В
этих
(6.106)
(km ),
выражениях
промежуточные спектры описываются соотношениями (6.93), в которых в
nm
случае системы Хармута вместо функций pal (km , im / 2 ) необходимо
nm
использовать функции har (km , im / 2 ) , а промежуточные выборки равны
x1 ,2 ,...,m1 ,0 (im )  x(im  2nm1 m1    2n2 2  2n1 1 ),
(6.107)
x1 ,2 ,...,m1 ,1 (im )  x(im  2nm  2nm1 m1    2n2 2  2n1 1 ).
Изменяя в алгоритмах (6.105), (6.106), (6.107) величину m от 1 до n-1,
можно описать процесс синтеза полных БПУ-Пэли и БПУ-Хармута с
прореживанием по частоте. Для организации процедуры быстрого
вычисления спектров Уолша-Пэли и Уолша-Хармута переменную m следует
изменять в обратном порядке, используя в качестве начальных значений
443
спектры (6.95)
прореживания:
следующих
2-точечных
выборок
на (n-1)-м уровне
{x1 ,2 ,...,n1 (0)}  {x(2n1  22 n2   2n2 2  2n1 1 )},
{x1 ,2 ,...,n1 (1)}  {x(1  2n1  2 n2   2
2
n 2
(6.108)
n1
2  2 1 )}.
Результатом будет полный спектр X (k1 ) и X (k1  N / 2) , получаемый на первом
уровне. Сигнальные графы полных БПУ-Пэли и БПУ-Хармута с
прореживанием по частоте так же, как и их аналоги с прореживанием по
времени, будут содержать (n  1) уровней по N узлов в каждом уровне. Для их
реализации потребуется выполнить число сложений, описываемое все той же
формулой (6.96). Таким образом, по вычислительной сложности алгоритмы
БПУ-Пэли и БПУ-Хармута для различных способов прореживания
идентичны. Как покажем ниже, этот же вывод справедлив и для БПУАдамара.
Пример 6.25. Записать полный алгоритм БПУ-Пэли с прореживанием
по частоте и построить его сигнальный граф для N=8.
Решение. Величина n в этом случае равна 3 и полный алгоритм будет
иметь 2 уровня прореживания. В соответствии с алгоритмом (6.105), (6.93),
(6.108) получим:
- начальные данные:
x0,0 (i2 )  x(i2 )  {x(0), x(1)}; x0,1 (i2 )  x(i2  2)  {x(2), x(3)};
x1,0 (i2 )  x(i2  4)  {x(4), x(5)}; x1,1 (i2 )  x(i2  6)  {x(6), x(7)}.
Поскольку pal (0, i2 / 2)  {1,1} , а pal (1, i2 / 2)  {1, 1} , то
X (0,0) (0)  x0,0 (0)  x0,0 (1)  x(0)  x(1); X (0,0) (1)  x0,0 (0)  x0,0 (1)  x(0)  x(1);
X (0,1) (0)  x0,1 (0)  x0,1 (1)  x(2)  x(3); X (0,1) (1)  x0,1 (0)  x0,1 (1)  x(2)  x(3);
X (1,0) (0)  x1,0 (0)  x1,0 (1)  x(4)  x(5); X (1,0) (1)  x1,0 (0)  x1,0 (1)  x(4)  x(5);
X (1,1) (0)  x1,1 (0)  x1,1 (1)  x(6)  x(7); X (1,1) (1)  x1,1 (0)  x1,1 (1)  x(6)  x(7);
- на втором уровне (m  2, 1 , 2  0,1; i2 , k2  0,1; k1  0, 1, 2, 3) :
X (0) (0)  X (0,0) (0)  X (0,1) (0); X (0) (1)  X (0,0) (0)  X (0,1) (0);
X (0) (2)  X (0,0) (1)  X (0,1) (1); X (0) (3)  X (0,0) (1)  X (0,1) (1);
X (1) (0)  X (1,0) (0)  X (1,1) (0); X (1) (1)  X (1,0) (0)  X (1,1) (0);
X (1) (2)  X (1,0) (1)  X (1,1) (1); X (1) (3)  X (1,0) (1)  X (1,1) (1);
444
- на первом уровне (m  1, k1  0, 1, 2, 3) :
X (0)  X (0) (0)  X (1) (0); X (1)  X (0) (0)  X (1) (0);
X (2)  X (0) (1)  X (1) (1); X (3)  X (0) (1)  X (1) (1);
X (4)  X (0) (2)  X (1) (2); X (5)  X (0) (2)  X (1) (2);
X (6)  X (0) (3)  X (1) (3); X (7)  X (0) (3)  X (1) (3).
Сигнальный граф этого алгоритма приведен на рис. 6.15.
Проверка. Выполним её для коэффициента Х(6). По алгоритму он
будет равен X (6)  X (0) (3)  X (1) (3)  X (0,0) (1)  X (0,1) (1)  X (1,0) (1)  X (1,1) (1)  x(0)  x(1) 
 x(2)  x(3)  x(4)  x(5)  x(6)  x(7)
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
и совпадает с результатом примера 6.23.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(4)
Х(2)
Х(6)
Х(1)
Х(5)
Х(3)
Х(7)
Рис. 6.15. Сигнальный граф полного БПУ Пэли
с прореживанием по спектру для N=8
_______________ . _______________
Пример 6.26. Записать полный алгоритм БПУ-Хармута с
прореживанием по частоте и построить его сигнальный граф для N=8.
Решение. Этот алгоритм также имеет два уровня прореживания.
Начальные значения
x1 ,2 (i2 )
и
X ( 1 ,2 ) (k2 ) здесь
предыдущем примере. Промежуточные спектры
такие же, как и в
X ( 1 ) (k1 )
уровне вычисляются по общим уравнениям (6.106) и равны:
X (0) (0)  X (0,0) (0)  X (0,1) (0); X (0) (1)  X (0,0) (0)  X (0,1) (0);
X (0) (2)  X (0,0) (1)  X (0,1) (1); X (0) (3)  X (0,0) (1)  X (0,1) (1);
X (1) (0)  X (1,0) (0)  X (1,1) (0); X (1) (1)  X (1,0) (0)  X (1,1) (0);
445
на втором
X (1) (2)  X (1,0) (1)  X (1,1) (1); X (1) (3)  X (1,0) (1)  X (1,1) (1).
На первом уровне прореживания в соответствии с теми же уравнениями
(6.106) получаем:
X (0)  X (0) (0)  X (1) (0); X (1)  X (0) (0)  X (1) (0);
X (2)  X (0) (1)  X (1) (1); X (3)  X (0) (1)  X (1) (1);
X (4)  X (0) (2)  X (1) (2); X (5)  X (0) (2)  X (1) (2);
X (6)  X (0) (3)  X (1) (3); X (7)  X (0) (3)  X (1) (3).
Сигнальный граф этого алгоритма приведен на рис. 6.16.
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(4)
Х(2)
Х(6)
Х(1)
Х(5)
Х(3)
Х(7)
Рис. 6.16. Сигнальный граф полного БПУ Хармута
с прореживанием по спектру для N=8
Проверка. Проверку выполним на примере коэффициента X (6) . Из
приведенного алгоритма следует, что X (6)  X (0) (3)  X (1) (3)  X (0,0) (1)  X (0,1) (1) 
 X (1,0) (1)  X (1,1) (1)  x(0)  x(1)  x(2)  x(3)  x(4)  x(5)  x(6)  x(7).
Полученное
его
значение совпадает со значением, найденным в примере 6.24 по алгоритму
БПУ-Хармута с прореживанием по времени.
_______________ . _______________
Обратимся теперь к системе Адамара. Из формулы (6.88) функций
Уолша-Адамара следует, что в аналитической записи этих функций значения
двоичных разрядов индексов k и i располагаются в согласованном порядке:
первый с первым, второй со вторым и т.д. Поэтому простая взаимосвязь
между N-точечными и N/2-точечными базисными функциями в этой системе
возможна только для одинаковых законов изменения k и i . При i  2i1 только
для k  2k1
446
n1
k1( m )i1( m )
had (2k1 , 2i1 / N )  (1) m1
 had (k1, i1 /( N / 2)),
(6.109)
а при i  i1 только для k  k1
n1
 k1( m )i1( m )
had (k1 , i1 / N )  (1) m1
 had (k1 , i1 /( N / 2)).
(6.110)
Это свойство является следствием блочной структуры матрицы Адамара.
Формулы (6.109) и (6.110) создают математические предпосылки для
построения эффективных алгоритмов БПУ-Адамара. При этом из них
следует, что при синтезе БПУ-Адамара классические способы прореживания
неприменимы, но возможно их комбинированное использование, т.е.
возможна организация двух типов быстрых алгоритмов на основе
прореженного порядка следования отсчетов сигнала и спектра и на основе
естественного порядка следования отсчетов сигнала и спектра.
Алгоритмы БПУ-Адамара с прореженным порядком следования
отсчетов сигнала и спектра. Сохраним для отсчетов сигнала прореживание по
времени и вернемся к уравнению (6.85) для полного спектра. Запишем с его
помощью раздельно две части спектральных коэффициентов, образованных
из составляющих с четными и нечетными номерами соответственно. Для
первой части k  2k1 и
X (2k1 ) 
N / 2 1
N / 2 1
 x (i )had (2k , 2i / N )  had (2k ,1/ N )  x (i )had (2k , 2i / N ).
i1  0
0
1
1
1
1
Для второй - k  2k1  1 и
X (2k1  1) 
Но
и
N / 2 1
i1  0
1 1
1
N / 2 1
 x (i )had (2k  1, 2i / N )  had (2k  1,1/ N )  x (i )had (2k
i1  0
0
1
1
1
1
i1  0
1 1
1
1
 1, 2i1 / N ).
had (2k1  1, 2i1 / N )  had (2k1 ()21, 2i1 / N )  had (2k1 , 2i1 / N )  had (1, 2i1 / N ),
had (2k1 ,1/ N )  had (1, 2k1 / N ), had (2k1  1, 1/ N )  had (1, (2k1  1) / N )
had (1, 2k1 / N )  1, had (1,(2k1  1) / N )  1.
Поэтому с учетом формулы (6.109) и соотношений (6.84) окончательно
получаем


X (2k1  1)  X (k1 )  X (k1 ), 

k1  0, 1, ..., N / 2  1.

X (2k1 )  X (0) (k1 )  X (1) (k1 ),
(0)
447
(1)
(6.111)
Эти уравнения и представляют собой аналитическое описание
алгоритма БПУ-Адамара на первом уровне прореживания. В нем, как и в
алгоритме БПУ-Пэли с прореживанием по частоте (6.103) имеется явная и
простая связь спектра входной выборки со спектрами промежуточных
выборок. Отличие состоит только в последовательности обработки отсчетов
входного сигнала.
Ясно, что данный алгоритм можно использовать и для вычисления
промежуточных спектров, вводя новые уровни прореживания. На m уровне
алгоритм принимает следующий вид записи:


( 1 ,  2 ,...,  m1, 0)
( 1 ,  2 ,...,  m1 )
( 1 ,  2 ,...,  m1 ,1)
X
(2km  1)  X
(km )  X
(km ), 
 (6.112)
nm
   0, 1;   1, 2, ..., m  1; km  0, 1, ..., 2  1.

X ( 1 ,2 ...,m1 ) (2km )  X ( 1 , 2 ,..., m1 ,0) (km )  X ( 1 , 2 ,... m1 ,1) (km ),
где
X
X
(1 ,2 ,...,m1 ,0)
(1 ,2 ,...,m1 ,1)
( km ) 
( km ) 
2nm 1

im 0
2nm 1

im  0
а промежуточные выборки
x1 ,2 ,...,m1 ,0 (im )had (km , im 2mn ),
(6.113)
x1 ,2 ,...,m1 ,1 (im ) had (km , im 2mn ),
x 1 ,2 ,...,m1 ,0 (im )
и
x 1 ,2 ,...,m1 ,1(im ) задаются
формулами (6.94). Изменяя переменную m от 1 до n-1 с помощью этих
выражений можно записать все стадии процесса быстрого анализа спектра
Уолша-Адамара, получив полное БПУ-Адамара. Сама организация
вычислений по этому алгоритму, как и по алгоритму БПУ-Пэли (6.92)÷(6.94),
требует изменения индекса m от n-1 до 1. Начальными данными в этом
случае также будут являться спектры 2-точечных выборок (6.95) на (n-1)-м
уровне прореживания, а результатом – полный спектр X (2k1 ) и X (2k1  1) ,
получаемый на первом уровне. Полному алгоритму БПУ-Адамара будет
соответствовать полный сигнальный граф, структура которого близка к
структуре графа БПУ-Пэли и содержит такое же число уровней и узлов.
Поэтому оценка (6.96) числа сложений будет справедлива и для БПУАдамара.
448
Пример 6.27. Записать полный алгоритм БПУ-Адамара первого типа и
построить его сигнальный граф для N=8.
Решение. В этом случае полный алгоритм БПУ-Адамара будет
содержать два уровня прореживания (m=1,2). Поэтому в соответствии с
алгоритмом (6.112), (6.113), (6.94), имеем:
- начальные данные: такие же, как в примере 6.23;
- на втором уровне прореживания
(m=2, 1 , 2  0, 1; i2 , k2  0, 1; k1  0, 1, 2, 3) :
X (0) (0)  X (0,0) (0)  X (0,1) (0); X (1) (0)  X (1,0) (0)  X (1,1) (0),
X (0) (1)  X (0,0) (0)  X (0,1) (0); X (1) (1)  X (1,0) (0)  X (1,1) (0),
X (0) (2)  X (0,0) (1)  X (0,1) (1); X (1) (2)  X (1,0) (1)  X (1,1) (1),
X (0) (3)  X (0,0) (1)  X (0,1) (1); X (1) (3)  X (1,0) (1)  X (1,1) (1);
- на первом уровне прореживания ( m1  1, k1  0, 1, 2, 3) :
X (0)  X (0) (0)  X (1) (0); X (1)  X (0) (0)  X (1) (0),
X (2)  X (0) (1)  X (1) (1); X (3)  X (0) (1)  X (1) (1),
X (4)  X (0) (2)  X (1) (2); X (5)  X (0) (2)  X (1) (2),
X (6)  X (0) (3)  X (1) (3); X (7)  X (0) (3)  X (1) (3).
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(4)
Х(2)
Х(6)
Х(1)
Х(5)
Х(3)
Х(7)
Рис. 6.17. Сигнальный граф полного БПУ Адамара
первого типа для N=8
Сигнальный граф, иллюстрирующий этот алгоритм, приведен на рис.
6.17. Структура этого графа совпадает со структурой графов БПУ-Пэли с
прореживаниями по времени (рис. 6.13) и частоте (рис. 6.15). Но порядки
449
следования спектра, либо вид промежуточных выборок сигнала в них
различны.
Проверка. Воспользуемся шестым спектральным коэффициентом. По
приведенному алгоритму получим
X (6)  X (0) (3)  X (1) (3)  X (0,0) (1)  X (0,1) (1) 
 X (1,0) (1)  X (1,1) (1)  x(0)  x(1)  x(2)  x(3)  x(4)  x(5)  x(6)  x(7). Это значение X (6)
совпадает с его значением, получаемым прямым расчетом по значениям
функции , содержащимся в шестой строке матрицы Адамара примера 4.15.
_______________ . ______________
Алгоритмы БПУ-Адамара с естественным порядком следования
отсчетов сигнала и спектра. Сигнал разделим на две соприкасающиеся
секции так, как это делалось в алгоритмах БПФ с прореживанием по частоте.
Затем с помощью уравнения (6.102) запишем спектральные коэффициенты
сначала первой половины спектра Адамара X (k1 ) , а затем второй его
половины X (k1  N / 2), k1  0, 1, ..., N / 2 1:
X (k1 ) 
N / 2 1

i1  0
x0 (i1 )had (k1 , i1 / N )  had ( N / 2, k1 / N )
X (k1  N / 2) 
N / 2 1
 x (i )had (k , i / N ),
1 1
i1  0
1 1
N / 2 1
 x (i )had (k  N / 2, i / N ) 
i1  0
0
1
1
1
N / 2 1
 had ( N / 2,(k1  N / 2) / N )  x1 (i1 )had (k1  N / 2, i1 / N ).
i1  0
Если теперь учесть в этих выражениях тот факт, что
had (k1  N / 2, i1 / N )  had (k1 ()2 N / 2, i1 / N )  had (k1 , i1 / N )had ( N / 2, i1 / N )
и had ( N / 2, i1 / N )  1, а также соотношение (6.110), то после преобразования и
сравнения с зависимостями (6.84) получим
X (k1 )  X (0) (k1 )  had ( N / 2, k1 / N ) X (1) (k1 ),
X (k1  N / 2)  X (0) (k1 )  had ( N / 2, (k1  N / 2) / N ) X (1) (k1 ).
Функции
had ( N / 2, k1 / N )  1
и
had ( N / 2,(k1  N / 2) / N )  1.
Поэтому
в
окончательном виде


X (k1  N / 2)  X (0) (k1 )  X (1) (k1 ), 

k1  0, 1, ..., N / 2  1.

X (k1 )  X (0) (k1 )  X (1) (k1 ),
(6.114)
Эти уравнения и задают алгоритм БПУ-Адамара второго типа на первом
уровне прореживания. По форме записи они совпадают с уравнениями (6.91)
450
алгоритма БПУ-Пэли с прореживанием по времени и отличаются только
правилом образования промежуточных выборок сигнала.
На произвольном m-м уровне прореживания алгоритм БПУ-Адамара
выглядит следующим образом:


( 1 ,  2 ,...,  m1, 0)
( 1 ,  2 ,...,  m1 )
( 1 ,  2 ,...,  m1 ,1)
nm
X
(km  2 )  X
(km )  X
(km ), 
 (6.115)
nm
   0, 1;   1, 2, ..., m  1; km  0, 1, ..., 2  1.

X ( 1 ,2 ...,m1 ) (km )  X ( 1 ,2 ,...,m1 ,0) (km )  X ( 1 ,2 ,...m1 ,1) (km ),
В
этих
выражениях
промежуточные
соотношениями (6.93) при замене функций
спектры
описываются
pal (km , im / 2n  m ) на функции
had (km , im / 2n  m ) , а промежуточные выборки – соотношениями (6.107).
Изменяя параметр m от 1 до n-1, с помощью зависимостей (6.115) можно
описать полный алгоритм БПУ-Адамара, а изменяя его в обратном порядке
от n-1 до 1, – организовать процесс быстрого вычисления спектра УолшаАдамара, используя начальные данные (6.95), (6.108). В результате на
первом уровне прореживания будет получен полный спектр
X (k1 )
и
X (k1  N / 2).
Сигнальный граф, иллюстрирующий полный БПУ-Адамара, будет
иметь структуру, совпадающую со структурой
графа БПУ-Пэли с
прореживанием по времени, но с другим порядком следования отсчетов
входного сигнала, либо со структурой БПУ-Пэли с прореживанием по
частоте, но с другим порядком следования спектральных коэффициентов.
Пример 6.28. Записать полный алгоритм БПУ-Адамара второго типа и
построить его сигнальный граф для N=8.
Решение. Полный алгоритм будет содержать два уровня прореживания.
Промежуточные выборки
x1 ,2 (i2 ) и их спектры X (  , ) (k2 ) имеют те же
1
2
значения, что и в примере 6.25. Промежуточные же спектры X
( 1 )
(k1 ) на
втором уровне в соответствии с алгоритмом (6.115) примут следующий вид:
X (0) (0)  X (0,0) (0)  X (0,1) (0); X (0) (2)  X (0,0) (0)  X (0,1) (0);
X (0) (1)  X (0,0) (1)  X (0,1) (1); X (0) (3)  X (0,0) (1)  X (0,1) (1);
X (1) (0)  X (1,0) (0)  X (1,1) (0); X (1) (2)  X (1,0) (0)  X (1,1) (0);
X (1) (1)  X (1,0) (1)  X (1,1) (1); X (1) (3)  X (1,0) (1)  X (1,1) (1).
451
На первом уровне прореживания, используя уравнения (6.114), получаем:
X (0)  X (0) (0)  X (1) (0); X (4)  X (0) (0)  X (1) (0);
X (1)  X (0) (1)  X (1) (1); X (5)  X (0) (1)  X (1) (1);
X (2)  X (0) (2)  X (1) (2); X (6)  X (0) (2)  X (1) (2);
X (3)  X (0) (3)  X (1) (3); X (7)  X (0) (3)  X (1) (3).
Сигнальный граф этого алгоритма приведен на рис. 6.18. Структура
этого графа идентична структуре графа БПУ-Пэли примера 6.25 (см. рис.
6.15). Отличие состоит только в
порядке следования спектральных
коэффициентов.
Проверка.
Вычислим по приведенному алгоритму шестой
спектральный коэффициент: X (6)  X (0) (2)  X (1) (2)  X (0,0) (0)  X (0,1) (0)  X (1,0) (0) 
 X (1,1) (0)  x(0)  x(1)  x(2)  x(3)  x(4)  x(5)  x(6)  x(7).
Результат
совпадает
с
результатом примера 6.27 и с результатом прямого вычисления X (6) по
значениям функции had (6, i / 8) .
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.18. Сигнальный граф полного БПУ Адамара
второго типа для N=8
_______________ . _______________
Во всех алгоритмах БПУ, кроме БПУ-Хармута с прореживанием по
времени, спектр исходного сигнала связан со спектрами промежуточных
выборок. В этом состоит принципиальное отличие этих алгоритмов от их
аналогов в базисе ДЭФ, где такая связь имеет место только в БПФ КулиТьюки с прореживанием по времени. Все приведенные в этом параграфе
БПУ хорошо структурированы, легко программируются и
являются
эффективным средством анализа спектра Уолша.
452
6.5. Быстрые преобразования Виленкина-Крестенсона
Подходы к разработке быстрых преобразований Уолша, предложенные
в предыдущем параграфе, могут быть обобщены и использованы для
решения задачи синтеза алгоритмов быстрого преобразования ВиленкинаКрестенсона (БПВК). При этом, поскольку в ВКФ N  p n , где n и p ‒ любые
положительные целые числа, БПВК будут представлять собой семейство
Кули-Тьюки – подобных алгоритмов по произвольному основанию p .1
Рассмотрим методику синтеза БПВК, основанную на скалярной форме
записи ДПФ и различных способах прореживания входного сигнала и его
спектра, для трех наиболее известных систем ВКФ (Пэли, Хармута и
Адамара).
Сначала запишем прямое ДПФ в базисе ВКФ без нормирующего
множителя 1/ N :
N 1
X (k )   x(i )Wal  (k1 , i / p n ), k  0, 1, ..., N 1.
i 0
(6.116)
Для его выполнения в общем случае необходимо затратить
M П  N 2 , AП  N ( N  1)
тривиальных и нетривиальных комплексных умножений и сложений. С
целью уменьшения их числа преобразуем прямой алгоритм (6.116) к более
эффективной форме записи, использовав прореживание выборок входного
сигнала и его спектра.
Прореживание по времени. Создадим из N-точечной выборки сигнала
x(i )
p
промежуточных выборок, включив в каждую 1 -ю из них x (i1 )
1
отсчеты с номерами pi1  1 , т.е. примем
x1 (i1 )  x( pi1  1 ), 1  0, 1, ..., p 1; i1  0, 1, ..., pn1 1 .
Спектр этих выборок будет равен
X ( 1 ) (k1 ) 
p n1 1
x
i1 0
1
(i1 )Wal  (k1 , i1 / p n1 ), k1  0, 1, ..., p n1  1.
(6.117)
Полный же спектр (6.116) можно представить следующим образом:
p 1
X (k )  
1  0
p n1 1
x
i1  0
1
(i1 )Wal  (k ,( pi1  1 ) / p n ) 
453
(6.118)
p 1

1 0
где учтено, что
p n1 1
x
i1 0
1
(i1 )Wal  (k , 1 / p n )Wal  (k , pi1 / p n ),
pi1  1  pi1 ( ) p 1 и
Wal  (k ,( pi1  1 ) / pn )  Wal  (k ,( pi1 () p 1 ) / pn )  Wal  (k , pi1 / p n ) Wal  (k , 1 / p n ) .
Рассмотрим теперь все составляющие полного спектра с номерами
k  k1  pn1q1  k1 () p pn1q1 , где q1  0, 1, ..., p  1, а k1  0, 1, ..., p n 1  1. Они с учетом
свойств мультипликативности и двойственности ВКФ запишутся так:
p 1
X (k1  p n1q1 )   Wal  (1 , k1 / p n )
1  0
p
n1
Wal  (1 , p n 1q1 / p n ) 
(6.119)
1
  x1 (i1 )Wal  (k1 , pi1 / p n ) Wal  ( p n 1q1 , pi1 / p n ).
i1 0
Дальнейшее упрощение этого выражения зависит от значений функций
Виленкина-Крестенсона, которые, в свою очередь, зависят от способа
упорядочения ВКФ в системе.
Для их определения по аналогии с функциями Уолша воспользуемся
экспоненциальной формой записи ВКФ с обозначением разрядов p -ичных
кодов номера функции и ее аргумента соответствующими переменными с
верхними индексами, заключенными в круглые скобки. Тогда для системы
ВКФ-Пэли в соответствии с выражением (5.4) получим
2 n ( m ) ( n 1 m )
Pal (k1 , pi1 / p )  exp( j
)
k i
p m 1

n
2 n 1 ( m ) ( n 1m )
 exp( j
k1 i1
)  Pal  (k1 , i1 / p n 1 ),

p m 1
2 ( n ) (1)
2
Pal  ( p n 1q1 , pi1 / p n )  exp( j
k i )  exp( j
q1  0)  1,
p
p
Pal  (1 , k1 / p n )  exp( j
(6.120)
(6.121)
2
2
1k1( n ) )  exp( j 1  0)  1,
p
p
(6.122)
2
1q1 )  Wp1q1 ,
p
(6.123)
Pal  (1 , p n 1q1 / p n )  exp( j
где, как и ранее, Wp  exp( j 2 / p) . При записи этих соотношений учтено, что p
-ичные коды чисел k1 имеют нулевое значение в старшем разряде, чисел pi1
n 1
‒ нулевое значение в младшем разряде, чисел p q1 ‒ нулевые значения во
454
всех
разрядах, кроме старшего, а чисел 1 ‒ нулевые значения во всех
разрядах, кроме младшего.
Для системы ВКФ-Хармута (см. формулу (5.8)):
2 n
Har (k1 , pi1 / p )  exp( j
 k ( m )  i ( n 1 m ) ) 

p m 1
(6.124)
2 n 1 ( m ) ( n 1 m )
 exp( j
k1  i
)  Har  (k1 , i1 / p n 1 ),

p m 1
(1)
2 (2)
2 (1)
Har  ( p n 1q1 , pi1 / p n )  exp( j
q1i )  exp( j
q1 i1 )  Wp q1i1 , (6.125)
p
p

n
а
Har  (1 , k1 / p n )  Pal  (1 , k1 / p n )  1,
(6.126)
Har  (1, pn1q1 / pn )  Pal  (1, pn1q1 / pn )  Wp1q1 .
(6.127)
( n)
( n)
( n)
При выводе этих формул использовано то, что  k  k () p 0  k ,
(n)
обобщенный код Грея значений k при k  0 совпадает с кодом Грея
n 1
значений k1 , обобщенный код Грея чисел q1 p
имеет
ненулевые
значения, равные q1 , только в двух старших разрядах, обобщенный код Грея
числа 1 равен самому числу, а второй разряд чисел pi1 совпадает с первым
разрядом чисел i1 . Кроме того, учтено, что первые p ВКФ в системах Пэли и
Хармута совпадают между собой и первые p значений этих функций равны
1 (см. (6.122)).
Для системы ВКФ-Адамара из формулы (5.7) получаем

Har (k1 , pi1 / p
n 1
2 n 1 ( m ) ( m )
)  exp( j
k i )  Had  (k1 , i1 / p n 1 ).

p m2
В этой системе нет простой аналитической связи между малоточечными и
многоточечными ВКФ при прореживании по времени. Ее можно получить
только при совпадающем законе изменения номера и аргумента базисной
функции, а это возможно только при одинаковом порядке следования
отсчетов сигнала и спектра.
Таким образом, для систем ВКФ при классической формулировке
прореживания по времени упрощение прямого алгоритма анализа спектра
возможно только для упорядочений Пэли и Хармута. При синтезе БПВКАдамара закон прореживание спектра должен совпадать с законом
455
прореживания сигнала. Эти выводы по сути являются обобщением на случай
произвольного p аналогичных выводов, полученных ранее для систем
Уолша. Они позволяют продолжить процедуру построения алгоритмов БПВК
раздельно для каждой из систем ВКФ.
Для системы Пэли, используя формулы (6.120)÷(6.123), выражение
(6.119) для полного спектра можно преобразовать к следующему виду:
p 1
p n1 1
1 0
i1  0
X (k  p n1q1 )   Wp1q1

x1 (i1 )Pal  (k1 , i1 / p n1 ).
Здесь вторая сумма определяет спектр X
x 1 (i1 )
( 1 )
(k1 ) промежуточной выборки
(см. зависимость (6.117)). Поэтому
p 1
X (k1  p q1 )   Wp1q1 X ( 1 ) (k1 )
n 1
1  0
или с учетом того, что Wp0  1
n 1
X (k1  p q1 )  X
p 1
(0)
(k1 )   X ( 1 ) (k1 )Wp1q1 ,
(6.128)
1 1
q1  0, 1, ..., p  1; k1  0, 1, ..., p
n 1
 1.
Это выражение и задает алгоритм БПВК-Пэли на первом уровне
прореживания по времени. В нем полный спектр сигнала выражается через
сумму произведений промежуточных спектров на фазовые множители
Wp1q1 . В виде (6.128) алгоритм БПВК-Пэли подобен аналогичному БПФ
Кули-Тьюки по основанию p (см. соотношение (6.32)), а при p =2 совпадает
с алгоритмом БПУ-Пэли (6.91).
Продолжая прореживание, на произвольном m -м уровне получим
БПВК-Пэли в следующем виде записи:
X
(1 ,2 ,...,m1 )
(km  p
nm
qm )  X
( 1 , 2 ,...,  m1 ,0)
p 1
(km )   X ( 1 ,2 ,...,m ) (km ) Wpm qm ,
 m 1
q ,    0, 1, ..., p  1;   1, 2, ..., m; km  0,1,..., p
(6.129)
nm
 1,
где
X
(1 ,2 ,...,m )
( km ) 
p nm 1

im 0
x1 , 2,...,m (im ) Pal  (km , im / p nm ),
456
(6.130)
а
x1 ,2 ,...,m (im )  x( pmim  p m1m    p2  1 ).
(6.131)
Также, как и в случае с функциями Уолша, изменяя в соотношениях
(6.129)÷(6.131) m от 1 до n-1, с их помощью можно описать весь процесс
построения алгоритма быстрого анализа спектра ВКФ-Пэли для (n-1)
уровней прореживания, получив в итоге полный алгоритм БПВК-Пэли.
Промежуточные спектры на (n-1)-м уровне прореживания равны
X
(1 ,2 ,...,n1 )
(kn 1 ) 
p 1
x
in1  0
1 ,2 ,..., n1 )
 x1 ,2 ,...,n1 (0) 
и вычисляются с помощью
(in 1 ) Pal  (kn 1 , in 1 / p) 
p 1
x
in1 1
1 , 2 ,...,  n1
p -точечных
(6.132)
(in1 )Wp kn1in1
ДПФ над промежуточными
выборками на последнем уровне прореживания
x1 ,2 ,...,n1 (in1 )  x( pn1in1  pn2n1    p2  1 ).
(6.133)
При организации процесса вычисления спектра по БПВК-Пэли (6.129)
необходимо, как и в БПУ-Пэли, индекс m менять в обратном порядке
следования от n-1 до 1. В этом случае процесс вычисления по алгоритму
(6.129) будет итерационным с начальными значениями в виде спектров
(6.132) конечных выборок (6.133).
Подсчитаем количество операций, необходимых для реализации
полного алгоритма БПВК-Пэли. Начнем со сложений. На каждом m-м уровне
прореживания в общем случае на вычисление одного спектрального
коэффициента по уравнению (6.129) затрачивается (p-1) комплексных
n
сложений. Всего таких коэффициентов p , поэтому общее число сложений
n
на m-м уровне равно ( p  1) p . Такое же число сложений необходимо и для
вычисления всех начальных спектров на (n  1) -м уровне прореживания. В
итоге получаем, что полный алгоритм БПВК-Пэли с (n  1) -м уровнями
прореживания потребует в общем случае затрат
AБ  n( p 1) pn  ( p 1) N log p N
(6.134)
сложений.
Теперь найдем число умножений. При одноразовой реализации
уравнения (6.129) в общем случае затрачивается ( p  1) умножений на
457
фазовые множители. Число таких реализаций равно ( p  1) p n1 , поскольку
при qm  0 умножения становятся тривиальными и их можно не выполнять.
Поэтому на m-м уровне прореживания алгоритма потребуется выполнение
( p  1)2 p n1 умножений. Столько же умножений будет затрачено и на
вычисление начальных спектров (6.132). Тогда общее число умножений в
БПВК-Пэли будет равно
M Б  n( p  1)2 p n1  ( p  1)2
N
log p N .
p
(6.135)
Следует иметь в виду, что эта формула дает верхнюю оценку числа
умножений в БПВК-Пэли. Для конкретных p и n число умножений можно
еще уменьшить, исключив из алгоритма дополнительные тривиальные
умножения. На этом основывается идея оптимизации алгоритмов БПВК.
При
p2
по
формулам
(6.134)
и
(6.135)
можно
получить
вычислительные характеристики БПУ-Пэли. Число умножений
MБ 
N
log 2 N ,
2
следующее при этом из формулы (6.135), будет соответствовать
действительности. Просто в базисе Уолша все эти умножения являются
тривиальными умножениями на 1 и не учитываются.
Полный БПВК-Пэли удобно представлять графически в виде
сигнального графа, который в этом случае будет иметь n  1 уровней по p n
узлов в каждом уровне. В каждом узле, кроме узлов первого (крайнего
левого) уровня, осуществляется суммирование p величин, поступающих с
узлов предыдущего уровня. «Бабочка» БПВК будет иметь многовходовой
вид и подобна «бабочке» БПФ Кули-Тьюки по основанию p . Поскольку
результат, получаемый в узлах, умножается на различные
фазовые
множители, то на графе эти умножения целесообразно показывать с
помощью стрелок в соответствующих ветвях графа, указывая либо не
указывая около них сами множители.
Пример 6.29. Записать полный алгоритм БПВК-Пэли с прореживанием
по времени и построить его сигнальный граф для N=9.
Решение. Поскольку 9  32 , то p  3, n  2 и алгоритм полного БПВКПэли будет иметь только один уровень прореживания. Поэтому для его
458
описания достаточно выражения (6.128) при начальных данных (6.132),
(6.133).
Определение промежуточных выборок.
В этом случае
x1 (i1 )  x(3i1  1 ), 1  0, 1, 2; i1  0, 1, 2.
Поэтому
x0 (i1 )  {x(0), x(3), x(6)}; x1 (i1 )  {x(1), x(4), x(7)}; x2 (i1 )  {x(2), x(5), x(8)}.
Расчет промежуточного спектра на первом уровне прореживания.
Так как
X (1 ) (k1 )  x1 (0)  x1 (1)W3 k1  x1 (2)W32k1 , k1  0, 1, 2 ,
то
X (0) (0)  x0 (0)  x0 (1)  x0 (2)  x(0)  x(3)  x(6);
X (0) (1)  x0 (0)  x0 (1)W31  x0 (2)W32  x(0)  x(3)W31  x(6)W32 ;
X (0) (2)  x0 (0)  x0 (1)W32  x0 (2)W31  x(0)  x(3)W32  x(6)W31;
X (1) (0)  x1 (0)  x1 (1)  x1 (2)  x(1)  x(4)  x(7);
X (1) (1)  x1 (0)  x1 (1)W31  x1 (2)W32  x(1)  x(4)W31  x(7)W32 ;
X (1) (2)  x1 (0)  x1 (1)W32  x1 (2)W31  x(1)  x(4)W32  x(7)W31;
X (2) (0)  x2 (0)  x2 (1)  x2 (2)  x(2)  x(5)  x(8);
X (2) (1)  x2 (0)  x2 (1)W31  x2 (2)W32  x(2)  x(5)W31  x(8)W32;
X (2) (2)  x2 (0)  x2 (1)W32  x2 (2)W31  x(2)  x(5)W32  x(8)W31.
Расчет результирующего спектра.
Поскольку
X (k1  3q1 )  X (0) (k1 )  X (1) (k1 )W3 q1  X (2) (k1 )W32 q1 , q1 , k1  0, 1, 2,
то
X (0)  X (0) (0)  X (1) (0)  X (2) (0);
X (1)  X (0) (1)  X (1) (1)  X (2) (1);
X (2)  X (0) (2)  X (1) (2)  X (2) (2);
X (3)  X (0) (0)  X (1) (0)W31  X (2) (0)W32 ;
X (4)  X (0) (1)  X (1) (1)W31  X (2) (1)W32 ;
X (5)  X (0) (2)  X (1) (2)W31  X (2) (2)W32 ;
X (6)  X (0) (0)  X (1) (0)W32  X (2) (0)W31 ; X (7)  X (0) (1)  X (1) (1)W32  X (2) (1)W31 ;
X (8)  X (0) (2)  X (1) (2)W32  X (2) (2)W31 .
459
x(0)
x(3)
x(6)
x(1)
x(4)
x(7)
x(2)
x(5)
x(8)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
x(0)
Х(1)
x(3)
Х(2)
x(6)
Х(3)
x(1)
Х(4)
x(4)
Х(5)
x(7)
Х(6)
x(2)
Х(7)
x(5)
Х(8)
x(8)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
а)
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Х(8)
б)
Рис. 6.19. Сигнальный граф полного БПВК: а)Пэли и б)Хармута
с прореживанием по времени для N=9
Сигнальный граф этого алгоритма представлен на рис. 6.19а. Для его
реализации требуется выполнение 36 сложений и 24 нетривиальных
умножений, что соответствует оценкам (6.134), (6.135) при N=9.
Проверка. Для проверки вычислим по приведенному алгоритму
коэффициент Х(5). Он будет равен
X (5)  X (0) (2)  X (1) (2)W31  X (2) (2)W32 
 x(0)  x(3)W32  x(6)W31  W31[ x(1)  x(4)W32  x(7)W31 ]  W32 [ x(2)  x(5)W32  x(8)W31 ] 
 x(0)  x(1)W31  x(2)W32  x(3)W32  x(4)  x(5)W31  x(6)W31  x(7)W32  x(8).
Такой же
результат получается и при прямом вычислении Х(5) по значениям пятой
ВКФ-Пэли, приведенным в пятой строке матрицы (5.22).
_______________ . _______________
Если в общем выражении (6.119) учесть зависимости (6.124)÷(6.127),
то после преобразования получим уравнение для вычисления спектра
Виленкина-Крестенсона-Хармута
n 1
X (k1  p q1 ) 
p n1 1

i1  0
p 1
[  x1 (i1 )Wp ( 1 i1
(1)
1  0
Приняв в нем обозначение
460
) q1
]Har  (k1 , i1 / p n1 ).
p 1
x
( q1 )
(i1 )   x1 (i1 )W
1  0
 ( 1  i1(1) ) q1
p
p 1
  x( pi1  1 )Wp ( 1 i1
(1)
) q1
,
1  0
(6.136)
его можно переписать в более простом виде
X (k1  p n1q1 ) 
p n1 1

i1 0
x ( q1 ) (i1 ) Har  (k1 , i1 / p n1 ),
(6.137)
q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1.
Зависимости (6.136) и (6.137) представляют собой аналитическое
описание алгоритма БПВК-Хармута на первом уровне прореживания по
времени. В этом алгоритме искомый спектр не выражается через спектры
промежуточных выборок, однако наличие однотипных вычислительных
участков делает его в реализации проще прямого алгоритма (6.116).
Процедуру прореживания по времени можно применить и для
вычисления ДПФ (6.137), введя второй уровень прореживания, а затем
третий и т.д. до (n  1) -го уровня, получив в итоге полный алгоритм БПВКХармута. На произвольном m-уровне быстрый алгоритм имеет следующее
описание:
X ( km  p
nm
qm    p
n2
n 1
q2  p q1 ) 
p nm 1

im 0
x ( q1 ,q2 ,...,qm ) (im ) Har  (km , im / p nm ),
q  0, 1, ..., p  1;   1, 2, ..., m; km  0, 1, ..., p n  m  1,
(6.138)
где
x
( q1 , q2 ,...qm )
(im ) 
p 1

m 0
x ( q1 ,q2 ,...,qm1 ) ( pim   m )Wp( m im
(1)
В последнем выражении величина
кода числа
im(1)
) qm
.
(6.139)
означает первый разряд p -ичного
im .
В предельном случае при m  n 1 для полного алгоритма получаем
X (kn 1  pqn 1    p n 2 q2  p n 1q1 )  x ( q1 ,q2 ,...,qn1 ) (0) 
x
( q1 , q2 ,..., qn1 )
(0) 
p 1
x
in1 1
( q1 , q2 ,..., qn1 )
p 1
x
( q1 , q2 ,..., qn1 )
in1 1
(in 1 ) Har  (kn 1 , in 1 / p) 
(in 1 )Wp  kn1 in1 ,
q  0, 1, ..., p  1;   1, 2, ..., n  1; kn1  0, 1, ..., p  1,
461
(6.140)
где x
( q1 , q2 ,..., qn1 )
(in 1 ) 
p 1

 n1  0
x ( q1 ,q2 ,...,qn2 ) ( pin 1   n 1 )Wp  ( n1 in1 ) qn1 . (6.141)
(1)
Таким образом, в полном алгоритме БПВК-Хармута по уравнению
(6.139) рекуррентно вычисляются все
промежуточные величины
x ( q1 ,q2 ,...,qn1 ) (in 1 ) при начальных условиях (6.136), а затем с помощью
p-
ичного ДПФ (6.140) находятся все составляющие искомого спектра сигнала.
Полному БПВК-Хармута будет соответствовать сигнальный граф,
отличающийся по структуре от графа БПВК-Пэли, но имеющий такое же
число уровней, узлов и ветвей, содержащих умножения на фазовые
множители. Поэтому по сложности БПВК-Хармута идентичны БПВК-Пэли и
их вычислительные показатели также можно определить по формулам
(6.134) и (6.135).
Пример 6.30. Записать полный алгоритм БПВК-Хармута с
прореживанием по времени и построить его сигнальный граф для N=9.
Решение. Как и в предыдущем примере, здесь для вычисления спектра
по полному алгоритму понадобится только один уровень прореживания
(m  1) . Поэтому
x( q1 ) (i1 )  x(3i1 )W3 q1i1  x(3i1  1)W3 (1i1
(1)
(1)
) q1
 x(3i1  2)W3(2i
(1)
1 ) q1
; q1 , i1  0, 1, 2;
x(0) (0)  x(0)  x(1)  x(2); x(0) (1)  x(3)  x(4)  x(5); x(0) (2)  x(6)  x(7)  x(8);
x (1) (0)  x(0)  x(1)W31  x(2)W32 ; x (1) (1)  x(3)W31  x(4)W32  x(5); x (1) (2)  x(6)W32 
 x(7)  x(8)W31; x (2) (0)  x(0)  x(1)W32  x(2)W31 ; x (2) (1)  x(3)W32  x(4)W31  x(5);
x (2) (2)  x(6)W31  x(7)  x(8)W32 ;
X (k1  3q1 )  x ( q1 ) (0)  x ( q1 ) (1)W3 k1  x ( q1 ) (2)W32 k1 ; k1  0, 1, 2;
X (0)  x(0) (0)  x(0) (1)  x(0) (2); X (1)  x (0) (0)  x(0) (1)W31  x(0) (2)W32 ; X (2)  x (0) (0) 
 x (0) (1)W32  x (0) (2)W31 ; X (3)  x(1) (0)  x(1) (1)  x(1) (2); X (4)  x (1) (0)  x (1) (1)W31 
 x (1) (2)W32 ; X (5)  x (1) (0)  x (1) (1)W32  x(1) (2)W31 ; X (6)  x(2) (0)  x(2) (1)  x(2) (2);
X (7)  x (2) (0)  x (2) (1)W31  x(2) (2)W32 ; X (8)  x (2) (0)  x (2) (1)W32  x (2) (2)W31.
Сигнальный граф этого алгоритма приведен на рис. 6.19б. Число
сложений и умножений в нем такое же, что и в графе БПВК-Пэли рис. 6.19а.
Проверка. X (5)  x (1) (0)  x(1) (1)W32  x(1) (2)W31  x(0)  x(1)W31  x(2)W32 
W32 [ x(3)W31  x(4)W32  x(5)]  W31[ x(6)W32  x(7)  x(8)W31 ]  x(0)  x(1)W31  x(2)W32 
x(3)  x(4)W31  x(5)W32  x(6)  x(7)W31  x(8)W32 .
462
Полученный результат совпадает
с результатом прямого расчета X (5) по значениям пятой ВКФ-Хармута,
приведенной в матрице примера 5.5.
______________ . _______________
Прореживание по частоте. Разделим всю N-точечную выборку сигнала
x(i ) на p промежуточных выборок x (i1 ), 1  0, 1, ..., p  1; i1  0, 1, ...,
p n1  1 ,
состоящих из отсчетов с номерами i  i1  p n11 (т.е. x (i1 )  x(i1  pn11 )) ,
спектры которых определяются выражением (6.117). Тогда полный спектр
(6.116) можно представить как
1
1
p 1 p n1 1
X (k )  
x
1 0 i1 0
p 1 p n1 1

x
1 0 i1  0
1
1
(i1 )Wal  (k ,(i1  p n11 ) / p n ) 
(6.142)
(i1 )Wal  (k , i1 / p n )Wal  (k , p n11 / p n ).
При этом использовано соотношение i1  pn11  i1 () p pn11
и свойство
мультипликативности ВКФ. Запишем теперь с помощью этого уравнения
спектральные составляющие с номерами pk1  q1  pk1 () p q1 , q1  0, 1, ..., p  1;
k1  0, 1, ..., p n 1  1. С учетом мультипликативности ВКФ они будут равны
p 1
X ( pk1  q1 )   Wal  ( pk1 , p n 11 / p n )Wal  (q1 , p n 11 / p n ) 
1  0
p
n1
(6.143)
1
  x1 (i1 )Wal  ( pk1 , i1 / p n )Wal  (q1 , i1 / p n ).
i1 0
Для систем Пэли и Хармута, используя соотношения
свойство двойственности ВКФ, получим:
(6.120)÷(6.127) и
Pal  ( pk1 , i1 / p n )  Pal  (k1 , i1 / p n 1 );
(6.144)
Har  ( pk1 , i1 / p n )  Har  (k1 , i1 / p n 1 );
(6.145)
Pal  (q1 , i1 / p n )  Har  (q1 , i1 / p n )  1,
(6.146)
Pal  ( pk1 , p n 11 / p n )  Pal  ( p n 11 , pk1 / p n )  1,
(6.147)
Har  ( pk1 , p n 11 / p n )  Har  ( p n 11 , pk1 / p n )  W p1k1 ,
(6.148)
Pal  (q1 , p n 11 / p n )  Har  (q1 , p n 11 / p n )  W p q11 .
(6.149)
(1)
463
В формуле (6.148)
k1(1)
обозначает первый разряд
p -ичного
Используя эти соотношения в уравнении (6.143),
получаем
p 1
X ( pk1  q1 )   Wp q11
1 0
pn1 1
x
1
i1 0
кода числа
k1 .
для системы Пэли
(i1 ) Pal  (k1 , i1 / p n1 ) 
Здесь часть выражения, стоящая под знаком второй суммы, описывает
спектр Пэли промежуточной выборки (см. (6.117) и поэтому
p 1
X ( pk1  q1 )   X
( 1 )
(k1 )W
1  0
 q11
p
X
p 1
(0)
(k1 )   X ( 1 ) (k1 )W p q11 ,
1 1
(6.150)
q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1.
Это и есть алгоритм БПВК-Пэли на первом уровне прореживания по частоте.
В этом алгоритме, как и в БПВК-Пэли с прореживанием по времени,
искомый спектр выражается через сумму промежуточных спектров,
умноженных на фазовые множители.
Рекурсивно продолжая процедуру прореживания, на m-уровне получим
X
( 1 , 2 ,...,  m1 )
( pkm  qm )  X
( 1 ,  2 ,...,  m1 ,0)
p 1
(km )   X ( 1 ,2 ,..., m ) (km )Wpm qm ,
1 1
(6.151)
q  0, 1, ..., p  1;   1, 2, ..., m; km  0, 1, ..., p
nm
 1,
где
X ( 1 ,2 ,...,m ) (km ) 
а
pnm 1

im 0
x1 ,2 ,...,m (im ) Pal  (km , im / 2nm ),
(6.152)
x1,2 ,...,m (im )  x(im  pnmm    pn22  pn11 ).
(6.153)
Изменяя m от 1 до n-1, можно с помощью соотношений (6.151)-(6.153)
описать полный алгоритм БПВК-Пэли с прореживанием по частоте. При
этом промежуточный спектр на последнем
вычисляется с помощью
X
( 1 , 2 ,...,  n1 )
p -точечного
(kn 1 )  x1 ,2 ,...,n1 (0) 
 x1 ,2 ,...,n1 (0) 
( n  1) -м
уровне прореживания
ДПФ
p 1
x
in1 1
1 ,2 ,...,n1
(in 1 ) Pal  (kn 1 , in 1 / p) 
(6.154)
p 1
x
in1 1
464
1 ,2 ,...,n1
(in 1 )Wp kn1in1
над выборками
x1,2 ,...,n1 (in1 )  x(in1  pn1    pn22  p n11 ).
(6.155)
Как и в случае с БПВК-Пэли с прореживанием по времени, в БПВКПэли с прореживанием по частоте при вычислении спектра по полному
алгоритму параметр m следует менять в обратном порядке от n-1 до 1,
реализуя соотношения (6.151) при исходных данных (6.154), (6.155).
Полному алгоритму БПВК-Пэли с прореживанием по частоте будет
соответствовать сигнальный граф со структурой, близкой к структуре графа
с прореживанием по времени. Сложностные характеристики этих графов
совпадают, поэтому количество операций в алгоритме с прореживанием по
частоте также можно оценить по формулам (6.134) и (6.135).
Пример 6.31. Записать полный алгоритм БПВК-Пэли с прореживанием
по частоте и построить его сигнальный граф для N=9.
Решение. В этом случае полный быстрый алгоритм имеет один
уровень прореживания, промежуточные выборки на котором будут равны:
x1 (i1 )  x(i1  31 ), 1 , i1  0, 1, 2.
x2 (i1 )  {x(6), x(7), x(8)} .
Поэтому
x0 (i1 )  {x(0), x(1), x(2)}; x1 (i1 )  {x(3), x(4), x(5)};
Спектры этих выборок в
соответствии с общим
уравнением (6.154) имеют вид
X (1 ) (k1 )  x1 (0)  x1 (1)W3 k1  x2 (2)W32k1 , k1  0, 1, 2
и равны:
X (0) (0)  x0 (0)  x0 (1)  x0 (2)  x(0)  x(1)  x(2);
X (0) (1)  x0 (0)  x0 (1)W31  x0 (2)W32  x(0)  x(1)W31  x(2)W32 ;
X (0) (2)  x0 (0)  x0 (1)W32  x0 (2)W31  x(0)  x(1)W32  x(2)W31;
X (1) (0)  x1 (0)  x1 (1)  x1 (2)  x(3)  x(4)  x(5);
X (1) (1)  x1 (0)  x1 (1)W31  x1 (2)W32  x(3)  x(4)W31  x(5)W32 ;
X (1) (2)  x1 (0)  x1 (1)W32  x1 (2)W31  x(3)  x(4)W32  x(5)W31;
X (2) (0)  x2 (0)  x2 (1)  x2 (2)  x(6)  x(7)  x(8);
X (2) (1)  x2 (0)  x2 (1)W31  x2 (2)W32  x(6)  x(7)W31  x(8)W32 ;
X (2) (2)  x2 (0)  x2 (1)W32  x2 (2)W31  x(6)  x(7)W32  x(8)W31.
Искомый полный спектр на основании общего уравнения (6.150)
записывается в этом случае так:
X (3k1  q1 )  X (0) (k1 )  X (1) (k1 )W3 q1  X (2) (k1 )W32 q1 , q1 , k1  0, 1, 2
465
и равен:
X (0)  X (0) (0)  X (1) (0)  X (2) (0); X (3)  X (0) (1)  X (1) (1)  X (2) (1);
X (6)  X (0) (2)  X (1) (2)  X (2) (2); X (1)  X (0) (0)  X (1) (0)W31  X (2) (0)W32 ;
X (4)  X (0) (1)  X (1) (1)W31  X (2) (1)W32 ; X (7)  X (0) (2)  X (1) (2)W31  X (2) (2)W32 ;
X (2)  X (0) (0)  X (1) (0)W32  X (2) (0)W31 ; X (5)  X (0) (1)  X (1) (1)W32  X (2) (1)W31 ;
X (8)  X (0) (2)  X (1) (2)W32  X (2) (2)W31.
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
x(8)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
x(0)
Х(3)
x(1)
Х(6)
x(2)
Х(1)
x(3)
Х(4)
x(4)
Х(7)
x(5)
Х(2)
x(6)
Х(5)
x(7)
Х(8)
x(8)
а)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(3)
Х(6)
Х(1)
Х(4)
Х(7)
Х(2)
Х(5)
Х(8)
б)
Рис. 6.20. Сигнальный граф полного БПВК: а)Пэли и б)Хармута
с прореживанием по спектру для N=9
Сигнальный граф, иллюстрирующий этот алгоритм, представлен на
рис. 6.20а. Он имеет такие же вычислительные характеристики, как и графы,
приведенные на рис. 6.19а, б.
Проверка. Так же, как и в примере 6.29, проверку выполним для
коэффициента X (5) . Он равен
X (5)  X (0) (1)  X (1) (1)W32  X (2) (1)W31  x(0)  x(1)W31 
 x(2)W32  W32 [ x(3)  x(4)W31  x(5)W32 ]  W31[ x(6)  x(7)W31  x(8)W32 ]  x(0)  x(1)W31  x(2)W32 
 x(3)W32  x(4)  x(5)W31  x(6)W31  x(7)W32  x(8).
Полученный результат идентичен
результату примера 6.29.
_______________ . _______________
Если теперь в общем уравнении (6.143) учесть формулы (6.145)÷(6.149)
для ВКФ-Хармута, то из него после необходимых преобразований и
сравнения с зависимостью (6.117) получим алгоритм БПВК-Хармута на
первом уровне прореживания по частоте
466
X ( pk1  q1 )  X
p 1
(0)
(k1 )   X ( 1 ) (k1 )Wp ( q1  k1
(1)
) 1
1 1
(6.156)
q1  0, 1, ..., p  1; k1  0, 1, ..., p n  m  1,
где промежуточный спектр X
( 1 )
(k1 ) должен вычисляться по уравнению
(6.117). В этом алгоритме искомый полный спектр выражается с помощью
линейной комбинации промежуточных спектров, в чем состоит его
принципиальное отличие от БПВК-Хармута с прореживанием по времени.
Процесс прореживания можно продолжить, применив его к
вычислению промежуточных спектров. При этом будут введены новые
уровни прореживания. На m-м уровне
X
( 1 , 2 ,...,  m1 )
( pkm  qm )  X
( 1 ,  2 ,...,  m1 ,0)
p 1
(km )   X ( 1 ,2 ,...,m ) (km )Wp ( qm  km
(1)
 m 1
является первым разрядом
промежуточные спектры X
( 1 , 2 ,...,  m )
p -ичного
,
(6.157)
q  0, 1, ..., p  1;   1, 2, ..., m; km  0, 1, ..., p
(1)
где k m
) m
nm
 1,
кода числа
km
, а
(km ) вычисляются с помощью p nm -
ичных ДПФ-Виленкина-Крестенсона
X ( 1 ,2 ,...,m ) (km ) 
p nm 1

im 0
x1 ,2 ,...,m (im ) Har  (km , im / p nm )
(6.158)
промежуточных выборок (6.153). При реализации полного алгоритма БПВКХармута результирующий спектр рекурсивно вычисляется по уравнению
(6.157) при изменении параметра m от n-1 до 1 и использовании спектров
X
( 1 , 2 ,...,  n1 )
(kn1 ) 
p 1
x
1 , 2 ,..., n1
in1  0
(in1 ) Har  (kn1 , in1 / p)  x1 ,2 ,...,n1 (0) 
(6.159)
p 1
  x1 ,2 ,...,n1 (in 1 )Wp kn1in1
in1 1
промежуточных выборок на последнем уровне (6.155) в качестве начальных
условий. Сигнальный граф полного БПВК-Хармута в этом случае близок к
графу аналогичного полного БПВК-Пэли.
Пример 6.32. Записать полный алгоритм БПВК-Хармута с
прореживанием по частоте и построить его сигнальный граф для N=9.
467
Решение. Как следует из уравнений (6.154) и (6.159), промежуточные
выборки и их спектры на первом уровне прореживания в этом примере
остаются такими же, как в предыдущем примере. Результирующий спектр на
основании соотношений (6.156) будет вычисляться по уравнению
X (3k1  q1 )  X (0) (k1 )  X (1) (k1 )W3( q1  k1 )  X (2) (k1 )W32( q1  k1 ) , q1 , k1  0, 1, 2
(1)
(1)
и равен:
X (0)  X (0) (0)  X (1) (0)  X (2) (0);
X (3)  X (0) (1)  X (1) (1)W31  X (2) (1)W32 ;
X (6)  X (0) (2)  X (1) (2)W32  X (2) (2)W31 ;
X (1)  X (0) (0)  X (1) (0)W31  X (2) (0)W32 ;
X (4)  X (0) (1)  X (1) (1)W32  X (2) (1)W31 ;
X (7)  X (0) (2)  X (1) (2)W31  X (2) (2);
X (2)  X (0) (0)  X (1) (0)W32  X (2) (0)W31;
X (5)  X (0) (1)  X (1) (1)  X (2) (1);
X (8)  X (0) (2)  X (1) (2)W31  X (2) (2)W32 .
Сигнальный граф алгоритма для этого примера приведен на рис. 6.20б.
Проверка. Её опять проведем для коэффициента X (5) . Он будет равен
X (5)  X (0) (1)  X (1) (1)  X (2) (1)  x(0)  x(1)W31  x(2)W32  x(3)  x(4)W31  x(5)W32  x(6) 
 x(7)W31  x(8)W32
и совпадает со значением, полученным в примере 6.30.
_______________ . _______________
Рассмотрим теперь БПВК-Адамара. Как уже отмечалось, для ВКФАдамара, как и для функций Уолша-Адамара, взаимосвязь между
многоточечными и малоточечными базисными функциями, без которой
невозможно построение быстрых алгоритмов, существует только при
одинаковых законах изменения аргумента и номера функции. Поэтому для
систем ВКФ-Адамара по аналогии с системами Уолша-Адамара возможно
существование двух типов БПВК: с прореженным порядком следования
отсчетов сигнала и спектра и с естественным порядком следования отсчетов
сигнала и спектра. Рассмотрим их.
Алгоритмы БПВК-Адамара с прореженным порядком следования
отсчетов сигнала и спектра. Сохраним для сигнала процедуру прореживания
n 1
по времени x (i1 )  x( pi1  1 ), 1  0, 1, ..., p  1; i1  0, 1, ..., p  1 и её
же применим для искомого спектра,
представив номер
k  pk1  q1  pk1 () p q1 , q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1 .
k
в нем в виде
Тогда, используя свойство
мультипликативности ВКФ-Адамара, из ряда (6.118) получим
p 1
p 1
1  0
i1 1
X ( pk1  q1 )   Had  ( pk1 , 1 / p n ) Had  (q1 , 1 / p n ) x 1 (i1 ) Had  ( pk1 , pi1 / p n ) Had  (q1, pi1 / p n ).
468
Had  ( pk1 , 1 / p n )  exp(  j
Но
2
0  1 )  1,
p
2
q11 )  Wp 1q1 ,
p
2 n 1 ( m ) ( m )

n
Had ( pk1 , pi1 / p )  exp( j
k1 i1 )  Had  (k1 , i1 / p n 1 ),

p m 1
2
Had  (q1 , pi1 / p n )  exp( j
q1 0)  1.
p
Had  (q1 , 1 / p n )  exp( j
Поэтому
p 1
p n1 1
1 0
i1  0
X ( pk1  q1 )   Wp1q1

x1 (i1 )Had  (k1 , i1 / p n1 ).
И, учитывая, что в этом выражении сумма по i1 задает промежуточный спектр
X ( 1 ) (k1 ) (6.117), окончательно получаем:
p 1
X ( pk1  q1 )   X
1  0
( 1 )
(k1 )W
1q1
p
X
p 1
(0)
(k1 )   X (  ) (k1 )Wp1q1
1 1
(6.160)
q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1 .
Это и есть алгоритм БПВК-Адамара на первом уровне прореживания. По
форме записи он полностью совпадает с алгоритмом БПВК-Пэли с
прореживанием по частоте (6.150).
Этот алгоритм можно рекурсивно распространить и на вычисление
промежуточных спектров, причем на m-уровне прореживания он
представляется в виде выражений (6.151) и (6.152) с заменой в (6.152) ВКФПэли на ВКФ-Адамара. При этом промежуточные выборки должны
задаваться соотношением (6.131). В полном алгоритме БПВК-Адамара
параметр m также должен изменяться от n-1 до 1, а промежуточные спектры
на последнем (n-1)-м уровне прореживания вычисляться по ДПФ (6.154) над
промежуточными выборками (6.133). Сигнальный граф БПВК-Адамара по
структуре будет совпадать с графом БПВК-Пэли с прореживанием по
времени, но с другим порядком следования спектра.
Пример 6.33. Записать полный алгоритм БПВК-Адамара первого типа и
построить его сигнальный граф для N=9.
Решение. Поскольку для N=9 полный БПВК имеет один уровень
прореживания, то промежуточные выборки и их спектры на этом уровне
совпадают с выборками и спектрами примера 6.29. Полный же спектр X ( k ) в
469
соответствии с уравнением (6.160) по форме записи будет совпадать с
полным спектром ВКФ-Пэли примера 6.31. Сигнальный граф этого БПВКАдамара приведен на рис. 6.21а и по структуре совпадает с графом рис. 6.19а.
Проверка.
Для
X (5)
имеем:
X (5)  X (0) (1)  X (1) (1)W32  X (2) (1)W31 
 x(0)  x(3)W31  x(6)W32  W32 [ x(1)  x(4)W31  x(7)W32 ]  W31[ x(2)  x(5)W31  x(8)W32 ] 
 x(0)  x(1)W32  x(2)W31  x(3)W31  x(4)  x(5)W32  x(6)W32  x(7)W31  x(8) .
Полученный
результат совпадает с результатом прямого расчета коэффициента X (5) по
значениям пятой ВКФ-Адамара, указанным в пятой строке матрицы (5.25).
x(0)
x(3)
x(6)
x(1)
x(4)
x(7)
x(2)
x(5)
x(8)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
x(0)
Х(3)
x(1)
Х(6)
x(2)
Х(1)
x(3)
Х(4)
x(4)
Х(7)
x(5)
Х(2)
x(6)
Х(5)
x(7)
Х(8)
x(8)
.
.
.
.
.
.
.
.
.
а)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Х(8)
б)
Рис. 6.21. Сигнальный граф полного БПВК Адамара первого (а)
и второго (б) типов для N=9
_______________ . _______________
Алгоритмы БПВК-Адамара с естественным порядком следования
отсчетов сигнала и спектра. Разобъем исходный
сигнал на
p
соприкасающих секций x (i1 )  x(i1  pn11 ), 1  0, 1, ..., p 1, i1  0, 1, ..., pn1 1
1
так, как это делается в быстрых алгоритмах с прореживанием по частоте. На
n 1
такие же секции разобъем и результирующий спектр сигнала X (k1  p q1 ),
q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1 .
Если
теперь
для
вычисления
составляющих этого спектра воспользоваться уравнением (6.142), то его
после преобразования можно привести к следующему виду:
470
p 1
X (k1  p q1 )   Had  (k1 , p n 11 / p n ) Had  ( p n 1q1 , p n 11 / p n ) 
n 1
1  0
p 1
 x1 (i1 ) Had  (k1 , i1 / p n ) Had  ( p n 11 , i1 / p n ).
i1 1
Однако
2
0  1 )  1,
p
2
Had  ( p n 1q1 , p n 11 / p n )  exp( j
q11 )  Wp 1q1 ,
p
2
Had  ( p n 11 , i1 / p n )  exp( j
1  0)  1,
p
Had  (k1 , p n 11 / p n )  exp( j
2 n 1 ( m ) ( m )
Had (k1 , i1 / p )  exp( j
k1 i1 )  Had  (k1 , i1 / p n 1 )
(6.161)

p m1
(свойство (6.161) является отражением блочной структуры матриц ВКФАдамара). Поэтому и в этом случае

n
p 1
X (k1  p n1q1 )   Wp1q1
p 1
1 0
p n1 1
x
i1  0
1
(i1 )Had  (k1 , i1 / p n1 ) 
(6.162)
X (k1 )   X ( 1 ) (k1 )Wp1q1 ,
(0)
1 1
q1  0, 1, ..., p  1; k1  0, 1, ..., p n 1  1 .
Полученное выражение определяет алгоритм БПВК-Адамара на первом
уровне прореживания. Оно совпадает с выражением (6.128) алгоритма
БПВК-Пэли с прореживанием по времени. Продолжая прореживание сигнала
и спектра, БПВК-Адамара с m уровнями прореживания и полное БПВКАдамара можно представить уравнениями (6.129), (6.130), (6.132) с заменой
ВКФ-Пэли на ВКФ-Адамара и с промежуточными выборками (6.153) и
(6.155). Сигнальный граф полного БПВК-Адамара этого типа по структуре
будет совпадать с графом БПВК-Пэли с прореживанием по частоте. Однако
порядок расположения спектральных составляющих на нем будет таким же,
как на графе БПВК-Пэли с прореживанием по времени.
Пример 6.34. Записать полный алгоритм БПВК-Адамара второго типа и
построить его сигнальный граф для N=9.
Решение. Полный алгоритм будет иметь один уровень прореживания и
для
его
описания
Промежуточные
достаточно
выборки
и
выражения
их
спектры
471
(6.162)
при
при
этом
q1 , k1  0, 1, 2 .
совпадут
с
промежуточными выборками и спектрами примера 6.31, а искомый спектр по
форме записи совпадет с полным спектром примера 6.29. Сигнальный граф
этого алгоритма приведен на рис. 6.21б. По структуре он совпадает с графом
рис. 6.20а.
Проверка. Коэффициент
X (5)  X (0) (2)  X (1) (2)W31  X (2) (2)W32 
 x(0)  x(1)W32  x(2)W31  W31 [ x(3)  x(4)W32  x(5)W31 ]  W32[ x(6)  x(7)W32  x(8)W31 ] 
 x(0)  x(1)W32  x(2)W31  x(3)W31  x(4)  x(5)W32  x(6)W32  x(7)W31  x(8) .
Имеем
полное совпадение с результатом предыдущего примера.
_______________ . _______________
Таким образом, в этом параграфе получено целое семейство быстрых
алгоритмов анализа спектра Виленкина-Крестенсона, различающихся
способами упорядочения базисных функций и прореживания входного
сигнала и его спектра. Все эти алгоритмы в предельном своем варианте с
максимальным числом уровней прореживания сводятся к вычислению
многоточечных дискретных преобразований Виленкина-Крестенсона с
помощью малоточечных ДПФ в экспоненциальном базисе. Единство такого
подхода проявилось как в сходстве аналитических описаний этих
алгоритмов, так и в сходстве структур соответствующих им сигнальных
графов. По этой же причине все модификации алгоритмов БПВК обладают
одинаковыми сложностными характеристиками и достаточно просты в
программировании. Более того, однотипность вычислительного процесса в
БПВК позволяет использовать для их реализации одно и тоже программное
обеспечение.
При значениях p  2 и n  1 , при которых ВКФ переходят в функции
Уолша, все типы БПВК так же переходят в соответствующие им
модификации алгоритмов БПУ. Процесс анализа спектра в этом случае
представляется в виде совокупности 2-точечных ДПФ, которые выполняются
без умножений. Оценки числа сложений в БПВК при p  2 так же становятся
оценками числа сложений в БПУ. В то же время, при p  N и n  1 , когда
ВКФ превращаются в ДЭФ, БПВК переходят не в БПФ, а в обычное ДПФ.
По этой причине БПВК являются обобщением БПУ, но не БПФ, хотя методы
синтеза БПВК близки к методам синтеза БПФ Кули-Тьюки.
472
6.6. Быстрые преобразования в базисе обобщенных функций Крестенсона
Обобщение БПВК на случай многоосновной системы счисления
приводит к быстрым преобразованиям в базисе обобщенных функций
Крестенсона (БПК). Вариантов построения БПК существует еще больше,
чем БПВК, поскольку возможно образование многих модификаций систем
ОФК. В качестве примера приведем методы синтеза БПК для ОФК-систем
Кронекера (см. §5.2).
Остановимся сначала на случае представления числа отсчетов сигнала
в виде произведения двух сомножителей: N  p1 p2 , где p1 и p2 являются
целыми положительными числами. Преобразуем одномерный массив x(i) в
двумерную
таблицу
с
x(i1 , i2 )
помощью
подстановки
i  i1  p1i2 (i1  0, 1, ..., p1  1; i2  0, 1, ..., p2  1) , уже использованной нами в § 6.1 в
БПФ Кули-Тьюки с произвольным основанием. Эта подстановка
соответствует представлению величины i в позиционной системе счисления
с основаниями p1 и p2 при числе разрядов n  2 (см. §§ 2.5, 2.6 и 5.2). Тогда
прямые ДПФ в базисе ОФК (5.58) без нормирующего множителя 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 ).
i1  0 i2  0
Используя свойства позиционных
основанием, можно записать, что
кодов
в
системе
i1  p1i2  i1 (){ p} p1i2 , k1  p1k2  k1 (){ p} p1i2 ,
с
(6.162*)
переменным
(6.163)
где (  ){ p} является, как и ранее в § 5.2, обозначением операции поразрядного
суммирования по переменному модулю. Тогда в соответствии со свойствами
мультипликативности и двойственности ОФК выражение (6.162*) можно
преобразовать к виду
473
p1 1
X (k1 , k2 )   W  (k1 , i1 / N )W  ( p1k2 , i1 / N )
i1  0
p2 1
 x(i , i )W
1
i2  0
2

(k1 , p1i2 / N )W  ( p1k2 , p1i2 / N ).
Дальнейшее упрощение этого выражения зависит от значений
приведенных в нем ОФК. Чтобы их получить, воспользуемся записью ОФКАдамара в виде формулы (5.46) с принятым в этой главе обозначением
разрядов кодов номера и аргумента функции в виде соответствующих
переменных с верхними индексами, заключенными в круглые скобки. Тогда
имеем
W  (k1 , i1 / N )  exp[ j 2(
k1i1 0  0

)]  W  ( k1 , i1 / p)  W p1 k1i1 ,
p1
p2
0  i1 k1  0

)]  1,
p1
p2
k 0 0i
W  (k1 , p1i2 / N )  exp[ j 2( 1  2 )]  1,
p1
p2
W  ( p1k1 , i1 / N )  exp[  j 2(
W  ( p1k2 , p1i2 / N )  exp[ j 2(
0  0 k2i2

)]  W  (k2 , i2 / p2 )  W p2k2i2 .
p1
p2
Учитывая эти соотношения, получим следующую запись общего спектра
сигнала:
p1 1 p2 1
X (k1  p1k2 )  X (k1 , k2 )   [  x(i1 , i2 )W p2k2i2 ]W p1 k1i1
i1  0 i2  0
(6.164)
k1  0, 1, ..., p1  1; k2  0, 1, ..., p2  1.
Полученное выражение представляет собой алгоритм БПК для случая
разложения N на два сомножителя.
Его можно записать в более удобной для вычислений форме, если
обозначить внутреннюю сумму в выражении (6.164) в виде двумерной
величины
q (i1 , k2 ) 
p2 1
 x(i , i )W
i2  0
1
2
 k2i2
p2
,
(6.165)
i1  0, 1, ..., p1  1; k2  0, 1, ..., p2  1 .
Тогда полный спектр будет равен
p1 1
X (k1  p1k2 )  X (k1 , k2 )   q (i1 , k2 )W p1 k1i1 , k1  0, 1, ..., p1  1 (6.166)
i1  0
и алгоритм БПК по форме записи совпадет с алгоритмом БПФ Гуда-Томаса
(6.62).
474
Последовательность действий в таком алгоритме такова: сначала
одномерный
сигнал
преобразуется
в
двумерную
таблицу
x(i1 , i2 )
размерностью p1  p2 , после чего с помощью p2 -точечных ДПФ по каждой из
её строк вычисляется таблица промежуточных данных {q(i1 , k2 )} , из которой
затем путем выполнения
p1 -точечных
ДПФ по всем её столбцам
формируется таблица искомых спектральных коэффициентов { X (k1 , k2 )} .
Переход от одномерных массивов к двумерным таблицам и обратно
осуществляется по правилам взаимосвязи одномерных и многомерных
индексов (6.23) при N1  p1 , а N 2  p2 . Структурная схема этого алгоритма по
виду совпадает со структурной схемой БПФ Гуда-Томаса рис. 6.9.
Поскольку в этом алгоритме БПК отсчеты сигнала и спектра по
строкам соответствующих таблиц располагаются с прореживанием, то он
является алгоритмом с прореженным порядком следования отсчетов
сигнала и спектра. При p1  p2  p БПК (6.164) переходит в БПВК-Адамара
первого типа с n  2 .
Для БПК (6.164)
AБ  p1 p2 ( p1  p2  2)  N ( p1  p2  2) ,
M Б  p2 ( p1  1) 2  p1 ( p2  1) 2 .
(6.167)
(6.168)
В последней оценке числа умножений учтено, что умножения на единичные
значения элементов матрицы ДЭФ, расположенные в её нулевой строке и
нулевом столбце, являются тривиальными. Исключение из алгоритма
умножений на другие тривиальные значения ДЭФ приводит к
оптимизированным вариантам БПК. Для них оценка числа умножений еще
более уменьшается.
Пример 6.35. Записать алгоритм БПК-Кронекера для 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 ) в соответствии с общим
алгоритмом (6.164) будет выглядеть так:
475
1
2
X (k1 , k2 )  [ x(i1 , i2 )W3 k2i2 ](1) k1i1 , k1  0, 1; k2  0, 1, 2,
i1  0 i2  0
 k1i1
W2
где учтено, что
Промежуточные величины
 (1)  k1i1  (1) k1i1 .
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
Дальнейшую последовательность действий можно представить в виде
следующих двух этапов.
Этап 1. Расчет промежуточных величин:
k
2 k
q(0, k2 )  x(0, 0)  x(0,1)W3 k2  x(0, 2)W32 k2  x(0)  x(2)W3 2  x(4)W3 2 ,
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)
476
X (2)
X (3)
X (4) 
.
X (5) 
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)
б)
Рис. 6.22. Сигнальный граф полного БПК Кронекера
первого (а) и второго (б) типов для N=6
В алгоритме выполняются 18 сложений и 8 умножений. Расчет по
формулам (6.167), (6.168) дает 18 сложений и 11 умножений. Меньшее число
реальных умножений связано с тем, что используемое в данном примере 2точечное ДПФ выполняется без умножений. Сигнальный граф этого
алгоритма приведен на рис. 6.22а.
Проверка. Для проверки используем третий спектральный
коэффициент. Он будет равен
X (3)  X (1,1)  X (1) (0)  X (1) (1)  x(0)  x(2)W31 
 x(4)W32  x(1)  x(3)W31  x(5)W32  x(0)  x(1)  x(2)W31  x(3)W31  x(4)W32  x(5)W32
и
совпадает с результатом его вычисления с помощью прямого ДПФ в базисе
функций Крестенсона, заданных матрицей (5.63).
_______________ . _______________
Если в свою очередь один из сомножителей p1 или p2 также
раскладывается на два множителя, то приведенный алгоритм рекурсивно
можно применить и для быстрого вычисления p1 -точечных или p2 -точечных
ДПФ. Это повлечет за собой дополнительное прореживание сигнала и
спектра и, в конечном итоге, к дополнительному сокращению объема
вычислений. В общем случае при
n
N   pm ,
m 1
(6.169)
одномерные массивы x(i) и X (k ) с помощью подстановок
i  i1  p1i2    p1 p2  pn 1in  i1 ( ){ p} p1i2 (){ p}  (){ p} p1 p1  pn 1in ,
(6.170)
k  k1  p1k2    p1 p2  pn 1kn  k1 ( ){ p} p1k2 ( ){ p}  ( ){ p} p1 p1  pn 1kn ,
477
где 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 ,
in  0
(6.171)
km  0, 1, ..., pm  1; m  1, 2, ..., n.
Это и есть
полный алгоритм БПК-Кронекера с прореженным порядком
следования отсчетов сигнала и спектра, содержащий
( n  1)
уровней
прореживания.
Реализация полного алгоритма БПК потребует выполнения
n
AБ  N ( pm  n),
(6.172)
m 1
n
M Б  N  ( pm  1) 2 / pm
(6.173)
m 1
сложений и умножений. Некоторые из этих умножений могут оказаться
тривиальными. Их исключение из алгоритма позволяет оптимизировать его,
нарушая при этом, как правило, регулярность его структуры.
В алгоритмах БПК-Кронекера (6.164) и (6.171) можно поменять
последовательность суммирования и порядок следования индексов, в
результате чего будут получены другие модификации БПК-Адамара,
обладающие такими же реализационными характеристиками. В частности,
если порядок следования индексов и сумм изменить на обратный, что
приведет к обработке транспонированных таблиц сигнала и спектра, то
можно получить алгоритмы полных БПК-Адамара
с естественным
порядком следования отсчетов сигнала и спектра. Для N  p1 p2 такой
алгоритм имеет следующий вид: ,
X (k2 , k1 ) 
p2 1 p1 1
 [  x(i , i )W
i2  0 i1  0
2
1
 i1k1
p1
]W p2i2 k2 ,
(6.174)
k2  0, 1, ..., p2  1; k1  0,1, ..., p1  1,
а для 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
knm1  0, 1, ..., pnm1  1; m  1, 2, ..., n.
478
(6.175)
При
p1  p2    pn  p
эти алгоритмы переходят в соответствующие
алгоритмы БПВК-Адамара второго типа.
Пример 6.36. Записать алгоритм БПК-Кронекера второго типа для N=6.
Решение.Примем p1  2, p2  3 .Таблица сигнала x(i2 , i1 )  x(2i2  i1 ), i2  0, 1, 2;
i1  0, 1 имеет следующий вид
а алгоритм БПК выглядит так:
 x (0)
 x (2)

 x (4)
x (1) 
x (3)  ,
x (5) 
2
1
X (2k2  k1 )  X (k2 , k1 )   [ x(i2 , i1 )(1)i1k1 ]W3i2k2 
i2  0 i1  0
2
  qi2 , k1 W3i2k2 , k2  0,1, 2; k1  0,1,
i2  0
где
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)
479
X (1) 
X (3)  .
X (5) 
Сигнальный граф этого алгоритма приведен на рис. 6.22б.
Проверка. Третий спектральный коэффициент будет
равен
X (3)  X (1,1)  q(0,1)  q(1,1)W31  q(2,1)W32  x(0)  x(1)  x(2)W31  x(3)W31  x(4)W32 
 x(5)W32 . Он совпадает со своим значением, полученным в примере 6.35.
_______________ . _______________
В выражении (6.169) для N порядок сомножителей можно изменить. В
базисе ДЭФ это приводило к новым модификациям БПФ с одинаковыми
сложностными показателями. Применительно к ОФК такой подход приводит
к БПК для других систем ОФК, отличных от системы Кронекера.
6.7. Быстрые преобразования Хаара
И обычные, и обобщенные функции Хаара не обладают свойством
мультипликативности, поэтому к ним не применима общая теория БПФ
Кули-Тьюки по малому основанию. Однако эффективные быстрые
алгоритмы анализа спектра можно получить и в этих базисах, о чем
свидетельствуют алгоритмы Карповского-Москалева, приведенные без
вывода в работе [30]. Выведем эти алгоритмы.
Начнем с обычных функций Хаара и воспользуемся прямым ДПХ
(4.127), реализация которого приводит к затратам
AП  N log 2 N
вещественных алгебраических
нормирующих множителей 2n :
сложений.
2n 1

X (0)   x(i), X (2  m) 
Перепишем
(2 m 1)2n1 1
i 0

x(i) 
i  2 m 2n1
это
ДПХ
без
(2 m  2)2n1 1

x(i),
i (2 m 1)2n1
  0, 1, ..., n  1; m  0,1, ..., 2  1.
Затем
с
помощью
линейных
преобразований
индексов
  n
и
i    2m  21 сведем обе суммы последнего выражения к одинаковым
пределам суммирования, что позволит спектр X (2  m) представить в
следующем виде:
X (2
n 
 m) 
21 1
 x (  2 m  2
1
)
 0
21 1
 x[  (2m  1)2
 0
  1, 2, ..., n; m  0, 1, ..., 2n  1.
480
1
],
(6.176)
Если теперь принять
S1 (b) 
21 1
 x (  b  2
1
),
(6.177)
 0
то можно записать, что
X (2n   m)  S1 (2m)  S1 (2m  1),
(6.178)
т.е. спектр Хаара легко вычисляется через элементы S1 (2m) и S1 (2m  1) .
Для получения полного алгоритма быстрого преобразования Хаара (БПХ)
остается только найти способ простого определения самих этих элементов.
В соответствии с выражением (6.177) элемент S (b) на  -м шаге
вычислений равен
2 1
21 1
 0
 0
S (b)   x(  b  2 ) 
2
1
 x(  2b  2
1
)
1
  x[  (2b  1)21 ]  S1 (2b)  S1 (2b  1) .
 0
Это соотношение позволяет рекурсивно вычислять все значения элементов
S (b) с   1, 2, ..., n при начальных значениях
S0 (b)  x(b),
получаемых из общей формулы (6.177) при   1 и   0 .
Объединяя полученные результаты, приходим к выводу, что полный
спектр Хаара может быть вычислен за n этапов рекуррентного решения
уравнений
X (2n   m)  S1 (2m)  S1 (2m  1),
S (m)  S1 (2m)  S1 (2m  1),
(6.179)
  1, 2, ..., n; m  0, 1, ..., 2n  1
при начальных условиях
S0 (2m)  x(2m), S0 (2m  1)  x(2m  1).
(6.180)
Нулевой спектральный коэффициент Хаара X (0) при этом будет равен
нулевому значению элемента S (0) на последнем шаге, т.е.
X (0)  Sn (0)  Sn1 (0)  Sn1 (1).
(6.181)
Число операций алгебраического сложения, которое необходимо
производить по этому алгоритму, равно
481
AБ  2(2n  1)  2( N  1),
(6.182)
что более чем в 0,5log 2 N раз меньше по сравнению с числом таких операций
в прямом алгоритме ДПХ. Алгоритм БПХ (6.179) можно проиллюстрировать
с помощью соответствующего сигнального графа, который в этом случае
содержит 2( N  1) вычислительных узлов и по сравнению с графом БПУ
имеет не прямоугольный, а усеченный трапециидальный вид.
Пример 6.37. Записать алгоритм БПХ и простроить его сигнальный
граф для N=8.
Решение. В этом случае n=3 и алгоритм БПХ будет содержать три
этапа:
Этап 1 (  1, m  0, 1, 2, 3) :
X (4  m)  S0 (2m)  S0 (2m  1)  x(2m)  x(2m  1),
S1 (m)  S0 (2m)  S0 (2m  1)  x(2m)  x(2m  1),
X (4)  x(0)  x(1), X (5)  x(2)  x(3),
S1 (0)  x(0)  x(1), S1 (1)  x(2)  x(3),
X (6)  x(4)  x(5), X (7)  x(6)  x(7),
S1 (2)  x(4)  x(5), S1 (3)  x(6)  x(7).
Этап 2 (  2, m  0, 1) :
X (2  m)  S1 (2m)  S1 (2m  1), S2 (m)  S1 (2m)  S1 (2m  1),
X (2)  S1 (0)  S1 (1);
S2 (0)  S1 (0)  S1 (1),
X (3)  S1 (2)  S1 (3);
S2 (1)  S1 (2)  S1 (3).
Этап 3 (  3, m  0) :
X (1)  S2 (0)  S2 (1),
X (0)  S3 (0)  S2 (0)  S2 (1).
Сигнальный граф этого алгоритма приведен на рис. 6.23. Отсчеты
сигнала в нем располагаются в естественном прядке следования, а спектр – в
прореженном порядке. Эквивалентной перестановкой узлов и ветвей этого
графа его можно модифицировать так, что отсчеты сигнала будут
располагаться с прореживанием по времени, а спектральные коэффициенты
– в естественном порядке (рис. 6.24). На такой модификации графа БПХ его
усеченный характер виден наиболее наглядно.
482
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(4)
.
.
.
.
.
Х(0)
Х(2)
Х(5)
Х(6)
.
Х(1)
Х(3)
Х(7)
Рис. 6.23. Сигнальный граф алгоритма
БПХ для N=8
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.24. Модифицированный сигнальный граф
алгоритма БПХ для N=8
Рассмотрим
_______________ . _______________
теперь обобщенное преобразование
Хаара
(5.82).
n 
Исключим из него нормирующие множители p
и с помощью линейных
подстановок
  n  , i    p1  mp
приведем его к следующему виду:
483
X (p
n 
p 1 p 1 1
 m)  

x[  ( pm  ) p 1 ]Pal  (p n  ,[  ( pm  ) p 1 ] / N ),
 0  0
  1, 2, ..., n;   1, 2, ..., p  1; m  0, 1, ..., p n  1.
Функция
Pal  (pn , i / N )  Wpi ,
где i является обозначением  -го разряда p -ичного кода аргумента i (см.
1
§5.1). При i    ( pm  ) p
величина i   . Поэтому выражение для
обобщенного спектра Хаара упрощается:
p 1 p 1 1
X (p n   m)  

 0  0
x[  ( pm  ) p 1 ]W p .
(6.183)
При p  2 параметр   1, W20  1, а W21  1 и формула (6.183) переходит в
формулу (6.176) для спектра обычных функций Хаара.
Введем обозначение
S1 ( pm  ) 
Тогда
X (p
n 
p1 1

x[  ( pm  ) p 1 ].
 0
(6.184)
p 1
 m)   S1 ( pm  )Wp ,
0
(6.185)
  1, 2, ..., n;   1, 2, ..., p  1; m  0, 1, ..., p n  1.
Теперь для окончательного получения алгоритма быстрого обобщенного
преобразования Хаара (БОПХ), необходимо найти взаимосвязь между
соседними элементами последовательности S (b) . Для этого рассмотрим
величину
S ( pq  r ) 
p 1
 x[  ( pq  r ) p

],
 0
r  0, 1, ..., p  1; q  0, 1, ..., p n1  1.
Выразив в ней переменную  в виде     p1 ,   0, 1, ..., p  1;   0, 1, ...,
p n1  1, можно записать, что
p 1 p1 1
S ( pq  r )  

p 1
x[  (  p q  pr ) p
2
1
]
S
 0
 0  0
484
1
(  p 2 q  pr ). (6.186)
Это рекуррентное соотношение и задает алгоритм вычисления элементов
S (b) .
Объединяя выражения (6.185) и (6.186), получим общий алгоритм
БОПХ


 0

n 
  1, 2, ..., p  1;   1, 2,..., n; m  0, 1, ..., p  1, 

p 1
2

S ( pq  r )   S1 (  p q  pr ),

 0

r  0,1,..., p  1; q  0,1,..., p n 1  1,

X (p
n 
p 1
 m)   S1 ( pm  )W p ,
(6.187)
представляющий собой содержащий n этапов итерационный процесс с
начальными условиями
S0 ( pm  )  x( pm  ),   0, 1, ..., p  1; m  0, 1, ..., p n 1  1.
(6.188)
Нулевой спектральный коэффициент в этом случае равен
p 1
X (0)  Sn (0)   Sn 1 ().
(6.189)
 0
Для выполнения алгоритма БОПХ (6.187) в общем случае необходимо
затратить
AБ  p ( p n  1)  p( N  1),
(6.190)
M Б  ( p  1)( p n  1)  ( p  1)( N  1)
комплексных
сложений
и
умножений.
Ему
будет
соответствовать
сигнальный граф, содержащий p( N  1) вычислительных узлов и имеющий по
сравнению с прямоугольным графом БПВК усеченный трапециидальный
вид.
Пример 6.38. Записать алгоритм БОПХ и построить его сигнальный
граф для N=9.
Решение. В этом случае N  32 и n=2, поэтому алгоритм БОПХ будет
содержать всего два этапа:
Этап 1 (  1,   1, 2; m  0, 1, 2; r  0,1, 2; q  0) :
2
X (3  m)   x(  3m)W
0

3
485
2
, S1 (r )   x(  3r ),
 0
X (3)  x(0)  x(1)W31  x(2)W32 ,
X (4)  x(3)  x(4)W31  x(5)W32 ,
X (5)  x(6)  x(7)W31  x(8)W32 ,
X (6)  x(0)  x(1)W32  x(2)W31 ,
X (7)  x(3)  x(4)W32  x(5)W312 ,
X (8)  x(6)  x(7)W32  x(8)W31 ,
S1 (0)  x(0)  x(1)  x(2), S1 (1)  x(3)  x(4)  x(5), S1 (2)  x(6)  x(7)  x(8).
Этап 2 (  2,   1, 2; m  0) :
2
X ()   S1 ()W3 ,
0
1
3
X (1)  S1 (0)  S1 (1)W
 S1 (2)W32 ,
X (2)  S1 (0)  S1 (1)W32  S1 (2)W31 ,
2
X (0)  S2 (0)   S1 () S1 (0)  S1 (1)  S1 (2).
 0
Алгоритм требует для своей реализации выполнения 24 комплексных
сложений и 16 комплексных умножений, что совпадает с оценками (6.190)
при N=9. Граф, его иллюстрирующий, приведен на рис. 6.25а. Так же, как и в
случае обычных функций Хаара, этот граф можно модифицировать таким
образом, чтобы отсчеты сигнала располагались прореженными по времени, а
отсчеты спектра – в естественном порядке (рис. 6.25б).
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
x(8)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
x(0)
x(3)
Х(3)
Х(6)
.
x(6)
Х(1)
x(1)
x(4)
Х(4)
.
Х(7)
x(7)
Х(2)
x(2)
Х(5)
x(5)
Х(8)
x(8)
а)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Х(8)
б)
Рис. 6.25. Немодифицированный (а) и модифицированный (б)
сигнальные графы алгоритма БОПХ для N=9
______________ . _______________
486
При p  2 алгоритм БОПХ (6.187) переходит в алгоритм БПХ (6.179).
Получаемые с помощью БПХ и БОПХ спектры Хаара являются
ненормированными, поскольку в алгоритмах этих преобразований не
выполняются
умножения
на
нормирующие
множители
2n и
p n 
соответственно, присутствующие в прямых ДПХ. Если для обработки
требуются только нормированные коэффициенты, то необходимо эти
умножения выполнить отдельно после завершения быстрых преобразований.
Это приведет к дополнительным затратам в общем случае в N вещественных
умножений (для БОПХ – N умножений комплексных величин на
вещественные константы).
6.8. Быстрые преобразования в числовых базисах и в базисе Хартли
Для всех рассмотренных в данной книге числовых преобразований
можно записать быстрые алгоритмы. Теоретико-числовые преобразования
Мерсенна и Ферма по своим свойствам близки к ДПФ в комплексноэкспоненциальном базисе, поэтому для них существуют БП со структурой
Кули-Тьюки. При этом в ТЧПМ возможно построение алгоритмов БП только
для составных N, а для ТЧПФ может быть получен более широкий спектр
БП, включая и БП по основанию 2 [40]. Связано это с отмеченными ранее в §
5.4 особенностями представления величины N в данных преобразованиях.
Наиболее просто алгоритмы быстрых ТЧП (БТЧП) получаются для
ТЧП Рейдера, являющихся частным случаем ТЧПФ, при N  2n и
прореживании по времени исходного сигнала. Прямое ТЧП Рейдера (см.
зависимости (5.93)) без нормирующего множителя и для N  2b  2n имеет
следующий вид:
N 1
X (k )   x(i )2 ki (mod(2 N / 2  1)), k  0, 1, ..., N  1.
i 0
Применяя к нему процедуру Кули-Тьюки прореживания сигнала по времени,
т.е. принимая x0 (i1 )  x(2i1 ) и x1 (i1 )  x(2i1  1) , получаем
X (k ) 
N / 2 1

i1  0
x0 (i1 )2
2 ki1
2
k
N / 2 1

i1  0
x1 (i1 )22 ki1 (mod(2 N / 2  1)).
Из этого выражения для спектральных составляющих с номерами k  k1 и
k  k1  N / 2 имеем:
487
X (k1 ) 
X (k1  N / 2) 
Однако
N / 2 1

i1  0
x0 (1)2
N / 2 1

i1  0
x0 (i1 )2
2 k1i1
2
 k1
N / 2 1

i1  0
2 k1i1
2
 Ni1
2
 k1
2
x1 (i1 )22 k1i1 (mod(2 N / 2  1)),
N /2
N / 2 1

i1  0
x1 (i1 )22 k1i1  2 Ni1 (mod(2 N / 2  1)).
2 Ni1  1 (mod(2N / 2  1)), 2 N / 2  1 (mod(2 N / 2  1)),
поэтому
X (k1 )  X (0) (k1 )  2 k1 X (1) (k1 )
X (k1  N / 2)  X (0) (k1 )  2 k1 X (1) (k1 )
k1  0, 1, ..., N / 2  1,
где
X
(0)
(k1 ) 
X (k1 ) 
(1)
N / 2 1

i1  0
N / 2 1

i1  0


(mod(2 N / 2  1)), 


(mod(2 N / 2  1)),
x0 (i1 )2 2 k1i1
x1 (i1 )22 k1i1

(mod(2 N / 2  1)), 


N /2
(mod(2  1)). 

(6.191)
(6.192)
Полученные уравнения (6.191) и (6.192) являются аналитическим
описанием алгоритма БТЧП на первом уровне прореживания. По форме
записи они близки к уравнениям (6.39) и (6.40) БПФ Кули-Тьюки по
основанию 2 на первом уровне прореживания по времени и отличаются от
них только тем, что умножения на комплексные фазовые множители
заменяются на умножения на вещественные множители двоичноэкспоненциального вида.
Продолжая процедуру прореживания для промежуточных выборок
x0 (i1 ) и x1 (i1 ) , можно получить алгоритмы БТЧП и для большей глубины
прореживания, причем для описания этих алгоритмов на m-м уровне
прореживания можно использовать уравнения (6.42), (6.43) алгоритмов БПФ
с заменой в них комплексных экспонент на соответствующие вещественные
двоичные экспоненты. Изменяя m от n-1 до 1, с помощью этих уравнений
можно описать процедуру быстрого вычисления теоретико-числового
спектра сигнала, получив полный алгоритм БТЧП. Начальными значениями
процесса вычисления будут промежуточные выборки сигнала на (n  1) -м
уровне, получаемые по формулам (6.44) при m  n 1 .
Полный алгоритм БТЧП Рейдера потребует выполнения
488
AБ  N log 2 N , M Б  ( N log 2 N ) / 2
вещественный сложений и умножений, причем реальное число умножений
можно, как и в случае с БПФ, уменьшить за счет исключения умножений на
тривиальные множители 1 . Кроме того, при программировании
нетривиальные умножения на двоичные экспоненты можно свести к более
коротким операциям сдвига. Полные алгоритмы БТЧП так же, как и БПФ
полезно иллюстрировать ориентированными сигнальными графами,
имеющими в этом случае структуру, совпадающую со структурой
соответствующих графов БПФ Кули-Тьюки. При этом множители и
вычисления в таких графах будут уже сугубо вещественными.
Высокая вычислительная эффективность БТЧП делает перспективным
их использование при вычислении длинных сверток. Структурная схема
алгоритма такого вычисления с использованием БТЧП совпадет со
структурной схемой алгоритма вычисления сверток с использованием БПФ,
приведенной на рис. 6.12. Замена комплексных операций на вещественные
приведет в этом случае к дополнительной экономии машинного времени.
Функции Фибоначчи не обладают свойством мультипликативности,
поэтому для них не пригодны классические методы синтеза БА. Однако эти
функции, подобно функциям Хаара, содержат ряд нулевых и совпадающих
значений. Поэтому к ним применим подход, использованный при разработке
БПХ.
Запишем уравнение (5.100) прямого дискретного преобразования
Фибоначчи без нормирующих множителей:
 k
 x(i ) fi 1  x(k  1) f k 1 , 0  k  N  2,
 i 0
X (k )   N 1
 x(i ) f
k  N  1.

i 1,

 i 0
Прямая его реализация требует затрат
AП 
N ( N  1)
N ( N  1)
 1, M П 
2
2
2
сложений и умножений на целые числа соответственно. Рассмотрим с его
помощью спектральные коэффициенты
X (k )
с номерами k  0, 1, ..., N  2 ,
введя обозначение
k
S k   x(i ) f i 1.
i 0
489
(6.193)
X (k )  Sk  x(k  1) f k 1, k  0,1,..., N  2.
Тогда
(6.194)
Из полученного уравнения следует, что процесс анализа спектра Фибоначчи
может быть организован в виде рекуррентной процедуры, если определить
алгоритм вычисления величины S k . Этот алгоритм легко получить из
выражения (6.193):
k
k 1
i 0
i 0
Sk   x(i ) fi 1   x(i ) f i 1  x(k ) f k 1  S k 1  x(k ) f k 1.
(6.195)
Соотношения (6.195), (6.194) описывают быстрое преобразование в
базисе функций Фибоначчи. Оно представляется в виде итерационного
вычислительного процесса, содержащего N этапов и имеющего начальное
значение
S0  x(0) .
На первом
X (0)  S0  x(1) f1  S0  x(1)
этапе процесса вычисляется только
(т.к. f1  1 ), поэтому затрачивается только одна
операция сложения.
На втором этапе (при k  1 ) вычисляются величины
и
поскольку число
S1  S0  x(1) f 2  S0  x(1)
X (1)  S1  x(2) f 2  S1  x(2) ,
Фибоначчи f 2  1. Поэтому на этом этапе умножений нет и выполняются
только две операции сложения. На последнем N-м этапе вычисляется только
величина S N 1 , равная X ( N  1) , на что расходуется одно сложение и одно
умножение на целое число Фибоначчи f N . На всех остальных этапах по
алгоритму (6.195), (6.194) вычисляются обе величины S k и X ( k ) , что
приводит к затратам на каждом из этих этапов двух сложений и двух
умножений на целые числа Фибоначчи. В итоге весь процесс быстрого
вычисления спектра Фибоначчи требует затрат
сложений и
AБ  2( N  1)
(6.196)
M Б  2N  5
(6.197)
целочисленных вещественных умножений. По числу сложений быстрое
преобразование Фибоначчи совпадает с БПХ.
Алгоритм быстрого преобразования Фибоначчи также можно
проиллюстрировать соответствующим сигнальным графом, который в этом
случае будет иметь специфическую диагональную форму.
Пример 6.39. Записать алгоритм и построить сигнальный граф
быстрого преобразования Фибоначчи для N=6.
Решение. Алгоритм БП Фибоначчи в этом случае будет содержать 6
этапов:
490
Этап 1 (k  0) : S0  x(0),
X (0)  S0  x(1).
Этап 2 (k  1) : S1  S0  x(1),
X (1)  S1  x(2).
Этап 3 (k  2) : S2  S1  x(2) f3 , X (2)  S2  x(3) f3.
Этап 4 (k  3) : S3  S2  x(3) f 4 , X (3)  S3  x(4) f 4 .
Этап 5 (k  4) : S4  S3  x(4) f5 , X (4)  S4  x(5) f5 .
Этап 6 (k  5) : S5  S4  x(5) f6  X (5).
В этом алгоритме учтено, что f1  f 2  1 . Значения остальных чисел
Фибоначчи приведены в §5.5.
Сигнальный граф полученного алгоритма представлен на рис. 6.26. Для
его реализации необходимо затратить 10 сложений и 7 умножений на числа
Фибоначчи. Эти значения операций совпадают со значениями AБ и M Б ,
вычисленными по оценкам (6.196) и (6.197) при N=6.
x(0)
x(1)
.
.
x(2)
.
.
.
Х(0)
x(3)
.
.
.
Х(1)
.
.
.
Х(2)
x(4)
x(5)
.
.
.
Х(3)
.
.
Х(4)
Х(5)
Рис. 6.26. Сигнальный граф БП Фибоначчи для N=6
_______________ . ________________
Необходимо иметь в виду, что получаемые по БА (6.195), (6.194)
значения спектральных коэффициентов являются ненормированными, что
следует учитывать при их последующей обработке. Если использование
ненормированного спектра недопустимо, то вычисленные коэффициенты
нужно
умножить
k  0, 1, ..., N  2
на
нормирующие
множители
1/( f k 1 f k 3 ) при
и на множитель 1/( f N f N 1 ) при k  N 1. Нормировка спектра
Фибоначчи приведет к N дополнительным умножениям на вещественные
дробные числа. На эту же величину следует в этом случае увеличить и
оценку (6.197) для числа умножений.
491
Базисы дискретных функций Хартли и ДЭФ являются родственными
базисными
системами,
поскольку
используют
одинаковые
тригонометрические функции. Поэтому для функций Хартли, несмотря на их
немультипликативность,
существуют
различные
типы
быстрых
преобразований, подобные известным типам БПФ [8, 13]. Проиллюстрируем
эффективность БП Хартли на примере быстрых преобразований по
основанию 2. Алгоритмы БП по другим основаниям могут быть получены
аналогичным образом. С ними можно ознакомиться так же в работе [13].
Для синтеза алгоритмов БП Хартли потребуются свойства функции
Хартли суммы двух аргументов. Запишем эти свойства, используя известные
тригонометрические тождества:
c a s(  )  cos( )  sin( )  cos() c a s()  sin  c a s( ),
при
c a s()
c a s(  )  
 c a s() при
  2m,
(6.198)
m  0, 1, 2, ...,
(6.199)
  (2m  1), m  0, 1, 2,....
Перепишем теперь прямое дискретное преобразование Хартли (4.38) без
нормирующего множителя 1/ N ( N  2n , n  1, 2, ...)
N 1
X (k )   x(i ) c a s(
i 0
2
ki),
N
k  0, 1, ..., N 1
(6.200)
и применим к нему известные способы прореживания сигнала.
Прореживание по времени. Выборка сигнала x(i) на первом уровне
прореживания разделяется на две промежуточные выборки x0 (i1 )  x(2i1 )
и
x1 (i1 )  x(2i1  1) . Поэтому
X (k ) 
N / 2 1

i1  0
2
x0 (i) c a s( k 2i1 ) 
N
N / 2 1
или с учетом равенства (6.198)
X (k ) 
N / 2 1

i1  0
с
i1  0
x1 (i1 ) c a s[(
2
k (2i1  1)]
N
2 N / 21
2
2
ki1 ) 
x0 (i) c a s(
ki1 )  c a s( k )  x1 (i1 ) cos(
N
N /2
N /2
i1  0
(6.201)
2 N / 21
2
 c a s(
Вычислим

N
помощью
k)

i1  0
x1 (i1 )sin(
этого
N /2
уравнения
X (k1 ), k1  0, 1, ..., N / 2  1 . Она будет равна
492
ki1 ).
первую
часть
спектра
X (k1 ) 
N / 2 1

i1  0
Но, поскольку
2
2 N / 21
2
x0 (i1 ) c a s(
k1i1 )  c a s( k1 )  x1 (i1 ) cos(
k1i1 ) 
N /2
N
N
/
2
i1  0
2 N / 21
2
 c a s( k1 )  x1 (i1 )sin(
k1i1 ).
N
N
/
2
i1  0
x0 (i1 ) c a s(
2
k1i1 )  X (0) (k1 ),
N /2
x1 (i1 ) c a s(
2
k1i1 )  X (1) (k1 )
N /2
N / 2 1

i1  0
N / 2 1

i1  0
(X
(0)
(k1 ), X (k1 ) ‒ спектры Хартли четной и нечетной промежуточной
(1)
выборки соответственно), а (см. §4.5)
2
N

k1i1 )  [ X (1) (k1 )  X (1) ( k1 )] / 2  [ X (1) (k1 )  X (1) (  k1 )] / 2, 
N /2
2
i1  0
 (6.202)

N / 2 1
2
(1)
(1)
(1)
(1) N
x1 (i1 ) sin(
k1i1 )  [ X (k1 )  X ( k1 )] / 2  [ X (k1 )  X (  k1 )] / 2, 


N /2
2
i1  0
N / 2 1

x1 (i1 ) cos(
то после преобразований получаем
X (k1 )  X (0) (k1 )  cos(
2
2
N
k1 ) X (1) (k1 )  sin( k1 ) X (1) (  k1 ).
N
N
2
Для второй половины спектра X (k1  N / 2), k1  0, 1, ..., N / 2  1 из (6.201)
имеем:
2
k1i1  2i1 ) 
N
/
2
i1  0
N / 2 1
2
2
 c a s( k1  )  x1 (i1 )cos(
k1i1  2i1 ) 
N
N /2
i1  0
N / 2 1
2
2
 c a s[( k1  )]  x1 (i1 )sin(
k1i1  2i1 ).
N
N
/
2
i1  0
X (k1  N / 2) 
N / 2 1

x0 (i1 ) c a s(
Учитывая в этом уравнении свойство функций Хартли (6.199),
периодичность тригонометрических функций синуса и косинуса и
соотношения (6.202), после преобразований получим
X (k1  N / 2)  X (0) (k1 )  cos(
2
2
N
k1 ) X (1) (k1 )  sin( k1 ) X (1) (  k1 ).
N
N
2
Объединяя уравнения для первой и второй части спектра, приходим к
общему алгоритму БП Хартли по основанию 2 на первом уровне
прореживания по времени:
493
2
2
k1 ) X (1) (k1 )  sin( k1 ) X (1) ( N / 2  k1 )],
N
N
2

2

X (k1  N / 2)  X (0) (k1 )  [cos( k1 ) X (1) (k1 )  sin( k1 ) X (1) ( N / 2  k1 )],
N
N
k1  0, 1, ..., N / 2  1 .
X (k1 )  X (0) (k1 )  [cos(
(6.203)
В этом алгоритме так же, как и в подобном ему алгоритме БПФ Кули-Тьюки
(5.39), спектр исходной выборки сигнала выражается через спектры
промежуточных выборок. При этом здесь по сравнению с (5.39) каждое
умножение на комплексно-экспоненциальный фазовый множитель
заменяется на два умножения на вещественные тригонометрические
множители.
Поскольку
N / 2 делится
на 2, то полученный алгоритм можно
применить и для вычисления промежуточных спектров, введя новый уровень
прореживания. На m-м уровне алгоритм БП Хартли будет иметь вид (6.204)
и подобен алгоритму Кули-Тьюки (6.42). Спектры промежуточных выборок
в этом случае можно вычислить по формулам (6.43), если заменить в них
функции ДЭФ
W2nkmmim
nm
на функции Хартли cas(2kmim / 2 ) . Сами
промежуточные выборки будут описываться выражениями (6.44). На
последнем
( n  1) -м
уровне прореживания при полном алгоритме БП
n  m 1
 4, kn 1  0,1 и тригонометрические множители принимают
Хартли 2
только значения 1 или 0.
2


2

2

 sin( n  m 1 km ) X ( 1 ,2 ,...,m1 ,1) (2n  m  km )],

2

2km

( 1 ,  2 ,...,  m1 )
( 1 ,  2 ,...,  m1 ,0)
( 1 , 1 ,...,  m1 ,1)
nm
X
(km  2 )  X
(k m )  [cos( n  m 1 ) X
(km )  
2

2km

 sin( n  m 1 ) X ( 1 ,2 ,..., m1 ,1) (2n  m  km )],

2

km  0, 1, ..., 2n  m  1;    0, 1;   1, 2, ..., m  1


X ( 1 ,2 ,...m1 ) (km )  X ( 1 , 2 ,... m1 ,0) (km )  [cos(
n  m 1
km ) X ( 1 , 2 ,..., m1 ,1) (km ) 
Поэтому при m  (n  1) алгоритм (6.204) упрощается
X ( 1 ,2 ,...n2 ) (0)  X ( 1 ,2 ,...n2 ,0) (0)  X ( 1 ,2 ,...n2 ,1) (0),
494
(6.204)
X ( 1 ,2 ,...n2 ) (1)  X ( 1 ,2 ,...n2 ,0) (1)  X ( 1 ,2 ,...n2 ,1) (1),
X ( 1 ,2 ,...n2 ) (2)  X ( 1 ,2 ,...n2 ,0) (0)  X ( 1 ,2 ,...n2 ,1) (0),
X ( 1 ,2 ,...n2 ) (3)  X ( 1 ,2 ,...n2 ,0) (1)  X ( 1 ,2 ,...n2 ,1) (1).
Спектры
X ( 1 ,2 ,...n1 ) (kn 1 )
промежуточных выборок в этом случае
вычисляются с помощью 2-точечных дискретных преобразований Хартли,
которые также имеют простейший вид:
X ( 1 ,2 ,...n1 ) (0)  x(2n 2  n 1    2 2  1 )  x(2n 1  2n 2  n 1    2 2  1 ),
X ( 1 ,2 ,...,n1 ) (1)  x(2n  2  n 1    2 2  1 )  x(2n 1  2n  2  n 1    2 2  1 ).
(6.205)
Здесь учтено, что cas (0)  1 , а cas()  1 . Эти уравнения задают начальные
условия для итерационного процесса вычисления спектра Хартли по БА
(6.204) при m  n  1, n  2, ..., 1.
Оценим вычислительную сложность алгоритма БП Хартли.
Подсчитаем сначала число умножений. На последнем шаге алгоритма
умножений нет. На каждом m-м шаге из всех остальных шагов выполняется
m
N общих умножений, 2
из которых являются тривиальными, т.к.
соответствуют нулевым и единичным значениям тригонометрических
констант при индексах im и km , равных 0. Поэтому
n2
M Б   ( N  2m )  N (n  2,5)  2  N (log 2 N  2,5)  2.
m 1
Теперь оценим число сложений. Сложения выполняются на всех шагах,
причем на каждом m-м шаге из n  2 первых шагов выполняется по 1,5N  2m
сложений, а на последнем шаге – 2,5N сложений. Общее число сложений
будет равно
n2
AБ   (1,5 N  2m )  2,5 N  N (1,5n  1)  2  N (1,5log 2 N  1)  2.
m 1
Реальное число вычислительных операций можно получить еще меньше,
если учесть тривиальные множители, равные 0 и 1 , имеющие место и при
ненулевых значениях индексов im и km . Более близкими к реальным
являются оценки [13]
M Б  N (n  3)  4  N (log 2 N  3)  4,
495
AБ  1,5N (n  1)  2  1,5N (log 2 N  1)  2.
Следует отметить, что все приведенные оценки M Б и AБ справедливы
для вещественного входного сигнала. В случае комплексного входного
сигнала они удваиваются.
Полный алгоритм БП Хартли полезно представлять в виде
ориентированного сигнального графа. По сравнению с БПФ сигнальный граф
БП Хартли будет содержать дополнительные узлы, зато умножения будут
выполняться только на вещественные константы.
Пример 6.40. Записать полный алгоритм БП Хартли и построить его
сигнальный граф для N=8.
Решение. Алгоритм будет иметь два уровня прореживания. По
формулам (6.204), (6.205) получаем:
- на втором уровне (m  2; 1  0,1; 2  0,1; i2 , k2  0,1) :
x0,0 (i2 )  {x(0), x(4)};
x0,1 (i2 )  {x(2), x(6)};
x1,0 (i2 )  {x(1), x(5)};
x1,1 (i2 )  {x(3), x(7)};
X (0,0) (0)  x(0)  x(4);
X (0,0) (1)  x(0)  x(4);
X (0,1) (0)  x(2)  x(6);
X (0,1) (1)  x(2)  x(6);
X (1,0) (0)  x(1)  x(5);
X (1,0) (1)  x(1)  x(5);
X (1,1) (0)  x(3)  x(7);
X (1,1) (1)  x(3)  x(7);
X (0) (0)  X (0,0) (0)  X (0,1) (0);
X (0) (1)  X (0,0) (1)  X (0,1) (1);
X (0) (2)  X (0,0) (0)  X (0,1) (0);
X (0) (3)  X (0,0) (1)  X (0,1) (1);
X (1) (0)  X (1,0) (0)  X (1,1) (0);
X (1) (1)  X (1,0) (1)  X (1,1) (1);
X (1) (2)  X (1,0) (0)  X (1,1) (0);
X (1) (3)  X (1,0) (1)  X (1,1) (1);
- на первом уровне (m  1; 1  0,1; k1  0,1, 2,3) :
X (0)  X (0) (0)  X (1) (0);
X (2)  X (0) (2)  X (1) (2);
X (4)  X (0) (0)  X (1) (0);
X (6)  X (0) (2)  X (1) (2);
2 (1)
[ X (1)  X (1) (3)];
2
2 (1)
X (3)  X (0) (3) 
[ X (1)  X (1) (3)];
2
2 (1)
X (5)  X (0) (1) 
[ X (1)  X (1) (3)];
2
2 (1)
X (7)  X (0) (3) 
[ X (1)  X (1) (3)].
2
X (1)  X (0) (1) 
Сигнальный граф этого алгоритма приведен на рис. 6.27. Его структура
похожа на структуру графа рис. 6.4 алгоритма БПФ Кули-Тьюки, хотя и
496
содержит два дополнительных узла. На реализацию этого графа нужно
затратить 26 сложений и 2 умножения на вещественные константы.
Проверка. Для проверки алгоритма вычислим с его помощью пятый
2 (1,0)
[ X (1)  X (1,1) (1)] 
2
2 (1,0)
2
2

[ X (1)  X (1,1) (1)]  x(0)  x(4)  x(2)  x(6) 
[ x(1)  x(5)] 
[ x(3)  x(7)] 
2
2
2
2
2

[ x(1)  x(5)] 
[ x(3)  x(7)]  x(0)  2 x(1)  x(2)  x(4)  2 x(5)  x(6) .
2
2
спектральный коэффициент: X (5)  X (0,0) (1)  X (0,1) (1) 
Расчет по прямому
алгоритму
дает
следующий
результат:
7
X (5)   x(i ) c a s(5i / 4)  x(0)  x(1) c a s(5 / 4)  x(2) c a s(5 / 2)  x(3) c a s(15 / 4) 
i 0
 x(4) c a s(5)  x(5) c a s(25 / 4)  x(6)cas(30 / 4)  x(7) c a s(35 / 4)  x(0)  2 x(1)  x(2) 
 x(4)  2 x(5)  x(6) . Результаты совпадают.
x(0)
x(4)
x(2)
x(6)
x(1)
x(5)
x(3)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
. .
.
.
.
.
.
.
.
.
2
2
2
2
Х(0)
Х(1)
Х(2)
Х(3)
Х(4)
Х(5)
Х(6)
Х(7)
Рис. 6.27. Сигнальный граф полного БП Хартли по основанию 2
с прореживанием по времени для N=8
_______________ . _______________
Прореживание по частоте. Из выборки сигнала на первом уровне
прореживания образуются две промежуточные выборки {x(i1 )} и {x(i1  N / 2)} ,
а затем с помощью уравнения (6.200) раздельно записываются спектральные
составляющие с четными и нечетными номерами. Для k  2k1 получаем
X (2k1 ) 
N / 2 1

i1  0
x(i1 ) c a s(
2
k1i1 ) 
N /2
N / 2 1

i1  0
x(i1  N / 2) c a s(
2
k1i1  2k1 ) 
N /2
(6.206)
2
k1i1 ),

N
/
2
i1  0
i 0
(0)
x (i1 )  x(i1 )  x(i1  N / 2),
где
(6.207)
а для k  2k1  1 с учетом свойств функций Хартли (6.198) и (6.199) –

N / 2 1
1
2
[ x(i1 )  x(i1  N / 2)]c a s(
k1i1 ) 
N /2
497
N / 2 1

x (0) (i1 ) c a s(
X (2k1  1) 


2
 [ x(i )  x(i  N / 2)]cos( N i ) c a s( N / 2 k i ) 
1
i1  0
N / 2 1
i1  0
или
2
N / 2 1
1
1
[ x(i1 )  x(i1  N / 2)]sin(
11
2
2
i1 ) c a s(
k1i1 ).
N
N /2
2
2
i
)
c
a
s(
k1i1 ) 

1
N
N /2
i1  0
N / 2 1
2
2
  [ x(i1 )  x(i1  N / 2)]sin( i1 ) c a s[
k1 ( N / 2  i1 )] ,
N
N
/
2
i1  0
X (2k1  1) 
а,
изменив
с
N / 2 1
[ x(i1 )  x(i1  N / 2)]cos(
помощью
линейной
подстановки
i1  N / 2  i1
порядок
суммирования во второй сумме этого выражения, его можно записать как
X (2k1  1) 
где
N / 2 1

i1  0
x (1) (i1 ) c a s(
x (1) (i1 )  [ x(i1 )  x(i1  N / 2)]cos(
2
k1i1 ),
N /2
(6.208)
2
2
i1 )  [ x( N / 2  i1 )  x( N  i1 )]sin( i1 )
N
N
(6.209)
Таким образом, в виде уравнений (6.206)-(6.209) получен алгоритм БП
Хартли по основанию 2 на первом уровне прореживания по частоте. Из него
следует, что полный спектр Хартли можно вычислить с помощью N / 2 точечных ДПФ Хартли над суммой и разностями отсчетов промежуточных
выборок, причем разности отсчетов должны быть предварительно умножены
на соответствующие тригонометрические множители.
По способу организации вычислительного процесса этот алгоритм
подобен алгоритму БПФ Кули-Тьюки (6.57), (6.58). Его можно применить и
для вычисления N / 2 -точечных ДПФ Хартли, используя следующий уровень
прореживания. Процедуру прореживания можно продолжать до тех пор, пока
число отсчетов в промежуточных выборках не станет равным 2. В этом
случае будет достигнута максимальная глубина прореживания, равная n 1 ,
и получен полный алгоритм БП Хартли с прореживанием по частоте.
На m -м уровне прореживания по частоте БП Хартли по аналогии с
БПФ представляется следующим образом:
X (2m km  2m2 qm1    2q2  q1 ) 
2nm 1

im 0
498
x ( q1 ,q2 ,...,qm1 ,0) (im )cas(
2
kmim ),
2n  m
X (2 km  2
m
m 1
2
m2
km  0, 1, ..., 2
где
qm1    2q2  q1 ) 
nm

im 0
x ( q1 ,q2 ,...,qm1 ,1) (im )cas(
2
kmim ),
2n  m
(6.210)
 1; q  0, 1;   1, 2, ..., m  1,
( q , q ,..., q )
( q , q ,..., q )
nm
x ( q1 ,q2 ,...,qm1 ,0) (im )  x 1 2 m1 (im )  x 1 2 m1 (im  2 ),
x ( q1 ,q2 ,..., qm1 ,1) (im )  [ x ( q ,q ,...,q
1
[ x
2nm 1
( q1 , q2 ,..., qm1 )
(2
nm
2
 im )  x
m1 )
( q , q ,..., q )
nm
(im )  x 1 2 m1 (im  2 )]cos(
( q1 , q2 ,..., qm1 )
(2
n  m 1
и описывает итерационный процесс с
2i
 im )]sin( n  mm1 )
2
m 1, 2, ..., n  1
2
2n  m1
im ) 
(6.211)
при начальных
значениях в виде (6.207) и (6.209). На последнем шаге (при m  n 1 ) ДПФ
Хартли в (6.210) будут 2-точечными и выполняются без умножений. Не
потребуются умножения и при вычислении величин (6.211), поскольку
тригонометрические множители в этом случае будут равны 1 либо 0.
Алгоритм БП Хартли с прореживанием по частоте будет содержать
такое же число операций, как и алгоритм БП Хартли с прореживанием по
времени. Поэтому для него так же справедливы все приведенные ранее
оценки. Его можно проиллюстрировать с помощью сигнального графа,
который в этом случае будет иметь структуру, близкую к структуре графа
БПФ Кули-Тьюки с прореживанием по частоте, хотя и будет содержать
дополнительные вычислительные узлы.
Пример 6.41. Записать алгоритм БП Хартли с прореживанием по
частоте и построить его сигнальный граф для N=8.
Решение. Полный алгоритм БП Хартли в этом случае будет иметь два
уровня прореживания, т.е m=1,2. В соответствии с общим алгоритмом
(6.210), (6.211) получаем:
- на первом уровне прореживания (m  1; i1  0, 1, 2, 3; q1  0, 1) :
x(0) (0)  x(0)  x(4);
x(0) (1)  x(1)  x(5);
x(0) (2)  x(2)  x(6);
x(0) (3)  x(3)  x(7);
x (1) (0)  x(0)  x(4);
x (1) (1) 
2
{[ x(1)  x(5)]  [ x(3)  x(7)]};
2
x (1) (2)  x(2)  x(6);
x (1) (3) 
2
{[ x(1)  x(5)]  [ x(3)  x(7)]};
2
499
- на втором уровне прореживания (m  2; i2 , k2  0, 1; q2  0, 1) :
x(0,0) (0)  x(0) (0)  x(0) (2);
x(0,0) (1)  x(0) (1)  x(0) (3);
x(1,0) (0)  x(1) (0)  x(1) (2);
x(1,0) (1)  x(1) (1)  x(1) (3);
x(0,1) (0)  x(0) (0)  x(0) (2);
x(0,1) (1)  x(0) (1)  x(0) (3);
x(1,1) (0)  x(1) (0)  x(1) (2);
x(1,1) (1)  x(1) (1)  x(1) (3)
и результирующий спектр равен:
X (0)  x(0,0) (0)  x(0,0) (1);
X (4)  x(0,0) (0)  x(0,0) (1);
X (2)  x(0,1) (0)  x(0,1) (1);
X (6)  x(0,1) (0)  x(0,1) (1);
X (1)  x(1,0) (0)  x(1,0) (1);
X (5)  x(1,0) (0)  x(1,0) (1);
X (3)  x(1,1) (0)  x(1,1) (1);
X (7)  x(1,1) (0)  x(1,1) (1).
Сигнальный граф этого алгоритма представлен на рис. 6.28. Он имеет такие
же сложностные характеристики, что и граф рис. 6.27.
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
.
.
.
.
.
.
.
.
.
.
.
.
.
. .
.
. .
.
.
.
.
.
.
.
.
2
2
2
2
.
.
.
.
.
.
.
.
Х(0)
Х(4)
Х(2)
Х(6)
Х(1)
Х(5)
Х(3)
Х(7)
Рис. 6.28. Сигнальный граф полного БП Хартли по основанию 2
с прореживанием по частоте для N=8
Проверка. Её выполним для того же пятого коэффициента:
X (5)  x(1,0) (0)  x(1,0) (1)  x(1) (0)  x(1) (2)  x(1) (1)  x(1) (3)  x(0)  x(4)  x(2)  x(6) 

2
x(1) 
2
2
2
2
2
2
2
2
x(5) 
x(3) 
x(7) 
x(3) 
x(7) 
x(1) 
x(5)  x(0)  2 x(1)  x(2) 
2
2
2
2
2
2
2
 x(4)  2 x(5)  x(6).
Полученное значение совпадает со значением этого
коэффициента, рассчитанным в предыдущем примере.
_______________ . _______________
Используя общую методику синтеза БПФ различного типа и учитывая
специфику функций Хартли, аналогичным образом можно записать
500
алгоритмы БП Хартли по другим основаниям, для взаимно-простых
множителей и гнездового типа (типа Винограда) [8, 13]. БП Хартли по
своим вычислительным характеристикам не уступают БПФ, что только
усиливает перспективность их применения для частотного анализа
вещественных сигналов.
Наличие быстрых алгоритмов в немультипликативных базисах Хаара,
Фибоначчи и Хартли приводит к выводу, что мультипликативность базисной
системы является только достаточным, но не необходимым условием
существования в ней быстрых преобразований.
6.9. Матричные методы синтеза быстрых преобразований
Матричные методы синтеза БПФ используют матричную форму
описания ДПФ и основываются на различных способах факторизации матриц
значений базисных функций. Они широко применяются в теории БПФ,
поскольку дают компактное описание быстрого анализа спектра сигнала
[13, 21, 60].
Поскольку в матричных и скалярных подходах используются разные
формы описания одного и того же математического объекта, то различие в
них проявляется только в форме аналитического описания алгоритма и не
касается самой сути
вычислительного процесса. Поэтому конечные
результаты для обоих подходов совпадают. Это объясняется еще и тем, что
способы прореживания выборки входного сигнала зачастую лежат в основе
способов факторизации матриц базисных функций [13].
Универсального и практически удобного для всех базисных систем
способа факторизации матриц нет, поэтому при разработке алгоритмов БПФ
приходится искать частные приемы, справедливые для матриц
определенного типа. Гуд показал (см. §2.5), что матрицы, представляющие
собой кронекеровскую степень другой матрицы, могут быть факторизованы.
Это можно использовать для факторизации матриц Уолша-Адамара и ВКФАдамара. Матрица ДЭФ в общем случае способом Гуда не факторизуется.
Однако при размерности N матриц, представляемой составным числом, Кули,
Тьюки и Глассман [67, 68] предложили свои способы приведения матрицы
ДЭФ к легко факторизуемому виду.
501
Пойда [43] разработал другой интересный способ факторизации матриц
общего вида при N  p n , который успешно может быть использован для
факторизации матриц ДЭФ, Уолша и ВКФ. Целый ряд полезных способов
факторизации матриц различных базисных систем приведен в работе [13].
Все они основываются на разных способах многомерного представления
одномерных индексов, применяемых при прореживании сигнала в скалярном
подходе к синтезу БПФ.
Для иллюстрации матричного подхода рассмотрим только два примера
синтеза БПФ для ДЭФ и функций Уолша, воспользовавшись соответственно
способами Глассмана и Гуда.
Пусть дана полнофазная матрица ДЭФ размером N  N
WN0 WN0 ...
WN0 
 0
1
N 1 
W
W
...
W
N
N
N
,
DN  
 .
.
.
. 


0
N 1
( N 1)2
WN WN

... WN
(6.212)
где, как и ранее, WN  exp( j 2 / N ) . Покажем, что эту матрицу можно
факторизовать, если N составное число. Предположим, что N  N1M1 , где N1 простое
число.
Следуя
работе
[60],
обозначим
элемент
матрицы
DN WNik  di ,k . Тогда любую её строку с номером i можно записать в виде
[di ,k ]  [di ,0 ,..., di ,( N1 1),WNN1i di,0 ,...,WNN1i di,( N1 1) ,
WN2 N1i di ,0 ,...,WN2 N1i di ,( N1 1) ,..., WN( M1 i ) N1i di ,0 ,...,WN( M1 i ) N1i di ,( N1 1) ] .
Упростим эту запись, обозначив часть строки в виде
Гi(1)  [di ,0 , di ,1 ,..., di ,( N1 1) ].
Тогда получим
[di ,k ]  [ Гi(1) ,WNN1i Г i(1) , WN2 N1i Г i(1) ,...,WN( M 1) N i Г i(1) ].
1
1
(6.213)
Используя известные свойства сравнений (см. §2.6), имеем
 N , i  N  N , i  N1M1  N1i  [ N1i / N1M 1 ]N1M 1  N1 (i  [i / M 1 ]M 1 )  N1  i  M1 ,
где [  ] означает целую часть результата деления двух целых чисел. Поэтому
для k  0, 1, ..., M1  1 получаем
502
kN1 i M1
WNkN1i  WNk  N1i N  WN
.
Из этого следует, что выражение (6.213) имеет M 1 различных форм записи,
соответствующим разным значениям остатка  i  M1 :
- для  i  M1  0
[di ,k ]  [ Гi(1) , Гi(1) ,..., Гi(1) ],
- для  i  M1  1
[di ,k ]  [ Гi(1) ,WNN1 Гi(1) ,...,WN( M1 1) N1 Гi(1) ],
. . .
- для  i  M1  M 1  1
.
.
.
.
.
.
.
[di ,k ]  [ Г i(1) , WN( M1 1) N1 Г i(1) ,..., WN( M1 1)
.
2
N1
Г i(1) ].
В то время, как в матрице (6.212) индекс i изменяется в диапазоне от 0
до N-1, величина  i  M1 пробегает N1 раз значения в пределах от 0 до M1  1
.С учетом этого матрицу (6.212) можно переписать в виде
 Г 0(1)

Г 0(1)
...
Г 0(1)
 (1)
N1
( M1 1) N1
(1)
(1) 
Г
W
Г
...
W
Г
1
1
1
1

DN  
 .

.
.
.


2
 Г N(1)1 WN( М1 1) N1 Г N(1)-1 ... WN( M1 1) N1 Г N(1)1 
Представленная так матрица ДЭФ разлагается на множители:
 Г 0(1)



.



.
DN  PQ
1 1  
(1)
 Г ( N1 1) M1



.


Г
(1)
1
.
.
Г ((1)N1 1) M1 1
.



. 

Г М(1)1 1 
.  




. 
Г N(1)1 
 I N1
I N1

WNN1 I N1
 I N1

.
 .
( М1 1) N1
I
W
I N1
N
N
 1


... WN( M1 1) N1 I N1 
.
.
.

( M1 1) 2 N1
... WN
I N1 
...
I N1
(6.214)
Здесь матрица P1 имеет размер M1  N , а матрица Q1  M1  M1 . Через I N
1
обозначена единичная матрица размером
503
N1  N1 .
Все отсутствующие
элементы в этих матрицах являются нулевыми и опущены, чтобы
подчеркнуть структуру матриц. Обратим внимание на то, что вторая матрица
Q1 имеет ту же структуру, что и исходная матрица DN , с той лишь разницей,
что элементы
этой новой матрицы сами являются матрицами размером
N1  N1
WNkN1 I N1
WNkN1

WNkN1













.




kN1
WN 
Если величина M 1 не является простым числом, то приведенную
процедуру факторизации можно применить и к матрице Q1 , представив M 1 в
виде произведения N 2 M 2 , где N 2 ‒ простое число. Тогда получим
Q1  P2Q2
и
DN  P1 P2Q2 ,
где
 Г 0(2)



.



.
P2  
 Г ((2)
N 1) M
 2 2


.



504
Г1(2)
.
.
Г ((2)
N 2 1) M 2 1
.



. 

Г М(2)2 1 
.  ,




. 
Г M(2)1 1 
 I N1N2

IN N
Q2   1 2
 .
I
 N1N2
I N1N 2


... WN( M 2 1) N2 I N1N 2 
,
.
.

( M 2 1)2 N 2
... WN
I N1N 2 
...
WNN2 I N1N2
.
WN( М 2 1) N2 I N1N 2
I N1N 2
а
Гi(2)  [ I N1 ,WNN1i I N1 , ..., WN( N2 1) N1i I N1 ].
Матрица P2 имеет размер M 2  M1 , матрица Q2  M 2  M 2 и I N1 N 2 ‒ единичная
матрица размером N1 N2  N1 N2 . Если и число M 2 составное, то процедура
факторизации может быть продолжена.
Пример 6.42. Факторизовать матрицу ДЭФ размером 6  6 .
Решение. В соответствии с приведенными алгоритмом факторизации
для N=6 получаем [60]:
1
1
W60 W60
 1


 
0
1
1
1 
W6 W6

  1


W62
W64
W60 W62  1
D6   0
.
 
2
4
3
W6
W6 
W6 W6
  1

 1

W64
W62
W60 W64




W64
W62 
W60 W65   1

Матрицы сомножители приведены здесь с минимальными фазами.
_______________ . _______________
Пример 6.43. Факторизовать матрицу ДЭФ размером 8  8 .
Решение. В этом случае N  8  2  2  2 и алгоритм факторизации в
пределе будет иметь три итерации. В результате будет получено следующее
разложение матрицы ДЭФ на сомножители:
W80 W80



0
1
W8 W8




W80 W82

0
3
W8 W8 
D8   0

W W 4

8
8


W80 W85


0
6


W8 W8


W80 W87 

505
1
1
 1
1




1
W84

W84
 1



1
 1

  1

1
 

 

1
1


2
W8  
1
1 

.
 1

W84
 

W84
  1

4
 

1
W8



W86  
1
W84 
W82
1
1
W86
1
1
Эти матрицы также записаны с минимальными фазами. Граф,
соответствующий вычислению 8-ми точечного ДПФ с помощью такого
представления матрицы ДЭФ совпадает с графом БПФ Кули-Тьюки с
прореживанием по частоте примера 6.14 (см. рис. 6.7), если в нем
переставить узлы последнего уровня для получения естественного порядка
следования спектральных коэффициентов.
_______________ . _______________
Из выведенного алгоритма факторизации и приведенных примеров
следует, что чем больше простых множителей содержит число N, тем больше
сомножителей будет у матрицы ДЭФ при её факторизации и тем больше
нулевых элементов будут содержать эти сомножители. Как следствие это
приводит к увеличению эффективности соответствующих БПФ в базисе
ДЭФ.
Факторизацию матриц Уолша рассмотрим на примере матриц УолшаАдамара. Так как эти матрицы представляются в виде кронекеровской
степени матрицы ДЭФ (см.§5.7), то для их факторизации можно
непосредственно использовать методику Гуда [69]. В соответствии с ней (см.
§ 2.5) матрица Уолша-Адамара
H 2n
размена 2  2 , представляемая n-й
n
n
кронекеровской степенью матрицы ДЭФ D2 размером 2  2 , может быть
записана в виде обычной n-й степени слабозаполненной матрицы B2
n
размером 2  2 :
n
n
H2n  D2[ n]  B2nn
При этом, если номера строк i и столбцов k в матрицах
следующие двоичные n-разрядные представления
i  (inin1...i1 )2 ,
506
(6.215)
H 2n
и
B2nn имеют
k  (kn kn1...k1 )2 ,
где n-й разряд является старшим, то элементы bi , k матрицы B2n можно
вычислить с помощью произведения
bi ,k  di1 ,kn i2 ,k1 i3 ,k2  in ,kn1 .
Здесь
d i1 , kn
(6.216)
представляет собой элемент матрицы ДЭФ D2 , а все i , k
являются символами Кронекера.
Пример 6.44. Факторизовать матрицу Уолша-Адамара при N=8.
Решение. В этом случае n=3 и матрица Уолша-Адамара H 8 по формуле
(6.215) может быть выражена в виде третьей степени матрицы B8 . Элементы
этой матрицы достаточно просто находятся по алгоритму
(6.216) и
принимают значения 1 и 0. Матрица B8 является слабозаполненной и имеет
следующую структуру (нулевые элементы в ней для наглядности не
указаны):
1 1



1 1




1 1


1 1

B8 

1 1



1 1




1 1


1 1

Использование этой матрицы при анализе спектра Уолша-Адамара
приводит к алгоритму БПУ-Адамара с естественным порядком следования
отсчетов сигнала и спектра, рассмотренному в примере 6.28, и ему
соответствует сигнальный граф рис.6.18.
_______________ . _______________
Факторизовать матрицу Уолша-Адамара можно и другим способом,
если использовать выражение (2.53):
где
( n)
H 2n  C2(1)n  C2(2)
n  C n ,
2
(1)
C2n  D2  I 2  I 2  I 2 ,
C2(2)
n  I 2  D2  I 2  I 2 ,
---------------
C2(nn)  I 2  I 2  I 2  D2 .
507
Пример 6.45. Факторизовать матрицу Уолша-Адамара при N=8 вторым
способом.
Решение. В этом случае
H 8  C8(1)C8(2)C8(3) ,
где
C8(1)
1 1

1 1





1 1


1 1

,
 D2  I 2  I 2 


1 1


1 1



1 1


1 1

C8(2)
1
1

 1

1


1

1


1
1

,
 I 2  D2  I 2 


1
1


1
1



1
1


1
1

C8(3)
1
1

 1

1




1
1


1
1

 I 2  I 2  D2 
.
1

1


1
 1



1
1


1
1

Матрицы C8( m ) , m  1, 2,3 является слабозаполненными и содержат столько же
нулей, сколько их в матрице
B8 .
Использование этих матриц при
спектральном анализе приводит к алгоритму БПУ-Адамара с прореженным
порядком следования отчетов сигнала и спектра (см. пример 6.27) с
сигнальным графом, представленным на рис. 6.17.
_______________ . _______________
508
Как уже отмечалось, матричный и скалярный подходы приводят к
одинаковым результатам и в этом смысле являются эквивалентными. Однако
при программировании БПФ часто бывает полезнее иметь аналитическую
запись вычислительного алгоритма в виде рекуррентных алгебраических
уравнений. Для матричного подхода в этом случае возникает необходимость
в дополнительном этапе преобразования БПФ к скалярному виду. Кроме
того, скалярная форма записи алгоритмов БПФ оказывается более удобной
при разработке быстрых алгоритмов скользящего анализа спектра, о которых
пойдет речь в следующей главе.
Вопросы и задачи для самопроверки
1. В чем состоит отличие между прямым и быстрым
вычислительными алгоритмами? Приведите примеры таких алгоритмов.
2. Какие средства используются для графического представления
быстрых алгоритмов? Поясните правила построения сигнальных графов.
3. Поясните суть быстрого алгоритма Тоома-Кука.
4. Запишите алгоритмы Тоома-Кука вычисления линейных сверток
3  2 и 3  3 . Оцените их сложность.
5. Сформулируйте основные принципы построения быстрых
алгоритмов Винограда вычисления круговых сверток.
6. Запишите алгоритм Винограда вычисления четырехточечной
круговой свертки. Оцените его сложность.
7. Какие существуют алгоритмы вычисления длинных сверток?
8. Поясните суть быстрого алгоритма Агарвала-Кули.
9. Запишите алгоритм Агарвала-Кули для N=8.
10. В чем состоит отличие послойно-гнездового алгоритма от
алгоритма Агарвала-Кули?
11. Запишите послойно-гнездовой алгоритм для N=10.
12. Какие алгоритмы БПФ для анализа частотного спектра вы знаете?
13. Запишите алгоритмы БПФ Кули-Тьюки по основаниям 2 и 4 с
различными способами прореживания для N=32. Нарисуйте сигнальные
графы этих алгоритмов.
14. За счет чего достигается дополнительная экономия вычислений в
оптимизированных алгоритмах Кули-Тьюки?
509
15. Запишите алгоритмы Кули-Тьюки по основанию 3 с
прореживанием по времени и частоте для N=9.
16. Сформулируйте основные принципы построения БПФ Гуда-Томаса.
17. Запишите алгоритм Гуда-Томаса для N=15.
18. Запишите корреляционный и сверточный алгоритмы Рейдера для
N=7.
19. Запишите алгоритм Рейдера для N=7.
20. Запишите БПФ-алгоритм Винограда для N=7.
21. Запишите БПФ-алгоритм Винограда для N=21.
22. Запишите все возможные БПУ-алгоритмы для систем Пэли,
Хармута и Адамара при N=16.
23. Запишите все возможные БПФ-алгоритмы для систем ВиленкинаКрестенсона при N=16.
24. Запишите все возможные БПФ-алгоритмы для системы
обобщенных функций Крестенсона-Кронекера при N=9.
25. Запишите БПФ-алгоритмы для функций Хаара при N=16.
26. Запишите БПФ-алгоритмы для базисов Рейдера, Фибоначчи и
Хартли при N=16.
27. Сформулируйте достоинства и недостатки матричного подхода к
синтезу БПФ.
28. Выполните факторизацию матрицы ДЭФ размером 16 16 .
29. Выполните факторизацию матрицы Уолша-Адамара размером
16 16 .
510
ГЛАВА 7
БЫСТРЫЕ АЛГОРИТМЫ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ
НА СКОЛЬЗЯЩИХ ИНТЕРВАЛАХ ВРЕМЕНИ
7.1. Скользящая обработка сигналов
Существует два вида обработки сигналов с изменяющейся выборкой.
В первом виде начало выборки фиксируется в начальный момент времени, а
её конечное значение меняется с увеличением текущего дискретного
времени
j  t / t .
Такую
{x(i)}, i  [0, j ], j  0, 1, 2, ... .
выборку
можно
записать
в
виде
Её обработку иногда называют текущей [45]. По
сути она представляет собой обработку сигнала с выборкой нарастающей
длины. Поскольку при конкретном значении времени j текущую выборку
можно считать статической, то для её обработки применимы все ранее
рассмотренные быстрые алгоритмы.
Во втором виде обработки конечномерная выборка сигнала
перемещается по оси текущего времени. Такая обработка называется
обработкой по методу скользящего окна или просто скользящей обработкой.
При этом возможны два основных варианта формирования скользящей
выборки. В первом варианте конец выборки связывают с текущим отсчетом,
а её начало оказывается удаленным от текущего отсчета на N отсчетов:
{x( j  i  N  1), i  [0, N ), j  N  1, N , N  1, ... .
Во втором варианте, наоборот,
начало выборки привязывается к текущему отсчету, а её конец становится
удаленным
от
текущего
отсчета
на
N
отсчетов:
{x( j  i )}, i  [0, N ), j  N  1, N , N  1, ... .
Второй вариант образования скользящей
выборки чаще используется при обработке, поскольку получаемые в этом
случае параметры сигнала соответствуют текущему моменту времени, в то
время как для первого варианта они оказываются соответствующими
моменту времени, удаленному от текущего на N интервалов дискретизации,
что может привести к необходимости их дополнительного пересчета.
Наглядным примером использования второго варианта служит цифровая
фильтрация, являющаяся одной из важных операций цифровой обработки
сигналов (см. главу 8). В дальнейшем нами будет использоваться только
второй вариант формирования скользящей выборки.
511
Шаг скольжения при обработке может иметь различную длину.
Наиболее часто в прикладных задачах используется скольжение с шагом,
равным одному интервалу дискретизации. Процесс сдвига выборки в этом
случае наиболее прост и на j-м шаге состоит в исключении из выборки
предыдущего ( j  1) -го шага отсчета сигнала x( j  N ) , удаленного от текущего
на длину выборки N, и включения в нее нового текущего отсчета
x( j )
(рис. 7.1). Важной особенностью такого сдвига является то, что N  2 отсчета
предыдущей выборки сохраняются и в текущей выборке, меняя только свою
нумерацию.
.
.
.
.
.
.. ..
x(j)
x(j-1-i)
...
x(j-i)
...
j
0 1 2
j-N j-N+1
N-1
N-1
j-2 j-1 j
...
...
2 1 0
2 1 0
Рис. 7.1. Скользящая выборка дискретного сигнала
При конкретном значении текущего времени j выборку x( j  i ) можно
рассматривать как статическую и использовать для её обработки все
приведенные ранее алгоритмы, в том числе и быстрые алгоритмы.
Результаты обработки будут являться функцией переменной j, что должно
быть отражено в их обозначении. Поскольку при сдвиге выборки на один шаг
основной объем данных в выборке сохраняется, то возникают предпосылки
для разработки специальных эффективных быстрых алгоритмов скользящей
обработки сигналов, учитывающих результаты обработки на предыдущих
шагах скольжения.
Известны два подхода к синтезу быстрых алгоритмов скользящей
обработки. Первый подход использует прямые статические алгоритмы,
преобразованные с учетом особенностей скользящих выборок. Методы
преобразования алгоритмов могут быть различными. Так в алгоритме
512
скользящего анализа частотного спектра Оботнина – Страшинина
используется математическое преобразование различных форм реализации
передаточных функций согласованных цифровых фильтров, к уравнениям
которых сводятся прямые алгоритмы ДПФ [41]. Такой же способ
преобразования использован Зеленковым А.В. при синтезе алгоритмов
скользящего анализа комплексного
спектра Уолша-Адамара [27]. При
втором подходе, предложенном Сюзевым В.В. [48, 53, 55], в основе
разработки скользящих алгоритмов используются
статические БА, в
структуру которых вносятся изменения, учитывающие специфику процесса
скольжения выборки по оси дискретного времени. Этот подход не требует
специальных методов преобразования алгоритмов и позволяет использовать
имеющиеся наработки в теории быстрых алгоритмов, получая в конечном
счете скользящие алгоритмы различной сложности.
7.2. Методы вычисления скользящих круговых и линейных сверток
Алгоритмы вычисления скользящих сверток могут быть построены как
на основе прямых алгоритмов сверток (первый подход), так и на основе
существующих быстрых их алгоритмов статического вида, записанных для
скользящих выборок (второй подход). Рассмотрим сначала алгоритмы
первого подхода.
Прямой алгоритм вычисления скользящей круговой свертки легко
получается из прямого алгоритма (2.18) такой свертки для статической
выборки и имеет следующий вид записи:
N 1
y j (i )   x( j  k ) F (i  k ),
k 0
(7.1)
где y j (i ) обозначают значения выходного сигнала свертки для j-го момента
текущего времени. Прямое выполнение этого алгоритма по-прежнему
требует затрат M П  N 2 умножений и AП  ( N  1) сложений и хранения
QП  3N значений отсчетов сигналов x( j  i ), y j (i ) и ядра свертки F (i ) . Выделяя
из суммы алгоритма (7.1) первое слагаемое, этот алгоритм можно
представить так:
N 1
y j (i)  x( j ) F (i )   x( j  k ) F (i  k ).
k 1
513
(7.2)
Но слагаемые суммы по индексу k для k  1, 2, ..., N  1 в такой форме записи
прямого алгоритма уже вычислялись на предыдущих шагах скольжения.
Если их запомнить, то на текущем шаге обработки потребуется выполнить
только M C  N умножений и AC  N ( N  1) сложений, а также хранить
дополнительно N ( N  1) результатов предыдущих расчетов. Учитывая, что из
всего сигнала x( j  i ) в этом случае будет использоваться только один
текущий отсчет x( j ) , то общий объем данных, подлежащих хранению в
алгоритме (7.2) будет равен QC  N ( N  1)  1 . Таким образом, скользящий
алгоритм (7.2) позволяет в N раз сократить число умножений при
неизменном числе сложений. Экономия числа умножений достигается за
счет определенного увеличения объема хранимых промежуточных данных. В
табл. 7.1 приведены значения реализационных характеристик прямых
статического (7.1) и скользящего (7.2) алгоритмов для различных N.
Таблица 7.1
N
Статический прямой
алгоритм
M
2
3
6
9
16
30
32
64
128
210
4
9
36
81
256
900
1024
4096
16384
44100
A
Q
2
6
30
72
240
870
992
4032
16256
43890
6
9
18
27
48
90
96
192
384
630
256
65536
65280
315
99225
98910
512 262144 261632
1024 1048576 1047552
768
945
1536
3072
Скользящий прямой
нерекурсивный алгоритм
M
A
2
3
6
9
16
30
32
64
128
210
2
6
30
72
240
870
992
4032
16256
43890
Q
Скользящий прямой
рекурсивный алгоритм
M
A
Q
7
13
43
91
273
931
1057
4161
16513
44311
2
3
6
9
16
30
32
64
128
210
3
4
7
10
17
31
33
65
129
211
7
10
19
8
49
91
97
193
385
631
256
65280
65793
315
98910
99541
512 261632 262657
1024 1047552 1049601
256
315
512
1024
257
316
513
1025
769
946
1537
3073
По своей структуре алгоритм (7.2) является нерекурсивным
алгоритмом и может быть графически представлен с помощью
соответствующего сигнального графа.
514
Пример 7.1. Записать скользящий прямой нерекурсивный алгоритм
вычисления трехточечной круговой свертки.
Решение.
В
этом
случае
и
для
j-го
шага
N 3
y j (0)  x( j ) F (0)  x( j  1) F (2)  x( j  2) F (1),
y j (2)  x( j ) F (2)  x( j  1) F (1)  x( j  2) F (0) .
y j (1)  x( j ) F (1)  x( j  1) F (0)  x( j  2) F (2),
Два последних слагаемых в каждом из
этих уравнений вычислялись на предыдущих ( j  1) -м и ( j  2) -м шагах. Их
можно сохранить и использовать в текущих расчетах. Сигнальный граф этого
алгоритма приведен на рис. 7.2, а его реализационные характеристики
указаны в табл. 7.1.
.
.
. .
.
.
.
.
.
.
.
.
.
.
.
.
.
F(0) x(j-1)F(2) x(j-2)F(1)
yj(0)
F(1) x(j-1)F(0) x(j-2)F(2)
x(j)
yj(1)
F(2) x(j-1)F(1) x(j-2)F(0)
yj(2)
Рис. 7.2. Сигнальный граф скользящего нерекурсивного
алгоритма круговой свертки для N=3
_______________ . _______________
Число сложений в алгоритме (7.2) можно сократить. Для этого
используем полиномиальную математическую модель сигналов [см. (2.9)].
Запишем сигналы x( j  i ), y j (i ) и функцию ядра F (i) в виде полиномов
переменной z:
N 1
N 1
X j ( z )   x( j  i ) z , Y j ( z )   y j (i) z , F ( z ) 
i
i
i 0
i 0
N 1
 F (i) z
i 0
i
.
Тогда свертка (7.1) может быть представлена в виде произведения по модулю
( z N  1) полиномов X j ( z ) и F ( z ) :
(mod( z N  1)).
Yj ( z)  X j ( z)F ( z)
Если при этом учесть, что
X j ( z)  zX j 1 ( z)  x( j  N ) z N  x( j ),
515
(7.3)
(7.4)
то выражение (7.3) можно преобразовать к виду
Yj ( z)  zX j 1 ( z) F ( z)  F ( z) x( j  N ) z N  x( j) F ( z)
(mod( z N  1)) ,
а используя свойства модулярной арифметики в кольце полиномов,
окончательно записать его следующим образом:
Y j ( z )  zY j 1 ( z )  [ x( j )  x( j  N )] F ( z)
(mod( z N  1)) .
(7.5)
Теперь из записи полинома результата (7.5) несложно получить алгоритм
вычисления его коэффициентов:
y j (0)  y j 1 ( N  1)  [ x( j )  x( j  N )]F (0), 

y j (i )  y j 1 (i  1)  [ x( j )  x( j  N )]F (i ), 

i  1, 2, ... N  1.

(7.6)
Вычисление всех значений свертки по скользящему алгоритму (7.6)
приводит к затратам
Ac  N  1
сложений, а также к хранению N
дополнительных промежуточных значений свертки.
Однако, если
организовать процедуру вычислений с замещением, т.е. хранить текущие
значения свертки на месте предыдущих, то общий объем хранимых данных в
алгоритме (7.6) будет практически таким же, как в прямом статическом
алгоритме (7.1)
(Qc  3N  1) . Значения реализационных характеристик
алгоритма (7.6) для отдельных величин N приведены в табл. 7.1. Структура
этого алгоритма так же может быть наглядно отражена с помощью
специальных сигнальных графов.
В алгоритме (7.6) значения свертки на текущем шаге скольжения
выражаются через ее значения на предыдущем шаге. Поэтому алгоритм (7.6)
относится к рекурсивным алгоритмам.
Пример 7.2. Записать рекурсивный алгоритм (7.6) для N=3.
Решение. В соответствии с выражениями (7.6) получим:
y j (0)  y j 1 (2)  [ x( j )  x( j  3)]F (0),
y j (1)  y j 1 (0)  [ x( j )  x( j  3)]F (1),
y j (2)  y j 1 (1)  [ x( j )  x( j  3)]F (2).
Граф этого алгоритма приведен на рис. 7.3, а его реализационные
характеристики – в табл. 7.1.
516
.
. . .
.
.
yj-1(2)
F(1)
yj(0)
yj-1(0)
F(2)
yj(1)
yj-1(1)
x(j)
x(j-2)
.
.
.
.
.
.
F(0)
yj(2)
Рис. 7.3. Сигнальный граф скользящего рекурсивного
алгоритма круговой свертки для N=3
_______________ . _______________
Прямой алгоритм линейной свертки для скользящей выборки сигнала в
соответствии со статическим выражением (2.19) принимает следующий вид
i
y j (i )   x( j  k ) F (i  k ), i  0, 1, ..., N1  N 2  2.
k 0
(7.7)
Его реализация приводит к затратам умножений и сложений, задаваемых
формулами (6.1) и (6.2), а количество хранимых данных определяется числом
отсчетов сигналов и функции ядра и равно Qn  2( N1  N 2 )  1 . В табл. 7.2.
приведены значения реализационных показателей этого алгоритма для
различных величин N1 и N 2 .
Этот алгоритм также можно существенно улучшить в реализационном
плане, если выделить из суммы (7.7) слагаемое при k  0 . Тогда получим
i
y j (i)  x( j ) F (i)   x( j  k ) F (i  k ), i  0, 1, ..., N1  N 2  2.
k 1
(7.8)
Если теперь сомножители вида x( j  k ) F (i  k ) , вычисленные на предыдущих
шагах, сохранить, то вычисление всей свертки на текущем шаге потребует
выполнения только M c  N 2 умножений при том же числе сложений, что и
в алгоритме (7.7). В результате число умножений будет сокращено в N1 раз, а
объем
данных,
подлежащих
хранению,
возрастет
и
составит
Qc  N1 N 2  N1  N 2 , где учтено, что для сигнала x( j  i ) в этом случае
517
необходимо хранить только один текущий отсчет x( j ) . В табл. 7.2 приведены
значения показателей сложности алгоритма (7.8) для различных N1 и N 2 .
Алгоритм (7.8), как и алгоритм (7.2), является нерекурсивным
алгоритмом. Для его иллюстрации можно использовать соответствующие
сигнальные графы.
Таблица 7.2
N1  N 2
2 2
3 2
3 3
4 4
8 8
16  16
32  32
64  64
128 
128
256 
256
1024 
1024
Статический
нерекурсивный
алгоритм
M
A
4
1
6
2
9
4
16
9
64
49
256
225
1024
961
4096
3969
16384
16129
65536
Скользящий
нерекурсивный
алгоритм
M
A
Q
2
1
8
2
2
11
3
4
15
4
9
24
8
49
80
16
225
288
32
981
1088
64
3969
4224
128
16129
16640
Скользящий
рекурсивный
алгоритм
M
A
Q
2
2
5
2
2
7
3
4
11
4
6
19
8
14
55
16
30
271
32
62
1055
64
126
4159
128
254
16511
256
66048
256
1024 1046529 1050624
1024
Q
7
9
11
15
31
63
127
255
511
65025
1023
1048576 1046529
4095
65025
510
65791
2046 1049599
Пример 7.3. Записать алгоритм (7.8) для N1  N2  3 .
Решение. В этом случае
N1  N2  2  4
и уравнения свертки в
соответствии с (7.8) приобретают следующий вид:
y j (0)  x( j ) F (0),
y j (1)  x( j ) F (1)  x( j  1) F (0),
y j (2)  x( j ) F (2)  x( j  1) F (1)  x( j  2) F (0),
y j (3)  x( j  1) F (2)  x( j  2) F (1),
y j (4)  x( j  2) F (2) .
Все сомножители, содержащие x( j  1) или x( j  2) , вычислялись на
предыдущих шагах скольжения и
могут быть сохранены. Поэтому по
алгоритму будут выполнены только три умножения текущего отсчета x( j ) на
значения функции ядра F (i) . Сигнальный граф этого алгоритма приведен на
рис. 7.4. Характеристики его сложности даны в табл. 7.2.
518
.
.
. .
.
F(0)
.
.
.
. .
. .
.
. .
. .
yj(0)
F(1) x(j-1)F(0)
x(j)
yj(1)
F(2) x(j-1)F(1) x(j-2)F(0)
yj(2)
x(j-2)F(1)
x(j-1)F(2)
yj(3)
x(j-2)F(2)
yj(4)
Рис. 7.4. Сигнальный граф скользящего нерекурсивного
алгоритма линейной свертки 3x3
_______________ . _______________
Можно построить и рекурсивный скользящий алгоритм вычисления
линейной свертки. Для этого целесообразно использовать её полиномиальное
представление. Так как
Y j ( z )  X j ( z ) F ( z ),
то, учитывая формулу (7.4) связи полиномов X j ( z ) и X j 1 ( z ) , можно записать,
что
Yj ( z)  zX j 1 ( z) F ( z)  x(i) F ( z)  x( j  N1 ) F ( z) z N1 .
В этом выражении произведение
X j 1 ( z ) F ( z )
N1  N2  2 свертки на предыдущем шаге скольжения
(7.9)
есть полином степени
Y j 1 ( z ) . Его умножение
на z приводит к переупорядочению его коэффициентов. Произведение
x( j ) F ( z )
N
есть полином степени N 2  1 , а произведение x( j  N1 ) F ( z ) z 1 есть
полином степени N1  N2  2 вида
x( j  N1 ) F ( z ) z
N1

N2 1
 x( j  N )F (i) z
i 0
1
i  N1
.
Поэтому, перейдя от полинома (7.9) к его коэффициентам, получим
519
y j (0)  x( j ) F (0),


y j (i )  y j 1 (i  1)  x( j ) F (i )  x( j  N1 ) F (i  N1 ), 

i  1, 2, ... N1  N 2  2.

(7.10)
При использовании алгоритма (7.10) нужно иметь в виду, что при всех
значениях индексов i и i  N1 , выходящих за пределы интервала [0, N2  1] ,
значения ядра свертки равны нулю. С учетом этого алгоритм (7.10) можно
представить в боле удобном для практического использования виде, который
в свою очередь зависит от соотношения между величинами N1 и
N2 .
Например, при N1  N 2 получим
 x( j ) F (0),
 y (i  1)  x( j ) F (i ),
 j 1
y j (i )  
 y j 1 (i  1),
 y (i  1)  x( j  N ) F (i  N ),
1
1
 j 1
i  0,
i  1, 2, ..., N 2  1,
i  N 2 , N 2  1, N1  1,
(7.11)
i  N1 , N1  1, ..., N1  N 2  2.
В случае N1  N 2 диапазона N2 , N2  1, ..., N1  1 для индекса i нет и выражение
(7.11) будет состоять только из трех формул: первой, второй и четвертой.
Если в алгоритме (7.11) значения свертки на предыдущем шаге
скольжения и значения произведений x( j  N1 ) F (i  N1 ) , полученные на более
ранних шагах обработки, сохранить, то его реализация приведет к
выполнению M c  N 2 умножений и Ac  2( N2  1) сложений при объеме
хранимых данных, равном Qc  N 2 ( N1  1)  1 . В последней формуле учтено,
что для нормального
последующих
шагах
функционирования алгоритма на текущем и
скольжения, нужно хранить
произведения
x( j  N1 ) F (i  N1 ) , полученные на всех шагах, начиная с ( j  1) -го и заканчивая
( j  N1 ) -м. В табл. 7.2 приведены значения
показателей сложности этого
алгоритма для конкретных значений N1 и N 2 .
Пример 7.4. Записать рекурсивный алгоритм (7.11) для вычисления
свертки 3 3 .
Решение. В соответствии с общим алгоритмом (7.11) для данных
значений N1 и N 2 получим:
y j (0)  x( j ) F (0),
y j (1)  y j 1 (0)  x( j ) F (1),
520
y j (2)  y j 1 (1)  x( j ) F (2),
y j (3)  y j 1 (2)  x( j  3) F (0),
y j (4)  y j 1 (3)  x( j  3) F (1).
.
.
. .
.
F(0)
x(j)
.
.
.
.
.
.
. .
.
. .
F(1)
yj(0)
yj-1(0)
F(2)
yj(1)
yj-1(1)
yj(2)
yj-1(2)
x(j-3)F(0)
yj(3)
yj-1(3)
x(j-3)F(1)
yj(4)
Рис. 7.5. Сигнальный граф скользящего рекурсивного
алгоритма линейной свертки 3x3
Сигнальный граф алгоритма приведен на рис. 7.5. Для его реализации
необходимо выполнить умножения x( j ) на значения F (0), F (1) и F (2) , а
также хранить величины x( j ) , y j 1 (0) , y j 1 (1) , y j 1 (2) , y j 1 (3) , x( j  3) F (0),
x( j  3) F (1),
x( j  2) F (0),
x( j  2) F (1),
x( j  1) F (0), x( j  1) F (1) .
Характеристики
алгоритма даны в табл. 7.2.
_______________ . _______________
Алгоритм (7.11) по организации процесса вычисления на интервалах
изменения индекса i
от 1 до N 2  1 и от N1 до N1  N2  2 является
рекурсивным.
В основе построения алгоритмов вычисления скользящих сверток
второго подхода используются существующие статические быстрые
алгоритмы сверток, приспособленные к особенностям режима скольжения
выборок. Проиллюстрируем возможности этого подхода на примере
521
скользящих алгоритмов коротких круговых сверток в классе
полиномиальных вычетов, базирующихся на быстрых алгоритмах Винограда.
Для скользящих выборок {x( j  i)} в соответствии
с этим алгоритмом
(см. §2.6 и §6.2) полином свертки
N 1
Y j ( z )   y j (i ) z i
i 0
на текущем шаге скольжения по КТО для полиномов выражается через его
вычеты
Yj ( k ) ( z )  Yj ( z )
(mod M k ( z))
и обратные полиномы Tk ( z ) следующим образом:
Y j ( z )   Tk ( z )[( z N  1) / M k ( z )]Y j( k ) ( z )
(mod ( z N 1)).
(7.12)
k
При этом вычеты полинома свертки определяются через вычеты полиномов
сигнала
N 1
X
(k )
j
( z )  X j ( z )   x( j  i ) z i
i 0
и функции ядра
(mod M k ( z ))
(7.13)
N 1
F ( k ) ( z )  F ( z )   F (i) z i
и равны
i 0
(mod M k ( z ))
(7.14)
Yj( k ) ( z)  X (j k ) ( z) F ( k ) ( z) (mod M k ( z)).
(7.15)
Обратные полиномы Tk ( z ) находятся по правилу, сформулированному в §2.6.
Таким образом, процедура вычисления скользящей свертки так же, как
и процедура вычисления статической свертки, будет содержать три этапа:
вычисление вычетов полиномов входного сигнала и функции ядра по
формулам (7.13), (7.14), вычисление вычетов полинома свертки по формуле
(7.15) и восстановление полинома текущей свертки по его вычетам по
формуле (7.12). В такой форме записи скользящей вариант алгоритма
Винограда будет нерекурсивным алгоритмом и при малых N может быть
реализован с числом умножений M c  2 N  d , где d – число делителей N.
Объем хранимых данных в этом алгоритме определяется только числом
отсчетов входного и выходного сигналов и функции ядра свертки и равен
Qc  3N . В табл. 7.3 приведены значения реализационных характеристик
алгоритма для малых сверток различной длины.
522
Число сложений в приведенном алгоритме можно сократить, если
учесть, что при скольжении выборки полином F(z) не меняется и его вычеты,
вычисленные один раз, могут быть сохранены для последующих шагов
скольжения. В этом случае на первом этапе алгоритма потребуется
вычислять только вычеты полинома сигнала
x( j  i) ,
что почти в 2 раза
сократит его трудоемкость. В табл. 7.3 даны
реализационные
характеристики этой модификации скользящего алгоритма Винограда.
Таблица 7.3
Нерекурсивный
алгоритм
N
2
3
4
5
6
7
9
M
2
4
5
10
8
16
19
A
6
17
23
39
78
82
56
Q
6
9
12
15
18
21
27
Модифицированный
нерекурсивный
алгоритм
M
A
Q
2
4
6
4
14
9
5
17
12
10
31
15
8
62
18
16
70
21
19
74
27
Рекурсивный
алгоритм
M
2
3
4
5
6
7
9
A
5
12
10
23
53
71
64
Q
9
13
20
21
35
29
45
Пример 7.5. Записать скользящий модифицированный алгоритм
вычисления трех точечной круговой свертки.
Решение. Делителями числа 3 являются числа 1 и 3. Поэтому
z 3  1  M 1 ( z ) M 3 ( z )  ( z  1)( z 2  z  1) . Обратные полиномы
(см. пример 6.8) равны:
T1 ( z )  1/ 3, T3 ( z)  ( z  2) / 3 . Полиномы сигнала x ( j  i ) и функции F (i ) имеют
вид:
X ( z )  x( j )  x( j  1) z  x( j  2) z 2 ; F ( z )  F (0)  F (1) z  F (2) z 2 .
Этап 1. Определение полиномиальных вычетов:
X (1)
j ( z )  x( j )  x( j  1)  x( j  2)  a1 ( j );
X (3)
j ( z )  [ x( j )  x( j  2)]  [ x( j 1)  x( j  2)]z  a3 ( j )  a2 ( j ) z;
F (1) ( z )  F (0)  F (1)  F (2)  b1 ;
F (3) ( z )  [ F (0)  F (2)]  [ F (1)  F (2)] z  b3  b2 z.
Этап 2. Определение вычетов полинома свертки:
(1)
Yj(1) ( z)  X (1)
j ( z ) F ( z )  a1 ( j )b1  c1 ( j ),
(3)
Yj(3) ( z)  X (3)
( z)  [a3 ( j)b3  a2 ( j )b2 ]  [a3 ( j )b2  a2 ( j )b3  a2 ( j )b2 ]z 
j ( z) F
 [c3 ( j )  c2 ( j )]  [c3 ( j )  c4 ( j )]z  d1 ( j )  d 2 ( j ) z,
523
где
c2 ( j )  a2 ( j )b2 , c3 ( j )  a3 ( j )b3 ; c4 ( j )  [a3 ( j )  a2 ( j )](b3  b2 ),
d1 ( j )  c3 ( j )  c2 ( j ), d2 ( j )  c3 ( j )  c4 ( j ).
Этап 3. Восстановление полинома свертки и определение её значений:
Yj ( z)  Yj(1) ( z)T1 ( z) M 3 ( z)  Yj(3) ( z)T3 ( z)M1 ( z) (mod ( z 3 1)) 
1
1
 [c1 ( j )  2d1 ( j )  d 2 ( j )]  [c1 ( j )  d1 ( j )  2d 2 ( j )]z 
3
3
1
 [c1 ( j )  d 2 ( j )  d 2 ( j )]z 2
(mod( z 3  1)),
3
откуда следует, что
1
1
y j (0)  [c1 ( j )  2d1 ( j )  d 2 ( j )], y j (1)  [c1 ( j )  d1 ( j )  2d 2 ( j )],
3
3
1
y j (2)  [c1 ( j )  d1 ( j )  d 2 ( j )].
3
В этом алгоритме нужно хранить дополнительно величины b1 , b2 и b3 ,
что можно сделать на месте отсчетов F (0), F (1) и F (2) , которые в расчетах
больше не используются. Характеристики алгоритма приведены в табл. 7.3, а
его сигнальный граф представлен на рис. 7.6.
.
. . .
. . . .
.
. .
. . . .
.
. .
.
.
. . .
b1
x(j)
a1(j)
c1(j)
yj(0)
b3
a3(j)
d1(j)
x(j-2)
yj(1)
b2
x(j-1)
a2(j)
b3-b2
d2(j)
yj(2)
Рис. 7.6. Сигнальный граф скользящего нерекурсивного
алгоритма круговой свертки в классе
полиноминальных вычетов для N=3
_______________ . _______________
Вычислительную сложность рассмотренных алгоритмов можно
уменьшить, если использовать при вычислении вычетов полинома текущего
сигнала x( j  i ) аналитическое выражение (7.4) его связи с полиномом
524
сигнала на предыдущем шаге скольжения. В соответствии с этим
выражением
X (j k ) ( z)  [ zX j 1 ( z)  x( j )  x( j  N ) z N ] (mod M k ( z)) 
 z k X (j k1) ( z)  x( j )  x( j  N )  z N k .
Здесь в виде   k обозначен вычет по модулю M k ( z ) . Вычет полинома
первой степени z по модулю M1 ( z )  z  1 равен 1, по модулю M 2 ( z )  z  1
равен -1, а по модулям других циклотомических полиномов M k ( z ) с k  2
он равен z. Чтобы найти вычет полинома z N учтем, что
z N 1   M k ( z)
k|N
и поэтому
z N  1   M k ( z) .
k|N
Тогда
 z N  k  1   M k ( z )  k  1    M k ( z )  k .
k|N
k|N
Но в произведении циклотомических полиномов обязательно содержится
сомножитель M k ( z ) , вычет которого по модулю M k ( z )
равен нулю.
Поэтому вычет всего полинома z N будет равен 1. С учетом этого можно
записать:
 X (1)
при k  1,
j 1 ( z )  x ( j )  x ( j  N )


X (j k ) ( z )   X (2)
при k  2,
j 1 ( z )  x ( j )  x ( j  N )
 (k )
при k  2.
 zX j 1 ( z )  x( j )  x( j  N )
Используя эти зависимости в выражении (7.15) вычетов полинома свертки,
последнее можно представить в следующем виде:
(k )
Y j(1)
( z)
1 ( z )  [ x ( j )  x ( j  N )]F


(k )
X (j k ) ( z )  Y j(2)
( z)
1 ( z )  [ x ( j )  x ( j  N )]F
 (k )
(k )
 zY j 1 ( z )  [ x( j )  x( j  N )]F ( z )
при k  1,
при k  2,
(7.16)
при k  2.
Выражения (7.16) совместно с уравнением (7.12) восстановления
полинома свертки по КТО для полиномов определяют рекурсивный алгоритм
скользящего вычисления круговой свертки в классе полиномиальных
вычетов. Процедуру синтеза алгоритма в этом случае можно разбить на два
525
(k )
этапа. На первом по запомненным предыдущим значениям вычетов Yj 1 ( z ) и
F ( k ) ( z ) и полученному текущему отсчету сигнала x( j ) формируются новые
(k )
значения вычетов Yj 1 ( z ) . На втором же этапе выполняется восстановление
полинома свертки по его вычетам так же, как это делалось в нерекурсивных
алгоритмах на этапе 3. При малых значениях N выполнение этапа 1 в
рекурсивном алгоритме требует небольших затрат умножений и сложений,
число которых зависит от степени циклотомических полиномов. На этапе 2 в
этом случае практически выполняются только операции сложения.
Алгоритм (7.12), (7.16) требует хранения Qc  N (d  2)  d  3 данных в
виде коэффициентов полиномиальных вычетов и отсчетов сигналов x( j  i ) и
y j (i ) . При этом коэффициенты вычетов F ( k ) ( z ) можно хранить в ячейках
памяти, выделенных под отсчеты функции ядра свертки. Реализационные
характеристики рекурсивного алгоритма (7.12), (7.16) для малых N указаны в
табл. 7.3.
Пример 7.6. Записать скользящий рекурсивный алгоритм вычисления
круговой свертки в классе полиномиальных вычетов для N=3.
Решение. Используя результаты предыдущего примера, получим:
Этап 1. Вычисление вычетов полинома свертки:
Yj(1) ( z)  Yj(1)
1 ( z )  [ x( j )  x( j  3)]b1  c1 ( j 1)  [ x( j )  x( j  3)]b1  c1 ( j )
Yj(3) ( z)  zYj(3)
1 ( z )  [ x( j )  x( j  3)](b3  b2 z )  [d1 ( j  1)  d 2 ( j  1) z ]z 
[ x( j )  x( j  3)](b3  b2 z )  d1 ( j )  d 2 ( j ) z,
где
d1 ( j )  d 2 ( j  1)  [ x( j )  x( j  3)]b3, d2 ( j )  d1 ( j  1)  d 2 ( j  1)  [ x( j )  x( j  3)]b2.
Этап 2. Восстановление полинома свертки и определение её значений:
совпадает с этапом 3 примера 7.5.
Алгоритм реализуется за 3 умножения и 12 сложений при хранении 13
величин. Его сигнальный граф приведен на рис. 7.7.
526
.
.
. . . .
. . . . . . .
.
.
. . .
.
.
c1(j-1)
b1
c1(j)
yj(0)
b3
x(j)
d1(j)
x(j-3)
yj(1)
b2
d2(j)
yj(2)
d2(j-1)
d1(j-1)
Рис. 7.7. Сигнальный граф скользящего рекурсивного
алгоритма круговой свертки в классе
полиноминальных вычетов для N=3
_______________ . _______________
Скользящие алгоритмы можно записать и для вычисления длинных
сверток, применяя при этом различные способы представления длинных
сверток в виде совокупности коротких, в том числе и гнездовые. Рассмотрим
в качестве примера один из таких алгоритмов, использовав в основе его
построения статический гнездовой алгоритм Агарвала-Кули, описанный в
§6.2.
В соответствии с ним в каждый текущий момент времени j одномерные
сигналы x( j  i ) и y j (i ) и функция F (i) для N  N1 N2 ( N1 и N 2 ‒ взаимно
простые числа)
k  N 2k1  N1k2 ,
с помощью КТО для индексов i
i1 , k1  0, 1, ..., N1 1; i2 , k2  0, 1, ..., N2 1)
и k ( i  N 2i1  N1i2 ,
представляются в виде
двумерных таблиц, из каждой строки которых образуются построчные
полиномы
X ( z) 
k1
j
N 2 1
 x[ j  ( N k
2 1
k2  0
527
 N1k2 )]z k2 ,
Y ( z) 
i1
j
N 2 1
 y (N i  N i )z
i2  0
Fi1 ( z ) 
j
21
N 2 1
 F (N i  N i )z
21
i2  0
i2
1 2
1 2
i2
,
.
Эти полиномы взаимосвязаны между собой следующим уравнением:
Y ( z) 
i1
j
N1 1
X
k1  0
k1
j
( z ) Fi1  k1 ( z )
(mod( z N2  1)).
(7.17)
Для вычисления всех значений свертки по (7.17) необходимо N1 раз
выполнить свертку полиномов, арифметические операции в которой
заменяются на операции над полиномами. При этом одно умножение
полиномов эквивалентно выполнению
N 2 -точечной
круговой свертки.
Поэтому прямая реализация алгоритма (7.17) не дает никакой экономии
вычислительных операций. Однако, если учесть, что
x[ j  ( N 2 k1  N1k2 )]  x[( j  N 2 k1 )  (0  N1k2 )]
X j ( z)  X j  N2k1 ( z),
и
то уравнение (7.17) может быть переписано в следующем виде:
k1
0
N1 1
Y ( z )  X ( z ) Fi1 ( z )   X oj  N 2k1 ( z ) Fi1 k1 ( z )
i1
j
o
j
(mod( z N2  1)).
k1 1
(7.18)
В этом выражении присутствуют произведения полиномов, входящие в
сумму по индексу k1 , которые уже вычислялись на
предыдущих шагах
скольжения. Если их сохранить, то на текущем шаге достаточно вычислить
N1 произведений полиномов
X oj ( z) Fi1 ( z), каждое из которых есть
N2 -
точечная свертка сигнала x( j  N1k2 ) с функцией F ( N 2i1  N1i2 ) , которую в свою
очередь можно вычислить с использованием любого алгоритма короткой
свертки.
Оценим сложность скользящего гнездового алгоритма. Обозначим как
и в §6.2 через M ( N2 ), A( N2 ), Q( N2 ) число операций умножения и сложения и
хранимых данных в используемом алгоритме вычисления N 2 - точечной
свертки. Тогда
количество вычислительных операций в алгоритме (7.18)
будет равно M ( N )  N1M ( N 2 ) и A( N )  N1 A( N2 )  N ( N1  1) , а объём данных,
подлежащих хранению ‒ Q( N )  N1Q( N 2 )  N1 N 22 ( N1  1) . Видно, что сложность
528
этого алгоритма во многом зависит от сложности используемого базового
малоточечного алгоритма и от комбинации сомножителей N1 и N 2 в числе N.
Из двух возможных здесь вариантов следует выбирать тот, который
приводит к меньшим значениям показателей сложности.
Если число отсчетов, образующих полином
X 0j ( z ) , в свою очередь
раскладывается на взаимопростые множители, то алгоритм (7.18) можно
применить и для вычисления произведений полиномов
X 0j ( z) Fi1 ( z ) , вводя
тем самым новые уровни
прореживания и получая при этом
дополнительную экономию вычислительных операций. Фактически это
соответствует случаю представления N в виде произведения с числом
сомножителей, большем двух.
В самом общем случае, если N раскладывается на d взаимопростых
множителей, т.е. N  N1 N2 ... Nd , алгоритм (7.18) можно использовать для
вычисления свертки итеративно (d  1) раз, причем на m -ой итерации его
можно представить следующим выражением:
Y ( z )  X ( z ) Fim ( z ) 
im
j
o
j
N m 1
X
km  0
o
j  N ( m ) km
( z ) Fim km ( z )
(mod( z N ( m )  1)),
im  0, 1, ..., N m  1,
где
(7.19)
km1 
x
(
j

N
...
N

k
)
z
,

1
m
m 1

km1  0

d
N (m)   N i , i  m, m  1, 2, ..., d  1. 

i 1
X ( z) 
N m1 ... N d 1
0
j
Для выполнения первой итерации алгоритма
(7.20)
(7.19) потребуется
затратить M ( N )  M ( N1 N2 ... Nd )  N1M ( N 2 ... N d ) , A( N )  A( N1N2 ... Nd )  N1 A( N2 ... Nd ) 
 N1... N d  ( N1  1) вычислительных операций и хранить
Q( N )  Q( N1 N 2 ... N d ) 
 N1Q( N 2 ... N d )  N1 N 22 ... N d 2  ( N1  1) данных. Для вычисления второй итерации –
соответственно: M ( N2 ... Nd )  N2 M ( N3 ... N d ) ,
A( N2 ... N d )  N 2 A( N3 ... N d ) 
 N 2 N3 ... N d  ( N 2  1) , Q( N2 ... N d )  N 2Q( N3 ... N d ) + N 2 N32 ... N d 2  ( N 2  1) . Для выполнения
последней (d  1) -й итерации ‒ M ( Nd 1  Nd )  Nd 1M ( Nd ), A( N d 1 N d )  N d 1 A( N d ) 
 Nd 1 Nd  ( Nd 1  1),
Q( N d 1  N d )  N d 1Q( N d )  N d 1 N d 2 ( N d 1  1) .
529
Решив
эти
рекуррентные уравнения, получим следующие итоговые общие оценки
показателей сложности гнездового скользящего алгоритма:
M c ( N )  NM ( N d ) / N d ,
(7.21)
Ac ( N )  NA( Nd ) / Nd  N ( N1  N 2  ...  Nd 1  d  1),
(7.22)
Qc ( N )  NQ( Nd ) / Nd  N ( N  N d ).
(7.23)
Они зависят от показателей сложности базового малоточечного алгоритма и
величины числа отсчетов
N d на последней итерации. Выбирая в качестве
базового соответствующий нерекурсивный или рекурсивный алгоритм
вычисления короткой свертки,
можно
получить
различные
по
эффективности нерекурсивные и рекурсивные модификации скользящего
гнездового алгоритма вычисления длинных сверток.
Таблица 7.4
Базовые
алгоритмы
Нерекурсивный
прямой
Рекурсивный
прямой
Характеристики скользящего гнездового алгоритма
M(N)
A(N)
Q(N)
N
N ( N1  N2  ...  Nd  d )
N
N ( N  1) 
N
N ( N1  N 2  ...  N d 1  d  2) 
Nd
N
N (N  3  Nd ) 
Nd
N
Nd
Таблица 7.5
N
N1 N 2 ...N d
Характеристики скользящего гнездового алгоритма
Базовый нерекурсивный
прямой алгоритм
6
30
60
210
315
23
3 2
5 6
2  3 5
5 3 2
5 12
3 4  5
5 43
6  35
2  3 5  7
7  5  3 2
9  35
5 7 9
975
M
6
6
30
30
30
60
60
60
210
210
210
315
315
315
A
18
18
270
240
240
900
600
600
8190
2730
2730
13230
5670
5670
530
Q
44
45
935
936
945
3665
3672
3680
44316
44340
44415
99549
99575
99603
Базовый рекурсивный
прямой алгоритм
M
6
6
30
30
30
60
60
60
210
210
210
315
315
315
A
14
21
155
126
225
305
372
500
1266
1710
2742
2844
3500
4788
Q
38
45
815
846
945
3065
3492
3620
37386
43290
44415
89154
97370
98658
В табл. 7.4 приведены аналитические зависимости показателей
сложности скользящего варианта алгоритма Агарвала-Кули на основе
скользящих прямых малоточечных алгоритмов, а в табл. 7.5 даны их
численные значения для различных значений N и различных способов его
разложения на множители.
Результаты табл. 7.5 показывают, что, обладая одинаковым числом
умножений, гнездовые скользящие алгоритмы на основе прямых скользящих
алгоритмов различаются по числу сложений и объему хранимых данных. В
нерекурсивной модификации алгоритма число сложений с увеличением
глубины прореживания уменьшается, а в рекурсивной, наоборот, ‒
возрастает. Наименьшее число сложений в нерекурсивной модификации
имеет место при максимально возможной для данного значения N глубины
прореживания, причем оно не зависит от порядка следования сомножителей
N1 , N 2 , ..., N d . Наименьшее число сложений в рекурсивной модификации
скользящего алгоритма Агарвала-Кули получается при использовании
минимального числа уровней прореживания. По суммарному числу операций
сложения и хранимых
данных этот алгоритм уступает прямому
рекурсивному скользящему алгоритму вычисления длинных сверток (см.
табл. 7.1).
При использовании в гнездовых алгоритмах в качестве базовых
скользящих алгоритмов в классе полиномиальных вычетов следует учесть
тот факт, что при вычислении N d произведений полиномов
X 0j ( z) Fid ( z)
необходимо выполнять умножения одного и того же полинома X 0j ( z) на
разные полиномы
Fid ( z ) .
Применяя для этого нерекурсивные скользящие
(k )
алгоритмы Винограда, можно полиномиальные вычеты X j ( z) полинома
X 0j ( z ) вычислить один раз и использовать их для всех N d произведений,
дополнительно уменьшив тем самым число выполняемых сложений. В табл.
7.6 приведены аналитические выражения для оценки показателей сложности
гнездовых алгоритмов на основе нерекурсвных и рекурсивных алгоритмов в
классе полиномиальных вычетов для отдельных значений N d , а в табл. 7.7
даны их численные значения для различных N.
531
Таблица 7.6
Nd
2
Характеристики гнездового скользящего алгоритма
Базовый нерекурсивный алгоритм
M (N )
A( N )
Q( N )
N ( N1  ...  N d 1  d  N ( N  1)
N
1
)
N d 1
N ( N1  ...  N d 1  d 
N2
11
4

)
8 3 N d 1
N ( N1  ...  N d 1  d 
N ( N  1)
2 
3
4
N
3
4
5
N
4
5
2N

13
3

)
4 2 N d 1
N ( N1  ...  N d 1  d 
Базовый рекурсивный алгоритм
M (N )
A( N )
Q( N )
5
N
N ( N1  ...  N d 1  d 
N (N  )
2
7
 )
2
7
N
N ( N1  ...  N d 1  d 
N (N  )
3
13
 )
3
N
N ( N1  ...  N d 1  d  N ( N  1)

28
8

)
5 5 N d 1
N ( N1  ...  N d 1  d 
N ( N  2)
N

6
4
N
3
7
16
N
7
9
19
N
9
26
8

)
3 3 N d 1
N ( N1  ...  N d 1  d 
N ( N  3)
N
N ( N  4)
N
4
N (N  )
5
1
N (N  )
6
59
)
6
N ( N1  ...  N d 1  d 
N (N 
78
)
7
N ( N1  ...  N d 1  d 
20
)
7
N (N 
36
)
9



28
)
5
N ( N1  ...  N d 1  d 


65
12

)
7 7 N d 1
N ( N1  ...  N d 1  d 
13
)
4
N ( N1  ...  N d 1  d 


N ( N  6)
N
61
22

)
9 9 N d 1

73
)
9
Таблица 7.7
N
6
30
60
210
315
N1 N 2 ...N d
23
3 2
5 6
2  3 5
5 3 2
12  5
3 4  5
5 43
35  6
2  3 5  7
7  5  3 2
5 7 9
975
Характеристики скользящего гнездового алгоритма
Базовый нерекурсивный
алгоритм
M
A
Q
8
12
36
6
20
42
40
366
810
60
240
840
30
220
930
120
944
3480
120
600
3480
30
455
3600
280
7127
43470
480
3492
43260
210
2800
44310
665
5080
97335
730
5940
98595
532
Базовый рекурсивный
алгоритм
M
A
Q
6
26
50
6
27
51
30
385
895
30
228
876
30
185
975
60
936
3552
60
576
3552
60
620
3810
210
8995
44065
210
3600
43500
210
3045
44625
315
5390
97945
315
5859
98973
Результаты расчетов, приведенные в табл. 7.7, показывают, что в
большинстве случаев гнездовые алгоритмы Агарвала-Кули с базовыми
алгоритмами Винограда уступают по сложности гнездовым алгоритмам на
основе прямых алгоритмов. Однако для отдельных значений N существуют
такие комбинации его сомножителей, при которых показатели сложности
данных алгоритмов становится соизмеримыми (например, N  30 и N  210 ).
Поэтому выбор рабочего алгоритма в каждом конкретном случае будет
зависеть от заданной величины числа отсчетов обрабатываемых сигналов.
7.3. Алгоритмы быстрых преобразований Фурье для скользящего
анализа частотного спектра
В рамках второго подхода рассмотрим синтез скользящих БПФ на
основе статических БПФ Кули-Тьюки и Гуда-Томаса.
1. Скользящие БПФ на основе алгоритмов Кули-Тьюки с составными
основаниями. Статические БПФ Кули-Тьюки с составными основаниями и с
прореживанием по времени в соответствии с выражениями (6.25)÷(6.27) для
скользящей выборки x( j  i ) представляются следующим образом:
X j ( N 2 k1  k2 )  X (k1 , k2 ) 
N1 1
 [q (i , k )W
i1  0
j
1
 i1k2
N
2
]WN1i1k1 , k1  0, 1, ..., N1  1,
(7.24)
где величины
q j (i1 , k2 ) 
N 2 1
 x[ j  (i  N i )]W
1
i2  0
1 2
 i2 k2
N2
,
k2  0, 1, ..., N 2  1 (7.25)
означают спектр отсчетов сигнала, расположенных по строкам таблицы
сигнала
к
j -му
моменту времени.
x[ j  (i1  N1i2 )]  x[( j  i1 )  (0  N1i2 )] ,
Нетрудно заметить,
что
и, следовательно, i1 -я строка таблицы
входного сигнала на j -м шаге скольжения совпадает с нулевой строкой
таблицы этого же сигнала на предыдущем ( j  i1 ) -м шаге скольжения.
Поэтому спектры ненулевых строк на текущем шаге будут равны спектрам
нулевых строк на предыдущих ( j  i1 ) -х шагах скольжения, т.е.
q j (i1 , k2 )  q j i1 (0, k2 ),
i1  0, 1, ..., N1  1.
(7.26)
Учитывая зависимость (7.26), выражение (7.24) можно записать уже в
следующей форме:
533
X j ( N 2 k1  k2 )  X j (k1 , k2 )  q j (0, k2 ) 
где учтено, что
N1 1
 h (i k )W
i1 1
j
1 2
 i1k1
N1
,
(7.27)
WN0k2  1 , а величины
N 2 1
q j (0, k2 ) 
 x( j  N i )W
1 2
i2 1
 i2 k2
N2
,
(7.28)
h j (i1 , k 2 )  q j i (0, k2 )WNi k .
1 2
(7.29)
Зависимости (7.27)-(7.29) определяют алгоритм БПФ для скользящего
анализа частотного спектра с прореживанием по времени. Из них следует,
1
что, если значения спектров по строкам q j i1 (0, k2 ), получаемые на
предыдущих шагах скольжения, хранить в памяти, то для определения
полного спектра X j (k ) на текущем шаге потребуется вычислять только
спектр q j (0, k2 ) одной нулевой строки таблицы анализируемого текущего
сигнала. Это приведет к новой экономии вычислительных операций.
Действительно, для реализации скользящего алгоритма (7.27)-(7.29) в общем
случае нужно выполнить N 22 комплексных умножений и N2 ( N2  1) сложений
при прямом вычислении q j (0, k2 )
комплексных
по формуле (7.28), а также
умножений на поворачивающие множители
WN i1k2
N1 N 2
по
формуле (7.29) и по ( N1  1) N1 N2 комплексных умножений и сложений для
вычисления полного спектра по формуле (7.27). Общее число комплексных
операций в скользящем БПФ этого типа составит M C  N 22  N1 N12 умножений
и Ac  N2 ( N2  1)  N2 N1 ( N1  1) сложений. Из сравнения оценок M c и Ac с
оценками M Б и AБ для БПФ статического типа следует, что скользящие БПФ
являются более эффективными в вычислительном плане, их эффективность
зависит от комбинации значений N1 и N 2 и растет с увеличением N .
Например, при N =30 и
N1 =3, а N 2 =10 число комплексных умножений в
статическом и скользящем БПФ соответственно равны M Б =420, M C =190.
Выигрыш по числу умножений M  M Б  M C составляет 230 операций. При
N =900 и N1 =9, а N 2 =100 число умножений M Б =99000, а M C =18100 и
выигрыш равен M  80900 операций. Но при том же N =900, но N1 =30 и N 2
=30 число умножений уже равно M Б =54900, а M C =27900 и выигрыш
534
уменьшается до M  27000 операций. Анализ показывает, что, выбирая
N1  N 2 , можно достичь максимальной эффективности скользящего БПФ
этого типа.
Количество операций в скользящем БПФ (7.27)÷(7.29) можно еще
сократить за счет исключения из него тривиальных умножений на единичные
константы. В этом случае будет получен оптимизированный скользящий
алгоритм Кули-Тьюки с прореживанием по времени.
При реализации скользящего варианта БПФ Кули-Тьюки необходимо
хранить значения спектров
q j i1 (0, k2 ) , полученные на предыдущих шагах
скольжения. Объем дополнительных данных, подлежащих запоминанию,
будет равен N2 ( N1  1). Структурная схема такого БПФ приведена на рис. 7.8.
W
ДПФ
(N2)
ДПФ
N-1 {Xj(k)}
0
...
(N1)
{hj(i1,k2)}
{qj-i1(0,k2)}
ДПФ
0 {x(j-N1i2)} N2-1
N
(N1)
x(j)
-i1k2
{Хj(k1,k2)}
Рис. 7.8. Структурная схема скользящего БПФ Кули-Тьюки
с составным основанием и прореживанием по времени
Если в алгоритме (7.27)÷(7.29) величина N 2 в свою очередь может
быть представлена в виде произведения сомножителей, то описанную
процедуру скользящего анализа можно применить и для вычисления спектра
нулевой строки q j (0, k2 ) . Это приведет к новому уровню прореживания в
алгоритме БПФ и в конечном счете даст еще большую экономию
535
вычислительных операций. При этом, естественно, возрастет и объем
хранимых промежуточных данных.
Пример 7.7. Записать скользящий алгоритм Кули-Тьюки для N =15.
Решение.
В
этом
случае
(см.
пример
i  i1  3i2 , k  5k1  k2 , i1 , k1  0, 1, 2; i2 , k2  0, 1, 2, 3, 4 .
6.11)
N1 =3,
N 2 =5
и
Алгоритм содержит один
уровень прореживания. Двумерные массивы x j (i1 , i2 ) и X j (k1 , k2 ) приведены в
табл. 7.8 и 7.9.
Таблица 7.8
i2
i1
0
1
2
0
1
2
3
4
x( j )
x( j  1)
x ( j  2)
x( j  3)
x ( j  4)
x( j  5)
x ( j  6)
x ( j  7)
x( j  8)
x ( j  9)
x( j  10)
x( j  11)
x( j  12)
x( j  13)
x( j  14)
Таблица 7.9
i2
i1
0
1
2
3
4
0
X j (0)
X j (1)
X j (2)
X j (3)
X j (4)
1
X j (5)
X j (6)
X j (7)
X j (8)
X j (9)
2
X j (10)
X j (11)
X j (12)
X j (13)
X j (14)
По алгоритму (7.27)-(7.29) в этом случае получаем:
4
q j (0, k2 )   x( j  3i2 )W5i2k2 , k2  0, 1, 2, 3, 4,
i2  0
hj (i1 , k2 )  q j i1 (0, k2 )W15i1k2 , i1  1, 2,
2
X j (k1 , k2 )  X j (5k1  k2 )  q j (0, k2 )   h j (i1 , k2 )W3i1k1 .
i1 1
Общее число комплексных операций в алгоритме составляет: M C =65 и
AC  50.
Исключение из него тривиальных умножений на константы
Wj0  W50  W150  1 приводит к модификации алгоритма с 44 умножениями. По
сравнению с базовым статическим оптимизированным алгоритмом КулиТьюки (см. пример 6.11) достигается экономия 32 умножения и 40 сложений
536
комплексных чисел. В скользящем алгоритме необходимо на каждом шаге
скольжения хранить дополнительные величины
q j 1 (0, k2 )
и q j 2 (0, k2 )
(k2  0, 1, 2, 3, 4) , число которых равно 10.
_______________ . _______________
Статический алгоритм Кули-Тьюки с прореживанием по частоте для
скользящей выборки может быть записан следующим образом (см. §6.3):
X j (k1  N 2 k2 )  X j (k1 , k2 ) 
где
N 2 1
q
h (k1 , k2 ) 
i1
j
i2  0
i1
j
N1 1
h
i1  0
i1
j
(k1 , k2 )WN1i1k1 ,
(k1 , i2 )WN2i2k2 ,
qij1 (k1 , i2 )  x[ j  ( N2i1  i2 )]WNi2k1
k1  0, 1, ..., N1  1;
hij1 (k1 , k2 ) здесь
Величины
,
k2  0, 1, ..., N 2  1.
являются вспомогательными величинами и не
имеют физического смысла спектра промежуточных выборок. Поскольку
x[ j  ( N 2i1  i2 )]  x[ j  ( N 2i1 )  (0  i2 )] , то qij1 (k1 , i2 )  q0j  N2i1 (k1 , i2 )
и
h (k1 , k2 ) 
i1
j
N 2 1
q
i2  0
0
j  N 2i1
(k1 , i2 )WN2i2 k2  h 0j  N 2i1 (k1 , k 2 ).
Поэтому
N1 1
X j (k1  N 2 k2 )  X j (k1 , k2 )  h (k1 , k 2 )   h 0j  N2i1 (k1 , k 2 )WN1i1k1 , (7.30)
0
j
i1 1
где


i2  0


 i2 k1
0
q j (k1 , i2 )  x( j  i2 )WN ,


k1  0, 1, ..., N1  1; k2  0, 1, ..., N 2  1.

h (k1 , k2 ) 
0
j
Если величины
N 2 1
 qi0 (k1 , i2 )WN2i2k2 ,
h0j  N2i1 (k1 , k2 )
(7.31)
при i  1, 2, ..., N  1 сохранить с предыдущих
шагов скольжения, а величины h0j (k1 , k2 ) вычислить по формулам (7.31), то с
537
помощью выражения (7.30) можно получить все значения текущего спектра
сигнала.
Скользящий алгоритм Кули-Тьюки с прореживанием по частоте (7.30),
(7.31) имеет следующие реализационные характеристики: M C  N ( N1  N 2 ) ,
AC  N ( N1  N2  2) , QC  N ( N1  1) и по сложности значительно уступает своему
аналогу с прореживанием по времени (7.27)÷(7.29).
2. Скользящие БПФ на основе алгоритмов Кули-Тьюки с малыми
основаниями. Начнем с прореживания по времени. Статический алгоритм
Кули-Тьюки по основанию p этого типа для скользящей выборки в
соответствии с результатами, полученными в §6.3,
прореживания будет иметь следующий вид:
X
( 1 , 2 ,...,  m1 )
j
( km  p
nm
где
X (j 1 ,2 ,...,m ) (km ) 
p nm 1

im  0
qm ) 
p 1
 [X
m 0
( 1 , 2 ,...,  m )
j
на m-м уровне
 m qm
m km
(km )Wp
,
nm1 ]W
x[ j  ( p mim  p m1 m  ...  p 2  1 )]Wpnimmkm ,
 m , qm  0, 1, ..., p  1; km  0, 1, ..., p n m  1, m  n  1, n  2, ..., 1.
Но x[ j  ( p mim  p m1 m  ...  p 2  1 )]  x[( j  p m1 m  ...  p 2  1 )  (0  p mim )],
поэтому
X (j 1 ,2 ,...,m ) (km )  X (0,0,...,0)
j  p m1 ... p
m
2 1
(km ) ,
т.е. спектры промежуточных выборок с ненулевыми значениями индексов
1 ,  2 , ...,  m на текущем шаге скольжения совпадают со спектрами выборки
с нулевыми значениями этих же индексов на соответствующих предыдущих
шагах скольжения. Если их сохранить, то для получения всего текущего
спектра достаточно будет вычисления только спектров текущих
промежуточных выборок с нулевыми значениями индексов 1 ,  2 , ...,  m .
Это позволяет записать скользящий алгоритм в следующем виде:
538
 m km
 m qm 
(km )   [ X (0,0,...,0)
(
k
)
W
]
W
,
m1
n

m

1
m
p
j  p m
p
 m 1

p nm 1

 im km
(0,0,...,0)
m
Xj
(km )   x( j  p im )W pnm ,

im  0


qm  0, 1, ..., p  1; km  0, 1, ..., p n  m  1.


X
(0,0,...,0)
j
(km  p
nm
qm )  X
p 1
(0,0,...,0)
j
(7.32)
Здесь в обозначениях спектров промежуточных выборок в левой части
первого уравнения из системы (7.32) используется m-1 нулевых индексов, а в
правой его части и в левой части второго уравнения – m нулевых индексов.
Так как в многомерных индексах присутствуют только нулевые значения их
элементов, то применение этих индексов в обозначениях спектров в этом
случае становится неинформативным. Поэтому целесообразно их заменить
на одномерные. Это можно сделать, если принять
X (0,0,...,0)
(km )  X (j m) (km ).
j
Тогда форму записи скользящего алгоритма можно упростить

(km )   [ X (j m p) m1 (km )W pnmmk1m ]W pm qm , 
m
 m 1


qm  0, 1, ..., p  1; km  0, 1, ..., p n  m  1; m  1, 2,..., ,

n

p 1
 i k
( )


X j (k )   x( j  p i )W p n ,

i  0

X
( m 1)
j
(km  p
nm
qm )  X
p 1
(m)
j
(7.33)
где μ – выбранное число уровней прореживания (глубина прореживания).
При   n  1 уравнения (7.33) будут описывать полный скользящий алгоритм
Кули-Тьюки по основанию p с прореживанием по времени.
Как следует из уравнений (7.33) в скользящем алгоритме с  уровнями
nm
p -точечных ДПФ
прореживания на каждом m -м уровне выполняется p
над
спектрами
текущей
и
предыдущих
промежуточных
выборок,
n 
умноженных на фазовые множители, а на  -м уровне еще и одно p -
точечное ДПФ для вычисления спектра текущей промежуточной выборки.
Для реализации последнего ДПФ может быть использован любой известный
алгоритм БПФ статического типа. В полном скользящем алгоритме на
539
последнем предельном уровне прореживания выполняется тоже только p точечное ДПФ.
Оценку сложности скользящего алгоритма (7.33) целесообразно
проводить для конкретных значений p , поскольку она напрямую зависит от
сложности
выполнения
p -точечных
ДПФ.
Определим
значения
реализационных характеристик этого алгоритма для практически важных p ,
равных 2 и 4.
При p =2 в алгоритме (7.33) используются 2-точечные ДПФ, которые
выполняются без умножений. Поэтому в этом случае его удобно записать,
выразив первое уравнение (7.33) в виде двух более простых уравнений:


 km
( m 1)
nm
(m)
(m)
X j (km  2 )  X j (km )  W2nm1 X j  2m1 (km ), 

nm

qm  0, 1, ..., 2  1; m 1, 2, ..., ,

2n 1

i k
X (j  ) (k )   x( j  2 i )W2n  .

i  0

X (j m 1) (km )  X (j m ) (km )  W2nkmm1 X (j m 2)m1 (km ),
(7.34)
При реализации этого алгоритма необходимо на первом уровне
n1
прореживания вычислить спектр X (1)
 1) умножений
j (k1 ) и затратить (2
(учтено, что одно умножение тривиальное на единичный множитель W20 ) и
n
2n
сложений на выполнение соотношений (7.34). Для организации
вычисления спектра X (1)
j (k1 ) вводится
второй уровень прореживания, что
приведет к затратам (2n2  1) умножений и 2n1 сложений на реализацию
уравнения (7.34) и организации третьего уровня прореживания для
n3
вычисления спектра X (2)
 1)
j (k2 ) . На третьем уровне затратятся еще (2
умножений и 2n2 сложений и будет осуществлен переход к четвертому
уровню
для
вычисления
спектра
X (3)
j (k3 ) .
Аналогичная
процедура
n
продолжится далее и на последнем  -м уровне будет выполнено (2  1)
n1
умножений и 2
сложений и организовано вычисление промежуточного
спектра
X (j ) (k ) . Последнее может быть осуществлено с помощью
540
статического БПФ Кули-Тьюки по основанию 2. В этом случае с учетом
оценок (6.45), общие затраты вычислительных операций в скользящем БПФ
Кули-Тьюки с  уровнями прореживания будут равны

M c ()   (2n  m  1)  2n 1 (n    1)  2n 1 (21  3  n  )  ,
m 1
(7.36)

Ac ()   2n  m 1  2n  (n  )  2n  (21  2  n  ).
m 1
(7.37)
В предельном случае при   n  1 полный скользящий алгоритм Кули-Тьюки
будет иметь следующие показатели сложности:
M c (n  1)  2n  n  1  N  1  log 2 N ,
Ac (n  1)  2(2 n  1)  2( N  1) .
(7.38)
(7.39)
Если учесть, что вычисление скользящего спектра с помощью статического
БПФ Кули-Тьюки с прореживанием по времени и основанием два
потребовало бы выполнения Nn / 2 умножений и Nn сложений (см. оценки
(6.45)), то эффективность скользящего БПФ по числу операций более чем в
n / 2 раз выше эффективности своего статического аналога. Дальнейшее
улучшение скользящего алгоритма в вычислительном плане возможно за
счет исключения из вычислительного процесса операций умножения на
мнимые единицы.
В скользящих алгоритмах Кули-Тьюки (7.34), (7.35) используются
промежуточные спектры, полученные на предыдущих шагах скольжения.
Для реализации алгоритма они должны быть сохранены в памяти. Кроме
того, в алгоритме вычисляются промежуточные спектры текущего шага,
которые используются как для вычисления полного текущего спектра, так и
потребуются для вычисления полного спектра на последующих шагах
скольжения. Их также следует сохранить. Полный объем хранимых
дополнительных данных в этом алгоритме зависит от используемой в нем
глубины прореживания. Оценим его для глубины, равной μ.
На первом уровне прореживания используется только промежуточный
спектр
(1)
X (1)
j 1 (k1 ) и вычисляется текущий промежуточный спектр X j (k1 ) .
Общий объем этих данных равен 2 n . Но если отсчеты текущего спектра
хранить вместо использованных отсчетов предыдущего спектра, то его
можно уменьшить вдвое и довести до значения 2n1 . На втором уровне
541
(2)
используются спектральные составляющие X j 2 (k2 ) , число которых равно
2n2 , но на следующем шаге скольжения потребуются уже составляющие
n 2
X (2)
. Поэтому общее число предыдущих
j 1 (k2 ) , число которых также равно 2
промежуточных спектров на втором уровне будет равно 2  2n2  2n1 . Кроме
того, на этом же уровне вычисляется текущий промежуточный спектр
n 2
X (2)
. Его можно хранить на месте
j (k2 ) с числом составляющих равном 2
уже использованного промежуточного спектра X (2)
j  2 (k2 ) . Тогда общий объем
хранимых данных на втором уровне составит 2n1 . Продолжая процедуру
подсчета дополнительных данных, подлежащих хранению, приходим к
выводу, что на каждом уровне прореживания их число постоянно и равно
2n1 . Поэтому суммарный объем этих данных в алгоритме с  уровнями
прореживания будет равен
Qc ()   2n 1 ,
(7.40)
а в полном алгоритме ‒
Qc (n  1)  (n  1)2n 1  N (n  1) / 2.
(7.41)
Зависимость (7.40) может оказаться полезной при выборе допустимого
числа уровней прореживания в скользящих алгоритмах Кули-Тьюки для
систем обработки с ограничениями по памяти.
Для графического представления скользящих алгоритмов БПФ могут
быть использованы блок-графы и сигнальные ориентированные графы.
Сигнальные графы скользящих алгоритмов по сравнению с графами
статических алгоритмов будут содержать меньшее число узлов и иметь не
прямоугольный, а трапециидальный вид представления.
Пример 7.8. Для N=8 записать скользящий алгоритм Кули-Тьюки по
основанию 2 с одним и двумя уровнями прореживания по времени.
Решение. Для  =1 в соответствии с уравнениями (7.34), (7.35) имеем:
 k1
(1)
X j (k1 )  X (0)
X (1)
j (k1 )  X j (k1 )  W8
j 1 (k1 ),
(7.42)
 k1
(1)
X j (k1  4)  X (0)
X (1)
j (k1  4)  X j (k1 )  W8
j 1 (k1 ),
(7.43)
3
X (k1 )   x( j  2i1 )W4i1k1 , k1  0, 1, 2, 3.
(1)
j
i1  0
542
(7.44)
ДПФ (7.44) можно вычислить по 4-точечному статическому БПФ КулиТьюки. Блок-граф скользящего алгоритма приведен на рис. 7.9. Его
реализация требует хранения спектральных коэффициентов X (1)
X (1)
j 1 (1) ,
j 1 (0) ,
(1)
X (1)
j 1 (2) , X j 1 (3) , полученных на предыдущем шаге скольжения. Текущие же
промежуточные спектральные коэффициенты
(1)
(1)
X (1)
X (1)
j (0) ,
j (1) , X j (2) , X j (3)
можно запомнить на месте уже использованных предыдущих.
x(j)
x(j-2)
x(j-4)
x(j-6)
.
.
.
.
.
.
.
.
.
.
.
.
X(1)
j (0)
X(1)
j (1)
4-точечное
ДПФ
X(1)
j (2)
X(1)
j (3)
(1)
Xj-1
(0)
X(1)
j-1(1)
X(1)
j-1(2)
X(1)
j-1(3)
W8-1
W8-2
W8-3
.
.
.
.
.
.
.
.
Xj(0)
Xj(1)
Xj(2)
Xj(3)
Xj(4)
Xj(5)
Xj(6)
Xj(7)
Рис. 7.9. Блок-граф скользящего БПФ Кули-Тьюки
по основанию 2 с прореживанием по времени
и N=8, а =1

Для  =2 будет получен полный скользящий алгоритм, состоящий из
двух уровней прореживания:
1) на первом уровне ( m =1) алгоритм выражается соотношениями
(7.42), (7.43) с k1  0, 1, 2, 3;
2) на втором уровне ( m =2) он имеет следующий вид записи:
 k2
(2)
X (1)
X (2)
j (k2 )  X j (k2 )  W4
j 2 (k2 ),
 k2
(2)
X (1)
X (2)
j (k2  2)  X j (k2 )  W4
j 2 (k2 ),
k2
X (2)
j (k2 )  x( j )  (1) x( j  4), k2  0; 1.
543
Выполнение представленного алгоритма осуществляется в обратной
последовательности. Его сигнальный граф изображен на рис. 7.10.
Граф имеет по сравнению с графом статического БПФ рис. 6.4
усеченный вид и содержит 4 узла, в которых выполняются умножения на
константы, и 14 узлов с операциями сложения. Следовательно, для
выполнения такого алгоритма необходим затратить 4 умножения и 14
сложений. Кроме того, в алгоритме необходимо хранить 8 дополнительных
данных в виде промежуточных спектров
X (1)
j 1 (k1 ) ,
X (2)
j  2 (k2 )
и
X (2)
j 1 (k2 ) .
Промежуточные спектры X (2)
j 1 (k2 ) не используются на текущем шаге, но
потребуются на следующем ( j  1) -м шаге скольжения.
Полученные по графу и алгоритму значения его показателей сложности
совпадают с оценками (7.38), (7.39) и (7.41) при N=8.
x(j)
x(j-4)
.
.
(2)
Xj-2
(0)
(2)
Xj-2
(1)
.
.
.
.
W4-1
(1)
Xj-1
(0)
X(1)
j-1(1)
X(1)
j-1(2)
X(1)
j-1(3)
.
.
.
.
.
.
.
.
W8-1
W8-2
W8-3
.
.
.
.
.
.
.
.
Xj(0)
Xj(1)
Xj(2)
Xj(3)
Xj(4)
Xj(5)
Xj(6)
Xj(7)
Рис. 7.10. Cигнальный граф полного скользящего
БПФ Кули-Тьюки по основанию 2
с прореживанием по времени для N=8
_______________ . _______________
При р=4 в алгоритме (7.34), (7.35) будут использоваться 4-х точечные
ДПФ, которые, как показано в §6.3, тоже могут быть выполнены без
умножений. Учитывая это, скользящий БПФ Кули-Тьюки по основанию 4
можно записать в виде следующих соотношений:
544


m
 m 1

3

m
 m km
( m 1)
nm
(m)
(m)
X j (km  4 )  X j (km )   ( ) X j  4m1  (km )W4nm1 , 
m
 m 1

3

m
 m km 
( m 1)
nm
(m)
(m)
X j (km  2  4 )  X j (km )   (1) X j  4m1  ( km )W4nm1 , 
m
 m 1

3
 (7.45)
m
 m km
( m 1)
nm
(m)
(m)
X j (km  3  4 )  X j (km )    X j  4m1  (km )W4nm1 , 
m

 m 1

nm

km  0, 1, ..., 4  1; m  1, 2, ..., ,


X
( m 1)
j
(km )  X
3
( m)
j
m km
(km )   X (j m 4)m1  (km )W4
n m1 ,
где
X (j ) (k ) 
4n 1

i  0
i k
x( j  4 i )W4n  ,
(7.46)
а  означает мнимую единицу, т.е   1 .
Если в уравнениях (7.45) не учитывать умножения на мнимые и
действительные единицы, то общее число умножений в скользящем
алгоритме по основанию 4 будет зависеть только от числа умножений на
n
фазовые множители и числа умножений, затрачиваемых на вычисление 4
-точечного ДПФ (7.46). Для последнего можно использовать любое
статическое БПФ Кули-Тьюки, в том числе и по основанию 4.
Число фазовых умножений на m-м уровне прореживания равно
3(4n m  1) (умножения на константу
W40nm1  1
не учитываем). За  уровней
число таких умножений достигнет величины

 3(4
nm
 1)  4n  4n   3.
m 1
Сложений в алгоритме (7.45) 12  4nm . За  уровней прореживания число их
станет равным

12  4
nm
 4(4n  4n  ).
m 1
545
Количество сложений можно существенно сократить, если использовать
прием, описанный в §6.3 применительно к статическим БПФ Кули-Тьюки по
основанию 4. Для этого обозначим
m km
Y j(m4)m1  (km )  X (j m 4)m1  (km )W4
nm1 ,
m
m
 2  0, 1, 2, 3
(7.47)
и запишем уравнения (7.45) в следующем виде:
X (j m 1) (km )  [Y j( m ) (km )  Y j(m2)4m1 (km )]  [Y j(m4)m1 (km )  Y jm34m1 (km )],
X (j m 1) (km  4n  m )  [Y j( m ) (km )  Y j(m2)4m1 (km )]  [Y j(m4)m1 (km )  Y j(m3)4m1 (km )],
X (j m 1) (km  2  4n  m )  [Y j( m ) (km )  Y j(m2)4m1 (km )]  [Y j(m4)m1 (km )  Y j(m3)4m1 (km )],
X (j m 1) (km  3  4n  m )  [Y j( m ) (km )  Y j(m2)4m1 ( km )]  [Y j(m4)m1 ( km )  Y j(m3)4m1 ( km )].
Для вычисления этих уравнений требуется уже 8  4nm сложений и их общее
число за  уровней прореживания станет в 1,5 раза меньшим: 8(4n  4n ) / 3 .
На последнем
уровне скользящего алгоритма необходимо
 -м
выполнить еще 4n -точечное ДПФ. Если для этого использовать статическое
БПФ
Кули-Тьюки
по
основанию
4
с
затратами
4n (n    1)  2( 4n  4) / 3  n    1 умножений и 2  4n (n  ) сложений
(см. §6.3), то суммарные затраты вычислительных комплексных операций в
скользящем БПФ Кули-Тьюки по основанию 4 будут равны
M c ()  4n  4n  (  n  8 / 3)  n  4  5 / 3,
(7.48)
Ac ()  8  4n / 3  4n  [8 / 3  2( n  )].
(7.49)
При предельном числе уровней прореживания эти затраты составят
M c (n  1)  4n  1  3n  N  1  3log 4 N ,
(7.50)
Ac (n  1)  8(4n  1) / 3  8( N  1) / 3.
(7.51)
Объем промежуточных данных на m-м уровне прореживания в
алгоритме (7.45) определяется числом спектральных составляющих
X (j m)
m4
m1
(km ).
Оно
равно
3  4m 1  4n  m  3  4n 1 .
Поэтому
общий
объем
промежуточных данных в алгоритме с  уровнями прореживания будет
равен
Q()  34n1  3N / 4,
(7.52)
а в полном алгоритме скользящего БПФ Кули-Тьюки по основанию 4 –
Q(n  1)  3(n  1)4 n 1  3 N (log 4 N  1) / 4.
546
(7.53)
Сравнение реализационных характеристик полных скользящих
алгоритмов Кули-Тьюки по основаниям 2 и 4 приводит к выводу, что
алгоритмы с основанием 4 превосходят алгоритмы с основанием 2 по числу
умножений и хранимых промежуточных данных, однако уступают им по
числу сложений.
Рассмотрим теперь прореживания по частоте. В соответствии с
зависимостями (6.54), (6.55) статический БПФ-алгоритм Кули-Тьюки по
основанию р на первом уровне прореживания по частоте для скользящей
выборки будет иметь следующий вид:
X j ( pk1  q1 ) 
где
x
Но
( q1 )
j
p n1 1
x
i1 0
( q1 )
j
(i1 )Wpni11k1 ,
k2  0,1,..., p n1  1,
 p 1



(i1 )    x[ j  (i1  1 p n 1 )W p1q1 W pni1q1 ,
1 0



q1  0, 1, ..., p  1.
x[ j  (i1  1 p n 1 )]  x[( j  i1 )  (0  1 p n 1 )]
и
p 1
 x[( j  i )  (0   p
поэтому
1
1  0
n 1
1
)]Wp1q1  x (0)
j i1 (0),
x (jq1 ) (i1 )  x (jq1i1) (0)W pni1q1 .
(7.54)
С учетом последнего выражения скользящий алгоритм можно записать
уже следующим образом:
X j ( pk1  q1 )  x (jq1 ) (0) 
где
p n1 1
 [x
i1 1
( q1 )
j i1
(0)Wpni1q1 ]Wpni11k1 ,
p 1
x
( q1 )
j
(0)   x( j  1 p n 1 )Wp1q1 ,
1  0
(7.55)
k1  0, 1, ..., pn1 1; q1  0, 1, ..., p 1.
Если использовать сохраненные значения
x(jq1i1) (0)
(i1  1, 2, ..., pn1 1),
полученные на предыдущих шагах скольжения, то реализация алгоритма
547
(7.54), (7.55) потребует вычисления только значений
x(jq1 ) (0) по формуле
(7.55). При этом по сравнению со статическим БПФ с прореживанием по
частоте будет получена в общем случае экономия по ( p  1)( N  p) операций
сложения и умножения (при p  2 ‒ только N-2
сложений),
а объем
хранимых дополнительных данных составит N-p.
Сохраняя на последующих уровнях прореживания ту же процедуру
вычислений, что используется в статическом алгоритме БПФ с
прореживанием по частоте, можно получить полный скользящий БПФ КулиТьюки с прореживанием по частоте. Отличительной его особенностью по
сравнению с полным скользящим БПФ Кули-Тьюки с прореживанием по
времени будет являться то, что дополнительная экономия в нем достигается
только на первом уровне прореживания. По этой причине по числу
вычислительных операций он существенно уступает варианту с
прореживанием по времени, где дополнительная экономия вычислений
получается на каждом уровне прореживания.
3. Скользящие БПФ на основе алгоритмов Гуда-Томаса. В статических
БПФ Гуда-Томаса используется разложение числа отсчетов N на
произведение взаимнопростых множителей и многомерное представление
одномерных индексов i и k по КТО для индексов. При этом возможна
запись нескольких вариантов БПФ-алгоритмов идентичной сложности (см.
§6.2). На основе этих вариантов статических алгоритмов можно получить
соответствующие варианты скользящих БПФ Гуда-Томаса, которые, однако,
будут обладать уже различными реализационными характеристиками.
Запишем все варианты скользящих БПФ Гуда-Томаса и оценим их сложность
для случая представления N в виде произведения двух взаимно простых
чисел N1 и N 2 : N  N1 N2 .
Для получения первого варианта скользящих БПФ Гуда-Томаса
представим одномерный индекс
i в двумерном виде по КТО без
перестановки, а индекс k – по КТО с перестановкой (см. §6.2). Тогда для
анализа спектра скользящей выборки можно использовать статический БПФалгоритм Гуда-Томаса (6.62), который в этом случае примет следующий вид
записи:
548
N1 1
 q (i , k )W
 i1k1
N1
,
(7.56)
 x[ j  ( N T i  N T i )]W
 i2 k2
N2
,
(7.57)
X j ( N 2 k1  N1k2 )  X j (k1 , k2 ) 
i1  0
j
1
2
где
q j (i1 , k2 ) 
N 2 1
2 11
i2  0
1 2 2
k1  0, 1, ..., N1  1; k2  0, 1, ..., N 2  1.
Однако
Поэтому
x[ j  ( N2T1i1  N1T2i2 )]  x[( j  N 2T1i1 )  (0  N1T2i2 )].
q j (i1 , k2 )  q j  N2T1i1 (0, k2 )
и из статического алгоритма (7.56), (7.57) будет получен следующий
скользящий БПФ-алгоритм Гуда-Томаса:
N1 1
X j ( N 2 k1  N1k2 )  X j (k1 , k2 )  q j (01 k2 ) 
где
q j (0, k2 ) 
q
ii 1
N 2 1
j  N 2T1i1
 x( j  N T i )W
1 2 2
i2  0
 i2 k2
N2
(0, k2 )WN1i1k1 , (7.58)
.
(7.59)
Индексы k1 и k2 здесь пробегают те же значения, что и в алгоритме (7.56),
(7.57).
Реализация приведенного скользящего алгоритма
Гуда-Томаса
предполагает использование в вычислениях текущего спектра X j (k ) только
значений спектров нулевых строк таблиц сигнала на текущем и предыдущих
шагах скольжения, причем спектры
q j  N 2T1i1 (0, k2 )
на предыдущих шагах
должны быть сохранены в памяти системы обработки. В этом случае
скользящий алгоритм (7.58), (7.59) будет характеризоваться следующими
показателями сложности:


A1  N 2 ( N 2  1)  N1 N 2 ( N1  1), 

Q1  N 22T1 ( N1  1).

M 1  ( N 2  1) 2  N 2 ( N1  1) 2 ,
(7.60)
В приведенных оценках исключены умножения на тривиальные множители
WN01  WN02  1 .
549
Если в базовом статическом алгоритме (6.62) поменять местами суммы
по индексам i1 и i2 , то на его основе можно получить второй вариант
скользящего БПФ Гуда-Томаса:
N 2 1
X j ( N 2 k1  N1k2 )  X j (k1 , k 2 )  q j (0, k1 ) 
где
q
i2 1
j  N1T2i2
N1 1
q j (0, k1 ) 
(0, k1 )WN2i2 k2 , (7.61)
 x( j  N T i )W
 i1k1
N1
2 11
i1  0
.
(7.62)
Ему соответствуют показатели сложности:


A2  N1 ( N1  1)  N1 N 2 ( N 2  1), 

Q2  N12T2 ( N 2  1).

M 2  ( N1  1) 2  N1 ( N 2  1) 2 ,
(7.63)
Можно в статическом БПФ-алгоритме Гуда-Томаса поменять местами
способы двумерного представления индексов i и k , т.е. представить индекс
i по КТО с перестановкой
i  N2i1  N1i2
(mod N ),
а индекс k ‒ по КТО без перестановки
k  N2T1k1  N1T2 k2
(mod N ),
где обратные элементы T1 и T2 удовлетворяют условию (6.61). В этом случае
на основе статического БА Гуда-Томаса могут быть получены еще два
варианта скользящих БА:
N1 1
X j ( N 2T1k1  N1T2 k2 )  X j (k1 , k2 )  q j (0, k2 ) 
q
i1 1
j  N 2i1
(0, k2 )WN1i1k1 , (7.64)
где
N 2 1
q j (0, k2 ) 
и
 x( j  N i )W
1 2
i2  0
 i2 k2
N2
,
(7.65)
N 2 1
X j ( N 2T1k1  N1T2 k2 )  X j (k1 , k2 )  q j (0, k1 ) 
где
q
i2 1
j  N1i2
(0, k1 )WN2i2 k2 , (7.66)
N1 1
 i1k1
q j (0, k1 ) =  x( j  N 2i1 )WN1
i1  0
с характеристиками
550
,
(7.67)


A3  A1 ,


2
Q3  N 2 ( N1  1) 
(7.68)


A4  A2 ,


2
Q4  N1 ( N 2  1).
(7.69)
M 3  M1 ,
M4  M2,
и
Анализ оценок (7.60), (7.63), (7.68) и (7.69) показывает, что варианты 3
и 4 скользящего БПФ Гуда-Томаса обладают такими же затратами по
вычислительным операциям, что и варианты 1 и 2, но превосходят их по
затратам памяти, т.к. объем хранимых промежуточных данных в этих
вариантах меньше соответственно в T1 и T2 раз. Выбор же конкретного
варианта из вариантов 3 и 4 зависит уже от конкретных значений чисел N1 и
N 2 . Если при разложении N на множители придерживаться правила, что N 2
всегда больше N1 , то вариант 3 скользящего
алгоритма Гуда-Томаса по
сравнению с его четвертым вариантом будет приводить к меньшим затратам
операций умножения и сложения, но требовать при своей реализации
большего объема памяти для хранения дополнительных промежуточных
данных. Блок-схема третьего варианта скользящего алгоритма Гуда-Томаса
приведена на рис. 7.11.
ДПФ
x(j)
0 {x(j-N1i2)} N2-1
N-1 {Xj(k)}
0
...
ДПФ
ДПФ
{qj-Ni21(0,k2)}
{Хj(k1,k2)}
Рис. 7.11. Блок-схема скользящего БПФ Гуда-Томаса
551
Пример 7.9. Записать скользящий алгоритм Гуда-Томаса (вариант 3)
для N=15.
Решение. Так как 15  3 5 , то примем N1  3 , а
N 2  5 . Тогда в
соответствии с результатами примера 6.16 и алгоритмом (7.64), (7.65)
4
q j (01 k2 ) =  x( j  3i2 )W5
получим
 i2 k2
,
i2  0
k2  0, 1, 3, 4,
а
X j (k1 , k2 )  X j (10k1  6k2 )  q j (0, k2 )  q j 5 (0, k2 )W3k1  q j 10 (0, k2 )W32k1 ,
где
k1  0, 1, 2.
В
оптимизированном
варианте
этот
алгоритм имеет
M c  M 3  36 и Ac  A3  50 . По сравнению с оптимизированным вариантом
статического БПФ Гуда-Томаса примера 6.16 достигается экономия 32
комплексных умножений и 40 комплексных сложений. Для реализации этого
алгоритма
q j  2 (0, k2 ),
необходимо
хранить
промежуточные
величины
q j 1 (0, k2 ),
…, q j 10 (0, k2 ), число которых равно Qc  Q3  50 . При этом для
вычисления непосредственно текущего спектра X j (10k1  6k2 ) используются
только
q j 5 (0, k2 )
и
q j 10 (0, k2 ) .
Остальные величины необходимы для
вычисления спектра на следующих шагах скольжения.
_______________ . _______________
Если величины N1 и N 2 в свою очередь также раскладываются на
взаимно-простые сомножители, то процедура скользящих алгоритмов (7.64),
(7.65) и (7.66), (7.67) может быть использована и при выполнении ДПФ
(7.65) и (7.67). Это приведет к новому уровню прореживания в алгоритме
Гуда-Томаса и, как следствие, к сокращению количества вычислительных
операций. Однако число сохраняемых данных при этом возрастет.
Завершая этот параграф, необходимо отметить, что все рассмотренные
в нем БА скользящего анализа частотного спектра по своей структуре
являются рекуррентными, но нерекурсивными алгоритмами. Их важной
особенностью является то, что на каждом текущем шаге скольжения с их
помощью вычисляются не только спектральные составляющие текущей
выборки,
но и промежуточные данные, которые потребуются на
последующих шагах скольжения. Это свойство скользящих БА анализа
552
частотного спектра сохраняется и в скользящих БПФ для других базисных
систем.
7.4. Быстрые преобразования для анализа скользящего спектра Уолша
БПУ по своей структуре являются Кули-Тьюки – подобными БА.
Поэтому при синтезе скользящих БПУ можно использовать подход,
разработанный в предыдущем параграфе применительно к скользящим БПФ
Кули-Тьюки с основанием 2. Рассмотрим скользящие БПУ для систем Пэли,
Хармута и Адамара.
Для системы Пэли возможны два типа БА (см. §6.4), использующие
раздельно способы прореживания выборок по времени и частоте (спектру).
Для прореживания по времени алгоритм статического БПУ-Пэли на m-м
уровне прореживания описывается соотношениями (6.92)÷(6.94). Применяя
его для скользящей выборки и учитывая связь промежуточных выборок на
текущем и предыдущих шагах скольжения, отмеченную при выводе
скользящих БПФ Кули-Тьюки (7.34), (7.35), получим запись скользящего
БПУ-Пэли на m-м уровне прореживания в виде (7.70) и (7.71).
В этом алгоритме используется
тот же одномерный способ
обозначения промежуточных выборок, который был введен в алгоритмах
скользящих БПФ Кули-Тьюки (7.34), (7.35).


( m 1)
nm
(m)
(m)
X j (km  2 )  X j (km )  X j  2m1 (km ), 

km  0, 1, ..., 2n  m  1, m  1, 2, ..., ,

X (j m 1) (km )  X (j m ) (km )  X (j m 2)m1 (k m ),
X (j ) (k ) 
2n 1

i  0
x( j  2m i ) pal (k , i 2 n ).
(7.70)
(7.71)
Изменяя индекс m от 1 до μ, с помощью алгоритма (7.70), (7.71) можно
описать весь процесс скользящего анализа спектра Уолша-Пэли, получив
алгоритм скользящего БПУ-Пэли μ-й глубины прореживания. При   n  1
алгоритм (7.70), (7.71) будет являться алгоритмом полного скользящего БПУ-
553
Пэли,
( n 1)
( n 1)
причем начальные спектры X j (0) и X j (1) будут иметь
следующий вид:
X (j n1) (0)  x( j )  x( j  2n1 ), 


X (j n1) (1)  x( j )  x( j  2n1 ). 

(7.72)
По форме записи и, следовательно, по структуре скользящие БПУПэли (7.70), (7.71) близки к скользящим БПФ Кули-Тьюки (7.34), (7.35) и
отличаются от последних только отсутствием умножений на фазовые
множители, которые в БПУ-Пэли равны 1. Поэтому для своей реализации
эти алгоритмы требуют
затрат одинакового числа сложений и
дополнительных данных (см. оценки (7.37), (7.39), (7.40) и (7.41)). По этой же
причине и графы полных вариантов этих алгоритмов так же имеют
одинаковый трапециидальный вид и отличаются только отсутствием на
графах БПУ-Пэли фазовых множителей.
Пример 7.9. Записать полный скользящий алгоритм БПУ-Пэли с
прореживанием по времени для N=8.
Решение. В этом случае n=3 и полный алгоритм будет иметь 2 уровня
прореживания (m=1, 2). В соответствии с общим алгоритмом (7.70) ÷(7.72)
имеем:
- начальные данные:
X (2)
X (2)
j (0)  x( j )  x( j  4);
j (1)  x( j )  x( j  4);
- второй уровень прореживания (m=2, k2  0, 1 ):
(2)
(2)
(2)
(2)
X (1)
X (1)
j (0)  X j (0)  X j 2 (0);
j (1)  X j (1)  X j 2 (1);
(2)
(2)
(2)
(2)
X (1)
X (1)
j (2)  X j (0)  X j 2 (0);
j (1)  X j (1)  X j 2 (1);
- первый уровень прореживания (m=1, k1  0, 1, 2, 3 ):
(1)
(1)
X j (0)  X (1)
X j (1)  X (1)
j (0)  X j 1 (0);
j (1)  X j 1 (1);
(1)
(1)
X j (2)  X (1)
X j (3)  X (1)
j (2)  X j 1 (2);
j (3)  X j 1 (3);
(1)
(1)
X j (4)  X (1)
X j (5)  X (1)
j (0)  X j 1 (0);
j (1)  X j 1 (1);
(1)
(1)
X j (6)  X (1)
X j (7)  X (1)
j (2)  X j 1 (2);
j (3)  X j 1 (3).
Граф этого алгоритма изображен на рис. 7.12. Для его реализации
требуется выполнить 14 сложений и хранить 8 дополнительных данных в
виде
спектров
1
(1)
(2)
2
(2)
(2)
X 1j (0), X (1)
j 1 (1), X j (2), X j (3), X j 1 (0), X j 1 (1), X j 2 (0), X j 2 (1).
554
Спектры X 2j 1 (0) и X 2j 1 (1) будут использоваться в расчетах полного спектра на
следующем ( j  1) -м шаге скольжения. Так же на следующих шагах будут
(2)
(1)
(1)
использоваться вычисленные спектры X (2)
которые
j (0), X j (1), X j (0)  X j (3),
(2)
можно сохранить на месте уже использованных величин X (2)
j 2 (0), X j 2 (1) и
(1)
X (1)
j 1 (0)  X j 1 (3) . Граф БПУ рис. 7.12 близок по структуре к графу БПФ рис.
7.10.
x(j)
x(j-4)
.
.
.
.
.
.
(2)
Xj-2
(0)
(2)
Xj-2
(1)
(1)
Xj-1
(0)
X(1)
j-1(1)
X(1)
j-1(2)
X(1)
j-1(3)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Xj(0)
Xj(1)
Xj(2)
Xj(3)
Xj(4)
Xj(5)
Xj(6)
Xj(7)
Рис. 7.12. Cигнальный граф полного скользящего БПУ-Пэли
с прореживанием по времени для N=8
_______________ . _______________
При прореживании по частоте статическое БПУ-Пэли имеет форму
записи, похожую на форму записи статического БПУ-Пэли с прореживанием
по времени (сравните соотношения (6.92) и (6.105)). Отличие состоит
только в правиле формирования промежуточных выборок и порядке
следования результирующего
спектра. Используя этот алгоритм для
скользящей выборки, заменив при этом многомерные индексы в
обозначениях промежуточных спектров на одномерные, получим
скользящий алгоритм БПУ-Пэли на m-м уровне прореживания по частоте в
виде:
555


( m 1)
(m)
(m)
X j (2km  1)  X j (km )  X j  2nm (km ), 

nm
km  0, 1, ..., 2  1, m  1, 2, ..., , 

2n 1

X (j  ) (k )   x( j  i ) pal (k , i 2 n ), 
i  0

X (j m 1) (2km )  X (j m ) (km )  X (j m 2)nm (km ),
(7.73)
При   n  1 алгоритм (7.73) станет алгоритмом полного скользящего БПУПэли с начальными данными
X (j n 1) (0)  x( j )  x( j  1), 

X (j n 1) (1)  x( j )  x( j  1). 
(7.74)
Скользящие алгоритмы БПУ-Пэли с прореживанием по частоте
требуют затрат такого же числа сложений, что и их аналоги с прореживанием
по времени. Поэтому и здесь будут справедливы оценки (7.37) и (7.39).
Однако количество дополнительных данных, подлежащих хранению, в этом
случае значительно больше и равно
Qc ()  N 2 (1  22 ) / 3,
(7.75)
Qc (n  1)  ( N 2  4) / 3.
(7.76)
Пример 7.10. Записать полный скользящий алгоритм БПУ-Пэли с
прореживанием по частоте для N=8.
Решение. Так как n=3, то в соответствии с общим алгоритм (7.73) при
начальных данных (7.74) получим:
- начальные данные:
X (2)
X (2)
j (0)  x( j )  x( j  1);
j (1)  x( j )  x( j  1);
- второй уровень прореживания (m=2, k2  0, 1 ):
(2)
(2)
(2)
(2)
X (1)
X (1)
j (0)  X j (0)  X j 2 (0);
j (2)  X j (1)  X j 2 (1);
(2)
(2)
(2)
(2)
X (1)
X (1)
j (1)  X j (0)  X j 2 (0);
j (3)  X j (1)  X j 2 (1);
- первый уровень прореживания (m=1, k1  0, 1, 2, 3 ):
(1)
(1)
X j (0)  X (1)
X j (2)  X (1)
j (0)  X j 4 (0);
j (1)  X j 4 (1);
(1)
(1)
X j (4)  X (1)
X j (6)  X (1)
j (2)  X j 4 (2);
j (3)  X j 4 (3);
(1)
(1)
X j (1)  X (1)
X j (3)  X (1)
j (0)  X j 4 (2);
j (1)  X j 4 (1);
556
(1)
(1)
X j (5)  X (1)
X j (7)  X (1)
j (2)  X j 4 (2);
j (3)  X j 4 (3).
Сигнальный граф этого алгоритма приведен на рис. 7.13. Для его
реализации необходимо затратить 14 сложений и сохранить 20
(2)
дополнительных данных в виде промежуточных спектров X (2)
j 1 (0), X j 1 (1),
(2)
(1)
(1)
X (2)
j 2 (0), X j 2 (1), X j 1 (0)  X j 1 (3),
(1)
X (1)
j 2 (0)  X j 2 (3);
(1)
X (1)
j 3 (0)  X j 3 (3);
(1)
При этом в текущих расчетах используются только 6 из
X (1)
j 4 (0)  X j 4 (3) .
них.
x(j)
x(j-1)
.
.
.
.
.
.
(2)
Xj-2
(0)
(2)
Xj-2
(1)
(1)
Xj-4
(0)
X(1)
j-4(2)
X(1)
j-4(1)
X(1)
j-4(3)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Xj(0)
Xj(4)
Xj(2)
Xj(6)
Xj(1)
Xj(5)
Xj(3)
Xj(7)
Рис. 7.13. Cигнальный граф полного скользящего БПУ-Пэли
с прореживанием по частоте для N=8
_______________ . _______________
Для упорядочения Хармута наиболее просто скользящее БПУ
записывается при прореживании по частоте (спектру). Для его получения
достаточно применить статическое БПУ-Хармута (6.106) к скользящей
выборке входного сигнала, учесть взаимосвязь промежуточных выборок на
различных шагах скольжения и заменить многомерный способ обозначения
спектров выборок на одномерный. В результате будет получена следующая
запись скользящего БПУ-Хармута на m-м уровне прореживания:


km
( m 1)
(m)
(m)
X j (2km  1)  X j (km )  (1) X j  2nm (km ), 

nm

km  0, 1, ..., 2  1, m  1, 2, ..., ,

2n 1

X (j  ) (k )   x( j  i )har (k , i 2 n ).

i  0

X (j m 1) (2km )  X (j m ) (km )  (1) km X (j m 2)nm (km ),
557
(7.77)
При   n  1
из алгоритма (7.77) можно получить алгоритм полного
скользящего БПУ-Хармута с начальными условиями в виде (7.74).
Скользящие БПУ-Хармута (7.77) по сложности идентичны скользящим БПУПэли (7.73) и для них справедливы оценки (7.37), (7.39), (7.75) и (7.76).
Пример 7.11. Записать полный скользящий алгоритм БПУ-Хармута с
прореживанием по частоте для N=8.
x(j)
x(j-1)
.
.
.
.
.
.
(2)
Xj-2
(0)
(2)
Xj-2
(1)
(1)
Xj-4
(0)
X(1)
j-4(2)
X(1)
j-4(1)
X(1)
j-4(3)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Xj(0)
Xj(4)
Xj(2)
Xj(6)
Xj(1)
Xj(5)
Xj(3)
Xj(7)
Рис. 7.14. Cигнальный граф полного скользящего БПУ-Хармута
с прореживанием по частоте для N=8
Решение. Такой алгоритм в этом случае будет иметь два уровня
прореживания с начальными данными, совпадающими с начальными
данными алгоритма БПУ-Пэли предыдущего примера. На самих же уровнях
по общему алгоритму (7.77) получаем:
- на втором уровне прореживания (m=2, k2  0, 1 ):
(2)
(2)
(2)
(2)
X (1)
X (1)
j (0)  X j (0)  X j 2 (0);
j (1)  X j (0)  X j 2 (0);
(2)
(2)
(2)
(2)
X (1)
X (1)
j (2)  X j (1)  X j 2 (1);
j (3)  X j (1)  X j 2 (1);
- на первом уровне прореживания (m=1, k1  0, 1, 2, 3 ):
(1)
(1)
X j (0)  X (1)
X j (1)  X (1)
j (0)  X j 4 (0);
j (0)  X j 4 (0);
(1)
(1)
X j (2)  X (1)
X j (3)  X (1)
j (1)  X j 4 (1);
j (1)  X j 4 (1);
(1)
(1)
X j (4)  X (1)
X j (5)  X (1)
j (2)  X j 4 (2);
j (2)  X j 4 (2);
(1)
(1)
X j (6)  X (1)
X j (7)  X (1)
j (3)  X j 4 (3);
j (3)  X j 4 (3).
558
Сигнальный граф этого алгоритма приведен на рис. 7.14. Его
реализационные характеристики совпадают с характеристиками графа БПУПэли рис. 7.13.
_______________ . _______________
Для систем Адамара возможен построение двух видов скользящих
БПУ, использующих в своей
основе статические БПУ-Адамара с
прореженным и непрореженным (естественным) порядками следования
отсчетов сигнала и спектра (см. §6.4). Используя ту же технологию вывода,
что применялась в системах Пэли и Хармута, на основе статических
алгоритмов (6.112) и (6.115) получим следующие модификации скользящих
БПУ-Адамара с μ уровнями прореживания:
- с прореженным порядком следования отсчетов сигнала и спектра:


(m)
(m)
( m)
X j (2km  1)  X j (km )  X j  2m1 (km ), 

nm

km  0, 1, ..., 2  1, m  1, 2, ..., ,
(7.78)

2n 1

X (j  ) (k )   x( j  2 i )had (k , i 2 n ), 
i  0

- с естественным порядком следования отсчетов сигнала и спектра:
X (j m ) (2km )  X (j m ) (km )  X (j m 2)m1 (km ),


X (j m ) (km  2n  m )  X (j m ) (km )  X (j m 2)nm (km ), 

nm

km  0, 1, ..., 2  1, m  1, 2, ..., ,

2n 1

X (j  ) (k )   x( j  i )had (k , i 2 n ). 
i  0

X (j m ) (km )  X (j m ) (km )  X (j m 2)nm (km ),
(7.79)
При   n  1 алгоритмы (7.78) и (7.79) переходят в алгоритмы полных
скользящих БПУ-Адамра с начальными спектрами в виде (7.72) и (7.74)
соответственно.
В скользящих БПУ-Адамра (7.78) и (7.79) затрачивается одинаковое
число вещественных сложений, равное числу сложений в скользящих БПУПэли и Хармута. Число же дополнительных данных, подлежащих хранению
на каждом текущем шаге скольжения, в них различно. Для алгоритма (7.78)
справедливы оценки (7.37) и (7.39), а для алгоритма (7.79) – оценки (7.75) и
559
(7.76). По затратам памяти скользящие БПУ-Адамара (7.79) существенно
уступают скользящим БПУ-Адамара (7.78).
Пример 7.12. Записать полный скользящий БПУ-Адамара с
прореженным порядком следования отсчетов сигнала и спектра для N=8.
x(j)
x(j-4)
.
.
.
.
.
.
(2)
Xj-2
(0)
(2)
Xj-2
(1)
(1)
Xj-1
(0)
X(1)
j-1(2)
X(1)
j-1(1)
X(1)
j-1(3)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Xj(0)
Xj(4)
Xj(2)
Xj(6)
Xj(1)
Xj(5)
Xj(3)
Xj(7)
Рис. 7.15. Cигнальный граф полного скользящего БПУ-Адамара
с прореженным порядком следования отсчетов сигнала
и спектра для N=8
Решение. Для N  8  23 этот алгоритм будет иметь два уровня
прореживания (m=1, 2), а начальные данные в нем совпадают с начальными
данными примера 7.9. Поэтому далее в соответствии с общим алгоритм
(7.78) имеем:
- на втором уровне прореживания (m=2, k2  0, 1 ):
(2)
(21)
(2)
(2)
X (1)
X (1)
j (0)  X j (0)  X j 2 (0);
j (1)  X j (0)  X j 2 (0);
(2)
(2)
(2)
(2)
X (1)
X (1)
j (2)  X j (1)  X j 2 (1);
j (3)  X j (1)  X j 2 (1);
- на первом уровне прореживания (m=1, k1  0, 1, 2, 3 ):
(1)
(1)
X j (0)  X (1)
X j (1)  X (1)
j (0)  X j 1 (0);
j (0)  X j 1 (0);
(1)
(1)
X j (2)  X (1)
X j (3)  X (1)
j (1)  X j 1 (1);
j (1)  X j 1 (1);
(1)
(1)
X j (4)  X (1)
X j (5)  X (1)
j (2)  X j 1 (2);
j (2)  X j 1 (2);
(1)
(1)
X j (6)  X (1)
X j (7)  X (1)
j (3)  X j 1 (3);
j (3)  X j 1 (3).
Сигнальный граф этого алгоритма изображен на рис. 7.15.
_______________ . _______________
560
Приведенные в этом параграфе результаты показывают, что все
скользящие БПУ обладают одинаковыми количествами выполняемых
вычислительных операций. Они просты и легко программируются. Если
порядок следования получаемого результирующего спектра не имеет
значения, то выбор окончательного варианта алгоритма будет зависеть
только от требований по объему хранимых данных.
7.5. Быстрые преобразования для анализа скользящего спектра
в базисах функции Виленкина-Крестенсона и обобщенных
функций Крестенсона
По математическому описанию статические БПВК близки к БПФ КулиТьюки с произвольными малыми основаниями. С другой стороны БПВК
являются результатом обобщения БПУ. Поэтому возможны два способа
синтеза скользящих БПВК, первый из которых использует математический
аппарат скользящих БПФ Кули-Тьюки, а второй ‒ математический аппарат
скользящих БПУ с обобщением на систему отсчета с произвольным
постоянным основанием. Воспользуемся вторым вариантом и приведем
результирующие алгоритмы скользящих БПВК для различных систем
упорядочения базисных функций: Пэли, Хармута и Адамара.
Для систем ВКФ-Пэли, как и для систем Уолша-Пэли, возможны два
вида алгоритмов скользящих БП, использующие прореживания по времени и
частоте скользящей выборки входного сигнала. Эти алгоритмы достаточно
легко получаются из статических БПВК-Пэли (6.129)÷(6.132) и (6.151)
÷(6.155), записанных для скользящей выборки, если в них учесть связь
промежуточных выборок на различных шагах скольжения и произвести
замену многомерных индексов на одномерные в обозначениях спектральных
коэффициентах, как это делалось при синтезе скользящих БПФ и БПУ. В
результате будут получены аналитические описания алгоритмов БПВК-Пэли
μ-й глубины прореживания:
- по времени
561

(km )   X (j m p) m1 (km )W pm qm , 
m
 m 1


nm
km  0, 1, ..., p  1, qm  0, 1, ..., p  1; m  1, 2, ..., , 

p n 1
( )


 n

X j (k )   x( j  p i ) Pal (k , i 2 ),

i  0

X
( m 1)
j
(km  p
nm
qm )  X
p 1
(m)
j
(7.80)
- по частоте


m
 m 1


nm
km  0, 1, ..., p  1, qm  0, 1, ..., p  1; m  1, 2, ..., , 

p n 1

X (j  ) (k )   x( j  i ) Pal  (k , i 2 n ).

i  0

X
При
( m 1)
j
( pkm  qm )  X
p 1
( m)
j
  n  1 зависимости
(km )   X (j m p) nm (km )W pm qm ,
(7.81)
(7.80) и (7.81) задают полные алгоритмы
скользящих БПВК-Пэли с прореживанием по времени и частоте
соответственно.
Скользящие БПВК-Пэли (7.80) и (7.81) обладают одинаковыми
количествами вычислительных операций, равными
M c ()  p n ( p  1)[1  p   p 1 ( p  1)(n  )],
M c (n  1)  ( p  1)( p n  1)  ( p  1)( N  1),
Ac ()  p n 1  p n  [ p(n    1)  n  ],
Ac (n  1)  p( p n  1)  p( N  1),
(7.82)
(7.83)
(7.84)
(7.85)
но различным числом дополнительных данных, подлежащих хранению:
- для прореживания по времени
Qc ()  ( p  1) p n 1 ,
Qc (n  1)  (n  1)( p  1) p n 1  ( n  1)( p  1) N / p,
(7.86)
(7.87)
- для прореживания по частоте
Qc ()  p 2 n (1  p 2 ) /( p  1)  N 2 (1  p 2 ) /( p  1),
Qc (n  1)  ( N 2  p 2 ) /( p  1).
(7.88)
(7.89)
При прореживании по частоте объем дополнительных данных
существенно больше, поэтому скользящие БПВК-Пэли с прореживанием по
562
времени являются более предпочтительны для практики обработки. Этот
вывод является обобщением
аналогичного вывода, сделанного в
предыдущем параграфе относительно скользящих БПУ-Пэли. Полученные
оценки (7.84)÷(7.89) также являются обобщением соответствующих оценок
для БПУ-Пэли. Оценки числа умножений (7.83), (7.84) для отдельных
значений
p
могут быть улучшены за счет исключения из алгоритмов
возникающих при этом тривиальных умножений.
Пример 7.13. Записать полный скользящий алгоритм БПВК-Пэли с
прореживанием по времени для N=9.
Решение. Поскольку 9  32 , то в этом случае p  3 , а
n  2 . Поэтому
скользящий алгоритм будет иметь один уровень прореживания (m  1) и в
соответствии с общими уравнениями (7.80) примет следующий вид:
 q1
2 q1
(1)
X j (k1  3q1 )  X (1)
 X (1)
, k1, q1  0, 1, 2,
j (k1 )  X j 1 (k1 )W3
j 2 (k1 )W3
а
X (1)
j (0)  x( j )  x( j  3)  x( j  6),
1
2
X (1)
j (1)  x( j )  x( j  3)W3  x( j  6)W3 ,
2
1
X (1)
j (2)  x( j )  x( j  3)W3  x( j  6)W3 ,
где использованы значения ВКФ-Пэли Pal  (k1 , i1 / 3) .
.
.
.
x(j)
x(j-3)
x(j-6)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(1)
Хj-1
(0)
(1)
Хj-1
(1)
(1)
Хj-1
(2)
(1)
Хj-2
(0)
(1)
Хj-2
(1)
(1)
Хj-2
(2)
Хj(0)
Хj(1)
Хj(2)
Хj(3)
Хj(4)
Хj(5)
Хj(6)
Хj(7)
Хj(8)
Рис. 7.16. Сигнальный граф полного скользящего БПВК-Пэли
с прореживанием по времени для N=9
563
Сигнальный граф скользящего алгоритма приведен на рис. 7.16,
причем константы для упрощения на графе не показаны, а умножения на них
изображены с помощью стрелок в ветвях графа. Реализация этого графа
требует затрат 24 сложений и 16 нетривиальных умножений, а также
хранения 6 дополнительных данных в виде промежуточных спектров
(1)
X (1)
j 1 (k1 ) и X j  2 (k1 ) , что соответствует оценкам (7.83), (7.85) и (7.87) при N=9.
_______________ . _______________
Для системы Хармута наиболее эффективные по затратам
вычислительных операций скользящие БПВК получаются только при
прореживании по частоте. Они строятся на основе статических БПВКХармута (6.157)÷(6.159) и имеют следующий вид:

(1)
(km )   X (j m p) nm  (km )W pm ( qm  km ) , 
m
 m 1


km  0, 1, ..., p n  m  1, qm  0, 1, ..., p  1; m  1, 2, ..., , 

p n 1
( )

 n

X j (k )   x( j  i ) Har (k , i p ).

i  0

X
( m 1)
j
( pkm  qm )  X
p 1
(m)
j
(7.90)
Здесь, как и ранее в §6.5, km(1) означает значения первого разряда p ичного кода числа k m . При   n  1 выражения (7.90) дают описание полного
скользящего БПВК-Хармута.
Скользящие алгоритмы БПВК-Хармута (7.90) имеют те же
реализационные характеристики, что и скользящие БПВК-Пэли (7.81) и для
них справедливы оценки (7.82)÷(7.85) и (7.88), (7.89).
Пример 7.14. Записать полный скользящий алгоритм БПВК-Хармута
для N=9.
Решение. В соответствии с общим алгоритмом (7.90) для
p3
и n2
и результатами примера 6.32 получаем:
 ( k1
(1)
X j (3k1  q1 )  X (1)
j ( k1 )  X j 3 ( k1 )W3
(1)
 q1 )
2( k1
 X (1)
j  6 ( k1 )W3
(1)
 q1 )
,
где k1 и q1 принимают значения 0, 1, 2, а спектры X (1)
j (k1 ) на текущем шаге
имеют такой же вид, как в предыдущем примере. Это объяснятся тем, что 3точечные ДПФ в ВКФ-системах Пэли и Хармута совпадают (поскольку в
этом случае совпадают сами системы Пэли и Хармута).
564
Поэтому
(1)
1
(1)
2
X j (3)  X (1)
j (1)  X j 3 (1)W3  X j 6 (1)W3 ;
(1)
(1)
X j (0)  X (1)
j (0)  X j 3 (0)  X j 6 (0);
(1)
2
(1)
1
(1)
1
(1)
2
X j (6)  X (1)
X j (1)  X (1)
j (2)  X j 3 (2)W3  X j 6 (2)W3 ;
j (0)  X j 3 (0)W3  X j 6 (0)W3 ;
(1)
2
(1)
1
X j (4)  X (1)
j (1)  X j 3 (1)W3  X j 6 (1)W3 ;
(1)
(1)
X j (7)  X (1)
j (2)  X j 3 (2)  X j 6 (2);
(1)
2
(1)
1
(1)
(1)
X j (2)  X (1)
X j (5)  X (1)
j (0)  X j 3 (0)W3  X j 6 (0)W3 ;
j (1)  X j 3 (1)  X j 6 (1);
(1)
1
(1)
2
X j (8)  X (1)
j (2)  X j 3 (2)W3  X j 6 (2)W3 .
Сигнальный граф этого алгоритма приведен на рис. 7.17. Количество
операций в нем такое же, как в графе БПВК-Пэли примера 7.13. Но объем
дополнительных данных, подлежащих хранению, в нем равен уже 18, хотя на
текущем шаге используется только 6 значений промежуточных спектров.
.
.
.
x(j)
x(j-1)
x(j-2)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(1)
Хj-3
(0)
(1)
Хj-3
(1)
(1)
Хj-3
(2)
(1)
Хj-6
(0)
(1)
Хj-6
(1)
(1)
Хj-6
(2)
Хj(0)
Хj(3)
Хj(6)
Хj(1)
Хj(4)
Хj(7)
Хj(2)
Хj(5)
Хj(8)
Рис. 7.17. Сигнальный граф полного скользящего БПВК-Хармута
с прореживанием по частоте для N=9
_______________ . _______________
Для систем Адамара, как и для систем Пэли, можно записать два типа
скользящих быстрых преобразований, используя в качестве базовых
статические БПВК-Адамара с прореженным (6.160) и естественным (6.162)
порядками следования отсчетов сигнала и спектра (см. §6.5). Эти алгоритмы
будут иметь следующий вид записи:
- с прореженным порядком
565


m
 m 1


km  0, 1, ..., p n  m  1, qm  0, 1, ..., p  1; m  1, 2, ..., , 

2n 1
( )


 n

X j (k )   x( j  p i ) Had (k , i p ),

i  0
X
( m 1)
j
( pkm  qm )  X
p 1
( m)
j
(km )   X (j m p) m1 (km )W pm qm ,
(7.91)
- с естественным порядком

(km )   X (j m p) nm  (km )W pm qm , 
m
 m 1


nm
km  0, 1, ..., p  1, qm  0, 1, ..., p  1; m  1, 2, ..., , 

2n 1
( )

 n

X j (k )   x( j  i ) Had (k , i p ).

i  0
X
( m 1)
j
(km  p
nm
qm )  X
p 1
(m)
j
(7.92)
При   n  1 данные алгоритмы становятся полными.
Скользящие алгоритмы (7.91) и (7.92) совпадают между собой по
затратам вычислительных операций, число которых можно найти по оценкам
(7.82)÷(7.85). По объему дополнительных данных они существенно
различаются, причем для алгоритма (7.91) справедливы оценки (7.86), (7.87),
а для алгоритма (7.92) – оценки (7.88), (7.89).
Пример 7.15. Записать полный скользящий алгоритм БПВК-Адамара с
прореженным порядком следования отсчетов сигнала и спектра для N=9.
Решение. Алгоритм будет иметь один уровень прореживания и на
основании общих выражений (7.91) имеет следующий вид:
 q1
2 q1
(1)
X j (3k1  q1 )  X (1)
 X (1)
,
j (k1 )  X j 1 (k1 )W3
j 2 (k1 )W3
где k1 , q1  0, 1, 2, а спектры X (1)
принимают те же значения, что и в
j (k1 )
примере 7.13 (т.к. трехточечные системы ВКФ Адамара и Пэли совпадают
между собой).
Сигнальный граф этого алгоритма представлен на рис. 7.18. Он
обладает такими же характеристиками, что и граф рис. 7.16.
566
.
.
.
x(j)
x(j-3)
x(j-6)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
(1)
Хj-1
(0)
(1)
Хj-1
(1)
(1)
Хj-1
(2)
(1)
Хj-2
(0)
(1)
Хj-2
(1)
(1)
Хj-2
(2)
Хj(0)
Хj(3)
Хj(6)
Хj(1)
Хj(4)
Хj(7)
Хj(2)
Хj(5)
Хj(8)
Рис. 7.18. Сигнальный граф полного скользящего БПВК-Адамара
с прореженным порядком следования отсчетов сигнала
и спектра для N=9
_______________ . _______________
Скользящие БП существуют и для обобщенных функций Крестенсона с
различными способами упорядочения. Поскольку математические описания
статических алгоритмов БПК – Кронекера близки к математическому
описанию статических БПФ Гуда-Томаса, то синтез скользящих БПК можно
наглядно проиллюстрировать на примере систем Кронекера, выполнив его по
той же методике, что использовалась при разработке скользящих алгоритмов
Гуда-Томаса. В результате для N  p1 p2 на основе статических БПК (6.165),
(6.166) можно получить

X j (k1  p1k2 )  q j (0, k2 )   q j i1 (0, k2 )W p1 k1i1 , 
i1 1

p2 1

 k2i2
q j (0, k2 )   x( j  p1i2 )W p2 ,

i2  0


k1  0, 1, ..., p1  1, k2  0, 1, ..., p2  1.


p1 1
(7.93)
Алгоритм (7.93) обладает следующими реализационными характеристиками
Ac  p2 ( p2  1)  p1 p2 ( p1  1),
M c  p2 ( p1  1) 2  ( p2  1) 2 ,
567
Qc  ( p1  1) p2 .
Выигрыш по вычислительным операциям по сравнению со статическими
БПК (см. оценки (6.167) и (6.168)) составит
A  AБ  Ac  ( p1  1)( p22  p2 ),
M  M Б  M c  ( p2  1)( p2  1) 2 .
Выигрыш всегда положителен и возрастает с увеличением p1 и p2 .
Пример 7.16. Записать скользящее БПК-Кронекера для N=6.
Решение. При p1 =2 и p2 =3 алгоритм (7.93) будет иметь следующий
вид:
X j (k1  2k2 )  q j (0, k2 )  q j 1 (0, k2 )W2k1  q j (0, k2 )  q j 1 (0, k2 )(1) k1 ,
где k1  0,1 , k2  0,1, 2, а промежуточные текущие величины равны
q j (0, k2 )  x( j)  x( j  2)W2k1  x( j  4)W32k2 .
Изменяя k1 и k2 , окончательно получаем:
q j (0, 0)  x( j )  x( j  2)  x( j  4),
q j (0,1)  x( j )  x( j  2)W31  x( j  4)W32 ,
q j (0, 2)  x( j )  x( j  2)W32  x( j  4)W31,
X j (0)  q j (0, 0)  q j 1 (0, 0); X j (2)  q j (0,1)  q j 1 (0,1);
X j (4)  q j (0, 2)  q j 1 (0, 2); X j (1)  q j (0, 0)  q j 1 (0, 0);
X j (3)  q j (0,1)  q j 1 (0,1); X j (5)  q j (0, 2)  q j 1 (0, 2);
x(j)
.
.
.
x(j-2)
x(j-4)
qj-1(0,0)
qj-1(0,1)
qj-1(0,2)
.
.
.
.
.
.
.
.
.
.
.
.
Хj(0)
Хj(2)
Хj(4)
Хj(1)
Хj(3)
Хj(5)
Рис. 7.19. Сигнальный граф полного скользящего
БПК-Кронекера для N=6
Сигнальный граф этого алгоритма изображен на рис. 7.19. В нем
выполняются 12 сложений и 4 умножения. По сравнению с графом
568
статического БПК примера 6.35 здесь достигается экономия 7 сложений и 4
умножений.
_______________ . _______________
Если величина p2 раскладывается на множители, то алгоритм (7.93)
рекурсивно может быть использован для реализации p2 -точечного ДПФ при
вычислении текущих промежуточных данных. В этом случае будет введен
еще один уровень прореживания и получена дополнительная экономия
вычислительных операций. Вместе с тем вырастет и объем дополнительных
данных, подлежащих хранению. Процесс прореживания заканчивается, когда
текущий сомножитель становится простым числом.
Приведенные в этом параграфе скользящие алгоритмы носят
обобщенный характер. Из них при конкретных значениях основания системы
счисления p можно получить разные частные случаи. Так из различных
скользящих БПВК при
p =2
получаются соответствующие скользящие
алгоритмы БПУ, а из скользящих БПК-Кронекера при
p1  p2  p
‒
скользящие БПВК-Адамара с прореженным порядком следования отсчетов
сигнала и спектра.
7.6. Скользящие быстрые преобразования Хаара
Методика синтеза быстрых алгоритмов анализа скользящего спектра
Хаара отличается от методики синтеза скользящих БПФ и БПУ, хотя так же
основывается
на статических БПХ (второй подход) и использует
взаимосвязь промежуточных вычислительных данных на различных шагах
скольжения. Рассмотрим ее сначала применительно к обычным функциям
Хаара.
Перепишем статическое БПХ (6.179) для скользящей выборки
входного сигнала:
X j (2n   m)  Sj 1 (2m)  Sj 1 (2m  1), 


Sj (m)  Sj 1 (2m)  Sj 1 (2m  1),


  1, 2, ..., n, m  0, 1, ..., 2n   1. 

Здесь запись величин Sj (m) с индексом j означает их
(7.94)
принадлежность к j
-му моменту текущего времени. Алгоритм (7.94) описывает итерационный
569
вычислительный
величины
процесс,
начальными
S0j (2m)  x( j  2m),
данными
которого
являются
S0j (2m  1)  S0j 1 (2m)  x( j  2m  1).
(7.95)
Для
получения
скользящего
алгоритма
БПХ
рассмотрим
последовательно несколько итераций статического БПХ (7.94). На первой
(  1, m  0,1,..., 2n1  1)
итерации
вычисляются
величины
S1j (m)
по
соотношению
S1j (m)  S0j (2m)  S0j (2m  1)  S0j (2m)  S0j 1 (2m)  x( j  2m)  x( j  1  2m)
(7.96)
и спектральные составляющие X j (2n1  m) по формуле
X j (2n1  m)  S0j (2m)  S0j (2m  1).
Величины S1j (m) необходимы для вычисления спектра Хаара с
номерами
2n  2  m ,
вычисляемого на второй итерации. Спектральные
составляющие X j (2n1  m) разделим на две группы со значениями m  0 и
m  k  1, k  0,1,..., 2n1  2 . Для m  0 в группе будет один только коэффициент
X j (2n1  m) , который запишется так:
X j (2n1 )  S0j (0)  S0j (1)  S0j (0)  S0j (0)  x( j)  x( j 1),
(7.97)
а для m  k 1 таких коэффициентов будет (2n1  1) и они будут равны
X j (2n1  k  1)  S0j (2k  2)  S0j (2k  2  1)  S0j 2 (2k )  S0j 2 (2k  1)  X j 2 (2n1  k ).
Из последнего выражения следует, что спектральные коэффициенты с
номерами 2n 1  k  1 на j -м шаге скольжения совпадают со спектральными
коэффициентами с номерами 2n 1  k на ( j  2) -м шаге скольжения. Если
последние хранить в памяти, то на первой итерации алгоритма необходимо
будет вычислить только один спектральный коэффициент X j (2n1 ) по
формуле (7.97) и вспомогательные величины S1j (m) по формуле (7.96).
На второй итерации (  2, m  0, 1, ..., 2n2  1) определяются величины
S2j (m)  S1j (2m)  S1j (2m  1),
(7.98)
необходимые для вычисления спектра на третьей итерации, и спектральные
коэффициенты с номерами 2n 2  m :
X j (2n2  m)  S1j (2m)  S1j (2m  1).
Но в соответствии с соотношением (7.96)
S1j (2m  1)  S0j [2(2m  1)]  S0j [2(2m  1)  1)]  S0j (4m  2)  S0j (4m  3) 
570
 x[( j  2)  4m]  x[( j  2)  (4m  1)]  S0j  2 (4m)  S0j  2 (4m  1)  S1j  2 (2m).
Поэтому выражение (7.98) можно представить следующим образом:
S2j (m)  S1j (2m)  S1j  2 (2m).
(7.99)
Спектр X j (2n2  m) также рассмотрим раздельно для двух значений
m  0 и m  k  1, k  0, 1, ..., 2n2 . Для m  0 имеем
X j (2n2 )  S1j (0)  S1j 2 (0),
а для m  k 1 X j (2n2  k  1)  S1j (2k  2)  S1j (2k  3)  S0j [2(2k  2)]  S0j [2(2k  2)  1] 
 S0j [2(2k  3)]  S0j [2(2k  3)  1]  S0j  4 (4k )  S0j  4 (4k  1)  S0j  4 (4k  2)  S0j  4 (4k  3) 
 X j 4 (2n2  k ).
Таким образом, и на второй итерации необходимо вычислять только
один спектральный коэффициент X j (2n2 ), а остальные можно заимствовать с
( j  4)
-го шага скольжения. Кроме того, поскольку при вычислении
коэффициента
X j (2n2 ) на
второй итерации используется только одна
величина S1j (0) , вычисляемая
остальные значения
S1j (m)
на первой итерации, то, следовательно,
не нужны и выражение
(7.96) следует
использовать только один раз для m=0.
К аналогичному результату приводит рассмотрение и всех
последующих итераций, что позволяет скользящие БПХ математически
записать в виде другого, боле простого в реализации, итерационного
вычислительного процесса:


j
j
j  21

X  (0)  S1 (0)  S1 (0),

n 
n 
X j (2  k  1)  X j  2 (2  k ), 

j
X j (0)  S n (0),


  1, 2, ..., n; k  0,1, ..., 2 n   2 
1
X j (2n  )  Sj 1 (0)  Sj 12 (0),
(7.100)
при начальных значениях
S0j (0)  x( j ), S0j 1 (0)  x( j  1).
571
(7.101)
Поскольку на каждой итерации такого процесса выполняется всего две
операции сложения, то их общее число в скользящем БПХ (7.100) составит
Ac  2n  2log N ,
(7.102)
2
что почти в N / log 2 N раз меньше по сравнению со статическим БПХ и
скользящим БПУ. Сигнальный граф этого алгоритма имеет еще более
усеченный вид, причем часть узлов графа используется только для
отображения факта хранения данных без выполнения вычислительных
операций. Объем дополнительных данных, подлежащих запоминанию, в
этом алгоритме равен
Qc  N (n  1)  N (log 2 N  1).
(7.103)
В скользящем БПХ (7.100) из всех отсчетов входного сигнала
используются только два отсчета x( j ) и x( j  1) , играющие роль начальных
данных (7.101). Это позволяет уменьшить область памяти, отводимую под
отсчеты входного сигнала. Подобный факт имел место и в полных
скользящих БПУ и БПВК с прореживанием по частоте.
Пример 7.17. Записать алгоритм скользящего БПХ для N=8.
.
.
x(j)
x(j-1)
.
.
.
.
.
.
S1j(0)
Хj(4)
Хj(2)
S1j-2(0)
Хj-2(4)
Хj-2(5)
Хj-2(6)
.
.
.
.
S2j(0)
Хj(5)
Хj(6)
S2j-4(0)
Хj-4(2)
.
Хj(0)
.
Хj(1)
Хj(3)
Хj(7)
Рис. 7.20. Сигнальный граф скользящего
БПХ для N=8
Решение. Так как в этом случае n=3, то алгоритм (7.100) будет иметь
три итерации.
Итерация 1 (λ=1, k=0, 1, 2):
S1j (0)  x( j )  x( j 1), X j (4)  x( j)  x( j 1), X j (5)  X j 2 (4),
X j (6)  X j  2 (5), X j (7)  X j  2 (6).
Итерация 2 (λ=2, k=0):
572
S2j (0)  S1j (0)  S1j 2 (0), X j (2)  S1j (0)  S1j 2 (0), X j (3)  X j 4 (2).
Итерация 3 (λ=3):
X j (0)  S3j (0)  S2j (0)  S2j 4 (0), X j (1)  S2j (0)  S2j 4 (0).
Сигнальный граф скользящего алгоритма для этого примера приведен
на рис. 7.20. Реализация его потребует выполнения 6 сложений и хранения 16
данных.
_______________ . _______________
С целью получения скользящего БП в базисе обобщенных функций
Хаара воспользуемся статическим БОПХ (6.187), которое запишем для
скользящей выборки входного сигнала:


 0

p 1

Sj (m)   Sj 1 ( pm   ),

  0


p 1
j
j

X j (0)  S n (0)   S n 1 (),

 0

  1, 2, ..., p  1; m  0, 1, ..., p n   1;   1, 2, ..., n.
X j (p
n 
p 1
 m)   Sj 1 ( pm  )W p ,
(7.104)
Алгоритм (7.104) выполняется за n итераций, на каждой из которых
вычисляется определенная группа спектральных коэффициентов и
вспомогательных величин. Начальными данными вычислительного процесса
являются величины
S j (m)  x( j  m)  S j m (0), m  0, 1, ..., p n 1.
(7.105)
0
0
Для вывода скользящего варианта алгоритма БОПХ рассмотрим
сначала процедуру вычисления спектров на каждой итерации. Начнем с
самой первой итерации
(  1, m  0, 1, ..., p n1  1) .
На ней вычисляются
спектральные коэффициенты с номерами (p n1  m) . Разделим их на две
части со значениями m=0 и m  k  1, k  0, 1, ..., p n1  2 . Для m=0 имеем
X j (p
n 1
p 1
)   S0j ()Wp
0
или, учитывая выражение (7.105),
X j (p
n 1
p 1
)  S
0
j 
0
(0)W

p
573
p 1
  x( j  )Wp .
0
Для m  k 1 из (7.104) получаем
X j (p
n 1
p 1
 k  1)   S [ p(k  1)  ]W
j
0
0
p 1
  x[( j  p)  ( pk  )]W
0
Из полученных

p

p
p 1
  x[ j  p(k  1)  ]Wp 
0
p 1
  S0j  p ( pk  )Wp  X j  p (p n1  k ).
0
результатов следует, что на первой
X j (p n1 ) , а остальные
необходимо вычислять только коэффициенты
X j (p n1  k  1)
коэффициенты
скольжения.
Кроме
того,
можно
при
итерации
заимствовать с ( j  p) -го шага
вычислении
коэффициентов
используются только p значений вспомогательной величины
X j (p n1 )
S0j  (0) на
текущем и предыдущих шагах скольжения, равные соответствующим
значениям входного сигнала.
На второй итерации (  2, m  0, 1, ..., pn2  1) вычисляются спектральные
коэффициенты X j (pn2  m) , которые так же можно разделить по значениям m
на две части: с m  0 и с m  k  1, k  0, 1, ..., p n2  2 . Для m=0
X j (p
n2
p 1
)   S1j ()Wp ,
(7.106)
0
а для m  k 1
X j (p
n2
p 1
 k  1)   S [ p(k  1)  ]W
0
p 1 p 1
j
1

p
p 1 p 1
  S0j [ p( pk  )  p 2  ]Wp 
0 0
  S0j  p [ p( pk  )  ]Wp  X j  p2 (p n2  k ).
2
0  0
Из этого следует, что и на второй итерации алгоритма необходимо вычислять
только коэффициенты с номерами p n 2 , а остальные коэффициенты можно
брать с ( j  p 2 ) -го шага скольжения. Кроме того, формула (7.106) показывает,
что для вычисления спектра X j (p n2 ) необходимы не все вспомогательные
величины S1j (m) , а только p первые из них. Рассмотрим их.
При m   из алгоритма (7.104) получим
p 1
p 1
p 1
 0
 0
S ()   S ( p  )   x[( j  p)  ]   S0j  p ()  S1j  p (0),
j
1
 0
j
0
что позволяет упростить запись алгоритма (7.106) вычисления спектра
X j (p n2 ) :
574
X j (p
n2
p 1
j  p

)   S1 (0)Wp ,
0
сделав его похожим на алгоритм вычисления спектра X j (pn1 ) на первой
итерации.
Продолжая рассмотрение итераций алгоритма (7.104), можно показать,
что на  -й итерации будет вычисляться только спектр
p 1
X j (p
n 
j p
)   S1
1
 0

(0)Wp ,
а спектр
n 
X j (pn  k  1)  X j  p (p  k ).
При
этом
вспомогательные
Sj 1p
величины
1

(0),   1, 2, ..., p  1,
используемые при расчете спектра X j (p n ) , вычисляются на предыдущем
( j  p1 ) -м шаге скольжения, а на текущем шаге
нужна только одна
величина
p 1
S
j
1
(0)   Sj 2p
 2

(0).
 0
Полученные результаты позволяют процесс анализа скользящего
спектра в обобщенном базисе Хаара представить в виде нового
итерационного процесса


 0

p 1

1
S (0)   Sj 1p  (0),

 0


X j (p n   k  1)  X j  p (p n   k ),


n 1
  1, 2, ..., p  1;   1, 2, ..., n  1; k  0, 1, ..., p  2; 

p 1
j  p n  2


X j ()   S n 1 (0)W p ,

 0

p 1
n2

X j (0)  S nj (0)   S nj1p  (0)

 0

X j (p
n 
p 1
)   Sj 1p
1

(0)W p ,
при начальных данных
575
(7.107)
S0j  (0)  x( j  ).
На каждой
(7.108)
итерации этого процесса будут выполняться p( p  1)
сложений и ( p  1)2 умножений, поэтому общее число вычислительных
операций в скользящем алгоритме (7.107) будет равно
Ac  p( p  1)n  p( p  1) log p N ,
(7.109)
M c  ( p 1)2 n  ( p 1)2 log p N.
(7.110)
Число дополнительных данных, которые необходимо хранить в нем на
каждом текущем шаге скольжения составит
Qc  ( p  1)(n  1) N .
(7.111)
Пример 7.18. Записать алгоритм скользящего БОПХ для N=9.
Решение. В этом случае n  2 и n  3 , поэтому алгоритм скользящего
БОПХ (7.107) будет иметь всего две итерации.
Итерация 1 (λ = 1, k = 0, 1, μ = 1, 2):
S j (3)  S0j (0)  S0j 1 (0)W31  S0j 2 (0)W32  x( j )  x( j 1)W31  x( j  2)W32 ,
S j (6)  S0j (0)  S0j 1 (0)W32  S0j 2 (0)W31  x( j )  x( j 1)W32  x( j  2)W31,
S1j (0)  S0j (0)  S0j 1 (0)  S0j 2 (0)  x( j )  x( j  1)  x( j  2),
X j (4)  X j 3 (3), X j (5)  X j 3 (4), X j (7)  X j 3 (6), X j (8)  X j 3 (7).
Итерация 2 (λ = 1, μ = 1, 2):
X j (1)  S1j (0)  S1j 3 (0)W31  S1j 6 (0)W32 , X j (2)  S1j (0)  S1j 3 (0)W32  S1j 6 (0)W31,
X j (0)  S2j (0)  S1j (0)  S1j 3 (0)  S36 (0).
.
.
.
x(j)
x(j-1)
x(j-2)
.
.
.
.
.
.
.
.
.
.
Хj(3)
S1j-3(0)
Хj(6)
S1j-6(0)
Хj-3(3) Хj(4)
Хj-3(6) Хj(7)
Хj-3(4) Хj(5)
Хj-3(7) Хj(8)
.
.
.
Хj(0)
Хj(1)
Хj(2)
Рис. 7.21. Сигнальный граф скользящего БОПХ для N=9
Сигнальный граф этого алгоритма приведен на рис. 7.21. На его
реализацию потребуется затратить 8 умножений и 6 сложений, что
576
соответствует оценкам (7.109) и (7.110) при N=9. По сравнению со
статическим алгоритмом примера 6.38
использование
скользящего
алгоритма этого примера приведет к экономии 8 умножений и 8 сложений.
Число дополнительных данных здесь равно 18, что также совпадает с
оценкой (7.111) при N=9.
_______________ . _______________
Скользящий алгоритм (7.107) носит общий характер, справедлив для
любых целых положительных
p
и n и при p  2 переходит в алгоритм
(7.100) скользящего БПХ. Оценки сложности (7.109) и (7.111) в этом случае
переходят в оценки (7.102) и (7.103).
7.7. Скользящие теоретико-числовые преобразования Рейдера
и преобразования Хартли
Результаты предыдущей главы показывают, что статические БП для
ТЧП Рейдера по структуре близки к статическим БПФ Кули-Тьюки по
основанию 2 и отличаются только характером применяемых там арифметик:
в БПФ используются немодулярная арифметика комплексных чисел, а в
БТЧП – модулярная арифметика целых чисел. Математическое сходство двух
преобразований
приводит к наиболее простому способу построения
скользящих БТЧП Рейдера. Для этого достаточно в алгоритме скользящих
БПФ Кули-Тьюки по основанию 2 заменить умножения на фазовые
комплексные множители на умножения на вещественные константы
двоично-экспоненциального вида и выполнять все вычислительные операции
по модулю определенного числа Ферма. Способ позволяет получить
алгоритмы скользящих БТЧП Рейдера как с прореживанием по времени, так
и по частоте. Наиболее эффективными по вычислительной сложности будут
скользящие БТЧП с прореживанием по времени, поскольку именно с
прореживанием по времени базовые скользящие БПФ Кули-Тьюки
характеризуются наименьшими затратами вычислительных операций.
Для прореживания по времени алгоритм скользящего БТЧП Рейдера с
 -й
глубиной прореживания легко получается из алгоритма (7.34), (7.35)
скользящего БПФ Кули-Тьюки и имеет следующий вид:
577
(mod(2 n 1  1)), 

 km
( m 1)
nm
(m)
(m)
n 1
X j (km  2 )  X j (km )  2 X j  2m1 (km ) (mod(2  1)), 

nm

km  0, 1, ..., 2  1; m  1, 2, ..., ;

2n 1


2 k i
X (j  ) (k )   x( j  2 i )2  
(mod(2 n 1  1)). 
i  0

X (j m 1) (km )  X (j m ) (km )  2 km X (j m 2)m1 (km )
(7.112)
При   n  1 выражения (7.112) дадут описание полного скользящего
БТЧП Рейдера. Для алгоритма (7.112) будут справедливы все оценки
показателей сложности (7.36)÷(7.41), полученные для скользящих БПФ. При
этом и операции, и операнды будут сугубо вещественными. Вещественными
будут и дополнительные промежуточные данные (спектры), подлежащие
хранению. Сигнальный граф скользящего ТЧП Рейдера можно получить из
соответствующего графа скользящего БПФ Кули-Тьюки, если заменить в
последнем комплексные константы
W2nkmm1
на вещественные
2 km
и все
n1
операции в узлах графа выполнять по модулю числа Ферма (2  1).
Статические БП Хартли так же очень близки по описанию к
статическим БПФ, что объясняется, как уже отмечалось, родственностью
систем функций Хартли и ДЭФ. Это позволяет и в этом случае существенно
упростить процедуру синтеза скользящих БП Хартли за счет использования
уже разработанных скользящих БПФ. Применим такой подход к синтезу
скользящих БП Хартли по основанию 2 с прореживанием по времени.
Сравнение статических БПФ Кули-Тьюки (6.42) и БП Хартли (6.204)
показывает, что алгоритм Хартли можно получить из алгоритма КулиТьюки, если в последнем на каждой итерации одно умножение
промежуточного спектра нечетной подвыборки на комплексную константу
W2nkmm1
заменить на два умножения одной половины этого спектра на
n  m 1
) , а другой ‒ на вещественную
вещественную константу cos(2km / 2
n  m 1
) . В остальном процедура вычислений остается
константу sin(2km / 2
прежней. Очевидно, что то же самое можно проделать и применительно к
скользящему БПФ Кули-Тьюки (7.34), (7.35), получив в результате
578
следующий алгоритм скользящего БП Хартли по основанию 2 с  уровнями
прореживания по времени:


n  m 1
(m)
nm
 sin(2km / 2
) X j  2m1 (2  km )], 

( m 1)
nm
(m)
n  m 1
(m)
X j (km  2 )  X j (km )  [cos(2km / 2
X j  2m1 (km )  

n  m 1
(m)
nm
 sin(2km / 2
) X j  2m1 (2  km )], 

nm

km  0, 1, ..., 2  1; m  1, 2, ..., ;

2n 1

X (j  ) (k )   x( j  2 i )cas (2ki / 2 n  ).

i  0

X (j m 1) (km )  X (j m ) (km )  [cos(km / 2n  m 1 ) X (j m 2)m1 (km ) 
(7.113)
При   n  1 скользящий алгоритм (7.113) становится полным.
Для полного алгоритма на последнем (n  1) -м уровне прореживания
тригонометрические константы принимают только значения 1 и 0, поэтому
при m  n 1 алгоритм (7.113) упрощается
X (j n  2) (0)  X (j n 1) (0)  X (j n21)n2 (0),
X (j n 2) (1)  X (j n 1) (1)  X (j n21)n2 (1),
X (j n  2) (2)  X (j n 1) (0)  X (j n21)n2 (0),
X (j n 2) (3)  X (j n 1) (1)  X (j n21)n2 (1).
( n 1)
Спектры X j (kn1 ) в этом случае вычисляются с помощью 2-точечных
дискретных преобразований Хартли:
X (j n1) (0)  x( j)  x( j  2n1 ),
X (j n1) (1)  x( j)  x( j  2n1 ).
Эти уравнения определяют начальные данные для итерационного
процесса вычисления скользящего спектра Хартли по БА (7.113) при
m  n  1, n  2, ..., 1 .
Его
результатом будет спектр X (0)
являющийся
j (k ) ,
искомым спектром X j (k ) входного сигнала к j -му
моменту текущему
времени.
Проведем оценку сложности скользящего алгоритма (7.113). На
последней итерации умножения не выполняются, а выполняется только 6
579
сложений, 2 из которых используются при определении начальных данных.
На каждой m -й из всех последующих итераций алгоритма выполняются
nm
2  2n  m общих умножений и 3  2
сложений. При этом для двух значений
индекса km , равных 0 и
2nm1 , тригонометрические функции косинуса и
синуса будут равны 1 или 0 и поэтому в этом случае умножения станут
тривиальными, а число слагаемых в уравнениях (7.113) сократиться до двух.
По этой причине число нетривиальных операций на m -й итерации будет
равно 2(2nm  2) умножений
и (3  2nm  2) сложений. Отсюда следует и
общее число нетривиальных операций в самом алгоритме:
n2
M c   2(2n  m  2)  2( N  2n)  2( N  2 log 2 N ),
m 1
(7.114)
n2
Ac   (3  2n  m  2)  6  3 N  2(n  1)  3N  2(log 2 N  1).
m 1
Алгоритм еще можно улучшить за счет дополнительного уменьшения
числа умножений, если учесть, что тригонометрические множители при
km  2n  m  2 и km  3  2n m 2 по модулю равны между собой и их можно
вынести за скобки, обеспечив тем самым выполнение
вместо четырех. В этом случае на
двух умножений
каждой m -й итерации из (n  2) -х в
n  m 1
 6)
алгоритме (7.113) будет выполняться (2
умножений, а их общее
число станет равным
M c  2[ N  (3n  2)]  2[ N  (3log 2 N  2)].
(7.115)
Число дополнительных данных, которые необходимо хранить в памяти
для реализации скользящего преобразования Хартли, такое же, как в
скользящем алгоритме БПФ Кули-Тьюки по основанию 2 с прореживанием
по времени. Для полного скользящего алгоритма Хартли его можно
подсчитать по оценке (7.41).
Пример 7.19. Записать полный алгоритм скользящего БП Хартли для
N=8.
Решение. Алгоритм (7.113) при n=3 будет иметь всего 2 итерации.
Итерация 1 (m=1, k=0, 1, 2, 3):
(1)
(1)
X j (0)  X (1)
j (0)  X j 1 (0); X j (1)  X j (1) 
580
2 (1)
[ X j 1 (1)  X (1)
j 1 (3)];
2
2 (1)
[ X j 1 (1)  X (1)
j 1 (3)];
2
2 (1)
(1)
(1)
X j (4)  X (1)
[ X j 1 (1)  X (1)
j (0)  X j 1 (0); X j (5)  X j (1) 
j 1 (3)];
2
2 (1)
(1)
(1)
X j (6)  X (1)
[ X j 1 (1)  X (1)
j (2)  X j 1 (2); X j (7)  X j (3) 
j 1 (3)].
2
(1)
(1)
X j (2)  X (1)
j (2)  X j 1 (2); X j (3)  X j (3) 
Итерация 2 (m = 2, k = 0, 1):
2
(2)
(2)
(1)
(2)
(2)
X (1)
j (0)  X j (0)  X j 2 (0); X j (1)  X j (1)  X j 2 (1);
(2)
(2)
(1)
(2)
(2)
X (1)
j (2)  X j (0)  X j 2 (0); X j (3)  X j (1)  X j 2 (1),
где
(2)
X (2)
j (0)  x( j )  x( j  4); X j (1)  x( j)  x( j  4).
Сигнальный граф этого алгоритма представлен на рис. 7.22. Алгоритм
содержит 2 умножения на вещественные константы
соответствует оценкам (7.114) и (7.115) при N=8.
x(j)
x(j-4)
.
.
X(2)
j-2(0)
X(2)
j-2(1)
.
.
.
.
X(1)
j-1(0)
X(1)
j-1(1)
X(1)
j-1(2)
X(1)
j-1(3)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
2
2
2
2 / 2 и 16 сложений, что
.
.
.
.
.
.
.
.
Хj(0)
Хj(1)
Хj(2)
Хj(3)
Хj(4)
Хj(5)
Хj(6)
Хj(7)
Рис. 7.22. Сигнальный граф полного скользящего
преобразования Хартли по основанию 2
с прореживанием по времени для N=8
_______________ . _______________
Сигнальные графы скользящих преобразований Хартли по форме
отличаются от графов БПФ Кули-Тьюки и содержат дополнительные узлы.
Зато все выполняемые в них операции вещественные.
Приведенные в этой главе методы синтеза скользящих преобразований
широко используют существующие результаты теории статических быстрых
преобразований, не требуют глубоких дополнительных специальных знаний
581
и достаточно просты в освоении. Их возможности не ограничиваются
рассмотренными базисными системами. Они могут найти успешное
применение при разработке новых эффективных цифровых алгоритмов,
использующих скользящую обработку сигналов.
Вопросы и задачи для самопроверки
Дайте определение текущего и скользящего спектров сигналов.
Назовите известные вам способы формирования скользящих
1.
2.
выборок.
3.
Назовите существующие подходы к синтезу скользящих
алгоритмов ЦОС.
4.
Запишите все известные вам скользящие алгоритмы для
вычисления 4-точечной круговой свертки.
5.
Запишите рекурсивные и нерекурсивные скользящие алгоритмы
вычисления 4-точечной линейной свертки. Сравните их между собой.
6.
Запишите скользящие БПФ Кули-Тьюки для N=12.
7.
Запишите скользящие БПФ Кули-Тьюки по основаниям 2 и 4 для
N=16 и постройте их сигнальные графы.
8.
Запишите скользящие БПФ Кули-Тьюки для N=30.
9.
Запишите возможные варианты скользящих БПУ для систем
Пэли, Хармута и Адамара при N=16. Постройте их графы и оцените их
вычислительную сложность.
10. Запишите возможные варианты скользящих БП в базисах ВКФ
для N=25. Оцените их сложность.
11. Запишите скользящее БП Кронекера в базисе обобщенных
функций Крестенсона для N=30.
12. Приведите полный алгоритм скользящего БП Хаара для N=16 и
постройте его сигнальный граф.
13. Приведите полный алгоритм скользящего БП в базисе
обобщенных функций Хаара для N=30.
14. Запишите скользящее ТЧП Рейдера для N=16.
15. Используя результаты этой и предыдущей глав, получите
самостоятельно скользящие БП Хартли с составными основаниями и
по основанию 4.
582
Download