色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

信號(hào)波峰波谷的用處與檢測(cè)方法及實(shí)戰(zhàn)

FPGA之家 ? 來源:CSDN技術(shù)社區(qū) ? 作者:最后一個(gè)bug ? 2021-03-21 11:16 ? 次閱讀

1、聊一聊

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

2、正文部分

1波峰波谷用處

對(duì)于信號(hào)波峰波谷識(shí)別在嵌入式領(lǐng)域應(yīng)該是非常廣泛的,因?yàn)榇蟛糠值男盘?hào)都處于一種時(shí)變的狀態(tài),信號(hào)在時(shí)域上處于一種類似于正弦波的波動(dòng)狀態(tài)。比如計(jì)步軟件就是通過IMU模塊所采集的變化的波形狀態(tài)來識(shí)別波峰波谷,最終估算你所走過步數(shù);

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

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

2比較法識(shí)別

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

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

3差分識(shí)別

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

A

識(shí)別算法過程

1、獲得采樣點(diǎn)序列

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

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

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

4、差分值為0的點(diǎn)即為相同點(diǎn),如果使用比較法則峰值檢測(cè)可能失效,便需要更多的條件,而這里我們直接把相同點(diǎn)0置為前一個(gè)非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]; //波峰位置存儲(chǔ)

12 int Pos_Valley[PV_MAX]; //波谷位置存儲(chǔ)

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

14 int Vcnt; //所識(shí)別的波谷計(jì)數(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 :對(duì)相鄰相等的點(diǎn)進(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 :對(duì)相鄰相等的點(diǎn)進(jìn)行領(lǐng)邊坡度處理

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

86 {

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

88 {

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

90 pFindPV-》Pcnt++;

91 }

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

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)注:最后一個(gè)bug

”);

126 return 0;

127}

