Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Начала прогаммирования в среде MatLab / Начала программирования в среде MatLab.pdf
Скачиваний:
254
Добавлен:
02.05.2014
Размер:
5.66 Mб
Скачать

5.4. Проектирование фильтров

223

 

 

 

Группа функций xcorr вычисляет оценку Взаимной Корреляционной Функции (ВКФ) двух последовательностей x и y. Обращение c = xcorr(x,y) вычисляет и выдает вектор c длины 2N-1 значений ВКФ векторов x и y длины N. Обращение c = xcorr(x) позволяет вычислить АКФ (автокорреляционную функцию) последовательности, заданной в векторе x.

Вычислим АКФ для случайного процесса, сформированного ранее:

R=xcorr(y1);

tau= -10+Ts : Ts : 10;

lt=length(tau );

s1r=round(length(R )/2)-lt/2;

s2r=round(length(R )/2)+lt/2-1;

plot(tau,R(s1r:s2r)),grid

 

 

set(gca, 'FontName', 'Arial Cyr', 'FontSize', 16)

title('АКФ случайного процесса') , xlabel('Запаздывание (с)')

На рис. 5.43 представлен результат применения процедуры xcorr.

5.4. Проектирование фильтров

5.4.1. Формы представления фильтров и их преобразования

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

в форме рациональной передаточной функции (tf - представление); если звено является непрерывным (аналоговым), то оно описывается непрерывной передаточной функцией

W (s) =

b(s)

=

b(1) sm + b(2) sm1

+... + b(m +1)

,

(5.34)

a(s)

a(1) sn + a(2) sn1

+... + a(n +1)

 

 

 

 

а в случае дискретного фильтра последний может быть представлен дискретной передаточной функцией вида

W (z) =

b(z)

=

b(1) + b(2) z 1 +... + b(m +1)

z m

;

(5.35)

a(z)

a(1) + a(2) z 1 +... + a(n +1)

z n

 

 

 

 

в обоих случаях для задания звена достаточно задать два вектора - вектор b коэффициентов числителя и а - знаменателя передаточной функции;

в виде разложения передаточной функции на простые дроби; в случае простых корней такое разложение имеет вид (для дискретной передаточ-

ной функции):

b(z)

=

 

r(1)

+... +

 

r(n)

+ k(1) + k(2) z 1 +...

a(z)

1p(1) z 1

1p(n) z 1

 

 

(5.36)

... + k(m n +1) z (mn) ;

в этой форме звено описывается тремя векторами: вектором-столбцом r вычетов передаточной функции, вектором столбцом p полюсов и векто- ром-строкой k коэффициентов целой части дробно-рациональной функции;

5.4. Проектирование фильтров

224

 

 

 

в каскадной форме (sos - представление), когда передаточная функция звена представлена в виде произведения передаточных функций не выше второго порядка:

L

 

L b +b

z1 +b

 

z2

 

H (z) = H

k

(z) =

ok

1k

2k

 

;

 

+ a

 

z2

k=1

k=1 a

ok

z1 + a

2k

 

 

 

 

 

1k

 

 

 

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

bo1b11b21ao1a11a21

sos = bo2b12b22ao2a12a22 ;

..................

boLb1Lb2L aoL a1L a2L

(5.37)

sos, содер-

(5.38)

в пространстве состояний (ss -представление), т. е. с помощью уравнений звена в форме

x = A x + B u

 

 

&

;

(5.39)

y = C x + D u

в этой форме звено задается совокупностью четырех матриц A,B,C и D;

путем задания векторов z нулей передаточной функции, p - ее полюсов и k - коэффициента передачи звена (zp - представление):

W (s) = k

[s z(1)]

[s z(2)] [s z(m)]

 

;

(5.40)

[s p(1)]

[s p(2)] [s p(n)]

 

 

 

решетчатое latc-представление; в этом случае решетчатый фильтр задается векторами k коэффициентов знаменателя решетчатого дискретного фильтра и v - коэффициентов его числителя; коэффициенты k решетчатого представления некоторого полинома с коэффициентами, представленными вектором а, определяются по этому вектору с помощью рекурсивного алгоритма Левинсона.

Пакет SIGNAL предоставляет пользователю ряд процедур, позволяющих преобразовать звено (фильтр) из одной формы в другую.

Процедуры преобразования к tf-форме

1. Процедура zp2tf осуществляет вычисления векторов b коэффициентов числителя и a знаменателя передаточной функции в форме (5.34) по известным векторам z ее нулей, p - ее полюсов и k - коэффициенту усиления звена. Обращение к процедуре имеет вид:

[ b, a] = zp2tf( z, p, k).

