
Добавил:
PRO100TIT
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:lab5
.m T1 = 0;
T2 = pi;
t = T1: 0.01: T2;
w0 = 2 * pi / (T2 - T1);
T = T2 - T1;
j = sqrt(-1);
a0 = 1 / T * integral(@f, T1, T2);
n = 20;
for i = 1: 1: n+1
cosn = @(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2) .* cos((i) * t * w0);
sinn = @(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2) .* sin((i) * t * w0);
a(i) = 2 / T * integral(cosn, T1, T2);
b(i) = 2 / T * integral(sinn, T1, T2);
end
F = a0;
for i = 1: 1: n
An(i) = sqrt(a(i)^2 + b(i)^2);
if (a(i) >=0)
fin(i) = -atan(b(i) / a(i));
else
fin(i) = -atan(b(i)/a(i)) + pi;
end
F = F + An(i) * cos(i * w0 * t + fin(i));
end
for i = 1: 1: n
FnMod(i) = An(i)/2;
Fn(i) = 1/T * integral(@(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2).*exp(-j*i*w0*t), T1, T2);
end
for i = 1: 1: 2 * n +1
if(i<21)
finLong(i) = -fin(0 - (i - 1 - n));
FnModLong(i) = FnMod(0 - (i - 1 - n));
FnLong(i) = Fn(0 - (i - 1 - n));
elseif(i>21)
finLong(i) = fin(i - n - 1);
FnModLong(i) = FnMod(i - n - 1);
FnLong(i) = Fn(i - n - 1);
else
finLong(i) = 0;
FnModLong(i) = a0;
FnLong(i) = a0;
end
end
figure(1);
stem(0, a0, '-b');
hold on;
stem(1: 1: n, An, '-b');
hold on;
stem(-20: 1: 20, FnModLong, '-.r', 'LineWidth', 1);
hold on;
grid on;
figure(2);
stem(-20 :1 : 20, finLong);
hold on;
grid on;
figure(3);
hold on;
grid on;
hold on;
ff = a0;
for i = 1: 1: 20
ff = ff + 2 * Fn(i) * exp(j * w0 * i * t);
end
ex = a0^2;
for i = 1: 1: n
an = An(i);
ex = ex + (an^2) / 2;
end
es = sqrt((1 - ex / (1/T * integral(@f2, T1, T2))).^2);
plot(t, f(t), 'y','LineWidth', 3);
hold on;
plot(t, ff, ':b','LineWidth', 3);
hold on;
legend('Сигнал', 'Восстановленный сигнал');
figure(4);
plot(t, f(t) - ff);
hold on;
e0 = max(abs(real(f(t) - ff)));
plot([T1 T2], [e0 e0], '--g');
hold on;
plot([T1 T2], [es es], '--b');
hold on;
legend('Эмпирическая погрешность', 'Максимум эмпирической погрешности', 'СКВ погрешность');
function y = f(t)
y = -1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2;
end
function y = f2(t)
y = (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2).^2;
end
T2 = pi;
t = T1: 0.01: T2;
w0 = 2 * pi / (T2 - T1);
T = T2 - T1;
j = sqrt(-1);
a0 = 1 / T * integral(@f, T1, T2);
n = 20;
for i = 1: 1: n+1
cosn = @(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2) .* cos((i) * t * w0);
sinn = @(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2) .* sin((i) * t * w0);
a(i) = 2 / T * integral(cosn, T1, T2);
b(i) = 2 / T * integral(sinn, T1, T2);
end
F = a0;
for i = 1: 1: n
An(i) = sqrt(a(i)^2 + b(i)^2);
if (a(i) >=0)
fin(i) = -atan(b(i) / a(i));
else
fin(i) = -atan(b(i)/a(i)) + pi;
end
F = F + An(i) * cos(i * w0 * t + fin(i));
end
for i = 1: 1: n
FnMod(i) = An(i)/2;
Fn(i) = 1/T * integral(@(t) (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2).*exp(-j*i*w0*t), T1, T2);
end
for i = 1: 1: 2 * n +1
if(i<21)
finLong(i) = -fin(0 - (i - 1 - n));
FnModLong(i) = FnMod(0 - (i - 1 - n));
FnLong(i) = Fn(0 - (i - 1 - n));
elseif(i>21)
finLong(i) = fin(i - n - 1);
FnModLong(i) = FnMod(i - n - 1);
FnLong(i) = Fn(i - n - 1);
else
finLong(i) = 0;
FnModLong(i) = a0;
FnLong(i) = a0;
end
end
figure(1);
stem(0, a0, '-b');
hold on;
stem(1: 1: n, An, '-b');
hold on;
stem(-20: 1: 20, FnModLong, '-.r', 'LineWidth', 1);
hold on;
grid on;
figure(2);
stem(-20 :1 : 20, finLong);
hold on;
grid on;
figure(3);
hold on;
grid on;
hold on;
ff = a0;
for i = 1: 1: 20
ff = ff + 2 * Fn(i) * exp(j * w0 * i * t);
end
ex = a0^2;
for i = 1: 1: n
an = An(i);
ex = ex + (an^2) / 2;
end
es = sqrt((1 - ex / (1/T * integral(@f2, T1, T2))).^2);
plot(t, f(t), 'y','LineWidth', 3);
hold on;
plot(t, ff, ':b','LineWidth', 3);
hold on;
legend('Сигнал', 'Восстановленный сигнал');
figure(4);
plot(t, f(t) - ff);
hold on;
e0 = max(abs(real(f(t) - ff)));
plot([T1 T2], [e0 e0], '--g');
hold on;
plot([T1 T2], [es es], '--b');
hold on;
legend('Эмпирическая погрешность', 'Максимум эмпирической погрешности', 'СКВ погрешность');
function y = f(t)
y = -1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2;
end
function y = f2(t)
y = (-1+5*sin(2*t+90)-3*cos(4*t+10)+0.09*t.^2).^2;
end
Соседние файлы в предмете Преобразование измерительных сигналов