Aufgaben:Aufgabe 4.11: C-Programm „akf1”: Unterschied zwischen den Versionen

Aus LNTwww
Wechseln zu:Navigation, Suche
Zeile 3: Zeile 3:
 
}}
 
}}
  
[[Datei:P_ID391__Sto_A_4_11.png|right|frame|C-Programm 1 zur AKF–Berechnung]]
+
[[Datei:P_ID391__Sto_A_4_11.png|right|frame|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:
+
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\big[ \  \big]$ an das aufrufende Programm zurückgegeben. In den  Zeilen 7 und  8 des rechts anggebenen Programms wird dieses Feld mit Nullen vorbelegt.
+
* 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\big[ \  \big]$  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).
+
* 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”|Aufgabe 4.11Z]] direkt umgesetzt ist, benötigt man hier ein Hilfsfeld ${\rm H}\big[ \  \big]$ mit nur $l + 1 = 11$ Speicherelementen.
+
* Im Gegensatz zu dem im  [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Theorieteil]]  angegebenen Algorithmus, der im Programm  „akf2”  von  [[Aufgaben:4.11Z_C-Programm_„akf2”|Aufgabe 4.11Z]]  direkt umgesetzt ist, benötigt man hier ein Hilfsfeld  ${\rm H}\big[ \  \big]$  mit nur  $l + 1 = 11$  Speicherelementen.
  
* Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von ${\rm H}\big[ \  \big]$ die Zufallswerte $x_1$, ... , $x_{11}$.
+
* Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von  ${\rm H}\big[ \  \big]$  die Zufallswerte  $x_1$, ... ,  $x_{11}$.
  
* Die äußere Schleife mit der Laufvariablen $z$ (rot markiert) wird $N$-mal durchlaufen.  
+
* 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}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$ um den Betrag $x_\nu \cdot x_{\nu+k}$ erhöht.
+
*In der inneren Schleife  (weiß markiert)  werden mit dem Laufindex  $k = 0$, ... ,  $l$  alle Speicherzellen des Feldes  ${\rm AKF}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$  um den Beitrag  $x_\nu \cdot x_{\nu+k}$  erhöht.
 +
 
 +
* In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl  $N$  der analysierten Daten  dividiert.  
  
* In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl $N$ dividiert.
 
  
  
Zeile 24: Zeile 25:
  
 
''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 Seite [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]].
+
*Bezug genommen wird insbesondere auf die Seite  [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]].
 
   
 
   
  
Zeile 33: Zeile 34:
  
 
<quiz display=simple>
 
<quiz display=simple>
{Welche Elemente $i$ und $j$  des Hilfsfeldes ${\rm H}\big[ \  \big]$ werden <u>beim ersten Durchlauf</u> $(z=0)$ zur Berechnung des AKF&ndash;Wertes $\varphi(k=6)$ verwendet? <br>Welche Zufallswerte $x_\nu$ stehen in diesen Speicherzellen?
+
{Welche Elemente&nbsp; $i$&nbsp; und&nbsp; $j$&nbsp; des Hilfsfeldes&nbsp; ${\rm H}\big[ \  \big]$&nbsp; werden <u>beim ersten Durchlauf</u>&nbsp; $(z=0)$&nbsp; zur Berechnung des AKF&ndash;Wertes&nbsp; $\varphi(k=6)$&nbsp; verwendet? <br>Welche Zufallswerte&nbsp; $x_\nu$&nbsp; stehen in diesen Speicherzellen?
 
|type="{}"}
 
|type="{}"}
 
$i \ = \ $  { 0. }
 
$i \ = \ $  { 0. }
Zeile 39: Zeile 40:
  
  
{Welche Speicherzelle  ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$ wird <u>nach dem ersten Schleifendurchgang</u> $(z=0)$ mit einer neuen Zufallsgr&ouml;&szlig;e $x_\nu$ belegt? <br>Welcher Index $\nu$ wird dabei eingetragen?
+
{Welche Speicherzelle&nbsp; ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$&nbsp; wird <u>nach dem ersten Schleifendurchgang</u>&nbsp; $(z=0)$&nbsp; mit einer neuen Zufallsgr&ouml;&szlig;e&nbsp; $x_\nu$&nbsp; belegt? <br>Welcher Index&nbsp; $\nu$&nbsp; wird dabei eingetragen?
 
|type="{}"}
 
|type="{}"}
 
