TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430FR5994用LEA的512点FFT问题

我们正参考“TIDM-FILTERING-SIGNALPROCESSING”设计,这个例子的代码是完成"256-point complex FFT",
我们需要改成“512-point comples FFT”,但是在“LEARAM”上出现问题。

看资料上,LEA模块变量必须定义在LEARAM内,必须小于4k字节,不能大于3783字节(0x3ac7-0x2c00 = 0x0ec7),是这样吗?
例子代码中定义的LEA变量:struct FftData_s
{
_q15 input[VECTOR_SIZE*2];
_q15 samples[VECTOR_SIZE*2];
_q15 hamming[VECTOR_SIZE];
} fftDataParam;
VECTOR_SIZE=256,总共占用 2560字节(256*2*2+256*2*2+256*2)

我们要做512点FFT时需要将 VECTOR_SIZE改成512
这样变量占用内存就大于4k字节了。即使将AD采样只要一路采样
struct FftData_s
{
_q15 input[VECTOR_SIZE*2];
_q15 samples[VECTOR_SIZE];
_q15 hamming[VECTOR_SIZE];
} fftDataParam;
改成这样的结构,VECTOR_SIZE = 512,占用的内存正好4K字节。(512*2*2+512*2+512*2= 4096)
这样还是超过LEARAM的范围了,编译还是会报错。
请问这种情况有什么解决办法呢?是不用汉明窗吗?

Susan Yang:

如您现在的情况,将VECTOR_SIZE 更改为512时将引发错误,因为它不再能够正确对齐LEA RAM中的所有不同变量。该示例可以配置为对输入数据执行FFT,FIR或IIR,因此所有这些变量必须能够以正确的对齐方式适合LEA RAM。

另外TI设计中的hammingWindow是硬编码的,因此更改起来不是很简单。

如果您的最终目标是仅测试512点FFT以查看其是否有效,则建议您查看DSPLIB中提供的示例(如下链接)并将样本大小更改为512,该示例可以构造一个可变长度的汉明窗

software-dl.ti.com/…/transform_ex1_fft_fixed_q15_8c-example.html

赞(0)
未经允许不得转载:TI中文支持网 » MSP430FR5994用LEA的512点FFT问题
分享到: 更多 (0)