finished exercise except for some parts of number 1

This commit is contained in:
2026-05-09 17:16:35 +02:00
parent a4f2001671
commit 99b68b10eb
14 changed files with 301 additions and 217 deletions

1
.direnv/flake-profile Symbolic link
View File

@@ -0,0 +1 @@
flake-profile-1-link

View File

@@ -0,0 +1 @@
/nix/store/zcsc63f1ncp6p1nf533q6m35imm42z78-latex-env

BIN
Assignment1_211.pdf Normal file

Binary file not shown.

View File

@@ -105,7 +105,7 @@
\begin{minipage}[b][4cm]{1.0\textwidth}
\begin{center}
\begin{bf}
\begin{large} Digitale Signalverarbeitung WS 2025/26 -- 1.~Aufgabe\end{large} \\
\begin{large} Digitale Signalverarbeitung SS 2025/26 -- 2.~Aufgabe\end{large} \\
\vspace{0.3cm}
\begin{Large} Analog Signals and Systems \end{Large} \\
\vspace{0.3cm}
@@ -121,231 +121,115 @@ Quirin Ecker, k12310122 \\
\noindent \rule[0.8em]{\textwidth}{0.12mm}\\[-0.5em]
%=======================================================================================
\begin{aufgabe}
\begin{aufgabe}{}
\begin{align*}
c_1 &= -5 + 3j
= \sqrt{(-5)^2 + 3^2}\, e^{j \arctan\left(\frac{3}{-5}\right)}
= \sqrt{34}\, e^{-j\,0.54} \\
\end{align*}
\begin{align*}
c_2 &= \frac{\sqrt{2}}{2} e^{-j \frac{3\pi}{4}}
= \frac{\sqrt{2}}{2} \cos\left(-\frac{3\pi}{4}\right)
+ j \frac{\sqrt{2}}{2} \sin\left(-\frac{3\pi}{4}\right)
= -\frac{1}{2} - \frac{1}{2}j \\
\end{align*}
\begin{align*}
c_3 &= \frac{1}{\sqrt{2}} + \frac{1}{\sqrt{2}}j
= \sqrt{\left(\frac{1}{\sqrt{2}}\right)^2 + \left(\frac{1}{\sqrt{2}}\right)^2}
\, e^{j \arctan\left(\frac{\frac{1}{\sqrt{2}}}{\frac{1}{\sqrt{2}}}\right)}
= e^{j \frac{\pi}{4}} \\
\end{align*}
\begin{align*}
c_4 &= c_1 + c_2
= (-5 + 3j) + \left(-\frac{1}{2} - \frac{1}{2}j\right)
= -\frac{11}{2} + \frac{5}{2}j \\
\end{align*}
\begin{align*}
c_5 &= c_1 \cdot c_2
= \left(\sqrt{34}\, e^{-j\,0.54}\right)\left(\frac{\sqrt{2}}{2} e^{-j \frac{3 \pi}{4}}\right)
\approx \sqrt{17} e^{-j\,2.8961} \\
\end{align*}
\begin{align*}
c_6 &= |c_3|^2
= \left(\sqrt{\left(\frac{1}{\sqrt{2}}\right)^2 + \left(\frac{1}{\sqrt{2}}\right)^2}\right)^2
= 1 \\
\end{align*}
\begin{align*}
c_7 &= \arg(c_3) = \frac{\pi}{4} \\
\end{align*}
\begin{align*}
c_8 &= \frac{c_1}{c_2}
= \frac{-5 + 3j}{-\frac{1}{2} - \frac{1}{2}j}
\cdot \frac{-\frac{1}{2} + \frac{1}{2}j}{-\frac{1}{2} + \frac{1}{2}j} \\
&= \frac{(-5)(-\frac{1}{2}) + 3(-\frac{1}{2}) + j\left(3(-\frac{1}{2}) - (-5)(-\frac{1}{2})\right)}{\left(-\frac{1}{2}\right)^2 + \left(-\frac{1}{2}\right)^2} \\
&= 2 - 8j \\
\end{align*}
\begin{align*}
c_9 &= c_1 \cdot c_1^*
= \sqrt{34}\, e^{-j\,0.54} \cdot \sqrt{34}\, e^{j\,0.54}
= 34
\end{align*}
\end{aufgabe}
\begin{aufgabe}{}
\[
x(t) = \hat{X} \cos(2\pi f_0 t) \xleftrightarrow{} \iff X(f) = \frac{\hat{X}}{2} \delta(f - f_0) + \frac{\hat{X}}{2} \delta(f + f_0) \\
\]
\[
x(t) = \hat{X}( \frac{1}{2} \cdot e^{j2\pi f_0 t} + \frac{1}{2} \cdot e^{-j2\pi f_0 t} )
\]
\[
X(f) = \hat{X}( \frac{1}{2} \cdot \delta (f-f_0) + \frac{1}{2} \cdot \delta (f+f_0) )
\]
\[
X(f) = \frac{\hat{X}}{2} \cdot \delta (f-f_0) + \frac{\hat{X}}{2} \cdot \delta (f+f_0)
\]
\begin{center}
\includegraphics[width=0.95\textwidth]{fig/aufgabe2.png}
\end{center}
\end{aufgabe}
\begin{aufgabe}{}
\begin{enumerate}
\item
\[
\sin\left(2\pi f_i (t - 0.1)\right) = \sin\left(2\pi f_i t + \phi_i\right)
\]
\[
2\pi f_i (t - 0.1) = 2\pi f_i t + \phi_i
\]
\[
2\pi f_i (t - 0.1) - 2\pi f_i t = \phi_i
\]
\[
2\pi f_i \big((t - 0.1) - t\big) = \phi_i
\]
\[
\phi_i = 2\pi f_i (-0.1) = -0.1 \cdot 2\pi f_i
\]
The fourier transform shift theorem states $x(t - T) \;\longleftrightarrow\; X(f)\, e^{-j 2\pi f T}$, where the angle is $2\pi fT$ and $T = 0.1$ in this case. Combining everything, we get $-0.1 \cdot 2\pi f_i$ which is equivalent to the result we got.
\item Figures:
\begin{center}
\includegraphics[width=0.95\textwidth]{fig/aufgabe3_1.png}
\includegraphics[width=0.95\textwidth]{fig/aufgabe3_2.png}
\end{center}
\end{enumerate}
\end{aufgabe}
\begin{aufgabe}{}
\begin{itemize}
\item $y(t) = (x(t))^2$
\[
y(t) = (x(t))^2
\]
\[
y_1(t) = (\alpha x_1(t))^2 + (\beta x_2(t))^2
\]
\[
= \alpha^2 (x_1(t))^2 + \beta^2 (x_2(t))^2
\]
\[
y_2(t) = \alpha (x_1(t))^2 + \beta (x_2(t))^2
\]
\[
y_1(t) \ne y_2(t)
\]
\[
\implies \text{Not linear}
\]
\[
y_1(t) &= \left(x(t - \Delta)\right)^2 \\
\]
\[
y_2(t) &= y_1(t - \Delta) = \left(x(t - \Delta)\right)^2 \\
\]
\[
y_1 &= y_2 \\
\]
\[
\implies \text{Time invariant}
\]
\item $y(t) = x(t) sin(\Omega_0 t)$
\[
y(t) &= x(t) \sin(\Omega_0 t) \\
\]
\[
y_1(t) &= \left( \alpha \, x(t) \sin(\Omega_0 t) \right) + \left( \beta \, x(t) \sin(\Omega_0 t) \right) \\
\]
\[
y_t(t) &= \alpha \left( x(t) \sin(\Omega_0 t) \right) + \beta \left( x(t) \sin(\Omega_0 t) \right) \\
\]
\[
y_1 &= y_2
\]
\[
\implies \text{linear}
\]
\[
y_1(t) = &\coloneqq x(t - \Delta) \sin(\Omega_0 t - \Delta) \\
\]
\[
y_2(t) &= y_1(t - \Delta) = x(t - \Delta) \sin(\Omega_0 t - \Delta) \\
\]
\[
y_1 &= y_2 \\
\]
\[
\implies \text{Time invariant}
\]
\end{itemize}
\begin{enumerate}
\item add back in
\item add back in
\item add back in
\item add back in
\item (see assignment2\_1.m)
\item table:
\begin{table}[h]
\centering
\begin{tabular}{|c|c|c|}
\hline
Signal & Energy & Power \\
\hline
$x_1[n]$ & 37 & -- \\
$x_2[n]$ & 48.0394 & -- \\
$x_3[n]$ & 1152 & 4.4825 \\
$x_4[n]$ & 128.9565 & -- \\
\hline
\end{tabular}
\caption{Energy and Power Values}
\label{tab:energy_power}
\end{table}
\end{enumerate}
\end{aufgabe}
\begin{aufgabe}
\begin{enumerate}
\item System A is linear because there is no difference between the plot $T [x_1(t) + x_2(t)]$ and $T [x_1(t)] + T [x_2(t)]$.
You can also see in the error plot that the error is small.
It is not exactyly zero becuase rounding errors.
\item Input and output are not proportional in a non linear system and
therefore the error change is greater than the one of the linear system
\item The output sound of System B does differ when comparing $T [x_1(t) + x_2(t)]$ and $T [x_1(t)] + T [x_2(t)]$.
But is the same when using System A. This matches the differences in the graphs.
\item $|x[n]| + |h[n]| - 1 = 5 + 4 - 1 = 8$
\item
\begin{gather*}
A=
\begin{bmatrix}
3 & 0 & 0 & 0\\
-1 & 3 & 0 & 0\\
2 & -1 & 3 & 0\\
0 & 2 & -1 & 3\\
1 & 0 & 2 & -1\\
0 & 1 & 0 & 2\\
0 & 0 & 1 & 0\\
0 & 0 & 0 & 1
\end{bmatrix},
\qquad
x=
\begin{bmatrix}
2\\
3\\
4\\
1
\end{bmatrix}
Ax=
\begin{bmatrix}
6\\
7\\
13\\
5\\
9\\
5\\
4\\
1
\end{bmatrix}
\end{gather*}
\end{enumerate}
\end{aufgabe}
\begin{aufgabe}
\begin{enumerate}
\item $L_y = |x[n]| + |h[n]| - 1 = 50 + 3 - 1 = 52$
\item (see assignment2\_3.m)
\item see d)
\item figure: \\
\includegraphics[width=0.95\textwidth]{fig/aufgabe3_cd.png}
\end{enumerate}
\end{aufgabe}
\begin{aufgabe}
\begin{enumerate}
\item (see assignment2\_4.m)
\item Phase Response is very small in the realm of $10^{-15}$. The signal contians multiple bigger spikes. \\
\includegraphics[width=0.95\textwidth]{fig/aufgabe4_b.png}
\item The magnitued seems to be repeating and the phase response seems to be mirrored accross the x and y axis.
\end{enumerate}
\end{aufgabe}
\begin{aufgabe}
\begin{enumerate}
\item (siehe assignment2\_5.m)
\item (siehe assignment2\_5.m)
\item figure: \\
\includegraphics[width=0.95\textwidth]{fig/aufgabe5_c.png}
\item original energy: 41343 \\ reverb energy: 2069.0506 \\ rir energy: $9.9997 \cdot 10^{3}$ \\
explanation: The rir energy is less than one which would explain why the outcoming signal is smaller than the original, because convulution scales proportionally.
\end{enumerate}
\end{aufgabe}
\end{document}

