GDET3 Verteilungsfunktion.ipynb 8.83 KB
Newer Older
1
2
3
4
5
{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
6
7
8
9
10
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
11
12
   "outputs": [],
   "source": [
13
    "# Copyright 2020 Institut für Nachrichtentechnik, RWTH Aachen University\n",
14
    "%matplotlib widget\n",
15
    "\n",
16
    "from ipywidgets import interact, interactive, Layout\n",
17
18
19
20
    "import ipywidgets as widgets\n",
    "\n",
    "import numpy as np\n",
    "import scipy as sp\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
21
    "import scipy.special # erfc(x)\n",
22
23
    "\n",
    "from ient_nb.ient_plots import *\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
24
    "from ient_nb.ient_signals import *\n",
25
26
27
28
29
30
    "from ient_nb.ient_audio import *\n",
    "\n",
    "import matplotlib\n",
    "from matplotlib.patches import ConnectionPatch\n",
    "highlight_args = {'color':'rot', 'marker':'o'}; arrow_args = {'width':1,'headlength':10,'headwidth':10,'fc':'rot'}\n",
    "anno_args = {'color':'rot', 'linestyle':'--', 'arrowstyle':\"-\", 'coordsA':'data', 'coordsB':'data'}"
31
32
33
34
35
36
37
38
39
40
41
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div>\n",
    "    <img src=\"ient_nb/figures/rwth_ient_logo@2x.png\" style=\"float: right;height: 5em;\">\n",
    "</div>\n",
    "\n",
    "# Verteilungsfunktion und Verteilungsdichtefunktion\n",
42
43
44
    "\n",
    "Zum Starten: Im Menü: Run <span class=\"fa-chevron-right fa\"></span> Run All Cells auswählen.\n",
    "\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
45
    "## Einleitung\n",
46
47
    "Bei der Betrachtung einer Schar von Zufallssignalen ${}^k s(t)$ ist eine Beschreibung über die tatsächlichen Amplitudenwerte oft wenig sinnvoll. Statt dieser werden deswegen die statistischen Eigenschaften betrachtet. Grundlegende Aussagen über ein Signal können aus der Verteilungs- und der Verteilungsdichtefunktion gewonnen werden. Ebenso relevant sind der Mittelwert $m_s$, die Standardabweichung $\\sigma_s$ und die Frequenz $F$.\n",
    "\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
48
    "### Verteilungsfunktion\n",
49
    "Die Verteilungsfunktion $P_s(x,t_1)$ gibt an, wie wahrscheinlich es ist, dass das Signal zum Zeitpunkt $t_1$ einen Wert kleiner oder gleich $x$ annimmt: \n",
Christian Rohlfing's avatar
Christian Rohlfing committed
50
    "\n",
51
52
    "$$P_s(x,t_1) = \\mathrm{Prob}\\left[s(t_1) \\leq x\\right]$$\n",
    "\n",
53
    "Ist das Signal ein stationäres Signal, gilt dies für alle Zeitpunkte $t$:\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
54
    "$$P_s(x) = \\mathrm{Prob}\\left[s(t) \\leq x\\right]$$ \n",
55
    "\n",
56
    "Für einen stationären Prozess gilt, dass alle möglichen Mittelwerte unabhängig von der Verschiebung des Beobachtungszeitpunktes sind. Ein Prozess, der zwar im strengen Sinn der Definition nicht-stationär ist, dessen Autokorrelationsfunktion aber nur von der Differenz der Abtastzeiten abhängt und dessen Mittelwert zeitunabhängig ist, wird auch *stationär im weiten Sinn* oder *schwach stationär* genannt.\n",
57
    "\n",
58
59
60
    "Erfüllt ein Signal zusätzlich die Eigenschaft, dass die Scharmittelwerte den Zeitmittelwerten entsprechen, ist das Signal *ergodisch*.\n",
    "Es gilt dann: \n",
    "$$P_s(x) = \\frac{1}{2T}\\sum_i \\Delta t_i(x)$$\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
61
62
    "\n",
    "### Verteilungsdichtefunktion\n",
63
64
    "Die Verteilungsdichtefunktion gibt an, mit welcher Wahrscheinlichkeit ein bestimmter Wert $x$ auftritt. Sie kann aus der Verteilungsfunktion durch Ableitung gewonnen werden:\n",
    "$$p_s(x) = \\frac{\\mathrm{d}}{\\mathrm{d}x} P_s(x)$$\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
65
    "\n",
66
67
68
69
70
71
72
73
    "Typische Verteilungsdichtefunktionen sind die Gleichverteilung und die Gauß-Verteilung. \n",
    "\n",
    "### Mittelwert, Leistung und Standardabweichung\n",
    "Der Mittelwert $m_s$ eines Signals ist der Erwartungswert:\n",
    "$$m_s=\\mathcal{E}\\{s(t)\\}=\\int_{-\\infty}^{\\infty}xp_s(x)\\mathrm{d}x$$\n",
    "Der Mittelwert eines ergodischen Prozesses entspricht dem Gleichanteil des Signals. \n",
    "\n",
    "Die Leistung $L_s$ eines Signals ist definiert als\n",
74
    "$$L_s=\\mathcal{E}\\{s^2(t)\\}=\\int_{-\\infty}^{\\infty}x^2p_s(x)\\mathrm{d}x\\text{.}$$\n",
75
76
77
78
    "\n",
    "Die Standardabweichung $\\sigma_s$ kann nun aus Mittelwert und Leistung berechnet werden:\n",
    "$$\\sigma_s=\\sqrt{L_s-m_s^2}$$\n",
    "\n",
Iris Heisterklaus's avatar
Iris Heisterklaus committed
79
    "In der Formelsammlung können die Zusammenhänge zwischen Verteilungsdichtefunktion, Mittelwert, Leistung und Standardabweichung für Gauß- und gleichverteilte stationäre Prozesse gefunden werden. "
80
81
82
83
84
85
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
Christian Rohlfing's avatar
Christian Rohlfing committed
86
    "## Signale\n",
87
    "Im Folgenden werden einige Signale beispielhaft betrachtet. Hierzu wird im folgenden Fenster eine $t$-Achse generiert und weitere [Elementarsignalen](GDET3%20Elementarsignale.ipynb) sowie einige Verteilungsdichtefunktionen definiert."
88
89
90
91
92
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
93
94
95
96
97
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
98
99
100
101
102
103
104
105
106
107
108
   "outputs": [],
   "source": [
    "fs = 44100;\n",
    "(t, deltat) = np.linspace(-10, 10, 20*fs, retstep=True) # t axis in seconds\n",
    "Amax = 6 # limit of histogram (the total range would be from -Amax to Amax)\n",
    "(x, deltax) = np.linspace(-Amax, Amax, 4001, retstep=True) # x axis (corresponds to amplitude)\n",
    "\n",
    "rect_sum = lambda t: unitstep(np.cos(np.pi*t))\n",
    "tri_sum  = lambda t: np.abs(np.mod(t,2)-1)\n",
    "\n",
    "gaussian_pdf = lambda x, ms, sigmas: 1/(sigmas*np.sqrt(2*np.pi)) * np.exp(-(x-ms)**2/(2*sigmas**2))\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
109
    "gaussian_pf  = lambda x, ms, sigmas: 0.5*sp.special.erfc((ms-x)/np.sqrt(2*sigmas**2))\n",
110
111
112
113
114
115
116
117
    "uniform_pdf  = lambda x, ms, a: 1/a* rect((x-ms)/a)\n",
    "uniform_pf   = lambda x, ms, a: rect((x-ms)/a)*((x-ms)/a+1/2)+unitstep(x-(ms+a/2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
118
    "Zunächst wird eine gleichverteilte Dreiecksfolge betrachtet. In der folgenden Abbildung kann sowohl das Dreieckssignal $s(t)$ als auch die zugehörige Verteilungsdichte $p_s(x)$ betrachtet werden. Ebenso kann das entstehende Signal als Audiofile angehört werden. "
Christian Rohlfing's avatar
Christian Rohlfing committed
119
120
121
122
123
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
124
125
126
127
128
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
Christian Rohlfing's avatar
Christian Rohlfing committed
129
130
131
132
133
134
135
136
137
138
139
140
   "outputs": [],
   "source": [
    "F = 500 # frequency\n",
    "s = tri_sum(2*F*t); # sum of triangles\n",
    "fig, axs = plt.subplots(1, 2); \n",
    "ax = axs[0]; ax.plot(1000*t, s, 'rwth');\n",
    "ax.set_xlim([-4.5,4.5]); ax.set_ylim([-0.1,1.1]);\n",
    "ax.set_xlabel(r'$\\rightarrow t$ [ms]'); ax.set_ylabel(r'$\\uparrow s(t)$'); ient_axis(ax);\n",
    "ax = axs[1]; ax.plot(x, rect(x-1/2), 'rwth');\n",
    "ax.set_xlim([-0.25,1.25]); ax.set_ylim([-0.1,1.1]);\n",
    "ax.set_xlabel(r'$\\rightarrow x$'); ax.set_ylabel(r'$\\uparrow p_s(x)$'); ient_axis(ax);\n",
    "\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
141
    "ient_audio_play(s, fs)"
Christian Rohlfing's avatar
Christian Rohlfing committed
142
143
   ]
  },
Christian Rohlfing's avatar
Christian Rohlfing committed
144
145
146
147
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
148
    "Als nächstes wird gleichverteiltes weißes Rauschen betrachtet, welches dieselbe Verteilungsdichtefunktion hat. Hört man sich dieses Signal ebenfalls an, ist zu bemerken, dass die Signale trotz gleicher Verteilungsdichtefunktion sehr unterschiedlich sind."
Christian Rohlfing's avatar
Christian Rohlfing committed
149
150
   ]
  },
