babys 发表于 2008-5-17 11:22

分析电能谐波

我要做将采集到的交流电信号通过FFT在分析其谐波
数据采集都是通过VB完成的 但是要FFT我觉得直接用VB很复杂 所以想调用matlab处理 然后在调回vb画图 但是这里面调来调去 我不会 找了半天也没找到相关的帖子
不知道各位大侠谁知道?后者有更好的方法?
谢谢

[ 本帖最后由 zhangnan3509 于 2008-5-21 13:02 编辑 ]

zhwang554 发表于 2008-5-21 12:44

交流电谐波分析

你可以取N个样点,作FFT分析

y1 = y(1:N);
win =hanning(N)';;
win1 = win/sum(win);
y11= y1.*win1;
y11_fft = fft(y11,N);
y1_amplitude = abs(y11_fft);
y1_phase = phase(y11_fft)*180/pi;
subplot(4,1,1),stem(y1_amplitude,'.');title('FFT振幅谱')
subplot(4,1,2),stem(y1_phase,'.');title('FFT相位谱')

你也可以取2N-1个样点,作全相位FFT分析,
全相位FFT分析的matlab程序如下

y2 = y(1:2*N-1);
win =hanning(N)';;
winn =conv(win,win);
win2 = winn/sum(winn);
y22= y2.*win2;
y222=y22(N:end)+;
y2_fft = fft(y222,N);
y2_amplitude = abs(y2_fft);
y2_phase = phase(y2_fft)*180/pi;
subplot(4,1,3),stem(y2_amplitude,'.');title('apFFT振幅谱')
subplot(4,1,4),stem(y2_phase,'.');title('apFFT相位谱')

比较一下
FFT测的是N个样点的第1点相位(振幅谱峰值处频率对应的相位值),有频偏时需校正(采样频率不是被测频率整数倍)
apFFT测的是2N-1个样点的中间点相位(振幅谱峰值处频率对应的相位值),有频偏时不需校正,和频偏无关
测相位谱是有用的,二路交流电同时取2N-1样点测中点相位可知其是否同频同相
上程序FFT加hanning窗, apFFT加双hanning窗;可用其它窗
无窗时,win=ones(1,N)

[ 本帖最后由 zhwang554 于 2008-5-21 16:10 编辑 ]

babys 发表于 2008-6-16 17:48

太感谢了 终于明白了:lol
页: [1]
查看完整版本: 分析电能谐波