Digital Signal Processing Reference
In-Depth Information
1.2.3 Verkettete Programme und Unterprogramme
Das kleine Programmbeispiel in Bild 1-5 ist vom Prinzip her eine Verkettung von MATLAB-
Programmen. Taucht in einem M-File der Name eines weiteren M-File auf, so wird es
geöffnet und sein Inhalt wie Tastatureingaben im Command Window interpretiert. Alle neu
definierten Datenfelder werden im Workspace abgelegt und stehen auch nach der Bearbei-
tung des M-File als globale Variablen zur Verfügung.
Dies ist für kleine Programmbeispiele sehr passend. Bei umfangreichen Projekten würden sich
jedoch sehr schnell folgende Probleme einstellen:
Überlastung des Arbeitsspeichers;
unstrukturierte Programme;
unzumutbare Programmlaufzeiten;
häufige Programmierfehler und unbeabsichtigtes Überschreiben von Daten.
MATLAB unterstützt deshalb MATLAB-eigene und anwenderdefinierte Funktionen. Bei den
MATLAB-eigenen Funktionen handelt es sich um offene M-Files oder in sich geschlossene
speicher- und laufzeitoptimierte Programmmodule.
Anwenderdefinierte Funktionen werden zwar prinzipiell wie Tastatureingaben im Command
Window interpretiert, besitzen aber eine definierte Schnittstelle zum aufrufenden Programm
und verwalten ihre Daten lokal. Das folgende Beispiel soll Ihnen das Arbeiten mit selbstdefi-
nierten Funktionen erläutern.
Wir wählen ein etwas anspruchsvolleres Beispiel aus der Signalverarbeitung, die Approxima-
tion eines periodischen Rechteckimpulszuges durch den Gleichanteil und die Harmonischen
der Fourierreihe.
Bild 1-6 zeigt einen Ausschnitt aus einem periodischen Rechteckimpulszug in normierter Dar-
stellung. Die Periode beträgt 1. Die Amplitude alterniert im Abstand der halben Periode zwi-
schen den Werten 1 und 0.
x ( t )
1
0
t
0
0.5
1
2
3
Bild 1-6 Periodischer Rechteckimpulszug in normierter Darstellung
Wir erstellen zunächst eine MATLAB-Funktion für die Funktionswerte des periodischen
Rechteckimpulses.
Bevor Sie beginnen, löschen Sie zuerst den Workspace mit dem Kommando clear im
Command Window . Dann öffnen Sie ein neues Editor/Debugger-Window und geben
die Zeilen im Programmbeispiel 1-2 ein.
Programme die eine Funktion darstellen speichern Sie am besten unter den jeweiligen Funk-
tionsnamen ab, hier rectangular.m .
Search WWH ::




Custom Search