本来打算玩F1的。同事说要弄F4的DSP库,项目要用到。。。折腾了几天了。。。。麻烦高手指点。。。
我直接拿官方的FFT测试实例。
修改了初始值。。。
代码如下;
int32_t main(void)
{
for(index=0;index<2048;index++)
{
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
}
arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput_f32_10khz, ifftFlag, doBitReverse);
arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);
for(index=0;index<1024;index++)
{
printf("index%d =%d
",index,(u32)testOutput[index]);
}
while(1); /* main function does not return */
}
1. 如果2048个点,我直接取正弦波的值,那么打印出来是
index2 =72203
index1022 =72647
貌似是对称的。。。
for(index=0;index<2048;index++)
{
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
}
2.但是如果2048个点,我按照下面方式
for(index=0;index<2048;index++)
{
if(index%2==0)
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
else
testInput_f32_10khz[index]= 100*cos(3.14*index/512);
}
那么测试出来是
index1022 =102399
不对称。。。
3.如果我虚部为0,实部位正弦值:
for(index=0;index<2048;index++)
{
if(index%2==0)
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
else
testInput_f32_10khz[index]= 0;
}
出来是
index2 =51212
index1022 =51212
是对称的。。
请问这怎么理解呢???
如果我ADC采集一个信号,我应该怎样设置这个初始值呢?请教高手
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
PDF教程在哪里?给个连接呗
---------------------------------
自己搜索下【正点原子探索者STM32F407开发板例程连载+教学】第52章 DSP测试实验
一周热门 更多>