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