나는 1 분 동안 심장 박동수를 읽고 그것으로부터 심박수 변동성을 계산해야하는 응용 분야에서 연구 중이다.HR (심박수)에서 HRV (심박수 변화)를 얻는 방법
RMSSD for HRV Analysis : 마음을 읽는
도움이 내가 다음 링크하지만 아무것도를 통해 내가 사라 HRV를 계산하기위한 스트랩 (폴라)
Heart beat reading code I have used from link
을 사용하고 이길
내가 HR은 1 분 얻을 HR 및 기간에서 HRV (RMSSD)를 얻을 수있는 공식을 입력하십시오.
어떤 도움을 주시면 감사하겠습니다..
편집 : 다음 코드
내가 가지고 RR 값 : 같은
- (void) updateWithHRMData:(NSData *)datas {
const uint8_t *reportData = [datas bytes];
uint16_t bpm = 0;
uint16_t bpm2 = 0;
if ((reportData[0] & 0x04) == 0)
{
NSLog(@"%@", @"Data are not present");
}
else
{
bpm = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[2]));
bpm2 = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[4]));
if (bpm != 0 || bpm2 != 0) {
NSLog(@"%u", bpm);
if (bpm2 != 0) {
NSLog(@"%u", bpm2);
}
}
}
}
내 질문은 내가 얻고있다 RR 값 : 666,636,645 .... 등 하지만 내가 HRV +
응용 프로그램을 사용하고 전자 메일을 통해 RR 값을 내보낼 경우 0.785,0.734,0.724 등의 값이 표시됩니다. 그리고 RR 값으로 계산하는 경우
RMSSD =
그것은 나에게 완전히 잘못된 결과를 제공 : 다음 식에 일.
도와주세요.
편집 :
//==================RR
if ((reportData[0] & 0x04) == 0)
{
NSLog(@"%@", @"Data are not present");
}
else
{
uint16_t rr2 = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[2]));
RR = CFSwapInt16LittleToHost(*(uint16_t *)(&reportData[4]));
//sometimes two values of RR may found so there are two RR: RR and rr2 which added in array and all calculation goes after one minute
if (rr2 > 0 || RR > 0) {
NSLog(@"RR2 %u", rr2);
if (rr2>0) {
[RRArray addObject:[NSNumber numberWithInt:rr2]];
}
if (RR != 0) {
NSLog(@"RR %u", RR);
[RRArray addObject:[NSNumber numberWithInt:RR]];
}
}
}
}
나는이 프로그래밍 관련 질문이라고 생각하지 않는다 –
나는 공식을 가지고 있지만 HR을 읽는 것에 대해 혼란 스럽다. "didUpdateValueForCharacteristic"이 호출되었거나이 타임 스탬프를 얻는 것이 가장 큰 질문이다. –
업데이트 할 수 있습니까? NSLog (@ "% @", datas)의 결과에 대한 질문 - 센서의 값의 원시 데이터를 볼 필요가 있습니다. 디코딩 코드가 올바르지 않은 것 같습니다. 소비 된 에너지가 존재하고 패킷 당 여러 개의 RR 값이있을 수 있는지 알아 보려면 비트 3을 검사해야합니다. 또한이 논문을 읽으면 SSDN은 RMSS가 아닌 HRV 인 것처럼 보입니다. 또한 RR 값은 데이터 패킷의 1/1024ths 초입니다. – Paulw11