How to Find the Fourier Transform of Any Signal
Table of Contents
MATLAB Code
This is a simple MATLAB code snippet that computes the Fourier Transform of any signal. I will show you different examples below the main code. Remember, to find the Fourier Transform of any signal using this code snippet, you need a sampled signal and its corresponding sampling frequency.
n = length(signal);
f = (-n/2:n/2-1)*(fs/n); % Frequency axis centered at 0
S_f = abs(fftshift(fft(signal)/n)); % Normalize FFT
S_f_dB = 20*log10(S_f / max(S_f)); % dB scale with normalization
Example for finding FFT of a sine wave
clc;
clear all;
close all;
fm = 10; % Message signal frequency (Hz)
fs = 1000; % Sampling frequency (100 kHz)
t = 0:1/fs:1-1/fs; % Time vector over 1 second
signal = sin(2*pi*fm*t);
% Compute frequency spectrum in dB
n = length(signal);
f = (-n/2:n/2-1)*(fs/n); % Frequency axis centered at 0
S_f = abs(fftshift(fft(signal)/n)); % Normalize FFT
S_f_dB = 20*log10(S_f / max(S_f)); % dB scale with normalization
% Plot normalized spectrum in dB
figure(1);
plot(f, S_f);
title(‘Normalized Frequency Spectrum of PAM Signal’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude (dB)’);
grid on;
figure(2);
plot(f, S_f_dB);
title(‘Normalized Frequency Spectrum (dB) of PAM Signal’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude (dB)’);
grid on;
web(‘https://www.salimwireless.com/search?q=fft%20fourier%20transform’, ‘-browser’);
Another Example Code
clc;
clear all;
close all;
fm = 10; % Message signal frequency (Hz)
fs = 1000; % Sampling frequency (100 kHz)
t = 0:1/fs:1-1/fs; % Time vector over 1 second
choice = input(‘Enter a choice (add, sub, or mul): ‘, ‘s’);
% Initialize return variable
signal = [];
switch choice
case ‘add’
disp(‘You selected option 1.’);
signal = sin(2*pi*fm*t) + cos(2*pi*fm*t);
case ‘sub’
disp(‘You selected option 2.’);
signal = sin(2*pi*fm*t) – cos(2*pi*fm*t);
case ‘mul’
disp(‘You selected option 3.’);
signal = sin(2*pi*fm*t) .* cos(2*pi*fm*t);
otherwise
disp(‘Invalid choice.’);
signal = sin(2*pi*fm*t);
end
% Compute frequency spectrum in dB
n = length(signal);
f = (-n/2:n/2-1)*(fs/n); % Frequency axis centered at 0
S_f = abs(fftshift(fft(signal)/n)); % Normalize FFT
S_f_dB = 20*log10(S_f / max(S_f)); % dB scale with normalization
% Plot normalized spectrum in dB
figure(1);
plot(f, S_f);
title(‘Normalized Frequency Spectrum of PAM Signal’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude (dB)’);
grid on;
figure(2);
plot(f, S_f_dB);
title(‘Normalized Frequency Spectrum (dB) of PAM Signal’);
xlabel(‘Frequency (Hz)’);
ylabel(‘Magnitude (dB)’);
grid on;
web(‘https://www.salimwireless.com/search?q=fft%20fourier%20transform’, ‘-browser’);
Further Reading
Read more here: Source link
