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

Aus LNTwww
Wechseln zu:Navigation, Suche
(Die Seite wurde neu angelegt: „ {{quiz-Header|Buchseite=Stochastische Signaltheorie/Autokorrelationsfunktion (AKF) }} right| :Sie sehen nebenstehend das C-…“)
 
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
 
}}
 
}}
  
[[Datei:P_ID391__Sto_A_4_11.png|right|]]
+
[[Datei:P_ID391__Sto_A_4_11.png|right|frame|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&ndash;Programm &bdquo;akf1&rdquo; zur Berechnung der diskreten AKF-Werte&nbsp; $\varphi_x(k)$&nbsp; mit dem Index&nbsp; $k = 0$, ... , $l$.&nbsp; 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&ndash;Wert sei&nbsp; $l = 10$.&nbsp; Die AKF-Werte&nbsp; $\varphi_x(0)$, ... , $\varphi_x(10)$&nbsp; werden mit dem Float-Feld&nbsp; $\rm AKF\big[ \  \big]$&nbsp; an das aufrufende Programm zur&uuml;ckgegeben.&nbsp; 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&nbsp; $x_\nu$&nbsp; werden mit der Float-Funktion&nbsp; $x( )$&nbsp; erzeugt (siehe Zeile 4).&nbsp; Diese Funktion wird insgesamt&nbsp; $N + l + 1 = 10011$&nbsp; mal aufgerufen&nbsp; (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&nbsp; [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Theorieteil]]&nbsp; angegebenen Algorithmus,&nbsp; der im Programm&nbsp; &bdquo;akf2&rdquo;&nbsp; von&nbsp; [[Aufgaben:4.11Z_C-Programm_„akf2”|Aufgabe 4.11Z]]&nbsp; direkt umgesetzt ist,&nbsp; ben&ouml;tigt man hier ein Hilfsfeld&nbsp; ${\rm H}\big[ \  \big]$&nbsp; mit nur&nbsp; $l + 1 = 11$&nbsp; 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&nbsp; (Zeile 11 bis 21)&nbsp; stehen in den elf Speicherzellen von&nbsp; ${\rm H}\big[ \  \big]$&nbsp; die Zufallswerte&nbsp; $x_1$, ... ,&nbsp; $x_{11}$.&nbsp; Die &auml;u&szlig;ere Schleife mit der Laufvariablen&nbsp; $z$&nbsp; (rot markiert) wird&nbsp; $N$-mal durchlaufen.
 +
 +
*In der inneren Schleife&nbsp; (wei&szlig; markiert)&nbsp; werden mit dem Laufindex&nbsp; $k = 0$, ... ,&nbsp; $l$&nbsp; alle Speicherzellen des Feldes&nbsp; ${\rm AKF}\big[\hspace{0.03cm} k \hspace{0.03cm} \big]$&nbsp; um den Beitrag&nbsp; $x_\nu \cdot x_{\nu+k}$&nbsp; erh&ouml;ht.
  
:* 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.
+
* In den Zeilen 22 und 23 werden schlie&szlig;lich alle AKF&ndash;Werte durch die Anzahl&nbsp; $N$&nbsp; der analysierten Daten  dividiert.  
  
:* In den Zeilen 22 und 23 werden schlie&szlig;lich alle AKF-Werte durch die Anzahl <i>N</i> dividiert.
 
  
:<b>Hinweis:</b> Diese Aufgabe bezieht sich auf die Theorieseite Numerische Ermittlung der AKF.
+
 
 +
 
 +
 
 +
 
 +
'''Hinweise:'''
 +
*Die Aufgabe gehört zum  Kapitel&nbsp; [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)|Autokorrelationsfunktion]].
 +
*Bezug genommen wird insbesondere auf die Seite&nbsp; [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]].
 +
 +
 
  
  
Zeile 24: Zeile 33:
  
 
<quiz display=simple>
 
<quiz display=simple>
{Welche Elemente <i>i</i> und <i>j</i> des Hilfsfeldes <i>H</i>[ ... ] werden beim ersten Durchlauf (<i>z</i> = 0) zur Berechnung des AKF-Wertes <i>&phi;<sub>x</sub></i>(<i>k</i> = 6) verwendet? Welche Zufallswerte <i>x<sub>&nu;</sub></i> 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; $\varphi(k=6)$&nbsp; verwendet? <br>Welche Zufallswerte&nbsp; $x_\nu$&nbsp; stehen in diesen Speicherzellen?
 
|type="{}"}
 
