Created
February 19, 2012 18:28
-
-
Save jjcarrier/1864997 to your computer and use it in GitHub Desktop.
A basic example of reconstructing FFT frequency axis
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% A simple example of how to reconstruct | |
% the frequency components from an FFT | |
%% Clean up the workspace | |
clear all; | |
close all; | |
clc; | |
%% Create the initial parameters | |
Window=5; %Set how long in time to sample + and - | |
Fs=100; %Set the sampling frequency | |
% Fs should be set atleast 2x max | |
% frequency in the signal | |
% With the signal below, the max frequency is | |
% 22Hz meaning we want to sample atleast at 44Hz | |
%% Generate the time domain signals | |
x=-Window:1/Fs:Window; %Create the time signal | |
y=5*sin(10*2*pi*x)+3*sin(22*2*pi*x)+cos(13*2*pi*x)+7; | |
% Plot the time domain signal | |
figure(1); | |
plot(x,y); | |
%% Compute and plot the frequency domain signal | |
figure(2); | |
% Extract the max frequency that the FFT | |
% can compute from the Fs we have specified | |
fmax=Fs/2; %Application of Nyquist Theorem | |
% Compute the magnitude of the fft of y | |
N=441; | |
FFTy=fftshift(abs(fft(y,N))); | |
% The frequency axis is generated using linspace | |
f_axix=linspace(-fmax,fmax,N-1); | |
% Plot the FFT using stem | |
stem(f_axix,FFTy(2:end)./length(FFTy)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment