如何在matlab实现5次谐波提取

2025-05-24 07:59:02
推荐回答(4个)
回答1:

  1. FFT分析频谱图导出的话可以参考这里                                                          

  2. 2.THD谐波总畸变率计算参考这里
    3.谐波分量提取参考这里
    4.谐波PLOT:HIT ME!!
      基本指令格式:
       power_fftscope
      FFTDATA = power_fftscope(ScopeData)
      FFTDATA = power_fftscope(FFTDATA)
      power_fftscope(ScopeData)
      power_fftscope(FFTDATA)例子:
       假设要分析的信号是电流iL(在scope里命名为"iL1a")
       先在powergui里分析一遍
       然后在command窗口里输入: 


    >> FFTDATA = power_fftscope(iL1a)  % FFTDATE是傅立叶分析相关参数的结构体


    FFTDATA = 


                   time: [120001x1 double]
                signals: [1x1 struct]
              blockName: 'apf6_PR/Scope13'
                  input: 1
                 signal: 1
              startTime: 'last'
                 cycles: 1
            fundamental: 60
           maxFrequency: 1000
        THDmaxFrequency: Inf
                THDbase: 'fund'
                    mag: [17x1 double]
                  phase: [17x1 double]
                   freq: [17x1 double]
                    THD: 27.5218
           samplingTime: 1.0000e-06
        samplesPerCycle: 16667
            DCcomponent: 0.0662
         magFundamental: 8.9817


    >> FFTDATE.fundamental=50   % 修改基频


    FFTDATE = 


        fundamental: 50


回答2:

y=a.signals.values;
Fs = 300; % Sampling frequency
T = 1/Fs; % Sample time
L=length(y); % Length of signal
NFFT = 2^nextpow2(L); % Next power of 2 from length of y
Y = fft(y,NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1)
z=2*abs(Y(1:NFFT/2+1))
% Plot single-sided amplitude spectrum.
plot(f,2*abs(Y(1:NFFT/2+1)))
title('Single-Sided Amplitude Spectrum of y(t)');
xlabel('Frequency (Hz)');
ylabel('|Y(f)|');

回答3:

插入FFT模块进行傅里叶分解。

回答4:

程序估计给你也不合适,我做的是电力电子方面的。你要先在simulink定好你的节点图,添加电流和电压互感器,用示波器测出电流和电压~~用powergui的FFT(傅里叶分析)进行分析,LIST里全部都有~~自己查看一下~~