Aufgaben:Aufgabe 4.11Z: C-Programm „akf2”: Unterschied zwischen den Versionen
Aus LNTwww
Zeile 8: | Zeile 8: | ||
*Der an das Programm übergebene Long-Wert sei hier $l=10$. | *Der an das Programm übergebene Long-Wert sei hier $l=10$. | ||
*Die berechneten AKF-Werte $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm AKF[ \ ]$ an das Hauptprogramm zurückgegeben. In den Zeilen 7 und 8 wird dieses Feld mit Nullen vorbelegt. | *Die berechneten AKF-Werte $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm AKF[ \ ]$ an das Hauptprogramm zurückgegeben. In den Zeilen 7 und 8 wird dieses Feld mit Nullen vorbelegt. | ||
− | *Die Zufallsgröße $x( \ )$ ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld $H[10000 | + | *Die Zufallsgröße $x( \ )$ ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld ${\rm H}[10000 ]$, in das die $N = 10000$ Abtastwerte $x_\nu$ eingetragen werden (Zeile 9 und 10). |
*Die Bezeichnungen der Laufvariablen in Zeile 6 sind an den angegebenen Algorithmus angepasst. | *Die Bezeichnungen der Laufvariablen in Zeile 6 sind an den angegebenen Algorithmus angepasst. | ||
*Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet. | *Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet. | ||
Zeile 15: | Zeile 15: | ||
''Hinweise:'' | ''Hinweise:'' | ||
*Die Aufgabe gehört zum Kapitel [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)|Autokorrelationsfunktion]]. | *Die Aufgabe gehört zum Kapitel [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)|Autokorrelationsfunktion]]. | ||
− | *Bezug genommen wird insbesondere auf die | + | *Bezug genommen wird insbesondere auf die Seiten [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]] sowie [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Genauigkeit_der_numerischen_AKF-Berechnung|Genauigkeit der numerischen AKF-Berechnung]]. |
*Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein. | *Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein. | ||
Zeile 49: | Zeile 49: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | + | '''(1)''' Zur Berechnung des AKF-Wertes $\varphi_x(0)$ wird über $\underline{N =10000}$ Summanden gemittelt, für $\varphi_x(10)$ nur über $\underline{N = 9990}$. | |
− | + | '''(2)''' Richtig sind <u>die Lösungsvorschläge 1, 3 und 4</u>: | |
+ | *Die Rechenzeit steigt mit $N$ und $l + 1$ näherungsweise linear an, wie aus der rot hervorgehobenen AKF-Berechnung hervorgeht. Die Rechenzeit für die weiteren Programmteile kann demgegenüber vernachlässigt werden. | ||
+ | *Natürlich wird die Berechnung mit steigendem $N$ auch genauer. Dies geht hier – im Gegensatz zum Programm „akf1” von Aufgabe 4.11 – allerdings auf Kosten des erforderlichen Speicherbedarfs. Da jede Float-Variable genau vier Byte beansprucht, benötigt alleine das Hilfsfeld ${\rm H}[10000 ]$ einen Speicher von 40 kByte. | ||
− | + | '''(3)''' Richtig sind die <u>Lösungsvorschläge 1 und 3</u>: | |
− | + | *Je stärker die statistischen Bindungen innerhalb des Zufallsprozesses sind, desto ungenauer ist bei gegebenem $N$ die AKF-Berechnung. | |
− | + | *Diesen Sachverhalt kann man sich beispielsweise anhand der Leistungsberechnung (AKF-Wert an der Stelle $k=0$) verdeutlichen: | |
− | + | Sind alle <i>N</i> Abtastwerte statistisch unabhängig, so liefern alle Beiträge die maximale Information über den AKF–Wert $\varphi_x(k=0)$. | |
− | + | *Bestehen jedoch statistische Bindungen zwischen $x_\nu$ und $x_{\nu+1}$, nicht jedoch zwischen $x_\nu$ und $x_{\nu+2}$, so liefern nur die Hälfte aller Abtastwerte die volle Information über $\varphi_x(k=0)$ und die anderen nur eingeschränkte Informationen. | |
+ | Dieser auf Korrelationen beruhende Informationsverlust kann in diesem Beispiel nur durch eine Verdopplung von $N$ ausgeglichen werden. | ||
+ | *Die letzte Aussage trifft ebenfalls zu, wie auf der Seite „Genauigkeit der numerischen AKF-Berechnung” im Theorieteil ausführlich erläutert wird. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Version vom 26. März 2017, 13:19 Uhr
Sie sehen rechts das C-Programm „akf2” zur Berechnung der diskreten AKF-Werte $\varphi_x(k)$ mit Index $k = 0$, ... , $l$. Im Gegensatz zum Programm „akf1” aus Aufgabe 4.11 wird hier der im Theorieteil beschriebene Algorithmus direkt angewendet. Dabei ist zu beachten:
- Der an das Programm übergebene Long-Wert sei hier $l=10$.
- Die berechneten AKF-Werte $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm AKF[ \ ]$ an das Hauptprogramm zurückgegeben. In den Zeilen 7 und 8 wird dieses Feld mit Nullen vorbelegt.
- Die Zufallsgröße $x( \ )$ ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld ${\rm H}[10000 ]$, in das die $N = 10000$ Abtastwerte $x_\nu$ eingetragen werden (Zeile 9 und 10).
- Die Bezeichnungen der Laufvariablen in Zeile 6 sind an den angegebenen Algorithmus angepasst.
- Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet.
Hinweise:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seiten Numerische AKF-Ermittlung sowie Genauigkeit der numerischen AKF-Berechnung.
- Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.
Fragebogen
Musterlösung
(1) Zur Berechnung des AKF-Wertes $\varphi_x(0)$ wird über $\underline{N =10000}$ Summanden gemittelt, für $\varphi_x(10)$ nur über $\underline{N = 9990}$.
(2) Richtig sind die Lösungsvorschläge 1, 3 und 4:
- Die Rechenzeit steigt mit $N$ und $l + 1$ näherungsweise linear an, wie aus der rot hervorgehobenen AKF-Berechnung hervorgeht. Die Rechenzeit für die weiteren Programmteile kann demgegenüber vernachlässigt werden.
- Natürlich wird die Berechnung mit steigendem $N$ auch genauer. Dies geht hier – im Gegensatz zum Programm „akf1” von Aufgabe 4.11 – allerdings auf Kosten des erforderlichen Speicherbedarfs. Da jede Float-Variable genau vier Byte beansprucht, benötigt alleine das Hilfsfeld ${\rm H}[10000 ]$ einen Speicher von 40 kByte.
(3) Richtig sind die Lösungsvorschläge 1 und 3:
- Je stärker die statistischen Bindungen innerhalb des Zufallsprozesses sind, desto ungenauer ist bei gegebenem $N$ die AKF-Berechnung.
- Diesen Sachverhalt kann man sich beispielsweise anhand der Leistungsberechnung (AKF-Wert an der Stelle $k=0$) verdeutlichen:
Sind alle N Abtastwerte statistisch unabhängig, so liefern alle Beiträge die maximale Information über den AKF–Wert $\varphi_x(k=0)$.
- Bestehen jedoch statistische Bindungen zwischen $x_\nu$ und $x_{\nu+1}$, nicht jedoch zwischen $x_\nu$ und $x_{\nu+2}$, so liefern nur die Hälfte aller Abtastwerte die volle Information über $\varphi_x(k=0)$ und die anderen nur eingeschränkte Informationen.
Dieser auf Korrelationen beruhende Informationsverlust kann in diesem Beispiel nur durch eine Verdopplung von $N$ ausgeglichen werden.
- Die letzte Aussage trifft ebenfalls zu, wie auf der Seite „Genauigkeit der numerischen AKF-Berechnung” im Theorieteil ausführlich erläutert wird.