1)在matlab中用如下命令生成一个正弦波的采样点,512个点.t=0:1/6656:511/6656;%生成采样时间序列
s1=sin(54*2*pi*t);%生成采样点
fftsa1=fft(s1,512);%fft变换
2)得到的图形如下:结果正确
3)命令行输出元素如下,结果正确.
4)把s1导入板上,用fft算法(从arm 的 cmsis库里得来)进行运算.输出一个1024的数据结构,..生成的数据如下:
5)我就不理解 了,第四步输出的数据,应该和第3步对应的数据 一致,即第4个元素的实部和虚部应该是 1 和 0,但这里,所有的512个元素的实部与虚部都完全与matlab中的fft转换后得到的数据不一样,。。
我开始怀疑是我的程序有问题,用另一套fft算法进行运算,得出的结果虽然和4看到的结果不同,但进行模计算,再进行归一化处理后,结果完全 一致(全部归一化后,得到一个512个float型 的数组,全部是1),..
所以肯定是我哪里理解 有问题,...在arm上运算后得到的数据 不应该是和matlab第三步显示的 结果一样?第三步的结果,除了第四个元素为1 ,0,以外,其他 都 为零,完全 能理解 ,因为除了第四点对应的频率 外,其他 频率 都是0向量.
(感觉用了fft运算后得到的结果是:一个圆,分成128份,从0度转到360度,计算出了每一时刻所对应的半径的x和y坐标,这样计算模值后,就全部 为1)..
如何理解,才能和matlab中结果 3 对应上?(5)我就不理解 了,第四步输出的数据,应该和第3步对应的数据 一致,即第4个元素的实部和虚部应该是 1 和 0,但这里,所有的512个元素的实部与虚部都完全与matlab中的fft转换后得到的数据不一样,。。
我开始怀疑是我的程序有问题,用另一套fft算法进行运算,得出的结果虽然和4看到的结果不同,但进行模计算,再进行归一化处理后,结果完全 一致(全部归一化后,得到一个512个float型 的数组,全部是1),..
所以肯定是我哪里理解 有问题,...在arm上运算后得到的数据 不应该是和matlab第三步显示的 结果一样?第三步的结果,除了第四个元素为1 ,0,以外,其他 都 为零,完全 能理解 ,因为除了第四点对应的频率 外,其他 频率 都是0向量.
(感觉用了fft运算后得到的结果是:一个圆,分成128份,从0度转到360度,计算出了每一时刻所对应的半径的x和y坐标,这样计算模值后,就全部 为1)..
如何理解,才能和matlab中结果 3 对应上?(偏置4所对应的实部与虚部,应该有数值,其他都为零)?