dtft matlab codematlab code for dtft

Upload: lokendra-singh-shekhawat

Post on 10-Oct-2015

16 views

Category:

Documents


0 download

DESCRIPTION

code fot dtft

TRANSCRIPT

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

A MATLAB program to find the DTFT of a given sequencex=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 =

9

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

>>