import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import warnings
# Ignore all warnings
warnings.simplefilter('ignore')
Bestimme die Transformation in den Bildbereich durch Auswertung der Definitionsgleichung der Z-Transformation.
- $f_n = \mathrm{e}^{an}$
- $f_n = \sin(\omega_0 n)$
- $f_n = \{1, -1, 1, -1, \ldots \}$
Lösungen¶
# e^(an) -> über unendl. geometrische Reihe -> z/(z-e^a) mit |z| > e^a
a = 0.05
n = np.arange(11)
f = np.exp(a*n)
z = np.linspace(np.exp(a)+0.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(z, z/(z-np.exp(a)))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = \mathrm{e}^{an}$')
plt.show()
# sin(w_0 n) -> Darstellung mit komplexen e-Funktion -> umformen -> z sin(w_0)/(z^2 - 2z cos(w_0) +1) mit |z| > 1
w0 = 1.25
n = np.arange(11)
f = np.sin(w0*n)
z = np.linspace(1.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(z, z*np.sin(w0)/(z**2 - 2*z*np.cos(w0) + 1))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = \sin(\omega_0 n)$')
plt.show()
# alternierende Folge (-1)^n\sigma(n) -> Anwendung Z-Transformation -> z/(z+1)
n = np.arange(11)
f = (-1)**(n)
z = np.linspace(1.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(z, z/(z+1))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = (-1)^n$')
plt.show()
Bestimme die Transformation in den Bildbereich durch Anwendung der Transformationssätze und der Korrespondenztabellen.
- $f_{n+k} = \mathrm{e}^{a(n+k)}$
- $f_{n} = \mathrm{e}^{an}\sin(\omega_0 n + \varphi)$
- $f_n = n^2 \sigma_n$
Lösung¶
# e^[a(n+k)} - > Verschiebung nach links -> ze^[ak]/(z-e^[a])
a = 0.05
k = 5
n = np.arange(11)
f = np.exp(a*(n+k))
zp = np.linspace(np.exp(a)+0.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(zp, zp*np.exp(a*k)/(zp-np.exp(a)))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = \mathrm{e}^{a(n+k)}$')
plt.show()
# sin(w_0 n + \phi) -> Aufteilung in Summe durch trigonometrische Formeln, Dämpfungsatz -> z[z sin(phi) + e^a sin(w_0 - phi)]/(z^2 -2z e^a cos(w_0) + e^(2a))
w0 = 1.25
p = 0.3*np.pi
a = 0.5
n = np.arange(11)
f = np.exp(a*n)*np.sin(w0*n + p)
z = np.linspace(1.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(z, z*(z*np.sin(p) + np.exp(a)*np.sin(w0-p))/(z**2 - 2*z*np.exp(a)*np.cos(w0) + np.exp(2*a)))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = \mathrm{e}^{an} \sin(\omega_0 n + \phi)$')
plt.show()
# quadratische Folge n^2*\sigma(n) -> Darstellung als n*n*\sigma(n) -> Multiplikationssatz + Korrespondenz für n\sigma(n) -> z(z+1)/(z-1)^3
n = np.arange(11)
f = n**2
z = np.linspace(1.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.stem(n, f, basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
cax = axs[1]
cax.plot(z, z*(z+1)/(z-1)**3)
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
fig.suptitle('$f_n = n^2$')
plt.show()
Bestimme die Rücktransformation in den Originalbereich.
- $X(z) = \dfrac{z-1}{(z+1)(z-2)}$ für $|z| > 2$
- $X(z) = \dfrac{z}{1 + z^2}$
- $X(z) = \dfrac{2z^2 + 1}{(z+2)(z-1)}$
Lösungen¶
# (z-1)/[(z+1)(z-2)] -> Partialbruchzerlegung -> [2/3(-1)^(n-1) + 1/3*2^(n-1)] \sigma_n
z = np.linspace(2+0.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.plot(z, (z-1)/(z+1)/(z-2))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
n = np.arange(6)
cax = axs[1]
cax.stem(n, np.heaviside(n-1,1)*(2/3*(-1.)**(n-1) + 1/3*2.**(n-1)), basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
fig.suptitle('$\dfrac{z-1}{(z+1)(z-2)}$')
plt.show()
# z/(z^2+1) -> Partialbruchzerlegung -> cos(\pi/2 (n-1)) \sigma_{n-1}
z = np.linspace(1+0.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.plot(z, z/(z**2 + 1))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
n = np.arange(6)
cax = axs[1]
cax.stem(n, np.cos(np.pi/2*(n-1))*np.heaviside(n-1,1), basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
fig.suptitle('$\dfrac{z}{z^2+1}$')
plt.show()
# (2z**2 + 1)/[(z+2)(z-1)] -> Partialbruchzerlegung für X(z)/z -> f_n = -1/2*\delta_n + [1 + 3/2*(-2)^n] \sigma_n
z = np.linspace(1+0.1, 5,101)
fig, axs = plt.subplots(1,2,figsize=(12,4))
cax = axs[0]
cax.plot(z, (2*z**2+1)/(z + 2)/(z-1))
cax.grid()
cax.set_xlabel('$z$')
cax.set_title('z-Bereich')
n = np.arange(5)
cax = axs[1]
cax.stem(n, (1 + 3/2*(-2)**n)*np.heaviside(n,1) - 0.5*(n==0), basefmt=' ')
cax.grid()
cax.set_xlabel('$n$')
cax.set_title('Zeitbereich')
fig.suptitle('$\dfrac{2z^2 + 1}{(z+2)(z-1)}$')
plt.show()
Lösung für $\dfrac{z}{1 + z^2}$¶
Partialbruchzerlegung: $\dfrac{z}{1 + z^2} = \dfrac{A}{z + j} + \dfrac{B}{z - j} = \dfrac{Az - Aj + Bz + Bj}{1 + z^2}$
Koeffizientenvergleich: $(B-A)j = 0$ und $(A+B)z = 2Az = 1 \rightarrow A = \frac{1}{2} = B$
zerlegter Ausdruck: $\dfrac{z}{1 + z^2} = \dfrac{1}{2}\left(\dfrac{1}{z + j} + \dfrac{1}{z - j}\right)$
Rücktransformation mit Regel Nr. 10: $\mathcal{Z}^{-1}\left\{\dfrac{z}{1 + z^2}\right\} = \dfrac{1}{2}\left((-j)^{n-1} + j^{n-1}\right) \sigma_{n-1}$
ersetzen von $\pm j$ mit $\mathrm{e}^{\pm j\frac{\pi}{2}}$ führt auf: $\mathcal{Z}^{-1}\left\{\dfrac{z}{1 + z^2}\right\} = \dfrac{1}{2}\left(\mathrm{e}^{- j\frac{\pi (n-1)}{2}} + \mathrm{e}^{j\frac{\pi (n-1)}{2}}\right) \sigma_{n-1} = \dfrac{1}{2}\left(\cos(\frac{\pi (n-1)}{2}) - j \sin(\frac{\pi (n-1)}{2}) + \cos(\frac{\pi (n-1)}{2}) + j \sin(\frac{\pi (n-1)}{2})\right) \sigma_{n-1} = \cos(\frac{\pi (n-1)}{2}) \sigma_{n-1}$
Löse folgende Differenzengleichung:
$$y_n + 0.2 y_{n-1} = 0.5 g_n \quad \text{mit} \, y_{-1} = 0, \, g_n= 0.3^n \sigma_n$$
Lösung¶
Anwendung Verschiebung und Tabellen -> Lösung in der z-Ebene -> Rücktransformation -> $y_n = [0.3^{(n+1)} - (-0.2)^{(n+1)}] \sigma_n$