% Skript impuls_antwort_1.m, in dem die Impulsantwort
% einer RLC-Reihenschaltung mit dem Modell 
% impuls_antwort1.slx untersucht wird

clear;
% -------- Parameter der Schaltung
R = 50;          L = 0.01;      C = 0.1e-6;
f0 = sqrt(1/(L*C))/(2*pi);   % Resonantfrequenz
% -------- Aufruf der Simulation mit Modell impuls_antwort1.slx
Tsim = 0.005;
options = simset('Solver','ode45','MaxStep', (1/f0)/50);
sim('impuls_antwort1', [0, Tsim], options);
uc = simout.data(:,1);
i =  simout.data(:,2);
uc_puls = simout1.data(:,1);
i_puls =  simout1.data(:,2);
t = simout.time;

figure(1);     clf;
subplot(211), plot(t, uc);
title(['Impulsantwort für die Spannung des Kondensators']);
xlabel('Zeit in s');        grid on;
subplot(212), plot(t, i);
title(['Impulsantwort für die Strom']);
xlabel('Zeit in s');        grid on;

figure(2);     clf;
subplot(211), plot(t, uc);
title(['Angenäherte Impulsantwort für Spannung uc']);
xlabel('Zeit in s');        grid on;
subplot(212), plot(t, i);
title(['Angenäherte Impulsantwort für Strom i']);
xlabel('Zeit in s');        grid on;

% -------- Komplexer Frequenzgang (Übertragungsfunktion)
% Annäherung der FT der Impulsantwort
h = uc_puls;      % oder h = uc;
nfft = 128;
Ts = Tsim/nfft;   % Schrittweite für die Diskretisierung
hi = interp1(t,h,(0:nfft-1)*Ts); % Diskretisierung der Impulsantwort
Hi = Ts*fft(hi);      nh = length(Hi);  %FT Annäherung
% Korrekte übertragungsfunktion
b = 1;     a = [L*C, R*C, 1];
[H,w] = freqs(b, a, (0:nfft-1)*2*pi/(nfft*Ts));

figure(3);     clf;
subplot(211), plot(w/(2*pi),abs(H), (0:nh-1)/(Ts*nh),abs(Hi));
title('Amplitudengang und Betrag der FFT*Ts der Impulsantwort');
xlabel('Hz');     grid on;     La = axis;
axis([0, 1/Ts, -1, La(4)]);
subplot(212), plot(w/(2*pi),angle(H), (0:nh-1)/(Ts*nh),angle(Hi));
title('Phasengang und Winkel der FFT der Impulsantwort');
xlabel('Hz');     grid on;     La = axis;
axis([0, 1/Ts, La(3:4)]);



