stm32f407 把运算结果复数求相位
for(int i=0;i<FFT_LENGTH;i++)//生成信号序列{ fft_inputbuf=15 + 10*arm_sin_f32(2*PI*i*100/FFT_LENGTH) + \
5.5*arm_sin_f32(2*PI*i*150/FFT_LENGTH); //生成实部
fft_inputbuf=0;//虚部全部为0
}
arm_cfft_radix4_f32(&scfft,fft_inputbuf); //FFT计算(基4)
arm_cmplx_mag_f32(fft_inputbuf,fft_outputbuf,FFT_LENGTH); //把运算结果复数求模得幅值
printf("FFT Result:\r\n");
for(int i=0;i<FFT_LENGTH;i++)
{
printf("%f\r\n",fft_outputbuf);
}
}
delay_ms(60);
}
}
这个地方直接算出幅值,那位大神知道怎么算相位? 数学不好呢,帮不了你
arctg 运算吧
可以使用函数 atan2(虚,实);
相位是通过什么体现出来的呢
其实还是不大明白,我再琢磨琢磨吧,多谢了哈先 这个是现成的函数吗 应该就是发送的时机吧 就是时间上的差异啊 这样做会不会太耗费资源啊 算算时差可以吗 感觉可以试试楼上的办法
页:
[1]