See my MWE:
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{
positioning,
datavisualization.formats.functions
}
\tikzset{
signal/.style = coordinate,
block/.style = {
draw,
rectangle,
minimum height = 4em,
minimum width = 5em
},
stepp/.style = {
block,
path picture = {
\draw
([
xshift = 5pt,
yshift = 5pt
]path picture bounding box.south west) -| ([yshift = -5pt]path picture bounding box.north)
-- ([
xshift = -5pt,
yshift = -5pt
]path picture bounding box.north east);
}
},
chirp/.style = {
block,
path picture = {
\datavisualization[
xy Cartesian,
visualize as smooth line
]
data[format = function] {
var x : interval[0 : pi];
func y = sin(2 * pi * (1 + (500 - 1) / 2 / 10 * \value x) * \value x);
%u(t) = sin(2pi(f_0 + (f_e - f_0) / 2t_e)t), with
%start frequency f_0 in Hz,
%end frequency f_e in Hz,
%end time t_e in s and
%time t in s
};
}
},
saturation/.style = {
block,
path picture = {
\draw
[lightgray] ([yshift = 5pt]path picture bounding box.south) -- ([yshift = -5pt]path picture bounding box.north)
([xshift = 5pt]path picture bounding box.west) -- ([xshift = -5pt]path picture bounding box.east);
\draw
([
xshift = 7pt,
yshift = 10pt
]path picture bounding box.south west) -- ([
xshift = -5pt,
yshift = 10pt
]path picture bounding box.south)
-- ([
xshift = 5pt,
yshift = -10pt
]path picture bounding box.north)
-- ([
xshift = -7pt,
yshift = -10pt]path picture bounding box.north east);
}
},
counter/.style = {
block,
path picture = {
\node at (path picture bounding box.north east) {lim};
\datavisualization[
xy Cartesian,
visualize as line
]
data {
x, y
0, 0
1, 0
1, 1
2, 1
2, 2
3, 2
3, 3
4, 3
4, 0
5, 0
5, 1
6, 1
6, 2
7, 2
7, 3
8, 3
8, 0
};
}
}
}
\begin{document}
\begin{tikzpicture}
%placing the nodes
\node[stepp] (step) {};
\node[
saturation,
above = of step
] (saturation) {};
\node[
chirp,
left = of saturation
] (chirp) {};
\node[
counter,
below = of step
] (counter) {};
\node[
signal,
right = of step
] (input) {};
\node[
block,
right = of input
] (inputInterface) {};
%connecting the nodes
\foreach \i/\k in {
saturation/1,
counter/-1
}
{
\draw
(\i) -| ([yshift = \k15pt]input);
\draw
[->] ([yshift = \k15pt]input.east) -- ([yshift = \k*15pt]inputInterface.west);
}
\draw
[->] (chirp) -- (saturation);
\draw
[->] (step) -- (inputInterface);
\end{tikzpicture}
\end{document}
And the result:
In need for the each of the four blocks on the left side a different figure inside. Here are the given figures: 


.
I managed to create two of them. The code for the remaining two is functional too, but I didn't achieved the integration of the code into the blocks. The results of the code for the two unfinished blocks should somehow scaled and moved to the correct place within the blocks.
Every solution is welcome! General optimization of my code is very desired (it is very likely there are more efficient and intuitive solutions)!
Thank you for your help and effort in advance!


datavisualization. – Su-47 Nov 15 '22 at 16:45