MATLAB: Need help to write a program to plot a magnitude response and phase response of a signal x (n) = a^n*u(n) .a) using loop b) using MATLAB command for DFT.

magnitude responseMATLABphase responseSignal Processing Toolbox

Hi all,
Please suggest a code for a program to plot a magnitude response and phase response of a signal x (n) = a^n*u(n).
a) using loop b) using MATLAB command for DFT.

Best Answer

DFT is:
so you can make it by using loop or matlab FFT function directly, hope this help:
%%using loop
%a is a constant

clear
a=2;
N=100;
for k=1:N
X(k)=0;
for n=1:N %this include u(n)
x(n)=a.^n;
X(k)= X(k)+(x(n)*exp(-j*2*pi*(k-1)*(n-1)/N));
end
end
subplot(2,1,1),plot(abs(X)) %magnitude

subplot(2,1,2),plot(angle(X)) %phase

%%using FFT
%a is a constant
clear
a=2;
N=100;
n=[1:1:N];
x=a.^n;
X=fftshift(fft(x),N);
subplot(2,1,1),plot(n,abs(X)) %magnitude
subplot(2,1,2),plot(n,angle(X)) %phase