对于FFT结果, dc分量需要乘以 1/N
而其他分量需要乘以 2/N
function [fft_res, mag, phase] = my_one_side_fft(sample)
N = length(sample);
double_sided = fft(sample);
one_sided_fft = double_sided(1:N /2);
% for other component, scale by 2/N
one_sided_fft = one_sided_fft * 2 / N;
% for dc component, scale by 1/N
one_sided_fft(1) = one_sided_fft(1) /2;
fft_res = one_sided_fft;
mag = abs(one_sided_fft);
phase = rad2deg(angle(one_sided_fft));
end