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.
您好,
关于cyclicShift只需配置FFTC_QUEUE_X_CYCLIC_PREFIX_REGISTER中的位段。
1. 如果是加循环前缀,配置cyclic_prefix_addition为相应的循环前缀点数即可;
2. 如果去除循环前缀,则需要配置cyclic_prefix_remove_en为1使能,同时配置cyclic_prefix_remove_offset,即对应你提到的上述两个位段即可。但是注意cyclic_prefix_remove_offset的含义如下,所以cyclic_prefix_remove_offset应该配成0.
3. 如果说FFTC结果错误,循环前缀参数只是一部分,还有其他的参数也会影响到您的测试结果,请依次参考userguide进行确认。
建议在跑例程的过程中能根据需要仔细阅读相关的文档,如果对文档中描述有所不清楚,可以提出来我们一起讨论,这样的话我们交流的效率会更高。谢谢!
您好,
很抱歉,对于以上资料以前在做去循环前缀测试时,也看过这段文档,当时理解不深刻(我一人做6670硬件加速器,很少有人讨论,理解不全面),感觉介绍的相关文档不多且没有去cp的相关例程。
1.对于你说的cyclic_prefix_remove_offset是否是fftcQCfg.cyclicPrefixRegConfig.cyclicPrefixRemoveNum ?我理解的是fftcQCfg.cyclicPrefixRegConfig.cyclicPrefixRemoveNum 相当于上图的k,至于Remove Offset=p,我以前认为它是默认为p=0的情况,即第一种情况,对于第二种情况理解不深刻,不知在什么情况下用到上图第二种配置?你说的cyclic_prefix_remove_offset配为0,是上图的remove_offset=0吗?
2.去循环前缀是否应该理解为配置好相关参数后,在Packet DMA 搬移数据时会自动拿掉前面的cp,而不用送到引擎做FFT变换,还有一种是在每个block数据来时,通过软件代码控制其地址偏移拿掉cp不让其送入引擎,这样也能够得到正确结果,但相关配置没能全部用起来,是否第二种不妥?
您好,
我在使用C6670 FFTC 去循环前缀时,要对256+20点的数据去掉20点cp,在配置中bCyclicPrefixRemoveEnable设置为1,cyclicPrefixRemoveNum 配置为0,当经过处理后,结果不正确。
从figure2-5中看到,去cp与packet size有关,但是在FFTC的example中没有此参数的设置,那么请问在去cp时FFT engine是如何知道到底需要去除多少点的CP呢?还是说,不用告诉FFT engine packet size,它会根据送入的全部数据长度和配置的做FFT的点数自己会计算出需要去除的cp点数?
非常感谢!
cyclic prefix remove有两个参数需要配置,一个是enable及offset,其中offset参考上面帖子的解释,通过offset可以告诉FFTC数据的起始位置,FFT的点数在control register中配置,packet size在pktDMA descriptor中配置。
对于你的case如果cp点数20在前面,则offset配置为0,如果在最后,则配置为20. 当然FFTC结果不对,跟其他配置也有关系,如FFTC中使用了动态或者静态因子调整,如果仿真链路的实现方式与FFTC的内部实现不一样则可能得到的结果与FFTC的输出存在整数倍的幅度关系。建议先确认FFTC的5个寄存器配置正确,然后看看输出数据与比对数据是否存在倍数关系。
告诉你FFT engine packet size,它会根据送入的全部数据长度和配置的做FFT的点数自己会计算出需要去除的cp点数。