[color=rgba(0, 0, 0, 0.75)]电力系统中往往掺杂谐波,而FFT可以将谐波检测出来,具有较大的实用价值。今天主要讲一下在STM32中如何利用dsp库进行快速傅里叶计算,从而得出信号的频谱幅值以及相位。
一、Matlab简单搭建1.谐波检测搭建通过50Hz正弦波叠加100Hz、200Hz的正弦波得到叠加后畸变的波形,这个波形主要用来进行FFT运算进行谐波检测。模型很简单如图1所示,三个正弦波相位相同、频率不同,幅值分别为5、15、30。图2中上边是叠加后的畸变的波形,下边是三个信号放在一张图时的波形。
2.相位分析搭建这个很简单,就是搞三个频率、幅值相同,相位分别差120°的正弦波。其中以A的相位为基准,B滞后于A120°,C滞后于B120°。放一起的波形如图2所示,就是电网中典型的三相电。
3.Matlab数据导入单片机中这里直接采用在单片机中定义数组,来存储Matlab波形信号。还要提一点,在simulink中设置的仿真步长为0.0003125,其对应的采样值为3200Hz,采样时间设置为0.02秒,即50Hz正弦波的一个周期。那么在这一个周期内,共由64个采样点组成。
将workspace里的数据复制到word中,然后全选,用“,”来替换换行符“^p”,就得到了可以直接在C语言里使用的数组,如下图。
|