Files
2022-06-30 13:32:40 +02:00

84 lines
2.5 KiB
Matlab
Executable File

% ##################################################################################
% ## Loesung: Impuls-, Sprungantworten, Frequenzgang ##
% ##################################################################################
% ##### Teilaufgabe a: Bestimmung der Impulsantwort #####
x = zeros(111,1);
x(11) = 1;
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
y = filter(b,a,x);
k=[-10:100]';
figure; stem(k,y); axis([-10 100 -1 5]); grid; xlabel('k');
ylabel('Amplitude'); title('Impulsantwort');
% ##### Teilaufgabe b: Bestimmung der Sprungantwort #####
x = [zeros(10,1) ; ones(101,1)];
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
y = filter(b,a,x);
k=[-10:100]';
figure; stem(k,y); axis([-10 100 0 40]); grid; xlabel('k');
ylabel('Amplitude'); title('Sprungantwort');
% ##### Teilaufgabe c: Erste Differenz der Sprungfunktion #####
d = zeros(111,1);
d(11) = 1;
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
h = filter(b,a,d);
s = [zeros(10,1) ; ones(101,1)];
g = filter(b,a,s);
h2 = diff(g,1);
k = [-10:100]';
figure; stem(k(2:length(k)),h2); grid; xlabel('k'); ylabel('Amplitude');
title('Erste Differenz der Sprungantwort'); axis([-10 100 -1 5]);
disp('Zum Fortfahren: Druecken Sie eine beliebige Taste...'); pause;
% ##### Teilaufgabe d: Ausgangssignal #####
x = exp(j*[1:100]*(pi/3));
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
y = filter(b,a,x);
figure; plot(real(y)); grid; xlabel('k'); title('Realteil');
figure; plot(imag(y)); grid; xlabel('k'); title('Imaginaerteil');
% ##### Teilaufgabe e: Uebertragungsfunktionen von LTI Systemen #####
% ### 2:
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
[H w] = freqz(b,a,128);
figure; semilogy(w/pi,abs(H)); grid; xlabel('Omega/pi');
ylabel('| H(exp(j*Omega)) |');
figure; plot(w/pi,angle(H)); grid; xlabel('Omega/pi');
ylabel('b(Omega)');
% ### 3:
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
[H w] = freqz(b,a,128,'whole');
figure; semilogy(w/pi,abs(H)); grid; xlabel('Omega/pi');
ylabel('| H(exp(j*Omega)) |');
figure; plot(w/pi,angle(H)); grid; xlabel('Omega/pi');
ylabel('b(Omega)');
% ##### Teilaufgabe f: Pol-Nullstellen-Berechnung #####
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
Nullstellen = roots(b);
Polstellen = roots(a);
% ##### Teilaufgabe h: Pol-Nullstellen-Diagramm #####
b = [1 0.5];
a = [1 -(1.8*cos(pi/16)) 0.81];
figure; zplane(b,a);title('Pol-Nullstellen-Diagramm');
xlabel('Realteil'); ylabel('Imaginaerteil');
% ##### EOF #####