因为出差,本以为可以在一周内回来的,可还是拖延了好久,所以这一阵子没有发贴,回来后立刻开始了之后的内容,由于南方与北方的温差大,下飞机时受凉了,又病了,现在可以发差烧在发帖子啊。
由于时间问题,此次先把一些基础的做出来。
做FFT就要用到原始信号,官方例程中的也可以,但对于电力上那个原始信号也没有意义。
在此先模拟出正常的电力电压电流的信号。再做FFT。
电力上也是正、余弦波,周期是50Hz,谐波成分都是以50Hz为倍数的。
首先是基波信号 。
(float)(220*sqrt(2))*cos(PI*2.0f*i*f0/fss +60.0f/180.0f*PI)
其中f0就是基波的频率,也就是50Hz,fss是采样频率,先是一个周期采样512个点,那个fss就等于25.6K。
220*sqrt(2)是它的幅值,就先以220V电压为例吧。
60.0f/180.0f*PI是它的初相位。
其次就是谐波了。
(float)(6*sqrt(2))*cos(PI*2.0f*i*f0*3/fss+120.0f/180.0f*PI)
这是一个幅值是(6*sqrt(2)),频率是150Hz,初相位是120.0f/180.0f*PI的一个谐波量。
如果还要加入其他的谐波分量,可以再加入一些其他的公式。
如要加入一个幅值是(3*sqrt(2)),频率是300Hz,初相位是230.0f/180.0f*PI的一个谐波量。
(float)(3*sqrt(2))*cos(PI*2.0f*i*f0*6/fss+230.0f/180.0f*PI)
那么最后的原始信号 就是
fftdata=(float)(128*sqrt(2))*cos(PI*2.0f*i*f0/fss +60.0f/180.0f*PI)
+(float)(6*sqrt(2))*cos(PI*2.0f*i*f0*3/fss+120.0f/180.0f*PI)
+(float)(3*sqrt(2))*cos(PI*2.0f*i*f0*6/fss+230.0f/180.0f*PI)