View File

@@ -0,0 +1,62 @@
clear
close all
clc
% x1[n], -5 <= n <= 10
n1 = -5:10;
x1 = -4*(n1 == -3) + 4*(n1 == 0) - (n1 == 3) + 2*(n1 == 7);
% x2[n], -5 <= n <= 10
n2 = -5:10;
x2 = exp(-0.31*n2);
% x3[n], 0 <= n <= 256
n3 = 0:256;
x3 = 3*sin(2*pi*(3.5/64)*n3);
% x4[n], 0 <= n <= 256
n4 = 0:256;
x4 = -cos((9/64)*n4);
% Visualization
figure;
subplot(121); hold on; grid on;
stem(n1, x1);
stem(n2, x2);
xlabel('n');
ylabel('x[n]');
legend('x_1[n]', 'x_2[n]');
subplot(122); hold on; grid on;
plot(n3, x3);
plot(n4, x4);
xlabel('n');
ylabel('x[n]');
legend('x_3[n]', 'x_4[n]');
% Custom power function
function [ P ] = custom_power( x )
P = (1/length(x)) * sum(abs(x).^2);
end
% Calculate and display the power
P3 = custom_power(x3);
% Display the calculated powers
disp(['Power of x_3[n]: ', num2str(P3)]);
% Energy function
function [ W ] = energy( x )
W = sum(abs(x).^2);
end
% Calculate and display the energy of each signal
P1 = energy(x1);
P2 = energy(x2);
P3 = energy(x3);
P4 = energy(x4);
% Display the calculated powers
disp(['Energy of x_1[n]: ', num2str(P1)]);
disp(['Energy of x_2[n]: ', num2str(P2)]);
disp(['Energy of x_3[n]: ', num2str(P3)]);
disp(['Energy of x_4[n]: ', num2str(P4)]);

