w3prog
11/6/2016 - 10:36 AM

8C1 LETI COS.m

8C1 LETI COS.m

script
clc
clear
disp('Лабораторная работа №2. Линейные дискретные системы')
disp('Задание 1C')
disp('Состав бригады :')
disp('* Маняшин Денис')
disp('* Овчинников Сергей')
disp('* Авакян Артем')
disp('* Городилов Евгений')
% БЛОК подчет значений констант
%общие константы
Nb = 1;         % номер бригады (новый)
% Коэффициенты числителя передаточной функции
b0 = 0.5 + 0.02 * Nb;
b1 = b0*(-1)^(Nb+1)*(0.9822 + 0.0178*Nb);
b2 = b0*(0.8 + 0.2*mod(Nb,5));
b = [b0,b1,b2];

% Коэффициенты знаменателя передаточной функции
a0 = 1;
a1 = (-1)^(Nb)*(0.7778+0.025*Nb);
a2 = 0.64 + 0.006*Nb;
a = [a0,a1,a2];

n1 = mod(Nb,10)+20;% Длина ИХ
n2 = mod(Nb,10)+30;% Длина воздействия
fd = 1000 * Nb; % Частота дискретизации
% из задания
ef = 0.001;% точность
N = 1000;  % ДЛИНА ПОСЛЕДОВАТЕЛЬНОСТИ(задана в задании)

% БЛОК вывода значений констант
disp(['Номер бригады = ' num2str(Nb)])
disp(['Коэффициенты знаменателя передаточной функции b0 = '  num2str(b0) ' b1 = ' num2str(b1) ' b2 = ' num2str(b2) ])
disp(['Коэффициенты знаменателя передаточной функции a0 = '  num2str(a0) ' a1 = ' num2str(a1) ' a2 = ' num2str(a2) ])
disp(['длина последовательности = '  num2str(N)])

% Начальное значение n=2 чтобы n-1 нормально считало, но я применил это в коде.
n=2:N-1;
eft = 1;
numberscount = 1;
while(eft>ef && numberscount < N)
    numberscount = numberscount + 1;
    u0 = [1 zeros(1,(numberscount-1))];
    u1 = [1 zeros(1,(numberscount-1-1))];
    h1 = filter(b,a,u0);
    h2 = filter(b,a,u1);
    eft = norm(norm (h1)-norm (h2));
end

disp(['Ответ N1 = '  num2str(numberscount)])
disp('РАБОТА ЗАВЕРШЕНА')
input('Для выхода нажмите <ENTER>');