Aufgaben:Aufgabe 4.11: C-Programm „akf1”: Unterschied zwischen den Versionen
Aus LNTwww
K (Textersetzung - „\*\s*Sollte die Eingabe des Zahlenwertes „0” erforderlich sein, so geben Sie bitte „0\.” ein.“ durch „ “) |
|||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
}} | }} | ||
− | [[Datei:P_ID391__Sto_A_4_11.png|right|C-Programm 1 zur AKF | + | [[Datei:P_ID391__Sto_A_4_11.png|right|frame|C-Programm $1$ zur AKF–Berechnung]] |
− | Sie sehen nebenstehend das C | + | 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 | + | * Der an das Programm übergebene Long–Wert sei l=10. Die AKF-Werte φx(0), ... , φ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ν 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| | + | * 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. 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. | ||
+ | |||
+ | * In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl N der analysierten Daten dividiert. | ||
− | |||
− | |||
− | |||
− | ''Hinweise:'' | + | |
− | *Die Aufgabe gehört zum Kapitel [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)|Autokorrelationsfunktion]]. | + | '''Hinweise:''' |
− | *Bezug genommen wird insbesondere auf die Seite [[Stochastische_Signaltheorie/Autokorrelationsfunktion_(AKF)#Numerische_AKF-Ermittlung|Numerische AKF-Ermittlung]]. | + | *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]]. | ||
Zeile 29: | Zeile 33: | ||
<quiz display=simple> | <quiz display=simple> | ||
− | {Welche Elemente i und j des Hilfsfeldes H[ ] werden beim ersten Durchlauf (z=0) zur Berechnung des AKF | + | {Welche Elemente i und j des Hilfsfeldes ${\rm H}\big[ \ \big]$ werden <u>beim ersten Durchlauf</u> (z=0) zur Berechnung des AKF–Wertes φ(k=6) verwendet? <br>Welche Zufallswerte xν stehen in diesen Speicherzellen? |
|type="{}"} | |type="{}"} | ||
− | i = { 0. } | + | $i \ = \ $ { 0. } |
− | j = { 6 } | + | $j \ = \ $ { 6 } |
− | {Welche Speicherzelle H[i] wird nach dem ersten Schleifendurchgang (z=0) mit einer neuen Zufallsgröße xν belegt? Welcher Index ν wird dabei eingetragen? | + | {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öße xν belegt? <br>Welcher Index ν wird dabei eingetragen? |
|type="{}"} | |type="{}"} | ||
− | i = { 0. } | + | $i \ = \ $ { 0. } |
− | ν = { 12 } | + | $\nu\ =\ $ { 12 } |
− | {Welche Speicherelemente H[i] und H[j] werden beim Schleifendurchlauf z=83 zur Berechnung des AKF-Wertes φ(k=6) verwendet? Welche Zufallswerte stehen in diesen Speicherzellen? | + | {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 φ(k=6) verwendet? <br>Welche Zufallswerte stehen in diesen Speicherzellen? |
|type="{}"} | |type="{}"} | ||
− | i = { 6 } | + | $i \ = \ $ { 6 } |
− | j = { 1 } | + | $j \ = \ $ { 1 } |
Zeile 53: | Zeile 57: | ||
===Musterlösung=== | ===Musterlösung=== | ||
{{ML-Kopf}} | {{ML-Kopf}} | ||
− | '''(1)''' Mit z=0 und k=6 ergibt sich gemäß dem Programm: i=0_ und j=6_. | + | [[Datei:P_ID417__Sto_A_4_11_b.png|right|frame|Zur numerischen AKF-Berechnung]] |
− | + | <br> | |
+ | '''(1)''' Mit z=0 und k=6 ergibt sich gemäß dem Programm: i=0_ und 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 H[0] wird nun die Zufallsgröße x12 eingetragen: | + | |
+ | |||
+ | '''(2)''' In das Feld ${\rm H}\big[\hspace{0.03cm} 0 \hspace{0.03cm}\big]$ wird nun die Zufallsgröße x12 eingetragen: | ||
:Speicherzelle i=0_,Folgenindex ν=12_. | :Speicherzelle i=0_,Folgenindex ν=12_. | ||
− | |||
− | |||
− | *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. | + | '''(3)''' Die Grafik zeigt die Belegung des Hilfsfeldes mit den Zufallswerten xν. |
− | *Für z=83 und K=6 ergibt sich $\underline{i= 83 \mod \ 11 = 6} | + | |
− | *In | + | *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. |
− | *Am Ende des Schleifendurchlaufs z=83 wird in H[6] der | + | *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 H[6] steht die Zufallsgröße x84 und in der Speicherzelle H[1] die Zufallsgröße x90. | ||
+ | *Am Ende des Schleifendurchlaufs z=83 wird in ${\rm H}\big[\hspace{0.03cm} 6 \hspace{0.03cm}\big]$ der Inhalt x84 durch x95 ersetzt. | ||
{{ML-Fuß}} | {{ML-Fuß}} | ||
Aktuelle Version vom 21. März 2022, 17:56 Uhr
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.
- 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 Theorieteil angegebenen Algorithmus, der im Programm „akf2” von Aufgabe 4.11Z 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 elf Speicherzellen von H[ ] 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.
- In den Zeilen 22 und 23 werden schließlich alle AKF–Werte durch die Anzahl N der analysierten Daten dividiert.
Hinweise:
- Die Aufgabe gehört zum Kapitel Autokorrelationsfunktion.
- Bezug genommen wird insbesondere auf die Seite Numerische AKF-Ermittlung.
Fragebogen
Musterlösung
(1) Mit 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 nun die Zufallsgröße x12 eingetragen:
- Speicherzelle i=0_,Folgenindex ν=12_.
(3) Die Grafik zeigt die Belegung des Hilfsfeldes 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
- \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.