在电力等行业,分析电压极值,是一项重要的参数分析,可以分析电压的波动;示波器中也有自动测量极值的功能更。
基于本板设计了信号处理前端也实现了该功能。
算法来源于论文https://www.mdpi.com/1999-4893/5/4/588/htm
核心代码如下
void ampd (int32_t* data, int32_t len)
{
int row_sum;
for (int k=1; k< len/2+1; k++)
{
row_sum = 0;
for (int i=k; i< len-k; i++)
{
if ((data[i] > data[i - k]) && (data[i] > data[i + k]))
{
row_sum -= 1;
}
}
arr_rowsum[k-1] = row_sum;
}
int min_index = argmin(arr_rowsum,len/2+1);
max_window_length = min_index;
for (int k=1; k< max_window_length + 1; k++)
{
for (int i=k; i< len - k; i++)
{
if ((data[i] > data[i - k]) && (data[i] > data[i + k]))
{
p_data[i] += 1;
}
}
}
for (int k=0; k< len; k++)
{
if (p_data[k] == max_window_length)
{
/* 极大值 */
}
}
}
测试
添加命令行
{ (const uint8_t*)"max", MaxFun, "max"}, /*打印帮助信息*/
void MaxFun ( void * param)
{
max_test();
}
void MaxFun ( void * param);
测试代码如下,串口命令行输入命令max,开始采集ADC值,并计算极值,打印到PC串口通过seraistudio可视化显示
int max_test(void)
{
for(int i=0; i< 10; i++)
{
memset(p_data,0,sizeof(p_data));
//adc_samp(sim_data_buffer,1000);
sim_data();
ampd(sim_data_buffer, sizeof(sim_data_buffer)/sizeof(sim_data_buffer[0]));
for(int k=0; k< sizeof(sim_data_buffer)/sizeof(sim_data_buffer[0]); k++)
{
if(p_data[k] == max_window_length)
{
/* 极大值 */
printf("/*%ld,%ld*/\\r\\n",sim_data_buffer[k],sim_data_buffer[k]);
}
else
{
printf("/*%ld,%d*/\\r\\n",sim_data_buffer[k],0);
}
cyhal_system_delay_ms(10);
}
}
return 0;
}
效果如下,IN是原始数据,MAX是检测到的极大值,如果检测极小值将原始数据取反即可。
检测语音,效果如下
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
英飞凌
+关注
关注
66文章
2147浏览量
138350 -
PSoC
+关注
关注
12文章
170浏览量
91785 -
信号处理
+关注
关注
48文章
999浏览量
103186 -
信号
+关注
关注
11文章
2776浏览量
76581 -
开发板
+关注
关注
25文章
4927浏览量
97142 -
RTT
+关注
关注
0文章
65浏览量
17079
发布评论请先 登录
相关推荐
【新品发布】英飞凌PSoC 6 RTT物联网开发板内容详解
4月12日,英飞凌联合 RT-Thread 发布PSoC™ 62 with CAPSENSE™ evaluation kit开发板 (以下简称PSoC
发表于 04-13 13:46
【资料下载】英飞凌PSoC 6 RTT物联网开发板
Infineon Psoc6-evaluationkit-062S2 说明开发板免费试用活动:https://bbs.elecfans.com/jishu_2349212_1_1.html简介本文
发表于 04-13 13:38
【新品试用】英飞凌PSoC 6 RTT开发板试用活动
概述、软件调试、硬件接入、视频演示,不少于500字+2张图片。
2)报告形式:标题格式 【评测活动标题+自拟标题】示例: 【英飞凌PSoC 6 RTT
发表于 04-13 15:26
【英飞凌PSoC 6 RTT开发板试用】
单周期乘法和MPU,可以充分发挥 PSoC6 双核芯片性能。
该开发板核心 板载资源 如下:
MCU:CY8C624ABZI-S2D44,Cortex-M4主频 150MHz,Cortex-M0主频
发表于 05-30 20:47
英飞凌联合 RT-Thread 发布 PSoC™ 62 with CAPSENSE ™ evaluation kit开发板
近日,RT-Thread 社区团队打造了新品开发板:英飞凌联合 RT-Thread 发布 PSoC 62 with CAPSENSE evaluation kit开发板 (以下简称
【英飞凌PSoC 6 RTT开发板试用】信号处理前端之谐波分析
3.1 电能质量,谐波分析 添加命令行 在电能检测应用中,电能质量一项分析即谐波分析,谐波分量大,说明电能质量不好, 基于本板信号处理前端也
基于PSOC6开发板构建的智能小车
本项目是基于Psoc6-evaluationkit-062S2开发板构建的智能小车。该开发板由RT-Thread与英飞凌联合推出,集成了一颗32位双核CPU子系统,包括150MHz的A
发表于 07-28 15:14
•767次阅读
基于RT-thread和Psoc6实现的多线程mpu6050读取及显示
这次RT-thread官方主办的一个大学生夏令营活动,我们组使用的是Psoc6开发板,这个板子的主控是英飞凌,这个板子的的介绍在RTT的官方文档里面有。
英飞凌开发板模块评测任务大挑战-SPI驱动测试
使用PSoC™ 62 with CAPSENSE™ evaluation kit开发板适配的RTT SPI驱动,做显示测试。
发表于 08-10 15:44
•675次阅读
【英飞凌测评】英飞凌PSoC™ 62开发板试用报告-LCD ILI9341 8080 DEMO
# Infineon Psoc6-evaluationkit-062S2 说明 ## 简介 本文档为 `RT-Thread` 为 `PSoC6 CY8CKIT-062S2-43012` 开发板提供
玩转PSoC 6 RTT积木式开发套件,实现毫米波雷达等实用功能
本期英飞凌手工课,将由来自英飞凌的工程师Jenson给大家带来PSoC62withCAPSENSEevaluationkit(下称PSoC6RTT开
评论