Contents

FFT

% programmer: Aaron Klapheck
% Date: 2-18-09
The_Date = date, clear, clc
The_Date =

16-Mar-2009

FFT on a sine variable.

Fs = 100;
t = 0:1./Fs:100;
k=length(t);
omega = .6.*Fs;
x = sin(2.*pi.*omega.*t);

N = length(x);
N = floor(N./2);
N = 2.*N;

% Decide which exponant of 2 to use
exp = log(N)./log(2);
exp_c = ceil(exp);
exp_f = floor(exp);
diff_c = abs(N - 2^exp_c);
diff_f = abs(N - 2^exp_f);
if diff_c < diff_f
    N = 2^(exp_c);
else
    N = 2^(exp_f);
end

y = fft(x, N);
abs(y);

f = ((Fs/2)).*linspace(0, 1, N/2);
length(f)

plot(f, abs(y(1:N/2)))
ans =

        4096

FFT on a sine variable 2.

Fs = 100;
t = 0:1./Fs:1;
k=length(t);
omega = .1*Fs;
x = sin(2.*pi.*omega.*t)+5*rand(size(k));

plot(t, x)

N = length(x);
N = floor(N./2);
N = 2.*N;

% Decide which exponant of 2 to use
exp = log(N)./log(2);
exp_c = ceil(exp);
exp_f = floor(exp);
diff_c = abs(N - 2^exp_c);
diff_f = abs(N - 2^exp_f);
if diff_c < diff_f
    N = 2^(exp_c);
else
    N = 2^(exp_f);
end

y = fft(x, N);
abs(y);

f = ((Fs/2)).*linspace(0, 1, N/2);
length(f)

plot(f, abs(y(1:N/2)))
ans =

    64