国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

信號波峰波谷的用處與檢測方法及實戰(zhàn)

FPGA之家 ? 來源:CSDN技術(shù)社區(qū) ? 作者:最后一個bug ? 2021-03-21 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、聊一聊

其實每個人在無助的時候都需要一句“Cry On My Shoulder!” 今天跟大家介紹一種波峰波谷的檢測方法,不是很難,不過能夠凸顯數(shù)學(xué)在編程算法中的重要作用。

2、正文部分

1波峰波谷用處

對于信號波峰波谷識別在嵌入式領(lǐng)域應(yīng)該是非常廣泛的,因為大部分的信號都處于一種時變的狀態(tài),信號在時域上處于一種類似于正弦波的波動狀態(tài)。比如計步軟件就是通過IMU模塊所采集的變化的波形狀態(tài)來識別波峰波谷,最終估算你所走過步數(shù);

上圖顯示了一個典型的x-, y-和z-測量模式,對應(yīng)于一個跑步者的垂直,向前和側(cè)面加速度。無論如何佩戴計步器,至少有一個軸會有相對較大的周期性加速度變化,因此通過檢測其波峰波谷等算法即可對于檢測步行或跑步的單位周期至關(guān)重要。

還有在電力系統(tǒng)中的交流電壓電流,我們需要通過檢測波峰波谷來確定電壓電流在交流周期中的最大最小值,從而動態(tài)調(diào)節(jié)系統(tǒng)參數(shù)來達(dá)到自適應(yīng)的目的,所以波峰波谷的檢測是非常有用的。

2比較法識別

常規(guī)的設(shè)計辦法為比較法 : 其中x表示當(dāng)前采樣點波峰:f(x) 》 f(x?1) 且 f(x) 》 f(x+1)波谷:f(x) 《 f(x?1) 且 f(x) 《 f(x+1)

然而這樣識別對于沒有什么噪聲,且每個采樣點為不同的信號來說還是合適的,但在嚴(yán)苛的環(huán)境中還需要構(gòu)造更多的判斷條件來進(jìn)行一些錯誤判斷的規(guī)避,終究還是麻煩了一些,并且容易遺漏。

3差分識別

在學(xué)生階段我們就學(xué)習(xí)了導(dǎo)數(shù)的概念,如果一個函數(shù)一階導(dǎo)數(shù)左右異號,那分別就是波峰或者波谷。而對于數(shù)字信號的處理通過采樣都會變成離散信號,信號對時間的微分在離散域內(nèi)即為差分。在進(jìn)行波形識別之前數(shù)據(jù)采集是必不可少的,其中最重要的是采樣速率和精度,以便從采樣信號中不失真的恢復(fù)原連續(xù)信號。(香農(nóng)采樣)采樣的過程中由于電子器件的雜訊等,數(shù)據(jù)難免會引入噪聲,為了簡化識別算法一般都會進(jìn)行濾波處理,比如一些平滑處理等,然后才開始波峰波谷識別。

A

識別算法過程

1、獲得采樣點序列

2、進(jìn)行差分處理

3、由于不在乎具體的差分幅值,把所有數(shù)據(jù)歸一到-1,0,1

4605a6be-8924-11eb-8b86-12bb97331649.png

4、差分值為0的點即為相同點,如果使用比較法則峰值檢測可能失效,便需要更多的條件,而這里我們直接把相同點0置為前一個非0即可規(guī)避該問題。

4641fd08-8924-11eb-8b86-12bb97331649.png

5、最終Diff再次進(jìn)行差分,-2/+2即為波峰/波谷。

465debd0-8924-11eb-8b86-12bb97331649.png

B

參考代碼

1#include 《stdio.h》

2#include 《stdlib.h》

3#define SAMPLE_MAX 20

4#define PV_MAX 10

5

6float Sample[SAMPLE_MAX]={1,2,3,4,4,4,5,2,1,0,0,5,1,0,0,1,2,3,4,0};

7float SampleDiff[SAMPLE_MAX]={0};

8

9typedef struct _tag_FindPV

10{

11 int Pos_Peak[PV_MAX]; //波峰位置存儲

12 int Pos_Valley[PV_MAX]; //波谷位置存儲

13 int Pcnt; //所識別的波峰計數(shù)

14 int Vcnt; //所識別的波谷計數(shù)

15}SFindPV;

