波形峰值查找的简单模拟 (使用WinAPI)

这是一个使用C语言和Win32 API编写的波形峰值查找的简单模拟程序。程序通过扫描样本值,判断波形的增减趋势,找到峰值,并在Windows GUI界面中显示波形和标记出峰值。
摘要由CSDN通过智能技术生成

预览图
  1. /*
  2.  * 波形峰值查找的简单模拟 GUI Version 
  3.  * Coder: blackboy 
  4.  * Date:  2008-1-15
  5.  * Tools: Dev-C++, C, Win32 API
  6.  */ 
  7. #include <windows.h>
  8. #include <stdio.h>
  9. #include <string.h>
  10. #define MAX_POINTS  70   // 样本值大小 
  11. #define JUDGE_WIN_X 1    // 用于判断的x轴距离 
  12. #define JUDGE_RATE  1.0  // 用于判断的斜率 
  13. // 样本值 
  14. const int value[MAX_POINTS] = 
  15. {
  16.     19,20,20,20,20,19,19,19,20,19,
  17.     18,17,16,19,21,19,16,17,18,19,
  18.     19,20,20,20,20,20,21,20,20,20,
  19.     20,20,20,23,26,23,20,21,21,20,
  20.     20,20,20,20,20,19,19,18,17,16,
  21.     15,14,13,15,17,15,12,11,10,9,
  22.     8, 7, 6, 5, 4, 3, 2, 1, 0, 1
  23. };
  24.     
  25. // 判断标志 
  26. // 趋势   增大:1, 减小:2, 峰值?:3, 保持:0, 无效:-1
  27. int tag[MAX_POINTS] = {-1};
  28. // 扫描每个点 
  29. void Scan(int tag[MAX_POINTS])
  30. {
  31.     int i;
  32.     
  33.     tag[0] = 0;
  34.     // 第一遍扫描 
  35.     for(i=1; i<MAX_POINTS; i++)
  36.     {
  37.         if(value[i]>value[i-1])
  38.             tag[i] = 1;
  39.         else if(value[i]<value[i-1])
  40.             tag[i] = 2;
  41.         else
  42.             tag[i] = 0;
  43.     }
  44.     
  45.     // 第二遍扫描 
  46.     for(i=1; i<MAX_POINTS-1; i++)
  47.     {
  48.         if(tag[i-1]==1 && tag[i&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值