Digital Signal Processing Reference
In-Depth Information
The digital filtering is performed as
v
0
ð0Þ¼2v
0
ð1Þv
0
ð2Þþxð0Þ¼0 þ 0 þ 1 ¼ 1
v
0
ð1Þ¼2v
0
ð0Þv
0
ð1Þþxð1Þ¼2 1 þ 0 þ 2 ¼ 4
v
0
ð2Þ¼2v
0
ð1Þv
0
ð0Þþxð2Þ¼2 4 1 þ 3 ¼ 10
v
0
ð3Þ ¼ 2v
0
ð2Þ v
0
ð1Þ þ xð3Þ ¼ 2 10 4 þ 4 ¼ 20
v
0
ð4Þ¼2v
0
ð3Þv
0
ð2Þþxð4Þ¼2 20 10 þ 0 ¼ 30
Then the squared magnitude is determined by
4
v
0
3
jX ð0Þj
2
¼ v
0
þ v
0
¼ð30Þ
2
þð20Þ
2
2 30 20 ¼ 100
4
3
2v
0
Thus, the amplitude spectrum is computed as
A
0
¼
1
4
r
jX ð0Þj
2
¼ 2:5
A MATLAB function for the Geortzel algorithm is shown in Program 8.20.
Program 8.20. MATLAB function for Geortzel Algorithm.
function [ Xk, Ak]
¼
galg(x,k)
% Geortzel Algorithm
% [ Xk, Ak]
¼
galg(x,k)
%x
¼
input vetcor; k
¼
frequency index
%Xk
¼
kth DFT coeficient; Ak
¼
magnitude of the kth DFT coefficient
N
¼
length(x); x
¼
[x 0];
vk
¼
zeros(1,N
þ
3);
for n
¼
1:N
þ
1
vk(n
þ
2)
¼
2*cos(2*pi*k/N)*vk(n
þ
1)-vk(n)
þ
x(n);
end
Xk
¼
vk(N
þ
3)-exp(-2*pi*j*k/N)*vk(N
þ
2);
Ak
¼
vk(N
þ
3)*vk(N
þ
3)
þ
vk(N
þ
2)*vk(N
þ
2)-2*cos(2*pi*k/N)*vk(N
þ
3)*vk(N
þ
2);
Ak
¼
sqrt(Ak)/N;
end
EXAMPLE 8.28
Use Program 8.20 to verify the results in Examples 8.26 and 8.27.
Solution:
a. For Example 8.26, we obtain
>> x¼[1 2 3 4]
Search WWH ::
Custom Search