You are on page 1of 5

% Write a MATLAB program to find the DTFT of a given sequence.

x=input('Enter the sequence : ')


N=length(x)
n=0:N-1
K=0:N-1
wn=exp(-j*2*pi/N)
nK=n'*K
wNnK=wn.^nK
df=x*wNnK
subplot(3,1,1)
stem(x,abs(df))
title('DTFT')
xlabel('K')
ylabel('Magnitude')
subplot(3,1,2)
stem(x,angle(df))
title('DTFT')
xlabel('K')
ylabel('phase')
wn=exp(j*2*pi/N)
nK=n'*K
wNnK=wn.^nK
inversdf=(x*wNnK)/N
subplot(3,1,3)
stem(x,abs(inversdf))
title('Inverse DTFT')
xlabel('N')
ylabel('Magnitude')
Enter the sequence : [1 3 5 6 7 2 4 9 8]

x=

1 3 5 6 7 2 4 9 8

N=

n=

0 1 2 3 4 5 6 7 8

K=

0 1 2 3 4 5 6 7 8

wn =

0.7660 - 0.6428i

nK =

0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8
0 2 4 6 8 10 12 14 16
0 3 6 9 12 15 18 21 24
0 4 8 12 16 20 24 28 32
0 5 10 15 20 25 30 35 40
0 6 12 18 24 30 36 42 48
0 7 14 21 28 35 42 49 56
0 8 16 24 32 40 48 56 64

wNnK =

Columns 1 through 7

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000


1.0000 0.7660 - 0.6428i 0.1736 - 0.9848i -0.5000 - 0.8660i -0.9397 - 0.3420i -0.9397 + 0.3420i
-0.5000 + 0.8660i
1.0000 0.1736 - 0.9848i -0.9397 - 0.3420i -0.5000 + 0.8660i 0.7660 + 0.6428i 0.7660 - 0.6428i
-0.5000 - 0.8660i
1.0000 -0.5000 - 0.8660i -0.5000 + 0.8660i 1.0000 + 0.0000i -0.5000 - 0.8660i -0.5000 +
0.8660i 1.0000 + 0.0000i
1.0000 -0.9397 - 0.3420i 0.7660 + 0.6428i -0.5000 - 0.8660i 0.1736 + 0.9848i 0.1736 - 0.9848i
-0.5000 + 0.8660i
1.0000 -0.9397 + 0.3420i 0.7660 - 0.6428i -0.5000 + 0.8660i 0.1736 - 0.9848i 0.1736 +
0.9848i -0.5000 - 0.8660i
1.0000 -0.5000 + 0.8660i -0.5000 - 0.8660i 1.0000 + 0.0000i -0.5000 + 0.8660i -0.5000 -
0.8660i 1.0000 + 0.0000i
1.0000 0.1736 + 0.9848i -0.9397 + 0.3420i -0.5000 - 0.8660i 0.7660 - 0.6428i 0.7660 +
0.6428i -0.5000 + 0.8660i
1.0000 0.7660 + 0.6428i 0.1736 + 0.9848i -0.5000 + 0.8660i -0.9397 + 0.3420i -0.9397 -
0.3420i -0.5000 - 0.8660i

Columns 8 through 9

1.0000 1.0000
0.1736 + 0.9848i 0.7660 + 0.6428i
-0.9397 + 0.3420i 0.1736 + 0.9848i
-0.5000 - 0.8660i -0.5000 + 0.8660i
0.7660 - 0.6428i -0.9397 + 0.3420i
0.7660 + 0.6428i -0.9397 - 0.3420i
-0.5000 + 0.8660i -0.5000 - 0.8660i
-0.9397 - 0.3420i 0.1736 - 0.9848i
0.1736 - 0.9848i 0.7660 - 0.6428i

df =

Columns 1 through 7

45.0000 -1.5997 + 3.7110i -8.3512 +11.2381i -6.0000 - 3.4641i -2.0492 + 2.3309i -2.0492 -
2.3309i -6.0000 + 3.4641i

Columns 8 through 9

-8.3512 -11.2381i -1.5997 - 3.7110i

wn =

0.7660 + 0.6428i

nK =

0 0 0 0 0 0 0 0 0
0 1 2 3 4 5 6 7 8
0 2 4 6 8 10 12 14 16
0 3 6 9 12 15 18 21 24
0 4 8 12 16 20 24 28 32
0 5 10 15 20 25 30 35 40
0 6 12 18 24 30 36 42 48
0 7 14 21 28 35 42 49 56
0 8 16 24 32 40 48 56 64

wNnK =

Columns 1 through 7

1.0000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000


1.0000 0.7660 + 0.6428i 0.1736 + 0.9848i -0.5000 + 0.8660i -0.9397 + 0.3420i -0.9397 -
0.3420i -0.5000 - 0.8660i
1.0000 0.1736 + 0.9848i -0.9397 + 0.3420i -0.5000 - 0.8660i 0.7660 - 0.6428i 0.7660 +
0.6428i -0.5000 + 0.8660i
1.0000 -0.5000 + 0.8660i -0.5000 - 0.8660i 1.0000 - 0.0000i -0.5000 + 0.8660i -0.5000 - 0.8660i
1.0000 - 0.0000i
1.0000 -0.9397 + 0.3420i 0.7660 - 0.6428i -0.5000 + 0.8660i 0.1736 - 0.9848i 0.1736 +
0.9848i -0.5000 - 0.8660i
1.0000 -0.9397 - 0.3420i 0.7660 + 0.6428i -0.5000 - 0.8660i 0.1736 + 0.9848i 0.1736 - 0.9848i
-0.5000 + 0.8660i
1.0000 -0.5000 - 0.8660i -0.5000 + 0.8660i 1.0000 - 0.0000i -0.5000 - 0.8660i -0.5000 + 0.8660i
1.0000 - 0.0000i
1.0000 0.1736 - 0.9848i -0.9397 - 0.3420i -0.5000 + 0.8660i 0.7660 + 0.6428i 0.7660 - 0.6428i
-0.5000 - 0.8660i
1.0000 0.7660 - 0.6428i 0.1736 - 0.9848i -0.5000 - 0.8660i -0.9397 - 0.3420i -0.9397 + 0.3420i
-0.5000 + 0.8660i

Columns 8 through 9

1.0000 1.0000
0.1736 - 0.9848i 0.7660 - 0.6428i
-0.9397 - 0.3420i 0.1736 - 0.9848i
-0.5000 + 0.8660i -0.5000 - 0.8660i
0.7660 + 0.6428i -0.9397 - 0.3420i
0.7660 - 0.6428i -0.9397 + 0.3420i
-0.5000 - 0.8660i -0.5000 + 0.8660i
-0.9397 + 0.3420i 0.1736 + 0.9848i
0.1736 + 0.9848i 0.7660 + 0.6428i

inversdf =

Columns 1 through 7

5.0000 -0.1777 - 0.4123i -0.9279 - 1.2487i -0.6667 + 0.3849i -0.2277 - 0.2590i -0.2277 +
0.2590i -0.6667 - 0.3849i

Columns 8 through 9
-0.9279 + 1.2487i -0.1777 + 0.4123i

>> abs(df)

ans =

45.0000 4.0411 14.0013 6.9282 3.1036 3.1036 6.9282 14.0013 4.0411

>> angle(df)

ans =

0 1.9778 2.2099 -2.6180 2.2920 -2.2920 2.6180 -2.2099 -1.9778

>> abs(inversdf)

ans =

5.0000 0.4490 1.5557 0.7698 0.3448 0.3448 0.7698 1.5557 0.4490

>>

You might also like