1)请检查做FFT的点数是不是超过了原始数据的点数;原始数据中是不是有nan;如果找不到问题可以先试试fft(X),看看结果对不对.2)“如何由时域变为频率”看您这句话不像是学过信号与系统或者DSP的样子.不过看在您提到了香农的份上可以稍微解释下:
采样定理:为了保证抽样后频域无混叠,要求采样频率超过奈奎斯特频率,即原模拟信号最高频率的两倍.采样后,采样信号的频谱会以采样频率为间隔周期重复,因此只有正负二分之采样频率范围内的频谱在无混叠的情况下才正好等于原信号频谱.离散时间傅里叶变换:定义为基函数exp(j*w*n)的加权.这一基函数的周期是2*pi,所以离散时间信号的频率范围只需考察-pi~pi内的就可以.离散傅里叶变换:离散时间傅里叶变换得到的频谱仍然是连续的,为了能够把频谱也离散,要求信号有周期性.好在实际的数字信号都是有限长度的,只需要周期延拓就可以得到周期信号,进而其频谱也离散化.这就是DFT的数学原理.至于FFT,只是DFT的一种快速算法而已.
如果您是这方面专业的或者需要更多的了解这方面内容,建议您去咨询看看相关书籍,我在这里无法解释太多.