This document describes MATLAB code that implements the Fast Fourier Transform (FFT) on various signals. It generates 10 Hz and 20 Hz sinusoidal signals, adds and appends the signals, and applies the FFT to analyze the frequency components. Plots of the original and FFT-transformed signals are displayed to visualize the frequency content. The code demonstrates how the FFT can be used to analyze single and combined signals in MATLAB.
1. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
MATLAB IMPLEMENTATION OF FAST FOURIER TRANSFORM
% fft of 10 hz and 20 hz signal
clear all;
clc;
close all;
fs= 100;
f1=10 ;
f2= 20 ;
nfft=1024;
%plot 10 hz signal
t=-1:1/fs:1;
y1= sin(2*pi*f1*t);
figure;
plot(t,y1)
xlabel('----->t');
ylabel('sin(2*pi*f1*t)');
title('10 hz ferquency signal');
%plot 20 hz signal
t=-1:1/fs:1;
y2= sin(2*pi*f2*t);
figure;
plot(t,y2)
xlabel('----->t');
ylabel('sin(2*pi*f2*t)');
title('20 hz ferquency signal');
%addition of two signals
y3= y1+y2;
figure;
plot(t,y3)
xlabel('----->t');
ylabel('sin(2*pi*f1*t)+sin(2*pi*f2*t)');
title(' addition of two signal');
% appended signal
y4=[y1,y2];
figure
plot(y4);
xlabel('---->t');
ylabel('appended signal');
title(' plot appending of two signals');
%fft of y1
x1= fft(y1,nfft)
x1= x1(1:nfft/2)
mx1= abs(x1);
f=(1:nfft/2)*fs/nfft;
figure
plot(f,mx1);
xlabel(' frequency in hz');
ylabel('power');
title('fft of 10 hz signal');
%fft of y2
x2= fft(y2,nfft);
x2=x2(1:nfft/2);
mx2= abs(x2);
f=(0:nfft/2-1)*fs/nfft;
figure
plot(f,mx2);
2. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
xlabel(' frequency in hz');
ylabel('power');
title('fft of 20 hz signal');
% fft of added signal y3
x3= fft(y3,nfft);
x3=x3(1:nfft/2);
mx3= abs(x3);
f=(0:nfft/2-1)*fs/nfft;
figure
plot(f,mx3);
xlabel(' frequency in hz');
ylabel('power');
title('fft of added signal');
%fft of appended signal
x4= fft(y4,nfft);
x4=x4(1:nfft/2);
mx4=abs(x4);
f=(0:nfft/2-1)*fs/nfft;
figure
plot(f,mx4);
xlabel(' frequency in hz');
ylabel('power');
title('fft of appended signal');
RESULTS:
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
----->t
sin(2*pi*f1*t)
10 hz ferquency signal
3. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
----->t
sin(2*pi*f2*t)
20 hz ferquency signal
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
----->t
sin(2*pi*f1*t)+sin(2*pi*f2*t)
addition of two signal
4. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
0 50 100 150 200 250 300 350 400 450
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
---->t
appendedsignal plot appending of two signals
0 5 10 15 20 25 30 35 40 45 50
0
10
20
30
40
50
60
70
80
90
100
frequency in hz
power
fft of 10 hz signal
5. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
0 5 10 15 20 25 30 35 40 45 50
0
10
20
30
40
50
60
70
80
90
100
frequency in hz
power fft of 20 hz signal
0 5 10 15 20 25 30 35 40 45 50
0
10
20
30
40
50
60
70
80
90
100
frequency in hz
power
fft of added signal
6. MATLAB IMPLEMENTATION OF FFT
PROF. RAKESH K. JHA
CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL ( INDIA)
DEPARTMENT OF ELECTRONICS & COMMUNICATION
0 5 10 15 20 25 30 35 40 45 50
0
10
20
30
40
50
60
70
80
90
100
frequency in hz
power fft of appended signal