Christian Rohlfing's avatar
Christian Rohlfing committed
151
152
153
  {
   "cell_type": "code",
   "execution_count": null,
154
155
156
157
158
   "metadata": {
    "jupyter": {
     "source_hidden": true
    }
   },
Christian Rohlfing's avatar
Christian Rohlfing committed
159
160
161
162
163
164
165
166
167
168
169
170
171
172
   "outputs": [],
   "source": [
    "s = np.random.uniform(0, 1, len(t)); # sample uniform distribution between smin = 0 and smax = 1\n",
    "\n",
    "# Plot\n",
    "fig, axs = plt.subplots(1, 2); \n",
    "ax = axs[0]; ax.plot(1000*t, s, 'rwth');\n",
    "ax.set_xlim([-4.5,4.5]); ax.set_ylim([-0.1,1.1]);\n",
    "ax.set_xlabel(r'$\\rightarrow t$'); ax.set_ylabel(r'$\\uparrow {}^k s(t)$'); ient_axis(ax);\n",
    "\n",
    "ax = axs[1]; ax.plot(x, rect(x-1/2), 'rwth');\n",
    "ax.set_xlim([-0.25,1.25]); ax.set_ylim([-0.1,1.1]);\n",
    "ax.set_xlabel(r'$\\rightarrow x$'); ax.set_ylabel(r'$\\uparrow p_s(x)$'); ient_axis(ax);\n",
    "\n",
Christian Rohlfing's avatar
Christian Rohlfing committed
173
    "ient_audio_play(s, fs)"
Christian Rohlfing's avatar
Christian Rohlfing committed
174
175
176
177
178
179
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
180
    "Eine ausführlichere Demo zur Verteilungs- und Verteilungsdichtefunktion findet man [hier](GDET3%20Verteilungsfunktion%20GUI.ipynb)."
181
182
183
184
   ]
  },
  {
   "cell_type": "markdown",
185
186
   "metadata": {},
   "source": [
187
    "___\n",
188
189
190
    "This notebook is provided as [Open Educational Resource](https://en.wikipedia.org/wiki/Open_educational_resources) (OER). Feel free to use the notebook for your own purposes. The code is licensed under the [MIT license](https://opensource.org/licenses/MIT). \n",
    "\n",
    "Please attribute the work as follows: \n",
191
    "*Christian Rohlfing, Übungsbeispiele zur Vorlesung \"Grundgebiete der Elektrotechnik 3 - Signale und Systeme\"*, gehalten von Jens-Rainer Ohm, 2020, Institut für Nachrichtentechnik, RWTH Aachen University."
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
211
   "version": "3.8.1"
212
213
214
  }
 },
 "nbformat": 4,
215
 "nbformat_minor": 4
216
}