Digital Signal Processing Reference
In-Depth Information
x
(
t
)
1
0
t
0
1/2
1
2
3
Bild 1-7
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 folgenden Zeilen ein.
Programmbeispiel 1-1
Rechteckimpulszug
% y = rectangular(t,p,w)
% t : time samples (t>=0)
% p : period
% w : impulse width
% rectangular.m * mw * 03/30/2007
function y = rectangular(t,p,w)
y = zeros(size(t));
%
default amplitude = 0
for n=1:length(t)
x = mod(t(n),p);
%
mapping of t into fundamental period
if x>=0 && x<=w
y(n) = 1;
%
set amplitude = 1
end
end
Anmerkung:
Das Programm enthält bereits einige MATLAB-eigene Funktionen, Operatoren und Steuer-
elemente. Mit dem
help
-Kommando zu
mod
,
>=
,
&&
und
for
haben Sie Zugriff auf die jeweilige
MATLAB-Dokumentation.
Die Approximation des periodischen Rechteckimpulszuges geschieht mit der aus der Mathe-
matik bekannten Fourier-Reihe
f
12
1
¦
x t
()
sin (2
n
1) 2
S
t
2
S
2
n
1
n
0
Dazu erstellen Sie folgendes Programm:
Programmbeispiel 1-2
Fourier-Reihe
% y = fourier(t,N)
% t : time samples
% N : number of harmonics used (N>=1)
% fourier.m * mw * 03/30/2007
function y = fourier(t,N)
y = 0.5*ones(size(t));
%
default amplitude = 0
for n=0:N-1
y = y + ((2/pi)/(2*n+1)) * sin((2*n+1)*2*pi*t);
end