|type="{}"}
$i$ = - { 0 3% }
+
$i \ = \ $   { 0. }
$j$ = { 6 3% }
+
$j \ = \ $ { 6 }
  
  
{Welche Speicherzelle  <i>H</i>[<i>i</i>] wird nach dem ersten Schleifendurchgang (<i>z</i> = 0) mit einer neuen Zufallsgr&ouml;&szlig;e <i>x<sub>&nu;</sub></i> belegt? Welcher Index <i>&nu;</i> wird dabei eingetragen?
+
{Welche Speicherzelle&nbsp; ${\rm H}\big[\hspace{0.03cm} i \hspace{0.03cm} \big]$&nbsp; wird&nbsp; <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 3% }
+
$i \ = \ $   { 0. }
$v$ = { 12 3% }
+
$\nu\ =\ $ { 12 }
  
  
{Welche Speicherelemente <i>H</i>[<i>i</i>] und <i>H</i>[<i>j</i>] werden beim Schleifendurchlauf <i>z</i> = 83 zur Berechnung des AKF-Wertes <i>&phi;<sub>x</sub></i>(<i>k</i> = 6) verwendet? 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 3% }
+
$i \ = \ $   { 6 }
$j$ = { 1 3% }
+
$j \ = \ $ { 1 }
 +
 
  
  
Zeile 47: Zeile 57:
 
===Musterlösung===
 
===Musterlösung===
 
{{ML-Kopf}}
 
{{ML-Kopf}}
:<b>1.</b>&nbsp;&nbsp;Aus <i>z</i> = 0 und <i>k</i> = 6 ergibt sich gem&auml;&szlig; dem Programm: <u><i>i</i> = 0</u> und <u><i>j</i> = 6</u>. Die entsprechenden Speicherinhalte sind <i>H</i>[0] = <i>x</i><sub>1</sub> und <i>H</i>[6] = <i>x</i><sub>7</sub>.
+
[[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]]
 +
<br>
 +
'''(1)'''&nbsp; Mit&nbsp; $z= 0$&nbsp; und&nbsp; $k=6$&nbsp; ergibt sich gem&auml;&szlig; dem Programm: &nbsp; $\underline{i= 0}$&nbsp; und&nbsp; $\underline{j= 6}$.
 +
*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&nbsp; ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big]$&nbsp; wird nun die Zufallsgr&ouml;&szlig;e&nbsp; $x_{12}$&nbsp; eingetragen:
 +
:$$\text{Speicherzelle  }\underline{i= 0},\hspace{1cm}\text{Folgenindex  }\underline{\nu= 12}.$$
 +
 
  
:<b>2.</b>&nbsp; &nbsp;In das Feld <i>H</i>[0] wird die Zufallsgr&ouml;&szlig;e <i>x</i><sub>12</sub> eingetragen: <u><i>i</i> = 0, Index <i>&nu;</i> = 12</u>.
 
  
:<b>3.</b>&nbsp;&nbsp;Das nachfolgende Bild zeigt die Belegung des Hilfsfeldes <i>H</i>[0] ... <i>H</i>[10] mit den Zufallswerten <i>x<sub>&nu;</sub></i>. Jeweils gr&uuml;n hinterlegt ist die Speicherzelle <i>H</i>[<i>i</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_\nu$.  
[[Datei:P_ID417__Sto_A_4_11_b.png|center|]]
 
  
:F&uuml;r <i>z</i> = 83 und <i>k</i> = 6 ergibt sich <u><i>i</i> = 83 mod 11 = 6</u> und <u><i>j</i> = (<i>i</i> + <i>k</i>) mod 11 = 1</u>. In diesen Speicherzellen liegen die Zufallsgr&ouml;&szlig;en <i>x</i><sub>84</sub> und <i>x</i><sub>90</sub>. Am Ende des Schleifendurchlaufs <i>z</i> = 83 wird in <i>H</i>[6] der Wert <i>x</i><sub>84</sub> durch <i>x</i><sub>95</sub> ersetzt.
+
*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.
 +
*F&uuml;r&nbsp; $z= 83$&nbsp; und&nbsp; $K=6$&nbsp; 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&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.