Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книжка умняшкина по моцос

.pdf
Скачиваний:
133
Добавлен:
16.04.2013
Размер:
1.55 Mб
Скачать

Следствие. Обратная матрица W-1=W, и формула обратного ДПУ совпадает с формулой прямого ДПУ (3.19), т.е. Y=WX, X=WY,

1 2n 1

xk = y j wk ( j / 2n ) .

2n j=0

Пример 5. Построим матрицу ДПУ для 4-точечного преобразования,

N=22.

◄ При

wk, j = w j,k

W = wk, j

доказательстве

 

леммы

2

получили

общее

выражение:

=

 

1

wk

 

j

 

=

1

n1

j

 

k

m . В нашем случае, n=2:

 

2n

 

2

n

 

2n

(-1)

n1m

 

 

 

 

 

 

 

 

m=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

1

1

 

 

1

 

j k

+ j k

3

 

 

 

 

 

 

 

1

1 1 1 1

 

=

 

(-1) 0 1

 

1 0

 

 

 

. Получаем:

W =

2

1 1

1

1

. ►

2

 

 

 

 

 

 

 

 

 

 

k

, j=0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

1

 

3.8. Дискретное преобразование Хаара

Определение. Дискретным преобразованием Хаара (ДПХ) вектора X = (x0 , x1,K, x2n 1 ) назовем вектор Y = (y0 , y1,K, y2n 1 ), компоненты которого находятся по формуле:

 

= 1

2n 1

 

yk

x jhk ( j / 2n ) ,

(20)

 

2n

j=0

 

где hk(t) – k-я функция системы Хаара (см. раздел 1.7).

Замечание. Положив, что xj это отсчёты некоторой функции, xj=f(j/2n), определённой на отрезке t [0;1], формулу (20) также можно рассматривать как приближённое вычисление по формуле прямоугольников интеграла:

1

n

1n

= 1 yk

ck = f (t), hk (t) = f (t)hk (t)dt

21 x jhk ( j / 2n )

0

j=0

2

2n

(с точностью до множителя 1 2n ), где ck представляет собой k-й коэффициент Фурье разложения функции f(t) по системе Хаара.

71

 

 

1

 

Теорема 5. Матрица

 

 

H =

 

 

 

 

2

n

 

 

 

 

2n 1

 

j

, определяющая ДПХ

hk

 

 

2n

, j =0

 

k

Y=HX – ортогональна, т.е. HT = H1 .

◄ Обозначим U=HHT и покажем, что матрица U – единичная. Рассмотрим элемент k-ой строки j-ого столбца матрицы U, который представляет собой скалярное произведение k-ой строки матрицы H и j-ого столбца

 

T

 

 

 

2n

1

m m 1

матрицы H

 

(т.е. j-ой строки матрицы H):

uk, j =

hk

 

 

 

 

h j

 

 

 

 

 

.

 

2

n

 

n

2

n

 

 

 

 

 

m=0

 

 

 

2

 

 

 

 

Поскольку k=0,…,2

n

n m

 

m +1

 

 

 

 

 

 

 

-1: hk(t)=const при t m =

 

 

;

 

 

 

(см. свойст-

2

n

2

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

во 1° системы Хаара, пример 1.12), то выражение для uk,j можем переписать:

 

n

 

 

1 wk (t)w j (t)dt =< wk (t), w j (t)>= 1, приk = j

 

uk , j =

21

hk (t)h j (t)dt =

,

 

 

14243

0, приk j

 

 

m=0 n

const

0

 

 

 

 

m

 

 

 

в силу ортонормированности системы Хаара (см. теорему 1.13). ►

Пример 6. Построим матрицу ДПХ для 4-точечного преобразования,

N=22.

◄ Построив по определению (см. пример 1.12) первые функции h0(t), h1(t), h2(t), h3(t), находим значения hj(j/4), k,j=0,1,2,3, и получаем сле-

1/ 2

1/ 2

1/ 2

1/ 2

 

 

 

1/ 2

1/ 2

1/ 2

1/ 2

 

 

дующую структуру матрицы ДПХ: H =

 

. ►

1

2 1 2

0

0

 

 

 

 

0

0

1 2 1 2

 

 

 

 

 

 