2、最后

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

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

    關(guān)注

    23

    文章

    4619

    瀏覽量

    93041
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2794

    瀏覽量

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

    關(guān)注

    30

    文章

    4799

    瀏覽量

    68728

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TAS5715調(diào)節(jié)兩個(gè)DRC,輸出波型的波峰波谷變得很難看,為什么?

    為什么我用DEMO板調(diào)試只有DRC1有作用,DRC2沒有作用(兩個(gè)DRC都有ENABLE),還有調(diào)DRC的時(shí)候,輸出波型的波峰波谷變得很難看,現(xiàn)在遇到的問題是我做程序低音力度不夠 ,不知道還有沒有其它的原因。還有AD模式和BD模式有什么區(qū)別
    發(fā)表于 11-06 07:29

    波峰焊VS選擇性波峰焊:技術(shù)差異與應(yīng)用對(duì)比

    在電子制造業(yè)中,焊接技術(shù)扮演著至關(guān)重要的角色。其中,波峰焊與選擇性波峰焊作為兩種主要的焊接方式,各自具有獨(dú)特的特點(diǎn)和適用范圍。本文將從工作原理、應(yīng)用領(lǐng)域、焊接精度、效率與成本等幾個(gè)方面,詳細(xì)探討
    的頭像 發(fā)表于 10-08 11:16 ?849次閱讀

    將TL084的輸出端與反向輸入端相接作為電壓跟隨器,電壓跟隨的效果不好怎么處理?

    我將TL084的輸出端與反向輸入端相接作為電壓跟隨器。同相端輸入信號(hào)為15kHz,5V的正弦波。可是電壓跟隨的效果不好,有正弦波的波峰波谷有1V的偏差,是我芯片TL084選的有問題嗎?哪種芯片比較適合做電壓跟隨器?
    發(fā)表于 09-23 06:37

    LM675的gain過低時(shí)為什么會(huì)產(chǎn)生自激?

    請(qǐng)教大家一個(gè)問題,這個(gè)電路中如果RX1大于5K時(shí),輸入信號(hào)為20KHz,輸出信號(hào)波峰波谷會(huì)添加4MHz的信號(hào)。隨著RX1的增大,輸出
    發(fā)表于 09-20 06:00

    opa820小信號(hào)100mv以下的信號(hào)經(jīng)過同相放大,下面的波峰會(huì)削平,如何解決?

    信號(hào)100mv以下的信號(hào)經(jīng)過同相放大,下面的波峰會(huì)削平,后級(jí)處理占空比會(huì)改變。反而是1v峰峰值的信號(hào)會(huì)滅有這個(gè)問題,改變放大倍數(shù)也不能解決。 左邊輸入端是一個(gè)高通濾波器,用于濾除電
    發(fā)表于 08-30 06:21

    opa657激光電路怎么消除信號(hào)上的那個(gè)小波峰

    opa657激光電路怎么消除信號(hào)上的那個(gè)小波峰
    發(fā)表于 08-20 07:52

    請(qǐng)問buf602輸出為什么波峰波谷凹進(jìn)去了?

    buf602輸出為什么波峰波谷凹進(jìn)去了
    發(fā)表于 08-09 08:22

    普源示波器測(cè)量相位差的原理和方法

    的原理和方法,并通過實(shí)例演示其應(yīng)用。 一、普源示波器測(cè)量相位差的原理和方法 普源示波器測(cè)量相位差的原理基于信號(hào)的時(shí)間差。當(dāng)兩個(gè)信號(hào)在同一時(shí)間起點(diǎn)上開始時(shí),它們的相位差為0;當(dāng)兩個(gè)
    的頭像 發(fā)表于 05-07 15:07 ?1436次閱讀
    普源示波器測(cè)量相位差的原理和<b class='flag-5'>方法</b>

    什么是波峰焊,如何使PCBA組裝自動(dòng)焊接

    波峰焊是一種焊接工藝,通過將熔融的液態(tài)焊料形成特定的焊料波,將元器件插入PCB并使其通過焊料波峰,從而實(shí)現(xiàn)焊點(diǎn)焊接。這種工藝借助泵的作用,將焊料槽液面上的焊料形成波峰,然后將PCB置放在傳送鏈上
    發(fā)表于 03-05 17:57

    機(jī)器視覺中如何選擇合適波長(zhǎng)的光源

    。光是一種電磁波,它以波動(dòng)的形式傳播。如下圖所示,在傳播過程中光波的一個(gè)完整波周期的長(zhǎng)度,即從一個(gè)波峰(或波谷)到相鄰波峰(或波谷)之間的距離λ就是波長(zhǎng)。通常用納米(
    的頭像 發(fā)表于 02-27 15:40 ?725次閱讀
    機(jī)器視覺中如何選擇合適波長(zhǎng)的光源

    利用ADG508F與分壓電阻輸出正弦階梯波信號(hào)波峰波谷出現(xiàn)斷界情況是什么原因

    利用ADG508F與分壓電阻輸出正弦階梯波信號(hào)波峰波谷出現(xiàn)斷界情況是什么原因
    發(fā)表于 02-24 16:46

    PCBA波峰焊期間發(fā)生焊料飛濺的原因有哪些?

    一站式PCBA智造廠家今天為大家講講PCBA波峰焊加工發(fā)生焊料飛濺的原因有哪些?產(chǎn)生焊料飛濺的原因及應(yīng)對(duì)方法。PCBA波峰焊是一種常用的電子制造工藝。在該過程中,由于高溫而導(dǎo)致的焊膏飛濺是一個(gè)繞
    的頭像 發(fā)表于 02-18 09:53 ?461次閱讀

    波峰焊接工藝制程的問題及解決方法分析

    一站式PCBA智造廠家今天為大家講講PCBA波峰焊有哪些工藝難點(diǎn)?PCBA波峰焊接工藝問題解決方。在電子制造過程中,PCBA(印刷電路板組裝)是一個(gè)非常關(guān)鍵的環(huán)節(jié)。波峰焊是PCBA過程中最重要也最常
    的頭像 發(fā)表于 01-30 09:24 ?674次閱讀

    信號(hào)燈的氣密性檢測(cè)方法

    隨著科技的發(fā)展,信號(hào)燈在交通、航海、航空等各個(gè)領(lǐng)域的應(yīng)用越來越廣泛。為了保證信號(hào)燈的穩(wěn)定性和安全性,對(duì)其氣密性的檢測(cè)顯得尤為重要。本文將介紹信號(hào)燈的氣密性
    的頭像 發(fā)表于 01-27 11:26 ?475次閱讀
    <b class='flag-5'>信號(hào)</b>燈的氣密性<b class='flag-5'>檢測(cè)</b><b class='flag-5'>方法</b>

    什么是波峰焊?波峰焊接缺陷原因分析及對(duì)策

    什么是波峰焊?波峰焊接缺陷原因分析及對(duì)策
    的頭像 發(fā)表于 01-15 10:07 ?1102次閱讀
    什么是<b class='flag-5'>波峰</b>焊?<b class='flag-5'>波峰</b>焊接缺陷原因分析及對(duì)策
    主站蜘蛛池模板: 婷婷午夜影院| 深夜释放自己污在线看| 羞羞影院午夜男女爽爽免费| 国产99九九久久无码熟妇| 小处雏一区二区三区| 国产精品97久久AV色婷婷| 四虎永久精品视频在线| 国产午夜人做人免费视频中文| 亚洲在线2018最新无码| 老师你奶真大下面水真多| 手机精品在线| 红杏俱乐部| 97se se| 久久天堂网| 抽插的日日液液H| 亚洲精品久久久久AV无码| 妈妈的职业3完整版在线播放| a国产成人免费视频| 久久九九有精品国产23百花影院| 97视频视频人人碰视频| 手机精品在线| 久久久无码精品亚洲A片猫咪| TUBE69CHINESE学生| 日本人吃奶玩奶虐乳| 国产在线精品视频资源| 9位美女厕所撒尿11分| 小舞被爆操| 欧美xxxx印度| 好男人社区| 成年女人免费影院播放| 日本亚洲电影| 精品一品国产午夜福利视频| www.狠狠色| 影音先锋av色咪影院| 日韩欧美视频一区| 成人国内精品久久久久影| 野花日本大全免费高清完整版| 欧美wwwvideos在线观看| 精品AV国产一区二区三区| 成人在免费视频手机观看网站| 伊人网站在线|