网站首页

人工智能P2P分享搜索全网发布信息网站地图标签大全

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

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

时间:2023-07-11 14:33

人气:

作者:admin

标签: 英飞凌  RTT  信号  开发板  PSoC 

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

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

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

算法来源于论文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

审核编辑:汤梓红

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信