View File

@@ -0,0 +1,39 @@
clear
close all
clc
% Convolution function
function [ Y ] = convolution( h, x )
Ny = length(x)+length(h)-1
Y = zeros(1, Ny);
for n = 1:Ny
for i = 1:length(h)
if (n-i+1 >= 1) && (n-i+1 <= length(x))
Y(n) = Y(n) + h(i) * x(n-i+1)
end
end
end
end
n = 0:49
hn = [0.25, 0.5, 0.25]
xn = cos(((2*pi)/20)*n)
% Perform convolution of xn and hn
Y = convolution(hn, xn);
Y2 = conv(xn, hn)
% Plot the results
plot(Y);
xlabel('Sample Index');
ylabel('Amplitude');
title('Convolution Result');
grid on;
% Plot Y2 on same graph
hold on;
plot(Y2, '--');
legend('Custom Convolution', 'MATLAB conv Function');
hold off;

View File

@@ -0,0 +1,29 @@
function X = dtft ( x , n , w )
% DTFT Computes Discrete-time Fourier transform
% @param x : finite duration sequence (vector) over n
% @param n : sample indices vector
% @param w : frequency vector
% @return X : DTFT of x[n] at frequencies w
% this function does not use for loops
X = sum(x(:) .* exp(-1j * n(:) * w), 1);
end
n = -10:10;
x = (0.8) .^ abs(n) .* ((n >= -10) & (n < 11));
w = linspace(-pi, pi, 1000);
X = dtft(x, n, w);
magnitude = abs(X);
phase = angle(X);
figure;
subplot(2, 1, 1);
plot(w, magnitude);
title('Magnitude Response');
xlabel('Frequency (rad/sample)');
ylabel('|X(w)|');
subplot(2, 1, 2);
plot(w, phase);
title('Phase Response');
xlabel('Frequency (rad/sample)');
ylabel('Phase(rad)');

