求助 :stm32 fft 计算幅值正确 ,但是计算相位错误,求救

2019-12-08 14:36发布

求助:用stm32对交流电压电流进行信号采集,使用双adc同步模式。同事采集信号。将采集的adc结果进行fft变换,
fft变换的结果好像有问题,我用的是dsp库进行操作的 ,结果中计算的直流分量以及基波分量基本没有问题,但是计算的相位值却有很大的误差,几乎就是错误的 ,请大虾们指教。
我的思路是将采集到的信号 进行筛选 出电压波形为一个整周波,即相位从0度开始 到0度结束,那么进行fft变换后的电压基波相位应该为0,但是实际中测得的相位将近有45度,这肯定是错误的,我的fft变换程序如下
void fft(u32 *fftout,u32 *fftdatain)
{
u32 x[NPT],y[NPT];            
u16 real[NPT],imag[NPT];                               
u16 i;
for(i=0;i<1024;i++)
{
   real=(u16)(0x0000ffff&fftdatain);
   imag=(u16)0;
}
for(i=0;i<1024;i++)
{       
        x=(u32)0;
        x=(u32)real;
        //x=(((u16)(real)) | ((u32)(imag<<16)));
}         
cr4_fft_1024_stm32(y,x,(u16)1024);
for(i=0;i<1024;i++)
        fftout=y;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
1米49
1楼-- · 2019-12-11 12:47
请问楼主,问题解决了吗
leiyitan
2楼-- · 2019-12-11 14:43
 精彩回答 2  元偷偷看……
lihaimeng@163
3楼-- · 2019-12-11 15:07
linux-0405209 发表于 2014-5-23 15:46
请问楼主你是如何解决相位的问题的?
我现在的问题和你描述的一样,FFT之后,频率和幅值都算是准,但是相 ...

大哥能说下,频率怎么算的吗?

一周热门 更多>