ДПХ и ДПУ также обладают быстрыми алгоритмами вычислений. Данные преобразования вычисляются намного быстрее ДПФ, так как реализуются только за счёт операций сложения и вычитания чисел, не требуя операций умножения или деления (за исключением окончательной нормировки коэффициентов, ~N умножений, которая на практике требуется не всегда).

72

3.9. Некоторые применения дискретных ортогональных преобразований

Кратко рассмотрим некоторые применения дискретных ортогональных преобразований.

Пример 7. Вычисление свёртки векторов с помощью БПФ.

Для

вектора-свёртки

C = (c0 ,c1,K, c2N 1 )

векторов

A = (a0 , a1,K, aN 1 )

и

B = (b0 ,b1,K,bN 1 )

была опреде-

лена формула (14), расписав которую по отдельности для каждой компоненты (см. табл.), можем подсчитать число умножений, которое необходимо для вычисления всего вектора C. Получаем

2(1+ 2 +…+(N-1))+ N = N 2 (см.

табл.) умножений (вещественных или комплексных, в зависимости от характера векторов A, B).

Компонента свёртки, фор-

Кол.

мула вычисления

умн.

c0 = a0b0

1

c1 = a0b1 + a1b0

2

k

 

ck = a jbk j

k+1

j=0

 

N 1

 

cN 1 = a jbN 1j

N

j=0

 

N 1

 

cN = a jbN j

N-1

j=1

 

N 1

 

cN +1 = a jbN +1j

N-2

j=2

 

 

c2N 3 = aN 2bN 1 + aN 1bN 2

2

c2N 2 = aN 1bN 1

1

Положим, что N=2n. Используя свойство ДПФ свёртки (см. свойство 5° ДПФ), можно вычислить вектор-свёртку следующим образом.

1. Сформируем

 

векторы

A = (a

,K,a

N 1

,0,K,0) ,

 

 

 

 

 

 

0

 

123

 

 

 

 

 

 

 

 

 

N нулей

B = (b ,K,b

,0,K,0) , и с использованием алгоритма БПФ полу-

 

0

 

N 1

123

 

 

 

 

 

 

 

 

N нулей

 

 

 

 

чим

векторы

ˆ

= (aˆ0 ,aˆ1,K,aˆ2N 1)

– ДПФ

вектора

A и

A

ˆ

ˆ

ˆ

ˆ

 

– ДПФ вектора

n

 

 

B =

(b0

,b1

,K,b2N 1)

B . Если N=2 , то вычисление

двух БПФ размерности 2N=2n+1 потребует (см. раздел 3.6) примерно

73

 

(n +1)2n

комплексных

умножений

каждое,

т.е. всего

 

(n +1)2n+1 = 2N log2 (2N ) умножений.

 

 

 

 

2.

 

 

ˆ

,cˆ1,K, cˆ2N 1) (ДПФ вектора С) перемно-

