如何用Matlab求出信号的基频啊?谢谢

如何用Matlab求出信号的基频啊?谢谢,第1张

U为原信号。在matlab中表示为一个向量(一维信号)或矩阵(二维信号)。

执行I=FFT(U)

则I为U的傅立叶变换频谱分布向量或矩阵。

I(1)或I(1,1)即为基频幅值。

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12135203.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存