# How to do in matlab dtft

## Impulse Response, Step Response, DFT, IDFT, DTFT, IDTFT MATLAB code

% impulse and step response%
sys = tf ([1], [1 4 3]);
subplot (2,1,1); step (sys);
ylabel ('amplitude');
xlabel ('time in seconds');
subplot (2,1,2); impulse (sys);
ylabel ('amplitude');
xlabel ('time in seconds');

% DFT%
x = input ('enter the input matrix:');
mul = (- 2) * j * pi;
xlen = length (x);
for k = 0: xlen-1
y (1, k + 1) = 0;
for n = 0: xlen-1
y (1, k + 1) = y (1, k + 1) + x (1, n + 1) * exp (mul * n * k / xlen);
end
end
nm = 1: xlen;
subplot (2,1,1); stem (nm, real (y), 'fill')
title ('real part');
subplot (2,1,2); stem (nm, imag (y), 'fill')
title ('imaginary part');

% IDFT%
x = input ('enter the input matrix');
mul = (2) * j * pi;
xlen = length (x);
for n = 1: xlen-1
y (1, n + 1) = 0;
for k = 1: xlen-1
y (1, n + 1) = y (1, n + 1) + x (1, k + 1) * exp (mul * n * k / xlen);
end
y (1, n + 1) = y (1, n + 1) / xlen;
end
nm = 1: xlen;
subplot (2,1,1); stem (nm, real (y), 'fill')
title ('real part');
subplot (2,1,2); stem (nm, imag (y), 'fill')
title ('imaginary part');

% DFT and IDFT using matlab functions

x = input ('Enter the sequence x (n) =');
N = input ('Enter the length of the DFT N =');
X = fft (x) / N;
n = 0: length (X) -1;
subplot (311);
stem (n, x);
title ('Input Sequence');
subplot (323);
stem (n, X);
title ('DFT');
subplot (324);
stem (n, abs (X));
title ('Magnitude spectrum');
subplot (325);
stem (n, angle (X));
title ('Phase spectrum');
xr = N * ifft (X);
subplot (326);
stem (n, abs (xr));
title ('IDFT');

% DTFT and IDTFT%
N = 10;
w = 0: 0.01 * pi: 2 * pi;
dtft = N. * sinc (w. * N. / 2. / pi) ./ (sinc (w./2./pi)). * exp (-j. * w. * (N-1) ./ 2);
subplot (2,1,1)
Mag = abs (dtft);
plot (w./pi,Mag);
subplot (2,1,2)
Pha = angle (dtft);
plot (w./pi,Pha);