本帖最后由 牧羊人1993 于 2019-9-29 08:45 编辑
我用STM32F1的DSP库进行256点的FFT运算,我尝试了多组不同的数据进行模拟,但是每次计算到的幅值第一个数都特别大,实际频率点的幅值也不对,代码如下,求大神解答一下。。。
#define NPT=256
long lBufOutArray[NPT];/
long lBufInArray[NPT]; //FF
long lBufMagArray[NPT];
int ad_num[NPT]={1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,
1720,1700,1650,1580,1520,1450,1440,1520,1640,1720,1700,1650,1580,1520,1450,1440};
void FFT_jisuan(void)
{
InitBufInArray();
cr4_fft_256_stm32(lBufOutArray,lBufInArray,NPT);
GetPowerMag();
}
|