Exercise 4.11Z: C Program "acf2"

From LNTwww
Revision as of 15:27, 14 September 2016 by Nabil (talk | contribs) (Die Seite wurde neu angelegt: „ {{quiz-Header|Buchseite=Stochastische Signaltheorie/Autokorrelationsfunktion (AKF) }} right| :Sie sehen rechts das C-Progra…“)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

P ID395 Sto Z 4 11.png
Sie sehen rechts das C-Programm „akf2” zur Berechnung der diskreten AKF-Werte φx(k) mit Index k = 0, ... , l. Im Gegensatz zum Programm „akf1” aus Aufgabe A4.11 wird hier der im Theorieteil 4.4 beschriebene Algorithmus direkt angewendet. Dabei ist zu beachten:
Der an das Programm übergebene Long-Wert sei hier l = 10. Die berechneten AKF-Werte φx(0) ... φx(10) werden mit dem Float-Feld AKF[ ] an das Hauptprogramm zurückgegeben. In den Zeilen 7 und 8 wird dieses Feld mit Nullen vorbelegt.
Die Zufallsgröße x( ) ist als Float-Funktion in Zeile 4 definiert, ebenso ein Hilfsfeld H[10000], in das die N = 10000 Abtastwerte xν eingetragen werden (Zeile 9 und 10).
Die Bezeichnungen der Laufvariablen in Zeile 6 sind an den angegebenen Algorithmus angepasst.
Die eigentliche AKF-Berechnung erfolgt ab Zeile 11. Dieser Programmteil ist im Programmcode rot gekennzeichnet.
Hinweis: Die Aufgabe beschreibt den im Kapitel 4.4 angegebenen Berechnungsalgorithmus.


Fragebogen

1

Auf wie vielen Summanden (S) basiert die AKF-Berechnung für den Index k = 0 bzw. für k = 10?

$S_\text{$k=0$}$ =

$S_\text{$k=10$}$ =

2

Welche der nachfolgenden Aussagen sind richtig?

Die Rechenzeit steigt linear mit l + 1, also mit der Anzahl der zu berechnenden AKF-Werte.
Die Rechenzeit nimmt mit der Anzahl N der berücksichtigten Abtastwerte quadratisch zu.
Die Berechnung wird mit steigendem N genauer.
Wird eine Floatvariable mit 4 Byte dargestellt, so benötigt „akf2” mindestens 4 · N Byte Speicherplatz.

3

Welche der nachfolgenden Aussagen sind zutreffend?

Je stärker die inneren statistischen Bindungen des Prozesses sind, desto ungenauer ist bei gegebenem N das AKF-Ergebnis.
Je stärker die inneren statistischen Bindungen des Prozesses sind, desto genauer ist bei gegebenem N das AKF-Ergebnis.
Besitzt der Prozess statistische Bindungen, so sind die Fehler der numerischen AKF-Berechnung ebenfalls korreliert.
Beispiel: Ist der Wert φx(k = 5) zu groß, so werden mit großer Wahrscheinlichkeit auch φx(k = 4) und φx(k = 6) zu groß sein.


Musterlösung

1.  Zur Berechnung des AKF-Wertes φx(0) wird über N = 10000 Summanden gemittelt, für φx(10) nur über Nl = 9990.
2.  Die Rechenzeit steigt mit N und l + 1 näherungsweise linear an, wie aus der rot hervorgehobenen AKF-Berechnung hervorgeht. Die Rechenzeit für die weiteren Programmteile kann demgegenüber vernachlässigt werden. Natürlich wird die Berechnung mit steigendem N auch genauer. Dies geht hier – im Gegensatz zum Programm „akf1” von Aufgabe A4.11 – allerdings auf Kosten des erforderlichen Speicherbedarfs. Da jede Float-Variable genau vier Byte beansprucht, benötigt alleine das Hilfsfeld H[10000] einen Speicher von 40 kByte. Richtig sind somit die Lösungsvorschläge 1, 3 und 4.
3.  Je stärker die statistischen Bindungen innerhalb des Zufallsprozesses sind, desto ungenauer ist bei gegebenem N die AKF-Berechnung. Diesen Sachverhalt kann man sich beispielsweise anhand der Leistungsberechnung (AKF-Wert an der Stelle k = 0) verdeutlichen: Sind alle N Abtastwerte statistisch unabhängig, so liefern alle Beiträge die maximale Information über den AKF–Wert φx(k = 0).
Bestehen jedoch statistische Bindungen zwischen xν und xν+1, nicht jedoch zwischen xν und xν+2, so liefern nur die Hälfte aller Abtastwerte die volle Information über φx(k = 0) und alle anderen nur eingeschränkte Informationen. Dieser auf Korrelationen beruhende Informationsverlust kann in diesem Beispiel nur durch eine Verdopplung von N ausgeglichen werden.
Die letzte Aussage trifft ebenfalls zu, wie im Kapitel 4.4 auf der Seite Genauigkeit der numerischen AKF-Berechnung im Theorieteil ausführlich erläutert wird. Richtig sind somit die Lösungsvorschläge 1 und 3.