КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
СВОЙСТВА Z-ПРЕОБРАЗОВАНИЯ [2].Важнейшим свойством z-преобразования является свойство его единственности. Любая последовательность s(k) однозначно определяется z-изображением в области его сходимости, и наоборот, однозначно восстанавливается по z-изображению. Без углубления в теорию, можно констатировать, что все свойства ДПФ действительны и для z-преобразования. Отметим некоторые из них. Линейность: Если s(k) = a·x(k)+b·y(k), то S(z) = aX(z)+bY(z). Соответственно, z-преобразование допустимо только для анализа линейных систем и сигналов, удовлетворяющих принципу суперпозиции. Задержка на n тактов: y(k) = x(k-n). Y(z) = y(k) zk = x(k-n) zk =zn x(k-n) zk-n = zn x(m) zm = zn X(z). Соответственно, умножение z-образа сигнала на множитель zn вызывает сдвиг сигнала на n тактов дискретизации. Преобразование свертки. При выполнении нерекурсивной цифровой фильтрации односторонними операторами фильтров: s(k) = h(n) y(k-n), k = 0, 1, 2, … Z-преобразование уравнения свертки: S(z) = h(n) y(k-n) zk = h(n) zn y(k-n) zk-n = = h(n) zn y(k-n) zk-n = H(z) Y(z). Таким образом, свертка дискретных функций отображается произведением z-образов этих функций. Аналогично, для z-преобразования могут быть доказаны все известные теоремы о свойствах z-образов, что вполне естественно, т.к. при z=exp(-jw) эти свойства полностью эквивалентны свойствам спектров функций. Разложение сигналов на блоки последовательной свертки. Z-преобразование позволяет производить разложение сигналов и функций, например передаточных функций фильтров, на короткие составляющие операции свертки, для чего достаточно приравнять z-полином к нулю, найти его корни ai, и переписать полином в виде произведения двучленов: S(z) = a0(z-a1)(z-a2)..., где а0- последний отсчет сигнала (коэффициент при старшей степени z). Но произведению в z-области соответствует свертка в координатной области, и при обратном преобразовании двучлены (z-ai) превращаются в двухточечные диполи {-ai,1}, а сигнал длиной N представляется сверткой (N-1) диполей: sk= a0{-a1,1}*{-a2,1}*{-a3,1}* ... Пример. sk = {1.4464, -2.32, 3.37, -3, 1}. S(z) = z4-3z3+3.37z2-2.32z+1.4464. a0 = 1. Корни полинома S(z): a1 = 0.8+0.8j, a2 = 0.8-0.8j, a3 = 0.7+0.8j, a4 = 0.7-0.8j, S(z) = (z-0.8-0.8j)(z-0.8+0.8j)(z-0.7-0.8j)(z-0.7+0.8j). Корни полинома представлены на z-плоскости на рис. 8.1.1. Корни полинома комплексные и четыре двучлена в координатной области также будут комплексными. Но они являются сопряженными, и для получения вещественных функций следует перемножить сопряженные двучлены и получить биквадратные блоки: S(z) = (z2-1.4z+1.13)(z2-1.6z+1.28). При переходе в координатную область: sk = {1.13, -1.4, 1} * {1.28, -1.6, 1}. Таким образом, исходный сигнал разложен на свертку двух трехчленных сигналов (функций). Дифференцирование. Если имеем s(k) « S(z), то z-образ функции ks(k) можно найти, продифференцировав S(z), что бывает полезно для вычисления обратного z-преобразования функций S(z) с полюсами высокого порядка: ks(k) « z dX(z)/dz. 8.4. ОБРАТНОЕ Z-ПРЕОБРАЗОВАНИЕ [43] Методы преобразования. Обратное z-преобразование позволяет восстанавливать дискретную функцию по ее z-образу. Оно широко используется, например, при определении импульсных характеристик рекурсивных цифровых фильтров. В символической форме: x(k) = TZ-1[X(z)]. На практике X(z) в процессе расчетов обычно выражается через отношение двух многочленов от z: X(z) = (b0 + b1 z + b2 z2 + …+ bN zN ) / (a0 + a1 z + a2 z2 + …+ aM zM ) = (8.4.1) = x(0) + x(1)z + x(2)z2 + … (8.4.1') Самые распространенные методы обратного преобразования из этой формы X(z):
Метод разложения в степенной ряд наиболее прост и пригоден для выполнения на компьютерах, но он не дает решения в аналитической форме. При задании большого числа точек обратного преобразования требуется также следить за возможным нарастанием числовых ошибок вследствие рекурсии его алгоритма. Два первых метода позволяют получать результаты в аналитическом виде, но требуют вычисления полюсов функции X(z), что может представлять трудности при высоком порядке функции. При высоких порядках полюсов потребуется также дифференцирование соответствующих порядков. Преобразование интегрированием по контуру относится к числу математически строгих методов. Оно выполняется интегрированием по произвольному замкнутому контуру C, расположенному в области сходимости и окружающему все особые точки (нули и полюсы) z-образа. Интегрирование удобнее выполнять над полюсами, расположенными внутри контура, включающего центр системы координат, т.е. в символике z-1. В этой символике мы и будем рассматривать данных параграф. Контурный интеграл обратного преобразования: sk = (1/2pj) . (8.4.2) Согласно теореме Коши о вычетах, интеграл (8.4.2) равен сумме вычетов (Res) подынтегральной функции относительно всех полюсов этой функции, лежащих внутри контура интегрирования. Каждый вычет связан с определенным полюсом pk: Res[F(z), pk] = [(z-pk) F(z)] при z=pk. (8.4.3) где F(z) = zk-1 S(z), m – порядок полюса в точке pk. Для простого полюса: Res[F(z), pk] = (z-pk) F(z) = (z-pk) zk-1 S(z) при z=pk. (8.4.3') Пример.Z-образ функции: X(z) = z2 / (z-0.5)(z-1)2. x(k) = Res[F(z), p1] + Res[F(z), p2]. F(z) = zk-1 X(z) = zk+1 / (z-0.5)(z-1)2. Функция F(z) имеет простой полюс p1 = 0.5 и полюс второго порядка p2 = 1. Res[F(z), 0.5] = (z-0.5) zk+1 / (z-0.5)(z-1)2 = zk+1 / (z-1)2 |z=0.5 = 0.5 (0.5)k / (0.5)2 = 2(0.5)k. Res[F(z), 1] = [(z-1)2 zk+1 / (z-0.5)(z-1)2] = [(z-0.5)(k+1)zk-zk+1] / (z-0.5)2 |z=1= 2(k-1). Результат: x(k) = 2[(k-1) + (0.5)k]. Преобразование разложением на дроби. В этом методе z-образ (8.4.1) раскладывается на рациональные простые дроби с последующим почленным обратным преобразованием с помощью таблицы. Наиболее просто это выполняется, если функция S(z) может быть разложена по степеням z в символике z-1, т.е. представить в следующем виде: S(z) = s(0) + s(1) z-1+ s(2) z-2 + … Соответственно, в выражении (8.4.1) отношение многочленов также должно быть в символике z-1. Если полюсы S(z) первого порядка и N = M, то (8.4.1) можно разложить на следующую сумму: S(z) = B0 + C1/(1-p1z-1) + C2/(1-p2z-2) + … + CM/(1-pMz-M) = B0 + C1z/(z-p1) + C2z/(z-p2) + … + CMz/(z-pM) = B0 + Ckz/(z-pk). (8.4.4) B0 = bN / aN. где Сk – коэффициенты элементарных дробей, которые являются вычетами функции S(z). Для вычисления коэффициентов Ck умножим левую и правую сторону выражения (8.4.4) на (z-pk)/z и положим z=pk, при этом в правой части за счет множителя (z-pk)=0 при z=pk обнуляются все члены суммы кроме члена с Ck данного полюса, а в левой остается произведение S(z)(z-pk)/z, что и позволяет вычислить значения Ck: Ck = S(z)(z-pk)/z |z=pk (8.4.5) Если в (8.4.1) N < M, то значение B0 равно нулю. Если функция S(z) в точке z=pk имеет полюс m-ного порядка, то коэффициент Ck заменяется суммой коэффициентов: Di /(z-pk)i, (8.4.6) Di = [ X(z) (z-pk)m/z], при z=pk. (8.4.7) Пример.Повторим пример преобразования данным способом z-образа функции X(z) = z2 / (z-0.5)(z-1)2, использованного в предыдущем примере. Функция имеет простой полюс p1 = 0.5 и полюс второго порядка p2 = 1. X(z) = Cz/(z-0.5) + D1z/(z-1) + D2z/(z-1)2. С = z/(z-1)2 = 0.5/(0.5-1)2 = 2. D1 = [(z-1)2 X(z)/z] = [z / (z-0.5)] |z=1= -2. D2 = (z-1)2 X(z)/z = z/(z-0.5) |z=1= 2. X(z) = 2z/(z-0.5) + D1z/(z-1) + D2z/(z-1)2. Обратное преобразование каждой простой дроби выполним по таблице 8.2.1. Результат: x(k) = 2(0.5)k -2 +2k = 2[(k-1) + (0.5)k]. Результат аналогичен методу вычетов. Если z-изображение имеет вид дробно-рациональной функции, то разложение на простые дроби с последующим применением таблицы соответствий обычно труда не представляет. Так, например: S(z) = (b0 + b1 z-1 + b2 z-2) / (1 - a z-1) = b0/(1 - a z-1) + b1 z-1/(1 - a z-1) + b2 z-2/(1 - a z-1). По таблице соответствия: X(z) = 1/(1-az-1) → x(k) = ak. Отсюда, с учетом линейности преобразования и свойства задержки: x(k) = b0 ak + b1 ak-1 + b2 ak-2. При преобразовании функций со знаменателями более высоких порядков предварительно следует найти полюса функции. Например, для многочлена второго порядка с полюсами p1 и p2: S(z) = 1/(1-a1 z-1+a2 z-2) = 1/[(1-p1 z-1)(1-p2 z-1). Представим S(z) в виде суммы дробей с неизвестными коэффициентами b1 и b2: S(z) = b1/(1-p1 z-1)+b2/(1-p2 z-1) = (b1- b1 p2 z-1+b2-b2 p1 z-1)/[(1-p1 z-1)(1-p2 z-1). При равенстве знаменателей в этих двух выражениях должны быть равны и числители: (b1 + b2) – (b1 p2+b2 p1)z-1 = 1, а это обеспечивается равенством коэффициентов при одинаковых степенях z. Отсюда получаем систему уравнений: b1 + b2 = 1. b1 p2+b2 p1 = 0. Решая эту систему уравнений, находим значения коэффициентов b1 и b2, подставляем коэффициенты в S(z), выраженное в виде суммы дробей, и по таблице соответствия переводим дроби во временные функции. Метод степенных рядов. Выражение (8.4.1) можно разложить непосредственно в степенной ряд (8.4.1') путем деления в столбик, для чего числитель и знаменатель функции выражаются предварительно через нарастающий или уменьшающийся показатель степени z. Обратное z-преобразование степенного ряда очевидно. Пример нарастающей степени z.X(z) = (1+2z+z2) / (1-z+0.4z2). 1 + 2z + z2 | 1 – z + 0.4z2 1 – z + 0.4z2 1 + 3z + 3.6z2 + 2.4z3 + 0.96z4 + … Ряд может быть бесконечным. 3z + 0.6z2 3z – 3z2 + 1.2z3 3.6z2 – 1.2z3 3.6z2 – 3.6z3 + 1.44z4 2.4z3 – 1.44z4 2.4z3 – 2.4z4 + 0.96z5 0.96z4 – 0.96z5 0.96z4 – 0.96z5 + 0.384z6, и т.д. Обратное преобразование выполняется путем идентификации коэффициентов степеней при zk с k-отсчетами функции: x(k) = {1, 3, 3.6, 2.4, 0.96, …}. Пример уменьшающихся номеров степени z.X(z) = (1+2z+z2) / (1-z+0.4z2) → (деление на zN числителя и знаменателя полинома) → (z-2+2z-1+1) / (z-2-z-1+0.4). z-2 + 2z-1 + 1 | z-2 – z-1 + 0.4 z-2 – z-1 + 0.4 1 + 3z + 3.6z2 + 2.4z3 + 0.96z4 + … Результат тот же. 3z-1 + 0.6 3z-1 – 3 + 1.2z 3.6 – 1.2z 3.6 – 3.6z + 1.44z2 2.4z – 1.44z2 2.4z – 2.4z2 + 0.96z3 0.96z2 – 0.96z3 0.96z2 – 0.96z3 + 0.384z4, и т.д. Метод деления полинома (8.4.1) можно выполнять рекурсивно: x(0) = b0 / a0, x(1) = (b1 – x(0) a1) / a0, x(2) = (b2 – x(1) a1 – x(0) a2) / a0, … x(n) = (bn – (x(n-i) ai) /a0, n = 1, 2, 3, …
|