College of Engineering Unit:
Researchers at OSU are studying the behavior of crossbill birds in the wild by analyzing the heart rate of wild birds. Currently, the noisy and lengthy data is being hand-counted; which takes months to perform for one birds' data. Generally, a crossbill's heart rate can be anywhere in the range of 300 to 1200 beats per minute, with a lot of noise and unreliability throughout the data that can be as long as 30 hours. Thus, our development team took on the challenge of automating the counting of heart rate peaks for the research team. The development team of 4 split up, one member writing a filtering algorithm to reduce the noise in the sound data, two members worked on writing a peak counting algorithm that output the beats per minute of specified time intervals, and the last member wrote a graphical user interface for the research team to utilize the program without needing to have as much technical programming experience. The filtering algorithm works to detect the most probably carrier frequency and extracts it. Then, the signal is demodulated to find the real heartbeat signal among the noisy data. Filtering of the data closely mimics the manipulation of the data that the original researcher performed in order to more clearly detect the peaks for hand counting. The peak counting algorithm utilizes a function in the Python library SciPy that takes in sound data along with a few data parameters, and determines the number of peaks in the data. With the number of peaks, it is a simple calculation to determine the average beats per minute of any segment of data. The project was determined to be successful and fairly accurate according to the testing performed.