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.

AWR6843AOP: AWR6843AOP

Part Number: AWR6843AOP

Hi

We found some difficulties to change the following IIR parameters.

For example, we want to change "0.1 ~ 0.5" to "0.15~ 0.4".

Question 1. Are there any reason to use IIR than FIR? for example, any performance issue?

Question 2. how can we build coefficients if we want to change to other bandwidth range such as 0.15~0.5?

reference code from ti > 

// 0.1 Hz to 0.5 Hz Bandpass Filter coefficients
float pFilterCoefsBreath[IIR_FILTER_BREATH_NUM_STAGES * IIR_FILTER_COEFS_SECOND_ORDER] = {
1.0000, 0, -1.0000, 1.0000, -1.9632, 0.9644,
1.0000, 0, -1.0000, 1.0000, -1.8501, 0.8681 };
float pScaleValsBreath[IIR_FILTER_BREATH_NUM_STAGES + 1] = {0.0602, 0.0602, 1.0000};
memcpy(obj->pFilterCoefsBreath, pFilterCoefsBreath, sizeof(pFilterCoefsBreath));
memcpy(obj->pScaleValsBreath, pScaleValsBreath, sizeof(pScaleValsBreath));

// Heart Beat Rate 0.8 - 4.0 Hz
float pFilterCoefsHeart_4Hz[IIR_FILTER_HEART_NUM_STAGES * IIR_FILTER_COEFS_SECOND_ORDER] = {
1.0000, 0, -1.0000, 1.0000, -0.5306, 0.5888,
1.0000, 0, -1.0000, 1.0000, -1.8069, 0.8689,
1.0000, 0, -1.0000, 1.0000, -1.4991, 0.5887,
1.0000, 0, -1.0000, 1.0000, -0.6654, 0.2099 };
float pScaleValsHeart_4Hz[IIR_FILTER_HEART_NUM_STAGES + 1] = {0.4188, 0.4188, 0.3611, 0.3611, 1.0000};

  • In addition to the above questions,

    I am confused with the following FIR filters.

    Question. Why do they use FIR filter for the peak countings? 

    for (loopIndexBuffer = 1; loopIndexBuffer < FIR_FILTER_SIZE; loopIndexBuffer++)
    {
    pDataIn[loopIndexBuffer - 1] = pDataIn[loopIndexBuffer];
    }
    pDataIn[FIR_FILTER_SIZE - 1] = heartRateEst_peakCount;
    heartRateEst_peakCount_filtered = filter_FIR(pDataIn, obj->pFilterCoefs, FIR_FILTER_SIZE);

    Question2. are there any way to calculate Peak to Peak distance?

    BR,

    kisub 

  • Hello

    In the future it will  help us respond better and faster if you list the following:

    1. Demo used - version

    2. demo + config provided as is confirmed to be working

    3. Objective of the change and what was modified wrt defautl

    Thank you,

    Vaibhav

  • I had put some more details for you.

    1. Demo used - version 

    [Ans]D:\ti\mmwave_automotive_toolbox_3_0_0\mmwave_automotive_toolbox_3_0_0\labs\lab0001-driver-vital-signs

    2. demo + config provided as is confirmed to be working

    [Ans] As it is , default

    3. Objective of the change and what was modified wrt default

    [Ans] the reason why I am asking this is to get the better accuracy on BPM and more robust BPM.

    So, I had tried to get dynamic bandwidth filter (FIR) and in simulation , it showed better performance till now.

    So, I want to use FIR instead of IIR in source code.

    Otherwise, I want to know how to change IIR bandwidth filter range from "0.1~0.6" to other range. For this, I will need coefficients. So, how to?

    Br,

    kisub

  • Hello,

    For the Vital signs we may be able to help  by providing the algorithm  information and reference to the same.

    Supporting specific implementation questions would be out of the scope for details.   Is your question about how the  filter design decision is made?

    Thank you,

    Vaibhav

  • Yes, I want to know how the filter design decision is made in that way.

    It uses IIR filter to get FFT peak value in heart rate and with some reasons, it again filters with FIR only for peak counting in source code.

    And if its difference is less than 4 BPM , then it select FFT peak value. otherwise, it selects FIR peak countings.

    I would like to know which paper/theory/article is selecting BPM like this. I had never seen Heart Rate selection related papers in this way. I just want to know where this basic concept is from.

    BR,

    kisub

  • Hello

    The Algorithm, data flow along with equations is provided in the developers guide which is provided inside the TIrex lab.

    Have you had a chance to look at that information?

    It should allow you to understand the sensed/detected parameters fro FMCW data and how the required measurements are extracted from that.

    The algorithm and code examples are provided as is to show the capability of the device. You are free to use/adapt this or any other algorithm for similar application.

    Thank you,

    Vaibhav