现在先对一组2048点的数据做IFFT,然后加循环前缀,之后去掉CP 做FFT,都是通过设定寄存器来控制的。
不过调试过程发现以下问题:
1:当我加的循环前缀为144或者155的时候或者更低的时候,程序能够正常通过,数据测试通过,但是当加到158 159 160 测试的时候,数据就会出现很大偏差
比如现在是用一个2048点的数据,每个数据是Uint32的,把最后160个数据放到前面,组成一个2208点的输入数据,将pktDMA descriptor 中配置的 packet size是实际buffer的长度,也就是(2048 + 160) * 4,这样用160数据就会产生错误,但是144之类的就可以。
还请指点一二,多谢~
xueyao:
回复 Andy Yin1:
谢谢,因为我设置的是动态scaling,如果要设置为静态scaling的话,具体应该怎么设置呢?能不能详细说一下,
你说的不需要将CP点数作为输入是什么意思呢,是在做FFT之前将CP自己取出来移除吗?FFTC应该是自动通过设定的包长度减去FFT点数取去除CP对吗?
谢谢啊
xueyao:
回复 Andy Yin1:
我在做IFFT加CP的时候是输入的2048个点,然后我是去CP的输入的才是2208个点,这个不应该这样吗?我是做的一个回环测试,流程为2048点输入—>IFFT–》
加160CP–>取出2208点数据—->设置寄存器去CP使能—>输入2208点数据—>做FFT 我这样的流程对吗 因为我在前面加CP的时候,如果为144,最后得到数据和最原始的输入是一样的,但是当加到160的时候就不对了。 如果静态设置这么麻烦,用动态的话怎样保证这样的回环测试能够正确呢。