16

17SFindPV stFindPV;

18

19/********************************************

20 * Fuction : initialFindPV

21 * Note : 初始化相關(guān)數(shù)據(jù)

22 *******************************************/

23void initialFindPV(void)

24{

25 int Index = 0;

26

27 for(Index = 0; Index 《 SAMPLE_MAX;Index ++)

28 {

29 SampleDiff[Index] = 0;

30 }

31

32 for(Index = 0; Index 《 PV_MAX;Index ++)

33 {

34 stFindPV.Pos_Peak[Index] = -1;

35 stFindPV.Pos_Valley[Index] = -1;

36 }

37 stFindPV.Pcnt = 0;

38 stFindPV.Vcnt = 0;

39

40}

41

42/********************************************

43 * Fuction : FindPV

44 * Note : 找波峰波谷

45 *******************************************/

46void FindPV(SFindPV *pFindPV,float *Sample)

47{

48 int i = 0;

49

50 //step 1 :首先進(jìn)行前向差分,并歸一化

51 for(i= 0; i 《 SAMPLE_MAX - 1; i++)

52 {

53 if (Sample[i + 1] - Sample[i]》0)

54 SampleDiff[i] = 1;

55 else if (Sample[i + 1] - Sample[i] 《 0)

56 SampleDiff[i] = -1;

57 else

58 SampleDiff[i] = 0;

59 }

60

61 //step 2 :對相鄰相等的點進(jìn)行領(lǐng)邊坡度處理

62 for(i= 0; i 《 SAMPLE_MAX-1; i++)

63 {

64 if(SampleDiff[i] == 0)

65 {

66 if(i == (SAMPLE_MAX-2))

67 {

68 if (SampleDiff[i - 1] 》= 0)

69 SampleDiff[i] = 1;

70 else

71 SampleDiff[i] = -1;

72 }

73 else

74 {

75 if (SampleDiff[i + 1] 》= 0)

76 SampleDiff[i] = 1;

77 else

78 SampleDiff[i] = -1;

79 }

80

81 }

82 }

83

84 //step 3 :對相鄰相等的點進(jìn)行領(lǐng)邊坡度處理

85 for(i= 0; i 《 SAMPLE_MAX-1; i++)

86 {

87 if(SampleDiff[i + 1] - SampleDiff[i] == -2) //波峰識別

88 {

89 pFindPV-》Pos_Peak[pFindPV-》Pcnt] = i + 1;

90 pFindPV-》Pcnt++;

91 }

92 else if(SampleDiff[i + 1] - SampleDiff[i] == 2) //波谷識別

93 {

94 pFindPV-》Pos_Valley[pFindPV-》Vcnt] = i + 1;

95 pFindPV-》Vcnt++;

96 }

97 }

98}

99

100/********************************************

101 * Fuction : main

102 * Note : 模擬查找波峰波谷

103 *******************************************/

104int main(int argc, char *argv[]) {

105

106 int i = 0;

107

108 initialFindPV();

109

110 FindPV(&stFindPV,Sample);

111

112 printf(“Peak

”);

113 for(i = 0 ;i《 stFindPV.Pcnt;i++)

114 {

115 printf(“-%d”,stFindPV.Pos_Peak[i] + 1); //加1是為了與上圖橫坐標(biāo)一致

116 }

117

118 printf(“

Valley

”);

119 for(i = 0 ;i《 stFindPV.Vcnt;i++)

120 {

121 printf(“-%d”,stFindPV.Pos_Valley[i] + 1);

122 }

123

124 printf(“

”);

125 printf(“歡迎關(guān)注:最后一個bug

”);

126 return 0;

127}

2、最后

當(dāng)然在實際的項目中為了更加穩(wěn)定的識別波峰波谷可能會對波峰波谷的出現(xiàn)特點進(jìn)行限制,從而進(jìn)一步減少誤識別,也有許多人使用數(shù)據(jù)擬合的辦法來識別波峰波谷,那么識別的準(zhǔn)確度就與所擬合的函數(shù)有關(guān),通過數(shù)學(xué)方法對所擬合函數(shù)進(jìn)行波峰波谷的求解,最終得到信號的波峰波谷,不過這樣的擬合過程對平臺的處理能力提出了一定的要求。
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4784

    瀏覽量

    98044
  • 信號
    +關(guān)注

    關(guān)注

    12

    文章

    2914

    瀏覽量

    80124
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73960

