zhanghqi 发表于 2021-12-6 23:56

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);
   }
}
这个地方直接算出幅值,那位大神知道怎么算相位?

heweibig 发表于 2021-12-6 23:58

数学不好呢,帮不了你

jiaxw 发表于 2021-12-7 19:10

arctg 运算吧

chuxh 发表于 2021-12-7 19:11

可以使用函数 atan2(虚,实);

llljh 发表于 2021-12-7 19:16

相位是通过什么体现出来的呢

zhanghqi 发表于 2021-12-7 19:19


其实还是不大明白,我再琢磨琢磨吧,多谢了哈先

tpgf 发表于 2022-1-3 18:05

这个是现成的函数吗

磨砂 发表于 2022-1-3 18:15

应该就是发送的时机吧

晓伍 发表于 2022-1-3 18:18

就是时间上的差异啊

八层楼 发表于 2022-1-3 18:20

这样做会不会太耗费资源啊

观海 发表于 2022-1-3 18:23

算算时差可以吗

guanjiaer 发表于 2022-1-3 18:24

感觉可以试试楼上的办法
页: [1]
查看完整版本: stm32f407 把运算结果复数求相位