This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AWR1642BOOST: Heart_beat settle time

Part Number: AWR1642BOOST


Hello,

I am reading the data packages from this Evm via UART in python.

If i am seating in front of the Evm it gives me correct reading after 15-20 seconds.

But when i seat to check my heart beats after doing some exercise or any type of workout, it takes more than a minute to settle down, and after that it gives large heart_beats.

And after showing few corrects beats It again drops to range 30-50 in between even if the real heart beat is definitly above 120.

So i wanted to know what is wrong?

Kind Regards,

Aditi Karande

  • Hi,

    It is possible that this sample implementation does not support the higher heart rate.

    The filters used by the algorithm may need to be adjusted.

    What is the heart rate after exercise?

    Thank you

    Cesar

  • Hi,

    the heart rate after exercise exist in between 170-180 range.

    And which filter i need adjust for this?

    Thank You,

    Aditi 

  • Hi Cesar,

    In Dss_data_path.h  file maximum heart rate allowed is defined as 120.

    So my question is, if i change the value directly then will it be appropriate?

    And in previous reply you mentioned that i need to adjust the filters, so the change in the coefiecients of IIR-Cascade Bandpass Filter (Dss_data_path.c) will be enough ?

    I am a bigginer in this field so any help would be appriciated.

    Thank you

    Aditi karande 

  • Hi Cesar,

    I have attached the snippit of the code.

    In this code coefficients are calculated for 0.8 to 2 Hz. So if i design the coeffiecents for 0.8 to 3 will it work?

    Thank you,

    Aditi karande

  • Hi

    We have to check with algorithm developer and get back to you tomorrow

    thank you

    Cesar

  • Hi Cesar,

    I checked in Matlab, the Heart rate coefficients in the source code are calculated for 0.8 to 4 Hz.

    So i guess there is no need to change the coefficients, so it should work if i directly set the max heart beat to 180 instead of 120.

    So please let me know if is this the correct approach ?

    Kind Regards,

    Aditi Karande 

  • Hi,

    Sorry for the delay, here is some input from algorithm developer

    Thank you

    Cesar

    The demo is configured for 48 – 120 bpm and was never tested beyond that. Several parameters might require tuning to increase it to 180 bpm.  

     

    The filter coefficients are fine they are tuned for 0.8 – 4.0 Hz.

     

    There might be several places which might need to change such as

    (1)    In “MmwDemo_dataPathInitVitalSigns()”

     

        // Vital-signs peak search frequencies may be different from the Band-pass filter cut-off frequencies

        obj->breath_startFreq_Hz = 0.1;   // Breathing-Rate peak search Start-Frequency

        obj->breath_endFreq_Hz   = 0.6;   // Breathing-Rate peak search End-Frequency

     

        obj->heart_startFreq_Hz = 0.8;    // Heart-Rate peak search Start-Frequency

        obj->heart_endFreq_Hz   = 2.0;    // Heart-Rate peak search End-Frequency

     

        // Auto-Correlation

        obj->xCorr_minLag = (uint16_t) obj->samplingFreq_Hz/2.1;    // (Fs/Freq)  Corresponding to f = 2.1 Hz at a sampling Frequency of 20 Hz

        obj->xCorr_maxLag = (uint16_t) obj->samplingFreq_Hz/0.8;    // (Fs/Freq)  Corresponding to f = 0.8 Hz at a sampling Frequency of 20 Hz

     

     

    (2)    In dss_data_path.h change

    #define MAX_HEART_RATE_BPM            (120)              // Maximum Heart-rate allowed

     

     

    The current version of the algorithm also searches for the 2nd harmonic of the heart-rate within a region [1.6 Hz – 4.0 Hz].  For instance if the heart rate is 90 bpm it will also search for a peak at 180 bpm. It can happen that if the heart-rate is 180 bpm, the algorithm might think it’s a 2nd harmonic and not the true heart-rate and give an erroneous result.

    Hence for now I’ll suggest that they log the output on the PC and look at the variable

           obj->VitalSigns_Output.heartRateEst_FFT = heartRateEst_FFT;  rather than the displayed output on the GUI.

  • Hello Cesar,

    Thank you so much for the detailed explanation, it helped me a lot.

    So even if i change all the above parameters, the result will be erroneous for higher heart-rate which will fall in second harmonic?

    And i am also getting an error after flashing the ccs debug firmware image on evm.

    Please have a look on this problem, and guide me through it.

    Kind regards,

    Aditi

  • Hi Cesar,

    I succesfully connected the EVM and ccs , and it ran properly, but then after a while i recieved the following error. And now its not working:

    Kind regards,

    Aditi Karande