Difference between revisions of "Aufgaben:Exercise 4.11: C Program "acf1""
From LNTwww
m (Text replacement - "”" to """) |
m (Guenter moved page Aufgabe 4.11: C-Programm „akf1” to Exercise 4.11: C Program "z3" „acf1”) |
(No difference)
|
Revision as of 10:53, 28 January 2022
Sie sehen nebenstehend das C–Programm "akf1" zur Berechnung der diskreten AKF-Werte φx(k) mit dem Index k=0, ... , l. Hierzu ist Folgendes zu bemerken:
- Der an das Programm übergebene Long–Wert sei l=10. Die AKF-Werte φx(0), ... , φx(10) werden mit dem Float-Feld AKF[ ] an das aufrufende Programm zurückgegeben. In den Zeilen 7 und 8 des rechts anggebenen Programms wird dieses Feld mit Nullen vorbelegt.
- Die zu analysierenden Zufallsgrößen xν werden mit der Float-Funktion x( ) erzeugt (siehe Zeile 4). Diese Funktion wird insgesamt N+l+1=10011 mal aufgerufen (Zeile 9 und 18).
- Im Gegensatz zu dem im Theorieteil angegebenen Algorithmus, der im Programm "akf2" von Aufgabe 4.11Z direkt umgesetzt ist, benötigt man hier ein Hilfsfeld H[ ] mit nur l+1=11 Speicherelementen.
- Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von H[ ] die Zufallswerte x1, ... , x11.
- Die äußere Schleife mit der Laufvariablen z (rot markiert) wird N-mal durchlaufen.
- In der inneren Schleife (weiß markiert) werden mit dem Laufindex k=0, ... , l alle Speicherzellen des Feldes AKF[k] um den Beitrag xν⋅xν+k erhöht.
- In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl N der analysierten Daten dividiert.
Hinweise:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seite Numerische AKF-Ermittlung.
Fragebogen
Musterlösung
(1) Mit z=0 und k=6 ergibt sich gemäß dem Programm: i=0_ und j=6_.
- Die entsprechenden Speicherinhalte sind H[0]=x1 und H[6]=x7.
(2) In das Feld H[0] wird nun die Zufallsgröße x12 eingetragen:
- Speicherzelle i=0_,Folgenindex ν=12_.
(3) Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten xν.
- Jeweils grün hinterlegt ist die Speicherzelle H[i]. In diesen Speicherplatz wird jeweils am Ende der Schleife (Zeile 18) die neue Zufallsgröße eingetragen.
- Für z=83 und K=6 ergibt sich
- \underline{i= 83 \hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 6},\hspace{1cm} \underline{j= (i+k)\hspace{-0.2cm}\mod \hspace{-0.15cm} \ 11 = 1}.
- Schleifendurchlauf z= 83: In der Speicherzelle {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] steht die Zufallsgröße x_{84} und in der Speicherzelle {\rm H}\big[\hspace{0.03cm} 1 \hspace{0.03cm}\big] die Zufallsgröße x_{90}.
- Am Ende des Schleifendurchlaufs z= 83 wird in {\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] der Inhalt x_{84} durch x_{95} ersetzt.