Digital Signal Processing Reference
In-Depth Information
N
a
w
und
b
1
(8.14)
1
0
Ferner sind zwei Nebenbedingungen zu beachten.
0
1
xn
0 r
n
6
, ,
,
N
1
(8.15)
y
10A sw t
Die rekursive Struktur der DGL 1. Ordnung wird im Programmbeispiel 8-2 und besonders im
Blockdiagramm des zugehörigen Systems in der Direktform I nochmals sichtbar.
Das Blockdiagramm in Bild 8-5 zeigt die Berechnung des Ausgangswertes y [ n ] in Abhän-
gigkeit vom aktuellen Eingangswert x [ n ] und dem vorherigen Ausgangswert y [ n
1]. Der Block
D symbolisiert eine Verzögerung (Delay) des eingehenden Signals um einen Takt. Die kreis-
förmigen Elemente stehen für die Rechenoperationen „Multiplikation des Signals mit der ange-
gebenen Konstanten“ bzw. „Addition aller ankommenden Signale“. Verzweigen sich Kanten,
so werden die Signale entsprechend oft kopiert.
Werden die Nebenbedingungen (8.15) eingehalten, kann im Zeitschritt N der gesuchte DFT-
Koeffizient am Systemausgang abgegriffen werden, man spricht vom Goertzel-Algorithmus.
Mit dem Goertzel-Algorithmus sind zur Berechnung des DFT-Koeffizienten N komplexe
Multiplikationen und bei den üblichen reellen Eingangssignalen N reelle Additionen erforder-
lich. Pro DFT-Koeffizient ergibt sich dadurch keine Ersparnis zur direkten Berechnung der
DFT-Summe. Sind jedoch nur wenige Koeffizienten zu bestimmen, z. B. beim Mehrfrequenz-
wahlverfahren nur 8 von 256, kann die Einsparung erheblich sein. Hinzu kommt, dass nun
anders als bei der Radix-2-FFT, die DFT-Länge prinzipiell nicht gebunden ist.
Anmerkung: Für den praktischen Einsatz kann der Algorithmus noch effizienter gestaltet werden, sodass
nur reelle Operationen durchgeführt werden müssen, was in Abschnitt 8.4.3 noch genauer erläutert wird.
Eingang
Ausgang
x [ n ]
y [ n ]
D
a 1
y [ n
1]
Bild 8-5 Blockdiagramm eines zeitdiskreten Systems 1. Ordnung in Direktform I für den Goertzel-
Algorithmus
Programmbeispiel 8-2 DGL 1. Ordnung, Goertzel-Algorithmus (Programmausschnitt)
a1 = -exp(1i*2*pi*k/N);
% h[1]
y = x(1);
% y[0] = x[0]
for n = 2:length(x)
y = x(n) - a1*y;
% recursion
end
y = -a1*y;
% dft coefficient
Search WWH ::




Custom Search