并行的定点设计探索
此示例展示了如何通过并行地在多台计算机上分发测试来探索和测试定点设计。该示例使用parfor
循环来测试QRS检测器算法的准确性。
运行并行模拟需要parallel Computing Toolbox™许可证。
使用并行为
-设计探索的循环
就像一个标准为
循环,parfor
-loop在一定范围内执行一系列语句。使用parfor
命令,可以设置并行为
循环,通过在多台计算机上分布测试来探索定点设计。在一个parfor
循环,循环迭代并行执行,可以提供比标准更好的性能为
循环。
的test_heart_rate_detector_in_parallel
脚本设置被测系统,并初始化将包含结果的数组parfor
循环。然后使用parfor循环并行测试每条记录。的parfor
-loop加载数据,运行系统,然后并行地对结果进行分类和保存。当parfor
-loop完成后,脚本显示结果。
%%并行运行数据库中所有记录的测试Record_names = {“ecg_01”,“ecg_02”,“ecg_03”,“ecg_04”,“ecg_05”,“ecg_06”,…“ecg_07”,“ecg_08”,“ecg_09”,“ecg_10”,“ecg_11”,“ecg_12”,“ecg_13”};%%设置被测系统data_type =“fixedwrap”;T = heart_rate_detector_types(data_type);[mex_function_name,Fs_target] = setup_heart_rate_detector(record_names,data_type,T);%%初始化数组以包含结果Results_file_names = cell(size(record_names));并行测试数据库中的每条记录parforRecord_number = 1:length(record_names);%负载数据Record_name = record_names{record_number};[ecg,tm,ann,Fs] = load_ecg_data(record_name,Fs_target);%运行被测系统detector_outputs = run_heart_rate_detector(mex_function_name,ecg,T);%分类结果[qrs_struct,qrs_stats] = classify_qrs(ann, Fs, detector_outputs);%保存结果Results_file_names {record_number} = save_heart_rate_data(…mex_function_name record_name,…安data_type,心电图、tm, Fs,…detector_outputs,…qrs_struct qrs_stats);结束%%显示结果display_ecg_results (record_names results_file_names);
因为循环迭代必须彼此完全独立,所以不能调用保存
和负载
直接在parfor
循环。但是,您可以调用调用这些命令的函数。在本例中,函数load_ecg_data
和save_heart_rate_data
加载并保存必要的数据。
待测系统描述
本例中测试的系统测试一个简单的QRS检测器,该检测器测量QRS检测之间的时间差以计算心率。的test_heart_rate_detector_in_parallel
脚本将心电记录传递给检测算法。
下图是检测器算法正确识别QRS检测以计算心跳的示例。
本例对检测算法进行了简化。检查示例运行时显示的图和结果表明,该算法并不总是非常准确。
记录# QRSTP《外交政策》FNDERSe+ Pecg_0125319515823.3277.0899.49ecg_0213313318013.53100.0088.08ecg_039494101.06100.0098.95ecg_049291011.0998.91100.00ecg_059391123.2397.8598.91ecg_0613113122016.79100.0085.62ecg_07174173201.15100.0098.86ecg_081171161019.4099.1592.06ecg_09137137100.73100.0099.28ecg_1096963.03.12100.0096.97ecg_117373101.37100.0098.65ecg_1214614571048.63100.0067.13ecg_13144144503.47100.0096.64总数168316191366211.7696.3192.25图例:#QRS:总数的QRS复合物TP:数量真正的积极的FP:数量假积极的FN:数量假负DER:检测错误率在百分比Se:敏感性百分比+P:积极的预测在百分比
下图是检测器算法识别由于记录中的噪声而导致的误报的示例。
本例中使用的所有心电图记录都是在业余设备上测量的。您可以使用记录生理信号的PhysioNet数据库自己进行类似的分析。这些录音上的注释没有得到医生的证实。
运行示例
运行test_heart_rate_detector_in_parallel
示例脚本。
test_heart_rate_detector_in_parallel
参考文献
Patrick S. Hamilton,开源心电分析软件(OSEA), E.P. Limited, Somerville, MA;http://www.eplimited.com, 2002年。
Gari D Clifford, Francisco Azuaje和Patrick E. McSharry。心电数据分析的先进方法和工具,Artech House, 2006。
美国国家标准ANSI/AAMI EC38:2007医疗电气设备。第2-47部分:动态心电图系统的安全(包括基本性能)的特殊要求。医疗仪器促进协会,2008。
b[4] George B. Moody,“ECG分析仪评估”,波形数据库应用指南,哈佛-麻省理工学院健康科学与技术部门,剑桥,马萨诸塞州,WFDB10.5.23, 2014年3月13日。
[10] Ida Laila binti Ahmad, Masnani binti Mohamed, Norul Ain binti Ab Ghani,“使用组合算法的QRS复杂检测概念演示器的开发”,2012年IEEE EMBS生物医学工程与科学国际会议,兰卡威,2012年12月17 - 19日。
[10]王晓明,王晓明,“基于QRS的心脏异常检测方法研究进展”,中国机械工程学报,vol . 31, no . 5, 2011年11月。
另请参阅
为
|parfor
(并行计算工具箱)|并行for循环(parfor)(并行计算工具箱)