Contents
FFT
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;
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;
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