Digital Signal Processing Reference
In-Depth Information
1.2.2 Programmkontrolle und logische Operatoren
Programme mit nur einfachen Anweisungen und sequenziellem Ablauf sind meist nur von ge-
ringem Nutzen. Typische Aufgabenstellungen der Signalverarbeitung verlangen nach beding-
ten Anweisungen und Kontrolle des Programmablaufs. MATLAB bringt dazu die üblichen, aus
höheren Programmiersprachen bekannten Werkzeuge mit:
bedingte Anweisung if-else-end und if-elseif-else-end
Auswahlanweisung switch-case-end
Schleifen
for-end , while-end und break
Für die bedingten Anweisungen werden die Vergleichsoperatoren in Tabelle 1-2 verwendet.
Dabei lassen sich gegebenenfalls mehrere Bedingungen durch die logischen Operatoren in
Tabelle 1-3 verknüpfen.
Tabelle 1-2 Vergleichsoperatoren
Operator
Definition
Operator
Definition
Operator
Definition
>
<
==
größer
kleiner
gleich
>=
größer oder gleich
<=
kleiner oder gleich
~=
ungleich
Um den Umfang der Einführung kurz zu halten, wird hier auf eine detaillierte Darstellung der
Anwendungsmöglichkeiten verzichtet. Sie können bei Bedarf der MATLAB-Dokumentation
entnommen werden. Einige Beispiele finden
sich in den Versuchen.
Als einziges Beispiel soll hier die While-
Schleife verwendet werden. Mit ihr lässt sich
nämlich die kleinste, von MATLAB darstell-
bare positive Maschinenzahl elegant bestim-
men. Sie ist eine wichtige Größe zur Ab-
schätzung der Rechengenauigkeit der zu-
grundeliegenden Gleitkommaarithmetik. Er-
stellen Sie dazu das M-File zum Programm-
beispiel 1-1.
Anmerkungen: (i) Die letzte Zeile ist ein Beispiel
für die formatierte Bildschirmausgabe. (ii) Den
Zahlenwert erhalten Sie auch mit dem MATLAB-
Befehl eps(0) .
Tabelle 1-3 Logische Operatoren
Operator 1
Definition
&
UND (AND)
|
ODER (OR)
~
Negation (NOT)
XOR
Exklusives ODER (exclusive OR)
1 auch && und || zur beschleunigten Programm-
ausführung (short-cicuit)
Programmbeispiel 1-1 Bestimmung der kleinsten positiven Maschinenzahl
% Precision of the floating point operations
a = 1; n = 0;
while a > 0
n = n + 1;
EPS0 = a;
a = a/2;
end
fprintf( 'EPS0 = %g , n = %i\n' ,EPS0,n)
Search WWH ::




Custom Search