View File

@@ -0,0 +1,42 @@
% Read and play original audio
[audio, fs] = audioread('./audio.wav');
%sound(audio, fs);
% Read and play room impulse response (RIR)
[rir, fs_rir] = audioread('./rir.wav');
%sound(rir, fs_rir);
% Apply convolution (reverb effect)
audio_reverb = conv(audio, rir);
%sound(audio_reverb, fs);
% Plot the waveforms
figure;
% Original audio
subplot(2,1,1);
plot(audio);
title('Original Audio');
xlabel('Sample Number');
ylabel('Amplitude');
% Reverberated audio
subplot(2,1,2);
plot(audio_reverb);
title('Audio with Reverb');
xlabel('Sample Number');
ylabel('Amplitude');
% Calculate signal energy
function [ W ] = energy( x )
W = sum(abs(x).^2);
end
energy_rir = energy(rir)
energy_original = energy(audio)
energy_reverb = energy(audio_reverb)
% Display energy values
fprintf('Original Audio Energy: %.4f\n', energy_original);
fprintf('Reverberated Audio Energy: %.4f\n', energy_reverb);

BIN
Assignment2_211/audio.wav Normal file

Binary file not shown.

BIN
Assignment2_211/rir.wav Normal file

Binary file not shown.

BIN
fig/aufgabe3_cd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
fig/aufgabe4_b.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
fig/aufgabe5_c.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

26
flake.lock generated Normal file
View File

@@ -0,0 +1,26 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1778325437,
"narHash": "sha256-k2mUy6bm3dUviWmMCqkixBBSwfL9piisGqU41dq61Ns=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f4f40ee764efd448458bea3ee8b3de51dd2859aa",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}