3.1 电能质量,谐波分析
添加命令行
在电能检测应用中,电能质量一项分析即谐波分析,谐波分量大,说明电能质量不好,
基于本板信号处理前端也实现了该功能。
shell_fun.h中
void FftFun(void* param);
shell_fun.c中
#include "fft.h"
shell_cmd_list中添加一行
{ (const uint8_t*)"fft", FftFun, "fft"}, /*打印帮助信息*/
添加命令执行函数
void FftFun(void* param)
{
fft_main();
}
添加实现
Fft.c
#include "arm_math.h"
#include "arm_const_structs.h"
#include < stdio.h >
#define TEST_LENGTH_SAMPLES 2048
extern float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];
static float32_t testOutput[TEST_LENGTH_SAMPLES/2];
static uint32_t fftSize = 1024;
static uint32_t ifftFlag = 0;
static uint32_t doBitReverse = 1;
static arm_cfft_instance_f32 varInstCfftF32;
static int testIndex = 0;
static float testtmp_f32_10khz[2048];
static int32_t adcbuffer[2048];
int32_t fft_main(void)
{
arm_status status;
float32_t maxValue;
status = ARM_MATH_SUCCESS;
status=arm_cfft_init_f32(&varInstCfftF32,fftSize);
//memcpy(testtmp_f32_10khz,testInput_f32_10khz,sizeof(testInput_f32_10khz));
adc_samp(adcbuffer,2048);
for(int i=0; i< 2048;i ++)
{
testtmp_f32_10khz[i] = (float)adcbuffer[i];
}
arm_cfft_f32(&varInstCfftF32, testtmp_f32_10khz, ifftFlag, doBitReverse);
arm_cmplx_mag_f32(testtmp_f32_10khz, testOutput, fftSize);
/* Calculates maxValue and returns corresponding BIN value */
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);
int32_t out = 0;
for(int i=0; i< TEST_LENGTH_SAMPLES; i++)
{
if(i >TEST_LENGTH_SAMPLES/2)
{
out = testOutput[i-TEST_LENGTH_SAMPLES/2]/1024;
}
else
{
out = testOutput[i]/1024;
}
printf("/*%ld,%ld*/rn", adcbuffer[i],out);
}
}
/** endlink */
Fft.h
#ifndef FFT_H
#define FFT_H
int fft_main(void);
#endif
测试
看到分析如下,前面是模拟输入,后面是谐波分析结果
详见视频和工程源码
审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
测试
+关注
关注
8文章
4458浏览量
125128 -
谐波
+关注
关注
6文章
737浏览量
41352 -
开发板
+关注
关注
25文章
4437浏览量
94084 -
RTT
+关注
关注
0文章
63浏览量
16884
发布评论请先 登录
相关推荐
玩转PSoC 6 RTT积木式开发套件,实现毫米波雷达等实用功能
本期英飞凌手工课,将由来自英飞凌的工程师Jenson给大家带来PSoC62withCAPSENSEevaluationkit(下称PSoC6RTT开
求助,音频谐波分析仪如何选ADC?
我想设计音频谐波分析仪。请问选精度类型的比如LTC2500-32好,还是高速的LTC2387-18好?带宽能测量到100Khz就可以。但是要求动态范围越大越好,精度越高越好。不计成本。
发表于 12-08 07:10
英飞凌开发板模块评测任务大挑战-SPI驱动测试
使用PSoC™ 62 with CAPSENSE™ evaluation kit开发板适配的RTT SPI驱动,做显示测试。
发表于 08-10 15:44
•467次阅读
【英飞凌PSoC 6 RTT开发板试用】信号处理前端之频率幅值相位分析
FFT变换结果,幅值最大的横坐标对应信号频率,纵坐标对应幅度。幅值最大的为out[m]=val;则信号频率f0=(Fs/N)m ,信号幅值Vpp=val/(N/2)。N为FFT的点数,Fs为采样频率。相位Pha=atan2(a,
【英飞凌PSoC 6 RTT开发板试用】+USB测试
参考《Infineon-PSoC_6_MCU_CY8C6xx8_CY8C6xxA_Architecture_Technical_Reference_Manual_(TRM)-AdditionalTechnicalInformation-v08_00-EN.pdf》的33.
发表于 06-16 23:32
【英飞凌PSoC 6 RTT开发板试用】机器人机械臂控制原创开源(2) 试用英飞凌产品介绍
接上篇:【英飞凌PSoC 6 RTT开发板试用】机器人机械臂控制原创开源(1) 开箱(产品介绍)
发表于 06-10 15:28
【英飞凌PSoC 6 RTT开发板试用】以搭积木方式实现简单的互联型家庭网关
本文基于RT-Studio,采用搭积木的方式实现一个简单的互联型家庭网关,采集各类传感器数据并传输至云端。硬件除了Psoc6-evaluationkit-062S2开发板之外,还有一块RW007
发表于 05-31 22:19
【英飞凌PSoC 6 RTT开发板试用】
单周期乘法和MPU,可以充分发挥 PSoC6 双核芯片性能。
该开发板核心 板载资源 如下:
MCU:CY8C624ABZI-S2D44,Cortex-M4主频 150MHz,Cortex-M0主频
发表于 05-30 20:47
评论