diff --git a/semester3/numcs/numcs-summary.pdf b/semester3/numcs/numcs-summary.pdf index f5ff69d..a95a5d3 100644 Binary files a/semester3/numcs/numcs-summary.pdf and b/semester3/numcs/numcs-summary.pdf differ diff --git a/semester3/numcs/parts/01_interpolation/01_trigonometric/03_interpolation/01_zero-padding.tex b/semester3/numcs/parts/01_interpolation/01_trigonometric/03_interpolation/01_zero-padding.tex index 2466b2e..91b04af 100644 --- a/semester3/numcs/parts/01_interpolation/01_trigonometric/03_interpolation/01_zero-padding.tex +++ b/semester3/numcs/parts/01_interpolation/01_trigonometric/03_interpolation/01_zero-padding.tex @@ -5,3 +5,20 @@ Dazu muss das Polynom $p_{N - 1} \in \mathcal{T}_N \subseteq \mathcal{T}_M$ in d in dem man \bi{Zero-Padding} verwendet, also Nullen im Koeffizientenvektor an den Stellen höheren Frequenzen einfügt. \TODO Insert cleaned up code from Page 95 (part of exercises) + +Die folgende Funktion wird im Script \texttt{evaliptrig} genannt. +\rmvspace +\begin{code}{python} + def evaluate_trigonometric_interpolation_polynomial(y: np.ndarray, N: int): + n = len(y) + if (n % 2) == 0: + c = np.fft.ifft(y) # Fourier coefficients + a = np.zeros(N, dtype=complex) + + # Zero padding + a[: n // 2] = c[: n // 2] + a[N - n // 2 :] = c[n // 2 :] + return np.fft.fft(a) + else: + raise ValueError("odd length") +\end{code}