Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Report on radar #2

Open
lucassbroto opened this issue Feb 4, 2020 · 7 comments
Open

Report on radar #2

lucassbroto opened this issue Feb 4, 2020 · 7 comments

Comments

@lucassbroto
Copy link

Hello,

I am Lucas, a Brasilian student in Germany, and I am doing the same thing for my master project. Using an acconeer Radar to figure heart rate and Breathing rate.

I've taken a look into your codes and they seem a bit complicated and high level, is there a report where you explain the signal processing steps? or a report about the project itself? I would love to read it and try to understand it a bit better.

Thank you so much!
Lucas Broto.

@lucassbroto

This comment has been minimized.

@lucassbroto

This comment has been minimized.

@Warnicke
Copy link
Collaborator

Hi!

Sorry for late answer, but I’m not actively working on the project, so I didn’t see the issue until today. The project was a part of Bachelor's thesis project and the report was therefor obliged to be written in Swedish. I will attach the report Kandidatarbete-Chalmers-MCCX02-19-06.pdf, but you will have to translate it somehow to find it useful. I can give you an overview what the code does.

The data_acquisition_module.py finds and track peaks in the received signal. Often the peaks with highest amplitude are reflections from the chest, but as there are a lot of nose this can vary so the function tries to follow the closest peak unless a new much higher peak has appeared somewhere else. The change of the phase of the peak gives a relative distance from which movements of the chest can be followed. The movements is then sent to the filter.py to be filtered as there are a lot of noise in the data (especially body movements not connected to the respiratory and heart rate). Different bandpass filters are used for the breath and heart rate.

The filtered data is then sent to signal_processing_module.py. A Schmitt trigger is used to find the breaths. The output from the Schmitt trigger will be like a pulse function for each breath, and the respiratory rate can be calculated from the lenght of the pulses. To find the heart rate, an FFT was used. Data from the last 20 seconds was used in the FFT. The peaks from the FFT are then found and weighted by their amplitude and distance form the last detected heart rate. The best peak is then supposed to be the heart rate, but usually there are other peaks in the spectrum that are almost as good as the best one. Therefor we also have included some code that compares the differences in amplitude to the other peaks and from that gives the current heart rate some kind of reliability which can be seen in the app by the color of the heart.

I hope that helped to some extent. Feel free to ask if you have more specific questions.

Sincerely,
Albin Warnicke

@Warnicke

This comment has been minimized.

@Warnicke

This comment has been minimized.

@Warnicke

This comment has been minimized.

@Warnicke

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants