matlab的fft
能量守恒
sum(x.^2) = (abs(fft(x)).^2) / length(x)
幅度与时域对应
y = abs(fft(x));
dc_y = y(1) / length(x);
ac_y = y(2:end) * 2 / length(x);
插零
y1 = zeros(512, 1);
y1(1:2:end) = abs(fft(x, 256)); % x有256点
y2 = abs(fft(x, 512)); % 后面插入256个零
插零效应:
1.能量是守恒的;
2.幅度y1的第2点等于y2的第3点,y1的第3点等于y2的第5点,以此类推;
3.插零后dc的能量会减少(直观理解信号长了,dc矮了);
4.为什么出现了那么多峰呢?插零相当于信号突然跳变为0,产生了很多谐波。
希望频域分辨率提高,插入值为dc的点,此时插入后的信号dc不变,ac幅度减半。