Difference between revisions of "Aufgaben:Exercise 4.11: C Program "acf1""
From LNTwww
(Die Seite wurde neu angelegt: „ {{quiz-Header|Buchseite=Stochastische Signaltheorie/Autokorrelationsfunktion (AKF) }} right| :Sie sehen nebenstehend das C-…“) |
|||
Line 3: | Line 3: | ||
}} | }} | ||
− | [[File:P_ID391__Sto_A_4_11.png|right|]] | + | [[File:P_ID391__Sto_A_4_11.png|right|C-Programm 1 zur AKF-Berechnung]] |
− | + | Sie sehen nebenstehend das C-Programm „akf1” zur Berechnung der diskreten AKF-Werte $\varphi_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 $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm 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_\nu$ 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 [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Theoriteil]] angegebenen Algorithmus, der im Programm „akf2” von [[Aufgaben:4.11Z_C-Programm_„akf2”|Zusatzaufgabe 4.11]] 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 11 Speicherzellen die Zufallswerte $x_1$, ... , $x_{11}$. | |
− | + | * 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 ${\rm AKF}[ k ]$ um den Betrag $x_\nu \cdot x_{\nu+k}$ erhöht. | |
− | + | * In den Zeilen 22 und 23 werden schließlich alle AKF-Werte durch die Anzahl $N$ dividiert. | |
+ | |||
+ | |||
+ | ''Hinweise:'' | ||
+ | *Die Aufgabe gehört zum Kapitel [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)|Autokorrelationsfunktion]]. | ||
+ | *Bezug genommen wird insbesondere auf die Seite [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]]. | ||
+ | *Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein. | ||
− | |||
Revision as of 16:12, 24 March 2017
Sie sehen nebenstehend das C-Programm „akf1” zur Berechnung der diskreten AKF-Werte $\varphi_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 $\varphi_x(0)$, ... , $\varphi_x(10)$ werden mit dem Float-Feld $\rm 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_\nu$ 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 Theoriteil angegebenen Algorithmus, der im Programm „akf2” von Zusatzaufgabe 4.11 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 11 Speicherzellen die Zufallswerte $x_1$, ... , $x_{11}$.
- 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 ${\rm AKF}[ k ]$ um den Betrag $x_\nu \cdot x_{\nu+k}$ erhöht.
- In den Zeilen 22 und 23 werden schließlich alle AKF-Werte durch die Anzahl $N$ dividiert.
Hinweise:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seite Numerische AKF-Ermittlung.
- Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0.” ein.
Fragebogen
Musterlösung
- 1. Aus 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 die Zufallsgröße x12 eingetragen: i = 0, Index ν = 12.
- 3. Das nachfolgende Bild zeigt die Belegung des Hilfsfeldes H[0] ... H[10] 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 i = 83 mod 11 = 6 und j = (i + k) mod 11 = 1. In diesen Speicherzellen liegen die Zufallsgrößen x84 und x90. Am Ende des Schleifendurchlaufs z = 83 wird in H[6] der Wert x84 durch x95 ersetzt.