找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3451|回复: 3
打印 上一主题 下一主题
收起左侧

血氧饱和度的c程序和matlab程序

[复制链接]
跳转到指定楼层
楼主
ID:313651 发表于 2018-4-22 12:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
血氧饱和度的c程序和matlab程序

  1. clear,clc;
  2. t=0:1/500:5;
  3. s_sin=sin(2*pi*1.5*t);
  4. s_940nm=s_sin*0.2+0.75;
  5. s_660nm=s_sin*0.1+0.8;
  6. plot(t,s_sin);axis([0 5 0 1]);
  7. figure,plot(t,s_940nm);axis([0 5 0 1]);
  8. figure,plot(t,s_660nm);axis([0 5 0 1]);

  9. max_total=0;
  10. max_num=0;
  11. min_total=0;
  12. min_num=0;
  13. b_value=0;
  14. b_f=0;
  15. n_value=0;
  16. n_f=0;

  17. for i=1:2500
  18.     b_value=n_value;
  19.     b_f=n_f;
  20.     n_value=s_940nm(i);
  21.     if n_value>b_value
  22.         n_f=1;
  23.     elseif n_value<b_value
  24.         n_f=-1;
  25.     end
  26.    
  27.     if(n_f==-1)&&(b_f==1)
  28.         max_total=max_total+s_940nm(i);
  29.         max_num=max_num+1;
  30.     end
  31.    
  32.     if(n_f==1)&&(b_f==-1)
  33.         min_total=min_total+s_940nm(i);
  34.         min_num=min_num+1;
  35.     end
  36. end

  37. max_940nm=max_total/max_num;
  38. min_940nm=min_total/min_num;

  39. max_total=0;
  40. max_num=0;
  41. min_total=0;
  42. min_num=0;
  43. b_value=0;
  44. b_f=0;
  45. n_value=0;
  46. n_f=0;

  47. first_p=0;
  48. last_p=0;
  49. f_p=0;

  50. for i=1:2500
  51.     b_value=n_value;
  52.     b_f=n_f;
  53.     n_value=s_660nm(i);
  54.     if n_value>b_value
  55.         n_f=1;
  56.     elseif n_value<b_value
  57.         n_f=-1;
  58.     end
  59.    
  60.     if(n_f==-1)&&(b_f==1)
  61.         max_total=max_total+s_660nm(i);
  62.         max_num=max_num+1;
  63.         if f_p==0
  64.             f_p=1;
  65.             first_p=i;
  66.         else
  67.             last_p=i;
  68.         end
  69.     end
  70.    
  71.     if(n_f==1)&&(b_f==-1)
  72.         min_total=min_total+s_660nm(i);
  73.         min_num=min_num+1;
  74.     end
  75. end

  76. max_660nm=max_total/max_num;
  77. min_660nm=min_total/min_num;
  78. heart_beat=60/((last_p-first_p)/(max_num-1)/500);

  79. spo2=110-25*(max_660nm-min_660nm)/max_660nm/((max_940nm-min_940nm)/max_940nm);

复制代码


SPO2(matlab).doc

18.5 KB, 下载次数: 22, 下载积分: 黑币 -5

spo2(c).doc

23.5 KB, 下载次数: 27, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:485411 发表于 2019-8-6 10:59 | 只看该作者
这个可以研究一下
回复

使用道具 举报

板凳
ID:334838 发表于 2020-7-9 16:22 | 只看该作者
老哥这也没个注释啊,萌新看不懂
回复

使用道具 举报

地板
ID:802732 发表于 2020-7-13 19:00 | 只看该作者
这个可以研究一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表