FFT Code
FFT Code
clc
clear all
close all
n = 0:6;
x = [4 6 2 1 7 4 8];
a = fft(x);
mag = abs(a);
angle = angle(a);
subplot(2,1,1);
stem(mag);
grid on
title('Magnitude Response');
subplot(2,1,2);
stem(angle);
grid on
title('phase Response');
%% Task 02
clc
clear all
close all
x=[4 6 2 1 7 4 8];
N=7
L=length(x);
x_n=[x,zeros(1,N-L)];
for i=1:N
for j=1:N
temp=-2*pi*(i-1)*(j-1)/N;
DFT_mat(i,j)=exp(complex(0,temp));
end
end
X_k=DFT_mat*x_n';
disp(X_k);
mag=abs(X_k);
phase=angle(X_k)*180/pi;
subplot(2,1,1);
stem(mag);
subplot(2,1,2);
stem(phase);
ylabel('Phase of X[k]');
%% Task 03
clc
clear all
close all
%Step Sequence
s=4;
t=-s:1:s;
subplot(3,1,1);
stem(t,y);
grid
xn=y;
N=10
xk=fft(xn,N);
magxk=abs(xk);
angxk=angle(xk);
k=0:N-1;
subplot(3,1,2);
stem(k,magxk);
grid
xlabel('k');
ylabel('|x(k)|');
subplot(3,1,3);
stem(k,angxk);
disp(xk);
grid
xlabel('k');
ylabel('arg(x(k))');
%% Task 04
clc;
clear all;
close all;
%exponential sequence
n=7
t=0:1:n;
a=-0.9
y=exp(a*t);
y=[9 8 7 6 5 4 3 2]
subplot(3,1,1);
stem(t,y);
grid;
title('exponential response');
xlabel('time');
ylabel('amplitude');
disp(y);
xn=y;
N=8
xk=fft(xn,N);
magxk=abs(xk);
angxk=angle(xk);
k=0:N-1;
subplot(3,1,2);
stem(k,magxk);
grid;
xlabel('k');
ylabel('|x(k)|');
subplot(3,1,3);
stem(k,angxk);
grid;
disp(xk);
xlabel('k');
ylabel('arg(x(k))');
%% Task 05
clc
clear all
close all
n = 0:7;
x = [1 1 0 0 0 0 0 0];
a = fft(x);
mag = abs(a);
angle = angle(a);
subplot(2,1,1);
stem(mag);
grid on
title('Magnitude Response');
subplot(2,1,2);
stem(angle);
grid on
title('phase Response');
%% Task 06
clc
clear all
close all
n = 0:7;
x = [1 0 1 0 1 0 1 0];
a = fft(x);
mag = abs(a);
angle = angle(a);
subplot(2,1,1);
stem(mag);
grid on
title('Magnitude Response');
subplot(2,1,2);
stem(angle);
grid on
title('phase Response');
%% Task 07
clc
clear all
close all
n = 0:5;
a = fft(x);
mag = abs(a);
angle = angle(a);
subplot(2,1,1);
stem(mag);
grid on
title('Magnitude Response');
subplot(2,1,2);
stem(angle);
grid on
title('phase Response');
%% Task 08
clc
clear all
close all
n = 0:5;
a = fft(x);
mag = abs(a);
angle = angle(a);
subplot(2,1,1);
stem(mag);
grid on
title('Magnitude Response');
subplot(2,1,2);
stem(angle);
grid on
title('phase Response');
%% Task 09
clc
clear all
close all
Nmax = 2048;
fft_time=zeros(1,Nmax);
for n=1:1:Nmax
x=rand(1,n);
t=clock;
fft(x);
fft_time(n)=etime(clock,t);
end
n=[1:1:Nmax];
plot(n,fft_time,':')
xlabel('N');
ylabel('Time in Sec');
%% Task 10
clc
clear all
close all
t=-2:1:2;
y=[zeros(1,2) 1 zeros(1,2)];
subplot (3,1,1);
stem(t,y);
title('impulse sequence');
grid;
xn=y;
N=10
xk=fft(xn,N);
magxk=abs(xk);
angxk=angle(xk);
k=0:N-1;
subplot(3,1,2);
stem(k,magxk);
grid;
xlabel('k');
ylabel('|x(k)|');
title('magnitude response');
subplot(3,1,3);
stem(k,angxk);
disp(xk);
grid;
xlabel('k');
ylabel('arg(x(k))');
title('angle response');