% Sample MATLAB Code for FFT
% 2019.11.26 by T. Hirano

%% Create waveform

f1=440.;       % [Hz]
f2=880.;       % [Hz]

T1=1/f1;       % [s]
T2=1/f2;       % [s]

w1=2*pi*f1;    % [rad/s]
w2=2*pi*f2;    % [rad/s]

Fs=44100.;     % [Hz]
dt=1/Fs;       % サンプリング間隔 (sec)

n1_period=round(T1/dt);
n1=5;
n=n1*n1_period;     % 全サンプル数

duration=(n-1)*dt;  % 時間波形の全時間 (sec)

t=[0:dt:duration];
y=cos(w1.*t)+cos(w2.*t);

plot(t,y)

%% FFT
% abs: 絶対値, anble: 偏角
% [参考資料] 平野拓一, 「フーリエ解析」, p.41
ft_y=fft(y);

df=1/duration;
f_lis=[0:df:df*(length(ft_y)-1)];

figure; % 新しくグラフウィンドウを開く（これがないと前のグラフが更新される）
plot(f_lis,abs(ft_y));