Вычислим вектор C = (cˆ0

 

 

 

 

ˆ

ˆ

k

cˆk =

 

ˆ

 

жением компонент векторов A и

B :

2N aˆk bk . Без учёта

 

нормировки (умножения на 2N ) для этого необходимо 2N ком-

 

плексных умножений.

 

 

 

 

 

 

3.

Вектор-свёртку

C = (c0 ,c1,K,c2N 1 )

получим далее

в результате

 

ОДПФ вектора

ˆ

 

по быстрому алгоритму, для че-

 

C = (cˆ0 ,cˆ1,K, cˆ2N 1)

 

го необходимо примерно

(n +1)2n = N log2 (2N )

комплексных ум-

 

ножений.

 

 

 

 

 

 

 

 

Таким образом, общее количество комплексных умножений, необходимых для вычисления свёртки по описанной схеме, составит величину 3N log2 (2N ) + 2N = N (2 + 3log2 (2N )), что при больших значениях N

существенно меньше, чем N2.

Пример 8. Сжатие данных с потерями информации.

Если необходимо закодировать дискретный сигнал, представленный в виде вектора данных X, то во многих случаях оказывается удобнее кодировать вектор Y=FX, полученный в результате ортогонального преобразования с матрицей F. При этом о многих коэффициентах {yk} заранее можно сказать, что их модули |yk| малы – при кодировании вектора Y эти коэффициенты отбрасываются, а при восстановлении заменяются нулями. Тем самым, хранение (передача) данных вектора Y, а не X, оказывается более экономной, однако за счёт того, что в декодированном

(

векторе Y имеется некоторое множество принудительно обнулённых

коэффициентов («зоны» нулей), восстановленный вектор X( = F1Y( также отличается от исходного вектора данных X. Если характеризовать

потерю данных по евклидовой норме ошибки

 

(

 

, то в силу ортого-

 

X X

 

нальности используемого

преобразования, так как

(

(

Y Y = F(X X),

имеем:

 

(

 

2

 

 

(

 

2

=

 

yk

 

2 , где – множество индексов обну-

 

X X

 

 

=

 

Y Y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

лённых компонент вектора Y. Поскольку величину ошибки кодирования

74

возможных уровней сигнала в соот-

можно анализировать в области преобразованных векторов Y, Y , имен-

но ортогональные преобразования используются в основном для целей кодирования. Подробнее теоретические основы использования ортогональных преобразований для сжатия данных будут рассмотрены в шестой главе.

3.10. Квантование дискретных сигналов

До сих пор предполагалось, что полученные из непрерывного сигнала f(t) дискретные отсчёты {fk=f(kt)} могут принимать любые значения из некоторого диапазона [xmin;xmax]. Для представления сигнала в цифровом виде дискретный сигнал дополнительно необходимо проквантовать, т.е. заменить каждый отсчёт fk значением из некоторого

конечного множества Ω = {d j }Nj =01

ветствии с некоторым правилом Q: fk Q fˆk . Возникает вопрос:

как выбрать правило квантования Q? Отсчёты дискретного сигнала часто описывают в терминах случайных величин, поэтому процесс квантования удобно представить как преобразование случайной величины не-

прерывного типа X в случайную величину дискретного типа:

ˆ

= Q( X ) .

X

В зависимости от того, насколько полна исходная информация о законе распределения случайной величины X и каковы технические возможности реализации квантователя (как устройства или программной процедуры), возможны и различные подходы к выбору правила (функции) Q, при заданном числе уровней квантования N.

Равномерное квантование

Обычно равномерное квантование используется тогда, когда о случайной величине X известно лишь то, что она попадает в некоторый

диапазон X [xmin;xmax] и (или) необходимо обеспечить простейшую аппаратную реализацию квантователя (т.е. устройства, реализующего пра-

вило Q). Для технического удобства изложения в качестве диапазона возможных значений случайной величины непрерывного типа выберем

полуинтервал X [xmin;xmax).

При равномерном квантовании диапазон [xmin;xmax) разбивается на N равных интервалов длины q=(xmax-xmin)/N: j=[xmin+jq;xmin+(j+1)q), j=0,…,N-1. В качестве уровней квантования {d j }Nj=01 выбираются середи-

75

ны интервалов, dj=xmin+(j+0,5)q. Правило квантования имеет простой вид: если X j, то Q(X)=dj. Очевидно, что ошибка квантования при этом:

ˆ

q 2 . Часто ошибку квантования характеризуют некоторыми

X X

средними значениями. В частности, для характеристики ошибки квантования используется величина

ε

2

ˆ

2

),

(21)

 

= M(( X X )

 

где обозначение М используется для математического ожидания, а горизонтальная черта означает операцию усреднения. При достаточно малой

= − ˆ

величине дискрета квантования q ошибку квантования E X X можно считать случайной величиной, подчиняющейся равномерному закону распределения на отрезке [q 2; q 2]. Тогда (21) представляет собой

дисперсию ошибки квантования. Как было установлено в курсе теории вероятностей, для равномерного закона распределения случайной величины E ~ R[q 2; q 2] математическое ожидание М(E)=0, а дисперсия

ошибки квантования ε2 = D(E) = q2 12 .

Оптимальное квантование Ллойда-Макса

Вновь положим, что случайная величина непрерывного типа X принимает значения из какого-то диапазона [xmin;xmax), причем известна её функция плотности распределения вероятностей fX(x), fX(x)>0 при

X [xmin;xmax) и fX(x)=0 при X [xmin;xmax). Разобьём интервал [xmin;xmax) на N, вообще говоря, неравных частей: j=[tj;tj+1), j=0,…,N-1, t0=xmin, tN=xmax. Внутри каждого подынтервала j расположим точку dj – уровень кванто-

вания. Правило квантования имеет тот же вид, что и ранее: если X j, то Q(X)=dj. Однако теперь параметры квантования – пороги {t j }Nj =11 и уров-

ни {d j }Nj=01 – будем искать с точки зрения минимизации величины (21)

как функции данных параметров:

ε 2 = g(t1 ,K,tN 1;d0 ,K, d N 1 ) = M[(X Q( X ))2 ]=

tN

= (x

t0

Q(x))2 f X (x)dx =N1t j+1(x d j )2 f X (x)dx .

(22)

j=0 t j

 

Необходимым условием минимума функции (22) является равенство нулю частных производных.

76

 

g(K)

 

 

t j

 

 

t j+1

 

 

 

 

 

=

K+ (x d j1 )2 f X (x)dx + (x d j )2

f X (x)dx +K

=

 

 

 

 

t j

t j

t j1

 

 

t j

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= (t j d j1 )2 f X (t j ) (t j d j )2 f X (t j ) = 0 .

 

 

 

 

Отсюда, так

как

fX(tj)0, получаем:

 

t j d j 1

 

=

 

t j

d j

 

. Поскольку

 

 

 

 

dj-1tjdj, то раскрывая модули как t j d j1 = d j t j , получаем:

 

 

 

 

 

 

t j =

d j1 + d j

,

 

 

 

 

 

 

 

(23)

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

j =1,K, N 1.

 

 

 

 

Для частных производных функции (22) по переменным

получаем:

g(K) = −2t j+1(x d j )f X (x)dx = 0 .

d j

t j

Отсюда

 

t j+1

t j+1

d j = xf X (x)dx f X (x)dx ,

t j

t j

 

j = 0,K, N 1.

{d j }Nj=01

(24)

Заметим, что выражение (24) представляет собой среднее значение случайной величины X при условии, что последняя попала в интервал j. То есть (24) – это условное математическое ожидание: d j = M( X | X j ) .

Решение системы уравнений (23), (24) определяет квантователь Ллойда-Макса и, как можно было бы показать, дает минимальное значение ошибки (22). В общем случае решение системы уравнений (23), (24) необходимо искать численными методами. Отметим также, что все приведённые рассуждения, которые привели к построению данной системы уравнений, сохраняются в силе и для общего случая, когда функция плотности распределения принимает ненулевые значения на всей числовой оси, т.е. когда t0= xmin=-, tN=xmax=+.

77

Пример 9. Найти параметры оптимального квантователя Ллойда-Макса для квантования с N уровнями для случайной величины, имеющей равномерное распределение на интервале [a,b], т.е. X~R[a,b].

◄ Функция плотности распределения имеет в данном случае вид:

 

1

 

 

 

, при x [a;b] .

 

f X (x) = b a

 

0,

при x [a;b]

 

Тогда для уравнений (24) получаем:

 

t j+1

x

 

t j+1

1

 

t2j+1 t2j

 

 

 

t j+1

+t j

 

 

d j =

 

dx

 

dx =

 

 

 

 

 

=

 

 

,

j=0,…,N-1.

b a

b a

2(t

j+1

t

j

)

2

 

t j

 

 

t j

 

 

 

 

 

 

 

 

 

 

С учётом (23) и условий t0=a, tN=b, для параметров оптимального квантователя Макса получаем окончательно следующую систему уравнений, которая в данном случае принимает линейный вид и легко разрешима:

 

t0

= a;

tN = b;

 

 

 

 

d j1 + d j

 

 

 

t j

=

 

,

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

d j

=

 

t j + t j+1

,

 

 

 

2

 

 

 

 

 

 

 

j = 1,K, N 1,

j = 0,K, N 1.

Решение системы – очевидное, определяет рассмотренный выше равномерный квантователь, который для равномерно распределённой случайной величины является также оптимальным в смысле минимизации ошибки (21). ►

Итак, процесс квантования отсчётов дискретного сигнала можно рассматривать как преобразование случайной величины непрерывного

ˆ =

типа X в случайную величину дискретного типа X Q( X ) . Трактуя уровни квантования {d j }Nj=01 как символы некоторого алфавита, цифро-

вой сигнал можно считать словом, составленным из этого алфавита, буквы которого представляют собой проквантованные отсчёты дискретного сигнала. Такое слово, или «дискретное сообщение», можно представить в двоичном виде. Вопросы эффективного двоичного кодирования дискретных сообщений мы рассмотрим позднее в главе 5.

78

Глава 4. Линейные дискретные системы

В предыдущей главе мы рассмотрели вопросы преобразования ана-

логового сигнала в дискретный: f (t) {fn = f (nt)}n=−∞ . Величина t, фактически, характеризует масштаб по оси абсцисс, выбранный для представления дискретного сигнала во временной области. Реально выбирая интервал дискретизации t, например, в соответствии с критерием (3.6), далее, не меняя общности рассуждений, можем для упрощения изложения считать t=1 (проведя своего рода «нормировку» по оси времени дискретного сигнала). Тогда для спектра дискретного сигнала (3.8)

верхняя частота сигнала Fmax = 21t (см. (3.6)) будет соответствовать

нормированной частоте ν=1/2, а период спектральной функции (3.8) (см. рис. 3.2) будет единичным. Отличие шага дискретизации t от единичного всегда можно учесть и в частотной области, воспользовавшись

свойством 3° преобразования Фурье: f (αt) Sα (t) = α1 S(ν α). При

дальнейшем изложении в данной главе будем полагать, что t=1 и fn=f(n).

4.1. Z-преобразование

Определение. Z-преобразованием числовой (действительной или комплексной) последовательности {x(n)}n =0 назовём функцию ком-

плексной переменной X(z)=Z{x(n)}, которая определяется следующим образом:

 

z > r = lim n

x(n)

 

ϕ(z) = x(n)zn для

 

X (z) =

n=0

n→∞

 

.(1)

 

 

 

 

r

ианалитическоепродолжениефункции ϕ(z) вкруг z

Считается, что x(n)0 при n<0. Соответствие между последовательностью {x(n)}n =0 и её Z-образом X(z)=Z{x(n)} обозначаем: x(n)X(z).

Поясним определение. Функция ϕ(z) = x(n)zn , фигурирующая

n=0

в (1), представляет собой частный случай ряда Лорана, который в общем

79

случае представляет собой сумму

 

cn (z z0 )n ,

(2)

n=−∞

где z0 – точка комплексной плоскости, cn – комплексные числа. Напомним следующую теорему.

Теорема 1. Если

коэффициенты ряда

Лорана (2) таковы, что

lim n cn = r < R =

1

, то областью сходимости ряда (2) является

 

n→∞

lim n

cn

 

 

 

 

 

 

n→∞

 

 

 

 

 

 

 

 

 

кольцо r <

 

z z0

 

< R , в котором сумма

f (z) = cn (z z0 )n является

 

 

n=−∞

аналитической функцией, а коэффициенты ряда выражаются с помощью контурных интегралов:

c

= 1

f (z)

dz ,

(3)

n

2πi γ(z z0 )n+1

 

 

 

 

 

n Z, где γ – произвольный замкнутый контур (обход конура – в положи-

тельном направлении),

целиком лежащий в кольце r <

 

z z0

 

< R и ох-

 

 

ватывающий точку z0.

 

 

 

 

 

 

 

 

 

В соответствии с

теоремой 1 r = lim n x(n) и R=, т.е. ряд

 

 

 

 

 

n→∞

 

 

 

 

 

 

 

 

 

x(n)zn сходится в области r <

 

z

 

, где его сумма ϕ(z) представляет

 

 

n=0

 

 

 

 

 

 

 

 

 

собой аналитическую функцию. Особые точки функции X(z) могут быть только в круге z r , в который аналитически продолжена функция

ϕ(z) .

Пример 1. Найти Z-преобразование последовательности x(n)=n, n=0,1,…

◄ Для z > lim n

n

=1 имеем:

 

 

 

 

 

 

 

 

 

 

 

 

 

n→∞

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d

 

d

 

d

z

 

 

z

 

 

X (z) = nzn = −z

 

zn = −z

 

 

zn

= −z

 

 

 

 

 

=

 

 

.

 

 

 

 

 

(z 1)

2

n=0

 

n=0 dz

 

dz n=0

 

dz z 1

 

 

 

 

Заметим, что использование формулы для суммы геометрической прогрессии возможно только для z >1. Однако мы считаем полученное

80