在電力等行業(yè),分析電壓極值,是一項重要的參數(shù)分析,可以分析電壓的波動;示波器中也有自動測量極值的功能更。
基于本板設計了信號處理前端也實現(xiàn)了該功能。
算法來源于論文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是原始數(shù)據(jù),MAX是檢測到的極大值,如果檢測極小值將原始數(shù)據(jù)取反即可。
檢測語音,效果如下
審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
英飛凌
+關注
關注
67文章
2205瀏覽量
138944 -
PSoC
+關注
關注
12文章
172瀏覽量
92015 -
信號處理
+關注
關注
48文章
1040瀏覽量
103353 -
信號
+關注
關注
11文章
2803瀏覽量
76980 -
開發(fā)板
+關注
關注
25文章
5116瀏覽量
97917 -
RTT
+關注
關注
0文章
65瀏覽量
17183
發(fā)布評論請先 登錄
相關推薦
【新品發(fā)布】英飛凌PSoC 6 RTT物聯(lián)網(wǎng)開發(fā)板內(nèi)容詳解
4月12日,英飛凌聯(lián)合 RT-Thread 發(fā)布PSoC? 62 with CAPSENSE? evaluation kit開發(fā)板 (以下簡稱PSoC
發(fā)表于 04-13 13:46
【資料下載】英飛凌PSoC 6 RTT物聯(lián)網(wǎng)開發(fā)板
Infineon Psoc6-evaluationkit-062S2 說明開發(fā)板免費試用活動:https://bbs.elecfans.com/jishu_2349212_1_1.html簡介本文
發(fā)表于 04-13 13:38
【新品試用】英飛凌PSoC 6 RTT開發(fā)板試用活動
概述、軟件調(diào)試、硬件接入、視頻演示,不少于500字+2張圖片。
2)報告形式:標題格式 【評測活動標題+自擬標題】示例: 【英飛凌PSoC 6 RTT
發(fā)表于 04-13 15:26
【英飛凌PSoC 6 RTT開發(fā)板試用】
單周期乘法和MPU,可以充分發(fā)揮 PSoC6 雙核芯片性能。
該開發(fā)板核心 板載資源 如下:
MCU:CY8C624ABZI-S2D44,Cortex-M4主頻 150MHz,Cortex-M0主頻
發(fā)表于 05-30 20:47
英飛凌聯(lián)合 RT-Thread 發(fā)布 PSoC? 62 with CAPSENSE ? evaluation kit開發(fā)板
近日,RT-Thread 社區(qū)團隊打造了新品開發(fā)板:英飛凌聯(lián)合 RT-Thread 發(fā)布 ?PSoC 62 with CAPSENSE evaluation kit開發(fā)板?(以下簡稱
【英飛凌PSoC 6 RTT開發(fā)板試用】信號處理前端之諧波分析
3.1 電能質(zhì)量,諧波分析 添加命令行 在電能檢測應用中,電能質(zhì)量一項分析即諧波分析,諧波分量大,說明電能質(zhì)量不好, 基于本板信號處理前端也
基于PSOC6開發(fā)板構建的智能小車
本項目是基于Psoc6-evaluationkit-062S2開發(fā)板構建的智能小車。該開發(fā)板由RT-Thread與英飛凌聯(lián)合推出,集成了一顆32位雙核CPU子系統(tǒng),包括150MHz的A
發(fā)表于 07-28 15:14
?832次閱讀
基于RT-thread和Psoc6實現(xiàn)的多線程mpu6050讀取及顯示
這次RT-thread官方主辦的一個大學生夏令營活動,我們組使用的是Psoc6開發(fā)板,這個板子的主控是英飛凌,這個板子的的介紹在RTT的官方文檔里面有。
英飛凌開發(fā)板模塊評測任務大挑戰(zhàn)-SPI驅(qū)動測試
使用PSoC? 62 with CAPSENSE? evaluation kit開發(fā)板適配的RTT SPI驅(qū)動,做顯示測試。
發(fā)表于 08-10 15:44
?745次閱讀
【英飛凌測評】英飛凌PSoC? 62開發(fā)板試用報告-LCD ILI9341 8080 DEMO
# Infineon Psoc6-evaluationkit-062S2 說明 ## 簡介 本文檔為 `RT-Thread` 為 `PSoC6 CY8CKIT-062S2-43012` 開發(fā)板提供
玩轉(zhuǎn)PSoC 6 RTT積木式開發(fā)套件,實現(xiàn)毫米波雷達等實用功能
本期英飛凌手工課,將由來自英飛凌的工程師Jenson給大家?guī)?b class='flag-5'>PSoC62withCAPSENSEevaluationkit(下稱PSoC6RTT開
評論