首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从阵列中的实时数据中检测峰值

从阵列中的实时数据中检测峰值
EN

Stack Overflow用户
提问于 2020-09-10 21:23:31
回答 1查看 56关注 0票数 0

我使用dsPIC33FJ32MC204控制器连接了一个振幅为3V的正弦波,该正弦波在0到12位模数转换通道上偏移了1.5V,并存储在一个数组中。我想要检测每个间隔的峰值,所以请给我任何建议。我刚刚发布了五个样本中最大值检测的逻辑。我得到的输出为零。

代码语言:javascript
复制
void read_adc_Voltage()
{
     int arr[100];
     int arr1[100];
    int max = arr[0];
    arr[0]=0;
    int i,j=0;
    int count = 6;
     
     
       
         for (i=1;i<count;i++)
         {
             var=(ain1Buff[sampleCounter]);
             voltage=var*((float)3.3/(float)4095);
             arr[j] = voltage;
            
             if(arr[j] > max)
            {
                max = arr[j]; 
                }
             j++;
         }
             sprintf(data1,"%.2f",max);
             LCD_String_xy(1,1,data1);
             
            sampleCounter++;
            
            if(sampleCounter==6)    
            {
              sampleCounter=0;
              
            }
            
}  
EN

回答 1

Stack Overflow用户

发布于 2020-09-11 23:06:27

定义像峰值和间隔这样的各种术语的意思,并询问或决定,并指定其他条件的标准。

只要MaxValue大于该时间间隔内的前一个MaxValue,您就可以通过更新SampleValue来跟踪最大值。MinValue也是如此。

例如,你的峰值标准是SampleValue应该上升一定的量,然后下降一定的量吗?或者,SampleValue应该超过某个固定的阈值?或者更复杂的东西?当信号电平随噪声波动时,它们将产生不同的结果;您可能需要设置初始条件;可能还需要考虑系统是否会锁定在不希望的条件中,如阈值太高或太低。解决方案越复杂,出现不利条件的机会就越多。

当有新的间隔时,也要考虑同样的问题。时间是固定的吗?-用计时器。与采样频率有关吗?-计算采样数量。是否在每个峰值之后开始,可能间隔最小?-重置计时或计数以及在每个峰值之后的MaxValue和MinValue,并禁止确定峰值,直到您的MinTime或MinCount通过。

使用最简单的解决方案来处理你的信号,考虑到噪音等因素。如果你听之任之可能会变得很复杂。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63830657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档