Главная страница

Учебное пособие для студентов высших учебных заведений


Скачать 5.41 Mb.
НазваниеУчебное пособие для студентов высших учебных заведений
Дата10.03.2022
Размер5.41 Mb.
Формат файлаpdf
Имя файлаmatlab.pdf
ТипУчебное пособие
#390741
страница25 из 44
1   ...   21   22   23   24   25   26   27   28   ...   44
xlabel('Время (с)'); ylabel('X1(t)');
Теперь создадим формирующий фильтр, "пропустим" через него белый шум и результат выведем на рис. 5.37:
% Расчет параметров формирующего фильтра
om0=2*pi; dz=0.05; A=1;
oms=om0*Ts;
a(1)= 1+2*dz*oms+oms^2; a(2)= - 2*(1+dz*oms); a(3)=1;
b(1)=A*2*dz*oms^2;
% Формирование "профильтрованного" процесса
y1=filter(b,a,x1);
% Построение графика процесса
plot(t,y1),grid, set(gca,'FontName','Arial Cyr','FontSize',16)
title('Процесс на выходе фильтра (T0=1; dz=0.05, Ts= 0.01)');
xlabel('Время (с)'); ylabel('Y1(t)')
Вычислим Фурье-изображение (ФИ) для процесса-шума с учетом замеча- ния, сделанного для установившихся процессов и построим на рис. 5.38 графики модуля ФИ и спектральной плотности мощности (СПМ):
Рис. 5.36

5.3. Спектральный и статистический анализ
219
Рис. 5.37
Рис.5.38
% Формирование массива частот
df = 1/T; Fmax = 1/Ts; f = - Fmax/2 : df : Fmax/2; dovg = length(f);
% Расчет скорректированных массивов Фурье-изображений
Fu1 = fft(x1)/dovg; Fu2 = fft(y1)/dovg; Fu1p = fftshift(Fu1); Fu2p = fftshift(Fu2);
% Формирование массивов модулей ФИ
A1 = abs(Fu1p); A2 = abs(Fu2p);
% Вычисление Спектральных Плотностей Мощности
S1 = Fu1p.*conj(Fu1p)*dovg; S2 = Fu2p.*conj(Fu2p)*dovg;
% Вывод графиков белого шума
subplot(2,1,1); stem(f,A1),grid,
set(gca,'FontName','Arial Cyr','FontSize',10)
title('Модуль ФИ гауссового белого шума');

5.3. Спектральный и статистический анализ
220
subplot(2,1,2); stem(f,S1),grid,
set(gca,'FontName','Arial Cyr','FontSize',10)
title('Спектральная плотность мощности');
xlabel('Частота (Гц)');
Рассматривая рис. 5.38, можно убедиться, что спектральная плотность прак- тически одинакова по величине во всем диапазоне частот, чем и обусловлено на- звание процесса - "белый шум".
Аналогичную процедуру проведем и с "профильтрованным" процессом
(рис. 5.39):
Рис. 5.39
Рис. 5.40.
% Вывод графиков профильтрованного процесса
c1 = fix(dovg/2)-200, c2 = fix(dovg/2)+200, length(f)
subplot(2,1,1); stem(f(c1:c2),A2(c1:c2)),grid,
set(gca,'FontName','Arial Cyr','FontSize',16)
title('Модуль ФИ случайного стационарного процесса');
subplot(2,1,2); stem(f(c1:c2),S2(c1:c2)),grid,
set(gca,'FontName','Arial Cyr','FontSize',16)

5.3. Спектральный и статистический анализ
221
title('Спектральная плотность мощности'); xlabel('Частота (Гц)');
Проводя эти вычисления еще раз с новой длительностью процесса T=20 c
(см. рис. 5.40), можно наглядно убедиться, что величины ФИ и СПМ практически при этом не изменяются.
5.3.3. Статистический анализ
К задачам статистического анализа процессов относятся определение неко- торых статистических характеристик процессов, таких, как корреляционные ха- рактеристики, спектральные плотности мощности и т. д.
В предыдущем разделе уже были определены СП случайного процесса на основе установленной связи СП с Фурье-изображением. Однако в Signal
Processing Toolbox предусмотрена специальная процедура
psd
, позволяющая сразу находить СП сигнала. Обращение к ней имеет вид
[S,f] =
psd
(x, nfft, Fmax), где
x
- вектор заданных значений процесса,
- число элементов вектора
nfft
x
, ко- торые обрабатываются процедурой
fft
,
F
Ts
max
= 1
- значение частоты дискрети- зации сигналу, S - вектор значений СП сигнала,
f
- вектор значений частот, ко- торым соответствуют найденные значения СП. В общем случае длина последних двух векторов равна nfft / 2.
Приведем пример применения процедуры
psd
для нахождения СП преды- дущего случайного процесса:
[C,f] = psd(y1,dovg,Fmax);
stem(f(1:200),C(1:200)),grid,
set(gca,'FontName','Arial Cyr','FontSize',16)
title(' Cпектральная плотность мощности');
xlabel('Частота (Гц)');
В результате получим картину, представленную на рис. 5.41
Рис. 5.41
Если ту же процедуру вызвать без указания выходных величин, то результа- том ее выполнения станет выведение графика СП от частоты.

