Скачиваний:
4
Добавлен:
10.01.2025
Размер:
2 Кб
Скачать
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
Соседние файлы в предмете Преобразование измерительных сигналов