$i \ = \ $  { 0. }
 
$i \ = \ $  { 0. }
Zeile 45: Zeile 46:
  
  
{Welche Speicherelemente ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$ und ${\rm H}\big[\hspace{0.03cm} j \hspace{0.03cm} \big]$ werden beim Schleifendurchlauf $z=83$ zur Berechnung des AKF-Wertes $\varphi(k=6)$ verwendet? <br>Welche Zufallswerte stehen in diesen Speicherzellen?
+
{Welche Speicherelemente&nbsp; ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$&nbsp; und&nbsp; ${\rm H}\big[\hspace{0.03cm} j \hspace{0.03cm} \big]$&nbsp; werden beim Schleifendurchlauf&nbsp; $z=83$&nbsp; zur Berechnung des AKF-Wertes&nbsp; $\varphi(k=6)$&nbsp; verwendet? <br>Welche Zufallswerte stehen in diesen Speicherzellen?
 
|type="{}"}
 
|type="{}"}
 
$i \ = \ $  { 6 }
 
$i \ = \ $  { 6 }

Version vom 29. November 2019, 17:26 Uhr

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\big[ \ \big]$  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  Theorieteil  angegebenen Algorithmus, der im Programm  „akf2”  von  Aufgabe 4.11Z  direkt umgesetzt ist, benötigt man hier ein Hilfsfeld  ${\rm H}\big[ \ \big]$  mit nur  $l + 1 = 11$  Speicherelementen.
  • Vor Beginn des eigentlichen Berechnungsalgorithmus (Zeile 11 bis 21) stehen in den elf Speicherzellen von  ${\rm H}\big[ \ \big]$  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}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$  um den Beitrag  $x_\nu \cdot x_{\nu+k}$  erhöht.
  • In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl  $N$  der analysierten Daten dividiert.




Hinweise:



Fragebogen

1

Welche Elemente  $i$  und  $j$  des Hilfsfeldes  ${\rm H}\big[ \ \big]$  werden beim ersten Durchlauf  $(z=0)$  zur Berechnung des AKF–Wertes  $\varphi(k=6)$  verwendet?
Welche Zufallswerte  $x_\nu$  stehen in diesen Speicherzellen?

$i \ = \ $

$j \ = \ $

2

Welche Speicherzelle  ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$  wird nach dem ersten Schleifendurchgang  $(z=0)$  mit einer neuen Zufallsgröße  $x_\nu$  belegt?
Welcher Index  $\nu$  wird dabei eingetragen?

$i \ = \ $

$\nu\ =\ $

3

Welche Speicherelemente  ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$  und  ${\rm H}\big[\hspace{0.03cm} j \hspace{0.03cm} \big]$  werden beim Schleifendurchlauf  $z=83$  zur Berechnung des AKF-Wertes  $\varphi(k=6)$  verwendet?
Welche Zufallswerte stehen in diesen Speicherzellen?

$i \ = \ $

$j \ = \ $


Musterlösung

Zur numerischen AKF-Berechnung


(1)  Mit $z= 0$ und $k=6$ ergibt sich gemäß dem Programm:   $\underline{i= 0}$ und $\underline{j= 6}$.
Die entsprechenden Speicherinhalte sind ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big] = x_1$ und ${\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] = x_7$.


(2)  In das Feld ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big]$ wird nun die Zufallsgröße $x_{12}$ eingetragen:

$$\text{Speicherzelle }\underline{i= 0},\hspace{1cm}\text{Folgenindex }\underline{\nu= 12}.$$


(3)  Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten $x_\nu$.

  • Jeweils grün hinterlegt ist die Speicherzelle ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm}\big]$. 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 \mod \ 11 = 6},\hspace{1cm} \underline{j= (i+k) \mod \ 11 = 1}.$$
  • Schleifendurchlaufs $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.