
- •1. Моделювання роботи лдс у часовій області
- •1.1. Моделювання роботи лдс на основі різницевого рівняння(рр): функція filter
- •1.2. Розрахунок імпульсної характеристики (іх) за допомогою різницевого рівняння(рр): функція filter
- •1.3. Розрахунок імпульсної характеристики (іх) за допомогою коефіцієнтів різницевого рівняння (рр): функція impz
- •1.4. Моделювання роботи лдс на основі формули згортки: функція conv
- •1.5. Розрахунок імпульсної характеристики (іх) ніх-фільтра за відомими впливом та реакцією: функція deconv
- •1.6. Формування моделі змінних станів: функції tf2ss, zp2ss, ss2tf, ss2zp
- •2. Моделювання роботи лдс в z-області
- •2.1. Представлення передавальної функції в загальному вигляді
- •2.2. Представлення передавальної функції загального вигляду у вигляді добутку простіших множників першої ступені й навпаки: функції tf2zp, zp2tf
- •2.3.Мапа нулів й полюсів: функції zplane
- •2.4. Представлення передавальної функції загального вигляду у вигляді добутку простіших множників другої ступені й навпаки: функції tf2sos, zp2sos, sos2tf, sos2zp
- •2.5. Представлення передавальної функції загального вигляду у вигляді суми простих дробів: функція residuez
- •3. Моделювання роботи лінійної дискретної системи в частотній області
- •3.1. Розрахунок частотних характеристик за коефіцієнтами передавальної функції: функція freqz
- •3.2. Розрахунок ачх й фчх: функції freqz, abs, angle, dbode
- •3.3. Розрахунок групового часу проходження (затримки) (гчп): функція grpdelay
- •Завдання: Список літератури:
1.4. Моделювання роботи лдс на основі формули згортки: функція conv
Моделювання роботи ЛДС на основі рівняння згортки (5) з НПУ виконується за допомогою функції conv, формат якої має вигляд
conv(x,h)
або
conv(h,x)
де
- вектор відліків реакції довжиною
,
- вектор відліків ІХ довжиною
.
В результаті розрахунку
функція conv повертає
вектор реакції довжиною
.
Приклад 4. Розрахувати реакцію СІХ-фільтра, заданого РР (9). ІХ рівна вектору коефіцієнтів РР:
>> b=[0.1 0.5 0.7];
>> h=b;
>> n=0:32;
>> x=sin(0.5.*n);
>> y=conv(h,x);
>> k=length(y);
>> stem(n,x)
>> hold on
>> plot(n,x), grid
>> nc=0:(k-1);
>> stem(nc,y)
>> plot(nc,y,’--’)
>> gtext(‘x(n)’)
>> gtext(‘y(n)’)
Результати обрахунку приведені на Рис. 6 (порівняйте їх із прикладом 1).
Рис.6. Вхідний та вихідний сигнали, розраховані за допомогою формули згортки
Приклад 5. Розрахувати реакцію НІХ-фільтра, заданого РР (10). ІХ розрахована в прикладі 3.
>> b=[1 1 1];
>> a=[1 0.7 -0.25];
>> delta=[1; zeros(50,1)]’;
>> h=filter(b,a,delta);
>> n=0:32;
>> x=sin(0.5.*n);
>> y=conv(x,h);
>> k=length(y);
>> stem(0:(k-1),y),grid
Рис.7. ІХ (до прикладу 5)
1.5. Розрахунок імпульсної характеристики (іх) ніх-фільтра за відомими впливом та реакцією: функція deconv
Функція deconv виконує операцію,
обернену до згортки. Тому, якщо відома
реакція (вектор
)
та вплив (вектор
),
але невідомі вектори коефіцієнтів
,
ІХ можливо знайти за допомогою функції
deconv, що в даному випадку має формат
h=deconv(y,x)
де
- вектори відліків реакції, впливу та
ІХ відповідно. Необхідно пам’ятати, що
розрахунок ІХ за допомогою функції
deconv можливий тільки тоді, коли
перший елемент векторів
не рівний 0!
Приклад 6. Розрахувати ІХ підчас впливу та розрахованій за допомогою conv реакції в прикладі 4.
>> h=deconv(y,x)
??? Error using ==> deconv
First coefficient of A must be non-zero.
В даному випадку розрахунок ІХ за допомогою функції deconv неможливий.
Приклад 7. Розрахувати ІХ підчас
впливу
.
Визначимо реакцію
>> b=[0.1 0.5 0.7];
>> h=b;
>> n=0:32;
>> x=cos(0.5.*n);
>> y=conv(h,x);
та виконаємо обернену процедуру – за відомими векторами розрахуємо ІХ – вектор :
>> h=deconv(y,x)
h = 0.1000 0.5000 0.7000
Отримані дані співпадають з вектором в прикладі 4.
1.6. Формування моделі змінних станів: функції tf2ss, zp2ss, ss2tf, ss2zp
Формування математичної моделі у вигляді змінних станів (6) може бути виконано:
За відомими коефіцієнтами
РР (1) із допомогою функції tf2ss, що має формат
[A,B,C]=tf2ss(b,a);
де
- визначені в (6);
- вектори коефіцієнтів в порядку їх
слідування.
>> b=[1 1 1];
>> a=[1 -0.7 0.25];
>> [A,B,C,D]=tf2ss(b,a);
A =
0.7000 -0.2500
1.0000 0
B =
1
0
C = 1.7000 0.7500
D = 1
Отримана математична модель у вигляді рівнянь змінних станів (6):
Обернена процедура виконується за допомогою функції ss2tf:
>> A=[0.7 -0.25; 1 0];
>> B=[1 0]’;
>> C=[1.7 0.75];
>> D=1;
>> [b,a]=ss2tf(A,B,C,D)
b =
1.0000 1.0000 1.0000
a =
1.0000 -0.7000 0.2500
За нулями й полюсами функції
(векторам
) за допомогою функції zp2ss (розрахунок нулів й полюсів див. далі); обернена процедура виконується із допомогою функції ss2zp; розібратися із даними функціями дуже легко й тому пропонується зробити це самостійно.