Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clc;
- clear;
- T = 5;
- x = 0:.01:T;
- [y] = textread('f6.txt', '%f');
- N = length(y);
- z = double(zeros(size(y)));
- for k = 1:N
- re = 0.0;
- im = 0.0;
- for m = 1:N
- re = re + y(m) * cos(2 * pi * (k - 1) * (m - 1) / N) / N;
- im = im + y(m) * cos(2 * pi * (k - 1) * (m - 1) / N) / N;
- end
- z(k) = sqrt(re^2 + im^2);
- end
- figure
- plot(x, z, 'b')
- title('dft')
- xlabel('x')
- ylabel('|c(x)|')
- grid on
- mx = [];
- eps = 1e-6;
- for k = 2:N/2
- if (z(k) > z(k-1) + eps) && (z(k) > z(k+1) + eps)
- mx(end + 1) = x(k);
- end
- end
- mx
- M = 4 + numel(mx);
- A = zeros(M, M);
- B = zeros(M, 1);
- for k = 1:N
- v = zeros(M);
- t = k / 100;
- v(1) = t^3;
- v(2) = t^2;
- v(3) = t;
- for i = 1:numel(mx)
- v(3 + i) = sin(2 * pi * t * mx(i));
- end
- v(M) = 1.0;
- for i = 1:M
- for j = 1:M
- A(i,j) = A(i,j) + v(i) * v(j);
- end
- B(i) = B(i) + v(i) * y(k);
- end
- end
- a = A^(-1)*B;
- func = zeros(N,1);
- for k = 1:N
- v = zeros(M);
- t = k / 100;
- v(1) = t^3;
- v(2) = t^2;
- v(3) = t;
- for i = 1:numel(mx)
- v(3 + i) = sin(2 * pi * t * mx(i));
- end
- v(M) = 1.0;
- for i = 1:M
- func(k) = func(k) + a(i) * v(i);
- end
- end
- figure
- plot(x, y, 'r', x, func, 'k')
- xlabel('t')
- ylabel('y(t)')
- title('function')
- grid on
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement