0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【英飞凌PSoC 6 RTT开发板试用】信号处理前端之极值检测

嵌入式USB开发 来源:嵌入式USB开发 作者:嵌入式USB开发 2023-07-11 14:33 次阅读

在电力等行业,分析电压极值,是一项重要的参数分析,可以分析电压的波动;示波器中也有自动测量极值的功能更。

基于本板设计了信号处理前端也实现了该功能。

算法来源于论文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是检测到的极大值,如果检测极小值将原始数据取反即可。

image.png

image.png

检测语音,效果如下

image.png

image.png

image.png

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 英飞凌
    +关注

    关注

    66

    文章

    2183

    浏览量

    138648
  • PSoC
    +关注

    关注

    12

    文章

    170

    浏览量

    91895
  • 信号处理
    +关注

    关注

    48

    文章

    1027

    浏览量

    103259
  • 信号
    +关注

    关注

    11

    文章

    2790

    浏览量

    76731
  • 开发板
    +关注

    关注

    25

    文章

    5033

    浏览量

    97375
  • RTT
    RTT
    +关注

    关注

    0

    文章

    65

    浏览量

    17115
收藏 人收藏

    评论

    相关推荐

    英飞凌PSoC 6】新建RTT工程

    介绍英飞凌PSoC 6 RTT开发板环境创建
    的头像 发表于 04-24 15:29 1930次阅读
    【<b class='flag-5'>英飞凌</b><b class='flag-5'>PSoC</b> <b class='flag-5'>6</b>】新建<b class='flag-5'>RTT</b>工程

    【新品发布】英飞凌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

    英飞凌PSoC 6 RTT开发板试用】+开箱测试

    英飞凌PSoC 6 RTT开发板试用】+开箱测试 硬件资源介绍
    发表于 06-05 01:06

    英飞凌联合 RT-Thread 发布 PSoC™ 62 with CAPSENSE ™ evaluation kit开发板

    近日,RT-Thread 社区团队打造了新品开发板英飞凌联合 RT-Thread 发布  PSoC 62 with CAPSENSE evaluation kit开发板 (以下简称
    的头像 发表于 04-13 01:35 1865次阅读

    英飞凌PSoC 6 RTT开发板试用信号处理前端之谐波分析

    3.1 电能质量,谐波分析 添加命令行 在电能检测应用中,电能质量一项分析即谐波分析,谐波分量大,说明电能质量不好, 基于本信号处理前端
    的头像 发表于 07-13 20:49 2312次阅读
    【<b class='flag-5'>英飞凌</b><b class='flag-5'>PSoC</b> <b class='flag-5'>6</b> <b class='flag-5'>RTT</b><b class='flag-5'>开发板</b><b class='flag-5'>试用</b>】<b class='flag-5'>信号</b><b class='flag-5'>处理</b><b class='flag-5'>前端</b>之谐波分析

    基于PSOC6开发板构建的智能小车

    本项目是基于Psoc6-evaluationkit-062S2开发板构建的智能小车。该开发板由RT-Thread与英飞凌联合推出,集成了一颗32位双核CPU子系统,包括150MHz的A
    发表于 07-28 15:14 795次阅读
    基于<b class='flag-5'>PSOC6</b><b class='flag-5'>开发板</b>构建的智能小车

    基于RT-thread和Psoc6实现的多线程mpu6050读取及显示

    这次RT-thread官方主办的一个大学生夏令营活动,我们组使用的是Psoc6开发板,这个板子的主控是英飞凌,这个板子的的介绍在RTT的官方文档里面有。
    的头像 发表于 07-31 15:42 1164次阅读
    基于RT-thread和<b class='flag-5'>Psoc6</b>实现的多线程mpu6050读取及显示

    英飞凌开发板模块评测任务大挑战-SPI驱动测试

    使用PSoC™ 62 with CAPSENSE™ evaluation kit开发板适配的RTT SPI驱动,做显示测试。
    发表于 08-10 15:44 717次阅读
    <b class='flag-5'>英飞凌</b><b class='flag-5'>开发板</b>模块评测任务大挑战-SPI驱动测试

    基于 Infineon PSoC™62开发板信号处理前端虚拟示波器-工具集

    一、前言 本项目基于英飞凌PSoC6 RT-Thread开发板实现了信号处理前端-一个
    的头像 发表于 08-16 20:15 631次阅读
    基于 Infineon <b class='flag-5'>PSoC</b>™62<b class='flag-5'>开发板</b>的<b class='flag-5'>信号</b><b class='flag-5'>处理</b><b class='flag-5'>前端</b>虚拟示波器-工具集

    基于infineonPSOC62开发板的-信号处理前端 虚拟示波器-工具集

    一、前言 本项目基于英飞凌PSoC 6 RTT开发板实现了信号
    的头像 发表于 10-11 18:35 584次阅读
    基于infineonPSOC62<b class='flag-5'>开发板</b>的-<b class='flag-5'>信号</b><b class='flag-5'>处理</b><b class='flag-5'>前端</b> 虚拟示波器-工具集

    英飞凌测评】英飞凌PSoC™ 62开发板试用报告-LCD ILI9341 8080 DEMO

    # Infineon Psoc6-evaluationkit-062S2 说明 ## 简介 本文档为 `RT-Thread` 为 `PSoC6 CY8CKIT-062S2-43012` 开发板提供
    的头像 发表于 03-07 21:07 696次阅读
    【<b class='flag-5'>英飞凌</b>测评】<b class='flag-5'>英飞凌</b><b class='flag-5'>PSoC</b>™ 62<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>报告-LCD ILI9341 8080 DEMO

    玩转PSoC 6 RTT积木式开发套件,实现毫米波雷达等实用功能

    本期英飞凌手工课,将由来自英飞凌的工程师Jenson给大家带来PSoC62withCAPSENSEevaluationkit(下称PSoC6RTT
    的头像 发表于 03-20 08:35 968次阅读
    玩转<b class='flag-5'>PSoC</b> <b class='flag-5'>6</b> <b class='flag-5'>RTT</b>积木式<b class='flag-5'>开发</b>套件,实现毫米波雷达等实用功能