C语言实现FFT与IFFT的问题
最近在学习fft,试着用C实现了一下,发现以下问题,望各位大神解答:1.同一信号做不同点数的FFT,结果有什么区别?
即:如果我的原始信号x长度为1500,那对这个信号进行不同点数的fft操作:
(1) X(k)=fft(x,1500),做与原信号长度相同的fft;
(2) X(k)=fft(x,1024),做与原信号最接近的2^N(2的整数幂点数)fft;
这两者的结果有什么区别?我实验结果只看出来一个fft结果是1500点的复数,一个是1024点复数。肯定有一定规律的区别,还望各位大神指点。
(以上我都是用matlab代码模拟的,因为对非2的整数幂的数据进行fft不知道如何处理)
2.另外还有一个问题:
在实现IFFT时,可以用定义做,也可以用fft实现:X(K)取共轭,求FFT,再取共轭,除以N即可得到ifft结果
这两个结果有什么区别?我试验中结果都一样。
多谢大神们指点