原文標(biāo)題:信號波峰波谷二階差分識別算法

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Kubernetes HPA和VPA使用實戰(zhàn)指南

    線上業(yè)務(wù)流量存在明顯的波峰波谷。白天高峰期Pod數(shù)量不夠?qū)е抡埱笈抨牐璩康凸绕诖罅縋od空跑浪費資源。手動擴(kuò)縮容不現(xiàn)實——你不可能每天早上8點上線加Pod、晚上12點再縮回去。
    的頭像 發(fā)表于 02-26 16:27 ?88次閱讀

    【NPU實戰(zhàn)】在迅為RK3588上玩轉(zhuǎn)YOLOv8:目標(biāo)檢測與語義分割一站式部署指南

    【NPU實戰(zhàn)】在迅為RK3588上玩轉(zhuǎn)YOLOv8:目標(biāo)檢測與語義分割一站式部署指南
    的頭像 發(fā)表于 12-12 14:30 ?6150次閱讀
    【NPU<b class='flag-5'>實戰(zhàn)</b>】在迅為RK3588上玩轉(zhuǎn)YOLOv8:目標(biāo)<b class='flag-5'>檢測</b>與語義分割一站式部署指南

    泰克AFG31000信號發(fā)生器在充電樁檢測中的應(yīng)用方法及注意事項

    可靠工具。本文結(jié)合充電樁檢測需求,介紹其應(yīng)用方法及注意事項。 一、檢測方法與步驟 1. 設(shè)備連接與基礎(chǔ)配置 物理連接:通過BNC接口或以太網(wǎng)將AFG31000與充電樁待測模塊連接,確保
    的頭像 發(fā)表于 12-01 16:13 ?863次閱讀
    泰克AFG31000<b class='flag-5'>信號</b>發(fā)生器在充電樁<b class='flag-5'>檢測</b>中的應(yīng)用<b class='flag-5'>方法</b>及注意事項

    ADC 實戰(zhàn):如何精準(zhǔn)讀取傳感器信號

    關(guān)鍵因素。今天,我們就從原理到實戰(zhàn),帶你搞懂ADC,幫你精準(zhǔn)讀取傳感器信號。一、ADC基礎(chǔ)回顧ADC(Analog-to-DigitalConverter)是將連
    的頭像 發(fā)表于 11-24 19:04 ?481次閱讀
    ADC <b class='flag-5'>實戰(zhàn)</b>:如何精準(zhǔn)讀取傳感器<b class='flag-5'>信號</b>

    【RK3568 NPU實戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果

    【RK3568 NPU實戰(zhàn)】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI檢測Demo,附完整流程與效果
    的頭像 發(fā)表于 11-10 15:58 ?1059次閱讀
    【RK3568 NPU<b class='flag-5'>實戰(zhàn)</b>】別再閑置你的NPU!手把手帶你用迅為資料跑通Android AI<b class='flag-5'>檢測</b>Demo,附完整流程與效果

    波峰焊設(shè)備的維護(hù)和保養(yǎng)方法

    能延長設(shè)備使用壽命,還能降低故障發(fā)生率,確保生產(chǎn)順利進(jìn)行。以下從設(shè)備各主要組成部分出發(fā),結(jié)合晉力達(dá)波峰焊的優(yōu)勢,詳細(xì)介紹波峰焊設(shè)備的維護(hù)和保養(yǎng)方法
    的頭像 發(fā)表于 06-17 17:03 ?1537次閱讀

    儲能EMC整改:如何節(jié)省70%整改費用的實戰(zhàn)方法

    深圳南柯電子|儲能EMC整改:如何節(jié)省70%整改費用的實戰(zhàn)方法
    的頭像 發(fā)表于 06-03 11:28 ?1056次閱讀
    儲能EMC整改:如何節(jié)省70%整改費用的<b class='flag-5'>實戰(zhàn)</b><b class='flag-5'>方法</b>

    實戰(zhàn)演練:使用相機(jī)氣密性檢測儀進(jìn)行防水測試

    在攝影領(lǐng)域,尤其是進(jìn)行戶外攝影,不少攝影師會在惡劣環(huán)境下使用相機(jī),這就對相機(jī)的防水性能有了要求。而相機(jī)氣密性檢測就是判斷相機(jī)防水性能的重要途徑,下面我們就來一次使用相機(jī)氣密性檢測儀進(jìn)行防水測試的實戰(zhàn)
    的頭像 發(fā)表于 05-30 11:04 ?585次閱讀
    <b class='flag-5'>實戰(zhàn)</b>演練:使用相機(jī)氣密性<b class='flag-5'>檢測</b>儀進(jìn)行防水測試

    波峰焊技術(shù)入門:原理、應(yīng)用與行業(yè)標(biāo)準(zhǔn)

    等問題。波峰焊技術(shù)的廣泛應(yīng)用波峰焊技術(shù)在電子制造行業(yè)具有廣泛的應(yīng)用,如計算機(jī)、通訊、消費類電子、汽車電子等領(lǐng)域。在手機(jī)制造中,主板上的部分元器件采用波峰焊連接,確保信號傳輸穩(wěn)定;汽車電
    發(fā)表于 05-29 16:11

    PCBA 加工必備知識:選擇性波峰焊和傳統(tǒng)波峰焊區(qū)別大揭秘

    一站式PCBA加工廠家今天為大家講講PCBA加工選擇性波峰焊與傳統(tǒng)波峰焊有什么區(qū)別?選擇性波峰焊與傳統(tǒng)波峰焊的區(qū)別及應(yīng)用。在PCBA加工中,DIP插件焊接是確保產(chǎn)品連接可靠性的重要工序
    的頭像 發(fā)表于 05-08 09:21 ?1635次閱讀

    一文搞懂波峰焊工藝及缺陷預(yù)防

    效果,需要考慮焊料配方、助焊劑、元件和PCB的匹配、工裝設(shè)計及過程控制參數(shù)等因素。但是,當(dāng)出現(xiàn)焊接不良時,可能有多個原因?qū)е隆O旅娼榻B一些常見的波峰焊焊接不良、產(chǎn)生原因的分析方法及改善建議。 ? 一、波峰焊工藝曲
    的頭像 發(fā)表于 04-09 14:46 ?3744次閱讀
    一文搞懂<b class='flag-5'>波峰</b>焊工藝及缺陷預(yù)防

    一文搞懂波峰焊工藝及缺陷預(yù)防

    效果,需要考慮焊料配方、助焊劑、元件和PCB的匹配、工裝設(shè)計及過程控制參數(shù)等因素。但是,當(dāng)出現(xiàn)焊接不良時,可能有多個原因?qū)е隆O旅娼榻B一些常見的波峰焊焊接不良、產(chǎn)生原因的分析方法及改善建議。 一
    發(fā)表于 04-09 14:44

    波峰焊機(jī)與助焊劑的適配指南:初入行業(yè)必知的選擇邏輯

    波峰焊工藝中,助焊劑與設(shè)備的匹配至關(guān)重要。波峰焊機(jī)主要有傳統(tǒng)單波峰、雙波峰、微型、氮氣波峰四類,單波峰
    的頭像 發(fā)表于 04-07 19:32 ?1433次閱讀
    <b class='flag-5'>波峰</b>焊機(jī)與助焊劑的適配指南:初入行業(yè)必知的選擇邏輯

    波峰焊點拉尖現(xiàn)象的成因與解決策略

    在電子制造領(lǐng)域,波峰焊是一種常見的焊接工藝,廣泛應(yīng)用于印刷電路板(PCB)的組裝。然而,在波峰焊過程中,點拉尖現(xiàn)象是影響焊接質(zhì)量的一個常見問題。點拉尖是指焊點上的焊料呈現(xiàn)乳石狀或水柱形狀,這種現(xiàn)象
    發(fā)表于 03-27 13:43

    波峰焊在PCBA加工中的應(yīng)用與選擇要點,一文讀懂!

    一站式PCBA智造廠家今天為大家講講波峰焊在PCBA生產(chǎn)中的應(yīng)用有哪些?PCBA加工選擇波峰焊的注意事項。在PCBA生產(chǎn)過程中,波峰焊是一種廣泛應(yīng)用的焊接工藝,尤其適用于雙面插件(DIP)元件的焊接
    的頭像 發(fā)表于 03-26 09:07 ?1335次閱讀