求助:用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;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
请问楼主你是如何解决相位的问题的?
我现在的问题和你描述的一样,FFT之后,频率和幅值都算是准,但是相位角总是不一样,每次采集计算之后,结果都不一样
一周热门 更多>