当前位置: 首页 > article >正文

基于单片机的肺功能MVV简单测算

肺功能MVV一般是指肺部每分钟的最大通气量。

MVV本身是最大值的英文缩写,在临床上,肺功能MVV表示肺部每分钟最大通气量,用以衡量气道的通畅度,以及肺部和胸廓的弹性、呼吸肌的力量。

肺部每分钟的最大通气量的参考值男性与女性之间存在差异,一般男性检测所得的正常值是104+2.71L,女性正常值为82.5+2.17L。该指标多用于检测慢性阻塞性肺疾病、特发性阻塞性细支气管炎伴机化性肺炎、肺气肿等疾病。

单片机一般通过外接流量传感器,使用ADC高速采集的方式来获取当前流速数据。

肺活量吹气检查流程大致为:快速深吸气 ---> 快速深呼气 ---> 快速深吸气 ---> 快速深呼气。。。


#define nFLOW_SAMPLE               (10)//流量传感器采集频率单位为ms
#define qAbs(x)                    (((x) > 0.0f) ? (x) : -(x))
#define qFuzzyIsNull(x)            (qAbs(x) <= 0.00001f)


typedef struct  
{
    int bIsIntact; 
    float dMMV;
}MMVParam;


MMVParam _cal_mvv_test(float*dFlowData,int nSumCnt)
{    
    MMVParam tMMVParam = {true,0};   
	
    //使用零点流速分段样本数据
    int nZeroPoint = 0;                     

    float dMaxVal, dMinVal;
    float dTmpCapatity;

    dMaxVal = dMinVal = dTmpCapatity = 0.0f;
		
    for (int i = 1; i < nSumCnt; i++) 
	{
		// 流速为L/min,累计流量为当前流速乘以时间
        dTmpCapatity += dFlowData[i] * (nFLOW_SAMPLE / 1000 / 60.0f); 
			
	    //收集达到1200个测量数据即可
        if (i * nFLOW_SAMPLE >= 12000) break;
		
		//找出最大值和最小值	
        if (dMaxVal < dTmpCapatity) dMaxVal = dTmpCapatity;
        if (dMinVal > dTmpCapatity) dMinVal = dTmpCapatity;

        //两点间经过零点
        if (dFlowData[i - 1] * dFlowData[i] <= 0 && 
			!qFuzzyIsNull(dFlowData[i])) 
		{
            nZeroPoint++;
					
            tMMVParam.dMMV += (dMaxVal - dMinVal);
					
            dMaxVal = dTmpCapatity;
            dMinVal = dTmpCapatity;
        }
    }

	 //至少分四段数据才有效
    if (nZeroPoint < 4) tMMVParam.bIsIntact = false;
	//至少需要1200个数据才有效
    if (nSumCnt < 1200) tMMVParam.bIsIntact = false;

    //分钟最大通气量为12s流量的5倍,单位为L
    tMMVParam.dMMV *= 5;

    return tMMVParam;
}


http://www.kler.cn/a/468921.html

相关文章:

  • Go语言的 的同步与异步编程(Synchronization Asynchronous Programming)基础知识
  • 聊聊 C# 中的委托
  • 数据库系统概论期末复习
  • 资金管理系统——python
  • iOS 逆向学习 - iOS Architecture Core OS Layer
  • pytorch索引操作函数介绍
  • DOM HTML
  • 【Vim Masterclass 笔记05】第 4 章:Vim 的帮助系统与同步练习(L14+L15+L16)
  • 银行账户类别详解
  • 【Springboot知识】Springboot监控工具SpringbootAdmin
  • 游泳溺水识别数据集,对25729张图片进行YOLO,COCO JSON, VOC XML 格式的标注,溺水平均识别率在89.9%
  • 数据结构复习 (顺序查找,对半查找,斐波那契查找,插值查找,分块查找)
  • 鸿蒙UI开发——Toast即时提示框的使用
  • 【Qt】QLabel显示图片
  • 【STM32项目】智能物联网驱动的生物样本培育与管理辅助系统(完整工程资料源码)
  • 低空管控技术-无人机云监视技术详解
  • 功能篇:页面实现实时的时钟功能
  • 【NLP高频面题 - Transformer篇】Transformer的输入中为什么要添加位置编码?
  • java基础之代理
  • Qt 绘图