有1000点的16位整数数据,

做2048点的fft
matlab结果(没有去掉负频部分)
实部

虚部

dsp结果 (语句: rfft(rcv,2048,NOSCALE);)

手册上说 输出结果是 第一个数的实部、第一个数的虚部、第二个数的实部、第二个数的虚部.....以此类推,并且去除了负频率部分。从图中可以看出第一个频带的位置是正确的,但是第二个频带据应该是多余的,不知道为什么会有。
求大佬解答
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
有1000点的16位整数数据,

做2048点的fft
matlab结果(没有去掉负频部分)
实部

虚部

dsp结果 (语句: rfft(rcv,2048,NOSCALE);)

手册上说 输出结果是 第一个数的实部、第一个数的虚部、第二个数的实部、第二个数的虚部.....以此类推,并且去除了负频率部分。从图中可以看出第一个频带的位置是正确的,但是第二个频带据应该是多余的,不知道为什么会有。
求大佬解答
请看下面user guide里对rfft函数的说明。
Comparing the results to MATLAB
https://www.ti.com/lit/ug/spru422j/spru422j.pdf
1.非常感谢您的回答,我也看了您发的手册,并且怀疑与下面这两点有关

2.但是,我又发现:当我把fft点数改为1024时,同一组数据就与matlab上的1024点的fft结果相同了;并且修改做fft的数据后两边依然能得到相同的数据,这是因为什么我也没有想清楚。
3.另外,我尝试修改‘1’中所提到的两点,在cmd文件中做如下改动

(画红线部分位后添加的语句)
但所得结果依然不正确(相比于之前,不应该出现的部分,相对位置向后移动了)
4.同时我也看到有人说:这种情况可能是twiddle table的问题,需要对 “twiddle.asm” 文件进行修改,但是我没太看懂修改方法。
然后还有一个相关的文件Microsoft Word - TMS320C5500 DSPLIB库twiddle表对齐的问题.doc (qsl.net)
5.所以我想了解一下依您的经验是如何看待这个问题的。
2.但是,我又发现:当我把fft点数改为1024时,同一组数据就与matlab上的1024点的fft结果相同了;并且修改做fft的数据后两边依然能得到相同的数据,这是因为什么我也没有想清楚。
您的意思是只要超过1024点就不正确了?
在cfft函数最大支持1024点,请看下面的说明。
nx Number of complex elements in vector x. Must be between 8 and 1024.
抱歉,看成cfft了。rfft支持2048点的。
“#225-D</a> function declared implicitly”这个报错信息,请看下面的FAQ。
https://software-dl.ti.com/ccs/esd/documents/dmed/HTML/225.html