Untitled
unknown
plain_text
2 years ago
6.7 kB
5
Indexable
% БОЯН ГАНДОВ ИКИ 2-РИ КУРС Ф.Н. 2213811088 % ЗАДАНИЕ 4 % ЗАДАЧА 1 syms t; % задаване на символна променлива t - време t0 = 0; % Начало на периода T = 1.8; % Период на x x = 8 * exp(0.4 * t + 0.45); % функция x figure(1) ezplot(x, [t0 t0 + T]); % ЗАДАЧА 2 w0 = 2 * pi / T; % Изчисляване на базовата честота N = 31; % броят на коефициентите е 2*N+1 for k = -N:N a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); % изчисляване на уравнение (2) ex(k + N + 1) = exp(1j * k * w0 * t); % изчисляване на експонента end % на уравнение (3) xx = sum(a .* ex); % изчисляване на уравнение (3) - апроксимация на функция figure(2) ezplot(xx, [t0 t0 + T]); grid title('Approximation with 31 terms') % ЗАДАЧА 3 % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала t = linspace(t0, t0 + 3 * T, 1000); % времева ос % инициализация на променливи w0 = 2 * pi / T; N = 31; % символни променливи syms x t % изчисление на коефициентите for k = -N:N x = 8 * exp(0.4 * t + 0.45); a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); ex(k + N + 1) = exp(1j * k * w0 * t); end % апроксимация на функцията xx = sum(a .* ex); % визуализация на резултата figure(3); ezplot(xx, [t0 t0 + 3 * T]); grid on; title('Апроксимация на 3 периода на x с (2*N+1) '); xlabel('Време'); ylabel('x_N(t)'); % ЗАДАЧА 4 % Първа част - Визуализация на модула на коефициентите % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала w0 = 2 * pi / T; % основна честота N = 31; % символична променлива и времева променлива syms x t % изчисление на коефициентите x = 8 * exp(0.4 * t + 0.45); a = (1 / T) * int(x * exp(-1j * (N:-1:-N) * w0 * t), t, t0, t0 + T); % визуализация на модула на коефициентите figure(4); stem(-N:N, abs(a), 'LineWidth', 1.5, 'Marker', 'o'); grid on; title('Модул на коефициентите a_k'); xlabel('k'); ylabel('|a_k|'); % Втора част - Визуализация на фазата на коефициентите figure(5); stem(-N:N, angle(a), 'LineWidth', 1.5, 'Marker', 'o'); grid on; title('Фаза на коефициентите a_k'); xlabel('k'); ylabel('Фаза(a_k)'); % ЗАДАЧА 5 % Стойност N=31 с един период % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала t = linspace(t0, t0 + 3 * T, 1000); % времева ос % инициализация на променливи w0 = 2 * pi / T; N = 31; % символни променливи syms x t % изчисление на коефициентите for k = -N:N x = 8 * exp(0.4 * t + 0.45); a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); ex(k + N + 1) = exp(1j * k * w0 * t); end % апроксимация на функцията xx = sum(a .* ex); % визуализация на резултата figure(6); ezplot(xx, [t0 t0 + T]); grid on; title('Апроксимация на 3 периода на x с (2*N+1)'); xlabel('Време'); ylabel('x_N(t)'); % Стойност N=31 с три периода % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала t = linspace(t0, t0 + 3 * T, 1000); % времева ос % инициализация на променливи w0 = 2 * pi / T; N = 31; % символни променливи syms x t % изчисление на коефициентите for k = -N:N x = 8 * exp(0.4 * t + 0.45); a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); ex(k + N + 1) = exp(1j * k * w0 * t); end % апроксимация на функцията xx = sum(a .* ex); % визуализация на резултата figure(7); ezplot(xx, [t0 t0 + 3 * T]); grid on; title('Апроксимация на 3 периода на x с (2*N+1)'); xlabel('Време'); ylabel('x_N(t)'); % Стойност N=60 с един период % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала t = linspace(t0, t0 + 3 * T, 1000); % времева ос % инициализация на променливи w0 = 2 * pi / T; N = 60; % символни променливи syms x t % изчисление на коефициентите for k = -N:N x = 8 * exp(0.4 * t + 0.45); a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); ex(k + N + 1) = exp(1j * k * w0 * t); end % апроксимация на функцията xx = sum(a .* ex); % визуализация на резултата figure(8); ezplot(xx, [t0 t0 + T]); grid on; title('Апроксимация на 3 периода на x с (2*N+1)'); xlabel('Време'); ylabel('x_N(t)'); % Стойност N=60 с три периода % параметри на функцията T = 1.8; % период t0 = 0; % Начало на интервала t = linspace(t0, t0 + 3 * T, 1000); % времева ос % инициализация на променливи w0 = 2 * pi / T; N = 60; % символни променливи syms x t % изчисление на коефициентите for k = -N:N x = 8 * exp(0.4 * t + 0.45); a(k + N + 1) = (1 / T) * int(x * exp(-1j * k * w0 * t), t, t0, t0 + T); ex(k + N + 1) = exp(1j * k * w0 * t); end % апроксимация на функцията xx = sum(a .* ex); % визуализация на резултата figure(9); ezplot(xx, [t0 t0 + 3 * T]); grid on; title('Апроксимация на 3 периода на x с (2*N+1)'); xlabel('Време'); ylabel('x_N(t)');
Editor is loading...
Leave a Comment