在電力等行業,分析電壓極值,是一項重要的參數分析,可以分析電壓的波動;示波器中也有自動測量極值的功能更。
基于本板設計了信號處理前端也實現了該功能。
算法來源于論文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文章
2061瀏覽量
137530 -
PSoC
+關注
關注
12文章
169瀏覽量
91520 -
信號處理
+關注
關注
48文章
948瀏覽量
102903 -
信號
+關注
關注
11文章
2714瀏覽量
76039 -
開發板
+關注
關注
25文章
4704瀏覽量
95749 -
RTT
+關注
關注
0文章
64瀏覽量
16962
發布評論請先 登錄
相關推薦
【新品發布】英飛凌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
?640次閱讀
基于RT-thread和Psoc6實現的多線程mpu6050讀取及顯示
這次RT-thread官方主辦的一個大學生夏令營活動,我們組使用的是Psoc6開發板,這個板子的主控是英飛凌,這個板子的的介紹在RTT的官方文檔里面有。
英飛凌開發板模塊評測任務大挑戰-SPI驅動測試
使用PSoC? 62 with CAPSENSE? evaluation kit開發板適配的RTT SPI驅動,做顯示測試。
發表于 08-10 15:44
?566次閱讀
【英飛凌測評】英飛凌PSoC? 62開發板試用報告-LCD ILI9341 8080 DEMO
# Infineon Psoc6-evaluationkit-062S2 說明 ## 簡介 本文檔為 `RT-Thread` 為 `PSoC6 CY8CKIT-062S2-43012` 開發板提供
玩轉PSoC 6 RTT積木式開發套件,實現毫米波雷達等實用功能
本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家帶來PSoC62withCAPSENSEevaluationkit(下稱PSoC6RTT開
評論