5.3. Спектральный и статистический анализ
222
Рис. 5.42
Например, обращение
psd(y1, dovg, Fmax)
приведет к построению в графическом окне (фигуре) графика рис. 5.42. При этом значения СП будут откладываться в логарифмическом масштабе в децибелах.
Рис. 5.43

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 - представление); если звено является непрерывным (аналоговым), то оно описывается непре- рывной передаточной функцией
)
1
(
)
2
(
)
1
(
)
1
(
)
2
(
)
1
(
)
(
)
(
)
(
1 1
+
+
+

+

+
+
+

+

=
=


n
a
s
a
s
a
m
b
s
b
s
b
s
a
s
b
s
W
n
n
m
m
,
(5.34) а в случае дискретного фильтра последний может быть представлен дис- кретной передаточной функцией вида
n
m
z
n
a
z
a
a
z
m
b
z
b
b
z
a
z
b
z
W





+
+
+

+

+
+
+

+
=
=
)
1
(
)
2
(
)
1
(
)
1
(
)
2
(
)
1
(
)
(
)
(
)
(
1 1
; (5.35) в обоих случаях для задания звена достаточно задать два вектора - вектор
b
коэффициентов числителя и
а
- знаменателя передаточной функции;
„ в виде разложения передаточной функции на простые дроби; в случае простых корней такое разложение имеет вид (для дискретной передаточ- ной функции):
;
)
1
(
)
2
(
)
1
(
)
(
1
)
(
)
1
(
1
)
1
(
)
(
)
(
)
(
1 1
1
n
m
z
n
m
k
z
k
k
z
n
p
n
r
z
p
r
z
a
z
b






+

+
+

+
+


+
+


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

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


=




=

+

+

+

+
=
=
L
k
k
k
ok
k
k
ok
L
k
k
z
a
z
a
a
z
b
z
b
b
z
H
z
H
1 2
2 1
1 2
2 1
1 1
)
(
)
(
; (5.37) параметры каскадного представления задаются в виде матрицы sos, содер- жащей вещественные коэффициенты:












=
L
L
oL
L
L
oL
o
o
o
o
a
a
a
b
b
b
a
a
a
b
b
b
a
a
a
b
b
b
sos
2 1
2 1
22 12 2
22 12 2
21 11 1
21 11 1
; (5.38)
„ в пространстве состояний (ss -представление), т. е. с помощью уравнений звена в форме
u
D
x
C
y
u
B
x
A
x

+

=

+

=
&
; (5.39) в этой форме звено задается совокупностью четырех матриц A,B,C и D;
„ путем задания векторов z нулей передаточной функции, p - ее полюсов и
k
- коэффициента передачи звена (zp - представление):
)]
(
[
)]
2
(
[
)]
1
(
[
)]
(
[
)]
2
(
[
)]
1
(
[
)
(
n
p
s
p
s
p
s
m
z
s
z
s
z
s
k
s
W

⋅⋅





⋅⋅




=
; (5.40)
„ решетчатое 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 по коэффициентам
а заданного полинома. Вектор а должен содержать только вещественные элемен- ты и должно выполняться условие
0

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

5.4. Проектирование фильтров
227
рить, что все элементы вектора k по абсолютной величине не превышают едини- цы.
Обратная задача вычисления коэффициентов полинома по коэффициентам
решетчатого представления решается путем применения функции rc2poly:
a = rc2poly(k).
2. Процедура sos2ss определяет матрицы (5.39) A, B. C и D, описывающие
звено в пространстве состояний, по заданной матрице SOS каскадной формы
(5.38):
[A,B,C,D] = sos2ss (SOS).
Элементы матрицы SOS должны быть вещественными.
Обратный переход осуществляется при помощи функции ss2sos
SOS = ss2sos(A,B,C,D).
3. Функция sos2zp дает возможность определить (5.40) векторы z нулей, p -
полюсов и коэффициент усиления k звена, заданного каскадной формой переда- точной функции (т. е. матрицей SOS (5.38)):
[z,p,k] =
1   ...   21   22   23   24   25   26   27   28   ...   44


написать администратору сайта