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 &bdquo;akf1&rdquo; zur Berechnung der diskreten AKF-Werte <i>&phi;<sub>x</sub></i>(<i>k</i>) mit dem Index <i>k</i> = 0, ... , <i>l</i>. Hierzu ist Folgendes zu bemerken:
+
Sie sehen nebenstehend das C-Programm &bdquo;akf1&rdquo; zur Berechnung der diskreten AKF-Werte $\varphi_x(k)$ mit dem Index $k = 0$, ... , $l$. Hierzu ist Folgendes zu bemerken:
  
:* Der an das Programm &uuml;bergebene Long-Wert sei <i>l</i>&nbsp;=&nbsp;10. Die AKF-Werte <i>&phi;<sub>x</sub></i>(0), ... , <i>&phi;<sub>x</sub></i>(10) werden mit dem Float-Feld <i>AKF</i>[ ] an das aufrufende Programm zur&uuml;ckgegeben. In den  Zeilen 7 und  8 wird dieses Feld mit Nullen vorbelegt.
+
* Der an das Programm &uuml;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&uuml;ckgegeben. In den  Zeilen 7 und  8 des rechts anggebenen Programms wird dieses Feld mit Nullen vorbelegt.
  
:* Die zu analysierenden Zufallsgr&ouml;&szlig;en <i>x<sub>&nu;</sub></i> werden mit der Float-Funktion <i>x</i>( ) erzeugt (siehe Zeile 4). Diese Funktion wird insgesamt <i>N</i> + <i>l</i> + 1 = 10011 mal aufgerufen (Zeile 9 und 18).
+
* Die zu analysierenden Zufallsgr&ouml;&szlig;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 Kapitel 4.4 angegebenen Algorithmus, der im Programm &bdquo;akf2&rdquo; von Aufgabe Z4.11 direkt umgesetzt ist, ben&ouml;tigt man hier ein Hilfsfeld <i>H</i>[&nbsp;] mit nur <i>l</i> + 1 = 11 Speicherelementen.
+
* Im Gegensatz zu dem im [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Theoriteil]] angegebenen Algorithmus, der im Programm &bdquo;akf2&rdquo; von [[Aufgaben:4.11Z_C-Programm_„akf2”|Zusatzaufgabe 4.11]] direkt umgesetzt ist, ben&ouml;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 <i>x</i><sub>1</sub> ... <i>x</i><sub>11</sub>.
+
* Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den 11 Speicherzellen die Zufallswerte $x_1$, ... , $x_{11}$.
  
:* Die &auml;u&szlig;ere Schleife mit der Laufvariablen <i>z</i> (rot markiert) wird <i>N</i>-mal durchlaufen. In der inneren Schleife (wei&szlig; markiert) werden mit dem Laufindex <i>k</i> = 0, ... , <i>l</i> alle Speicherzellen des Feldes <i>AKF</i>[<i>k</i>] um den Betrag <i>x<sub>&nu;</sub></i> &middot; <i>x<sub>&nu; + k</sub></i> erh&ouml;ht.
+
* Die &auml;u&szlig;ere Schleife mit der Laufvariablen $z$ (rot markiert) wird $N$-mal durchlaufen. In der inneren Schleife (wei&szlig; 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&ouml;ht.
  
:* In den Zeilen 22 und 23 werden schlie&szlig;lich alle AKF-Werte durch die Anzahl <i>N</i> dividiert.  
+
* In den Zeilen 22 und 23 werden schlie&szlig;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 &bdquo;0&rdquo; erforderlich sein, so geben Sie bitte &bdquo;0.&rdquo; ein.
  
:<b>Hinweis:</b> Diese Aufgabe bezieht sich auf die Theorieseite Numerische Ermittlung der AKF.
 
  
  

Revision as of 16:12, 24 March 2017

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 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:


Fragebogen

1

Welche Elemente i und j des Hilfsfeldes H[ ... ] werden beim ersten Durchlauf (z = 0) zur Berechnung des AKF-Wertes φx(k = 6) verwendet? Welche Zufallswerte xν stehen in diesen Speicherzellen?

$i$ = -

$j$ =

2

Welche Speicherzelle H[i] wird nach dem ersten Schleifendurchgang (z = 0) mit einer neuen Zufallsgröße xν belegt? Welcher Index ν wird dabei eingetragen?

$i$ =

$v$ =

3

Welche Speicherelemente H[i] und H[j] werden beim Schleifendurchlauf z = 83 zur Berechnung des AKF-Wertes φx(k = 6) verwendet? Welche Zufallswerte stehen in diesen Speicherzellen?

$i$ =

$j$ =


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.
P ID417 Sto A 4 11 b.png
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.