Loading [MathJax]/jax/output/HTML-CSS/fonts/TeX/fontdata.js

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

Aus LNTwww
Wechseln zu:Navigation, Suche
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
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 φ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  φ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.
+
* 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).
+
* 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 [[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 H[ ] 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 H[ ] die Zufallswerte x1, ... , x11.
+
* Vor Beginn des eigentlichen Berechnungsalgorithmus  (Zeile 11 bis 21)  stehen in den elf Speicherzellen von  ${\rm H}\big[ \  \big]$  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.
  
* Die äußere Schleife mit der Laufvariablen z (rot markiert) wird N-mal durchlaufen.
+
* In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl  $N$  der analysierten Daten  dividiert.  
*In der inneren Schleife (weiß markiert) werden mit dem Laufindex $k = 0,...,lalleSpeicherzellendesFeldes{\rm AKF}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$ um den Betrag xνxν+k erhöht.
 
  
* In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl N dividiert.
 
  
  
Zeile 23: Zeile 23:
  
  
''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 33:
  
 
<quiz display=simple>
 
<quiz display=simple>
{Welche Elemente i und j  des Hilfsfeldes H[ ] werden <u>beim ersten Durchlauf</u> (z=0) zur Berechnung des AKF&ndash;Wertes φ(k=6) verwendet? <br>Welche Zufallswerte xν stehen in diesen Speicherzellen?
+
{Welche Elemente&nbsp; i&nbsp; und&nbsp; j&nbsp; des Hilfsfeldes&nbsp; ${\rm H}\big[ \  \big]$&nbsp; werden&nbsp; <u>beim ersten Durchlauf</u> &nbsp; (z=0)&nbsp; zur Berechnung des AKF&ndash;Wertes&nbsp; φ(k=6)&nbsp; verwendet? <br>Welche Zufallswerte&nbsp; xν&nbsp; stehen in diesen Speicherzellen?
 
|type="{}"}
 
|type="{}"}
 
i =   { 0. }
 
i =   { 0. }
Zeile 39: Zeile 39:
  
  
{Welche Speicherzelle  H[i] wird <u>nach dem ersten Schleifendurchgang</u> (z=0) mit einer neuen Zufallsgr&ouml;&szlig;e xν belegt? <br>Welcher Index ν wird dabei eingetragen?
+
{Welche Speicherzelle&nbsp; H[i]&nbsp; wird&nbsp; <u>nach dem ersten Schleifendurchgang</u> &nbsp; (z=0)&nbsp; mit einer neuen Zufallsgr&ouml;&szlig;e&nbsp; xν&nbsp; belegt? <br>Welcher Index&nbsp; ν&nbsp; wird dabei eingetragen?
 
|type="{}"}
 
|type="{}"}
 
i =   { 0. }
 
i =   { 0. }
Zeile 45: Zeile 45:
  
  
{Welche Speicherelemente H[i] und H[j] werden beim Schleifendurchlauf z=83 zur Berechnung des AKF-Wertes φ(k=6) verwendet? <br>Welche Zufallswerte stehen in diesen Speicherzellen?
+
{Welche Speicherelemente&nbsp; H[i]&nbsp; und&nbsp; H[j]&nbsp; werden beim Schleifendurchlauf&nbsp; z=83&nbsp; zur Berechnung des AKF-Wertes&nbsp; φ(k=6)&nbsp; verwendet? <br>Welche Zufallswerte stehen in diesen Speicherzellen?
 
|type="{}"}
 
|type="{}"}
 
i =   { 6 }
 
i =   { 6 }
Zeile 59: Zeile 59:
 
[[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]]
 
[[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]]
 
<br>
 
<br>
'''(1)'''&nbsp; Mit  z=0 und k=6 ergibt sich gem&auml;&szlig; dem Programm: &nbsp; i=0_ und j=6_.  
+
'''(1)'''&nbsp; Mit&nbsp; z=0&nbsp; und&nbsp; k=6&nbsp; ergibt sich gem&auml;&szlig; dem Programm: &nbsp; i=0_&nbsp; und&nbsp; j=6_.
<br>Die entsprechenden Speicherinhalte sind H[0]=x1 und H[6]=x7.
+
*Die entsprechenden Speicherinhalte sind&nbsp; ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big] = x_1$&nbsp; und&nbsp; ${\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] = x_7$.
  
  
'''(2)'''&nbsp; In das Feld H[0] wird nun die Zufallsgr&ouml;&szlig;e x12 eingetragen:
+
 
 +
'''(2)'''&nbsp; In das Feld&nbsp; ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big]$&nbsp; wird nun die Zufallsgr&ouml;&szlig;e&nbsp; x12&nbsp; eingetragen:
 
:Speicherzelle i=0_,Folgenindex ν=12_.
 
:Speicherzelle i=0_,Folgenindex ν=12_.
  
  
'''(3)'''&nbsp; Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten xν.
 
  
*Jeweils gr&uuml;n hinterlegt ist die Speicherzelle H[i]. In diesen Speicherplatz wird jeweils am Ende der Schleife (Zeile 18) die neue Zufallsgr&ouml;&szlig;e eingetragen.
+
'''(3)'''&nbsp; Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten&nbsp; xν.
*F&uuml;r z=83 und K=6 ergibt sich  
+
 
:\underline{i= 83 \mod \ 11 = 6},\hspace{1cm} \underline{j= (i+k) \mod \ 11 = 1}.
+
*Jeweils gr&uuml;n hinterlegt ist die Speicherzelle&nbsp; ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm}\big]$.&nbsp; In diesen Speicherplatz wird jeweils am Ende der Schleife&nbsp; (Zeile 18)&nbsp; die neue Zufallsgr&ouml;&szlig;e eingetragen.
*Schleifendurchlaufs z= 83: &nbsp; In der Speicherzelle {H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] steht die Zufallsgr&ouml;&szlig;e x_{84} und in der Speicherzelle {H}\big[\hspace{0.03cm} 1 \hspace{0.03cm}\big]die Zufallsgr&ouml;&szlig;e x_{90}.  
+
*F&uuml;r&nbsp; z= 83&nbsp; und&nbsp; K=6&nbsp; ergibt sich  
*Am Ende des Schleifendurchlaufs z= 83 wird in {H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big] der Inhalt x_{84} durch x_{95} ersetzt.
+
:$$\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&nbsp; z= 83: &nbsp; In der Speicherzelle&nbsp; ${\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big]$&nbsp; steht die Zufallsgr&ouml;&szlig;e&nbsp; x_{84}&nbsp; und in der Speicherzelle&nbsp; ${\rm H}\big[\hspace{0.03cm} 1 \hspace{0.03cm}\big]$&nbsp; die Zufallsgr&ouml;&szlig;e&nbsp; x_{90}.  
 +
*Am Ende des Schleifendurchlaufs&nbsp; z= 83&nbsp; wird in&nbsp; ${\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big]$&nbsp; der Inhalt&nbsp; x_{84}&nbsp; durch&nbsp; x_{95}&nbsp; ersetzt.
 
{{ML-Fuß}}
 
{{ML-Fuß}}
  

Aktuelle Version vom 21. März 2022, 17:56 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 \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.