В общем случае многомерного звена величина z является матрицей, число столбцов которой должно быть равно числу выходов. Вектор-столбец k содержит коэффициенты усиления по всем выходам звена. В векторе a выдаются вычисленные коэффициенты знаменателя, а матрица b содержит коэффициенты

5.4. Проектирование фильтров

225

 

 

 

числителей. При этом каждая строка матрицы соответствует коэффициентам числителя для отдельной выходной величины.

2.Процедура ss2tf преобразовывает описание звена (системы) из пространства состояний в форму передаточной функции. Обращение к ней вида

[ b, a] = ss2tf ( A, B, C, D, iu)

позволяет найти коэффициенты числителей (b) и знаменателя (а) передаточных функций системы по всем выходным величинам и по входу с номером "iu", если заданы матрицы A, B, C, D описания системы в виде (5.39).

3.Процедура sos2tf позволяет найти передаточную функцию звена по заданным параметрам каскадной формы. Для этого надо обратиться к этой процедуре таким образом:

[ b, a] = sos2tf ( sos),

где sos - заданная матрица каскадной формы (5.38).

4.С помощью процедуры latc2tf можно вычислить коэффициенты числителя и знаменателя передаточной функции (5.35) по коэффициентам знаменателя и числителя решетчатого фильтра. При этом обращение к ней должно иметь один из видов:

[ b, a] = latc2tf( k, v) [ b, a] = latc2tf( k, 'iir') b = latc2tf( k, 'fir')

b = latc2tf( k).

Первый вид используется, если заданы коэффициенты решетчатого представления и числителя v и знаменателя k БИХ-фильтра (фильтра с Бесконечной Импульсной Характеристикой).

Вторая форма - если решетчатый БИХ-фильтр имеет только полюсы. Третья и четвертая формы применяются для вычисления коэффициентов

передаточной функции решетчатого КИХ-фильтра (с Конечной Импульсной Характеристикой).

5.Нахождение коэффициентов передаточной функции по коэффициентам разложения ее на простые дроби (5.36) осуществляется использованием функций residue и residuez. Первая применяется для непрерывной передаточной функции вида (5.34), вторая - для дискретной передаточной функции (5.35). При обращении вида

[ b, a] = residue( r, p, k) [ b, a] = residuez( r, p, k)

вычисляются коэффициенты числителя и знаменателя передаточной функции по заданным векторам ее разложения - вычетов r, полюсов p и коэффициентам целой части k.

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

При этом обращение к ним должно быть таковым: [ r, p, k] = residue(b, a)

[ r, p, k] = residuez( b, a).

5.4. Проектирование фильтров

226

 

 

 

Процедуры перехода от tf - формы к другим

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

[ z, p, k] = tf2zp(b, a).

При этом вектор z будет содержать значения нулей передаточной функции с коэффициентами числителя b и знаменателя а, вектор p - значения полюсов, а k будет равен коэффициенту усиления звена.

2.Нахождение матриц A, B, C и D, описывающих звено с заданной передаточной функцией в виде совокупности дифференциальных уравнений в форме Коши (5.39), осуществимо с помощью процедуры tf2ss. Если обратиться к ней в форме

[A, B, C, D] = tf2ss( b, a),

где b и a - соответственно векторы коэффициентов числителя и знаменателя передаточной функции, то в результате получим искомые матрицы в указанном порядке.

3.Вычисление коэффициентов решетчатого фильтра по заданной дис-

кретной передаточной функции можно осуществить при помощи процедуры tf2latc, обращаясь к ней так:

[ k, v] = tf2latc( b, a) [ k, v] = tf2latc( 1, a) k = tf2latc( 1, a)

k = tf2latc( b).

Первое обращение позволяет вычислить коэффициенты k знаменателя и v - числителя решетчатого БИХ-фильтра (модель авторегрессии скользящего среднего). Обращение во второй форме дает возможность определить вектор коэффициентов знаменателя k и скалярный коэффициент v, когда БИХ-фильтр имеет только полюсы (не имеет нулей). В третьей форме определяются только коэффициенты знаменателя решетчатого фильтра. Наконец, четвертая форма предназначена для нахождения вектора k коэффициентов решетчатого КИХ-фильтра (задаваемого только вектором b коэффициентов числителя передаточной функции).

Другие преобразования 1. Вычисление коэффициентов решетчатого представления по коэффици-

ентам полинома можно осуществить, используя функцию poly2rc. Обращение k = poly2rc( а)

позволяет найти коэффициенты решетчатого представления k по коэффициентам а заданного полинома. Вектор а должен содержать только вещественные элементы и должно выполняться условие a 0 . Размер вектора k на единицу меньше размера вектора а коэффициентов полинома.

По коэффициентам решетчатого представления очень просто определить, находятся ли все полюсы внутри единичного круга. Для этого достаточно прове-